È possibile modificare il codice distribuito sotto la licenza MIT e ridistribuirlo sotto la licenza GPL?

48

È possibile modificare il codice del plug-in Chili , che ha la sua ultima versione a luglio 2008, e è concesso in licenza con la licenza MIT, per poi acquistarlo sotto licenza GPL?

Per quanto posso vedere, non ci sono restrizioni sul nuovo codice concesso sotto la stessa licenza. È davvero così, o c'è un numero minimo di modifiche?

Nel mio caso, cambierei il plugin jQuery nel normale codice Javascript che viene eseguito in un CMS. Ciò significa essenzialmente che, tra le altre cose:

  • Il codice non utilizzerà lo spazio dei nomi "ChiliBook".
  • La funzione non verrà invocata come $($element).chili() , ma come GlobalObject.ChiliHighlighter.process($jquery_element) , dove "GlobalObject" è un oggetto JavaScript usato dal CMS.
  • Il codice consentirà ad altri moduli di modificare l'oggetto GlobalObject.ChiliHighlighter per aggiungere funzioni chiamate facoltativamente da GlobalObject.ChiliHighlighter.process() quando vengono definite.

In alternativa, poiché il repository che sto utilizzando mi consente di includere codice non concesso in licenza con licenza GPL 2 o superiore quando il codice non viene più mantenuto, il plug-in potrebbe non essere più mantenuto, poiché la sua ultima versione è stata rilasciata per tre anni fa?

    
posta kiamlaluno 05.09.2011 - 12:04
fonte

3 risposte

50

È tecnicamente legale.

La licenza MIT (Expat) pone alcune restrizioni su di te. Questi sono un sottoinsieme della licenza GPL. Pertanto, se rilasci il codice sotto GPL, e tieni la notifica del MIT, allora hai soddisfatto i termini della licenza MIT e potresti ridistribuire legalmente il codice.

Nota che non puoi rivendicare la proprietà del copyright; dovrai riconoscere il copyright originale.

[modifica] Alcune persone non sembrano capire come F / OSS funzioni in concomitanza con le leggi sul copyright e sulle licenze. Tutto inizia con il copyright, se non altro perché è l'impostazione predefinita. Sotto la dottrina del copyright, l'autore ha il diritto di fare copie del codice sorgente. Sotto la licenza del MIT, questo diritto mi è concesso, così come il diritto di concederlo ricorsivamente agli altri. Nota che la licenza MIT esplicitamente include il diritto alla sub-licenza. Citando: "the rights to use, copy, modify, merge, publish,distribute, sublicense, and/or sell"

Quando concedo in sublicenza il codice, non posso concedere diritti che inizialmente non avevo. Nel caso della GPL, sono esplicitamente vietato concedere in licenza solo alcuni diritti. Ma né per legge né per la licenza del MIT ho l'obbligo di cedere in licenza tutti i diritti nel loro insieme.

Pertanto, la licenza del MIT mi garantisce il diritto esplicito di concedere in licenza i diritti, e né la legge né la licenza del MIT mi proibiscono di concedere in sublicenza solo i diritti di alcuni . Inoltre, non limita la forma in cui lo faccio. Pertanto, ho il diritto innegabile di concedere una sublicenza GPL su quel codice.

    
risposta data 05.09.2011 - 14:15
fonte
23

Sì. Ma l'effetto potrebbe non essere quello che pensi sia.

La licenza MIT include tutti i diritti che la GPL offre e altro ancora. E mentre le persone che ricevono la distribuzione ricevono solo una licenza GPL per gli elementi che hai aggiunto, ricevono comunque una licenza MIT (dagli autori originali, non da te) a qualsiasi elemento contenuto nel lavoro che gli autori hanno offerto con tale licenza.

Potrebbero non saperlo e, per quanto ne so, nessuna legge ti obbliga a dirglielo. Ma se "violano" la licenza GPL rispetto all'espressione protettiva contenuta nel lavoro che non hai creato (o che non è stato contribuito da altri alla versione solo GPL), non hanno violato la tua licenza o il tuo copyright. (In realtà, dovrebbe essere piuttosto ovvio: si detiene solo il copyright per l'espressione che hai creato.)

Quindi non hai convertito alcun elemento che copra il copyright dalla licenza MIT alla licenza GPL. Hai semplicemente aggiunto dei nuovi che sono offerti solo sotto la licenza GPL e hanno rilasciato gli elementi in un lavoro misto / combinato.

    
risposta data 05.11.2011 - 18:33
fonte
6

Nulla da aggiungere alle spiegazioni nelle risposte già fornite, ma ecco le istruzioni su come modellare le intestazioni dei file di origine ( 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.

    
risposta data 31.03.2018 - 00:52
fonte

Leggi altre domande sui tag