È possibile modificare il codice distribuito con la licenza MIT e ridistribuirlo con la licenza GPL? [chiuso]


57

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

Per quanto posso vedere, non vi sono restrizioni al nuovo codice concesso in licenza con 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 utilizzato dal CMS.
  • Il codice consentirà ad altri moduli di modificare l' GlobalObject.ChiliHighlighteroggetto per aggiungere funzioni che sono facoltativamente chiamate da GlobalObject.ChiliHighlighter.process()quando sono definite.

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


2
Se vuoi davvero una risposta autorevole, dovresti consultare un avvocato (nella giurisdizione pertinente, ad esempio la risposta potrebbe essere diversa in Italia che negli Stati Uniti)
MarkJ

Risposte:


59

È tecnicamente legale.

La licenza MIT (Expat) pone alcune restrizioni all'utente. Questi sono un sottoinsieme della licenza GPL. Pertanto, se si riconsegna il codice ai sensi della GPL e si mantiene l'avviso del MIT, si sono soddisfatti i termini della licenza del MIT e si può ridistribuire legalmente il codice.

Si noti che non è possibile rivendicare la proprietà del copyright; dovrai riconoscere il copyright originale.

[modifica] Alcune persone non sembrano capire come funziona F / OSS in combinato disposto con le leggi sul copyright e sulla licenza. Tutto inizia con il copyright, anche solo perché è l'impostazione predefinita. Secondo la dottrina del copyright, l'autore ha il diritto di fare copie del codice sorgente. Con la licenza del MIT, questo diritto mi è concesso, così come il diritto di concederlo in modo ricorsivo ad altri. Si noti che la licenza MIT include esplicitamente il diritto alla concessione in licenza. citando:"the rights to use, copy, modify, merge, publish,distribute, sublicense, and/or sell"

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

Pertanto, la licenza del MIT mi concede il diritto esplicito di concedere in licenza i diritti e né la legge né la licenza del MIT mi vietano di concedere in licenza solo alcuni diritti. Inoltre, nessuno dei due limita la forma in cui lo faccio. Pertanto, ho il diritto innegabile di concedere una licenza GPL su quel codice.


6
@vartec: non stai modificando la licenza con cui hai ricevuto il codice. Stai creando una nuova licenza tra te e il nuovo destinatario e può avere tutti i termini che desideri. (Il nuovo destinatario può ottenere diritti aggiuntivi in ​​base alla licenza originale, ma ciò non ha alcun effetto sulla nuova licenza.) La norma prevede che un sublicente conceda una parte dei diritti sulla licenza originale. Ad esempio, una licenza secondaria raramente include il diritto alla licenza secondaria, che la licenza originale deve aver incluso per esserci una licenza secondaria.
David Schwartz,

3
@vartec: Sostanzialmente, stai sostenendo che una licenza di copyright che concede in qualche modo il diritto alla concessione in licenza non concede il diritto alla concessione in licenza. Non sono sicuro su quale base stai argomentando. Hai qualche riferimento a qualche autorità legale pertinente? Stai dicendo che un detentore del copyright non può concedere ad altri il diritto di autorizzare il suo lavoro? O pensi che la licenza del MIT non riesca in qualche modo a farlo o non abbia intenzione di farlo?
David Schwartz,

1
@ David: sembra che tu non capisca cosa significhi "sublicensing".
vartec,

1
@vartec: un collegamento a una fonte che spiega che sarebbe fantastico, perché penso che tu non capisca cosa significhi.
David Schwartz,

7
La licenza del MIT ha questo aspetto: "La nota sul copyright e la presente autorizzazione devono essere incluse in tutte le copie o parti sostanziali del Software." Ciò significa che qualsiasi fork dovrebbe essere disponibile sotto la licenza MIT. Le modifiche potrebbero essere elencate come GPL. Il fork potrebbe essere elencato come GPL + MIT. Ma il fork non può essere elencato solo come GPL - questa è una chiara violazione della licenza MIT.
Jonathan Vanasco,

26

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

La licenza MIT include tutti i diritti concessi dalla GPL e altro ancora. E mentre le persone che ricevono la tua distribuzione ricevono una licenza GPL solo per gli elementi che hai aggiunto, ricevono comunque una licenza MIT (dagli autori originali, non da te) a tutti gli elementi contenuti nell'opera che gli autori hanno offerto sotto quella licenza.

