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

48

¿Es posible modificar el código del Chili plugin , que tuvo su último lanzamiento en julio de 2008, y tiene licencia bajo la licencia MIT, para luego licenciarla bajo GPL?

Por lo que 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 el código JavaScript normal que se ejecuta en un CMS. Esto significa esencialmente que, entre otras cosas:

  • El código no usará 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 de JavaScript utilizado desde el CMS.
  • El código permitirá que otros módulos alteren el objeto GlobalObject.ChiliHighlighter para agregar funciones que se llaman opcionalmente desde GlobalObject.ChiliHighlighter.process() cuando están definidas.

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

    
pregunta kiamlaluno 05.09.2011 - 12:04

3 respuestas

49

Es técnicamente legal.

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

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

[editar] Parece que algunas personas no entienden cómo funciona F / OSS junto con las leyes de derechos de autor y licencias. Todo comienza con derechos de autor, aunque solo sea porque ese es el valor predeterminado. Bajo la doctrina de derechos de autor, el autor obtiene el derecho de hacer copias del código fuente. Bajo la licencia del MIT, se me otorga ese derecho, así como el derecho a otorgarlo recursivamente a otros. Tenga en cuenta que la licencia del MIT explícitamente incluye el derecho de sublicencia. Cotización: "the rights to use, copy, modify, merge, publish,distribute, sublicense, and/or sell"

Cuando otorgo una licencia de código, no puedo conceder derechos que no tenía originalmente. En el caso de la GPL, estoy explícitamente prohibido sublicenciar solo algunos derechos. Pero ni en la ley ni en la licencia de MIT tengo la obligación de sub-licenciar todos los derechos en su conjunto.

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

    
respondido por el MSalters 05.09.2011 - 14:15
23

Sí. 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 mientras que las personas que reciben su distribución solo reciben una licencia GPL para los elementos que agregó, también reciben una licencia MIT (de los autores originales, no de usted) a cualquier elemento contenido en el trabajo que los autores ofrecieron bajo esa licencia.

Es posible que no lo sepan, y que yo sepa, ninguna ley lo obliga a decirles. Pero si "violan" la licencia de la GPL con respecto a la expresión de protección contenida en el trabajo que usted no creó (o que otros no contribuyeron con la versión exclusiva de la GPL), no han violado su licencia ni sus derechos de autor. (En realidad, eso debería ser bastante obvio: solo tiene los derechos de autor de la expresión 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 ha liberado los elementos en un trabajo mixto / combinado.

    
respondido por el David Schwartz 05.11.2011 - 18:33
6

No hay nada que agregar a las explicaciones en las respuestas ya dadas, pero aquí hay instrucciones sobre cómo configurar los encabezados de los archivos de origen ( source ):

  

2.2 Agregar modificaciones de GPL a los 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 de GPL. Los desarrolladores en esta situación suelen aplicar la GPL a sus modificaciones. (Sin embargo, es posible que el desarrollador aporte un nuevo código bajo términos permisivos, como la licencia permisiva que rige el archivo no modificado. Discutimos ese caso en el § 2.3.)

     

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

/*  
 * 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 completo de derechos de autor, el aviso de permiso y el descargo de responsabilidad de la garantía tal como aparecen en el código original, según lo requiere la licencia permisiva. A veces vemos avisos de GPL mezclados con avisos de licencias permisivas, una práctica confusa que oculta tanto el origen del código como los permisos precisos que fueron otorgados por los diversos titulares de derechos de autor que figuran 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 contribuyen con términos permisivos o con la GPL. Si desean que sus contribuciones estén disponibles bajo términos permisivos, pueden agregar sus avisos de derechos de autor al grupo inferior. Si desean contribuir con la GPL, pueden agregar sus avisos de derechos de autor en la parte superior. Sin embargo, tenga en cuenta que, en un solo archivo de origen, suele ser 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.

    
respondido por el hoijui 31.03.2018 - 00:52

Lea otras preguntas en las etiquetas