copie locale - Robert Viseur

Transcription

copie locale - Robert Viseur
Colloque 2012 de l'Association Information et Management
Gérer la propriété intellectuelle dans les projets à base de logiciels libres
Robert VISEUR
Université de Mons, Faculté Polytechnique,
Place du Parc, 20, B-7000 Mons,
[email protected],
Centre d’Excellence en Technologies de l’Information et de la Communication,
Rue des Frères Wright, 29/3, B-6041 Charleroi,
[email protected].
Résumé
Les logiciels libres sont progressivement devenus d'utilisation courante dans les développements de
logiciels commerciaux. Les entreprises ne disposent cependant pas toujours de la connaissance des
droits et des obligations découlant de l'utilisation de logiciels couverts par des licences libres. Les
logiciels libres ne sont par ailleurs pas concernés par le seul droit d'auteur mais peuvent l'être par
d'autres types de propriété intellectuelle, comme les marques ou les brevets. Ce papier propose dès
lors un état de l'art synthétisant les principaux risques auxquels s'expose l'entreprise en cas
d'utilisation de composants libres, ou d'architectures ouvertes couvertes par des licences
hétérogènes. Nous présenterons ensuite trois pistes de solutions, ainsi que la première version d'un
outil basé sur des logiciels libres courants et permettant l'automatisation d'audits juridiques de codes
sources.
Mots-clés
Open Source, logiciel libre, gouvernance, licence, propriété intellectuelle, audit, Ohcount.
Abstract
Free softwares become commonly used in commercial software development. However companies
do not always own knowledge about rights and obligations arising from the use of softwares
covered under free licenses. Free softwares are not only covered by copyright but can be by other
types of intellectual property such as trademarks or patents. This paper therefore proposes a state of
the art summarizing the key risks facing the company in case of use of free components, or open
architectures covered by heterogeneous licenses. We then present three solutions, and the first
version of a tool based on common open source softwares for automating legal audits of source
codes.
Keywords
Open Source, free software, governance, license, intellectual property, audit, Ohcount.
1
1. Contexte
Bien du chemin a été parcouru depuis la publication du noyau Linux par Linus Torvalds en 1991. Si
le logiciel libre a gardé pendant longtemps l'image de logiciels développés par des hobbyistes, cela
a progressivement changé avec la mise en avant du caractère innovant de ces logiciels (Von Hippel,
2001) et, surtout, l'implication croissante des entreprises dans leur développement (Fitzgerald,
2006). A ce niveau, le lancement du projet Mozilla par la société Netscape marque une étape
importante dans l'histoire du logiciel libre (Viseur, 2011).
Plus largement, la mise en œuvre de systèmes informatiques recourant à des architectures ouvertes,
mêlant des API ouvertes et des composants couverts par des licences hétérogènes, libres ou
propriétaires, ne va pas sans poser de nouveaux défis en matière de propriété intellectuelle
(Alspaugh et al., 2009b). Les enjeux sont importants pour les entreprises. Après avoir scanné 635
applications mobiles open source sur l'Apple Appstore, OpenLogic (2011) a révélé que 71% des
applications sous licence Apache, GPL ou LGPL ne respectaient pas les termes de leur licence. Lors
de la publication (sans licence) du logiciel électoral belge, du code source sous licence GPL v2 a été
découvert (Hillenius, 2009). La violation de licences libres peut pourtant donner lieu à des actions
en justice (Henley et Kemp, 2007).
Ce papier est organisé comme suit. Nous commençons par un état de l'art présentant les
caractéristiques des licences libres, puis synthétisant les principaux risques auxquels s'expose
l'entreprise en cas d'utilisation de composants libres, ou d'architectures ouvertes couvertes par des
licences hétérogènes. Nous présenterons ensuite trois pistes de solutions pour gérer les risques
identifiés. Nous présentons ensuite la première version d'un outil basé sur des logiciels libres
courants et permettant l'automatisation d'audits juridiques de codes sources. Nous terminons par une
discussion mettant notamment en avant les perspectives futures pour notre recherche.
2. Licences de logiciels libres
Le logiciel libre est défini à partir de 4 libertés: la liberté d'exécuter le logiciel, de l'étudier, d'en
redistribuer des copies et de le modifier (gnu.org). Les licences de logiciels libres garantissent ces
quatre libertés, qui impliquent la mise à disposition du code source du logiciel (Montero et al.,
2005). L'appellation open source est parfois préférée à celle de free software (logiciel libre). Ce
terme est défini par l'OSI sur base d'une liste de 10 critères appelée Open Source Definition (OSD).
A de rares exceptions près (comme dans le passé la licence Apple Public Source License v1.0 et
v1.2), les licences reconnues comme libres par la FSF sont reconnues open source par l'OSI, et vice
versa. Les différences entre la Free Software Foundation (fsf.org) et l'Open Source Initiative
(opensource.org) sont essentiellement d'ordre idéologique. La première met en avant une forme
d'éthique (la liberté du logiciel est vue comme une nécessité) ; la seconde insiste sur l'efficacité du
modèle de développement collaboratif caractéristique des développements libres et open source.
Certains auteurs préfèrent parler de FOSS (Free / Open Source Software) ou de FLOSS (Free /
Libre / Open Source Software) pour éviter les débats sur la terminologie à adopter (Neumann et
Breidert, 2005; Wheeler, 2007). Dans la suite du document, nous considérerons les expressions
« logiciel libre » et « logiciel open source » comme équivalentes.
D'une manière générale, il n'y a pas d'outil de protection juridique spécifique aux logiciels, et ces
derniers sont couverts par le droit d'auteur. La licence permet à l'auteur du logiciel de fixer les droits
et obligations de l'utilisateur du logiciel. Des brevets peuvent également peser sur le logiciel
(Messerschmitt et Szyperski, 2001). Ce cas peut être prévu par la licence, qui peut également
2
Colloque 2012 de l'Association Information et Management
mentionner des marques (Alspaugh et al., 2009b). La protection par brevet est possible, notamment
aux Etats-Unis, mais pas en Europe, sauf dans le cas particulier des procédés industriels
brevetables. Ce mode de protection n'est pas sans causer des difficultés compte tenu du caractère
cumulatif du développement logiciel et de l'absence d'état de l'art (Julien et Zimmermann, 2002).
Les logiciels, libres ou non, sont donc confrontés à plusieurs types d'IP (propriété intellectuelle) :
les droits d'auteur mais aussi les marques et les brevets.
A noter que des licences inspirées par les licences libres, mais n'en offrant pas toutes les libertés,
existent. Laure Muselli (2008) les qualifie de « licences hybrides » et cite notamment comme
exemple la licence SCSL de Sun Microsystems. Ces licences sont supposées faciliter la captation de
revenus par l'entreprise comparé à d'authentiques licences libres.
Les licences de logiciels libres sont généralement classées en deux grandes familles : les licences
permissives (ou académiques) et les licences copyleft (ou gauches d'auteur ou réciproques). Une
licence permissive (ex. : BSD, MIT, etc.) autorise l'utilisateur à appliquer une nouvelle licence, y
compris propriétaire, aux œuvres dérivées. Elles permettent donc l'appropriation du logiciel par le
preneur de licence. Une licence copyleft (ex. : LGPL, GPL, AGPL, MPL, etc.) « lie l'octroi des
droits à l'obligation de ne redistribuer le logiciel et ses modifications que sous la même licence que
celle par laquelle le licencié a obtenu ces droits » (Montero et al., 2005).
Des distinctions plus fines existent. Farcot et Viseur (2007) pointent ainsi le cas particulier des
licences contextuelles, dont les effets sont modulés en fonction du contexte d'utilisation (ex. : LGPL
v2.1). Honkasalo (2009) ajoute le concept de réciprocité de réseau (ex. : AGPL) à ceux de
réciprocités faible (ex. : LGPL) et forte (ex. : GPL).
3. Risques associés aux licences libres
Les licences libres de type copyleft peuvent être ou non contaminantes. Le caractère contaminant
suppose que « la totalité d'un programme dérivé du logiciel doive être placée sous la même licence
libre » (Muselli, 2008). On parlera aussi de copyleft faible (lorsque le copyleft s'applique
uniquement au composant logiciel) ou de copyleft fort (dans le cas où toute œuvre dérivée doit
adapter la licence copyleft du composant logiciel). Les licences copyleft fortes sont parfois
qualifiées de licences « à fort devoir contributif » (www.april.org). Les licences copyleft fortes ont
un impact important sur la politique commerciale de l'entreprise. Certaines entreprises (MySQL,
Trolltech, etc.) basent (ou ont jadis basé) leur modèle d'affaires sur les propriétés de ces licences, en
proposant des logiciels sous double licence propriétaire / libre (typiquement: GPL), de manière à
discriminer les utilisateurs souhaitant participer à l'effort de développement collectif, des autres
préférant payer et ne pas divulguer leur code source (Muselli, 2007; Välimäki, 2003). D'autres
organisations peuvent par contre voir leur code affecté par une licence copyleft forte, alors que cela
n'est a priori pas souhaité. C'est notamment la situation du logiciel électoral belge, publié sans
licence (donc propriétaire) mais incluant du code source sous licence GPL v2 (Hillenius, 2009).
Une éditeur propriétaire préfèrera généralement l'utilisation de composants sous licences
propriétaire (pour les composants COTS, ou Commercial-Off-The-Shelf), académique ou copyleft
faible (Neumann et Breidert, 2005). La violation de licences libres peut par ailleurs donner lieu à
des actions en justice (Henley et Kemp, 2007).
La culture du partage promotionnée dans la communauté du logiciel libre ne doit pas occulter le
3
problème de l'incompatibilité entre les licences. Ces incompatibilités proviennent parfois de termes
apparemment annodins dans le texte des licences (Montero et al., 2005; St.Laurent, 2004). Des
licences connues peuvent par ailleurs être fournies avec des exceptions (German et Hassan, 2009).
Parmi les plus connues, citons la FLOSS License Exception ou la Java Classpath Exception,
combinées à la GPL pour en limiter les effets lors de la création d'œuvres dérivées. Certains
logiciels, comme Bugzilla, sont distribués avec des conflits de licences (German et Hassan, 2009).
Dans le cas d'un projet développé ou utilisé par une entreprise, ce cas de figure devrait être anticipé.
Il ne s'agit pas d'une tâche simple, sachant qu'il existe environ 70 licences open source approuvées,
et que les développements basés sur des composants réutilisables gagnent en popularité. La
problématique peut donc s'étendre à des composants sous licences non libres (gratuiciels, restriction
à un usage non commercial,...), incluant des technologies brevetées (voir le cas de l'algorithme
breveté SIFT dans le logiciel libre Hugin de création de panoramas; hugin.sourceforge.net), etc.
Certaines licences de logiciels libres disposent de clauses relatives aux brevets. C'est le cas des
licences Apache, GPL v2 et GPL v3, LGPL ou encore AGPL. Ces clauses peuvent aller d'un simple
devoir d'information à la cession automatique d'une licence pour les utilisateurs du logiciel couvert
par la licence libre. Le cas de l'octroi automatique de licence apparaît potentiellement
problématique, par exemple pour une entreprise gérant ses droits de propriété intellectuelle comme
des actifs stratégiques dans le cadre d'une stratégie d'innovation ouverte (Loillier et Tellier, 2011).
L'essor récent des places de marchés pour terminaux mobiles (Appstore, Windows Marketplace,
Android Market, etc.) impose au développeur de prendre de nouvelles précautions. Le statut
accordé aux logiciels sous licences libres y est en effet incertain. Microsoft rejette par exemple les
logiciels sous licences copyleft (et met en emphase l'interdiction pour la AGPL v3, la GPL v3 et la
LGPL v3), à l'exception d'une liste fermée de licences à copyleft faible (CDDL, MPL, EPL, CPL et
MS-RL).
4. Gestion des risques
Plusieurs approches permettent de gérer les risques associés à l'utilisation de composants, externes à
l'entreprise, couverts par des licences hétérogènes: la mise en place d'une structure de gouvernance,
la modélisation des licences et de l'architecture du système informatique, et l'analyse juridique du
code source. A noter que ces trois approches ne sont pas exclusives.
L'entreprise peut mettre en place une structure de gouvernance permettant de tracer et d'autoriser
l'utilisation de logiciels libres dans les développements informatiques. Gobeille (2008) donne
l'exemple de l'Open Source Review Board chez Hewlett Packard. Kemp (2010) rappelle pourtant
que plus des deux tiers des entreprises n'ont pas de politique formelle pour évaluer et cataloguer les
logiciels libres utilisés en interne. Il propose cinq éléments clefs pour une gouvernance open source:
l'inventaire des technologies open source utilisées, la disponibilité de l'information sur l'origine des
logiciels libres, la traçabilité des usages des logiciels libres en interne (réutilisation), l'affectation
des rôles et l'identification des responsables, et l'étude de la compatibilité des obligations associées
aux licences avec les contraintes de l'organisation.
Alspaugh et al. (2009a, 2009b) proposent une automatisation de l'analyse de l'impact de licences
basée sur la modélisation des licences et de l'architecture des logiciels. Ils s'appuient pour cela sur le
logiciel ArchStudio4. Ce logiciel libre, basé sur Eclipse, facilite la création d'architectures
logicielles et systèmes. L'architecture y est modélisée, et l'impact des licences est ensuite calculé à
l'aide d'un module baptisé Software Architecture License Tracability Analysis. Ce dernier s'appuie
4
Colloque 2012 de l'Association Information et Management
sur une description formelle des licences. Les auteurs proposent également la mise en œuvre de
sous-ensembles architecturaux baptisés « pares-feux de licence » (license firewall) permettant de
contenir les effets contaminant de certaines licences copyleft. Si ce procédé fonctionne, par
exemple, avec la GPL (General Public License), il serait par contre inopérant avec la AGPL (Affero
General Public License)
Cette approche impose, outre la modélisation de l'architecture, la documentation de l'ensemble des
licences possibles. Une autre approche, plus simple, consiste à analyser le code source, de manière à
inventorier les licences utilisées. Les logiciels propriétaires Palamida (www.palamida.com) et Black
Duck Suite (www.blackducksoftware.com) gèrent par exemple les problèmes de licences. Côté
logiciels libres, Hewlett Packard a publié FOSSology (www.fossology.org), une suite d'outils
destinée à outiller la réutilisation des composants validés par la structure de contrôle de l'entreprise
(Gobeille, 2008). FOSSology dépasse le seul cadre de l'analyse de licences, et peut rebuter, lors de
l'installation, par le manque de documentation.
5. Expérimentation: outil d'audit juridique de code source
Notre objectif est de mettre en place un outil simple d'installation et permettant une analyse
automatique détaillée des droits de propriété intellectuelle présents dans un code source peu
documenté (ou dont la documentation sur ce point est sujette à caution).
Nous avons basé notre développement sur le logiciel libre Ohcount (www.ohloh.net). Ce dernier est
surtout connu pour sa fonction première: compter le nombre de lignes de code source par langage
de programmation. Cependant, il est également capable de dresser un inventaire des licences libres
utilisées, par simple appel de ligne de commande. L'option « -l », ou « --license », affiche en
effet l'information relative aux licences pour chaque fichier de code source. Nous avons dès lors
exploité cette sortie pour produire un tableau de synthèse permettant de voir, module par module,
les licences utilisées.
Deux autres logiciels libres ont été utilisés en complément: find et grep (www.gnu.org). Ces
derniers ont permis d'identifier les fichiers contenant des copyrights, et mentionnant des marques ou
des brevets, puis de mettre en évidence les extraits correspondants. Cette partie de l'outil s'est basée
sur des mots-clefs dans les textes (« trademark », « patent », « copyright », etc.) mais aussi sur des
conventions de nommage utilisées dans les logiciels libres.
L'analyse est configurée dans un fichier dédié. L'outil génère au final un rapport au format HTML,
que l'on peut facilement convertir en PDF pour une lecture aisée ou une transmission papier.
6. Discussion
Au travers de ce papier, nous avons tout d'abord montré les risques liés à l'utilisation de logiciels
libres dans des développements commerciaux, et avons proposé différentes solutions pour mieux les
gérer. Nous avons ensuite présenté les caractéristiques générales d'un outil d'analyse juridique de
code source s'appuyant sur des logiciels libres existants et exploitant les conventions de nommage
fréquemment utilisées dans les logiciels libres.
5
L'outil est apparu utile pour l'automatisation d'audits juridiques de code source. Ohcount est apparu
fonctionnel mais présente quelques limitations. Les versions des licences (par exemple: GPL v2,
GPL v3, GPL v2 ou supérieure, etc.) ne sont pas toujours bien identifiées, ce qui génère de fausses
alarmes. La détection de la licence AGPL est par ailleurs problématique dans la version du logiciel
présente dans le dépôt Ubuntu (août 2011). Le filtrage des sorties find / grep pourrait être amélioré.
Une table d'incompatibilités entre licences pourrait être ajoutée au logiciel afin de mettre en
évidence les conflits potentiels (actuellement, cette étape implique une bonne expertise de
l'utilisateur).
L'utilisation pratique de l'outil a également permis d'identifier d'autres éléments, parfois intégrés
aux logiciels, couverts par des licences différentes : les documentations et les ressources audios (et,
par extensions, les photos, les vidéos, etc.). Dans ce cas, l'utilisation de licences, telles que la Free
Documentation License ou les Creative Commons, est possible. Ces licences pourraient également
être automatiquement détectées pour une meilleure exhaustivité.
Bien que perfectible car dépendant de la bonne identification des mentions relatives aux licences
(pas toujours formatées de manière standard), cette approche se révèle cependant efficace pour
réaliser des audits de code source en un temps raisonnable, sans pour autant se limiter au listage des
licences libres utilisées. Elle se montre utile pour la pré-sélection de composants libres, pour
l'analyse de codes sources peu documentés sur le plan des licences, ou encore pour venir compléter
des approches plus organisationnelles ou analytiques.
Références
Alspaugh, T.A., Asuncion, H.U., Scacchi W. (2009a), "Analyzing software licenses in open
architecture software systems", FLOSS '09 Proceedings of the 2009 ICSE Workshop on
Emerging Trends in Free/Libre/Open Source Software Research and Development.
Alspaugh, T.A., Asuncion, H.U., Scacchi W. (2009b), "Intellectual property rights requirements for
heterogeneously-licensed systems", 17th IEEE International Requirements Engineering
Conference (RE’09), pp. 24–33, Augustus 31 - September 4, 2009.
Farcot, M., Viseur, R. (2007), "YAME in the KBE! Yet Another Mutualist Ecosystem", Conférence
de l'Association Information et Management, Lausanne (Suisse).
Fitzgerald, B. (2006), "The transformation of open source software", MIS Quarterly, vol. 30 n°3,
pp. 587-598, September 2006.
German, D.M., Hassan, A.E. (2009), "License integration patterns: Addressing license mismatches
in component-based development", ICSE '09 Proceedings of the 31st International
Conference on Software Engineering.
Gobeille, R. (2008), "The FOSSology project", MSR '08 Proceedings of the 2008 international
working conference on Mining software repositories.
Henley, M., Kemp, R. (2007), "Open Source Software: An introduction", Computer Law & Security
Review, Volume 24, Issue 1, pp. 77-85.
Hillenius, G. (2009), "BE: Government publishes source code for election software", European
Commission (ISA, Joinup: joinup.ec.europa.eu), June 11, 2009 (consulté le 13 février 2012).
Honkasalo , P. (2009), "Reciprocity under the GNU General Public Licenses", NJCL.
Jullien, N., Zimmermann, J.B. (2002), "Le logiciel libre: une nouvelle approche de la propriété
intellectuelle", Revue d'économie industrielle, Vol. 99, 2è trimestre 2002, pp. 159-178.
Kemp, R. (2010), "Open source software (OSS) governance in the organisation", Computer Law
Security Review, Vol. 26, Issue 3, Elsevier Ltd, pp. 309-316.
Loillier, T., Tellier, A. (2011), "Que faire du modèle de l'innovation ouverte ?", Revue française de
6
Colloque 2012 de l'Association Information et Management
gestion, n°210, pp. p69-85.
Messerschmitt, D.G., Szyperski, C. (2001), "Industrial and Economic Properties of Software:
Technology, Processes, and Value", University of California at Berkeley Computer Science
Division, Technical Report UCB//CSD-01-1130, Jan. 18, 2001, and Microsoft Corporation
Technical Report MSR-TR-2001-11, Jan. 18, 2001.
Montero E., Cool Y., de Patoul F., De Roy D., Haouideg H., Laurent P. (2005), Les logiciels libres
face au droit, Cahier du CRID, n°25, Bruylant.
Muselli, L. (2008), "Le rôle de licences dans les modèles économiques des éditeurs de logiciels
open source", Revue française de gestion, n°181, pp. 199-214.
Neumann, C., Breidert, C. (2005), "The challenges of using open source software as a reuse
strategy", Libre software as a field of study, Upgrade, Vol. VI, issue No. 3, June 2005.
OpenLogic (2011), "OpenLogic Scan Shows Open Source License Violations for iPhone and
Android", March 08, 2011.
St.Laurent A.M. (2004), Understanding Open Source and Free Software Licensing, O'Reilly Media,
2004.
Välimäki, M. (2003), "Dual Licensing in Open Source Software Industry", Systemes d ́Information
et Management, Vol. 8, No. 1, pp. 63-75.
Viseur, R. (2011), "Associer commerce et logiciel libre : étude du couple Netscape / Mozilla”,
Conférence de l'Association Information et Management 2011, Saint-Denis (France).
Von Hippel, E. (2001), "Innovation by User Communities: Learning from Open-Source Software,
MIT Sloan Management Review.
Wheeler, D.A. (2007), "Why Open Source Software / Free Software (OSS/FS, FLOSS, or FOSS)?
Look at the Numbers !", URL: www.dwheeler.com (consulté le 21 janvier 2011).
***
7