¿Cuál es la mejor licencia de software para mí?

Cada práctica de desarrollo requiere que usemos algún tipo de licencia para nuestro código fuente en algún momento. Hay una gran cantidad de opciones de licencia para elegir. Trataré de dar mi análisis exhaustivo de las licencias más comunes que usamos en Shakuro en diferentes proyectos de desarrollo web / móvil / software.

Licencia de dominio público

La licencia equivalente de dominio público pertenece a las licencias que otorgan derechos de dominio público o que actúan como exenciones. Se utilizan para que cualquier persona sin condiciones pueda utilizar obras protegidas por derechos de autor, evitando las complejidades de atribución o compatibilidad de licencias que se producen con otras licencias. Sin embargo, en diferentes países, el concepto de dominio público puede no estar definido o definido de una manera diferente, por lo que usar esta licencia puede traer ciertos riesgos.

Cero / dominio público (CC0)

CC0 fue creado para aumentar la compatibilidad con dominios legales que no tienen el concepto de dedicarse al dominio público. Esto se logra mediante una declaración de exención de dominio público y un respaldo a la licencia totalmente permisiva.

Licencia de software permisiva

La licencia de software permisiva, a veces también llamada licencia de tipo BSD o de estilo BSD, es una licencia de software libre con requisitos mínimos sobre cómo se puede redistribuir el software. Dichas licencias requieren más que simplemente atribuir las partes originales del código con licencia a los desarrolladores originales en su propio código y / o documentación.

Los ejemplos de licencias permisivas son la licencia MIT, las licencias BSD, la licencia de fuente pública de Apple y la licencia de Apache.

Licencia de software Copyleft

Copyleft es un enfoque general para construir un programa de manera ilimitada que requiere que todas las versiones modificadas y extendidas del programa también sean gratuitas. Las licencias de Copyleft para software requieren la información necesaria para reproducir y modificar el trabajo, que se pondrá a disposición de los destinatarios de los archivos binarios. Pero, ¿qué significa en la práctica?

Si distribuye su aplicación y usa alguna biblioteca Copyleft como parte de su aplicación, (incluso si es solo el enlace de tiempo de ejecución a una biblioteca) incluso si no cobra nada, e incluso si no cambia esa biblioteca en de cualquier manera, debe hacer que el código fuente de su aplicación esté disponible para los usuarios finales.

Hacer que la fuente esté disponible no significa que los usuarios puedan descargarla automáticamente. Es posible que deba recibir una solicitud por escrito y luego enviar las fuentes. No puede eludir la obligación de poner su propio código fuente a disposición de los usuarios finales.

Los ejemplos de licencias Copyleft: Licencias GPL, Licencia pública de IBM.

Los Híbridos (Combinaciones de licencias permisivas y Copyleft)

MPL v2.0 (Mozilla Public License Version 2.0) es una licencia copyleft que es fácil de cumplir. Puede combinar el software MPL versión 2.0 con un código propietario.

  • Si no lo modifica, deberá proporcionar solo un enlace a las fuentes de la biblioteca. Se parece mucho a la licencia permisiva.
  • Si lo modifica, deberá proporcionar fuentes para los archivos modificados (no todo el proyecto). Se parece un poco a una licencia débil de Copyleft.

Compatibilidad de licencia

Las flechas vectoriales indican una compatibilidad unidireccional, por lo tanto, una mejor compatibilidad en el lado izquierdo (“licencias permisivas”) que en el lado derecho (“licencias copyleft”).

La comparación de licencias de software gratuitas y de código abierto

Consulte Comparación de licencias de software gratuitas y de código abierto para averiguar si la licencia es compatible con su proyecto.

Licencias de software en pocas palabras

En general, todas las licencias de software tienen una cosa en común y es “Mantener el aviso de copyright”. Lo menos que puede hacer es incluir un aviso de copyright en su documentación o un acuerdo de licencia de usuario final (EULA). Por ejemplo, “Este software usa el nombre de la biblioteca. Ver library-license.txt “.

La licencia MIT

