Copyleft

Que permettent les licences libres ?

CopyleftIl existe une question qui revient très souvent lorsqu’on trouve enfin le logiciel ou la bibliothèque qui fait exactement ce dont on a besoin : “mince, elle est sous licence XXXX, je peux l’utiliser dans mon logiciel ou non ?

Du coup, on commence à rechercher sur internet, et on se rend compte qu’il est impossible de trouver une explication simple du genre “cette licence permet ceci et interdit cela”.

Je vais donc essayer, à travers cet article, de répondre à cette question simple : “qu’est ce que les grandes licences libres permettent ?“. Je ne rentrerai volontairement pas dans les détails, car cet article a vocation à être le plus simple et le plus compréhensible possible.

1) Le copyleft

CopyleftLa première chose à connaître, afin de mieux comprendre le monde des licences libres, est le copyleft.

Voici la définition de ce terme, venant directement du Wiktionnaire :

Qui permet l’usage, la distribution et la modification, sous condition que les copies et les dérivés soit aussi distribués sous la même licence.

Cela signifie que tout morceau de code, application, bibliothèque, … qui utilise du code ou des composants sous licence avec copyleft hérite de la même licence.

Un exemple simple : si vous décidez d’utiliser une bibliothèque GPL dans votre application propriétaire, votre application doit obligatoirement prendre la licence GPL et toute distribution de cette application doit s’accompagner de son code source.

2) Les licences libres avec copyleft

CC-BY-SALes licences libres avec copyleft sont les plus connues : GPL (GNU Public Licence), CC-BY-SA (Creative Commons ShareAlike), AGPL, GFDL, …

Il y a cependant une petite chose à savoir sur les licences avec copyleft : il faut en effet savoir que le copyleft ne s’applique que dans le cas où le logiciel sera distribué.

Ainsi, un site web qui ne sera pas distribué peut parfaitement utiliser des bibliothèques ou applications sous licence avec copyleft !

3) La licence AGPL (Affero GNU Public Licence)

La licence AGPL est légèrement différente des autres licences avec copyleft.

Cette licence ajoute “les usages en réseau” à l’utilisation qui entraîne l’application du copyleft.

Ainsi, un site web utilisant une bibliothèque ou une application sous licence AGPL se devra d’être distribué sous licence AGPL à son tour.

Cette licence a été créée afin d’éviter le “pillage à travers le cloud” : récupérer des applications sous licence libre, les modifier et les publier en ligne afin d’en tirer un bénéfice sans avoir à redistribuer le code source et sans avoir à reverser de l’argent au créateur de l’application.

4) La licence LGPL (Lesser GNU Public Licence)

La licence LGPL est une licence dérivée de la licence GPL. Elle permet l’utilisation de bibliothèques dans des applications propriétaires car elle n’applique pas la clause du copyleft en cas d’utilisation à travers une interface (liaison dynamique à la bibliothèque, mais pas d’import de tout ou partie du code de celle ci dans votre application, ni de liaison statique à la bibliothèque).

5) Les licences libres sans copyleft

Ensuite, viennent toutes les licences sans copyleft : BSD, Apache, MIT, etc.

Ces licences, en général très permissives, permettent d’intégrer n’importe quel morceau de code ou n’importe quelle bibliothèque dans n’importe quel projet, qu’il soit libre ou propriétaire. En général elles ne demandent qu’une citation ou une référence dans les ressources de l’application ou du site web.

Il est à noter que pour toute modification du code source d’une application ou d’une bibliothèque sous une de ces licences (qu’elles soient avec ou sans copyleft) utilisée dans une application distribuée vous obligera à redistribuer cette application ou cette bibliothèque avec son code source modifié.

6) Les doubles licences

Enfin, il faut parler des doubles licences.

