Elegir una licencia para proyectos de código abierto

30

He realizado algunos proyectos de código abierto y planeo hacer más en el futuro. Hasta ahora, he publicado todo mi código bajo GPL, pero he leído algunos artículos que afirman que GPL es demasiado restrictivo para que cualquier código pueda usarse en un entorno corporativo. Esto, supuestamente, reduce las contribuciones.

Esto es lo que quería lograr:

Para aplicaciones completas :

  • sin uso comercial con la excepción de vender soporte para la aplicación (es decir, la aplicación no se puede vender, pero todo lo que la rodea sí)

Para bibliotecas (componentes, complementos, ...):

  • se puede incluir en proyectos comerciales sin modificaciones
  • cualquier modificación de la biblioteca / componente debe ser de código abierto (contribuido de nuevo): el resto del proyecto, comercial o no, no se ve afectado

Para las aplicaciones, GPL todavía parece la opción lógica. Para las bibliotecas, mi comprensión primitiva de las licencias me hace pensar que LGPL es una buena combinación, pero no estoy seguro. He mirado la licencia MIT, y eso parece demasiado permisivo.

La mayoría de las veces, quiero que las personas usen mi código en cualquier lugar que deseen, siempre que se aporten las mejoras.

Esto me lleva a mi pregunta (s): ¿LGPL es una opción lógica para bibliotecas de código abierto, componentes, complementos, etc.? ¿Hay una mejor alternativa? ¿Es GPL una buena opción para mis aplicaciones o hay algo mejor?

Actualizar:

Para aquellos que estén interesados ​​en mi decisión final, he decidido lanzar mis bibliotecas bajo el esquema de múltiples licencias, MPL, LGPL y GPL. Esto permite que prácticamente todos usen mi código sin obligaciones, a menos que lo modifiquen bajo MPL, en cuyo caso tendría que ser devuelto.

Esto significa que el código puede ser utilizado tanto por FSF como por software privativo, pero se evita la explotación comercial "mala" (o eso me gustaría pensar).

Dr. Hannibal Lecter
fuente
1
¿Quiere decir que no tiene uso comercial o distribución / reventa comercial ?
MIA
Probablemente distribución / reventa. No me importaría si la gente usara mis cosas comercialmente, pero supongo que eso dependería del proyecto. Aunque no veo una manera de usar nada de lo que he escrito hasta ahora con fines comerciales ...
Dr. Hannibal Lecter
44
Es importante tener en cuenta que (al contrario de algunas de las respuestas), las preguntas frecuentes de Creative Commons establecen explícitamente que las licencias CC no deben usarse para el software. (La dedicación de dominio público CC0 está aprobada para su uso con software, pero no sería adecuada para los fines establecidos en la pregunta original). En su lugar, CC recomienda elegir una licencia aprobada por la Free Software Foundation o la Open Source Initiative.
Peter Briggs
1
Supongo que, a menos que se te ocurra algo verdaderamente único y útil, la posibilidad de una "mala comercialización" es tan pequeña que no vale la pena el tiempo dedicado a tratar de evitarlo.
Bryan Oakley
1
En caso de que alguien esté interesado, hay una propuesta para un sitio de preguntas y respuestas sobre licencias de código abierto en area51: area51.stackexchange.com/proposals/58715/…
Kurt Pattyn

Respuestas:

8

Me parece que GPL y LGPL son lo que quieres para tus proyectos.

alternativa
fuente
¿Entonces diría que LGPL es una buena opción para mis requisitos? No soy un abogado, así que solo estoy comprobando :)
Dr. Hannibal Lecter
1
Tampoco soy abogado, pero creo que LGPL es exactamente lo que quieres para una biblioteca y GPL para aplicaciones completas.
alternativa
Es legal vender aplicaciones GPL. Usted (esencialmente) solo debe incluir el código fuente y otorgar a sus clientes los mismos derechos de GPL que usted tiene.
bdsl
8
  • sin uso comercial con la excepción de vender soporte para la aplicación (es decir, la aplicación no se puede vender, pero todo lo que la rodea sí)

Tenga en cuenta que la GPL no prohíbe vender la aplicación, y prohibir esto de hecho haría que su licencia no sea gratuita, como lo observó Huperniketes. Lo único que garantiza la GPL es que la empresa que vende el software también tendría que proporcionar la base de código de forma gratuita. Pero no tienen que proporcionar el paquete de software tal cual es gratis. Esa es una gran diferencia, ya que el código fuente de un software no es un producto fácilmente utilizable.

Konrad Rudolph
fuente
De hecho, estoy de acuerdo con eso, ya que el código fuente estará flotando en alguna parte, y alguien se beneficiará de ello. ;)
Dr. Hannibal Lecter
Realmente no lo entiendo. Quiero decir, si puedo obtener las fuentes, puedo compilar, y nada me prohíbe usarlo, ¿verdad?
Camilo Martin
@Camilo: ¿ qué no entiendes?
Konrad Rudolph el
Las secciones 4 y 6b de la versión 3 de GPL cubren lo que estás diciendo @KonradRudolph
Rudolf Olah
No tienen que proporcionar el código fuente de forma gratuita si lo incluyen en el paquete cuando venden la aplicación.
bdsl
5

Si desea evitar el uso comercial de su software, GPL no lo cortará. Las empresas comerciales tienden a evitar la GPL en los productos que venden debido al requisito de redistribuir la fuente modificada, pero son libres de usar el software GPL internamente. Eso no quiere decir que las empresas no estén configuradas para vender software GPL o construir hardware alrededor del software GPL (LinkSys, por ejemplo), pero la mayoría de las empresas preferirían no compartir su producto con sus competidores.

