052.3 Lección 1
Certificación: |
Open Source Essentials |
Versión: |
1.0 |
Tema: |
052 Licencias de software de código abierto |
Objectivo: |
052.3 Licencias de software permisivas |
Lección: |
1 de 1 |
Introducción
Las licencias permisivas son actualmente las licencias de código abierto más utilizadas, a diferencia de las licencias restrictivas como la Licencia Pública General GNU (GPL). Las licencias de software permisivas tienden a ser simples y flexibles, y brindan una amplia gama de libertad a sus autores, quizás la libertad más amplia disponible entre las licencias de código abierto.
Este tipo de licencia otorga amplia libertad a los desarrolladores de software con respecto al uso, modificación y redistribución del software, siempre que reconozcan al autor original. Por ejemplo, normalmente alguien puede distribuir una obra derivada bajo una licencia de código cerrado, siempre que la obra incluya la atribución del autor de la obra de la que se derivó la nueva.
El principio detrás de esta lógica es permitir la máxima difusión posible del software. Las licencias permisivas pretenden beneficiar a los individuos y al público, ya que facilita el uso comercial del software, preservando al mismo tiempo los derechos del autor original mediante la atribución
No es casualidad que las primeras y más importantes licencias de software permisivo se desarrollaron en el ámbito académico, como las licencias tipo BSD de la Universidad de Berkeley en California o la Licencia MIT/X11 del Instituto Tecnológico de Massachusetts. Estas se conocen como licencias académicas de código abierto. Su influencia dentro de la industria fue tal que sentaron las bases para licencias de software permisivas similares concebidas fuera de contextos académicos, como la Licencia Apache de la Apache Software Foundation.
Derechos y obligaciones de las licencias de software permisivas
En general, las licencias de software permisivas más populares otorgan al licenciatario el derecho ilimitado a:
- Utilice el software
-
Cualquier persona (desde usuarios individuales hasta empresas comerciales y autoridades públicas) puede utilizar el software cubierto por una licencia de software permisiva y para cualquier fin, ya sea personal o profesional.
- Modificar el software
-
El software se puede mejorar, adaptar o incluso integrar como un componente (por ejemplo, una biblioteca) en otro software.
- Redistribuir el software
-
Si el software se modifica, tomando la forma de una obra derivada, se puede redistribuir bajo diferentes licencias, incluidas las propietarias.
La única obligación en las licencias de software permisivas suele ser la de atribución: El licenciatario debe indicar el nombre del autor original del software en el trabajo derivado e incluir una copia del texto de la licencia en cualquier redistribución del software.
Características de las licencias de software permisivas más importantes
Esta sección explica las diferencias entre la licencia MIT/X11, las licencias BSD más comunes y la licencia Apache 2.0, todas las cuales se utilizan ampliamente en la actualidad.
Licencia MIT/X11
La licencia MIT/X11 (text: https://opensource.org/license/mit), también conocida como licencia X11, es una de las licencias académicas mencionadas anteriormente. La licencia toma su nombre del software X Window System desarrollado por el Instituto de Tecnología de Massachusetts en 1987. Esta licencia es una de las licencias permisivas de software más antiguas y populares, en parte debido a su lenguaje simple y claro.
Esta licencia otorga al licenciatario los derechos a:
-
Usar, modificar y distribuir el software
-
Comercializar el software, con o sin modificaciones
-
Publicar trabajos derivados bajo una licencia diferente, incluso como software de código cerrado
La única obligación del licenciatario es incluir el aviso de copyright y el texto de la licencia en el código fuente del software o de sus trabajos derivados.
La licencia MIT/X11 se considera compatible con todas las licencias copyleft más importantes, tanto débiles como fuertes. En particular, la licencia MIT/X11 es compatible con la
-
Licencia pública general GNU (GPL), versiones 2.0 y 3.0
-
Licencia pública general reducida (LGPL) GNU, versiones 2.0 y 3.0
-
Licencia pública Mozilla (MPL)
Esto significa que los trabajos derivados de software originalmente licenciados bajo la licencia MIT/X11 pueden redistribuirse bajo una de las licencias mencionadas anteriormente o incluirse en proyectos publicados como los anteriores.
Licencia BSD de 2 cláusulas
La Licencia BSD de 2 Cláusulas (text: https://opensource.org/license/bsd-2-clause) deriva de la licencia BSD original, creada en 1980 por la Universidad de Berkeley en California como licencia para BSD, su Unix. -como sistema operativo.
La licencia destaca por su sencillez y, como su nombre indica, consta de sólo dos cláusulas breves. Es sustancialmente idéntica a la licencia MIT/X11. Al igual que la licencia MIT/X11, ésta requiere atribución en el software. Además, la licencia BSD de 2 cláusulas requiere que el licenciatario incluya el texto de la licencia en la documentación y otros recursos proporcionados al redistribuir el código.
En resumen, la licencia BSD de 2 cláusulas otorga los derechos a:
-
Usar, modificar y distribuir el software
-
Comercializar el software, con o sin modificación
-
Publicar trabajos derivados bajo una licencia diferente, incluso como software de código cerrado
El licenciatario tiene la obligación de:
-
Incluir el aviso de copyright, el texto de la licencia en el código fuente y binario del software o de sus trabajos derivados
-
Incluir el aviso de copyright, el texto de la licencia en la documentación u otros materiales proporcionados con el software
La licencia BSD de 2 cláusulas se considera compatible con todas las principales licencias copyleft, tanto débiles como fuertes. En particular, la licencia BSD de 2 Cláusulas es compatible con:
-
Licencia pública general GNU (GPL), versiones 2.0 y 3.0
-
Licencia pública general reducida (LGPL) GNU, versiones 2.0 y 3.0
-
Licencia pública Mozilla (MPL)
Por lo tanto, los trabajos derivados de software originalmente licenciados bajo la licencia BSD de 2 cláusulas pueden redistribuirse bajo una de las licencias mencionadas anteriormente o incluirse en proyectos publicados como los anteriores
Licencia BSD de 3 cláusulas
La licencia BSD de 3 cláusulas (text: https://opensource.org/license/bsd-3-clause) es otra variante más de la licencia BSD original y consta de solo tres cláusulas. La característica principal que distingue esta licencia de la licencia hermana BSD de 2 cláusulas es la “cláusula de no respaldo”, que tiene como objetivo evitar que el nombre del autor original sea explotado para distribuir o vender obras derivadas.
La licencia BSD de 3 cláusulas otorga al licenciatario los derechos a:
-
Usar, modificar y distribuir el software
-
Comercializar el software, con o sin modificaciones
-
Publicar trabajos derivados bajo una licencia diferente, incluso como software de código cerrado
El licenciatario tiene la obligación de:
-
Incluir el aviso de copyright y el texto de la licencia en el código fuente y binario del software o de sus trabajos derivados
-
Incluir el aviso de copyright y el texto de la licencia en la documentación u otros materiales proporcionados con el software
-
Abstenerse de citar el nombre del copyright titular o contribuyentes para respaldar o promocionar productos derivados de este software, sin permiso previo por escrito específico
Para explicar esta última obligación -la “cláusula de no respaldo”- pensemos en un escenario en el que una empresa o un individuo crea un trabajo derivado a partir de un software licenciado bajo una licencia de software permisiva. En ausencia de esta cláusula, el licenciatario podría promocionar la nueva obra indicando que se trata de un derivado de un software de un desarrollador conocido, con el fin de beneficiarse de su prestigio.
Al igual que su licencia hermana, la licencia BSD de 3 cláusulas se considera compatible con todas las licencias copyleft más importantes, tanto débiles como fuertes. En particular, la licencia BSD de 3 Cláusulas es compatible con:
-
Licencia pública general GNU (GPL), versión 2.0 y 3.0
-
Licencia pública general reducida (LGPL) GNU, versión 2 y 3
-
Licencia pública Mozilla (MPL)
Por lo tanto, los trabajos derivados de software originalmente licenciados bajo la licencia BSD de 3 cláusulas pueden redistribuirse bajo una de las licencias mencionadas anteriormente o incluirse en proyectos publicados como los anteriores
Licencia Apache 2.0
La primera licencia de Apache fue desarrollada por Apache Software Foundation, una organización sin fines de lucro establecida en 1999, para distribuir su software y facilitar su inclusión en otros proyectos. La misión era garantizar el desarrollo colaborativo de software, adoptando la filosofía de código abierto con una perspectiva amigable para los negocios.
La licencia Apache 2.0 (text: https://www.apache.org/licenses/LICENSE-2.0), probablemente la más extendida entre las licencias de software permisivo, se diferencia de las licencias comentadas anteriormente en algunos aspectos relevantes. El aspecto principal se refiere a la atribución de derechos de patente a cada licenciatario, incluida una cláusula relacionada con la terminación de la licencia de patente, a fin de limitar y prevenir cualquier reclamación por daños y perjuicios por infracción de patente.
Otras dos obligaciones son importantes. El licenciatario debe liberar, bajo la misma licencia Apache 2.0, cualquier parte o componente del software que no haya sido modificado por el licenciatario. Además, el licenciatario debe colocar avisos destacados en cualquier archivo modificado que indiquen que cambió esos archivos.
La Free Software Foundation, que promueve licencias restrictivas, recomienda Apache 2.0 como la mejor de las licencias de software permisivas para distribuir pequeñas cantidades de software y bibliotecas.
La licencia Apache 2.0 otorga al licenciatario:
-
El derecho a usar, modificar y distribuir el software
-
El derecho a comercializar el software, con o sin modificaciones
-
El derecho a publicar trabajos derivados bajo una licencia diferente, incluso como software de código cerrado
-
Una licencia de patente para usar, vender, importar y transferir de otro modo el software cubierto por una patente
-
Una licencia de patente para usar, vender, importar y transferir de otro modo el software que de otro modo podría infringir la reivindicación de patente de un contribuyente
El licenciatario tiene la obligación de:
-
Coloque avisos destacados en cualquier archivo modificado que indique que los archivos han sido modificados
-
Libere todas las partes no modificadas del software original bajo la licencia Apache 2.0
-
Incluya el aviso de derechos de autor y el texto de la licencia en el código fuente del software y sus trabajos derivados
-
Incluir el aviso de derechos de autor y el texto de la licencia en la documentación y otros materiales proporcionados con el software.
La licencia Apache 2.0 se considera compatible sólo con algunas de las licencias copyleft más importantes. En particular, la licencia Apache 2.0 es compatible con:
-
Licencia pública general GNU (GPL), versión 3.0 pero no 2.0
-
Licencia pública general reducida (LGPL) GNU, versión 3.0 pero no la 2.0
-
Licencia pública Mozilla (MPL), versión 2.0 pero no la versión 1.1
Esto significa que los trabajos derivados de software originalmente licenciados bajo la licencia Apache 2.0 pueden redistribuirse bajo una de las licencias compatibles mencionadas anteriormente o incluirse en proyectos lanzados bajo una de las licencias compatibles mencionadas anteriormente.
La compatibilidad limitada entre la licencia Apache 2.0 y otras licencias de código abierto se debe principalmente a la presencia de cláusulas relacionadas con la concesión de una licencia de patente al licenciatario.
Licencias de software permisivas en relación con otras licencias de código abierto
Ahora que tenemos una visión general de las características comunes y esenciales de las licencias de software permisivas, podemos pasar a examinar en qué se diferencian del software de dominio público y de las licencias copyleft.
Comparación con el software de dominio público
La primera distinción entre licencias de software permisivas y lanzamientos de software de dominio público radica en su propia existencia. El dominio público no es una licencia real, sino simplemente una forma de publicar software. En otras palabras, las obras de dominio público no tienen licencia.
La siguiente distinción radica en las obligaciones que las licencias permisivas imponen al licenciatario. De hecho, el usuario de una publicación de dominio público no tiene obligación alguna. Sin embargo, cualquiera que use, modifique o redistribuya software bajo una licencia de software permisiva debe cumplir con la obligación de atribución explicada anteriormente: el requisito de incluir el nombre del autor original y una copia del texto de la licencia en el software.
La consecuencia de la obligación de atribución es que ningún trabajo derivado que se origine a partir de software bajo una licencia de software permisiva puede ser liberado como dominio público, porque esto violaría (o al menos eludiría) el derecho del autor original a recibir atribución.
Comparación con Copyleft
La distinción entre licencias de software permisivas y licencias copyleft restrictivas es más compleja, especialmente considerando las diferencias entre las distintas licencias copyleft. Como se vio en lecciones anteriores, una diferencia importante separa las licencias copyleft fuertes (incluida la licencia pública general GNU (GPL), versiones 2.0 y 3.0) de las licencias copyleft débiles (incluida la licencia pública general reducida (LGPL) GNU, versiones 2.0 y 3.0, y la Licencia pública de Mozilla).
La principal diferencia entre licencias restrictivas y licencias permisivas radica en el principio copyleft, que es fundamental para las licencias restrictivas. De conformidad con este principio, el licenciatario que modifica software bajo licencia copyleft, y luego lo distribuye, debe necesariamente liberar, total o parcialmente, la obra derivada con la misma licencia que el software original. El incumplimiento de esta obligación da lugar a la infracción de los derechos de autor, con las consiguientes consecuencias legales.
Por el contrario, las licencias de software permisivas no imponen tal obligación. Quienes utilizan o planean lanzar software bajo este tipo de licencias pueden decidir libremente la licencia para su trabajo derivado, incluidas las licencias propietarias.
Copyleft fuerte
La diferencia entre las licencias de software permisivas y las licencias copyleft fuertes es más marcada que con las licencias copyleft débiles.
La diferencia esencial es que las licencias copyleft fuertes requieren que los trabajos derivados se publiquen bajo la misma licencia que el software original. Esto también se aplica si el software con licencia copyleft se integra en otro proyecto: Todo el trabajo derivado debe publicarse bajo la misma licencia copyleft sólida.
Copyleft débil
A diferencia de las licencias copyleft fuertes, las débiles sólo tienen un requisito parcial de publicar una obra derivada bajo la misma licencia. Para ser más específico, el licenciatario que redistribuye software publicado bajo una licencia copyleft débil debe aplicar la misma licencia a la parte de su trabajo derivada del original. Por ejemplo, una biblioteca basada en una biblioteca con licencia LGPL también debe tener licencia LGPL.
Las licencias copyleft débiles fueron concebidas precisamente para acercar sus características a las de las licencias de software permisivas. Sin embargo, se distinguen de las licencias de software permisivas en que estas últimas no imponen, en ningún caso, la obligación de mantener la misma licencia sobre una obra derivada o integrada.
Ejercicios guiados
-
¿Cuáles son las dos obligaciones que generalmente imponen las licencias de software permisivas?
-
¿Cuál de las siguientes licencias no es una licencia de software permisiva?
Licencia Apache 2.0
Licencia LGPL
Licencia MIT/X11
BSD de 3 cláusulas
-
¿Qué distingue una licencia de software permisiva de una licencia copyleft?
El software lanzado bajo una licencia copyleft no se puede distribuir, mientras que el software bajo una licencia de software permisiva sí se puede distribuir.
Las obras derivadas de software bajo una licencia copyleft no pueden publicarse bajo una licencia propietaria, mientras que el software bajo una licencia de software permisiva sí puede.
Las licencias copyleft están legalmente reconocidas sólo en los Estados Unidos de América, mientras que las licencias de software permisivas están reconocidas globalmente.
-
¿Qué licencia de software permisiva otorga una licencia de patente para usar, vender, importar y transferir de otro modo el software cubierto por una patente?
licencia apache 2.0
Licencia BSD de 2 cláusulas
Licencia MIT/X11
Licencia BSD de 3 cláusulas
-
Cuando el software se lanza bajo la licencia MIT/X11, ¿se puede distribuir bajo una licencia propietaria y vender un trabajo derivado basado en el software?
Ejercicios exploratorios
-
Está modificando el software distribuido bajo la licencia Apache 2.0 y redistribuyendo el trabajo derivado bajo una licencia propietaria. ¿Qué pasos debe seguir para cumplir con las obligaciones de la licencia Apache 2.0?
-
Nombra al menos tres ejemplos de proyectos populares publicados bajo licencias de software permisivas.
-
¿Por qué no se puede distribuir, bajo una licencia LGPL 2.0, software que incluya componentes que se lanzaron originalmente bajo la licencia MIT/X11, la licencia Apache 2.0 y la licencia BSD de 2 cláusulas? ¿Qué diferente licencia copyleft débil se puede utilizar para lanzar el software?
Resumen
En esta lección has aprendido: * Qué son las licencias de software permisivo, los derechos que otorgan y las obligaciones que proporcionan * Las diferencias entre las licencias de software permisivo y otras licencias de código abierto * Características de las licencias de software permisivo más populares * Compatibilidad del software permisivo licencias con otras licencias de código abierto
Respuestas a ejercicios guiados
-
¿Cuáles son las dos obligaciones que generalmente imponen las licencias de software permisivas?
La obligación de indicar el nombre del autor original del software y de incluir una copia del texto de la licencia en la obra derivada.
-
¿Cuál de las siguientes licencias no es una licencia de software permisiva?
Licencia Apache 2.0
Licencia LGPL
X
Licencia MIT/X11
BSD de 3 cláusulas
-
¿Qué distingue una licencia de software permisiva de una licencia copyleft?
El software lanzado bajo una licencia copyleft no se puede distribuir, mientras que el software bajo una licencia de software permisiva sí se puede distribuir.
Las obras derivadas de software bajo una licencia copyleft no pueden publicarse bajo una licencia propietaria, mientras que el software bajo una licencia de software permisiva sí puede.
X
Las licencias copyleft están legalmente reconocidas sólo en los Estados Unidos de América, mientras que las licencias de software permisivas están reconocidas globalmente.
-
¿Qué licencia de software permisiva otorga una licencia de patente para usar, vender, importar y transferir de otro modo el software cubierto por una patente?
Licencia Apache 2.0
X
Licencia BSD de 2 cláusulas
Licencia MIT/X11
Licencia BSD de 3 cláusulas
-
Cuando el software se lanza bajo la licencia MIT/X11, ¿se puede distribuir bajo una licencia propietaria y vender un trabajo derivado basado en el software?
Sí.
Respuestas a ejercicios exploratorios
-
Está modificando el software distribuido bajo la licencia Apache 2.0 y redistribuyendo el trabajo derivado bajo una licencia propietaria. ¿Qué pasos debe seguir para cumplir con las obligaciones de la licencia Apache 2.0?
Debería:
-
Insertar en cada archivo modificado un aviso que acredite que los archivos han sido modificados.
-
Liberar todas las partes no modificadas del software original bajo la licencia Apache 2.0.
-
Incluir el aviso de copyright y el texto de la licencia en el código fuente del software o de sus trabajos derivados.
-
Incluya el aviso de derechos de autor y el texto de la licencia en la documentación y otros materiales proporcionados con la distribución del software.
-
-
Nombra al menos tres ejemplos de proyectos populares publicados bajo licencias de software permisivas.
-
Marco web angular: licencia MIT/X11
-
Ruby on Rails - Licencia MIT/X11
-
Servidor HTTP Apache - Licencia Apache 2.0
-
Kubernetes: licencia Apache 2.0
-
-
¿Por qué no se puede distribuir, bajo una licencia LGPL 2.0, software que incluya componentes que se lanzaron originalmente bajo la licencia MIT/X11, la licencia Apache 2.0 y la licencia BSD de 2 cláusulas? ¿Qué diferente licencia copyleft débil se puede utilizar para lanzar el software?
Aunque la licencia MIT/X11 y la licencia BSD de 2 cláusulas son compatibles con la licencia LGPL 2.0, la licencia Apache 2.0 no lo es. El software que incluye componentes publicados bajo la licencia MIT/X11, la licencia Apache 2.0 y la licencia BSD de 2 cláusulas se puede publicar bajo la licencia LGPL 3.0, porque es compatible con todas esas licencias de software permisivas.