Licence CC BY

La GPL, la licence des cornus

La GPL est une licence pour gnous : elle rend libre comme l'air, mais elle sait aussi se défendre.

Dernière mise à jour :
Auteur :
Catégories :
Temps de lecture estimé : 18 minutes

La GNU General Public License (GPL) a été écrite par Richard Stallmann. Elle fait sa première apparition en février 1989 pour protéger le code des programmes qu’il écrit pour le projet GNU (1).

Elle en est actuellement à sa version 3 (GPLv3) et est déclinée en 3 saveurs (la GPL, la LGPL et la AGPL). Elle s’applique à tout ce qui dispose d’un code source et donc en particulier aux programmes informatiques.

La GPL et le logiciel libre : les deux font la paire

Vouloir parler de la GPL sans présenter ce qu’est le logiciel libre, ce serait un peu comme expliquer pourquoi les pommes tombent par terre en oubliant de mentionner la gravitation. La GPL et le logiciel libre sont étroitement reliés. Peut-être parce que l’inventeur de la première est le premier à écrire une définition de la seconde ?

Logiciel libre: la définition de Richard

Richard Stallman définit un logiciel libre par quatre grandes libertés qu’il doit donner à son utilisateur :

  • Liberté 0 − liberté d’utiliser le programme comme bon lui semble, pour n’importe quel usage ;
  • Liberté 1 − liberté d’étudier le programme sous toutes ses coutures et de le modifier ;
  • Liberté 2 − liberté de partager le programme avec qui il veut et comme il veut ;
  • Liberté 3 − liberté de partager ses modifications du programme avec qui il veut et comme il veut.

Tout programme qui ne respecte pas l’une ou plusieurs de ces règles n’est pas libre et est appelé logiciel privateur. Bref, n’est pas logiciel libre qui veut !

J’ai repris cette définition de celle donnée par la Free Software Foundation. On ne peut pas comprendre la GPL sans avoir compris cette idée de logiciel libre, alors prenez peut être le temps de relire cette définition, ou d’aller consulter les explications supplémentaires du site de la Free Software Foundation. (2)

Pas de GPL sans code source

Cette définition a des conséquences assez immédiates.

Par exemple, pour que la liberté 1 puisse être exercée, un utilisateur doit pouvoir accéder aux sources du programme. Sans ces sources, il ne lui est pas possible d’étudier le fonctionnement du programme ou de l’adapter à ses besoins, etc. En choisissant la GPL, le développeur a l’obligation de donner accès au code source du programme qu’il donne ou vend.

Prenez toutefois garde, logiciel libre ≠ logiciel open source ! La différence entre les deux est à deux doigts d’être capilotractée mais mérite toutefois une longue parenthèse à la fin de cet article. [1]

Quelques nuances

À la première lecture de ces libertés, on peut penser qu’elles nous permettent de faire un peu n’importe quoi. Oui et non. Je ne souhaite pas entrer dans une étude de cas complète de ce qu’on peut faire ou ne pas faire avec la GPL (la FAQ de la Free Software Foundation remplit déjà parfaitement cette mission (3) ), cependant j’aimerais mettre la lumière sur quelques situations qui m’ont permis de mieux appréhender cette licence.

Question de diffusion

La GPL n’entre vraiment en vigueur que lorsqu’un programme est diffusé. Par exemple, la GPL impose de donner accès aux sources du programme non pas à tout le monde, mais à tous ceux ayant reçu le programme. Autrement dit, ce n’est pas parce qu’un programme est sous la GPL que tout le monde peut en réclamer les sources. Uniquement les personnes qui en possèdent une copie.

Pas de rétrodroits

En quelque sorte, de par l’application des quatre libertés, l’auteur d’un programme perd tous les droits sur les copies qu’il en diffuse. Ainsi, si l’utilisateur décide de modifier le programme, il n’est pas tenu d’en informer le premier auteur. Pas même qu’il n’est tenu de lui fournir le code source de ses modifications s’il en fait la demande.