De quoi s’agit-il ? Et bien tout simplement de développeurs comme vous et moi qui, pour gagner un peu d’argent grâce à leur code, distribuent leurs application gratuitement sous licence libre avec copyleft et la vendent pour quelques euros sous licence libre sans copyleft. Ainsi, quand vous trouvez une bibliothèque dans ce cas dont vous avez besoin, vous avez le choix entre :

  • L’utiliser sous sa licence avec copyleft (et donc si votre projet a vocation à être distribué, il devra reprendre la licence du module concerné),
  • L’acheter pour pouvoir l’utiliser sous sa licence sans copyleft (solution privilégiée le plus souvent par les entreprises afin d’éviter l’héritage de la close copyleft)

7) Distribuer le code source ?

Si vous avez à distribuer votre code source (car vous avez utilisé une bibliothèque avec licence sous copyleft par exemple), vous êtes libres de choisir le moyen de le faire : l’intégrer à l’application ou au site web, le rendre disponible et téléchargeable sur Internet, l’envoyer imprimé aux gens qui en feraient la demande par courrier, etc.

Vous pouvez même facturer des frais raisonnables de copie et d’envoi du code source de votre application !

Vous ne pouvez juste pas échapper au fait de devoir rendre disponible le code source de votre application.

8) Pour résumer

Vous avez besoin d’implémenter du code / d’utiliser une bibliothèque sous licence GPL (ou sous toute autre licence avec copyleft, à l’exception de la AGPL) :

  • En général il vous est demandé d’indiquer l’utilisation de ce module dans les ressources de l’application.
  • Si vous modifiez le code ou la bibliothèque vous devrez la redistribuer avec son code source modifié.
  • Vous pouvez l’utiliser sans conséquences sur un site web qui ne sera pas distribué.
  • Si vous l’utilisez dans une application qui sera distribuée, votre application devra être passée sous licence GPL et donc vous devrez distribuer le code source avec l’application.

Vous avez besoin d’implémenter du code / d’utiliser une bibliothèque sous licence AGPL :

  • En général il vous est demandé d’indiquer l’utilisation de ce module dans les ressources de l’application.
  • Si vous modifiez le code ou la bibliothèque vous devrez la redistribuer avec son code source modifié.
  • Dès l’instant où votre application est distribuée ou visible sur un réseau (dont Internet), elle doit prendre la licence AGPL.

Vous avez besoin d’implémenter du code / d’utiliser une bibliothèque sous licence Apache (ou sous tout autre licence sans copyleft) :

  • En général il vous est demandé d’indiquer l’utilisation de ce module dans les ressources de l’application.
  • Si vous modifiez le code ou la bibliothèque vous devrez la redistribuer avec son code source modifié.
  • Vous pouvez l’utiliser sur vos sites web et dans vos applications sans avoir à changer de licence et sans avoir à redistribuer le code source de vos applications (sauf si vous le décidez ainsi).

En espérant que cette petite clarification vous aura aidé, je vous encourage malgré tout à faire quelques recherches lorsque vous devez utiliser une bibliothèque sous certaines licences, car elles peuvent parfois avoir des conditions particulières. Je n’ai fait que résumer les grands principes propres aux licences libres les plus connues.

Dans tous les cas, n’hésitez pas à revenir vers moi en cas d’erreur ou de choses qui ont changé entre temps.

Bon développement à tous !

Nombre de vue : 210

COMMENTAIRES 2 commentaires

  1. Mikaël Restoux dit :

    Merci pour ces clarifications. Pour info, le site http://www.tldrlegal.com/compare permet de savoir quelles sont les restrictions quand on combine des bibliothèques aux licences différentes. Avec bien sûr un gros warning, puisque l’interprétation des licences est parfois complexe.

  2. Benoît Parmentier dit :

    Super article, cependant dans la partie “Il est à noter que pour toute modification du code source d’une application […] vous obligera à redistribuer cette application ou cette bibliothèque avec son code source modifié.”, d’où provient cette contrainte (elle n’apparaît pas dans les licences MIT et BSD) ?

AJOUTER UN COMMENTAIRE