# Archivage du code source avec Guix et Software Heritage > [! remarque]- > Le contenu de cette page est généré à partir de la transcription audio/vidéo et de la transformation du texte provenant du contenu et des liens de cette source. Source : [https://fosdem.org/2025/schedule/event/fosdem-2025-5897-guix-software-heritage-source-code-archiving-to-the-rescue-of-reproducible-deployment/](https://fosdem.org/2025/schedule/event/fosdem-2025-5897-guix-software-heritage-source-code-archiving-to-the-rescue-of-reproducible-deployment/) <video src=« https://video.fosdem.org/2025/aw1126/fosdem-2025-5897-guix-software-heritage-source-code-archiving-to-the-rescue-of-reproducible-deployment.av1.webm » controls></video> ## Résumé et points forts : Cette session explore l'importance de l'archivage du code source pour garantir la reproductibilité des déploiements logiciels. Guix et Software Heritage s'associent pour préserver le code source, ce qui est crucial pour la recherche ouverte. **Introduction à Guix et Software Heritage** Guix est un outil de déploiement logiciel qui favorise le déploiement reproductible, essentiel pour vérifier les résultats de recherche. Software Heritage est une initiative à long terme visant à collecter et partager tout le code source disponible publiquement. Ensemble, ils assurent la transparence du code source et sa transformation en binaire. **Défis de la reproductibilité** Un scénario typique montre qu'il peut être difficile de reproduire des résultats de recherche en raison des variations dans l'environnement logiciel. Guix permet de capturer l'état exact d'un environnement logiciel, facilitant ainsi la reproductibilité. **Importance de l'archivage** La perte de code source, souvent appelée "link rot", est un problème majeur. Software Heritage joue un rôle crucial en archivant le code source, garantissant ainsi qu'il reste accessible pour des reproductions futures. **Conclusion et perspectives** La session conclut en soulignant l'importance de référencer le code source avec des identifiants Software Heritage pour assurer la pérennité et la reproductibilité de la recherche. L'utilisation de Guix est fortement recommandée pour les workflows de recherche reproductible. ## Importance pour une transformation écosociale L'archivage du code source est crucial pour une transformation écosociale car il garantit la transparence et la reproductibilité des recherches, ce qui est essentiel pour la durabilité. Les concepteurs écosociaux peuvent utiliser Guix pour gérer les dépendances logicielles de manière reproductible et transparente. Les défis incluent la nécessité d'une infrastructure robuste pour l'archivage à long terme et la gestion des variations de l'environnement. Les questions éthiques incluent la préservation de l'accès libre au code source et la collaboration internationale pour garantir la pérennité des archives. ## Slides: | | | | --- | --- | | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_001.jpg\|300]] | La première diapositive présente le thème de la session : l'archivage du code source pour garantir le déploiement reproductible, avec Guix et Software Heritage. Simon Tournier, l'orateur principal, est accompagné de contributeurs comme Antoine R. Dumont et Ludovic Courtès. La diapositive inclut des informations de contact pour Simon Tournier, telles que son email et son identifiant Mastodon. | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_002.jpg\|300]] | La deuxième diapositive rappelle les sessions précédentes dans la salle de développement "Open Research" en 2021. Elle met l'accent sur la continuité du thème "Guix + SWH" et l'importance de l'archivage du code source pour le déploiement reproductible. | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_003.jpg\|300]] | La troisième diapositive continue de présenter les sessions précédentes de la salle de développement "Open Research" en 2021 et 2023, soulignant l'évolution continue du thème "Guix + SWH". | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_004.jpg\|300]] | La quatrième diapositive ajoute l'année 2025 à la continuité des sessions précédentes, illustrant l'évolution et la persistance du thème "Guix + SWH" dans les discussions de la salle de développement "Open Research". | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_005.jpg\|300]] | La cinquième diapositive explique la dualité du logiciel, qui est à la fois lisible par l'humain (code source) et par la machine (binaire). Elle met en avant l'importance de la transformation du code source en binaire dans le cadre du déploiement reproductible. | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_006.jpg\|300]] | La sixième diapositive illustre un exemple de programme "Hello World" en code source, soulignant la lisibilité humaine du code avant sa transformation en binaire. | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_007.jpg\|300]] | La septième diapositive continue avec l'exemple du programme "Hello World", mettant en évidence le processus de transformation du code source en binaire, qui est essentiel pour le fonctionnement des machines. | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_008.jpg\|300]] | La huitième diapositive montre la transformation du code source "Hello World" en un extrait de binaire, illustrant la différence entre la lisibilité humaine et machine. | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_009.jpg\|300]] | La neuvième diapositive poursuit l'illustration de la transformation du code source en binaire, soulignant l'importance de cette transformation pour la transparence à long terme. | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_010.jpg\|300]] | La dixième diapositive conclut l'illustration de la transformation du code source en binaire, soulignant l'importance de la transparence à long terme dans le processus de transformation. | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_011.jpg\|300]] | La onzième diapositive présente un scénario typique dans lequel Alice publie un résultat en 2022 avec un code source identifié comme v0.9, disponible publiquement. | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_012.jpg\|300]] | La douzième diapositive décrit la difficulté rencontrée par Blake en 2025 pour reproduire les résultats d'Alice, en raison de la difficulté à installer la version v0.9 du code source. | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_013.jpg\|300]] | La treizième diapositive explique pourquoi Blake ne parvient pas à reproduire les résultats d'Alice, soulignant le manque de contrôle sur les sources de variations dans l'environnement logiciel. | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_014.jpg\|300]] | La quatorzième diapositive pose des questions clés sur l'environnement informatique nécessaire au déploiement, telles que le code source et les outils requis pour la construction et l'exécution. | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_015.jpg\|300]] | La quinzième diapositive souligne que répondre à ces questions permet de contrôler les sources de variations, essentielles pour le déploiement reproductible. | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_016.jpg\|300]] | La seizième diapositive explique comment capturer les réponses à ces questions, généralement à l'aide de gestionnaires de paquets comme Conda, APT, ou Brew. | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_017.jpg\|300]] | La dix-septième diapositive définit le déploiement comme un graphe orienté acyclique, où chaque nœud spécifie une recette pour le code source, les outils de construction et les dépendances. | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_018.jpg\|300]] | La dix-huitième diapositive présente Guix, un outil de développement logiciel qui gère le déploiement logiciel de manière fonctionnelle, transparent et vérifiable. | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_019.jpg\|300]] | La dix-neuvième diapositive explique comment une révision spécifique de Guix capture un graphe complet, permettant de reproduire l'environnement logiciel exact utilisé par Alice. | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_020.jpg\|300]] | La vingtième diapositive décrit le déploiement reproductible, où Blake peut utiliser Guix pour reproduire exactement l'environnement logiciel d'Alice, sous certaines hypothèses. | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_021.jpg\|300]] | La vingt-et-unième diapositive évalue empiriquement le problème de la "link rot", où une partie du code source devient indisponible avec le temps. | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_022.jpg\|300]] | La vingt-deuxième diapositive illustre un exemple de code source indisponible, soulignant l'impact de la perte de dépendances sur l'ensemble du système. | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_023.jpg\|300]] | La vingt-troisième diapositive poursuit l'exemple de la perte de code source, montrant comment la perte d'une dépendance peut affecter de nombreux autres paquets. | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_024.jpg\|300]] | La vingt-quatrième diapositive montre l'évolution du problème de la "link rot" au fil des versions de Guix, avec une amélioration progressive de la disponibilité du code source. | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_025.jpg\|300]] | La vingt-cinquième diapositive continue d'illustrer l'évolution de la "link rot", en montrant l'amélioration de la disponibilité du code source sur plusieurs versions. | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_026.jpg\|300]] | La vingt-sixième diapositive poursuit l'analyse de l'évolution de la "link rot", soulignant les améliorations dans la disponibilité du code source. | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_027.jpg\|300]] | La vingt-septième diapositive conclut l'analyse de la "link rot", montrant une amélioration continue de la disponibilité du code source au fil du temps. | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_028.jpg\|300]] | La vingt-huitième diapositive introduit Software Heritage comme solution au problème de la "link rot", en préservant le code source même lorsque des sites disparaissent. | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_029.jpg\|300]] | La vingt-neuvième diapositive continue de présenter Software Heritage comme la réponse à la disparition potentielle des dépôts de code sur des plateformes comme GitHub ou GitLab. | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_030.jpg\|300]] | La trentième diapositive souligne que Software Heritage est la plus grande archive publique de code source, collectant, préservant et partageant le code. | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_031.jpg\|300]] | La trente-et-unième diapositive présente Software Heritage comme une initiative internationale et à but non lucratif, soutenue par de nombreux sponsors et organisations. | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_032.jpg\|300]] | La trente-deuxième diapositive présente les identifiants Software Heritage (SWHID), qui permettent de référencer précisément le code source archivé. | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_033.jpg\|300]] | La trente-troisième diapositive continue de présenter les identifiants Software Heritage, soulignant leur rôle dans la standardisation de l'archivage du code source. | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_034.jpg\|300]] | La trente-quatrième diapositive montre un exemple d'identifiant Software Heritage, illustrant comment il permet de référencer précisément le contenu archivé. | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_035.jpg\|300]] | La trente-cinquième diapositive explique que les identifiants Software Heritage sont une norme émergente, avec des spécifications disponibles en ligne. | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_036.jpg\|300]] | La trente-sixième diapositive poursuit la présentation des identifiants Software Heritage, soulignant leur rôle dans le serveur de contenu adressé. | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_037.jpg\|300]] | La trente-septième diapositive conclut la présentation des identifiants Software Heritage, soulignant leur rôle dans la standardisation de l'archivage du code source. | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_038.jpg\|300]] | La trente-huitième diapositive décrit comment Guix identifie le code source, en spécifiant la méthode, l'URI et le hachage cryptographique. | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_039.jpg\|300]] | La trente-neuvième diapositive explique que le code source dans Guix est essentiellement adressé par le contenu, grâce au hachage cryptographique. | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_040.jpg\|300]] | La quarantième diapositive discute des problèmes potentiels lorsque l'URI devient obsolète, soulignant l'importance de l'adressage par le contenu. | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_041.jpg\|300]] | La quarante-et-unième diapositive explique comment Blake peut contourner les problèmes d'URI obsolètes en utilisant des copies disponibles ailleurs. | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_042.jpg\|300]] | La quarante-deuxième diapositive continue de discuter des solutions pour les URI obsolètes, y compris l'utilisation de serveurs de contenu adressé. | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_043.jpg\|300]] | La quarante-troisième diapositive conclut la discussion sur les URI obsolètes, en présentant des solutions comme le téléchargement via Guix ou des serveurs de contenu adressé. | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_044.jpg\|300]] | La quarante-quatrième diapositive présente l'architecture de connexion entre Guix et Software Heritage, montrant comment les utilisateurs peuvent archiver et récupérer le code source. | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_045.jpg\|300]] | La quarante-cinquième diapositive explique pourquoi Disarchive est nécessaire, en raison des problèmes liés aux archives compressées comme les variations de compression. | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_046.jpg\|300]] | La quarante-sixième diapositive continue d'expliquer les problèmes liés aux archives compressées, soulignant l'importance des algorithmes de hachage et des sérialiseurs de données. | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_047.jpg\|300]] | La quarante-septième diapositive conclut la discussion sur les archives compressées, soulignant l'importance des algorithmes de hachage cryptographique pour la récupération. | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_048.jpg\|300]] | La quarante-huitième diapositive décrit le processus de désassemblage de Disarchive, qui extrait les métadonnées des archives compressées. | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_049.jpg\|300]] | La quarante-neuvième diapositive présente le stockage séparé du contenu des fichiers chez Software Heritage et l'assemblage des archives via Disarchive. | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_050.jpg\|300]] | La cinquantième diapositive explique comment récupérer le code source en utilisant le Vault de Software Heritage et Disarchive pour assembler des archives identiques. | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_051.jpg\|300]] | La cinquante-et-unième diapositive montre la couverture par révision Guix échantillonnée, illustrant l'amélioration de la couverture du code source archivé. | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_052.jpg\|300]] | La cinquante-deuxième diapositive décrit les progrès en cours pour améliorer le mécanisme de récupération, y compris le support de plus de formats d'archives. | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_053.jpg\|300]] | La cinquante-troisième diapositive conclut en recommandant de citer et de référencer le code source avec SWHID et d'utiliser Guix pour garantir la reproductibilité. | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_054.jpg\|300]] | La cinquante-quatrième diapositive souligne l'importance de l'archivage du code source pour améliorer la recherche ouverte. | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_055.jpg\|300]] | La cinquante-cinquième diapositive invite à poser des questions et fournit des contacts pour Guix et Software Heritage, tout en mentionnant que les diapositives sont archivées. | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_056.jpg\|300]] | La cinquante-sixième diapositive est un appendice, sans détails supplémentaires fournis. | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_057.jpg\|300]] | La cinquante-septième diapositive montre un exemple de récupération VCS, illustrant les défis rencontrés lors de l'accès aux dépôts Git. | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_058.jpg\|300]] | La cinquante-huitième diapositive présente un exemple de récupération de tarball, montrant comment Disarchive et Software Heritage collaborent pour assembler des fichiers. | ![[FOSDEM 2025/assets/Guix-Software-Heritage-Source-Code-Archiving-to-th/preview_059.jpg\|300]] | La cinquante-neuvième diapositive présente un exemple de bugs liés à des hachages de sha256 manquants, illustrant les défis de la récupération du code source. ## Liens [Slides](https://fosdem.org/2025/events/attachments/fosdem-2025-5897-guix-software-heritage-source-code-archiving-to-the-rescue-of-reproducible-deployment/slides/237921/FOSDEM25-_lctdtLk.pdf) [GNU Guix](https://guix.gnu.org/) [Guix for Science and HPC](https://hpc.guix.info) [Software Heritage](https://www.softwareheritage.org) [Source Code Archiving to the Rescue of Reproducible Deployment (paper)](https://doi.org/10.1145/3641525.3663622) [Video recording (MP4)](https://video.fosdem.org/2025/aw1126/fosdem-2025-5897-guix-software-heritage-source-code-archiving-to-the-rescue-of-reproducible-deployment.av1.mp4) [Video recording subtitle file (VTT)](https://video.fosdem.org/2025/aw1126/fosdem-2025-5897-guix-software-heritage-source-code-archiving-to-the-rescue-of-reproducible-deployment.vtt) [Video recording (AV1/WebM)](https://video.fosdem.org/2025/aw1126/fosdem-2025-5897-guix-software-heritage-source-code-archiving-to-the-rescue-of-reproducible-deployment.av1.webm) [Chat room(web)](https://fosdem.org/2025/chat/) [Chat room(app)](https://fosdem.org/2025/chat/app)