Software Heritage, le défi d'une archive mondiale du code source

Software Heritage, le défi d’une archive mondiale du code source

Internet n'oublie rien

Avatar de l'auteur
Guénaël Pépin

Publié dans

Logiciel

14/06/2018 11 minutes
21

Software Heritage, le défi d'une archive mondiale du code source

Lancé il y a trois ans, Software Heritage ouvre officiellement ses portes, avec le soutien de grands noms du numérique. Le projet, d'abord soutenu par Inria, n'est pourtant pas au bout de ses peines pour archiver tous les logiciels de la planète. Nous en discutons avec son fondateur, Roberto Di Cosmo.

Une bibliothèque mondiale, contenant tout le code source jamais produit. C'est l'ambition de Software Heritage, dont l'archive est ouverte au public depuis quelques jours. « Après trois ans acharnés à construire l'infrastructure, à collecter les données, à les indexer... on est très contents d'ouvrir les portes de l'archive ! » nous lance le chercheur Roberto Di Cosmo, qui dirige une équipe d'une dizaine de personnes, dont six à plein temps.

Le projet, d'abord soutenu par Inria, gagne ici une dizaine de financeurs privés, même si près de la moitié du budget vient toujours de l'institut français. Avec un financement entre 800 000 et un million d'euros par an, le projet compte devenir une fondation, garante de ce patrimoine, comme l'Internet Archive l'est pour le web.

Software Heritage se voit surtout comme une infrastructure, autant utile à des organisations culturelles qu'aux industriels, aux chercheurs ou aux enseignants. Avec plus de 83 millions de projets et 4,5 milliards de fichiers en banque, l'archive n'en est qu'à ses balbutiements. Les difficultés techniques, juridiques et financières sont nombreuses, tout comme les surprises pour Roberto Di Cosmo.

Une initiative nouvelle, mais une idée qui date

L'idée est née en 2014, avec de premiers travaux discrets à l'été 2015. L'annonce ne date que de juin 2016. « On vient du monde du logiciel libre. On préfère d'abord faire les choses, puis en parler. Ce n'est pas comme une start-up, c'est une autre approche » justifie Di Cosmo, dont le projet ne présentait que la taille de l'archive, sans accès, à l'époque.

Début 2017, un partenariat avec l'Unesco lui donne une légitimité politique. Cette première ouverture au public est donc un aboutissement, pour un projet qui se veut pérenne. Étonnamment, Software Heritage serait la première initiative de cette ampleur pour le code source.

La vision n'est pourtant pas nouvelle. Roberto Di Cosmo relève surtout un article de 2006 de Leonard Shustek, le directeur du Musée de l'histoire de l'ordinateur à Mountain View. « Il y avait toutes les bonnes idées ! Il expliquait le besoin de préserver le code source. Mais ils ne l'ont pas fait » regrette le chercheur. Il estime tout de même le moment propice, y compris d'un point de vue technologique.

Software Heritage noyau Linux
Le noyau Linux sur Software Heritage

Un travail de longue haleine, étape par étape

Pour l'instant, Software Heritage s'est concentré sur le code open source, facilement accessible. Comprendre celui disponible sur de grandes plateformes ouvertes comme GitHub, la distribution Debian ou Sourceforge. Ces services sont indexés régulièrement via un crawling automatique.

« Ce sont paradoxalement les codes les plus en danger, comme l'a montré la fermeture de Google Code. En agissant vite, on peut faire quelque chose, sinon on perd tout » explique Roberto Di Cosmo. Disparu en 2016, le service de Google a été rapidement contacté par Software Heritage, qui a obtenu une copie de la base. Grâce à l'intervention de Vinton Cerf, l'un des fondateurs d'Internet, employés par le groupe depuis une décennie. Gitorious, mort en 2015, a aussi mobilisé l'équipe, qui a obtenu des copies par des tiers. « Ça a pris un temps infini. ».

Pour le chercheur, la difficulté à collecter du code repose sur deux critères : techniques et juridiques. Les combinaisons forment un quadrant. Certains seront simples à obtenir des deux points de vue, quand d'autres poseront des problèmes techniques ou légaux, voire les deux.

