¿Cuáles son las opciones para licenciar un proyecto de código con "sopa de licencias" en las fuentes?

7

Estoy trabajando en un proyecto de software que tengo la intención de lanzar como FOSS de alguna manera. Mi código incluye bastantes archivos de encabezado / fuente escritos por otros:

  • Enums mejores
  • Un GSL Lite ligeramente modificado
  • Una adaptación de algunos de los libstdc ++ de GCC 4.9.3 para su uso en el código del lado del dispositivo CUDA (por lo tanto, originalmente el código FSF se basa en el código SGI)
  • Una implementación de la clase opcional de C ++ (para compiladores y bibliotecas anteriores a C ++ 14)

así como piezas de código directamente levantadas o adaptadas de las respuestas en Stackoverflow.com. Las licencias a partir de ahora son:

  • MIT y licencias similares a MIT
  • GPL v3
  • Licencia de software Boost
  • Licencia BSD de 2 cláusulas
  • Cualquier restricción de licencia que se aplique al usar el código de Stackoverflow

Ahora, realmente no estoy seguro de en qué licencia puedo lanzar mi proyecto, ni de qué licencia debo lanzar en estas circunstancias. Mi deseo inicial es un lanzamiento de GPL, y posiblemente algo menos restrictivo en el futuro. Mis preguntas son:

  1. Dada la sopa de licencias descrita anteriormente, ¿puedo incluso liberar mi código con una sola licencia, o debo / debo / cada parte de él (la mía y la de todos los demás) tener una licencia por separado?
  2. Entre las populares Licencias de Software de Código Libre / Libre (manteniendo esta definición intencionalmente vaga), ¿cuáles son las posibles que podría usar: 2.1 ¿Para todo el proyecto? 2.2 ¿Para el código que es solo mío (viendo cómo se debe construir con el resto del código, eso no es mío)? 2.3 Para el código que es una derivación / modificación de código con otra licencia?
  3. ¿Cómo debo proceder si quiero emular el efecto de una de las licencias para todo el proyecto, incluso si no puedo usarlo directamente?

Notas :

  • Esta pregunta es similar a this , excepto que no quiero poner mi trabajo en el dominio público; y no es solo un pequeño código que no es mío; y hay múltiples licencias.
  • Hasta ahora he incluido la atribución a través del enlace web para todo el código SO y, por supuesto, he mantenido los avisos de derechos de autor para todas las librerías / archivos que mencioné anteriormente.
pregunta einpoklum 10.09.2016 - 20:07

3 respuestas

4
  
  1. Dada la sopa de licencias descrita anteriormente, ¿puedo incluso liberar mi código con una sola licencia, o debo / debo / cada parte de él (la mía y la de todos los demás) tener una licencia por separado?
  2.   

Ambos. GPLv3 requiere que su trabajo "en su totalidad" también tenga licencia GPLv3. Paralelamente a esto, las partes pueden (y deben, si usted obedece sus términos) permanecer bajo su propia licencia. Según en este enlace , la mayoría de las licencias que mencionó son directamente compatibles con GPLv3, excepto el código de SO, que se encuentra bajo una licencia "Create Commons Share Alike" (CC-BY-SA-3.0), lo que lo hace un poco complicado. Esta publicación en SO meta y especialmente la segunda respuesta le dice que será posible elevar la licencia CC-BY-SA a 4.0, lo que la hace compatible con la GPL v3.

  
  1. Entre las populares Licencias de software de código libre / abierto (manteniendo esta definición intencionalmente vaga), ¿cuáles son las posibles que podría usar: 2.1 Para todo el proyecto? 2.2 ¿Para el código que es solo mío (viendo cómo se debe construir con el resto del código, eso no es mío)? 2.3 Para el código que es una derivación / modificación de código con otra licencia?
  2.   

2.1: GPLv3 (asumiendo que todo su proyecto es un trabajo derivado del código GPLv3 incluido)

2.2: cualquier licencia que te guste que sea compatible con GPL v3 (ver mi primer enlace)

2.3: lo que requiera la licencia de esa parte del código (por lo que debe atenerse a GPLv3 para las partes con licencia GPL)

  
  1. ¿Cómo debo proceder si quiero emular el efecto de una de las licencias para todo el proyecto, incluso si no puedo usarlo directamente?
  2.   

