¿Puede cambiar el código distribuido bajo la licencia MIT y redistribuirlo bajo la licencia GPL? [cerrado]

57

¿Es posible alterar el código del complemento Chili , que tuvo su último lanzamiento en julio de 2008, y está licenciado bajo la licencia MIT, para luego licenciarlo bajo GPL?

Hasta donde puedo ver, no hay restricciones sobre la licencia del nuevo código bajo la misma licencia. ¿Es realmente así o hay un número mínimo de cambios?

En mi caso, cambiaría el complemento jQuery en un código Javascript normal que se ejecuta en un CMS. Esto esencialmente significa que, entre otras cosas:

  • El código no utilizará el espacio de nombres "ChiliBook".
  • La función no se invocará como $($element).chili(), sino como GlobalObject.ChiliHighlighter.process($jquery_element), donde "GlobalObject" es un objeto JavaScript utilizado desde el CMS.
  • El código permitirá que otros módulos alteren el GlobalObject.ChiliHighlighterobjeto para agregar funciones que se llaman opcionalmente desde GlobalObject.ChiliHighlighter.process()que se definen.

Como alternativa, como el repositorio que estoy usando me permite incluir código sin licencia bajo GPL 2 o una licencia superior cuando el código ya no se mantiene, ¿podría considerarse que el complemento ya no se mantiene, ya que su última versión se lanzó hace tres años?

kiamlaluno
fuente
2
Si realmente desea una respuesta autorizada, debe consultar a un abogado (en la jurisdicción pertinente, por ejemplo, la respuesta podría ser diferente en Italia que en los EE. UU.)
MarkJ

Respuestas:

59

Es técnicamente legal.

La licencia MIT (Expat) le impone algunas restricciones. Estos son un subconjunto de la licencia GPL. Por lo tanto, si vuelve a licenciar el código bajo la GPL y conserva el aviso MIT, entonces ha cumplido con los términos de la licencia MIT y puede redistribuir legalmente el código.

Tenga en cuenta que no puede reclamar la propiedad de los derechos de autor; Tendrá que reconocer los derechos de autor originales.

[editar] Algunas personas no parecen entender cómo funciona F / OSS junto con los derechos de autor y la ley de licencias. Todo comienza con los derechos de autor, aunque solo sea porque ese es el valor predeterminado. Según la doctrina del derecho de autor, el autor tiene derecho a hacer copias del código fuente. Según la licencia del MIT, ese derecho se me otorga, así como el derecho de otorgarlo recursivamente a otros. Tenga en cuenta que la licencia MIT incluye explícitamente el derecho de sublicenciar. Citando:"the rights to use, copy, modify, merge, publish,distribute, sublicense, and/or sell"

Cuando sublicencia el código, no puedo otorgar derechos que originalmente no tenía. En el caso de la GPL, se me prohíbe explícitamente sublicenciar solo algunos derechos. Pero ni en la ley ni en la licencia MIT tengo la obligación de sublicenciar todos los derechos en su conjunto.

Por lo tanto, la licencia MIT me otorga el derecho explícito de sublicenciar derechos, y ni la ley ni la licencia MIT me prohíben sublicenciar solo algunos derechos. Además, ninguno restringe la forma en que lo hago. Por lo tanto, tengo el derecho innegable de otorgar una sublicencia GPL en ese código.

MSalters
fuente
66
@vartec: no está cambiando la licencia bajo la cual recibió el código. Está creando una nueva licencia entre usted y el nuevo destinatario, y puede tener los términos que desee. (El nuevo destinatario puede obtener derechos adicionales bajo la licencia original, pero eso no tiene efecto en la nueva licencia). La norma es que una sublicencia otorgue una fracción de los derechos en la licencia original. Por ejemplo, una sublicencia rara vez incluye el derecho de sublicencia, que la licencia original debe haber incluido para que haya una sublicencia.
David Schwartz el
3
@vartec: Básicamente, estás argumentando que una licencia de copyright que otorga el derecho de sublicenciar de alguna manera en realidad no otorga el derecho de sublicenciar. Sin embargo, no estoy seguro sobre qué base estás haciendo este argumento. ¿Tiene alguna cita con alguna autoridad legal relevante? ¿Estás diciendo que un titular de derechos de autor no puede otorgar a otros el derecho de licenciar su trabajo? ¿O cree que la licencia del MIT de alguna manera no hace esto o no tiene la intención?
David Schwartz el
1
@David: parece que no entiendes lo que significa "sublicencias".
vartec
1
@vartec: Un enlace a una fuente que explica que sería genial, porque creo que no entiendes lo que significa.
David Schwartz
77
La licencia del MIT tiene esta parte: "El aviso de copyright anterior y este aviso de permiso se incluirán en todas las copias o partes sustanciales del Software". Eso significa que cualquier bifurcación debería estar disponible bajo la licencia MIT. Los cambios podrían enumerarse como GPL. La bifurcación podría aparecer como GPL + MIT. Pero la bifurcación no se puede enumerar solo como GPL; eso es una clara violación de la licencia MIT.
Jonathan Vanasco
26

