Estoy escribiendo software con licencia bajo MIT e incluyendo software GPL. ¿Debo incluir el texto completo de la licencia GPL?

Si su software incluye software GPL, existe una gran probabilidad de que los términos de la GPL lo obliguen a licenciar su código bajo la misma licencia GPL. Este no es siempre el caso, pero a menudo lo es. Entonces, mientras pregunta cómo manejar el texto de la licencia, también deberá lidiar con los términos de la licencia.

Primero hablemos del texto de la licencia, ya que esa era su pregunta. No hay obligación de mantener cada licencia en un archivo separado. Sin embargo, probablemente sea una buena idea tener muy claro el propósito de la licencia, al menos realmente ayudaría a mi trabajo si los desarrolladores fueran claros (o si las herramientas ayudaron a hacer esto para que las cosas sean más obvias).

Permítanme explicar: técnicamente, puede escribir un programa y ofrecerlo bajo una licencia dual, de modo que el usuario de su código elija qué licencia. Por ejemplo: jQuery tiene doble licencia bajo MIT y GPL. Cuando lo usas, lo estás usando debajo de uno de esos dos. No necesitas decir cuál. Pero dejan muy claro que hay dos licencias para el proyecto y usted puede elegir. En contraste: hay proyectos que contienen código con licencia (escrito por alguien que no sea usted). En estos casos, debe aclarar que su código está bajo y que incluye el código de otra persona bajo su licencia (usted incluye sus derechos de autor y declaración de licencia, según sus términos de licencia; la mayoría de las licencias de código abierto lo requieren).

Esto significa que si su repositorio tiene varias licencias (en uno o varios archivos), debe dejar claro por qué. ¿Es usted el único licenciante y ofrece una opción, o está redistribuyendo el código de otra persona e incluyendo su licencia (como se supone que debe hacerlo)? Solo sea claro, y la gente entenderá cómo usar su código.

Ahora sucede que el ejemplo de su pregunta (un proyecto MIT que incluye código GPL) es una combinación problemática. Si hubiera sido al revés (su código es GPL e incluye el código MIT), entonces todavía tendría su pregunta sobre el texto, y la respuesta es que podría ponerlo todo en un archivo, podría llámelo LICENCIA, o licencia, o LICENCIA.txt o licencia.md o COPIA o incluso en el LÉAME. Sin duda, es útil seguir las convenciones de la comunidad en la que está publicando (por ejemplo, los desarrolladores de Perl prefieren poner la información de la licencia en la parte inferior del código, mientras que la mayoría de los otros desarrolladores colocan algo en el encabezado del archivo o en un archivo separado). Puede poner su licencia en un archivo de LICENCIA y los créditos para el otro código de licencia en un archivo de CRÉDITOS (lo cual tiene sentido).

De acuerdo con los términos de la GPL (así como la mayoría de las licencias de código abierto), se espera que proporcione el texto completo de la licencia. Recuerde que estas licencias se escribieron por primera vez cuando el software se distribuyó en un disco CD físico en una caja de plástico o cartón, y usted puso una copia de la licencia impresa en la funda del paquete. Entonces, cualquier cosa menos que el texto completo es una licencia diferente. Además, no había Internet (o no tan extendido) en ese momento. Entonces un enlace no fue suficiente. Hoy en día, copiar el texto completo de la licencia parece excesivo para muchos y, por lo tanto, algunos toman atajos que cumplen con el espíritu de la ley, incluso si son un poco menos que los términos estrictos. Por ejemplo, puede considerar vincular el texto del enlace permanente de la licencia (ya sea en el sitio web de código abierto o fsf o en el archivo de licencia del repositorio de origen). De esta manera, deja en claro lo que quiere decir. Es poco probable que este atajo sea letal para alguien. Pero quién sabe 🙂

Cuando redistribuye cualquier software, GPL o no, siempre debe incluir los créditos originales del autor, la información de copyright y la licencia.

Es difícil mezclar software bajo dos licencias diferentes en un solo proyecto. Es posible dividir las partes de GPL en un repositorio separado para que tenga

  • A. Proyecto con licencia GPL basado en el original
  • B. su proyecto con licencia MIT que depende del proyecto A.

Si lo mezcla, no estará claro para los usuarios si está creando un trabajo derivado único que solo podría lanzarse bajo la GPL.

Si su proyecto y el proyecto GPL están tan entrelazados que la combinación podría ser un trabajo derivado, entonces diríjase al responsable del proyecto GPL y explique lo que está tratando de hacer. La solución más fácil para esa situación podría ser una línea de permiso adicional en el proyecto GPL.

Técnicamente, si usa el código GPL, también debe publicar su código bajo la GPL. Si lo desea, puede obtener una doble licencia de la parte que ha escrito bajo MIT.

Y sí, si distribuye el código GPL, debe incluir el texto de la licencia. También debe mencionar que su programa tiene licencia bajo la GPL (¡lo cual es!) En algún lugar razonable (como el mensaje “acerca de” o la pantalla de bienvenida).

Pondría las licencias en archivos llamados MIT.txt y GPL.txt y luego pondría una breve explicación en LICENCIA y / o COPIA explicando qué licencia se aplica a qué.

La licencia MIT le permite redistribuir, mientras que GPL no.
Si incluyó fragmentos o fragmentos de GPL, debe publicar el código. Además, para cualquier licencia, siempre debe incluir credenciales originales y textos de licencia.

La idea básica para mezclar proyectos con diferentes licencias se aclara al comprender las diferencias entre las licencias copyleft (GPLv3, Affero GPL, etc.) y las licencias simples de código abierto (Apache, el confuso MIT, etc.).

El primer conjunto de licencias garantiza el flujo libre de software y código. El segundo solo apunta a una especificación técnica colaborativa.

Por lo tanto, mi recomendación: por ejemplo, puede usar el código MIT dentro de un proyecto GPL (siempre que le interesen los detalles cubiertos en las respuestas anteriores aquí), pero nunca el código GPL dentro de un MIT sin la “separación” adecuada de los archivos y las licencias.