Você pode alterar o código distribuído sob a licença MIT e redistribuí-lo sob a licença GPL?

48

É possível alterar o código do plug-in Chili , que teve seu último lançamento em julho de 2008, e está licenciado sob a licença do MIT, para depois licenciá-lo sob a GPL?

Até onde posso ver, não há restrição quanto ao novo código ser licenciado sob a mesma licença. É realmente assim, ou há um número mínimo de mudanças?

No meu caso, eu mudaria o plugin jQuery no código Javascript normal que é executado em um CMS. Isso essencialmente significa que, entre outras coisas:

  • O código não usará o namespace "ChiliBook".
  • A função não será invocada como $($element).chili() , mas como GlobalObject.ChiliHighlighter.process($jquery_element) , em que "GlobalObject" é um objeto JavaScript usado no CMS.
  • O código permitirá que outros módulos alterem o objeto GlobalObject.ChiliHighlighter para adicionar funções que são opcionalmente chamadas de GlobalObject.ChiliHighlighter.process() quando elas são definidas.

Como alternativa, como o repositório que estou usando me permite incluir código não licenciado sob licença GPL 2 ou superior quando o código não é mais mantido, o plugin pode ser considerado não mantido mais, já que sua última versão foi lançada três anos atrás?

    
por kiamlaluno 05.09.2011 / 12:04
fonte

3 respostas

50

É tecnicamente legal.

A licença do MIT (Expat) coloca algumas restrições em você. Estes são um subconjunto da licença GPL. Portanto, se você relicencia o código sob a GPL, e mantém o aviso do MIT, então você satisfez os termos da licença do MIT e pode redistribuir legalmente o código.

Tenha em atenção que não pode reivindicar propriedade de direitos de autor. você terá que reconhecer os direitos autorais originais.

[editar] Algumas pessoas não parecem entender como o F / OSS trabalha em conjunto com a lei de direitos autorais e licença. Tudo começa com direitos autorais, mesmo porque é o padrão. Sob a doutrina de direitos autorais, o autor tem o direito de fazer cópias do código-fonte. Sob a licença do MIT, esse direito é concedido a mim, assim como o direito de conceder recursivamente a outros. Observe que a licença do MIT explicitamente inclui o direito de sublicenciar. Citando: "the rights to use, copy, modify, merge, publish,distribute, sublicense, and/or sell"

Quando sublicenciar código, não posso conceder direitos que originalmente não possuía. No caso da GPL, estou explicitamente proibida de sublicenciar apenas alguns direitos. Mas nem na lei nem na licença do MIT tenho a obrigação de sublicenciar todos os direitos como um todo.

Portanto, a licença do MIT concede-me o direito explícito de sublicenciar os direitos, e nem a lei nem a licença do MIT me proíbem sublicenciar apenas alguns direitos. Além disso, nem restringe a forma em que eu faço. Portanto, tenho o direito inegável de conceder uma sublicença da GPL sobre esse código.

    
por 05.09.2011 / 14:15
fonte
23

Sim. Mas o efeito pode não ser o que você pensa.

A licença do MIT inclui todos os direitos que a GPL concede e mais. E enquanto as pessoas que recebem sua distribuição recebem apenas uma licença GPL para os elementos adicionados, elas ainda recebem uma licença MIT (dos autores originais, não de você) para quaisquer elementos contidos no trabalho que os autores ofereceram sob essa licença.

Eles podem não saber disso e, até onde eu sei, nenhuma lei obriga você a contar. Mas se eles "violarem" a licença GPL com relação à expressão protegida contida no trabalho que você não criou (ou que não foi contribuída por outros para a versão somente GPL), eles não violaram sua licença ou seus direitos autorais. (Na verdade, isso deve ser bastante óbvio - você só tem direitos autorais sobre a expressão de sua autoria).

Portanto, você não converteu nenhum elemento com direitos autorais da licença do MIT na licença GPL. Você simplesmente adicionou novos que são oferecidos apenas sob a licença GPL e liberou os elementos em um trabalho misto / combinado.

    
por 05.11.2011 / 18:33
fonte
6

Nada a acrescentar às explicações nas respostas já dadas, mas aqui estão instruções sobre como moldar os cabeçalhos dos arquivos de origem ( fonte ):

2.2 Adding GPL’d modifications to permissive-licensed files

A more complicated case occurs when a developer makes copyrightable changes to a permissive-licensed file that the developer is incorporating into a GPL’d program. Developers in this situation typically apply the GPL to their modifications. (However, it is possible for the developer instead to contribute new code under permissive terms, such as the permissive license that governs the unmodified file. We discuss that case in § 2.3.)

Even though the permissive license of the external project grants legal permission to incorporate code from that project into a GPL’d project, the developer of the GPL’d project must nonetheless comply with the notice preservation requirement in the permissive license. In a project that uses the file-by-file method, a developer who makes copyrightable modifications to a permissive-licensed file should place a new copyright notice and permission notice above the existing one and should make clear that the developer has modified the file. The top of the file will then appear as follows:

/*  
 * 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.  
 */

It is very important that the developer preserve the entire copyright notice, permission notice, and warranty disclaimer as they appeared in the original code, as required by the permissive license. We sometimes see GPL notices mixed in with permissive license notices—a confusing practice that obscures both the provenance of the code and the precise permissions that were granted by the various copyright holders listed in the notices. When different copyright holders have released their contributions under different terms, the terms that each has placed on his particular contribution should be specified. We recommend making a clear separation and using indentation, as in the example above.

This manner of organizing the notices in the file makes it convenient for developers to choose whether to contribute under permissive terms or under the GPL. If they wish to make their contributions available under permissive terms, they can add their copyright notices to the lower group. If they wish to contribute under the GPL, they can add their copyright notices at the top. Note, however, that in a single source file it is typically very difficult, and often completely infeasible, to determine which parts of such a file are covered by permissive terms. If the goal is to make additional code available under permissive terms only, the method described in § 2.3 should be used.

    
por 31.03.2018 / 00:52
fonte