On voit ainsi des entreprises qui modifient pour leur besoin un programme libre et qui commercialisent ce programme modifié mais sans faire profiter de ces modifications la communauté libre.

Si cela peut rendre ronchons les libristes les plus passionnés, cela est en parfait respect avec la GPL.

Remarque : GPL oblige, rien n’empêche les clients de ladite entreprise de reverser à la communauté le programme modifié qu’ils ont acheté. ;)

La GPL : l'étendard du logiciel libre

La GPL permet d’incarner la définition du logiciel libre dans un formalisme juridique. N’y allant pas avec le dos de la cuillère, elle a deux implications qui font grincer des dents. En premier, la conséquence des libertés sur la vente de programmes libres et en second l’obligation d’adopter la GPL pour tout programme intégrant un programme protégé par la GPL.

La GPL et l’argent

Peut-on vendre un logiciel libre ?

Oui. Si vous lisez bien la GPL, vous remarquerez qu’il n’est jamais écrit qu’un logiciel libre ne peut être vendu. Au contraire même, les libertés 2 et 3 vous permettent de diffuser votre copie du programme comme bon vous semble, avec ou sans modifications. Dès lors, rien ne vous empêche de le rendre payant.

Mais vous devez être conscient d’une chose : si vous disposez des quatre libertés, la personne à qui vous l’aurez vendu aussi. Elle pourra alors revendre, ou donner la copie du programme que vous lui aurez vendue, aussi librement que vous. Et vous ne pourrez rien y faire sans rendre votre programme privateur.

Je pense que vous voyez assez rapidement le problème que cela peut poser… [2]

La GPL, c’est comme l’entropie…

L’entropie d’un système fermé ne peut qu’augmenter. La GPL, elle, ne peut que s’étendre. Pour être respectée, la GPL demande qu’un programme qu’elle protège doit rester libre, dans toutes les circonstances et quelques soient les conditions dans lesquelles il est utilisé. Ainsi, si un programme libre est intégré dans un programme plus grand, ce programme doit lui aussi être libre. Pour plagier Wikipedia, c’est ce que j’appellerai le caractère héréditaire de la GPL et c’est sur ce point que les esprits s’échauffent.

Une partie importante des programmes libres sont ce que l’on appelle des bibliothèques. Ce ne sont pas des programmes indépendants qui peuvent s’exécuter seuls, mais plutôt des boîtes à outils spécialisées que tous les autres programmes peuvent venir utiliser. Or, dès qu’un programme fait appel à une bibliothèque sous licence GPL, il doit lui aussi adopter cette licence.

Les choses sont en réalité un peu plus subtiles que cela car l’obligation dépend de la nature de la liaison entre le programme et la bibliothèque.

D’un coté, les libristes utilisent ce principe comme une arme pour propager le logiciel libre : si quelqu’un souhaite utiliser leurs bibliothèques libres, il doit rendre son programme libre, ce qui augmente le volume total de programmes libres. De l’autre, les développeurs de programme privateurs s’efforcent d’utiliser toutes les entourloupes possibles pour contourner cette règle et utiliser des bibliothèques libres dans leurs propres programmes.

Stallmann le reconnaît lui-même, cette décision est stratégique. (4) Cette licence permet aux logiciels libres de se battre sur une sorte de pied d’égalité avec le logiciel privateur. Les logiciels privateurs profitent de financements conséquents, les logiciels libres d’un large choix de bibliothèques de qualité !

Quelques déclinaisons de la licence

L’obligation de protéger avec la GPL tout programme lié à une bibliothèque sous la GPL peut toutefois être un frein pour l’adoption de logiciels libres. Dans ce cas, une licence un tantinet plus faible, la LGPL peut prendre la relève.

La Lesser General Public Licence est en tout point identique à la GPL sauf en ce qui concerne l’hérédité.

