11. Présentation personnelle
Ingénieur de Recherche au département INF à
TELECOM & Management SudParis (B 303)
Projets de R&D sur le logiciel libre (CALIBRE,
PFTCR, COCLICO, ...)
Adepte et « évangéliste du libre » de longue
date, mais en « congé sabbatique »
Contributeur à la distribution Debian
Recherche : plate-formes de développement
collaboratif de logiciels (forges) :
• Projet Helios (GTLL de System@tic)
Google est mon ami, mais au cas où :
http://www-public.it-sudparis.eu/~berger_o/
http://www-public.it-sudparis.eu/~berger_o/weblog/
Page 11 / 93 Dpt. INF O. Berger
12. Sondage rapide
Déjà eu des cours sur le sujet ?
Logiciel libre ?
Linux ?
GNU ?
FSF ?
APRIL, AFUL, etc. ?
Firefox ?
Ubuntu ?
Creative Commons ?
SourceForge ?
Bugzilla ?
Page 12 / 93 Dpt. INF O. Berger
13. Objectif de cette conférence
Donner une idée des enjeux liés à la
collaboration dans les projets libres
Rappel des fondamentaux du modèle libre
Démythifier un modèle loin d'être magique
Quelques pistes permettant d'intégrer le libre
dans les projets industriels
Page 13 / 93 Dpt. INF O. Berger
16. Définition du logiciel libre
« La liberté d'exécuter le programme, pour tous
les usages (liberté 0).
La liberté d'étudier le fonctionnement du
programme, et de l'adapter à vos besoins (liberté
1). Pour ceci l'accès au code source est une
condition requise.
La liberté de redistribuer des copies, donc d'aider
votre voisin, (liberté 2).
La liberté d'améliorer le programme et de publier
vos améliorations, pour en faire profiter toute la
communauté (liberté 3). Pour ceci l'accès au code
source est une condition requise. »
Définition de la Free Software Foundation (FSF)
Page 16 / 93 Dpt. INF O. Berger
17. Terminologie
Logiciel Libre ~= OpenSource
Liberté !
Coût ?
Autres :
freeware, domaine public, shareware, shared
source, etc.
Libre = ouvert ?
Ne pas se fier aux déclarations : vérifier les
licences
Page 17 / 93 Dpt. INF O. Berger
18. Libre vs. non-libre
En théorie, identification facile :
droit d'utilisation : OK - NOK
droit d'étudier : OK - NOK
droit de modifier : OK - NOK
droit de diffuser copies (modifiées) : OK - NOK
En pratique, parfois complexe (jargon licences)
Demander aux experts
• Free Software Foundation (http://www.fsf.org/),
• OpenSource initiative
(http://www.opensource.org/).
Page 18 / 93 Dpt. INF O. Berger
22. Le libre est partout
Internet: Apache, Bind, etc.
Serveurs (Samba, MySQL, etc.)
Groupware, CMS, ERP, ETL, etc.
Appliances, embarqué, grand public
• Nokia 8x0
• Freebox, Easybox, routeurs, etc.
• Téléphones (Google Android, etc.)
• GPS, ...
Impots
Poste de travail des gendarmes
...
Page 22 / 93 Dpt. INF O. Berger
23. ValeurS : mouvement logiciel libre
Philosophie : Liberté, Egalité, Fraternité
• Liberté : faire des copies, améliorer, distribuer
• Égalité : mêmes droits pour tout le monde
• Fraternité : Co-opération pour construire des
biens communs
Mouvement « politique »
• Éthique, philosophie, activisme politique
• Richard M. Stallman et la FSF (Free Software
Foundation : http://www.fsf.org)
• APRIL, en france http://www.april.org/
Page 23 / 93 Dpt. INF O. Berger
24. « Mouvement » Open Source ?
Approche orientée vers le marché (créé en
réaction au mouvement du libre)
Bénéfices pratiques
Coûts (ambiguïté free)
« Mouvement »
• Open Source Initiative
(http://www.opensource.org)
• La plupart des industriels de l'informatique, les
SS2I, etc.
Page 24 / 93 Dpt. INF O. Berger
25. Impact global dans la société
Impact sur tous les aspects de la production et
de la diffusion du savoir, et plus largement tous
les artefacts immatériels :
• Publications et données scientifiques (open
archives, etc.)
• OpenStreetmap, Wikipedia
• Création artistique : creative commons (CC)
• Entertainment - gratuité ?
• Débat public, démocracie, régulation de
l'utilisation des ressources, etc.
Nouveau paradigme : Commons (Lessig)
Des biens publics aux biens communs ?
Dpt. INF
28. Chronologie
Au début était le code source (< 80) Unix, BSD (> 80)
GNU project & Free Software Foundation créés par
Richard M. Stallman (> 83/84)
Noyau Linux créé par Linus Torvalds (> 91)
Distributions GNU/Linux ( > 95)
Création de l'APRIL (96)
IBM entre en jeu (2001)
Sun rachète StarOffice et création de OpenOffice.org
(2002)
Ubuntu, Firefix 1.0 (2004)
OpenOffice.org 2.0 (2005)
Google sponsorise
Java sous GPL (2007)
Android...
Page 28 / 93 Dpt. INF O. Berger
29. Aujourd'hui incontournable
20/25ans plus tard
La partie est en voie d'être gagnée
Mais au fait, comment ça marche !?!
Page 29 / 93 Dpt. INF O. Berger
30. Qu'est-ce que le logiciel libre ?
Juridique/ Licences
Organisationnel / Communautés
Economique / Modèles d'affaires
Pas un seul modèle !
Page 30 / 93 Dpt. INF O. Berger
32. Protection vs. Contrôle
Comment bien exercer un contrôle ?
Le Copyright contrôle si
• Utiliser
• On peut copier pour donner ou vendre
• (essayer de) Modifier
• Toute autre chose non prévue dans un contrat
de licence
Le libre rééquilibre la donne en faveur des tiers,
utilisateurs, concurrents
Page 32 / 93 Dpt. INF O. Berger
33. Droit d'auteur, licences
Droit d'auteur :
• Prérogatives de l'auteur, faibles
• Conditions d'exploitation (employeur ?), fortes
Attaché à :
• au fichier source, d'abord
• œuvres dérivées (y compris exécutable)
Régime par défaut : restrictions des droits
Licence libres établissent des exceptions
Œuvres composites : compliqué
Mixibilité des licences ?
Page 33 / 93 Dpt. INF O. Berger
34. Brevets sur les logiciels
Le droit d'auteur/copyright ne controle pas si
un programme similaire peut être écrit par un
tiers
Le brevet protège une idée
Au départ destiné à protéger l'intérêt général
Dérive
Controverse législative en Europe
Page 34 / 93 Dpt. INF O. Berger
36. Catégories de licences libres
Deux grandes catégories :
• Façon « domaine public » (BSD, X11)
• Façon « Copyleftées »
Copyleftées (GPL, LGPL):
• Liberté de changer le logiciel
• Impossibilité de changer la licence sur oeuvres
dérivées
Un même logiciel + plusieurs licenses =
segmentation des « marchés » (dual license)
Modèles économiques des éditeurs de logiciels
libres
Page 36 / 93 Dpt. INF O. Berger
37. Points clés
Question d'oeuvres dérivées
Edition de liens, etc.
Pas questions modèle éco, mais seulement
copyright
Compatibilité des licences
Éviter la prolifération des licences
Qui est titulaire des droits ?
SAAS, Cloud computing ? (Affero GPL)
Page 37 / 93 Dpt. INF O. Berger
39. Économie du logiciel
Non rivalité
Valeur augmente quand on s'en sert (effets de
réseau)
Monopôles
Création d'un « bien commun »
Faciliter la réutilisation
Mutualisation de l'investissement
Logiciel libre == gratuit (une fois qu'il a été
payé)
Page 39 / 93 Dpt. INF O. Berger
41. « Bataille » immense
Réduire les coûts (commoditisation)
Effets de réseaux pour établir des standards
Mutualiser la R&D
« Co-opétition » :
• coopération
• compétition
Prendre position dans le libre pour maîtriser
son évolution
Modèles économiques ?
Page 41 / 93 Dpt. INF O. Berger
43. Valeur du libre ?
Exemple: Debian 2.2 GNU/Linux (2001)
Lignes de code source :
• 55 201 526
• dont noyau Linux < 6%
• x 2 tous les 2 ans
Si applique métriques traditionnelles du
développement en entreprise :
• Effort estimé : 14 005 hommes x années
• Délai estimé : 6,04 ans (équipe de 2 318 p.)
• Coût développement : US$ 1 891 990 000
(Source: "Counting potatoes" par Gonzalez-Barahona et al)
Cf.http://ohloh.net pour d'autres chiffres
(Méthodologie discutable)
Page 43 / 93 Dpt. INF O. Berger
44. ROI utilisateurs
Profusion d'études
Libre != gratuit ... heureusement ;-)
Économie gestion des licenses
Transfert de coût entre licences et formation
Paradoxes
Aufinal coût des licences souvent marginal
dans les coûts d'un projet
Page 44 / 93 Dpt. INF O. Berger
45. Modèles d'affaires pour fournisseurs
Service
« Valeur ajoutée » couches hautes
Editeur
Double licence
Marché en croissance
Positions stratégies industrielles
Linagora (fondée par ancien INT Management)
Page 45 / 93 Dpt. INF O. Berger
46. Qui participe
Bénévoles
• Parfois très isolés
• Parfois de façon organisée (Apache, GNU
project, etc.)
Compagnies
Pas un seul profil d'activités :
• Utilisation, tests, rapports de bugs
• Support communautaire (forums, listes, etc.)
• Code
• Vendre du libre
• etc.
Page 46 / 93 Dpt. INF O. Berger
47. Rapide panorama d'un écosystème
Debian
Debian
s
rs ion
ve gs packages
bu
Développeurs versions Utilisateurs
amont RedHat
RedHat
bugs
(“upstream”)
bugs
ve
rsi
bu ons
gs
OpenSuse
Éditeurs SSII
distributions
Page 47 / 93 Dpt. INF O. Berger
48. Le libre est global
Page 48 / 93 Dpt. INF O. Berger
49. Où sont ces développeurs ?
Par pays (SourceForge) :
Rang Pays Developpeurs
1. United States 425620
2. Germany 95800
3. United Kingdom 60768
4. Canada 49109
5. France 44587
6. China 36517
... ... ...
(source : Gregorio Robles and Jesús M. González Barahona -
2006)
Page 49 / 93 Dpt. INF O. Berger
50. Où sont ces développeurs ? (2)
Par continent :
Continent Développeurs
Africa 12 560
Asia 127 275
EU 401 845
Europe 466 792
North America 485 679
Oceania 46 422
South America 36 330
(source : Gregorio Robles and Jesús M. González Barahona –
2006)
Page 50 / 93 Dpt. INF O. Berger
61. Prendre part à une nouvelle communauté
Rencontrer des hommes (et des femmes), pas
seulement des compagnies ou des services
marketing
Construire un projet où différents modèles
peuvent cohabiter
Apprendre les règles des communautés
Méritocratie
De nombreux mode d'organisation sociale
Comme dans la « vie réelle » c'est souvent plus
subtil que ce qu'on en dit dans les
présentations ou les publicités !
Communiquer pour construire la confiance
Page 61 / 93 Dpt. INF O. Berger
62. « HOWTO » projets
basés sur le libre
Page 62 / 93 Dpt. INF O. Berger
66. Sélection d'un produit
Facilité à tester
Ne pas confondre vitesse et précipitation
Sous-traiter ce qui peut l'être
Identifier les éléments critiques et monter en
compétence
Préférer les solutions déjà packagées
(distributions)
Éléments de dépendance sur des tiers non-
contractualisés
Page 66 / 93 Dpt. INF O. Berger
67. Nombreuses qualités
Qualités génériques ... déjà connues
Qualités particulières d'un logiciel libre
=> à évaluer
• sa licence
• sa communauté
• son code (sa doc, son langage, etc.)
Méthodes d'évaluation (QSOS, OpenBRR, ...)
http://fr.wikipedia.org/wiki/Méthode_d'évaluation_de_logiciels_libres
Page 67 / 93 Dpt. INF O. Berger
70. Analyse des besoins
Conduite de projet
Spécification
Architecture
Conception détaillée
Codage
Tests
?
Déploiement
Page 70 / 93 Dpt. INF O. Berger
71. Maintien en condition opérationnelle
Réactivitépour les mises à jour
Diminuer l'adhérence dans les composants
spécifiques
Page 71 / 93 Dpt. INF O. Berger
72. Stabilisation impossible
Mises à jour de sécurité permanentes
Répétition des mises à jour
Automatisation souhaitable
Diminuer la taille du code spécifique
Page 72 / 93 Dpt. INF O. Berger
73. Reverser au projet
Rendre générique les éléments spécifiques
Maintenus à l'extérieur
Améliorés à l'extérieur
Pas besoin de les repackager
Plus facile à dire qu'à faire
Participer aux projets externes ASAP
Page 73 / 93 Dpt. INF O. Berger
74. Compétences pour le développement
Rendre générique ce qui peut l'être
(bibliothèques, sous-projets)
Méthodologie d'intégration (versions dérivées,
customisations)
Support de certains matériels (distributions
supportées)
Virtualisation (Xen, etc.)
Savoir packager (exemple : Debian)
Traditionnels : doc, specs, tests, etc.
Animation de communauté
Page 74 / 93 Dpt. INF O. Berger
76. Repackager i810switch (suite)
$ apt-get source i810switch
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Nécessité de prendre 32,3ko dans les sources.
Réception de : 1 http://ftp.fr.debian.org testing/main i810switch 0.6.5-3 (dsc) [593B]
Réception de : 2 http://ftp.fr.debian.org testing/main i810switch 0.6.5-3 (tar) [24,3kB]
Réception de : 3 http://ftp.fr.debian.org testing/main i810switch 0.6.5-3 (diff) [7376B]
32,3ko réceptionnés en 0s (271ko/s)
gpg: Signature made ven 22 déc 2006 00:06:16 CET using DSA key ID 0917A9E4
gpg: Can't check signature: public key not found
dpkg-source : extraction de i810switch dans i810switch-0.6.5
dpkg-source : extraction de i810switch_0.6.5.orig.tar.gz
dpkg-source : mise en place de ./i810switch_0.6.5-3.diff.gz
$ cd i810switch-0.6.5/
$ wget "http://bugs.debian.org/cgi-bin/bugreport.cgi?
msg=15;filename=i810switch_macbook_support.patch;att=1;bug=374638"
$ patch -p1 <i810switch_macbook_support.patch
patching file debian/changelog
patching file i810switch.c
$ dpkg-buildpackage -rfakeroot
dpkg-buildpackage: source package i810switch
dpkg-buildpackage: source version 0.6.5-4
dpkg-buildpackage: source changed by Thomas Perl <thp@perli.net>
dpkg-buildpackage: host architecture i386
fakeroot debian/rules clean
dh_testdir
dh_testroot
...
dpkg-deb : construction du paquet « i810switch » dans « ../i810switch_0.6.5-4_i386.deb ».
Page 76 / 93 Dpt. INF O. Berger
77. Comment bien intégrer un projet libre
Guides nouveaux contributeurs
Être de bonne volonté (commencer petit pour
se faire connaître)
Pas magique (le diable est dans les détails)
Identifier la roadmap
Stratégie de stabilisation de versions
Système d'Assurance Qualité
Identifier les acteurs clé
Rencontres physiques
Canaux temps réel (IRC, etc.)
Page 77 / 93 Dpt. INF O. Berger
78. Spécificités du projet
Pas que la licence
Communauté
• développement
• utilisatrice
Personnes, rôles
Acteurs économiques
But, objectifs
Méthodologie
Page 78 / 93 Dpt. INF O. Berger
79. Règles de vie en communauté
Bénévoles (motivations)
Professionnels
Contractualisation ?
Confiance
Leadership
Barrières à l'entrée
Humour, culture et autres folklores
Page 79 / 93 Dpt. INF O. Berger
80. Enjeux sociaux plus que techniques
Comprendre les règles du jeu
Identifier les éléments influents
Motiver des bénévoles
Faire accepter ses contributions
Impact sur les décisions
Prouver son implication
Se faire (re-)connaître
Anticiper les alea
Page 80 / 93 Dpt. INF O. Berger
81. Contribuer : une nécessité
Cercle vertueux des contributions
Quasi-obligation du fait des licences
Externalisation de la maintenance
Se faire plaisir et apprendre en vraie grandeur
Se faire connaître et reconnaître
Influer sur le pilotage d'un projet
Page 81 / 93 Dpt. INF O. Berger
82. C'est l'histoire d'un bug
* From: Olivier Berger < olivier.berger@int-edu.eu>
* To: " Sympa-dev@cru.fr" < Sympa-dev@cru.fr>
* Subject: [sympa-dev] Re: Re: authenticateAndRun for createList not working in SOAP server in 5.3.3 ?
* Date: Fri, 21 Sep 2007 16:58:26 +0200
Le vendredi 21 septembre 2007 à 16:29 +0200, Olivier Berger a écrit :
> >
> > I'm using the soap client in Perl in which I did something like :
> > $reponse =
> > $soap->authenticateAndRun($user_email,$md5,'createList',
['essai5','essai5','picoforge_publicproject_members','List
> > essai4 of project essai4','essai4'])
> > &print_result($reponse);
> > called with the listmaster user...
> >
Having a look at the createList() code in sympasoap.pm, I see :
...
unless ($reject){
&Log::do_log('info', 'create_list
%s@%s
from %s refused, missing parameter(s) %s', $listname,$robot,$sender,$reject);
die SOAP::Fault->faultcode('Server')
->faultstring('Missing parameter')
->faultdetail("Missing required parameter(s) : $reject");
}
Wouldn't it be :
*IF* ($reject){
&Log::do_log('info', 'create_list
%s@%s
from %s refused, missing parameter(s) %s', $listname,$robot,$sender,$reject);
die SOAP::Fault->faultcode('Server')
->faultstring('Missing parameter')
->faultdetail("Missing required parameter(s) : $reject");
}
instead of unless ?
Page 82 / 93 Dpt. INF O. Berger
83. Bug Sympa dans Debian
Page 83 / 93 Dpt. INF O. Berger
J+5
88. Comment bien contribuer
Iln'y a pas besoin de savoir coder
Assurer une veille régulière
Beaucoup d'effort même pour des choses
simples
Minimum légal : faire vivre la base de bugs
dans le bugtracker du projet
Page 88 / 93 Dpt. INF O. Berger
89. Comment bien contribuer (suite)
Accepter des usages sociaux différents
Communiquer avant tout
Jouer le jeu selon les règles
Eviter l' « abandonware » non déclaré
Contribuer un nouveau module au bon endroit
Investir dans une forge pour un nouveau
logiciel
Aspects contractuels (reversement
communautaire, publication)
Respecter des licenses
Respecter copyright
Page 89 / 93 Dpt. INF O. Berger
90. Conclusion
Loin de l'exhaustivité
Le libre est un changement extrèmement positif
Plein d'oportunités
Pas un seul modèle : mais quelques bonnes
pratiques générales
Contribuer est nécessaire pour la survie du
modèle, mais aussi concrètement dans les
effets utiles aux projets locaux.
Page 90 / 93 Dpt. INF O. Berger
91. Merci à:
• Jean-Christophe Becquet / APITUX
• Roberto Di Cosmo / Paris 7 – PPS
• Gregorio Robles
Aller plus loin :
• http://www.apitux.org/index.php?2009/05/25/199-cours-logiciel-libre-standards-ouverts-et-interoperabilite
• http://loli.fsa.ulaval.ca/index.php?id=9
• http://dpt-info.univ-littoral.fr/mediawiki/index.php/I2L:Accueil
• http://www.dicosmo.org/CourseNotes/LogicielLibre/
Page 91 / 93 Dpt. INF O. Berger
92. Conditions d'utilisation
Thiswork is Copyright 2009 by Institut
TELECOM and Olivier Berger, published under
a Creative Commons ShareAlike license
Page 92 / 93 Dpt. INF O. Berger
93. Merci de votre attention
http://www-public.it-sudparis.eu/~berger_o/weblog/
Page 93 / 93 Dpt. INF O. Berger