Licencia MIT vs GPL [cerrada]

122

La licencia MIT es compatible con GPL. ¿La licencia GPL es compatible con MIT? es decir, puedo incluir código con licencia MIT en un producto con licencia GPL, pero ¿puedo incluir código con licencia GPL en un producto con licencia MIT?

Me parece que la principal diferencia entre la licencia MIT y la GPL es que el MIT no requiere modificaciones de código abierto, mientras que la GPL sí. ¿Es eso correcto? ¿La GPL es más restrictiva que la licencia MIT?

fruzer
fuente
1
en.wikipedia.org/wiki/MIT_License La licencia también es compatible con GPL, lo que significa que ...
Michael Petrotta

Respuestas:

76

Me parece que la principal diferencia entre la licencia MIT y la GPL es que el MIT no requiere modificaciones de código abierto, mientras que la GPL sí.

Es cierto, en general. No tiene que abrir el código fuente de sus cambios si está usando GPL. Puede modificarlo y usarlo para su propio propósito siempre que no lo esté distribuyendo. PERO ... si lo distribuye, entonces todo su proyecto que está utilizando el código GPL también se convierte en GPL automáticamente. Lo que significa que debe ser de código abierto, y el destinatario obtiene los mismos derechos que usted, lo que significa que pueden dar la vuelta y distribuirlo, modificarlo, venderlo, etc. Y eso incluiría su código de propiedad que entonces no ya no sea propietario, se convierte en código abierto.

La diferencia con MIT es que incluso si realmente distribuye su código propietario que utiliza el código con licencia MIT, no tiene que hacer que el código sea de código abierto. Puede distribuirlo como una aplicación cerrada donde el código está encriptado o es binario. La inclusión del código con licencia MIT se puede cifrar, siempre que lleve el aviso de licencia MIT.

¿Es la GPL más restrictiva que la licencia MIT?

Sí mucho así.

Ravi Jayagopal
fuente
16
Debo señalar que GPL no hace que el software sea de "código abierto". El software bajo GPL se vuelve GRATUITO (como para proteger la libertad de sus usuarios). El software libre es un movimiento más antiguo y más significativo que el open-stuff. Aquí hay un artículo sobre las diferencias: gnu.org/philosophy/open-source-misses-the-point.html . Gracias
Jorge Orpinel
11
Por las mismas razones, se podría argumentar que el MIT es más restrictivo, ya que no protege todas las libertades del usuario y puede conducir a la privatización del software (= restricción y pérdida de su control por parte del usuario). Gracias de nuevo
Jorge Orpinel
3
@tcurdt ¿Por qué no es este el "lugar correcto" para hablar de libertad? ¿Por qué la autocensura? Y no, desafortunadamente eso no es lo que significa "gratis". Ni siquiera 'abierto' significa eso. Solo para aclarar que ni las licencias MIT ni GPL le permiten hacer "nada con él". Solo el código sin licencia podría caer en esa categoría. Saludos
Jorge Orpinel
3
Incorrecto nuevamente, esto es lo que se supone que stackoverflow es para stackoverflow.com/help/on-topic . Alguien que piense que esto está fuera de tema no lo hace así. De todos modos, tengo libertad de expresión y este es un espacio público, así que ... Sí. Simplemente no puedes soportar estar equivocado. En realidad estoy tratando de ayudarte a ti y a otros lectores si puedo. De todos modos, buena suerte
Jorge Orpinel
8
@JorgeOrpinel "Solo el código sin licencia podría caer en esa categoría". Eso está muy muy mal, el código sin licencia es PROPIETARIO / "todos los derechos reservados". Si va y redistribuye el código que otras personas han creado sin una licencia, está arriesgando muchos problemas legales. Usted dice que está tratando de "ayudarlo a usted ya otros lectores", pero que demandar a los lectores no es exactamente muy útil. Solo para tu información.
punto
45

¿Puedo incluir código con licencia GPL en un producto con licencia MIT?

Usted puede. GPL es software libre, así como MIT, ambas licencias no le restringen a reunir el código donde "incluir" siempre es bidireccional.

En los derechos de autor para una obra combinada (es decir, dos o más obras forman juntas una obra), no hace mucha diferencia si una obra es "más grande" que la otra o no.