Potrebbero non saperlo, e per quanto ne so, nessuna legge ti obbliga a dirlo. Ma se "violano" la licenza GPL rispetto all'espressione protetta contenuta nell'opera che non hai creato (o che non è stata fornita da altri alla versione solo GPL), non hanno violato la tua licenza o il tuo copyright. (In realtà, dovrebbe essere piuttosto ovvio: detieni il copyright solo per l'espressione che hai creato.)

Quindi non hai convertito alcun elemento protetto da copyright dalla licenza MIT alla licenza GPL. Ne hai semplicemente aggiunti di nuovi che sono offerti solo con licenza GPL e rilasciato gli elementi in un'opera mista / combinata.


quindi, in pratica, farei questo: copiare un progetto MIT, sostituire tutto il MIT con GPL (quindi non è rimasta traccia del progetto che è stato MIT), quindi collegare ulteriormente il progetto MIT originale in alcuni luoghi importanti (non tutti file sorgente però), menzionando che il progetto base è disponibile in MIT. sarebbe ok / legale (dato che mantengo le dichiarazioni originali del proprietario del copyright)?
hoijui,

1
@hoijui È necessario lasciare intatte tutte le intestazioni della licenza del MIT e gli avvisi di autorizzazione e includerli nel nuovo progetto. E a meno che il tuo intento non sia ingannare, non vedo perché sostituiresti tutte le menzioni di "MIT". Non cambierà nulla, le parti che prendi saranno comunque autorizzate dal MIT. Basta aggiungere la propria intestazione di licenza GPL sotto di essa, sarà valida per tutte le modifiche copyrightable (cioè non solo per rinominare le variabili) che si apportano al codice sorgente. A proposito, questo è il motivo per cui la maggior parte dei progetti ha un'intestazione del copyright in ogni file.
jmiserez,

@jmiserez ok. quindi diamo un'occhiata a un file del mio progetto quindi: lascio l'intestazione MIT, apporto alcune modifiche e aggiungo un'intestazione GPL (poiché voglio che le mie modifiche siano disponibili solo sotto GPL). ora una terza parte in arrivo sul mio file dovrebbe onorare sia MIT che GPL? non ho mai visto un file con due intestazioni di licenza e penso che la maggior parte delle persone sceglierebbe semplicemente la licenza che preferisce, in quanto non sa quale sia il modo legalmente giusto. inoltre, perché devo includere il MIT, se onorando la GPL, si onora automaticamente anche il MIT?
hoijui,

@hoijui Tutti i diritti che hai sotto la licenza del MIT derivano dalla restrizione "La suddetta nota sul copyright e questa nota di autorizzazione devono essere incluse in tutte le copie o parti sostanziali del Software." Ma onestamente non sono sicuro se è necessario mantenere tutto degli avvisi, o solo uno, IANAL. Ma sono sicuro che devi includere un avviso da qualche parte. Se non lo facessi, non saresti più conforme alla licenza MIT, il che significherebbe che perderesti tutti i diritti per usare il codice nel tuo progetto. Cordiali saluti, il kernel Linux ha file con più licenze, usano le intestazioni SPDX
jmiserez

1
Com'è triste che qualcuno voglia tentare di codificare GPL che è stato costruito su una licenza MIT. Sembra essere contro tutto ciò che la licenza del MIT rappresenta.
Andrew T Finnell,

8

Nulla da aggiungere alle spiegazioni nelle risposte già fornite, ma qui ci sono le istruzioni su come modellare le intestazioni dei file di origine ( sorgente ):

2.2 Aggiunta di modifiche GPL ai file con licenza permissiva

Un caso più complicato si verifica quando uno sviluppatore apporta modifiche al copyright in un file con licenza permissiva che lo sviluppatore sta incorporando in un programma GPL. Gli sviluppatori in questa situazione applicano in genere la GPL alle loro modifiche. (Tuttavia, è possibile che lo sviluppatore fornisca invece un nuovo codice in termini permissivi, come la licenza permissiva che regola il file non modificato. Discuteremo tale caso in § 2.3.)

Anche se la licenza permissiva del progetto esterno concede l'autorizzazione legale per incorporare il codice di quel progetto in un progetto GPL, lo sviluppatore del progetto GPL deve comunque rispettare i requisiti di conservazione degli avvisi nella licenza permissiva. In un progetto che utilizza il metodo file per file, uno sviluppatore che apporta modifiche al copyright su un file con licenza permissiva dovrebbe inserire una nuova nota sul copyright e una notifica di autorizzazione sopra quella esistente e dovrebbe chiarire che lo sviluppatore ha modificato il file. La parte superiore del file verrà quindi visualizzata come segue:

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

È molto importante che lo sviluppatore conservi l'intera nota sul copyright, l'avviso di autorizzazione e il disclaimer della garanzia così come appaiono nel codice originale, come richiesto dalla licenza permissiva. A volte vediamo avvisi GPL mescolati con avvisi di licenza permissivi, una pratica confusa che oscura sia la provenienza del codice sia le autorizzazioni precise concesse dai vari detentori del copyright elencati negli avvisi. Quando diversi detentori del copyright hanno rilasciato i loro contributi in termini diversi, devono essere specificati i termini che ciascuno ha posto sul proprio contributo specifico. Raccomandiamo di fare una chiara separazione e usare il rientro, come nell'esempio sopra.

Questo modo di organizzare gli avvisi nel file rende conveniente per gli sviluppatori scegliere se contribuire in termini permissivi o in base alla GPL. Se desiderano rendere disponibili i loro contributi in base a termini permissivi, possono aggiungere le loro note sul copyright al gruppo inferiore. Se desiderano contribuire ai sensi della GPL, possono aggiungere le loro note sul copyright in alto. Si noti, tuttavia, che in un singolo file sorgente è in genere molto difficile, e spesso completamente impossibile, determinare quali parti di tale file sono coperte da termini permissivi. Se l'obiettivo è rendere disponibile il codice aggiuntivo solo in termini permissivi, si dovrebbe usare il metodo descritto nel § 2.3.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.