Lorsqu’un programme protégé par la LGPL est intégré dans un plus grand programme, celui-ci n’est pas obligé d’adopter la GPL. L’obligation de donner accès à l’utilisateur au code source et tout le tutti quanti des libertés restent et demeurent, mais restent limités au code sous la LGPL.

Grâce à cette licence, certaines bibliothèques libres peuvent donc être adjointe à un programme privateur.

Il existe enfin une dernière déclinaison de la GPL. L’Affero General Public Licence permet de protéger aussi bien que la GPL les programmes utilisables à travers un réseau, et en particulier les applications web.

Fonctionnement de la GPL

Copyright et copyleft

Pour fonctionner, la GPL utilise le cadre légal du copyright et le retourne à ses propres fins.

Copyright.

Le copyright est un droit décrit dans la loi d’un pays qui garanti au créateur d’un travail intellectuel les droits exclusifs sur son utilisation et sa distribution. Ce droit s’applique souvent pour un temps limité (par exemple jusqu’à un certain nombre d’années après la mort du créateur) avec l’intention de permettre au créateur de recevoir un bénéfice sur le travail qu’il a fourni.

(d’après Wikipedia)

Par l’intermédiaire d’une licence, l’auteur décrit de quelle façon il souhaite disposer des droits qu’il possède sur son travail. La GPL lui permet de donner les 4 libertés fondamentales aux personnes ayant reçu son programme. C’est assez extraordinaire. Alors que le copyright interdit par défaut la diffusion, la modification et le détournement d’un travail sans l’autorisation explicite de l’auteur, les licences libres l’utilisent pour faire entièrement l’inverse ! L’auteur permet à tout le monde de diffuser, modifier et détourner son travail sans qu’un accord supplémentaire soit nécessaire ; la licence fait office d’autorisation.

Lorsqu’une licence impose que les travaux dérivés de ce qu’elle protège soient publiés sous la même licence (comme la GPL), on parle de copyleft.

Remarquez que la notion de copyright n’existe pas dans tous les pays. C’est en fait plutôt une notion de droit anglo-saxon. En France, il existe un droit similaire : le droit d’auteur. Par exemple, le copyright américain permet à un auteur de verser son travail dans le domaine public ce que le droit d’auteur français ne permet pas.

Conclusion

La GPL est une licence peu ordinaire. Elle défend mordicus les valeurs du logiciel libre tout en assurant une totale liberté aux utilisateurs. Il ne faut toutefois pas oublier qu’il n’y a pas de consensus sur la définition du logiciel libre telle qu’elle est dictée par le Free Software Foundation et sur laquelle la GPL s’appuie. Pour découvrir les licences alternatives à la GPL qui définissent autrement le libre, c’est vers les licences open source qu’il faut se tourner.

Bref, la GPL est bien une licence pour gnou1 qui libre comme l’air, sait aussi se défendre.

~2ohm

Article original sur mon site perso

Quelques liens et sources

Notes

[1] Logiciel Open Source

Un logiciel open source n’est pas nécessairement libre. La façon dont je vois cette différence est que l’open source, c’est comme le logiciel libre mais sans son idéologie. Ses critères sont notamment plus faibles sur la liberté 0. Ainsi, d’après cette liberté, lorsqu’un logiciel libre est utilisé dans un appareil, l’utilisateur doit pouvoir modifier ce logiciel, l’adapter, le mettre à jour, le remplacer librement. Pour respecter la licence de ce programme, le fabricant de l’appareil est même tenu de fournir à l’utilisateur les moyens nécessaires d’exercer cette liberté. Un programme open source n’impose pas ça.

L’exemple le plus connu concerne les téléphones sous Android. Android est un logiciel open source, vous pouvez télécharger et consulter son code sur internet. Pourtant vous ne pouvez pas modifier librement la version qui est installée sur votre appareil ; le constructeur vous en empêche.

Pour grattouiller plus sur les détails, consultez là aussi la page de la Free Software Foundation dont je me tire mes informations ainsi que la définition de l’open source sur le site de l’Open Source Initiative.