No sé si la licencia Creative Commons Attribution Non-Commercial No Derivatives es lo que desea (la única restricción que mencionó es el uso comercial ), pero si no, es posible que necesite un abogado preparado para usted que contenga el idioma que otorga los derechos que desea que tengan los titulares de licencias.

Además, una vez que comience a incluir restricciones tales como el uso no comercial y la no modificabilidad , es posible que ya no cumpla con los criterios para una licencia de código abierto según lo define la Open Source Initiative . Su sitio también enumera otras licencias OSS aprobadas . Quizás ya haya uno que coincida con tus objetivos.

Y definir adecuadamente sus objetivos será clave antes de seleccionar los derechos y limitaciones que impone a los usuarios de su software. ¿Es la popularidad más importante que la modificabilidad o distribución o uso o ...? Para empezar, piense en sus objetivos al lanzar el código, y con qué espíritu lo hace o los términos bajo los cuales otorga acceso pueden tener el efecto contrario.

Huperniketes
fuente
Las empresas que utilizan el software GPL internamente no son usos comerciales del software ...
alternativa el
3
@mathepic, ¿las palabras "negocios" y "usar" no le parecen similares a "uso comercial"? definitions.uslegal.com/c/commercial
Huperniketes
@Huperniketes No, no lo hacen. Una empresa que usa software (por ejemplo, un navegador de base de datos) es exactamente lo mismo que una persona que usa ese software. No hay diferencia, siempre y cuando el proyecto no se incorpore al producto final del negocio.
alternativa
3
@mathepic, eres incorrecto. Un negocio es una preocupación comercial, existente con fines de lucro. Cualquier actividad que realice es comercial. Y configurar un servidor web que ejecuta Apache para alojar manuales de usuario es el uso comercial de Apache. La palabra clave, en el sentido legal, es uso , no distribución , no venta o reventa .
Huperniketes
2
@dr, no es una violación porque la licencia de Apache no prohíbe el uso comercial. apache.org/foundation/licence-FAQ.html#WhatDoesItMEAN "Le permite: descargar y usar libremente el software Apache, en su totalidad o en parte, para fines personales, internos de la empresa o comerciales";
Huperniketes
4

Si lo que le interesa es asegurarse de que su código permanezca libre, recuperar mejoras y asegurarse de que cualquiera pueda usarlo, entonces MPL es la licencia adecuada para usted. Es de uso gratuito en cualquier producto, incluido el software comercial, sin restricciones extrañas de enlaces arcanos como lo impone la LGPL. Requiere que cualquiera que use su código y lo modifique libere los cambios bajo MPL, pero no toca ni restringe el resto del código en el proyecto.

Mason Wheeler
fuente
No estoy familiarizado con MPL en absoluto, pero suena muy interesante. Hasta ahora, solo he lanzado código PHP, por lo que las restricciones de vinculación no deberían ser un problema, pero también planeo lanzar algo de código Mono, MPL podría resultar muy útil.
Dr. Hannibal Lecter
4

Si escribió todo su código (es decir, si es el propietario de su código), también puede obtener una doble licencia : publique su código en, por ejemplo, GPLv3 y ofrezca venderlo (con otra licencia) a aquellos que quieran usarlo de manera menos restrictiva.

(Esto es particularmente relevante para una biblioteca, porque una biblioteca GPL-ed solo puede usarse en el software GPL).

Tenga cuidado con las contribuciones o parches externos que incorpore a su código (ya que no los posee).

Basile Starynkevitch
fuente
1

Si realmente puede solicitar MPL o solo GPL depende de una diferencia crítica:

Los "derechos en virtud del presente" incluyen el derecho otorgado a los destinatarios para vincular el "Código cubierto" MPL con el código privado que no es MPL para formar un "Trabajo más grande" (MPL 3.7 Obras más grandes). GPL no otorga a los destinatarios ningún derecho de este tipo. Por lo tanto, el destinatario no puede cambiar los términos de licencia para aplicar la GPL en lugar de MPL.

Mira esto .

Lo que esto significa para usted es que si está utilizando algún componente que en sí mismo tiene GPL, usted (probablemente) no puede liberar el código (que está utilizando esto) en MPL; MPL intentará erróneamente redistribuir el código GPL bajo MPL, lo cual es incorrecto. Esto está bien, si sus dependencias están en el orden de la licencia MIT o Apache.

En general, si usted está no haciendo nada mejor eligiendo MPL sobre GPL solo a menos que ya se está utilizando material MPL. GPL también se asegurará de que las contribuciones se vuelvan a publicar también.

Solo hay un cambio crítico que MPL proporciona es la protección contra las infracciones de patentes inducidas sin saberlo. Como dice la licencia:

No está bien que alguien cree una Modificación para la cual tiene una patente, haga que la Modificación esté disponible de forma gratuita según lo requerido por la Licencia, y luego regrese e intente cobrar a todos por los derechos de patente.

MPL y GPL no son del todo compatibles.

Puede ver aquí: MIT vs. BSD vs. Licencia Dual para una discusión sobre la implicación de las licencias duales.

Dipan Mehta
fuente
La incompatibilidad de GPL debería haberse resuelto con MPL v2.0. (Supongo que esta publicación se realizó antes del lanzamiento de la v2.0). Vea la declaración de GNU en MPLv2.0
mucaho
0

Nadie parece hablar de ellos, pero podría considerar una licencia Creative Commons. Tienen una gama de licencias (o una que usted adapta a sus necesidades, visto de otra manera).

Frank Shearar
fuente