Les familles de licences
Il existe des centaines de licences ; la liste SPDX en référence plus de six cents. Mais elles se rangent en huit familles, et à l’intérieur d’une famille les obligations sont quasiment les mêmes. Connaître les huit suffit à traiter 99 % des cas.
Vue d’ensemble
| Famille | Réciprocité | Ce qu’elle impose | Représentants |
|---|---|---|---|
| 1. Domaine public | Aucune | Rien, ou presque | CC0-1.0, Unlicense, 0BSD |
| 2. Permissive | Aucune | Attribution, conservation des mentions | MIT, BSD, Apache-2.0, ISC |
| 3. Copyleft faible — fichier | Par fichier modifié | Publier les fichiers modifiés | MPL-2.0, EPL-2.0, CDDL |
| 4. Copyleft faible — bibliothèque | Par bibliothèque | Publier la bibliothèque, permettre son remplacement | LGPL-2.1, LGPL-3.0 |
| 5. Copyleft fort | Sur l’œuvre entière | Publier le source de l’œuvre dérivée distribuée | GPL-2.0, GPL-3.0, CeCILL |
| 6. Copyleft réseau | Sur l’œuvre entière, réseau compris | Idem, y compris sans distribution | AGPL-3.0, OSL-3.0, EUPL-1.2 |
| 7. Source-available | Variable | Restrictions d’usage — pas du libre | BSL-1.1, SSPL-1.0, ELv2 |
| 8. Contenu et données | Variable | Régime propre aux œuvres non logicielles | CC-BY, CC-BY-SA, OFL, ODbL |
1. Domaine public et renonciation
CC0-1.0, Unlicense, 0BSD, WTFPL.
L’auteur renonce à ses droits ou concède une licence maximalement permissive. Aucune attribution due.
Le piège : CC0 exclut expressément la concession de brevets. Un composant CC0 dont l’auteur détient un brevet ne vous protège de rien. Plusieurs fondations restreignent son usage pour cette raison, et lui préfèrent une licence permissive avec clause de brevets.
En droit français et allemand, la renonciation pure aux droits moraux est en outre inopérante — ce qui n’a pas de conséquence pratique en général, mais explique pourquoi certains juristes préfèrent MIT à CC0.
2. Permissives
MIT, BSD-2-Clause, BSD-3-Clause, ISC, Apache-2.0, Zlib, BSL-1.0 (Boost), CECILL-B.
Vous faites ce que vous voulez, y compris intégrer dans du propriétaire, à condition de conserver les mentions de copyright et le texte de la licence et de les transmettre aux destinataires.
Ce qui les distingue entre elles
| Licence | Spécificité |
|---|---|
| MIT, ISC | Les plus courtes. Attribution, rien d’autre. |
| BSD-2-Clause | Équivalent MIT. |
| BSD-3-Clause | Ajoute une clause de non-endossement : interdiction d’utiliser le nom des auteurs pour promouvoir votre produit. |
| BSD-4-Clause | Ajoute une clause de publicité obsolète : toute publicité doit mentionner l’auteur. Ingérable à l’échelle, et incompatible GPL. À refuser. |
| Apache-2.0 | Concession expresse de brevets, résiliation automatique de cette concession si vous engagez une action en contrefaçon de brevet contre un contributeur, et obligation de signaler les fichiers modifiés. Fichier NOTICE à propager s’il existe. |
Pourquoi Apache-2.0 est souvent le meilleur choix. C’est la seule permissive courante qui traite explicitement la question des brevets. Pour un produit vendu, c’est une protection réelle que MIT n’offre pas.
L’incompatibilité à connaître : selon la position de la Free Software Foundation,
Apache-2.0 est incompatible avec GPL-2.0-only (à cause des clauses de brevets et
d’indemnisation, vues comme des restrictions supplémentaires), mais compatible avec
GPL-3.0. C’est la raison pour laquelle beaucoup de projets sont passés en
GPL-2.0-or-later.
Le vrai risque des permissives, en pratique, n’est pas juridique mais opérationnel : c’est l’oubli du fichier d’attributions. Il concerne des centaines de composants, il se génère automatiquement depuis le SBOM, et son absence est le manquement le plus fréquent et le plus facile à corriger.
3. Copyleft faible, à granularité fichier
MPL-2.0, EPL-2.0, CDDL-1.0, CECILL-C.
La réciprocité porte sur les fichiers eux-mêmes. Si vous modifiez un fichier sous MPL-2.0, ce fichier reste MPL-2.0 et doit être publié. Le reste de votre projet, y compris les fichiers qui l’appellent, peut rester propriétaire.
C’est la famille la plus maniable : elle protège l’amont sans contaminer votre code.
| Licence | Spécificité |
|---|---|
| MPL-2.0 | Le modèle de référence. Clause de brevets. Compatible GPL par une clause explicite (sauf si l’auteur l’a désactivée). |
| EPL-2.0 | Réciprocité comparable. Une clause optionnelle de « licence secondaire » permet la compatibilité GPL, à activer par l’auteur. |
| CDDL-1.0 | Incompatible GPL, et cette incompatibilité est la raison pour laquelle ZFS n’est pas intégré au noyau Linux. À traiter comme un cas particulier. |
Le piège : « par fichier » suppose de savoir quels fichiers ont été modifiés. Un copier-coller d’une fonction MPL dans l’un de vos fichiers propriétaire fait basculer votre fichier sous MPL. La discipline de séparation des fichiers est donc une contrainte d’ingénierie, pas seulement une formalité.
4. Copyleft faible, à granularité bibliothèque
La bibliothèque reste libre ; l’œuvre qui l’utilise peut rester propriétaire. Mais à une condition, souvent mal comprise :
L’utilisateur final doit pouvoir remplacer la bibliothèque par une version modifiée de son choix, et faire fonctionner votre programme avec.
C’est ce qui rend la liaison dynamique naturelle et la liaison statique coûteuse : en statique, vous devez fournir les fichiers objets de votre application pour que l’utilisateur puisse relier lui-même, ou tout autre moyen équivalent.
| Version | Spécificité |
|---|---|
| LGPL-2.1 | Le régime classique. Pas de clause anti-verrouillage. |
| LGPL-3.0 | Hérite des clauses de GPL-3.0 : brevets, anti-DRM, et surtout informations d’installation pour les produits de consommation. Beaucoup plus contraignante en embarqué et sur mobile. |
Le piège : dans les écosystèmes où la liaison dynamique n’existe pas — un bundle JavaScript, un binaire Go, un exécutable Rust, une application mobile — la LGPL doit être traitée comme du copyleft fort, parce que la condition de remplacement est en pratique impossible à satisfaire.
5. Copyleft fort
GPL-2.0-only, GPL-2.0-or-later, GPL-3.0-only, GPL-3.0-or-later, CeCILL (équivalent français, compatible GPL).
Si vous distribuez un binaire contenant du code GPL — ou une œuvre dérivée de ce code — vous devez fournir à chaque destinataire le code source correspondant de l’œuvre entière, sous la même licence, y compris les scripts de compilation et d’installation.
Le mot décisif est distribuez : la GPL ne se déclenche que par la transmission à un tiers. Un usage purement interne, ou l’exécution sur vos propres serveurs, ne la déclenche pas — voir Backend SaaS.
only contre or-later
Le suffixe n’est pas cosmétique : il détermine si le destinataire peut appliquer une version ultérieure de la licence.
GPL-2.0-only: figé en version 2. Incompatible avec les composants GPL-3.0.GPL-2.0-or-later: le destinataire peut choisir la version 3, ce qui rétablit la compatibilité.- Un projet sans mention explicite est réputé, selon les usages,
-or-later— mais la question s’est posée en contentieux. Documentez ce que vous constatez, ne présumez pas.
Ce que GPL-3.0 ajoute à GPL-2.0
| Ajout | Effet |
|---|---|
| Concession de brevets explicite | Protection réelle, absente de la v2 |
| Clause anti-verrouillage (« informations d’installation ») | Pour un produit de consommation, vous devez fournir de quoi installer une version modifiée. Voir Embarqué / IoT |
| Clause anti-DRM | Le logiciel ne doit pas être invoqué comme mesure technique de protection |
| Compatibilité Apache-2.0 | Résout l’incompatibilité de la v2 |
| Résiliation avec délai de grâce | Une violation corrigée sous 30 jours après notification n’entraîne plus la perte définitive des droits |
Les exceptions
Certains projets assortissent la GPL d’une exception qui en limite la portée. Elles
s’expriment en SPDX avec l’opérateur WITH :
| Exception | Effet |
|---|---|
GPL-2.0-only WITH Classpath-exception-2.0 |
Utilisée par OpenJDK : la liaison ne crée pas d’œuvre dérivée. C’est ce qui permet d’écrire du Java propriétaire. |
GPL-3.0-only WITH GCC-exception-3.1 |
Le code compilé par GCC n’est pas contaminé par les bibliothèques d’exécution. |
Apache-2.0 WITH LLVM-exception |
Lève une contrainte d’attribution pour le code généré. |
GPL-2.0-only WITH Autoconf-exception-2.0 |
Les scripts générés ne sont pas contaminés. |
Ne jamais lire une licence GPL sans vérifier s’il y a une exception : elle change complètement le verdict.
6. Copyleft réseau
AGPL-3.0, OSL-3.0, EUPL-1.2 (dans sa lecture la plus large), RPL.
Conçues pour fermer ce que l’on appelle la « faille du fournisseur de service » : la GPL ne se déclenche qu’à la distribution, or un service en ligne ne distribue rien.
AGPL-3.0, article 13 : si vous modifiez le programme et que des utilisateurs interagissent avec votre version modifiée à distance par un réseau, vous devez leur offrir le code source correspondant de votre version.
La nuance qui compte
Littéralement, l’obligation vise la version modifiée. Exécuter un logiciel AGPL strictement inchangé comme service ne déclenche pas l’article 13.
Mais dans la pratique, l’exception ne sert presque jamais : dès que vous combinez le composant AGPL avec votre propre code — un appel de bibliothèque suffit à poser la question de l’œuvre combinée — c’est l’ensemble qui devient « votre version », et c’est l’ensemble dont il faut offrir le source.
La position prudente, et celle que retiennent la plupart des politiques d’entreprise : considérer que tout composant AGPL présent dans un service exposé déclenche l’obligation, et ne conserver la lecture littérale que pour un composant strictement inchangé, isolé dans son propre processus, et documenté comme tel.
EUPL-1.2 mérite une mention particulière sur un site européen : c’est la licence de l’Union, elle comporte une clause de copyleft étendue à la mise à disposition par réseau, et surtout une clause de compatibilité qui liste les licences vers lesquelles l’œuvre peut être relicenciée (GPL, AGPL, MPL, EPL, CeCILL, LGPL…). Cette clause en fait un choix intéressant pour un projet public européen.
7. Source-available — ce n’est pas du libre
BSL-1.1 (Business Source License), SSPL-1.0, Elastic License 2.0, Confluent Community License, Redis Source Available License, famille PolyForm, et le rider Commons Clause.
Le code est lisible, parfois modifiable, mais l’usage est restreint. Aucune n’est approuvée par l’Open Source Initiative. Traitez-les comme du logiciel propriétaire : elles relèvent de la négociation contractuelle, pas de la politique open source.
| Licence | Restriction principale |
|---|---|
| BSL-1.1 | Usage en production restreint, sauf « additional use grant ». Bascule automatiquement vers une licence libre à une date de changement, typiquement quatre ans. |
| SSPL-1.0 | Si vous fournissez le logiciel en tant que service, vous devez publier l’intégralité du code de ce service — orchestration, sauvegarde, supervision, interfaces. En pratique dissuasif. |
| Elastic License 2.0 | Interdit de fournir le produit en service managé, de contourner les clés de licence, et de retirer les mentions. |
| Commons Clause | Ce n’est pas une licence mais un avenant greffé sur une licence libre, qui en retire le droit de vendre. Une bibliothèque « MIT + Commons Clause » n’est pas MIT. |
Le vrai risque de cette famille, c’est le changement de licence en amont. Plusieurs projets majeurs ont basculé d’une licence libre vers une licence source-available au cours des dernières années. Vos versions déjà obtenues restent couvertes par l’ancienne licence, mais les versions ultérieures ne le sont plus — et vos mises à jour de sécurité viennent des versions ultérieures. Voir Les pièges.
8. Contenu, données et polices
Souvent oubliées parce qu’elles ne concernent pas du code — et régulièrement à l’origine des problèmes les plus concrets.
| Licence | Objet | Ce qu’il faut savoir |
|---|---|---|
| CC-BY-4.0 | Contenu | Attribution requise, y compris dans un produit commercial |
| CC-BY-SA-4.0 | Contenu | Partage à l’identique : une œuvre dérivée doit être publiée sous la même licence. Contamination du contenu. |
| CC-BY-NC | Contenu | Usage non commercial uniquement. Interdit dans un produit vendu. L’erreur la plus fréquente sur les icônes et illustrations. |
| CC-BY-ND | Contenu | Pas d’œuvre dérivée : pas de recadrage, pas de recoloration. |
| OFL-1.1 | Polices | Redistribution libre, mais clause de nom réservé : une police modifiée ne peut pas conserver son nom d’origine. Interdiction de vendre la police seule. |
| ODbL | Bases de données | Copyleft sur la base et sur les bases dérivées. |
Creative Commons déconseille elle-même ses licences pour du code : elles ne traitent ni de la distinction source/binaire, ni des brevets.
Le cas qui n’est pas une famille : l’absence de licence
Un dépôt public sans fichier de licence n’est pas libre. En l’absence de concession expresse, le droit d’auteur s’applique dans sa plénitude : tous droits réservés. Le fait que le code soit visible ne concède rien.
En SPDX, cela se note NOASSERTION. Dans votre politique, cela doit être bloquant, au même
titre qu’une licence interdite — et non traité comme une donnée manquante bénigne.