Utiliser le droit d'auteur pour protéger la liberté
Le mot copyleft est un détournement de copyright. C'est une notion créée dans les années 1980 par Richard Stallman et la Free Software Foundation (FSF) pour le projet GNU : un mécanisme qui utilise le droit d'auteur pour empêcher que les libertés du logiciel disparaissent. Le titulaire autorise quiconque à utiliser, modifier et distribuer le logiciel, mais pose une condition : « quand vous distribuez quelque chose fondé sur ce code, vous devez accorder les mêmes libertés aux destinataires. »
Les licences permissives (MIT, BSD, Apache) n'ont pas cette condition. On peut donc modifier du code permissif et le vendre comme produit fermé. Le copyleft bloque ce mouvement pour que les versions améliorées restent elles aussi publiques. En raison de cette propriété, on appelle aussi les licences copyleft des « licences de réciprocité (reciprocal) ».
Les obligations naissent lors de la « distribution »
Les conditions du copyleft s'appliquent lorsque vous transmettez le code à d'autres personnes. La GPL-3.0 appelle cela « convey (transmettre) ».
- Si vous créez avec du code GPL un outil utilisé uniquement dans votre entreprise, sans le distribuer à l'extérieur, aucune obligation de publier le source ne naît.
- Remettre une application à des clients sous forme d'installateur, ou la vendre intégrée à un appareil, constitue une distribution.
- Si le logiciel tourne uniquement sur un serveur et que les utilisateurs y accèdent par le web, ce n'est pas une distribution au sens de la GPL. C'est ce vide que comble l'AGPL.
Trois catégories selon la portée
Copyleft fort
La GPL-2.0 et la GPL-3.0 en sont les représentantes. Tout ce qui est combiné avec du code GPL et distribué comme un seul programme doit suivre les conditions de la GPL. La FSF considère que, dès lors qu'un seul programme est formé, il y a combinaison, que la liaison soit statique ou dynamique.
Copyleft faible
Licences qui restreignent la portée des obligations.
- LGPL : par bibliothèque. Seules les modifications de la bibliothèque doivent être publiées ; le programme qui l'utilise peut rester fermé s'il respecte les conditions (possibilité de relier, etc.).
- MPL-2.0 : par fichier. Si vous modifiez un fichier sous MPL, seul ce fichier est publié.
- EPL-2.0 : par module. Le code EPL et ses modifications sont publiés, mais les modules séparés peuvent utiliser une autre licence.
Copyleft réseau
L'AGPL-3.0 oblige à fournir le source aux utilisateurs dès lors qu'un programme modifié est proposé via le réseau. Elle a été créée pour combler le vide de la GPL à l'ère des services web.
| Licence | Portée de la publication | Simple exploitation sur un serveur |
|---|---|---|
| GPL-2.0 / GPL-3.0 | Tout le programme combiné | Aucune obligation |
| LGPL-2.1 / LGPL-3.0 | La bibliothèque et ses modifications | Aucune obligation |
| MPL-2.0 | Les fichiers MPL modifiés | Aucune obligation |
| EPL-2.0 | Le code EPL et ses modifications (module) | Aucune obligation |
| AGPL-3.0 | Tout le programme combiné | Source à fournir si version modifiée |
Idées reçues fréquentes
- « Le copyleft interdit l'usage commercial » — Non. On peut vendre des logiciels GPL, et de nombreuses entreprises tirent des revenus du support payant ou de l'hébergement. Ce qui est interdit, c'est de retirer leurs libertés aux destinataires.
- « Voir ne serait-ce qu'une ligne de code GPL rend mon code GPL » — Les licences portent sur la reproduction, la modification et la distribution des œuvres. S'inspirer d'une idée en lisant du code ne relève pas en soi du droit d'auteur. En revanche, une recopie de fait peut être considérée comme une reproduction.
- « En cas de violation, mon code devient automatiquement GPL » — La conséquence d'une violation de licence est généralement la perte des droits et la responsabilité pour contrefaçon. Votre code n'est pas publié de force : vous choisissez de respecter les conditions ou de cesser la distribution.
- « Le code copyleft ne peut jamais être utilisé dans un projet permissif » — Cela signifie que, si vous combinez et distribuez, l'ensemble combiné suit les conditions du copyleft. Il reste possible de séparer les programmes ou de lier une bibliothèque en copyleft faible dans le respect de ses conditions. Voir les bases de la compatibilité.
Questions pour décider de choisir le copyleft
- Est-il acceptable que les modifications de votre code se retrouvent dans des produits fermés ?
- Qu'est-ce qui compte le plus : une large adoption de la bibliothèque ou le retour des améliorations ?
- Le mode d'utilisation principal est-il un logiciel installé ou un service qui tourne sur un serveur ?
Selon vos réponses à ces trois questions, l'assistant de choix réduit la liste des candidats. Une comparaison plus détaillée se trouve dans Permissive ou copyleft.
Cet article est fourni à titre d'information générale et ne constitue pas un conseil juridique. Pour toute décision importante, consultez un professionnel.
Sources
- GNU — What is Copyleft? — https://www.gnu.org/licenses/copyleft.html
- FAQ des licences GNU — https://www.gnu.org/licenses/gpl-faq.html
- Texte de la GNU GPL v3.0 — https://www.gnu.org/licenses/gpl-3.0.html