Voir

[2] GPL et profits

En fait, une approche classique pour tirer des profits d’un logiciel protégé par la GPL est d’utiliser une licence double. Le programme sous la GPL est distribué gratuitement ou vendu à une somme symbolique. Ce même programme sous une licence qui accepte qu’il soit intégré dans un logiciel privateur est vendu cher.

Je n’entre pas dans les détails, mais vous renvoie vers la page wikipedia.

Un grand merci à Arius pour sa relecture !


  1. Parce que le gnou s’appelle GNU. :p 


35 commentaires

Reprise du dernier message de la page précédente

Ah ouais, OK. C'est vrai que cette distinction entre statique/dynamique est un peu dommage, même si personnellement elle ne me dérange pas.

Quels sont les environnements où le dynamique n'existe pas ? Je pense à l'embarqué, là où la (L)GPLv2 ne doit pas obliger à publier le code source si je ne me trompe pas, cf. TiVo. Avec la 3, pas de bol. :)

Édité

+0 -0

@germinolegrand : De mémoire ces licences ne t'obligent pas a distribuer en amont ces éléments. Il faut que tu distribue les sources modifié, voir les fichiers objets, si tes utilisateurs le demandent mais tu n'es pas tenu de faire un site ou proposer un beau package.

Techniquement tant qu'on t'a rien demandé, tu n'es pas obligé de le mettre a disposition. Et tu te peux te contenter d'envoyer les fichiers objets dans un zip avec la ligne de commande de linkage.

La (L)GPL ne te force pas à faire un travail propre de distribution. D'ailleurs techniquement ce n'est qu'aupres de tes utilisateurs que tu te dois de proposer ça. Un outils interne a une entreprise par exemple peut tres bien avoir des morceaux en GPL et ne jamais distribuer les modifs si il n'est pas distribuer en exterieur.

+0 -0

Bonjour,

Je me posais une question ce matin sur le caractère "protégé en open source" d'un code sous GPL. Si un code est open source GPL, le code est visible. Dans quelle mesure un développeur peut copier un code open source, rajouter un "print(hello world!)" en plein milieu et dire "Ce code n'est pas le même, c'est moi qui l'ai fait tout seul sans connaître au préalable le code sous GPL, mais mon code je le passe en copyright" ?

Autrement dit c'est comme pour les médoc' : breveter une substance active c'est possible, mais on peut aussi rajouter un -CH3 à un endroit qui sert à rien sur la molécule => c'est une nouvelle molécule => nouveau brevet.

+0 -0

Justement, c'est en partie ma question : comment on considère que c'est le même code ? Le dev' peut très bien dire "ah non j'ai développé ça tout seul, et c'est pas exactement le même code d'ailleurs voyez la ligne 1523 !".

+0 -0

Et sur quels critères se base-t-on pour dire que "c'est le même programme" ? Sur l'effectivité (s'ils font tous les 2 la même chose) ?

Édité par Gwend@l

+0 -0

Oui, mais c'est justement la question. Juridiquement, qu'est-ce qui fait qu'un code est le même qu'un autre ? Est-ce qu'il existe un critère objectif ou c'est laissé à l'appréciation du juge en cas de conflit (et je suppose qu'entre microsoft et le libre, il a du y avoir des conflit…) ??

+0 -0

Fondamentalement, c'est la reprise de code source, l'utilisation de technologie brevetée (dans les pays où on peut breveter le logiciel), et la réutilisation de fichiers multimédia qui constituent une utilisation sans autorisation d'un logiciel sous droit d'auteur.

Le fait de réimplémenter exactement les mêmes fonctionnalités par des moyens (un code source, voire un algorithme) différents ne constitue pas une violation du droit d'auteur (sauf, toujours, dans le cas d'une techno brevetée), mais une application tout à fait légale de la concurrence.

#JeSuisGrimur #OnVautMieuxQueÇa

+1 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte