J'ai toujours trouvé le navigateur de code source de Launchpad extrêmement utile lorsque j'ai besoin de créer un lien vers le code d'emballage dans une réponse. Le modèle d'URL est assez simple (https://code.launchpad.net/ubuntu/+source/<package>
) pour que je puisse souvent simplement remplacer le dernier mot après avoir tapé code
dans ma barre d'adresse. Mais dernièrement, j'ai constaté qu'il était de plus en plus incohérent de trouver le code d'emballage réel.
Par exemple:
Notez qu’aucun référentiel Git n’est répertorié pour les packages GDM. D'autres comme GDM: Bazar lui-même , LightDM , zsh , Chrome , ...
Où est passé tout ce code d'emballage?
Notez que je ne veux pas télécharger le code d’emballage, j’ai apt-get source
pour ça. Je ne veux pas parcourir le code source du logiciel, je chercherais cela en dehors de LP (sauf si le logiciel est développé sur LP). Je souhaite parcourir le code d’emballage d’Ubuntu en ligne et pouvoir y accéder. Pour Debian, je peux généralement déterrer l’emballage sur Alioth .
Réponse courte: pour tout avoir, vous devez télécharger les paquetages source individuellement; Il n’existe pas à l’heure actuelle de service de navigation public unique pour Ubuntu. Mais on y travaille!
Longue réponse:
Le code source canonique de tout Ubuntu est disponible en tant que paquet source. Vous pouvez aller sur https://launchpad.net/ubuntu/+source/hello , par exemple, cliquez sur l'un des numéros de version et téléchargez les sources à partir de la section Téléchargements. Pour trouver le code source de chaque version de hello publiée par Ubuntu, vous pouvez suivre le lien pour afficher son historique complet de la publication et cliquer sur l'une des chaînes de numéro de version. Le même modèle d'URL fonctionne pour n'importe quel paquet source; il vous suffit de connaître le nom du paquet source.
Les paquets sources sont canoniques car ils constituent l'unité de base avec laquelle les développeurs Ubuntu travaillent pour développer Ubuntu. Mais ils sont un peu difficiles à manier; Décompresser un paquet source nécessite un peu d’outillage. dget
, à partir du package devscripts
, peut télécharger, vérifier et décompresser un package source en une seule commande si vous lui attribuez l'URL du fichier dsc.
Ce n'est bien sûr pas très pratique.
Il y a des années, il y avait un effort pour améliorer cela. Ubuntu l'a appelé "Développement distribué Ubuntu", ou UDD en abrégé, et a développé un système de contrôle de version distribué appelé Bazaar pour tenter de résoudre ce problème. Dans le cadre de cet effort, les packages source ont été automatiquement importés dans la plate-forme d'hébergement Bazaar VCS sur Launchpad au fur et à mesure de leur publication. À ce moment-là, vous pourriez théoriquement trouver le code source de n'importe quel paquet sur code.launchpad.net
. Par exemple, vous pouvez toujours voir les sources importées par Bazaar pour le paquetage hello
des versions de Precise and Trusty Ubuntu à l’adresse https://code.launchpad.net/ubuntu/+source/hello =.
Bazaar s'est concentré sur un ensemble spécifique de cas d'utilisation et disposait d'une interface de ligne de commande très bien pensée. Jelmer Vernooij, un de ses développeurs, a écrit ne rétrospective intéressante sur le développement de Bazaar , indiquant notamment comment cela s’intégrait avec les autres systèmes de contrôle de version distribués en cours de développement.
Avec le temps, Git a conquis le monde et Bazaar a pris le siège arrière. Pendant ce temps, UDD avait commencé à montrer ses faiblesses. Un nombre croissant de packages n'ont pas pu être importés et ont besoin d'une intervention manuelle pour y remédier. Cela signifiait que, même si le développement Ubuntu sur les paquetages source se poursuivait, la vue Bazar de ces paquets à l'adresse code.launchpad.net
ne parvenait pas à être mise à jour.
Finalement, l'importateur UDD a été désactivé car personne ne le maintenait et il n'était pas jugé utile de le laisser fonctionner.
Parallèlement à cela, en 2014, j'ai publié quelques notes sur la façon dont j'utilisais git pour effectuer le développement Ubunt ; bien qu'à l'époque, les paquets Ubuntu n'étaient pas gérés de manière générale dans git.
Ce flux de travail basé sur git a été adopté par mon équipe (l'équipe du serveur Ubuntu) et nous avons continué à travailler pour rendre les sources Ubuntu disponibles via git. Un collègue et moi avons commencé à écrire un série de blogs (inachevée) expliquant ce que nous faisons.
Les référentiels git que vous avez trouvés pour certains paquetages sont le résultat de notre importateur (~usd-import-team
). Nous travaillons toujours activement sur ce point, c'est pourquoi tous les packages ne sont pas encore disponibles de cette manière. Nous n'en sommes pas encore au stade "bêta", nous prévoyons de réimporter tous les paquets avant d'être prêts (en supprimant tous les hachages de validation précédents) et nous ne maintenons pas encore tous les référentiels importés à jour avec les derniers travaux de développement Ubuntu. Mais lorsque nous avons importé une version particulière d’un package, celle-ci doit être suffisamment précise pour pouvoir être explorée.
Nous espérons pouvoir importer tous les packages et les maintenir automatiquement à jour au cours des prochains mois.
L'un de nos objectifs est précisément de résoudre la question que vous vous posez: disposer d'un seul emplacement officiel sur Launchpad où tout le code source d'Ubuntu peut être consulté.