18
Pourquoi et comment faire sa première contribution à Debian ? Lucas Nussbaum [email protected] Lucas Nussbaum Faire sa première contribution à Debian 1 / 18

Pourquoi et comment faire sa première contribution à Debian · 2011. 10. 12. · Introduction Debian Plus grosse distribution communautaire Partie intégrante de l’histoire du

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Pourquoi et comment faire sa première contribution à Debian · 2011. 10. 12. · Introduction Debian Plus grosse distribution communautaire Partie intégrante de l’histoire du

Pourquoi et comment fairesa première contribution à Debian ?

Lucas [email protected]

Lucas Nussbaum Faire sa première contribution à Debian 1 / 18

Page 2: Pourquoi et comment faire sa première contribution à Debian · 2011. 10. 12. · Introduction Debian Plus grosse distribution communautaire Partie intégrante de l’histoire du

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

Page 3: Pourquoi et comment faire sa première contribution à Debian · 2011. 10. 12. · Introduction Debian Plus grosse distribution communautaire Partie intégrante de l’histoire du

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

Page 4: Pourquoi et comment faire sa première contribution à Debian · 2011. 10. 12. · Introduction Debian Plus grosse distribution communautaire Partie intégrante de l’histoire du

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

Page 5: Pourquoi et comment faire sa première contribution à Debian · 2011. 10. 12. · Introduction Debian Plus grosse distribution communautaire Partie intégrante de l’histoire du

... 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

Page 6: Pourquoi et comment faire sa première contribution à Debian · 2011. 10. 12. · Introduction Debian Plus grosse distribution communautaire Partie intégrante de l’histoire du

... 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

Page 7: Pourquoi et comment faire sa première contribution à Debian · 2011. 10. 12. · Introduction Debian Plus grosse distribution communautaire Partie intégrante de l’histoire du

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

Page 8: Pourquoi et comment faire sa première contribution à Debian · 2011. 10. 12. · Introduction Debian Plus grosse distribution communautaire Partie intégrante de l’histoire du

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

Page 9: Pourquoi et comment faire sa première contribution à Debian · 2011. 10. 12. · Introduction Debian Plus grosse distribution communautaire Partie intégrante de l’histoire du

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

Page 10: Pourquoi et comment faire sa première contribution à Debian · 2011. 10. 12. · Introduction Debian Plus grosse distribution communautaire Partie intégrante de l’histoire du

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

Page 11: Pourquoi et comment faire sa première contribution à Debian · 2011. 10. 12. · Introduction Debian Plus grosse distribution communautaire Partie intégrante de l’histoire du

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

Page 12: Pourquoi et comment faire sa première contribution à Debian · 2011. 10. 12. · Introduction Debian Plus grosse distribution communautaire Partie intégrante de l’histoire du

debian/rules

Makefile(Presque) personne ne l’écrit à la mainHelpers: debhelper, cdbs

Lucas Nussbaum Faire sa première contribution à Debian 12 / 18

Page 13: Pourquoi et comment faire sa première contribution à Debian · 2011. 10. 12. · Introduction Debian Plus grosse distribution communautaire Partie intégrante de l’histoire du

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

Page 14: Pourquoi et comment faire sa première contribution à Debian · 2011. 10. 12. · Introduction Debian Plus grosse distribution communautaire Partie intégrante de l’histoire du

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

Page 15: Pourquoi et comment faire sa première contribution à Debian · 2011. 10. 12. · Introduction Debian Plus grosse distribution communautaire Partie intégrante de l’histoire du

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

Page 16: Pourquoi et comment faire sa première contribution à Debian · 2011. 10. 12. · Introduction Debian Plus grosse distribution communautaire Partie intégrante de l’histoire du

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

Page 17: Pourquoi et comment faire sa première contribution à Debian · 2011. 10. 12. · Introduction Debian Plus grosse distribution communautaire Partie intégrante de l’histoire du

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

Page 18: Pourquoi et comment faire sa première contribution à Debian · 2011. 10. 12. · Introduction Debian Plus grosse distribution communautaire Partie intégrante de l’histoire du

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