« Il y a des logiciels pour lesquels nous devons passer par un avocat, des logiciels propriétaires, avec des licences qui ne permettent pas de les réutiliser. D'autres sont perdus. Techniquement, ce n'est pas évident. Des chercheurs ont pu garder des copies ici ou là, sur des bandes magnétiques ou allez savoir où. Il faut donc mettre en place une collecte distribuée (crowdsourcing) du matériel » détaille notre interlocuteur. Les pires cas sont donc les logiciels propriétaires anciens.

Pour autant, « même si c'est ambitieux, sur un demi-siècle [de développement informatique], c'est peut-être jouable », espère Di Cosmo. D'autant que le code informatique est bien plus nombreux et ouvert aujourd'hui, facilitant le travail sur la grande majorité du corpus.

200 To de données en base

L'archive actuelle pèse 200 To, en plus de données historiques sur les projets. Elle est hébergée via trois copies, deux internes au projet et une autre sur le cloud Azure de Microsoft, l'un des principaux sponsors de Software Heritage. Elle discute également d'un partenariat avec l'Internet Archive, mais les négociations patineraient.

La bibliothèque est aidée par les techniques actuelles, comme l'arbre de Merkle, qui permet de dédupliquer les fichiers identiques d'un projet à l'autre. Un avantage par rapport à l'Internet Archive et son historique web lancé en 1996, qui conserve une copie de chaque page, image ou vidéo pour chaque version.

« L'idée était de ne pas avoir une seule copie, ni de l'héberger sur une seule technologie », lance le responsable du projet. « Mais ça ne suffit pas. Imaginez que je deviens fou et que je brûle ces archives. À terme, on compte le déployer sur un réseau de miroirs mondial indépendant. »

Software Heritage ne se pose d'ailleurs pas de limite sur la récupération. Le code source de malwares, par exemple, sera traité comme tout le reste. Aucun tri n'est effectué. « On peut le faire, la taille ne va pas exploser » pense Di Cosmo, qui rappelle qu'un projet peu connu aujourd'hui pourrait devenir essentiel demain, justifiant son archivage. « En 1995, les concepteurs de PHP ne se doutaient pas qu'il deviendrait un langage majeur. »

Les métadonnées, un gros défi

Archiver tout ce code est important, mais encore faut-il lui donner du sens. Le travail sur les métadonnées est encore difficile pour Software Heritage, qui en fait un de ses objectifs de long terme. Noms des projets, auteurs, historiques des contributions, relations entre projets, langage... Ce ne sont que quelques aspects que l'équipe doit traiter. Et elle n'est pas aidée par l'existant.

« Ce suivi est intrinsèque au projet. On veut vraiment une traçabilité absolue de tout ce qu'on contient. Monter d'un niveau [celui des projets] est complexe. On peut se demander si tel projet sur Gitorious correspond bien à tel autre sur Google Code, donc quel est le vrai, qui est derrière, etc. C'est évidemment dans notre radar, mais on ne sait pas le faire » assure encore Di Cosmo.

Problème : l'équipe a répertorié 45 ontologies différentes, c'est-à-dire des manières d'organiser logiquement le code et les projets. « C'est n'importe quoi ! Je ne peux pas appliquer 45 ontologies sur des milliards de fichiers ! » s'agace le chercheur. Software Heritage travaille donc avec des communautés tierces pour trouver des solutions intermédiaires, sans réinventer la roue.

Autre difficulté, l'identification des langages de programmation. Selon l'équipe, il n'existe aucun outil qui puisse reconnaître automatiquement les 8 700 langages répertoriés. « Certains en détectent quelques centaines, les plus populaires. Il faut se débrouiller pour le reste. »

Software Heritage compte aussi lier sa base à Wikipédia, Wikidata, d'autres communautés... Mais rien n'a dépassé le stade des premiers contacts pour le moment.

Software Heritage vérifier présence code
Pour le moment, la plateforme propose de vérifier si un fichier est déjà en base

Des soutiens privés nombreux, dont certains étonnants

L'ouverture de l'archive, il y a quelques jours, correspond aussi à l'arrivée d'une dizaine de sponsors, dont les trois principaux sont Intel, Microsoft et la Société Générale. Le ticket d'entrée, fixé à 100 000 euros, permet donc au projet de compléter le financement d'Inria. L'institut a d'ailleurs eu un rôle essentiel dans la recherche de ces soutiens, assure Di Cosmo, qui espère que Google ira au-delà du financement minimum.

