qu’est‐ce qu’un développeur debian ? comment le...
TRANSCRIPT
Qu’est‐ce qu’un Développeur Debian ?
Comment le devient‐on ?
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Présentation du speaker :
Utilisateur de Debian depuis 2001Impliqué depuis 2006Aussi Ubuntu Developer
Développeur de Scilab depuis 2006Co-fondateur de Scilab Enterprises
Community manager pour IRILL
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
C'est quoi une distribution (Linux ou autre) ?
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Dans le passé
Deux acteurs :● Upstream● L'utilisateur
La compilation était faite sur chaque machine par chaque utilisateur
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Dans le passé
1) Téléchargement de l'archive2) Décompresser l'archive3) ./configure4) make5) make install
● Pénible● Dépendences de compilation non disponible ● Souvent des erreurs (symbol not found)● Bug de compilation● Ca ne passe pas à l'échelle
(Debian = 3000 nouvelles versions par mois)
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Maintenant
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Grâce aux distributions
Trois acteurs :● Upstream● La distribution● L'utilisateur
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Simplification de la gestion des logiciels
Le travail de compilation est fait en amont par des packagers
Offre un contexte d'installation et de configuration
Le packager, « expert », sert d'interface avec upstream.
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
C'est quoi Debian ?
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Un logo super cool !
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Distribution créée en 93 par Ian Murdock
Objectifs :● Rendre GNU/Linux compétitif face aux OS
commerciaux
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Ca, c'est fait !Ca, c'est fait !
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Autres objectifs :
● Facile d'installation● Construit de manière collaborative par des experts logiciels● Conçu en respectant l'esprit GNU
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Une des plus grande bibliothèque :49 317 packages binaires
2.0 2.1 2.2 3.0 3.1 4.0 5.0 6.00
5000
10000
15000
20000
25000
30000
Source packages Binary packages
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Une release tous les ~24 mois
Une douzaine d'architectures officielles :alpha, amd64, arm, armel, armhf, hppa, hurd-i386, i386, ia64, kfreebsd-amd64, kfreebsd-i386, m68k, mips, mipsel, powerpc, ppc64,
s390, s390x, sh4, sparc, sparc64
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Prochaine release : wheezyProbablement début de l'année 2013
Actuellement en freeze
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Organisation du projet
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Debian est une entitée indépendante :● Pas d'employé● Pas de contraintes liés à un supérieur ou d'intérêts supérieurs● Décentralisé
=> Seule distribution majeure dans ce cas (Ubuntu, Fedora, OpenSuse, ...)
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Organisation du projet
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Mélange de démocratie (DPL)et de doocratie (c'est celui qui fait qui décide)
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Régi par trois documents principaux :
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Le contrat social
● Debian restera un projet entièrement libre.● Tous les nouveaux développements reviendront à la communauté.● La transparence est un bien acquis.● Les utilisateurs et le logiciel libre sont les priorités du projet.● Exceptions aux principes du logiciel libre (ie : non-free) prévus pour répondre à tous les besoins
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Debian Free Software Guidelines (DFSG)● Free redistribution.● Inclusion of source code.● Allowing for modifications and derived works.● Integrity of the author's source code (as a compromise).● No discrimination against persons or groups.● No discrimination against fields of endeavor, like commercial use.● The license needs to apply to all to whom the program is redistributed.● License must not be specific to Debian, basically a reiteration of the previous point.● License must not contaminate other software.● The GPL, BSD, and Artistic licenses are examples of licenses considered free.
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Constitution
● Règles définissants les pouvoirs de chacun● Responsabilités● Rôles● Décris les méthodes de vote (Concordet)● ...
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Derivatives
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Debian : Source de nombreuses derivatives
~ 140 distributions basées sur Debian
● Assurances en terme de qualité et de licence● Système de base solide● Enorme base de packages● Un système universel, parfait pour les adaptations
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Un exemple : Ubuntu
● Cible : le desktop● Très populaire (beaucoup plus que Debian)● Se synchronise après chaque release contre Debian (testing ou unstable)● De nombreux DD sont aussi dev Ubuntu● Nouveaux packages uploadés dansDebian avant Ubuntu
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Des nouvelles problématiques
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Debian Developer ? Debian Maintainer ?
Contributeur ?
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Projet ouvert et accessible à tous …
mais qui nécessite des compétences (et savoir RFTM)
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Contributeur « lambda »
Soumettre des bugs = contribuer !(surtout avec un patch associé)
Command : reportbug
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Contributeur « lambda »
Traduction (site web, debconf, etc)Communication (DPN, etc)
...
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Quelques statistiques
● DD : 963● DD (no-upload) : 5● DM : 167
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Web of trust ?
Signature GPGClé signée par deux membres du projet
Permet un correspondance entre l'identité Internet et réelle
… nécessaire
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Debian Maintainer
Donne un status officiel à des contributeurs débutants ou occasionnels
Relativement facile et rapide à obtenir
mais …Ne peut uploader que sur les packages dont il a
autorité
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Debian Maintainer
Doit passer par un DD pour un nouveau packageN'a pas accès aux porterboxes
Pas d'adresse mail @debian.orgPas de droit de vote
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Debian Maintainer
On devient DM sur recommandation d'un Debian Developer
… après avoir fait ses preuves
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Devenir Debian Developer ?
Processus : New Member (NM)http://nm.debian.org/
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Devenir Debian Developer ?
Avoir été DM précédementBesoin d'être recommandé officiellement par un DD
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Devenir Debian Developer ?
Vérifications sur le travail précédement réalisé dans Debian
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Série de questions :● Licences● Organisationnelles=> Philosophy and Procedures
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Série de questions (suite) :● Techniques● Exercices=> Tasks and Skills
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Acceptation (ou refus) par l'Application Manager (AM)Validation par le DAMCréation des comptes
=> Bien joué, vous êtes DD !
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
En quoi consiste le travail de Debian Developer ?
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Packaging de nouvelles bibliothèques et programmes
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Maintenance de ses packages :
● Nouvelles versions● Correction de bugs (packaging ou upstream)● Ajout de fonctionnalités (ex : options –enable-jupiler)● Mise à jour des dépendances (transitions)● Mise à jour du packages suite aux changements de la policy
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Reprise de packages orphelins (RFA)
$ wnpp-alert |grep ^O$ wnpp-alert |grep ^OO 487125 apt-rdepends -- Recursively lists package dependenciesO 487125 apt-rdepends -- Recursively lists package dependenciesO 580680 enchant -- a wrapper library for various spell checkersO 580680 enchant -- a wrapper library for various spell checkersO 636410 flip -- convert text file line endings between Unix and DOS formatsO 636410 flip -- convert text file line endings between Unix and DOS formatsO 479397 gutenprint -- printer drivers for CUPSO 479397 gutenprint -- printer drivers for CUPSO 543847 libcdaudio -- library for CDDA playback controlO 543847 libcdaudio -- library for CDDA playback controlO 555893 libdiscid -- Library for creating MusicBrainz DiscIDsO 555893 libdiscid -- Library for creating MusicBrainz DiscIDsO 674880 libgii -- General Input Interface runtime librariesO 674880 libgii -- General Input Interface runtime librariesO 509815 libiodbc2 -- iODBC Driver ManagerO 509815 libiodbc2 -- iODBC Driver ManagerO 628474 libofa -- Library for acoustic fingerprintingO 628474 libofa -- Library for acoustic fingerprintingO 646655 libvisual -- Audio visualization frameworkO 646655 libvisual -- Audio visualization frameworkO 641060 libvisual-plugins -- Audio visualization framework pluginsO 641060 libvisual-plugins -- Audio visualization framework pluginsO 658774 openhackware -- OpenFirmware emulator for PowerPCO 658774 openhackware -- OpenFirmware emulator for PowerPCO 668201 php-elisp -- emacs support for php filesO 668201 php-elisp -- emacs support for php filesO 358521 sgml-data -- common SGML and XML dataO 358521 sgml-data -- common SGML and XML dataO 666490 svgalib -- console SVGA display librariesO 666490 svgalib -- console SVGA display librariesO 674887 vbetool -- run real-mode video BIOS code to alter hardware stateO 674887 vbetool -- run real-mode video BIOS code to alter hardware stateO 652225 zvbi -- Vertical Blanking Interval (VBI) utilitiesO 652225 zvbi -- Vertical Blanking Interval (VBI) utilities
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Aider d'autres DM/DD (RFH) $ wnpp-alert |grep ^RFH$ wnpp-alert |grep ^RFHRFH 567955 apt-xapian-index -- maintenance tools for a Xapian index of Debian packagesRFH 567955 apt-xapian-index -- maintenance tools for a Xapian index of Debian packagesRFH 583826 chromium-browser -- Chromium browserRFH 583826 chromium-browser -- Chromium browserRFH 660685 gnupg -- GNU privacy guard - a free PGP replacementRFH 660685 gnupg -- GNU privacy guard - a free PGP replacementRFH 248397 grub2 -- GRand Unified BootloaderRFH 248397 grub2 -- GRand Unified BootloaderRFH 679249 libburn -- library to provide CD/DVD writing functionsRFH 679249 libburn -- library to provide CD/DVD writing functionsRFH 534999 libcap2 -- support for getting/setting POSIX.1e capabilitiesRFH 534999 libcap2 -- support for getting/setting POSIX.1e capabilitiesRFH 678382 libept -- High-level library for managing Debian package informationRFH 678382 libept -- High-level library for managing Debian package informationRFH 679254 libisofs -- library to create ISO9660 imagesRFH 679254 libisofs -- library to create ISO9660 imagesRFH 419523 libreoffice -- office productivity suiteRFH 419523 libreoffice -- office productivity suiteRFH 527482 mtr -- Full screen ncurses and X11 traceroute toolRFH 527482 mtr -- Full screen ncurses and X11 traceroute toolRFH 354174 nas -- The Network Audio SystemRFH 354174 nas -- The Network Audio SystemRFH 512360 openldap -- OpenLDAP server, libraries, and utilitiesRFH 512360 openldap -- OpenLDAP server, libraries, and utilitiesRFH 332498 openssl -- Secure Socket Layer (SSL) binary and related cryptographic toolsRFH 332498 openssl -- Secure Socket Layer (SSL) binary and related cryptographic toolsRFH 664595 php5 -- server-side, HTML-embedded scripting languageRFH 664595 php5 -- server-side, HTML-embedded scripting languageRFH 589632 ppp -- Point-to-Point Protocol (PPP) - daemonRFH 589632 ppp -- Point-to-Point Protocol (PPP) - daemonRFH 543541 quilt -- Tool to work with series of patchesRFH 543541 quilt -- Tool to work with series of patchesRFH 654116 screen -- terminal multiplexor with VT100/ANSI terminal emulationRFH 654116 screen -- terminal multiplexor with VT100/ANSI terminal emulationRFH 640976 serna-free -- Graphical XML editorRFH 640976 serna-free -- Graphical XML editorRFH 676314 spamassassin -- seeking co-maintainersRFH 676314 spamassassin -- seeking co-maintainersRFH 660687 xml-core -- XML infrastructure and XML catalog file supportRFH 660687 xml-core -- XML infrastructure and XML catalog file support
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Porter Debian sur de nouvelles architectures.
● Travaux récents sur s390x (ou raspberry, non officiel)● Problématique intéressante de bootstrap
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Intégrer des nouveaux kernels dans Debian
● Kfreebsd, HURD● Travaux autour du kernel Illumos (anciennement OpenSolaris)
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Travail sur l'assurance qualité (QA)
● Améliorer les outils de QA● Améliorer les sites web Debian● Rebuild de l'archive périodique (GRID 5000 ou Amazon EC2)● ...
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Participer à la Release Team
● Travail sur la prochaine release● Correction de bugs critiques● Gestion des transitions● ...
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Infrastructure
● Maintenir l'ensemble de la plateforme● Porterbox● Services du projet
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Exemples de tâches dans Debian
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Maintenance de Scilab et de ses dépendances
● Packages : atlas, blas, lapack, arpack-ng, flexdock, jgraphx, jogl{1,2}, etc...● Bonne connaissance de leur fonctionnement et bugs● Plus d'impact d'utiliser mon adresse @debian.org● Profite des outils de QA de Debian● Intéressant pour mon employeur
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Un de mes toy projects
● Recompiler l'ensemble de Debian avec un nouveau compilateur C/C++/ObjC● Gcc : compilateur principal (unique?) dans Debian● Propose d'utiliser clang à la place (basé sur LLVM)
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Mise en place d'une infrastructure parallèle
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Mise à jour des build chains pour recompiler les packages avec un autre compilateur : /usr/bin/cc /
/usr/bin/c++
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Découplage de gcc dans Debian
Discussion pour faire un objectif officiel du projet :● Intégration dans la policy Debian● En faire un release goal pour Jessie ou Jessie+1
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Comment commencer ?
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Start small !
● Aider sur des packages RFA/RFH● Corriger des bugs ● Proposer des nouveaux packages (mentor)● Trouver un mentor dans le projet
Et surtout :● Don't panic ! ● Ne pas complexer !
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Pour celà
● Lire les docs● S'inscrire sur des listes de diffusion● Regarder comment Debian fonctionne (technique et social)● Participer à des conférences Debian
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Pub : mini debconf à Paris
● 24 et 25 novembre 2012● A l'EPITA● Plus d'infos sur :http://wiki.debconf.org/wiki/Miniconf-Paris/2012
● FOSDEM : Cross distro room
●Debconf 13 / Juillet 2013 : en Suisse
20 Septembre 2012Jeudi du libre Debian Developer ?
Sylvestre Ledru
Questions ? Remarques ? Troll ? (+1)
Remerciement à Stefano Zacchiroli