Guides · 06

GPL "only" vs "or later"

Ce que signifie la formule « or any later version » de la GPL, pourquoi le noyau Linux tient à la GPL-2.0-only, pourquoi la GPL-2.0-only et la GPL-3.0 sont incompatibles, et comment choisir.

Dernière vérification : 2026-09-23

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 projetGPL-2.0-onlyGPL-2.0-or-laterGPL-3.0
GPL-2.0-onlyPossiblePossible (ensemble en 2.0-only)Impossible
GPL-2.0-or-laterPossiblePossiblePossible
GPL-3.0ImpossiblePossible (ensemble en 3.0)Possible
LGPL-3.0ImpossiblePossible (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

Comment l'indiquer

  1. Dans LICENSE (ou COPYING), placez tel quel le texte de la version concernée. Le texte lui-même ne distingue pas only et or-later.
  2. 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.
  3. 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