[Traduit de l'anglais]

Guide rapide de la GPLv3

 [Logo de la GPLv3]

[L'article original en anglais est également disponible aux formats PDF et reStructuredText.]


Après une année et demie de consultation publique, des milliers de retours et quatre brouillons, la version 3 de la GNU General Public License (GPLv3) a enfin été publiée le 29 juin 2007. Bien qu'il y ait eu de nombreuses discussions à propos de cette licence depuis la parution de son premier brouillon, peu de gens ont parlé des avantages qu'elle procure aux développeurs. Nous publions ce guide afin de combler ce manque. Nous débuterons par un rappel succinct sur les logiciels libres, le copyleft (ou gauche d'auteur) et les objectifs de la GPL. Nous passerons ensuite en revue les principaux changements apportés à la licence afin de voir en quoi ils vont dans le sens des objectifs de la GPL et des intérêts des développeurs.

Les principes de base de la GPL

Personne ne doit être limité par les logiciels qu'il utilise. Il y a quatre libertés que tout utilisateur doit posséder :

  • la liberté d'utiliser le logiciel à n'importe quelle fin,
  • la liberté de modifier le programme pour répondre à ses besoins,
  • la liberté de redistribuer des copies à ses amis et voisins,
  • la liberté de partager avec d'autres les modifications qu'il a faites.

Quand un programme offre à ses utilisateurs toutes ces libertés, nous le qualifions de logiciel libre.

Les développeurs qui écrivent des logiciels peuvent les publier sous les termes de la GNU GPL. Ce faisant, leur logiciel sera libre et le restera, indépendamment de qui modifiera et distribuera ce logiciel. Nous appelons cela copyleft : le logiciel est bien soumis au droit d'auteur, mais plutôt que d'utiliser ces droits pour restreindre l'usage que peuvent en faire les utilisateurs (comme c'est le cas dans les logiciels privateurs1), nous les utilisons pour nous assurer que tous les utilisateurs auront ces libertés.

Nous mettons à jour la GPL afin d'empêcher son copyleft d'être sapé par des évolutions législatives ou technologiques. La dernière version protège les utilisateurs contre trois dangers récents :

  • La « tivoïsation » : Certaines entreprises ont créé différents types d'équipements qui font tourner des logiciels sous GPL, et ont ensuite bidouillé le matériel pour qu'elles puissent modifier les logiciels sans que vous puissiez le faire. Si un équipement peut faire tourner n'importe quel logiciel, cet équipement est un ordinateur polyvalent. Dès lors, son propriétaire doit pouvoir contrôler ce que fait cet équipement. Quand un équipement vous empêche de faire cela, nous appelons cela la tivoïsation.
  • Des lois prohibant les logiciels libres : certaines lois, comme la Digital Millennium Copyright Act,2 ou la Directive de l'Union européenne sur le copyright, ont rendu délictueux le fait d'écrire ou de distribuer un logiciel qui peut casser un dispositif de DRM (gestion numérique des restrictions) ; voir plus loin). Il ne faut pas que ces lois interfèrent avec les droits que vous confère la GPL.
  • Des accords discriminants autour des brevets : l'entreprise Microsoft a récemment commencé à dire qu'elle n'intenterait pas de procès pour violation de brevet contre les utilisateurs de logiciels libres… « pour peu » qu'ils aient obtenu le logiciel d'un fournisseur qui paie Microsoft pour ce privilège. En fin de compte, Microsoft cherche à obtenir une rétribution pour l'utilisation de logiciels libres, ce qui interfère avec la liberté des utilisateurs. Aucune entreprise ne doit être en mesure de faire cela.

La version 3 de la GNU GPL apporte aussi nombre d'améliorations quant à la lisibilité et l'utilisation de la licence par tout un chacun. Mais même avec tous ces changements, la GPLv3 n'est pas une licence radicalement nouvelle ; c'est plutôt une évolution par rapport à la version précédente. Bien qu'une bonne partie du texte ait changé, beaucoup de ces changements visent seulement à clarifier ce que la GPLv2 disait déjà. En ayant cela à l'esprit, voyons ensemble les principaux changements apportés par la version 3 et en quoi ils améliorent la licence pour les utilisateurs et les développeurs.

Neutraliser les lois prohibant les logiciels libres, sans interdire les DRM

Vous êtes certainement au courant de l'existence de DRM (gestion numérique des restrictions) dans les DVD et autres médias. Vous êtes sans doute aussi au courant des lois qui ont rendu illégale l'écriture de vos propres outils pour les contourner comme, par exemple, la loi américaine dite Digital Millennium Copyright Act et la Directive de l'Union européenne sur le copyright. Personne ne doit pouvoir vous empêcher d'écrire le code que vous souhaitez écrire, et la GPLv3 protège ce droit qui est le vôtre.

Il est toujours possible d'utiliser du code sous GPL pour écrire du logiciel qui met en œuvre un mécanisme de DRM. En revanche, si quelqu'un le fait avec du code sous GPLv3, la section 3 de la licence stipule que ce mécanisme ne pourra être considéré comme une mesure de « protection » effective. Ceci veut dire que si vous le cassez, vous serez libres de distribuer le logiciel que vous avez écrit pour ce faire et ne serez pas menacé de sanctions du fait de la DMCA ou lois similaires.

Comme toujours, la GNU GPL ne bride pas les gens dans les logiciels qu'ils font, elle les empêche seulement de brider l'usage que les autres en font.

Protéger votre droit de bricoler

La tivoïsation est une dangereuse tentative visant à restreindre la liberté des utilisateurs : le droit de modifier votre logiciel devient caduc si aucun de vos ordinateurs ne vous le permet. La GPLv3 empêche la tivoïsation en requérant du distributeur d'un appareil qu'il fournisse toutes les informations et toutes les données nécessaires pour y installer des versions modifiées. Cela peut être aussi simple qu'un ensemble d'instructions, ou aller jusqu'à inclure des données spéciales telles que des clés cryptographiques ou des informations sur la façon de contourner un test d'intégrité du matériel. Tout dépend de la façon dont le matériel a été conçu, mais quelle que soit l'information dont vous avez besoin, vous devez être en mesure de l'obtenir.

Cette exigence a une portée limitée. Les distributeurs ont toujours le droit d'utiliser des clés cryptographiques quel qu'en soit l'usage et ils n'auront l'obligation de révéler une clé que si elle vous est indispensable pour modifier les logiciels sous GPL sur l'appareil qu'ils vous ont fourni. Le projet GNU lui-même utilise GnuPG pour attester de l'intégrité de tous les logiciels sur son site FTP ; des mesures de ce type sont bénéfiques pour l'utilisateur. La GPLv3 n'empêche pas les gens d'utiliser la cryptographie et nous ne voudrions pas qu'elle le fasse. Elle se contente d'empêcher des gens de vous priver des droits que la licence vous accorde, que cette privation se fasse par le biais de la technologie, du droit des brevets ou de toute autre façon.

Une protection plus forte contre la menace des brevets

Au cours des 17 années écoulées depuis la publication de la GPLv2, le paysage des brevets logiciels a considérablement évolué et les licences de logiciel libre ont développé de nouvelles stratégies pour y répondre. La GPLv3 est, elle aussi, à l'image de ces changements. Dès que quelqu'un transfère un logiciel régi par la GPLv3 après l'avoir créé ou modifié, cette personne doit fournir à tous les destinataires les licences de brevet nécessaires à l'exercice des droits que confère la GPLv3. De plus, si jamais le bénéficiaire d'une licence cherche à engager un procès pour violation de brevet à l'encontre d'un autre utilisateur en vue de l'empêcher d'exercer ses droits, la licence de l'attaquant sera révoquée.

Ce que cela signifie pour les utilisateurs et les développeurs, c'est qu'ils pourront travailler avec des outils régis par la GPLv3 sans craindre qu'un contributeur désespéré essaie plus tard de leur intenter un procès pour violation de brevet. Avec ces changements, la GPLv3 accorde à ses utilisateurs plus de protection que n'importe quelle autre licence de logiciel libre contre les agressions faites par l'entremise de brevets.

Clarification des compatibilités entre licences

Si vous aviez trouvé des portions de code que vous souhaitiez incorporer dans un projet sous GPL, la GPLv2 stipulait que la licence de l'autre code ne devait pas comporter de quelconque restriction qui ne soit pas déjà présente dans la GPLv2. Tant que cette condition était remplie, nous disions que la licence était « compatible avc la GPL ».

Toutefois, certaines licences avaient des limitations qui n'étaient pas spécialement restrictives, parce qu'elles étaient très simples à respecter. Par exemple, certaines licences disent qu'elles ne vous permettent pas d'utiliser certaines marques. Ce n'est pas une clause vraiment restrictive : si elle n'était pas là, vous n'auriez pas non plus le droit d'utiliser cette marque. Nous avons toujours dit que ces licences étaient compatibles avec la GPLv2 également.

Aujourd'hui, la GPLv3 donne explicitement à chacun le droit d'utiliser du code qui a des limitations comme celle-là. Ces nouveaux termes de la licence devraient permettre de mieux définir quelles licences sont compatibles avec la GPL, pourquoi elles le sont et ce que vous pouvez faire avec du code compatible avec la GPL, questions qui donnaient lieu à des incompréhensions.

Nouvelles licences compatibles

Outre la clarification des règles concernant des licences déjà compatibles avec la GPL, la GPLv3 introduit la compatibilité avec quelques autres licences. La licence Apache 2.0 en est un parfait exemple. Nombre de logiciels libres de grande qualité sont disponibles sous cette licence et ont rassemblé de fortes communautés. Nous espérons que cette modification de la GPL contribuera à augmenter la coopération et le partage au sein de la communauté du logiciel libre. Ce diagramme illustre certaines relations de compatibilité entre différentes licences de logiciel libre parmi les plus courantes :

Diagramme représentant les relations de compatibilité entre différentes
licences de logiciel libre.

Les flèches pointant d'une licence à une autre indiquent que la première licence est compatible avec la seconde. Ceci est vrai même en suivant plusieurs flèches à la suite ; donc, par exemple, la licence ISC est compatible avec la GPLv3. La GPLv2 est compatible avec la GPLv3 si le programme vous permet de choisir « toute version ultérieure » de la GPL, ce qui est le cas de la plupart des logiciels publiés sous cette licence. Ce diagramme n'est pas complet (se reporter à notre page de licences pour une liste plus complète des licences compatibles avec la GPLv2 et la GPLv3) mais il illustre clairement le fait que la GPLv3 est compatible avec à peu près tout ce qui est compatible avec la version 2, ainsi qu'avec quelques autres.

La GNU AGPL version 3 a aussi été intégrée dans la réflexion. La GPL Affero initiale était destinée à assurer aux utilisateurs d'une application web un accès à ses sources. La version 3 étend cet objectif : elle s'applique à tous les logiciels en réseau, donc elle s'applique bien aussi à des programmes comme les serveurs de jeux. Les termes supplémentaires sont aussi plus flexibles, donc si quelqu'un utilise des sources sous AGPL dans un programme sans interface réseau, il n'aura qu'à fournir les sources de la même façon qu'avec la GPL. En rendant ces deux licences compatibles, on s'assure que les développeurs de logiciels interagissant avec le réseau seront en mesure de renforcer leur copyleft tout en continuant à s'appuyer sur la masse de code fonctionnel disponible sous GPL.

Moyens supplémentaires à la disposition des développeurs pour fournir les sources

Une des exigences fondamentales de la GPL est que, lorsque vous distribuez du code compilé aux utilisateurs, vous devez aussi leur fournir un moyen d'obtenir le code source. La GPLv2 vous donnait plusieurs façons de le faire, que la GPLv3 laisse intactes en y ajoutant certaines clarifications. En outre, la GPLv3 vous offre de nouveaux moyens de fournir les sources quand vous transférez le code compilé via le réseau. Par exemple, quand vous hébergez du code compilé sur un serveur web ou FTP, vous pouvez tout simplement y ajouter des instructions expliquant aux visiteurs comment obtenir le code source d'un serveur tiers. Grâce à cette nouvelle option, satisfaire à l'exigence de disponibilité du code source devrait être sensiblement plus facile pour bon nombre de petits distributeurs qui font seulement de petites modifications à de grands corpus de code source.

La nouvelle licence devrait aussi simplifier la transmission du code compilé via BitTorrent. Tout d'abord, les gens qui se contentent de télécharger ou de partager le torrent sont exemptés des exigences de la licence pour cette transmission du logiciel. Ensuite, quiconque initie le torrent peut fournir le code source en disant simplement aux autres utilisateurs du torrent sur quel serveur public il est disponible.

Ces nouvelles options aident à garder la GPL en phase avec les usages de la communauté concernant la mise à disposition des sources, sans rendre l'obtention de ces sources plus difficile pour les utilisateurs.

Moins de sources à distribuer : de nouvelles exceptions pour les bibliothèques système

Les deux versions de la GPL requièrent que vous fournissiez toutes les sources nécessaires à la construction du logiciel, y compris les bibliothèques utilisées, les scripts de compilation, etc. Elles définissent aussi la limite des bibliothèques système : vous n'avez pas à fournir le code source de certains éléments de base du système d'exploitation, tels que la bibliothèque C.

La GPLv3 a ajusté la définition des bibliothèques système pour y inclure les logiciels qui ne font pas partie du système d'exploitation de base, mais dont on peut raisonnablement attendre que tous les utilisateurs les aient ; Par exemple, les bibliothèques standards des langages de programmation usuels tels que Python et Ruby.

Cette nouvelle définition clarifie aussi le fait que vous pouvez combiner un logiciel sous GPL avec des bibliothèques système incompatibles avec la GPL, telles que la bibliothèque C d'OpenSolaris, et les distribuer de manière combinée. Ces modifications simplifieront la vie des distributeurs de logiciels libres qui souhaitent fournir ces combinaisons à leurs utilisateurs.

Une licence globale

La GPLv2 parle beaucoup de « distribution » [to distribute] : quand vous partagez le programme avec quelqu'un d'autre, vous le distribuez. La licence ne précise jamais de quelle distribution il s'agit, dans la mesure où ce terme a été emprunté aux lois des États-Unis sur le copyright. Nous nous attendions à ce que ce soit là que les juges en cherchent la définition. Toutefois, nous avons découvert plus tard que les lois homologues de certains autres pays utilisaient le même terme, mais dans d'autres acceptions. De ce fait, un juge d'un de ces pays pourrait interpréter la GPLv2 différemment d'un juge des États-Unis.

La GPLv3 utilise un terme nouveau, « transfert » [to convey], et en fournit une définition. Ce « transfert » a précisément le sens que nous souhaitions donner à « distribution », mais maintenant que le terme est directement défini dans la licence, il devrait être facile aux gens, où qu'ils soient, de comprendre ce que nous voulons dire. Il y a par ailleurs quelques autres modifications mineures à différents endroits de la licence qui vont aussi contribuer à garantir que la licence soit appliquée de la même façon partout dans le monde.

Quand les règles sont violées : un chemin facilité vers leur respect

Sous la GPLv2, si vous aviez violé la licence d'une quelconque façon, vos droits étaient automatiquement perdus, et ce de manière permanente. La seule façon de les retrouver était d'en faire la requête écrite auprès des détenteurs du copyright. Bien qu'une défense solide contre de telles violations soit souhaitable, cette politique pouvait causer de longues migraines lorsque quelqu'un violait involontairement ces règles. Demander à tous les détenteurs de copyright un accord formel pour la restauration de sa licence pouvait être ardu et coûteux : une distribution GNU/Linux typique se fonde sur le travail de milliers de gens.

La GPLv3 propose une remise de peine pour bonne conduite : si vous violez la licence, vous récupérerez vos droits dès que vous cesserez votre infraction, à moins qu'un détenteur de copyright ne vous contacte sous 60 jours. Après réception d'une telle notification, vous récupérerez pleinement vos droits si c'est votre première infraction et que vous la corrigez sous 30 jours. Sinon, vous pouvez arranger l'affaire directement avec le détenteur du copyright qui a pris contact avec vous et vos droits seront alors rétablis.

Le respect de la GPL a toujours été la première des priorités du FSF Compliance Lab et d'autres groupes cherchant à mettre en œuvre la licence à l'échelle mondiale. Ces modifications assurent que le respect de la licence reste la première des priorités pour ces gens et incitent ceux qui violent les termes de la licence à la respecter.

L'apothéose

Certaines de ces modifications vous semblent certainement moins importantes que d'autres. C'est normal. Chaque projet est différent et attend des choses différentes de sa licence. Mais il y a de fortes chances qu'un certain nombre de ces améliorations vous aident dans votre travail.

Prises dans leur ensemble, toutes ces améliorations illustrent quelque chose de plus : nous avons réalisé un meilleur copyleft. Il permet de mieux protéger les libertés des utilisateurs et facilite aussi la coopération avec la communauté du logiciel libre. Mais la mise à jour de la licence n'est qu'une partie du travail ; afin que les gens profitent des avantages qu'elle apporte, il faut aussi que les développeurs utilisent la GPLv3 dans leurs projets. En publiant vos propres logiciels sous cette nouvelle licence, toute personne ayant affaire à vos logiciels en profitera, que ce soit les utilisateurs, les autres développeurs, les distributeurs ou même les avocats. Nous espérons que vous utiliserez la GPLv3 lors de votre prochaine publication.

Si vous souhaitez en apprendre plus sur le passage de votre projet à la GPLv3, le FSF Compliance Lab serait enchanté de vous aider. Aussi bien sur gnu.org que fsf.org, vous pouvez trouver des informations de base pour utiliser la licence, et une FAQ répondant aux questions usuelles que se posent les gens à son propos. Si votre cas est plus compliqué, prenez contact avec nous et nous ferons tout notre possible pour vous aider dans cette transition. Ensemble, nous pouvons contribuer à protéger la liberté de tous les utilisateurs.


Notes de traduction
  1.   Autre traduction de proprietary : propriétaire.
  2.   Loi sur le copyright du millénaire numérique.