Si. Pero el efecto puede no ser lo que crees que es.

La licencia MIT incluye todos los derechos que otorga la GPL y más. Y aunque las personas que reciben su distribución solo reciben una licencia GPL para los elementos que agregó, aún reciben una licencia MIT (de los autores originales, no de usted) para cualquier elemento contenido en el trabajo que los autores ofrecieron bajo esa licencia.

Puede que no sepan esto, y que yo sepa, ninguna ley lo obliga a decirles. Pero si "violan" la licencia GPL con respecto a la expresión protectora contenida en el trabajo que usted no creó (o que otros no contribuyeron a la publicación solo GPL), no han violado su licencia o sus derechos de autor. (En realidad, eso debería ser bastante obvio: solo tiene derechos de autor para las expresiones que creó).

Por lo tanto, no ha convertido ningún elemento con derechos de autor de la licencia MIT a la licencia GPL. Simplemente ha agregado otros nuevos que solo se ofrecen bajo la licencia GPL y lanzó los elementos en un trabajo mixto / combinado.

David Schwartz
fuente
así que, en la práctica, haría esto: copie un proyecto MIT, reemplace todo MIT con GPL (para que no quede ningún rastro del proyecto que haya sido MIT) y luego, además, enlace al proyecto MIT original en algunos lugares importantes (no todos archivo fuente), mencionando que el proyecto base está disponible bajo MIT. ¿estaría bien / legal (dado que mantengo las declaraciones originales del propietario de los derechos de autor)?
hoijui
1
@hoijui Debe dejar todos los encabezados de licencia MIT y avisos de permiso intactos e incluirlos en su nuevo proyecto. Y a menos que su intención sea engañar, no veo por qué reemplazaría todas las menciones de "MIT". No cambiará nada, las piezas que tome seguirán teniendo licencia MIT. Simplemente agregue su propio encabezado de licencia GPL debajo de él, será válido para todos los cambios con derechos de autor (es decir, no solo para cambiar el nombre de las variables) que realice en el código fuente. Por cierto, es por eso que la mayoría de los proyectos tienen un encabezado de copyright en cada archivo.
jmiserez
@jmiserez ok. así que veamos un archivo de mi proyecto: dejo el encabezado MIT, hago algunos cambios y agrego un encabezado GPL (ya que quiero que mis cambios solo estén disponibles bajo la GPL). ¿Ahora un tercero que venga sobre mi archivo tendría que honrar tanto a MIT como a GPL? Nunca he visto un archivo con dos encabezados de licencia, y creo que la mayoría de las personas simplemente elegirían la licencia que les gusta, ya que no saben cuál es la forma legalmente correcta. Además, ¿por qué tengo que incluir el MIT, si al honrar a la GPL, uno automáticamente también honra al MIT?
hoijui
@hoijui Cualquier derecho que tenga bajo la licencia MIT viene con la restricción "El aviso de copyright anterior y este aviso de permiso se incluirán en todas las copias o partes sustanciales del Software". Pero, sinceramente, no estoy seguro de si necesita conservar todo de los avisos, o solo uno, IANAL. Pero estoy seguro de que necesita incluir un aviso en alguna parte. Si no lo hiciera, ya no cumpliría con la licencia MIT, lo que significaría que perdería todos los derechos para usar el código en su proyecto. Para su información, el kernel de Linux tiene archivos con múltiples licencias, usan encabezados SPDX
jmiserez
1
Qué triste es que alguien quiera intentar el código GPL que se creó en una licencia MIT. Parece estar en contra de todo lo que representa la licencia MIT.
Andrew T Finnell
8