« Par rapport à la tâche, c'est peu, mais c'est déjà un signe très fort qu'ils financent un projet de long terme, qui n'est pas immédiatement un produit ou une promesse de milliards » positive le chercheur. Peu de groupes français ont mis la main à la poche pour le moment. « Orange, Cap Gemini, Atos ou EDF, par exemple, ne se sont pas encore engagés. Ce n'est pas une surprise. En France, on ne veut pas prendre de risque. »

Un revirement pour Microsoft

L'arrivée de Microsoft a de quoi étonner. En 1998, Roberto Di Cosmo avait publié Le hold-up planétaire : la face cachée de Microsoft, tirant à boulets rouges sur le groupe de Redmond. Il y défendait le besoin sociétal du logiciel libre. En 2001, Linux était qualifié de cancer par l'entreprise, hégémonique. Autant dire que la collaboration n'avait rien d'évident.

Depuis, Microsoft affiche son amour du logiciel libre, intégrant notamment un sous-système Linux à Windows 10 et reprenant GitHub à grands frais, avec le soutien de la fondation Linux. Pour Di Cosmo, c'est un vrai revirement. « On travaille avec eux depuis presque deux ans. J'en suis ravi » lance-t-il.

« Il y a 20 ans, Microsoft était mon ennemi numéro un. C'était le diable. Au début, j'étais méfiant ! Je suis allé les voir à Redmond, et je suis étonné de leur changement interne radical. Sur 60 000 ingénieurs, 10 000 ne font que du logiciel libre. Ils ont aussi interdiction de réécrire un bout de logiciel déjà disponible en libre... » conte-t-il.

L'explication reste rationnelle, pour lui : « À l'époque, ils étaient les maitres du monde. Il était très facile d'être dédaigneux, de voir comme des communistes révolutionnaires tous ceux qui sortaient de leur modèle économique. Depuis, le monde a changé. Même si Microsoft reste une énorme entreprise, elle s'interroge sur son futur après Windows ou Office. Le cloud est devenu essentiel. Ils se sont vite aperçus que limiter le cloud Azure à Windows ne marcherait pas ».

Qwant chargé de fournir un moteur de recherche

La société française Qwant, qui a monté un laboratoire avec Inria (voir notre analyse), fournira un moteur de recherche dédié à cette énorme base de code. Selon Tristan Nitot, responsable de l'open source chez Qwant, ce projet s'intègre bien au laboratoire en question. Ce qui veut donc dire qu'il durera au mieux trois à quatre ans.

La société ne signe pas de chèque, mais mobilise une partie de son équipe sur ce moteur (sans plus de détails). « Software Heritage est un travail pour les générations futures. Il faut le faire maintenant » estime Tristan Nitot, pour qui le logiciel libre est l'une des principales aides aux jeunes pousses, fournissant de nombreuses briques clés en main.

Il se réfère d'ailleurs au hype cycle de Gartner, où l'attention vers une tendance nouvelle atteint un pic, avant de plonger... et de remonter pour atteindre une utilisation quotidienne, qui ne fait plus parler. « Le libre est moins hype qu'avant, mais de plus en plus utilisé. Nous n'en sommes pas encore à une vraie compréhension de l'importance des logiciels libres pour une société libre. Les développeurs ont un pouvoir grandissant, il faut leur demander des comptes » pense le fondateur de Mozilla Europe. Alors que Qwant peine encore à libérer son propre code.

Une fondation et des soutiens divers

À long terme, Software Heritage compte devenir une fondation, pour pérenniser la structure et le financement. « Un projet de recherche habituel n'ira pas. Il durera à peine trois, quatre ans. Une start-up ? Pourquoi pas, on récupère facilement des dizaines de millions en faisant croire qu'on fera du machine learning sur le code... Mais que se passe-t-il dans quatre ans ? On n'en sait rien » résume Roberto Di Cosmo.

L'équipe compte donc multiplier les partenaires et les cibles de son infrastructure, pour diluer le risque. La direction de la fondation (indépendante) doit aussi éviter la centralisation.

Pour la suite, Software Heritage mise donc sur des fonctionnalités à valeur ajoutée, comme le moteur de recherche pour justifier son intérêt. Censé être capable de travailler sur un très grand graphe et sur l'historique, il ne faudrait pas forcément l'attendre l'an prochain.