Puede (y necesita) utilizar las licencias en combinación, y especialmente GPLv3 para todo el proyecto. Esto significa que probablemente tendrá que incluir no solo el texto de licencia GPL v3 para el proyecto, sino también los textos de licencia para las partes. Debería ser obvio que debe dejar claro qué licencia se aplica a qué parte.

    
respondido por el Doc Brown 10.09.2016 - 22:33
0

Buena suerte.

Tendrá que leer todas las licencias y leer todas las condiciones que establecieron para la publicación. Estoy bastante seguro de que GPLv3 requiere licencias bajo GPLv3. No tengo idea de si permite el uso simultáneo de otra licencia, pero parece poco probable. Y no tengo idea de si los otros pueden publicarse bajo GPLv3.

Como dije, buena suerte.

    
respondido por el gnasher729 10.09.2016 - 20:33
0

La mayoría de esas licencias no son problemáticas. (MIT y BSD definitivamente no lo son, y nunca he oído hablar de problemas con las licencias / condiciones de Boost u OpenStack).

Sin embargo, la licencia GPL es problemática, ya que efectivamente significa que la aplicación en su totalidad debe publicarse bajo la GPL ... si es que la libera en absoluto.

  • Si la licencia del componente es en realidad LGPL no GPL, no se aplica. LGPL cambiaría todo ......

  • Si el componente GPL tiene doble licencia (o no), es posible que pueda usar una licencia alternativa. Por ejemplo, negociar una tarifa de licencia con el propietario de los derechos de autor. Sin embargo, esto se encuentra en > > su < < discreción, no tuya.

  • La GPL solo es realmente problemática si tienes una buena razón para que sea problemática.

La GPL verdadera (no la LGPL) no restringirá la capacidad de los usuarios finales para usar o modificar su software. El principio fundamental de la GPL es maximizar la libertad para los usuarios finales. Sin embargo, la GPL limita las limitaciones / restricciones que > > you < < Se puede colocar en usuarios finales y en organizaciones intermedias. (Por ejemplo, no puede hacerlo al no proporcionar partes de su código fuente. Y las organizaciones posteriores tampoco pueden hacer eso).

En resumen, si está satisfecho con la GPL, entonces licencia su código como GPL y continúe. Si no es así ... lo más probable es que deba reemplazar los componentes GPL en su base de código con otra cosa.

Aplican descargos de responsabilidad estándar. IANAL, etcétera.

ACTUALIZAR

Para responder a sus preguntas directas:

  

1) Dada la sopa de licencias descrita anteriormente, ¿puedo incluso liberar mi código con una sola licencia, o debo / debo / debo que cada parte (la mía y la de todos los demás) tenga una licencia por separado?

Puede licenciar algunos de los componentes por separado si los distribuye / sus cambios a ellos por separado, pero el producto en su conjunto debe ser GPLv3 si contiene componentes GPLv3. Ciertamente, ese es el enfoque más simple.

  

2) Entre las populares Licencias de Software de Fuente Libre / Libre (manteniendo esta definición intencionalmente vaga), ¿cuáles son las posibles que podría usar:

     

2.1) ¿Para todo el proyecto?

Debes usar GPLv3, según lo que hayas dicho.

  

2.2) Para el código que es mío (viendo cómo se debe construir con el resto del código, eso no es mío).

Debe usar GPLv3 si su código debe estar vinculado a GPLv3.

  

2.3) ¿Para el código que es una derivación / modificación de código con otra licencia?

Eso depende del código y de si lo incluye como parte del todo o lo distribuye por separado. (Si está distribuyendo sus modificaciones a las bibliotecas MIT / BSD / Boost por separado de su producto principal, entonces podría usar prácticamente cualquier término de licencia para sus cambios en esos componentes).

  

2.4) ¿Cómo debo proceder si quiero emular el efecto de una de las licencias para todo el proyecto, incluso si no puedo usarlo directamente?

No creo que sea una opción. Los términos de la licencia que se aplican a un componente en particular no pueden "resolverse". Su permiso para utilizar el código es condicional en los siguientes términos de la licencia. Esto no es un problema para las licencias permisivas porque le imponen condiciones mínimas. Pero para la GPL no puedes simplemente "hacer que desaparezca" al elegir la relicencia. Solo el propietario del copyright original puede hacer eso.

En conclusión, si no puede vivir con las condiciones impuestas por la licencia GPLv3, NO use componentes / bibliotecas GPLv3 / lo que sea que esté en su aplicación. Encuentra una alternativa.

    
respondido por el Stephen C 11.09.2016 - 03:40

Lea otras preguntas en las etiquetas