Por lo tanto, si incluye el código con licencia GPL en un producto con licencia MIT, al mismo tiempo incluirá también un producto con licencia MIT en el código con licencia GPL.

Como segunda opinión, el OSI enumeró los siguientes criterios (con más detalle) para ambas licencias (MIT y GPL):

  1. Redistribución Gratis
  2. Código fuente
  3. Obras derivadas
  4. Integridad del código fuente del autor
  5. No discriminación contra personas o grupos
  6. No discriminación contra los campos de esfuerzo
  7. Distribución de licencia
  8. La licencia no debe ser específica de un producto
  9. La licencia no debe restringir otro software
  10. La licencia debe ser neutral en tecnología

Ambos permiten la creación de obras combinadas, que es lo que has estado pidiendo.

Si la combinación de las dos obras se considera un derivado, ambas licencias tampoco lo restringen.

Y ambas licencias no restringen la distribución del software.

Me parece que la principal diferencia entre la licencia MIT y la GPL es que el MIT no requiere modificaciones de código abierto, mientras que la GPL sí.

La GPL no requiere que publique sus modificaciones solo porque las realizó. Eso no es preciso.

Puede mezclar esto con la distribución de software bajo GPL, que no es lo que ha preguntado directamente.

¿Es correcto? ¿La GPL es más restrictiva que la licencia MIT?

Así es como lo entiendo:

En lo que respecta a la distribución, debe colocar todo el paquete bajo GPL. El código MIT dentro del paquete seguirá estando disponible bajo MIT, mientras que la GPL se aplica al paquete en su conjunto si no está limitado por derechos superiores.

"Restrictivo" o "más restrictivo" / "menos restrictivo" depende mucho del punto de vista. Para un usuario de software, el MIT puede dar como resultado un software más restringido que el disponible bajo GPL, incluso algunos llaman a la GPL más restrictiva hoy en día. Ese usuario en específico llamará al MIT más restrictivo. Es subjetivo decirlo y diferentes personas te darán diferentes respuestas a eso.

Como es subjetivo hablar sobre restricciones de diferentes licencias, debería pensar en lo que le gustaría lograr en su lugar:

  • Si desea restringir el uso de sus modificaciones, MIT puede ser más restrictivo que la GPL para la distribución y eso podría ser lo que está buscando.
  • En caso de que desee asegurarse de que la libertad de su software no se vea restringida por los usuarios a los que lo distribuye, entonces es posible que desee liberarlo bajo GPL en lugar de MIT.

Mientras seas el autor, eres tú quien puede decidir.

Entonces, la persona más restrictiva es el autor, independientemente de la licencia por la que alguien esté optando;)

hakre
fuente
1
"El código MIT dentro del paquete seguirá estando disponible en MIT". No estoy completamente seguro de ello. un proyecto GPL + MIT debe convertirse en un proyecto de código abierto, incluida la parte MIT. Por otro lado, LGPL es menos intrusivo para todo el proyecto.
magallanes
13
Aunque aclare más adelante en su respuesta, es muy engañoso comenzar diciendo que "puede" incluir código con licencia GPL en un proyecto con licencia MIT. Un proyecto que originalmente tenía licencia MIT ya no se puede distribuir como un todo bajo la licencia MIT una vez que contiene código que solo está disponible bajo GPL.
antinome
3
También es engañoso afirmar que la restricción es subjetiva. Es una pregunta razonable y no subjetiva preguntar "¿qué acciones puedo realizar legalmente con estos archivos que he obtenido?" Bajo GPL, ese conjunto de acciones es, de hecho, un subconjunto adecuado de lo que esas acciones habrían sido bajo MIT.
antinome
1
@hakra: La inclusión de código con licencia GPL en un proyecto con licencia MIT no es posible porque el conjunto resultante ya no tiene licencia MIT, incluso si no lo distribuye. (Si así fuera, ¡los términos de la licencia MIT le permitirían distribuirla!)
antinome
9
tl; dr: una aplicación con licencia MIT puede incluir código GPL pero la aplicación resultante no tiene licencia MIT.
antinome
16

Tiene razón en que la GPL es más restrictiva que la licencia MIT.

