La phrase en question
L'avis recommandé des licences GNU contient la phrase suivante.
either version 3 of the License, or (at your option) any later version.
Avec cette phrase, le destinataire peut choisir de suivre les conditions de la version indiquée ou de toute version publiée ultérieurement par la FSF. C'est l'option « or later » (SPDX GPL-3.0-or-later). Si l'on retire la partie « or later » pour n'indiquer qu'une version précise, on obtient « only » (GPL-3.0-only).
L'article 14 de la GPL-3.0 et l'article 9 de la GPL-2.0 définissent ce mécanisme. L'article 9 de la GPL-2.0 prévoit en particulier que, pour un programme qui n'indique aucun numéro de version, n'importe quelle version publiée par la FSF peut être choisie. Se contenter d'un fichier LICENSE sans préciser la clause de version peut donc conduire à une interprétation contraire à votre intention.
Pourquoi choisir « or later »
La FSF recommande « or later ». La raison est la compatibilité future : lorsque le droit et les technologies évoluent et qu'une nouvelle GPL paraît, le code « or later » peut se combiner naturellement avec la nouvelle version. De fait, le code GPL-2.0-or-later a pu entrer tel quel dans des projets GPL-3.0, ce qui n'était pas le cas du code GPL-2.0-only.
L'article 14 de la GPL-3.0 va plus loin en permettant de désigner un « mandataire (proxy) ». Si la personne désignée par le titulaire décide publiquement d'accepter une version ultérieure, cette décision produit ses effets.
Pourquoi choisir « only »
« Or later » revient aussi à accepter d'avance une licence qui n'est pas encore écrite. Si la FSF publie plus tard une nouvelle version contenant des conditions contraires à vos souhaits, le destinataire pourra choisir cette version pour utiliser votre code.
Le noyau Linux en est l'exemple typique. Le noyau est sous GPL-2.0-only. Linus Torvalds s'est publiquement opposé à la clause sur les informations d'installation de la GPL-3.0 (dite anti-tivoïsation), et comme le noyau mêle les droits d'auteur de milliers de contributeurs, il est de toute façon pratiquement impossible d'en changer la licence.
Conséquences sur la compatibilité
La matrice de compatibilité de la FAQ des licences GNU se résume ainsi.
| Code importé → Mon projet | GPL-2.0-only | GPL-2.0-or-later | GPL-3.0 |
|---|---|---|---|
| GPL-2.0-only | Possible | Possible (ensemble en 2.0-only) | Impossible |
| GPL-2.0-or-later | Possible | Possible | Possible |
| GPL-3.0 | Impossible | Possible (ensemble en 3.0) | Possible |
| LGPL-3.0 | Impossible | Possible (ensemble en 3.0) | Possible |
Le point clé est que la GPL-2.0-only et la GPL-3.0 ne peuvent pas s'accepter mutuellement. Chacune exige de « ne pas ajouter de restrictions supplémentaires », et les conditions supplémentaires de l'autre (clauses de brevets et d'informations d'installation de la 3.0, etc.) constituent des restrictions supplémentaires de son point de vue. D'autres combinaisons sont disponibles dans le vérificateur de compatibilité.
Critères de choix
- Suivre l'écosystème : du code destiné au noyau Linux doit être sous GPL-2.0-only (ou GPL-2.0-or-later, ou une licence permissive compatible).
- La compatibilité future compte : s'il est probable que vous échangiez du code avec plusieurs projets GPL, or-later est plus souple.
- Le contrôle compte : si vous ne voulez pas vous en remettre aux décisions futures de la FSF, utilisez only, ou désignez un décideur via le mandataire de l'article 14 de la GPL-3.0.
Comment l'indiquer
- Dans
LICENSE(ouCOPYING), placez tel quel le texte de la version concernée. Le texte lui-même ne distingue pas only et or-later. - Indiquez la clause de version dans l'avis de chaque fichier et l'identifiant SPDX. Dans l'onglet En-tête de fichier du générateur, choisir « only » ou « or-later » crée à la fois l'avis officiel GNU et la ligne SPDX.
- Mentionnez-le aussi en une ligne dans le README (p. ex. « Licensed under GPL-3.0-or-later »).
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
- FAQ des licences GNU, VersionThreeOrLater · AllCompatibility — https://www.gnu.org/licenses/gpl-faq.html
- GNU, How to Use GNU Licenses for Your Own Software — https://www.gnu.org/licenses/gpl-howto.html
- Règles de licence du noyau Linux — https://www.kernel.org/doc/html/latest/process/license-rules.html
- SPDX License List — https://spdx.org/licenses/