Usar el copyright para proteger la libertad
Copyleft es un juego de palabras con copyright. Es un concepto creado en los años 80 por Richard Stallman y la Free Software Foundation (FSF) para el proyecto GNU: un mecanismo que usa la ley de propiedad intelectual para que la libertad del software no desaparezca. El titular permite a cualquiera usar, modificar y distribuir, pero pone una condición: 'cuando distribuyas algo basado en este código, debes dar las mismas libertades a quien lo reciba'.
Las licencias permisivas (MIT, BSD, Apache) no tienen esta condición. Por eso, alguien puede modificar código permisivo y venderlo como producto cerrado. El copyleft impide ese camino y hace que las versiones mejoradas sigan siendo abiertas. Por esta característica, a las licencias copyleft también se las llama 'licencias recíprocas (reciprocal)'.
Las obligaciones nacen al 'distribuir'
Las condiciones del copyleft se activan al entregar el código a otras personas. GPL-3.0 lo llama 'convey (transmitir)'.
- Si creas con código GPL una herramienta que solo se usa dentro de la empresa y no la distribuyes fuera, no nace la obligación de publicar el código.
- Entregar una aplicación a clientes como archivo de instalación o venderla incluida en un dispositivo sí es distribución.
- Si solo se ejecuta en un servidor y los usuarios acceden por la web, para la GPL no es distribución. La AGPL cubre ese hueco.
Tres variantes según el alcance
Copyleft fuerte
Sus representantes son GPL-2.0 y GPL-3.0. Todo lo que se distribuye como un único programa combinado con código GPL debe seguir las condiciones de la GPL. La postura de la FSF es que, si forman un único programa, hay combinación tanto con enlace estático como dinámico.
Copyleft débil
Son licencias que reducen el alcance de la obligación.
- LGPL: por biblioteca. Solo hay que publicar las modificaciones de la propia biblioteca; los programas que la usan pueden ser cerrados si cumplen las condiciones (posibilidad de volver a enlazar, etc.).
- MPL-2.0: por archivo. Si modificas un archivo bajo MPL, solo publicas ese archivo.
- EPL-2.0: por módulo. Se publica el código EPL y sus modificaciones, pero los módulos independientes pueden tener otra licencia.
Copyleft de red
AGPL-3.0 obliga a ofrecer el código fuente a los usuarios con solo prestar por red un programa modificado. Se creó para cubrir el hueco de la GPL en la era de los servicios web.
| Licencia | Alcance de la publicación | Si solo operas un servidor |
|---|---|---|
| GPL-2.0 / GPL-3.0 | Todo el programa combinado | Sin obligación |
| LGPL-2.1 / LGPL-3.0 | La biblioteca y sus modificaciones | Sin obligación |
| MPL-2.0 | Los archivos MPL modificados | Sin obligación |
| EPL-2.0 | El código EPL y sus modificaciones (módulo) | Sin obligación |
| AGPL-3.0 | Todo el programa combinado | Ofrecer el código si es una versión modificada |
Malentendidos frecuentes
- "El copyleft impide el uso comercial" — No lo impide. Se puede vender software GPL, y muchas empresas obtienen ingresos con soporte de pago y alojamiento. Lo que impide es quitar libertades a quien lo recibe.
- "Con ver una sola línea de código GPL, mi código se vuelve GPL" — Las licencias tratan de la copia, modificación y distribución de obras. Sacar ideas de ver un código no es, en sí, objeto del copyright. Aunque si en la práctica es una transcripción, puede considerarse copia.
- "Si infrinjo la licencia, mi código pasa automáticamente a ser GPL" — La consecuencia de infringir una licencia suele ser la pérdida de derechos y la responsabilidad por infracción de copyright. Tu código no se publica por la fuerza; tendrás que elegir entre cumplir las condiciones o dejar de distribuir.
- "El código copyleft nunca puede usarse en proyectos permisivos" — Significa que, si se distribuyen juntos, la obra combinada sigue las condiciones del copyleft. Hay formas de hacerlo, como separarlo en un programa independiente o enlazar una biblioteca de copyleft débil cumpliendo sus condiciones. Consulta los fundamentos de compatibilidad.
Preguntas para decidir si elegir copyleft
- ¿Te parece bien que el resultado de modificar tu código acabe en un producto cerrado?
- ¿Es más importante que se adopte ampliamente como biblioteca o que las mejoras vuelvan?
- ¿La forma de uso principal es software instalable o un servicio que se ejecuta en un servidor?
Según las respuestas a estas tres preguntas, el asistente de elección reducirá las candidatas. Encontrarás una comparación más detallada en permisivas vs copyleft.
Este artículo es información general y no constituye asesoramiento jurídico. Para decisiones importantes, consulta con un profesional.
Fuentes
- GNU — What is Copyleft? — https://www.gnu.org/licenses/copyleft.html
- Preguntas frecuentes sobre las licencias GNU — https://www.gnu.org/licenses/gpl-faq.html
- Texto original de GNU GPL v3.0 — https://www.gnu.org/licenses/gpl-3.0.html