La licencia MIT es una licencia de software libre creada por el MIT (Instituto de Tecnología de Massachusetts). Al ser una licencia permisiva, impone restricciones muy limitadas a la reutilización, lo que significa que tiene una gran compatibilidad de licencia.

Puntos clave:

  • Guarde el aviso de copyright.
  • Usted es libre de modificar, redistribuir e incluso sublicenciar el código bajo otra licencia.
  • El autor original no es responsable de ningún daño resultante de su código.

La licencia BSD

La licencia BSD es parte de una familia de licencias permisivas de software libre, que impone restricciones mínimas sobre el uso y la redistribución del software cubierto. A diferencia de las licencias copyleft, con requisitos de reciprocidad para compartir, la licencia BSD es una licencia simple que simplemente requiere que todo el código con licencia bajo la licencia BSD tenga licencia bajo la licencia BSD si se redistribuye en formato de código fuente.

Puntos clave:

  • Guarde el aviso de copyright.
  • Usted es libre de usar, redistribuir y licenciar el código bajo otra licencia.

La licencia Apache 2.0

La licencia Apache 2.0 es una licencia de software libre permisiva de Apache Software Foundation. La versión 2.0 requiere la preservación del aviso de copyright y la exención de responsabilidad. También permite al usuario del software la libertad de usar el software para cualquier propósito, modificarlo y distribuir las versiones modificadas del software, bajo los términos de la licencia, sin preocuparse por las regalías.

Puntos clave:

  • Guarde el aviso de copyright.
  • Su software debe contener una copia de la licencia Apache 2.0.
  • Usted es libre de usar, modificar, distribuir y redistribuir el software.
  • Si modifica el código, debe mencionar sus modificaciones en particular.
  • Si hay un archivo de texto llamado AVISO, tómese el tiempo y léalo. Contiene más información sobre las partes específicas de la licencia y el propósito del software.
  • El archivo AVISO también debe incluirse en su versión de software.

La licencia GPL

La licencia GPL es la primera licencia copyleft para uso general. Una licencia copyleft significa que el trabajo derivado solo puede distribuirse bajo los mismos términos de licencia. Esto se distingue de las licencias de software libre permisivas como las licencias BSD y la licencia MIT.

Puntos clave:

  • Mantenga el encabezado de la licencia.
  • Su versión de software también debe tener licencia GPL.
  • Si alguien lo solicita, debe hacer que las fuentes estén disponibles.

La licencia MPL 2.0

La Licencia pública de Mozilla (MPL) es una licencia de software gratuita y de código abierto desarrollada y mantenida por la Fundación Mozilla. Es una licencia de copyleft débil, caracterizada como un punto medio entre las licencias de software libre permisivas y la Licencia Pública General de GNU (GPL), que busca equilibrar las preocupaciones de los desarrolladores propietarios y de código abierto. La versión 2.0 muestra actualizaciones importantes con el objetivo de una mayor simplicidad y una mejor compatibilidad con otras licencias.

Puntos clave:

  • Guarde el aviso de copyright.
  • Proporcione el enlace a la fuente del código MPLed.
  • Si modifica el código, debe hacer que las partes del código fuente con licencia MPL estén disponibles e informar a los destinatarios cómo pueden obtenerlas.

Es posible que desee considerar una licencia de “uso perpetuo”.

Esto le da a sus clientes una licencia para usar el software para siempre (sin más reclamos de pago), pero no transfiere la propiedad. Las actualizaciones posteriores se lanzan con su propia licencia de uso perpetuo.

Microsoft y muchos otros proveedores utilizan este modelo para su software de escritorio y servidor. El acuerdo de licencia de usuario final (eula) contiene restricciones para esta licencia, por ejemplo, solo puede usarlo en 2 máquinas, etc.

En resumen, necesitaría una licencia de software patentada.

Debería redactar un Acuerdo de licencia de usuario final (EULA) o, en otras palabras, los Términos y condiciones para el uso de su software.

Aquí hay un enlace interesante que encontré sobre los derechos de autor:

10 grandes mitos sobre los derechos de autor explicados