Permisos, condiciones y limitaciones de un vistazo
Condiciones
- Aviso de copyright y licenciaAl distribuir hay que incluir una copia de la licencia y el aviso de copyright.
- Divulgar el código fuenteAl distribuir hay que proporcionar el código fuente.
- Indicar cambiosSi modificas el original, debes indicarlo.
- Misma licencia (por biblioteca)Las modificaciones de la biblioteca deben llevar la misma licencia, pero puede no aplicarse a los programas que la usan.
Limitaciones
- Limitación de responsabilidadIndica expresamente que no se asume responsabilidad por daños.
- Sin garantíaIndica expresamente que no ofrece ninguna garantía.
Fuente de la clasificación de permisos, condiciones y limitaciones: datos de choosealicense.com (GitHub, licencia MIT).
Qué es esta licencia
La LGPL (GNU Lesser General Public License) 3.0 es la licencia para bibliotecas publicada el mismo día que GPL-3.0 (29 de junio de 2007). No es un documento completo e independiente, sino GPL-3.0 con permisos adicionales, y por eso su texto empieza diciendo que 'añade los siguientes permisos adicionales a las condiciones de la versión 3 de la GPL'. El permiso adicional clave es que puedes distribuir con las condiciones que quieras un programa que usa la biblioteca (Combined Work). Las modificaciones de la propia biblioteca siguen teniendo que publicarse bajo LGPL (o GPL). Qt (a elegir entre LGPL-3.0, GPL y comercial) es un caso representativo.
Al distribuir un programa que usa la biblioteca (sección 4)
- Indicar de forma visible que el programa usa una biblioteca LGPL y que se aplica la LGPL.
- Entregar copias de GPL-3.0 y LGPL-3.0.
- Permitir que el usuario sustituya la biblioteca por una versión modificada. Normalmente se cumple con enlace dinámico (biblioteca compartida); con enlace estático hay que ofrecer, por ejemplo, archivos objeto que permitan volver a enlazar.
- No imponer condiciones que prohíban la ingeniería inversa para depurar esas modificaciones.
- Ofrecer el código fuente correspondiente de la parte de la biblioteca y, si es un producto de usuario, también la información de instalación de la sección 6 de GPL-3.0.
Malentendidos frecuentes
- "Si uso una biblioteca LGPL, tengo que publicar también el código de la aplicación" — No. Si cumples las condiciones anteriores, la aplicación puede ser cerrada. La obligación de publicar afecta a las modificaciones de la propia biblioteca.
- "El enlace estático está prohibido sin excepción" — No está prohibido. Pero como hay que ofrecer archivos objeto u otros medios para que el usuario sustituya la biblioteca y vuelva a enlazar, resulta engorroso.
- "LGPL-3.0 se puede usar en proyectos GPL-2.0" — No es compatible con GPL-2.0-only. Para combinarlos, el proyecto tiene que poder distribuirse bajo GPL-3.0.
Cómo aplicarla
Por convención se colocan juntos el texto de GPL-3.0 como COPYING y el de LGPL-3.0 como COPYING.LESSER (el generador ofrece ambos archivos). En cada archivo fuente se usa el aviso de GNU cambiando 'General Public License' por 'Lesser General Public License'. El identificador SPDX es LGPL-3.0-only o LGPL-3.0-or-later.
Cuándo encaja
Encaja en bibliotecas que quieren difundirse también en aplicaciones cerradas, pero cuyas mejoras de la propia biblioteca se desea que se publiquen. Si quieres un copyleft débil más sencillo, por archivo, compara también con MPL-2.0. La comparación está en la guía permisivas vs copyleft.
¿Puedo incluir código LGPL-3.0 en otro proyecto?
Resultado general al tomar código publicado bajo esta licencia y distribuirlo combinado en un proyecto con cada una de las licencias siguientes. Ver otras combinaciones en el comprobador de compatibilidad →
| Proyecto de destino | Resultado | Nota |
|---|---|---|
| Software privativo (comercial) | Sí, con condiciones | Puedes enlazarlo como biblioteca, pero debes permitir que el usuario sustituya y vuelva a enlazar la parte LGPL y proporcionar su código fuente. Si copias y mezclas el código, toda la obra combinada debe seguir las condiciones de la (L)GPL. |
| MIT | Sí, con condiciones | Puedes enlazarlo como biblioteca, pero debes permitir que el usuario sustituya y vuelva a enlazar la parte LGPL y proporcionar su código fuente. Si copias y mezclas el código, toda la obra combinada debe seguir las condiciones de la (L)GPL. |
| Apache-2.0 | Sí, con condiciones | Puedes enlazarlo como biblioteca, pero debes permitir que el usuario sustituya y vuelva a enlazar la parte LGPL y proporcionar su código fuente. Si copias y mezclas el código, toda la obra combinada debe seguir las condiciones de la (L)GPL. |
| MPL-2.0 | Sí, con condiciones | Puedes enlazarlo como biblioteca, pero debes permitir que el usuario sustituya y vuelva a enlazar la parte LGPL y proporcionar su código fuente. Si copias y mezclas el código, toda la obra combinada debe seguir las condiciones de la (L)GPL. |
| LGPL-2.1 | Sí, con condiciones | La obra combinada debe distribuirse bajo las condiciones de GPL-3.0. |
| GPL-2.0 | No | El código de la versión 3.0 no es compatible con las condiciones de GPL-2.0 (only), así que no puede incluirse. |
| GPL-3.0 | Sí | LGPL-3.0 es GPL-3.0 más permisos adicionales, así que en una obra combinada GPL-3.0 basta con ignorar esos permisos adicionales. |
| AGPL-3.0 | Sí | LGPL-3.0 es GPL-3.0 más permisos adicionales, así que en una obra combinada GPL-3.0 basta con ignorar esos permisos adicionales. GPL-3.0 y AGPL-3.0 permiten combinarse mutuamente mediante su respectiva sección 13. En la obra combinada, la parte AGPL mantiene la obligación de ofrecer el código fuente por red. |
El contenido de este sitio es información general y no constituye asesoramiento jurídico. Para decisiones reales de distribución, contratos o litigios, consulta con un abogado u otro profesional.