IPFS (inter planetary file system)
Trouver une bonne implémentation pour Mageia, faire des essais
Logiciels / Autres logiciels

Jybz Membre non connecté
-
- Voir le profil du membre Jybz
- Inscrit le : 10/10/2018
- Groupes :
-
Administrateur
-
Forgeron
Le projet du port de Mageia sur Banana Pro avance, je planche maintenant sur la finalité de la Banana Pro, un "nœud" dépôt logiciel RPM de Mageia.
Ce dépôt se baserait sur la technologie IPFS (la documentation est complexe, éparpillée un peu partout, ce n'est pas toujours clair, voir https://ipfs.io )
Il y a l'outil, l'implémentation de référence, go-ipfs . Le problème de ce go-ipfs, c'est go… Golang qui télécharge toutes les dépendances du projet lors de la construction des outils…
En cherchant, on trouve une implémentation en C.
On peut l'obtenir :
git submodule update --init --recursive https://github.com/Agorise/c-ipfs
On peut lancer sans installer avec :
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:./c-libp2p/ ./main/ipfs …
ou faire les tests avec
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:./c-libp2p/ ./test/test_ipfs
Mais… Mais… Chez moi ça plante.
Mais… Mais… J'ai regardé un peu le code… Et je suis effrayé par le nombre de goto dans du code c…
Pour les outils go-ipfs, il faut voir comment supprimer(séparer) les "go get" du processus de fabrication (et les mettre dans le processus propre à mageia, dans la SPEC).
Téléverser une image : /wiki/hebergement-de-fichiers-sur-mlo
Arch | Machine | OS |
x86_64 | lenovo x250 | mga9 |
armv7hl | bananapro | mga9 |
aarch64 | Raspberry Pi 4B | mga9 |

Jybz Membre non connecté
-
- Voir le profil du membre Jybz
- Inscrit le : 10/10/2018
- Groupes :
-
Administrateur
-
Forgeron
Téléverser une image : /wiki/hebergement-de-fichiers-sur-mlo
Arch | Machine | OS |
x86_64 | lenovo x250 | mga9 |
armv7hl | bananapro | mga9 |
aarch64 | Raspberry Pi 4B | mga9 |

Jybz Membre non connecté
-
- Voir le profil du membre Jybz
- Inscrit le : 10/10/2018
- Groupes :
-
Administrateur
-
Forgeron
Ce ne fut pas une mince affaire !
Mais on tient le bon bout !
J'ai pu faire des paquets IPFS (et syncthing) !
J'ai pu mettre tout ça en block et publier les paquets... Sur IPFS !
Donc j'en profite pour ouvrir ma petite forge logicielle, voici où vous pouvez récupérer les paquets !
https://ipfs.io/ipns/QmYQHY8Yk9jKrTBouCLk816dR4xuYxNWGVYiS59iu7jY8F
Vous n'êtes pas obligé d'utiliser ipfs.io comme passerelle, j'ai juste pris celle ci, car c'est la plus réputée, mais vous en avez des dizaines (centaines?) d'autre, comme gateway.ipfs.io, gateway.pinata.cloud, ...
Téléverser une image : /wiki/hebergement-de-fichiers-sur-mlo
Arch | Machine | OS |
x86_64 | lenovo x250 | mga9 |
armv7hl | bananapro | mga9 |
aarch64 | Raspberry Pi 4B | mga9 |

Jybz Membre non connecté
-
- Voir le profil du membre Jybz
- Inscrit le : 10/10/2018
- Groupes :
-
Administrateur
-
Forgeron
~/bin/ipfsupdate
Code BASH :
#!/bin/bash export PATH="${PATH}:/usr/local/bin:/usr/local/games:/usr/games:${HOME}/.local/bin:${HOME}/bin" export LC_ALL="UTF-8" cd ${HOME}/ipfs IPFS_HASH_LIST=$(ipfs add -r ./) IPFS_DIR_HASH="$(echo "${IPFS_HASH_LIST}" | grep ' ipfs$' | cut -d ' ' -f 2)" if [ 0 -eq ${?} ]; then ipfs name publish ${IPFS_DIR_HASH} fi exit ${?}
et la ligne de cron :
Code TEXT :
MAILTO="" @daily ${HOME}/bin/ipfsupdate
Téléverser une image : /wiki/hebergement-de-fichiers-sur-mlo
Arch | Machine | OS |
x86_64 | lenovo x250 | mga9 |
armv7hl | bananapro | mga9 |
aarch64 | Raspberry Pi 4B | mga9 |

Jybz Membre non connecté
-
- Voir le profil du membre Jybz
- Inscrit le : 10/10/2018
- Groupes :
-
Administrateur
-
Forgeron
J'ai décidé de faire un dépot logiciel pour Mageia sur IPFS pour tester.
Donc j'ai modifié l'arborescence et ai créé manuellement l'arborescence suivante :
Code TEXT :
. |-- distrib | |-- 7 | | |-- SRPMS | | |-- aarch64 | | |-- armv7hl | | | `-- media | | | `-- core | | | `-- updates | | | `-- golang-github-ipfs-0.5.1-1.mga7.armv7hl.rpm | | |-- i586 | | `-- x86_64 | | `-- media | | |-- core | | | `-- updates | | | |-- LimeSuite-20.07.2-1.mga7.x86_64.rpm | | | |-- [...] | | | `-- soapysdr-plugin-LimeSuite-20.07.2-1.mga7.x86_64.rpm | | `-- media_info | | |-- MD5SUM | | |-- hdlist.cz | | `-- synthesis.hdlist.cz | `-- 8 | |-- armv7hl | | `-- media | | `-- core | | `-- updates | `-- x86_64 | `-- media | `-- core | `-- updates | |-- golang-github-ipfs-0.6.0-1.mga8.x86_64.rpm | `-- golang-github-ipfs-0.7.0-1.mga8.x86_64.rpm |-- spec `-- test
J'y ai placé les fichiers rpm, et ai exécuter la commande :
Code BASH :
cd ./distrib/7/x86_64/media/core/updates genhdlist2 --allow-empty-media --clean -v --media_info-dir ../../media_info ./
On m'a parlé de l'outil repoctl, mais je n'ai pas trouvé comment générer l'arborescence.
Pour genhdlist2, ce serait pour urpmi, mais là encore, je n'ai pas compris comment bien l'exécuter, dois-je le faire dans tous les dossiers ? Il y a t'il une option récursive ?
Pour "installer" ce nouveau dépot logiciel, il faut saisir :
Code BASH :
urpmi.addmedia Jybz https://ipfs.io/ipns/QmYQHY8Yk9jKrTBouCLk816dR4xuYxNWGVYiS59iu7jY8F/distrib/7/x86_64/media
(ou armv7hl ou aarch64... Mais je n'ai pas empaqueté tous les paquets pour toutes les arch...)
Téléverser une image : /wiki/hebergement-de-fichiers-sur-mlo
Arch | Machine | OS |
x86_64 | lenovo x250 | mga9 |
armv7hl | bananapro | mga9 |
aarch64 | Raspberry Pi 4B | mga9 |

Jybz Membre non connecté
-
- Voir le profil du membre Jybz
- Inscrit le : 10/10/2018
- Groupes :
-
Administrateur
-
Forgeron
On m'a conseillé la lecture des man pages de :
man gendistrib
où l'on peut lire :
Citation :
Before using gendistrib, you must create a file media_info/media.cfg to describe your repository.
Et les "see also" :
man MDV::Distribconf
man MDV::Distribconf::MediaCFG
Donc, pour l'instant, je duplique les media.cfg de Mageia.
Code BASH :
VERSION=7 ARCHS="aarch64 armv7hl i586 x86_64" ROOT="." MEDIAPATH="media/media_info" MEDIACFG="${MEDIAPATH}/media.cfg" URLSOURCE="http://distrib-coffee.ipsl.jussieu.fr/pub/linux/Mageia/distrib" mkdir distrib pushd distrib for ARCH in ${ARCHS} ; do mkdir -p ${ROOT}/${VERSION}/${ARCH}/${MEDIAPATH} curl ${URLSOURCE}/${VERSION}/${ARCH}/${MEDIACFG} -o ${ROOT}/${VERSION}/${ARCH}/${MEDIACFG} sed -i -e '/^size=//' ${ROOT}/${VERSION}/${ARCH}/${MEDIACFG} done sed -i -e 's/^#arch=/arch=/' ${ROOT}/${VERSION}/armv7hl/${MEDIACFG} popd
Je poste avant l'expiration du jeton, je dois encore réussir à faire fonctionner gendistrib.
Téléverser une image : /wiki/hebergement-de-fichiers-sur-mlo
Arch | Machine | OS |
x86_64 | lenovo x250 | mga9 |
armv7hl | bananapro | mga9 |
aarch64 | Raspberry Pi 4B | mga9 |

Jybz Membre non connecté
-
- Voir le profil du membre Jybz
- Inscrit le : 10/10/2018
- Groupes :
-
Administrateur
-
Forgeron
Code BASH :
pushd distrib for ARCH in ${ARCHS}; do pushd ${ROOT}/${VERSION}/${ARCH} gendistrib --clean ./ popd done
mais ça me lance des erreurs, apparemment, ça ne génère pas l'arborescence.
Pterjan m'a aussi montré le modèle pour générer les media.cfg :
http://gitweb.mageia.org/infrastructure/puppet/tree/modules/buildsystem/templates/media.cfg
C'est intéressant, mais encore obscure...
C'est fini pour l'instant.
Téléverser une image : /wiki/hebergement-de-fichiers-sur-mlo
Arch | Machine | OS |
x86_64 | lenovo x250 | mga9 |
armv7hl | bananapro | mga9 |
aarch64 | Raspberry Pi 4B | mga9 |

Jybz Membre non connecté
-
- Voir le profil du membre Jybz
- Inscrit le : 10/10/2018
- Groupes :
-
Administrateur
-
Forgeron
http://gitweb.mageia.org/infrastructure/puppet/tree/modules/buildsystem/manifests/distros.rb
Les dossiers et les fichiers media.cfg sont a faire manuellement.
"mon" dépot ne couvrant pas l'intégralité de la distribution (il n'y a pas de release, il n'y aura pas de backport, ...) je vais juste copier/coller les dossiers/fichiers et supprimer les portions qui ne m'intéressent pas.
Téléverser une image : /wiki/hebergement-de-fichiers-sur-mlo
Arch | Machine | OS |
x86_64 | lenovo x250 | mga9 |
armv7hl | bananapro | mga9 |
aarch64 | Raspberry Pi 4B | mga9 |

Papoteur Membre non connecté
-
- Voir le profil du membre Papoteur
- Inscrit le : 03/10/2011
- Groupes :
-
Modérateur
-
Équipe Mageia
-
Administrateur
-
Forgeron
Yves

nic80 Membre non connecté
-
- Voir le profil du membre nic80
- Inscrit le : 06/08/2018
- Groupes :
-
Modérateur
Mon propos va être hors sujet, mais
Citation :
Je poste avec l'expiration du jeton
En fait il faudrait que sur le bouton valider, il y ait un décompte et qui clignote en rouge quand on arrive dans les 10 dernières secondes !

Édité par nic80 Le 20/10/2020 à 20h30

Jybz Membre non connecté
-
- Voir le profil du membre Jybz
- Inscrit le : 10/10/2018
- Groupes :
-
Administrateur
-
Forgeron
Papoteur, oui je le sais bien, je ne compte pas compiler pour i586, je le pourrais dans une VM, mais je n'ai pas trop la motivation.
En fait je cherchais un outil pour générer, où je défini les archs, les dépots (backport, testing, update, release… ) ainsi que la version de la distrib.
Téléverser une image : /wiki/hebergement-de-fichiers-sur-mlo
Arch | Machine | OS |
x86_64 | lenovo x250 | mga9 |
armv7hl | bananapro | mga9 |
aarch64 | Raspberry Pi 4B | mga9 |
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie