Licences, du copyright au copyleft
Introduction
La copie, le droit de modification et la distribution d'un programme sont dans la majorité des cas soumis aux termes d'une licence. Ainsi que dans une mesure plus faible, son utilisation ou son exécution même.
Seul cas particulier, les logiciels du domaine public. Un créateur de logiciel du domaine public renonce à la propriété intellectuelle. Le programme n'utilise pas de licence, et chacun peut faire ce que bon lui semble avec ce logiciel. Attention à ne pas confondre logiciel libre et logiciel du domaine public : un logiciel libre utilise une licence qui définit les droits et les devoirs de l'utilisateur.
La licence définit généralement les termes de diffusion et de copie du logiciel. Dans la plupart des cas, on considère que ces termes sont acceptés par l'utilisateur lorsqu'il installe le logiciel sur sa machine ou lorsqu'il ouvre la boite contenant le support (CD-ROM, disquette) du logiciel qu'il s'est procuré.
Les licences propriétaires
Dans le cas d'un logiciel propriétaire, la licence est utilisée pour restreindre les droits de l'utilisateur et lui imposer des contraintes. Il existe pratiquement autant de licences propriétaires différentes que d'éditeurs (voire que de produits), nous nous contenterons donc de ne citer que quelques caractéristiques communes à la plupart des licences propriétaires.
Dans la plupart des cas, la licence restreint la copie du logiciel. La copie à des fins personnelles et de sauvegarde est parfois tolérée, mais il est interdit d'en partager une avec vos voisins. Et le développement des réseaux locaux a introduit des clauses ``folkloriques'' aux licences propriétaires. Il est parfois interdit de laisser une copie d'un logiciel accessible à plusieurs utilisateurs en même temps !
Les licences propriétaires interdisent de plus le reverse engineering (1). Cela signifie tout simplement qu'il vous est interdit d'essayer de comprendre le fonctionnement du programme que vous avez acquis.
Mais cela n'est pas étonnant car un oeil attentif aux clauses de licences propriétaires vous révèle que vous ne possédez pas la copie du logiciel que vous vous êtes procuré. Vous ne possédez que le support physique, ainsi que le droit d'utiliser le logiciel (et encore, sous certaines conditions). Vous n'avez pas le droit de donner, vendre, louer ou même prêter le logiciel en question à un ami sans autorisation écrite de l'éditeur.
Les restrictions d'une licence propriétaire ont pour but la division des utilisateurs et l'interdiction de coopérer. Il est impossible de comprendre le fonctionnement de votre logiciel, et même si on vous le disait, on vous ferait signer un accord pour ne pas divulguer ce qu'on vous aurez appris. Et si vous possédez une copie d'un logiciel que vous désirez prêter à un ami, c'est illégal, même si vous ne l'utilisez plus.
Les licences libres
À l'inverse des licences propriétaires, on trouve les licences libres. Elles encouragent la coopération entre utilisateurs. Une erreur courante consiste à penser qu'un logiciel libre ne comporte pas de licence et que chacun est ``libre'' d'en faire ce que bon lui semble. C'est faux, car un logiciel libre possède une licence et conserve son auteur.
Pour citer Richard Stallman (2), les libertés [1] qu'accorde un logiciel libre sont :
- liberté d'exécuter le logiciel, et ce pour n'importe quel usage;
- la liberté de modifier le logiciel pour l'adapter à vos besoins (dans la pratique, cela nécessite l'accès au code source);
- la liberté de redistribuer des copies, soit gratuitement, soit contre rémunération;
- la liberté de distribuer des versions modifiées afin que la communauté du logiciel libre puisse profiter de vos améliorations.
Selon les licences, l'application de ces différentes libertés ne se fait pas de la même manière, et chacune à ses priorités. On peut cependant dégager deux grandes familles de licences libres :
- les licences copyleftées
- les licences non copyleftées
Les licences copyleftées
Le principe du copyleft [2] (généralement traduit en français par "gauche d'auteur'') est de combattre le feu par le feu. Le copyleft utilise le copyright et le détourne pour garantir la liberté du logiciel. Cela peut sembler étrange, et pourtant c'est tout simple.
Une licence copyleftée donne à tout le monde la permission d'exécuter le logiciel, de le copier, de le modifier et de distribuer des versions modifiées, mais elle interdit d'y ajouter des modifications propriétaires ou de réutiliser des parties de code dans un logiciel propriétaire. La liberté du logiciel est donc garantie à quiconque possède une copie et en devient indissociable.
La licence copyleftée la plus connue est la GNU GPL [3], pour GNU General Public License. Elle est issue des efforts de la FSF et sert de base légale au projet GNU. Mais de nombreux logiciels non GNU l'utilisent pour protéger les libertés des utilisateurs (voir [4] pour une description de la procédure à suivre pour protéger un programme par la GPL).
Un cas particulier est l'utilisation de code libre dans une bibliothèque. Elle est utilisée par un programme, et il se peut que ce dernier utilise une autre licence. En appliquant la GPL à la lettre pour une bibliothèque, cela interdirait dans les faits l'utilisation d'une bibliothèque sous GPL pour écrire et exécuter un logiciel propriétaire.
Ce ne serait pas un mal et cela donnerait un avantage aux développeurs de logiciels libres, mais dans certains cas, la tactique commande de permettre ce genre de pratiques. Par exemple dans le cas de la bibliothèque C, celle utilisée par tous les programmes écrits en langage C. Mettre une telle bibliothèque sous GPL interdirait de porter des logiciels propriétaires sur un système libre de type GNU/Linux. Cela pourrait décourager l'utilisation de systèmes libres plus que cela n'encouragerait le développement de logiciels libres.
Une des manières de résoudre ce problème a été de créer la LGPL [4] (pour GNU Library General Public Licence). La LGPL protège le code de la bibliothèque car elle interdit d'y ajouter des modifications propriétaires, mais elle autorise l'utilisation de la bibliothèque par un logiciel propriétaire.
Plus récemment, Richard Stallman a décidé de remplacer la LGPL par une autre licence, la GNU Lesser General Public License [6]. Les modifications sont mineures, mais le changement de nom insiste sur la préférence de la GNU GPL.
Le seul problème sérieux de la GPL est la langue. Elle est en effet écrite en langue anglaise, ce qui la rend plus difficilement applicable en France. La FSF se refuse à la traduire, avançant que sa traduction pourrait introduire des problèmes supplémentaires d'application et de compatibilité entre des versions de langues différentes. Cependant, des versions non officielles sont disponibles pour une meilleure compréhension [7].
Plus récemment, des tentatives d'élaboration d'une licence spécifique au droit français sont en cours.
Les licences non copyleftées
Comme une licence copyleftée, une licence non copyleftée garantit les quatre libertés citées ci-dessus, mais elle autorise aussi l'ajout de restrictions au logiciel. Le principe est que même si la copie du logiciel que vous possédez est libre, il est possible à n'importe qui d'apporter des modifications au logiciel et de rendre la version modifiée propriétaire.
C'est le problème majeur des logiciels libres non copyleftés, car les libertés du logiciel ne sont pas garanties pour tous les utilisateurs. Prenons par exemple le système X Window. Dans sa version originale, il est développé en utilisant la licence X, qui est non copyleftée. Mais de nombreux éditeurs de logiciels et des constructeurs utilisent une version modifiée de X Window qu'ils ont rendu propriétaire (tous les systèmes X Window des Unix propriétaires sont issus de la version libre de X Window). Les utilisateurs de ces systèmes ne bénéficient d'aucune des libertés d'un logiciel libre.
Parmi les licences non copyleftées, les plus connues sont :
- les licences de type BSD. Elles découlent de la licence du système BSD (un des systèmes Unix les plus anciens), créée par l'université de Californie (University of Berkeley). De nombreux logiciels et systèmes d'exploitation libres l'utilisent;
- les licences de type X ou XFree86. Elles sont utilisées dans le développement du système X Window. Récemment, le consortium X (chargé du développement de X Window) a tenté d'imposer une licence restrictive à X Window, ce qu'autorise une licence non copyleftée. Sous la pression de la communauté du logiciel libre, le consortium est revenu sur ses pas.
Confusion et marchands du temple
Nous connaissons tous le succès actuel du logiciel libre et de son mode de développement. De nombreux éditeurs s'y intéressent, soit par pur intérêt économique, soit par souci de ne pas rester à la traine. Certains jouent le jeu, éditent des logiciels libres et en vivent. Certains prennent le train en marche et profitent de la confusion que connait le public pour essayer de se tailler une place dans la communauté du logiciel libre.
Plutôt que d'utiliser des licences libres existantes et éprouvées, des éditeurs créent les leurs et jouent sur des ambiguïtés pour rendre difficile la distinction entre libre et non libre. La multiplication de licences semi-libres (ou même propriétaires) pour des logiciels dont le code source est disponible entretient la confusion.
Récemment, la société Apple a créé un énorme effet d'annonce en publiant une partie de son code source sous une licence dite ``ouverte''. En fait, malgré un soutien d'une partie de la communauté du logiciel libre, plusieurs clauses suffisent à écarter cette licence du monde des licences libres (voir les textes de la FSF et de l'APRIL à ce sujet [8]).
Un proverbe issu du monde BSD dit "ne faites pas confiance à un logiciel dont vous n'avez pas le code source''. Aujourd'hui, certains logiciels propriétaires nous montrent leur code source sans nous donner entière liberté dessus. Alors ne faites pas confiance à un logiciel dont vous n'avez pas lu la licence.
Références
- http://www.gnu.org/philosophy/free-sw.html
- http://www.gnu.org/copyleft/copyleft.html
- http://www.gnu.org/copyleft/gpl.html
- http://www.april.org/groupes/doc/licences/licences.html
- http://www.gnu.org/copyleft/lgpl.html
- http://www.gnu.org/copyleft/lesser.html
- http://www.april.org/gnu/gpl_french.html et http://www.linux-france.org/article/these/gpl.html
- http://www.gnu.org/philosophy/apsl.html et http://www.april.org/articles/communiques/apsl.html
[1] Le reverse engineering regroupe l'ensemble des techniques permettant d'essayer de comprendre le fonctionnement d'un programme par un autre moyen que la documentation fournie ou les sources. Il s'agit dans la plupart des cas de passer du langage binaire dans lequel un programme est écrit à un langage à peine plus compréhensible par un humain, ou d'examiner les communications qu'effectue un programme.
[2] Richard Stallman est l'inventeur du concept du logiciel libre, le fondateur de la Free Software Foundation (FSF) et l'initiateur du projet GNU dont le but est de développer un système d'exploitation entièrement libre (il existe aujourd'hui sous le nom de GNU/Linux).
Ce document peut être reproduit par n'importe quel moyen que ce soit, pourvu qu'aucune modification ne soit effectuée et que cette notice soit préservée.