Guías · 06

GPL "only" vs "or later"

Explicamos qué significa la frase 'or any later version' de la GPL, por qué el kernel de Linux se mantiene en GPL-2.0-only, por qué GPL-2.0-only y GPL-3.0 no son compatibles y qué criterios seguir para elegir.

Última revisión: 2026-09-23

La frase en cuestión

El aviso recomendado de las licencias GNU contiene la siguiente frase.

either version 3 of the License, or (at your option) any later version.

Con esta frase, quien lo recibe puede elegir cumplir las condiciones de la versión indicada o de cualquier versión que la FSF publique más adelante. Eso es 'or later' (SPDX GPL-3.0-or-later). Si se quita la parte 'or later' y solo se indica una versión concreta, pasa a ser 'only' (GPL-3.0-only).

La sección 14 de GPL-3.0 y la sección 9 de GPL-2.0 establecen esta estructura. En particular, la sección 9 de GPL-2.0 dispone que, si un programa no indica ningún número de versión, se puede elegir cualquier versión publicada por la FSF. Por eso, si solo se pone el archivo LICENSE sin aclarar la cláusula de versión, puede interpretarse de forma distinta a la intención.

Por qué incluir 'or later'

La FSF recomienda 'or later'. El motivo es la compatibilidad futura. Cuando cambian las leyes o el entorno técnico y sale una nueva GPL, el código 'or later' puede combinarse de forma natural con la nueva versión. De hecho, el código GPL-2.0-or-later pudo entrar tal cual en proyectos GPL-3.0, mientras que el código GPL-2.0-only no pudo.

La sección 14 de GPL-3.0 va un paso más allá y permite designar un 'representante (proxy)'. Si la persona designada por el titular decide públicamente si se aceptan versiones posteriores, esa decisión surte efecto.

Por qué elegir 'only'

'or later' también supone aceptar de antemano una licencia que aún no está escrita. Si la FSF publica en el futuro una versión con condiciones distintas a tu voluntad, quien reciba tu código podrá elegir esa versión para usarlo.

El kernel de Linux es el caso representativo. El kernel es GPL-2.0-only. Linus Torvalds ha expresado públicamente su oposición a la cláusula de información de instalación de GPL-3.0 (la llamada protección contra la tivoización) y, además, el kernel mezcla el copyright de miles de contribuidores, así que en la práctica no podría cambiar de licencia.

Efecto en la compatibilidad

En resumen, la matriz de compatibilidad de las preguntas frecuentes sobre las licencias GNU es la siguiente.

Código que incorporas → mi proyectoGPL-2.0-onlyGPL-2.0-or-laterGPL-3.0
GPL-2.0-onlySí (la obra combinada es 2.0-only)No
GPL-2.0-or-later
GPL-3.0NoSí (la obra combinada es 3.0)
LGPL-3.0NoSí (la obra combinada es 3.0)

La clave es que GPL-2.0-only y GPL-3.0 no pueden aceptarse mutuamente. Cada una exige 'no añadir restricciones adicionales', y las condiciones añadidas de la otra (las cláusulas de patentes e información de instalación de la 3.0, etc.) son restricciones adicionales desde el punto de vista contrario. Puedes consultar más combinaciones en el comprobador de compatibilidad.

Criterios de elección

Cómo indicarlo

  1. En LICENSE (o COPYING) pon tal cual el texto de la versión correspondiente. El texto en sí no distingue entre only y or-later.
  2. Indica la cláusula de versión con el aviso de cada archivo y el identificador SPDX. En la pestaña Cabecera de archivo del generador, al elegir 'only' u 'or-later' se generan a la vez el aviso oficial de GNU y la línea SPDX.
  3. Indícalo también en una línea del README (p. ej., 'Licensed under GPL-3.0-or-later').
Este artículo es información general y no constituye asesoramiento jurídico. Para decisiones importantes, consulta con un profesional.

Fuentes