No puede incluir el código GPL en un producto con licencia MIT. Si distribuye un trabajo combinado que combina código GPL y MIT (excepto en algunas situaciones particulares, por ejemplo, 'mera agregación'), esa distribución debe cumplir con la GPL.

Puede incluir el código con licencia MIT en un producto GPL. Todo el trabajo combinado debe distribuirse de manera compatible con la GPL. Si ha realizado cambios en las partes MIT del código, se le solicitará que publique la fuente de esos cambios si distribuye una aplicación que contenga códigos GPL y MIT.

Si usted es el propietario de los derechos de autor del código GPL, por supuesto, puede optar por liberar ese código bajo la licencia MIT; en ese caso, es su código y puede publicarlo con tantas licencias como desee.

JosephH
fuente
3
a menos que el proyecto esté bajo una licencia dual, por ejemplo jquery.
buggedcom
77
@buggedcom: puede obtener una licencia dual de las partes que estaban bajo la licencia MIT, pero no puede obtener una licencia doble de una biblioteca MIT / GPL combinada; debe tener licencia solo bajo la GPL. (No puede tomar partes con licencia GPL y volver a licenciarlas bajo la licencia MIT, ya que eso va en contra de los términos de GPL). En el caso de jQuery, los propietarios de los derechos de autor del código lo publicaron bajo la licencia dual, por lo que no es un problema, pero si "tomaron prestado" algún código GPL de otro lugar, ya no podrían obtener la licencia MIT del trabajo combinado. .
Mark H
AFAIK eso no es del todo cierto. Según la FSF, la GPL es compatible con la licencia MIT [1] Desafortunadamente, eso no cambia el hecho de que el proyecto en sí ya no está completamente cubierto por la licencia MIT ... que es lo que la gente suele esperar. Ya no podrá utilizar el proyecto en su conjunto en un contexto comercial sin liberar el código. Para evitar esta confusión, es mejor no incluir el código GPL en un proyecto con licencia MIT. Que no puedes, está mal sin embargo. [1] gnu.org/licenses/license-list.html#SoftwareLicenses
tcurdt
... pero supongo que depende de lo que defina como "producto"
tcurdt
2
Un producto con licencia MIT (quizás 'aplicación' sería mejor palabra) no puede incluir el código GPL. Puede agregar código GPL en un producto MIT, pero la aplicación resultante solo puede distribuirse bajo la licencia GPL. Nunca antes había visto a alguien describir una aplicación que solo puede distribuirse bajo los términos de la GPL como un 'producto con licencia MIT'. Si las licencias no fueran "compatibles", no podría producir un trabajo combinado en absoluto; el hecho de que sean compatibles significa que puede producir un trabajo combinado que puede distribuir y tiene licencia GPL.
JosephH
5

IANAL pero como yo lo veo ...

Si bien puede combinar código GPL y MIT, la GPL está contaminando. Lo que significa que el paquete en su conjunto tiene las limitaciones de la GPL. Como eso es más restrictivo, ya no puede usarlo en software comercial (o más bien de código cerrado). Lo que también significa que si tiene un proyecto MIT / BSD / ASL, no querrá agregar dependencias al código GPL.

Agregar una dependencia GPL no cambia la licencia de su código, pero limitará lo que las personas pueden hacer con el artefacto de su proyecto. Esta es también la razón por la cual la ASF no permite dependencias del código GPL para sus proyectos.

http://www.apache.org/licenses/GPL-compatibility.html

tcurdt
fuente
1
+1 De hecho, Microsoft identifica perfectamente este problema, GPL es viral porque convierte cada proyecto en código abierto.
magallanes
10
No es un problema . La GPL es viral por diseño. Está destinado a ser utilizado por personas que desean hacer que su código sea gratuito para que otras personas lo usen como quieran, pero también requieren que otras personas que publican copias de ese software o un derivado respeten a los usuarios de la misma manera. La GPL es sobre usuarios . No se trata de que las empresas maximicen las ganancias a través de los monopolios impuestos por el estado, por lo que el hecho de que sea recursivo es en realidad su belleza y fortaleza, no un "problema" que Microsoft pueda "identificar perfectamente". No se necesita una visión especial para reconocer que la GPL es viral ~ Wikipedia es suficiente.
Carl Smith