No hay nada que agregar a las explicaciones en las respuestas ya dadas, pero aquí hay instrucciones sobre cómo dar forma a los encabezados del archivo fuente ( fuente ):

2.2 Agregar modificaciones de GPL a archivos con licencia permisiva

Un caso más complicado ocurre cuando un desarrollador realiza cambios con derechos de autor en un archivo con licencia permisiva que el desarrollador está incorporando en un programa GPL. Los desarrolladores en esta situación generalmente aplican la GPL a sus modificaciones. (Sin embargo, es posible que el desarrollador contribuya con un nuevo código en términos permisivos, como la licencia permisiva que rige el archivo no modificado. Discutimos ese caso en el § 2.3.)

Aunque la licencia permisiva del proyecto externo otorga permiso legal para incorporar el código de ese proyecto en un proyecto GPL, el desarrollador del proyecto GPL debe cumplir con el requisito de preservación de avisos en la licencia permisiva. En un proyecto que utiliza el método de archivo por archivo, un desarrollador que realiza modificaciones con derechos de autor a un archivo con licencia permisiva debe colocar un nuevo aviso de copyright y aviso de permiso por encima del existente y debe dejar claro que el desarrollador ha modificado el archivo. La parte superior del archivo aparecerá de la siguiente manera:

/*  
 * Copyright (c) 2007  GPL Project Developer Who Made Changes   
 *  
 *  This file is free software: you may copy, redistribute and/or modify it  
 *  under the terms of the GNU General Public License as published by the  
 *  Free Software Foundation, either version 2 of the License, or (at your  
 *  option) any later version.  
 *  
 *  This file is distributed in the hope that it will be useful, but  
 *  WITHOUT ANY WARRANTY; without even the implied warranty of  
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU  
 *  General Public License for more details.  
 *  
 *  You should have received a copy of the GNU General Public License  
 *  along with this program.  If not, see .  
 *  
 * This file incorporates work covered by the following copyright and  
 * permission notice:  
 *  
 *     Copyright (c) YEARS_LIST, Permissive Contributor1   
 *     Copyright (c) YEARS_LIST, Permissive Contributor2   
 *  
 *     Permission to use, copy, modify, and/or distribute this software  
 *     for any purpose with or without fee is hereby granted, provided  
 *     that the above copyright notice and this permission notice appear  
 *     in all copies.  
 *  
 *     THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL  
 *     WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED  
 *     WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE  
 *     AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR  
 *     CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS  
 *     OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,  
 *     NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN  
 *     CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.  
 */

Es muy importante que el desarrollador conserve el aviso de copyright completo, el aviso de permiso y el descargo de responsabilidad de la garantía tal como aparecieron en el código original, según lo exige la licencia permisiva. A veces vemos avisos de GPL mezclados con avisos de licencia permisivos, una práctica confusa que oscurece tanto la procedencia del código como los permisos precisos que fueron otorgados por los distintos titulares de derechos de autor enumerados en los avisos. Cuando diferentes titulares de derechos de autor han publicado sus contribuciones en términos diferentes, se deben especificar los términos que cada uno ha puesto en su contribución particular. Recomendamos hacer una separación clara y usar sangría, como en el ejemplo anterior.

Esta forma de organizar los avisos en el archivo hace que sea conveniente para los desarrolladores elegir si desean contribuir en términos permisivos o bajo la GPL. Si desean que sus contribuciones estén disponibles en términos permisivos, pueden agregar sus avisos de derechos de autor al grupo inferior. Si desean contribuir bajo la GPL, pueden agregar sus avisos de derechos de autor en la parte superior. Sin embargo, tenga en cuenta que, en un único archivo fuente, generalmente es muy difícil, y a menudo completamente inviable, determinar qué partes de dicho archivo están cubiertas por términos permisivos. Si el objetivo es hacer que el código adicional esté disponible solo bajo términos permisivos, se debe utilizar el método descrito en el § 2.3.

hoijui
fuente