Les cartons contiennent aussi des connexions avec des articles scientifiques parlant des logiciels, des débouchés spécifiques aux industriels... « pour transformer [l'archive] en une sorte de norme pour l'utilisation de code source ouvert ».

« C'est sûrement le moment le plus fascinant et excitant de tout ce que j'ai fait. C'est une mission majeure. C'est la première fois qu'on me dit systématiquement que c'est super, sans jamais demander à quoi cela sert » s'enthousiasme Roberto Di Cosmo. Il rappelle d'ailleurs que le projet est ouvert aux contributions : code, soutien financier, dons... « Toutes les portes sont ouvertes ! »

21

Écrit par Guénaël Pépin

Tiens, en parlant de ça :

Sommaire de l'article

Introduction

Une initiative nouvelle, mais une idée qui date

Un travail de longue haleine, étape par étape

200 To de données en base

Les métadonnées, un gros défi

Des soutiens privés nombreux, dont certains étonnants

Un revirement pour Microsoft

Qwant chargé de fournir un moteur de recherche

Une fondation et des soutiens divers

Commentaires (21)


Excellent !



Je n’ose pas imaginer toutes les galères que ça implique.

Est-ce que les assets seront ajoutés aux codes sources aussi ?

Bonne chance avec la propriété intellectuelle


« On vient du monde du logiciel libre. On préfère d’abord faire les choses, puis en parler. Ce n’est pas comme une start-up, c’est une autre approche »



« Une start-up ? Pourquoi pas, on récupère facilement des dizaines de millions en faisant croire qu’on fera du machine learning sur le code… Mais que se passe-t-il dans quatre ans ? On n’en sait rien »



J’adore sa vision des start-ups… <img data-src=" />


Dans notre discussion, il m’a bien précisé qu’il considère les start-ups comme un modèle viable et valide, mais pas pour ce projet. :)


Du coup ça va servir à quelque chose ?

Quitte à comparer, TheInternetArchive est très peu fourni si l’on s’éloigne des grands sites connus, et donc difficilement utilisable.

Faire la même chose avec le code… j’ai du mal à voir comment ça pourra être efficace. Les éditeurs ne pourraient-ils pas packager et soumettre eux-même le code source des logiciels qu’ils souhaitent archiver ?

Comme une bibliothèque physique : elle ne copie pas tous les bouquins qu’elle croise (ça serait un de ces foutoir…), mais ne garde que ce qu’on lui fournit, et ça marche plutôt bien.



&nbsp;Enfin, et si on parlait du bilan carbone d’une telle sauvegarde ? :)


C’est RGPD compatible ça ?



Pour celles et ceux que ça intéresse, une discussion sur Linux Fr montre que RGPD + code + git c’est un peu une bombe a retardement en fait (obligation de réécrire tout l’historique d’un dépot si un dev demande de retirer les infos le concernant)



https://linuxfr.org/users/peetah/journaux/gitlab-com-interdit-de-supprimer-ou-mo…








grsbdl a écrit :



Les éditeurs ne pourraient-ils pas packager et soumettre eux-même le code source des logiciels qu’ils souhaitent archiver ?



Nous avons un devoir de mémoire sur le code pourris, tout le code pourris qui a existé, pour qu’on ne reproduise plus la même folie <img data-src=" />.



Plus sérieusement, je suppose que c’est pour un aspect idéologique: un code source n’est pas plus important qu’un autre et donc tout mérite d’être archivé…



Après c’est vrai que laisser laisser les éditeurs soumettre leur projet ce serait plus efficace. Néanmoins les exemples d’éditeurs privés qui proposent spontanément leur codes à la disposition de tous sont plutôt rares…&nbsp;



Qui sauvegardera cet héritage ? au cas où il n’y a plus de support financier ou technique dans 30 ans par exemple ? <img data-src=" />









odoc a écrit :



C’est RGPD compatible ça ?





mais de quoi tu parles , quel est le rapport entre le RGPD et du code ?



J’ai bien aimé ces passagse aussi <img data-src=" />



&nbsp;







Gnppn a écrit :



Dans notre discussion, il m’a bien précisé qu’il considère les start-ups comme un modèle viable et valide, mais pas pour ce projet. :)





Justement, une startup n’est pas (encore) viable. Elle a le projet mais pas le business model pour le pérenniser. Si Di Cosmo voit effectivement au delà de 4 ou 5 ans, et qu’il a les partenaires pour, cela a des chances de réussir… au contraire des startups qui ne visent n’ont une visibilité que de quelques mois au mieux.



