Pourquoi et comment faire sa première contribution à Debian · 2011. 10. 12. · Introduction...
Transcript of Pourquoi et comment faire sa première contribution à Debian · 2011. 10. 12. · Introduction...
Pourquoi et comment fairesa première contribution à Debian ?
Lucas [email protected]
Lucas Nussbaum Faire sa première contribution à Debian 1 / 18
Moi
Ingénieur ENSIMAG 2005Doctorant en fin de thèse, enseignant à l’IUT2 de Grenoble(bientôt à l’univ. Lyon 1)Utilisateur de Debian depuis 2002Actif dans son développement depuis 2005Entré dans NM en septembre 2005, DD depuis fin 2006
Dans Debian:Co-maintenance de l’interpréteur Ruby et de bibliothèquesRubyQuality Assurance
Lucas Nussbaum Faire sa première contribution à Debian 2 / 18
Introduction
DebianPlus grosse distribution communautairePartie intégrante de l’histoire du Logiciel Libre
ChiffresBientôt 15 ans12000 paquets source20000 paquets binairesUne dizaine d’architectures supportées
Lucas Nussbaum Faire sa première contribution à Debian 3 / 18
Introduction
Une communauté vivante et indépendanteenviron 600 développeurs actifs, avec des expertisesvariéesBase de nombreux succès
Lucas Nussbaum Faire sa première contribution à Debian 4 / 18
... mais pourquoi vous ?
Vous pouvez faire une différenceVous avez (forcément) des besoins spécifiquesDebian a besoin de vous
De nombreux paquets sont pas/mal maintenusDe nombreuses équipes sont surchargées
Participer à Debian est devenu plus facileDéveloppement organisé en équipes (environ 80équipes différentes) -http://wiki.debian.org/TeamsDebian Maintainers
Lucas Nussbaum Faire sa première contribution à Debian 5 / 18
... et pourquoi pas Ubuntu ?
Communauté d’utilisateurs très active (mais un peu jeune)Processus moins carré que DebianMoins de notion de propriété de paquets (compétencesplus dilluées)Pour la plupart des paquets, le vrai travail est fait dansDebian. Ubuntu se contente de gérer la divergence.
La plupart des décisions sont prises par CanonicalLa vraie question: acceptez-vous de travailler(gratuitement) pour Canonical ?
Lucas Nussbaum Faire sa première contribution à Debian 6 / 18
Comment faire son premier patch ?
Objectif : Donner les bases vous permettant de modifier unpaquet
Ceci n’est pas un cours de Packaging !
Documents utiles:Debian New Maintainer’s GuideDebian Developers ReferenceDebian Policy
Paquets utiles: build-essential, devscripts
Attention: quelques simplifications (volontaires !)
Lucas Nussbaum Faire sa première contribution à Debian 7 / 18
Paquet source, paquet binaire
1 paquet source génère 1 ou plusieurs paquets binaires
1 paquet binaire peut fonctionner sur toutes les architectures(Architecture: all) ou devoir être compilé sur chaquearchitecture par les buildds.
Lucas Nussbaum Faire sa première contribution à Debian 8 / 18
Paquet source
fichier .dsc, et d’autres fichierscas le plus courant:
cowsay_3.03-9.1.dsc: fichier de descriptioncowsay_3.03.orig.tar.gz: archive upstreamcowsay_3.03-9.1.diff.gz: différences parrapport à upstream
manipulation avec dpkg-sourcerécupérer un paquet source:apt-get source cowsay oudget http://somewhere/cowsay_3.03-9.1.dsc.
Lucas Nussbaum Faire sa première contribution à Debian 9 / 18
Répertoire debian/
control
changelog (installé dans/usr/share/doc/<paquet>/changelog.Debian.gz)rules
et d’autres !
Lucas Nussbaum Faire sa première contribution à Debian 10 / 18
debian/control
Source: cowsaySection: gamesPriority: optionalMaintainer: Franz Pletz <[email protected]>Build-Depends: debhelper (>= 5)Homepage: http://www.nog.net/~tony/warez/cowsay.shtmlStandards-Version: 3.7.3
Package: cowsayArchitecture: allDepends: ${perl:Depends}Recommends: filtersDescription: A configurable talking cowCowsay (or cowthink) will turn text into happy ASCII cows, withspeech (or thought) balloons. If you don’t like cows, ASCII art isavailable to replace it with some other creatures (Tux, the BSDdaemon, dragons, and a plethora of animals, from a turkey toan elephant in a snake).
Lucas Nussbaum Faire sa première contribution à Debian 11 / 18
debian/rules
Makefile(Presque) personne ne l’écrit à la mainHelpers: debhelper, cdbs
Lucas Nussbaum Faire sa première contribution à Debian 12 / 18
debhelper et cdbs
Debhelper:Commandes dh_* permettant de simplifier les tâchescourantes.Exemples:
dh_installchangelogs ChangeLogdh_compressdh_md5sums
controlables via arguments, ou via fichiers spécifiquesdans debian/
CDBS:Ensemble de classes pour Make automatisant l’appel àdh_* (dans le bon ordre !)Rend debian/rules très (trop ?) simple
Lucas Nussbaum Faire sa première contribution à Debian 13 / 18
Apporter des modifications
nécessaire (bugfixes, intégration)2 solutions:
Modifier directement le source upstreamUtiliser un patch system
Lucas Nussbaum Faire sa première contribution à Debian 14 / 18
Patch systems
simple-patchsys.mk (cdbs), dpatch, quiltPermet de séparer et de documenter chaque changementfait au source upstreamPatches dans debian/patches/ (généralement)debian/rules patch/unpatch
Lucas Nussbaum Faire sa première contribution à Debian 15 / 18
Construire ("builder") un paquet
dpkg-buildpackage
Génère les paquets binaires pour votre architecturePour installer les build-dependencies:apt-get build-dep cowsay
Pour construire dans un environnement propre: pbuilder
Lucas Nussbaum Faire sa première contribution à Debian 16 / 18
Exporter les changements
debdiff
sur les fichiers .dsc: voir les changements entre lespaquets sourcesur les fichiers .changes: voir aussi les changements entreles paquets binaires
Lucas Nussbaum Faire sa première contribution à Debian 17 / 18
Et ensuite ?
Envoyer le patch sur le BTS (mail à[email protected])Rejoindre une équipe de maintenanceRTFM :-)Corriger des bugs critiquesAdopter un paquet orphelin, ou packager un nouveaulogicielTrouver un sponsorDevenir Debian MaintainerDevenir DDAller dans l’espaceChanger le monde
[email protected] Nussbaum Faire sa première contribution à Debian 18 / 18