Qu’est‐ce qu’un Développeur Debian ?
Comment le devient‐on ?
20 Septembre 2012
Jeudi du libre Debian Developer ?
Sylvestre Ledru
Présentation du speaker : Utilisateur de Debian depuis 2001
Impliqué depuis 2006
Aussi Ubuntu Developer
Développeur de Scilab depuis 2006 Co-fondateur de Scilab Enterprises Community manager pour IRILL
20 Septembre 2012
Jeudi du libre Debian Developer ?
Sylvestre Ledru
C'est quoi une distribution (Linux ou autre) ?
20 Septembre 2012
Jeudi 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 2012
Jeudi du libre Debian Developer ?
Sylvestre Ledru
Dans le passé
1) Téléchargement de l'archive 2) Décompresser l'archive
3) ./configure 4) make
5) 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 2012
Jeudi du libre Debian Developer ?
Sylvestre Ledru
Maintenant
20 Septembre 2012
Jeudi du libre Debian Developer ?
Sylvestre Ledru
Grâce aux distributions
Trois acteurs :
● Upstream
● La distribution
● L'utilisateur
20 Septembre 2012
Jeudi 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 2012
Jeudi du libre Debian Developer ?
Sylvestre Ledru
C'est quoi Debian ?
20 Septembre 2012
Jeudi du libre Debian Developer ?
Sylvestre Ledru
Un logo super cool !
20 Septembre 2012
Jeudi 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 2012
Jeudi du libre Debian Developer ?
Sylvestre Ledru
Ca, c'est fait ! Ca, c'est fait !
20 Septembre 2012
Jeudi 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 2012
Jeudi 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.0
0 5000 10000 15000 20000 25000 30000
Source packages Binary packages
20 Septembre 2012
Jeudi 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 2012
Jeudi du libre Debian Developer ?
Sylvestre Ledru
Prochaine release : wheezy
Probablement début de l'année 2013 Actuellement en freeze
20 Septembre 2012
Jeudi du libre Debian Developer ?
Sylvestre Ledru
20 Septembre 2012
Jeudi du libre Debian Developer ?
Sylvestre Ledru
Organisation du projet
20 Septembre 2012
Jeudi 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 2012
Jeudi du libre Debian Developer ?
Sylvestre Ledru
Organisation du projet
20 Septembre 2012
Jeudi 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 2012
Jeudi du libre Debian Developer ?
Sylvestre Ledru
Régi par trois documents principaux :
20 Septembre 2012
Jeudi 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 2012
Jeudi 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 2012
Jeudi 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 2012
Jeudi du libre Debian Developer ?
Sylvestre Ledru
Derivatives
20 Septembre 2012
Jeudi 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 2012
Jeudi 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 dans Debian avant Ubuntu
20 Septembre 2012
Jeudi du libre Debian Developer ?
Sylvestre Ledru
Des nouvelles problématiques
20 Septembre 2012
Jeudi du libre Debian Developer ?
Sylvestre Ledru
Debian Developer ? Debian Maintainer ?
Contributeur ?
20 Septembre 2012
Jeudi du libre Debian Developer ?
Sylvestre Ledru
Projet ouvert et accessible à tous …
mais qui nécessite des compétences (et savoir RFTM)
20 Septembre 2012
Jeudi du libre Debian Developer ?
Sylvestre Ledru
Contributeur « lambda »
Soumettre des bugs = contribuer ! (surtout avec un patch associé)
Command : reportbug
20 Septembre 2012
Jeudi du libre Debian Developer ?
Sylvestre Ledru
Contributeur « lambda »
Traduction (site web, debconf, etc) Communication (DPN, etc)
...
20 Septembre 2012
Jeudi du libre Debian Developer ?
Sylvestre Ledru
Quelques statistiques
● DD : 963
● DD (no-upload) : 5
● DM : 167
20 Septembre 2012
Jeudi du libre Debian Developer ?
Sylvestre Ledru
Web of trust ? Signature GPG
Clé signée par deux membres du projet
Permet un correspondance entre l'identité Internet et réelle
… nécessaire
20 Septembre 2012
Jeudi 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 2012
Jeudi du libre Debian Developer ?
Sylvestre Ledru
Debian Maintainer
Doit passer par un DD pour un nouveau package N'a pas accès aux porterboxes
Pas d'adresse mail @debian.org Pas de droit de vote
20 Septembre 2012
Jeudi 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 2012
Jeudi du libre Debian Developer ?
Sylvestre Ledru
Devenir Debian Developer ? Processus : New Member (NM)
http://nm.debian.org/
20 Septembre 2012
Jeudi du libre Debian Developer ?
Sylvestre Ledru
Devenir Debian Developer ? Avoir été DM précédement
Besoin d'être recommandé officiellement par un DD
20 Septembre 2012
Jeudi du libre Debian Developer ?
Sylvestre Ledru
Devenir Debian Developer ?
Vérifications sur le travail précédement réalisé dans Debian
20 Septembre 2012
Jeudi du libre Debian Developer ?
Sylvestre Ledru
Série de questions :
● Licences
● Organisationnelles
=> Philosophy and Procedures
20 Septembre 2012
Jeudi du libre Debian Developer ?
Sylvestre Ledru
20 Septembre 2012
Jeudi du libre Debian Developer ?
Sylvestre Ledru
Série de questions (suite) :
● Techniques
● Exercices
=> Tasks and Skills
20 Septembre 2012
Jeudi du libre Debian Developer ?
Sylvestre Ledru
Acceptation (ou refus) par l'Application Manager (AM)
Validation par le DAM Création des comptes
=> Bien joué, vous êtes DD !
20 Septembre 2012
Jeudi du libre Debian Developer ?
Sylvestre Ledru
En quoi consiste le travail de Debian Developer ?
20 Septembre 2012
Jeudi du libre Debian Developer ?
Sylvestre Ledru
Packaging de nouvelles bibliothèques et programmes
20 Septembre 2012
Jeudi 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 2012
Jeudi du libre Debian Developer ?
Sylvestre Ledru
Reprise de packages orphelins (RFA)
$ wnpp-alert |grep ^O
$ wnpp-alert |grep ^O
O 487125 apt-rdepends -- Recursively lists package dependencies O 487125 apt-rdepends -- Recursively lists package dependencies
O 580680 enchant -- a wrapper library for various spell checkers O 580680 enchant -- a wrapper library for various spell checkers
O 636410 flip -- convert text file line endings between Unix and DOS formats O 636410 flip -- convert text file line endings between Unix and DOS formats
O 479397 gutenprint -- printer drivers for CUPS O 479397 gutenprint -- printer drivers for CUPS
O 543847 libcdaudio -- library for CDDA playback control O 543847 libcdaudio -- library for CDDA playback control
O 555893 libdiscid -- Library for creating MusicBrainz DiscIDs O 555893 libdiscid -- Library for creating MusicBrainz DiscIDs
O 674880 libgii -- General Input Interface runtime libraries O 674880 libgii -- General Input Interface runtime libraries
O 509815 libiodbc2 -- iODBC Driver Manager O 509815 libiodbc2 -- iODBC Driver Manager
O 628474 libofa -- Library for acoustic fingerprinting O 628474 libofa -- Library for acoustic fingerprinting O 646655 libvisual -- Audio visualization framework O 646655 libvisual -- Audio visualization framework
O 641060 libvisual-plugins -- Audio visualization framework plugins O 641060 libvisual-plugins -- Audio visualization framework plugins O 658774 openhackware -- OpenFirmware emulator for PowerPC O 658774 openhackware -- OpenFirmware emulator for PowerPC
O 668201 php-elisp -- emacs support for php files O 668201 php-elisp -- emacs support for php files
O 358521 sgml-data -- common SGML and XML data O 358521 sgml-data -- common SGML and XML data
O 666490 svgalib -- console SVGA display libraries O 666490 svgalib -- console SVGA display libraries
O 674887 vbetool -- run real-mode video BIOS code to alter hardware state O 674887 vbetool -- run real-mode video BIOS code to alter hardware state
O 652225 zvbi -- Vertical Blanking Interval (VBI) utilities O 652225 zvbi -- Vertical Blanking Interval (VBI) utilities
20 Septembre 2012
Jeudi du libre Debian Developer ?
Sylvestre Ledru
Aider d'autres DM/DD (RFH)
$ wnpp-alert |grep ^RFH
$ wnpp-alert |grep ^RFH
RFH 567955 apt-xapian-index -- maintenance tools for a Xapian index of Debian packages RFH 567955 apt-xapian-index -- maintenance tools for a Xapian index of Debian packages RFH 583826 chromium-browser -- Chromium browser
RFH 583826 chromium-browser -- Chromium browser
RFH 660685 gnupg -- GNU privacy guard - a free PGP replacement RFH 660685 gnupg -- GNU privacy guard - a free PGP replacement RFH 248397 grub2 -- GRand Unified Bootloader
RFH 248397 grub2 -- GRand Unified Bootloader
RFH 679249 libburn -- library to provide CD/DVD writing functions RFH 679249 libburn -- library to provide CD/DVD writing functions
RFH 534999 libcap2 -- support for getting/setting POSIX.1e capabilities RFH 534999 libcap2 -- support for getting/setting POSIX.1e capabilities
RFH 678382 libept -- High-level library for managing Debian package information RFH 678382 libept -- High-level library for managing Debian package information RFH 679254 libisofs -- library to create ISO9660 images
RFH 679254 libisofs -- library to create ISO9660 images RFH 419523 libreoffice -- office productivity suite
RFH 419523 libreoffice -- office productivity suite
RFH 527482 mtr -- Full screen ncurses and X11 traceroute tool RFH 527482 mtr -- Full screen ncurses and X11 traceroute tool RFH 354174 nas -- The Network Audio System
RFH 354174 nas -- The Network Audio System
RFH 512360 openldap -- OpenLDAP server, libraries, and utilities RFH 512360 openldap -- OpenLDAP server, libraries, and utilities
RFH 332498 openssl -- Secure Socket Layer (SSL) binary and related cryptographic tools RFH 332498 openssl -- Secure Socket Layer (SSL) binary and related cryptographic tools RFH 664595 php5 -- server-side, HTML-embedded scripting language
RFH 664595 php5 -- server-side, HTML-embedded scripting language RFH 589632 ppp -- Point-to-Point Protocol (PPP) - daemon
RFH 589632 ppp -- Point-to-Point Protocol (PPP) - daemon RFH 543541 quilt -- Tool to work with series of patches
RFH 543541 quilt -- Tool to work with series of patches
RFH 654116 screen -- terminal multiplexor with VT100/ANSI terminal emulation RFH 654116 screen -- terminal multiplexor with VT100/ANSI terminal emulation RFH 640976 serna-free -- Graphical XML editor
RFH 640976 serna-free -- Graphical XML editor
RFH 676314 spamassassin -- seeking co-maintainers RFH 676314 spamassassin -- seeking co-maintainers
RFH 660687 xml-core -- XML infrastructure and XML catalog file support RFH 660687 xml-core -- XML infrastructure and XML catalog file support
20 Septembre 2012
Jeudi 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 2012
Jeudi du libre Debian Developer ?
Sylvestre Ledru
Intégrer des nouveaux kernels dans Debian
● Kfreebsd, HURD
● Travaux autour du kernel Illumos (anciennement OpenSolaris)
20 Septembre 2012
Jeudi 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 2012
Jeudi du libre Debian Developer ?
Sylvestre Ledru
Participer à la Release Team
● Travail sur la prochaine release
● Correction de bugs critiques
● Gestion des transitions
● ...
20 Septembre 2012
Jeudi du libre Debian Developer ?
Sylvestre Ledru
Infrastructure
● Maintenir l'ensemble de la plateforme
● Porterbox
● Services du projet
20 Septembre 2012
Jeudi du libre Debian Developer ?
Sylvestre Ledru
Exemples de tâches dans Debian
20 Septembre 2012
Jeudi 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 2012
Jeudi 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 2012
Jeudi du libre Debian Developer ?
Sylvestre Ledru
Mise en place d'une infrastructure parallèle
20 Septembre 2012
Jeudi 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 2012
Jeudi 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 2012
Jeudi du libre Debian Developer ?
Sylvestre Ledru
Comment commencer ?
20 Septembre 2012
Jeudi 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 2012
Jeudi 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 2012
Jeudi 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 2012
Jeudi du libre Debian Developer ?
Sylvestre Ledru
Questions ? Remarques ? Troll ? (+1)
Remerciement à Stefano Zacchiroli