S’ils mettent ça en libre, il y aura des tas de serveurs pour les accueillir je pense, des serveurs de cuisine ou autres.








odoc a écrit :



C’est RGPD compatible ça ?



Pour celles et ceux que ça intéresse, une discussion sur Linux Fr montre que RGPD + code + git c’est un peu une bombe a retardement en fait (obligation de réécrire tout l’historique d’un dépot si un dev demande de retirer les infos le concernant)



https://linuxfr.org/users/peetah/journaux/gitlab-com-interdit-de-supprimer-ou-mo…





Rien à voir. L’INRIA ne récupère que le code. Pas des données personnelles.&nbsp; Ensuite, concernant Gitlab, il faut bien&nbsp; trouver un moyen d’authentification pour garantir la qualité du code. Une partie de la discussion c’est de la paranoïa ou de la bêtise. En prime, en quoi avoir son nom dans un code qu’on a développé est une donnée sensible surtout si ledit nom est en fait un pseudonyme ?&nbsp; Cela devient sensible, en effet, si le code est malfaisant ou illicite…









numerid a écrit :



Rien à voir. L’INRIA ne récupère que le code. Pas des données personnelles.





Je vais retirer mon trigramme de mes commentaires de programme au boulot, tiens. <img data-src=" />




Hum, je ne suis tombé que sur des projets github, aucun sur sourceforge !



(par exemple freelords, eekeeper, …)



Alors, effectivement l’aide indique bien





  • public repositories from GitHub

  • source packages from the Debian distribution

  • public repositories from the former Gitorious code hosting service

  • public repositories from the former Google Code project hosting service

  • releases from the GNU project (as of August 2015)





    Mais c’est dommage de ne pas sauvergarder les prochains trucs qui risque de disparaitre (sf.net, savannah.gnu.org, …) ainsi que les plugins de framework tel que jquery, wordpress, …



    Il manque un peu de vision sur la roadmap ;)


C’est prévu de récupérer automatiquement le code venant d’autres plateformes. Ils ont proposé des stages à ce propos.


Et au-delà de l’aspect idéologique, ça peut aussi être très intéressant pour la publication scientifique : ça pourrait permettre de citer du logiciel en étant sûr que le lecteur pourra le retrouver, même dans 10 ans. Et c’est très important pour pouvoir reproduire des résultats publiés !


Ce ne sont pas des données personnelles sensibles et j’imagine qu’elles ne font pas l’objet de traitements particuliers hormis savoir qui a pondu telle ligne de code&nbsp; !


cf mon lien.

Mais oui c’est plus métadonnée que code pure (sauf quand les gens mettent des coordonnées directement dans leur code …)








numerid a écrit :



Rien à voir. L’INRIA ne récupère que le code. Pas des données personnelles.  Ensuite, concernant Gitlab, il faut bien  trouver un moyen d’authentification pour garantir la qualité du code. Une partie de la discussion c’est de la paranoïa ou de la bêtise. En prime, en quoi avoir son nom dans un code qu’on a développé est une donnée sensible surtout si ledit nom est en fait un pseudonyme ?  Cela devient sensible, en effet, si le code est malfaisant ou illicite…







Pour le code oui (et encore mon dernier comm), mais pour gitlab ou simplement git, il semble bien y avoir un problème car s’il y a sauvegarde du dépot, y a aussi sauvegarde de l’historique non ?



Et pour le RGPD on parle pas de données sensibles mais de donnée perso dont les nom/prenom et mail font partie. Donc si une personne demande la suppression de ces données (dans le cadre d’un dev opensource par ex), bah en théorie faut retirer les infos des dépôts.



Les infos sont nécessaires au fonctionnement et, apparemment elles sont protégées ni utilisées pour autre chose que le fonctionnement de Gitlab. Même si l’historique est sauvegardé ailleurs, elles restent protégées. Bref, je ne vois de contradiction avec le RGPD.


En fait moi non plus, je fais le même constat. Mais techniquement on est sur de la jurisprudence qui n’existe pas encore. Donc on peut très bien avoir une décision qui va dans l’autre sens un jour … (euh par contre l’historique d’un dépot c’est public à partir du moment où tu as accès au dépot non ? )


@Gnppn : c’est “ontologie”, pas “anthologie”. &nbsp;:-)

Projet remarquable, en tout état de cause.