Aggiunta di patch AGPL a un software con licenza APACHE2 o MIT

Aug 29 2020

Mi interessa creare un fork di un software abbandonato. Il software che non è più mantenuto è rilasciato secondo i termini della licenza Apache 2. Posso creare le mie patch con una licenza meno permissiva e quindi sostituire gradualmente l'intera licenza del software?

Secondo wikipedia :

L'Apache Software Foundation e la Free Software Foundation concordano che la Licenza Apache 2.0 è una licenza software gratuita, compatibile con la GNU General Public License (GPL) versione 3, [7] il che significa che il codice sotto GPLv3 e Apache License 2.0 può essere combinato, fintanto che il software risultante è concesso in licenza con GPLv3. [8]

Posso farci dei derivati ​​... Quindi ecco come lo interpreto.

Se il mio codice è scritto in Python, posso riutilizzare il software abbandonato come modulo (rilasciato sotto APACHE-2) e aggiungere il mio wrapper sotto GPL-3?

Inoltre, la licenza APACHE-2 dice:

È possibile aggiungere la propria dichiarazione di copyright alle modifiche e fornire termini e condizioni di licenza aggiuntivi o diversi per l'uso, la riproduzione o la distribuzione delle modifiche o per qualsiasi Opera derivata nel suo insieme, a condizione che il proprio utilizzo, riproduzione e distribuzione di altrimenti l'Opera è conforme alle condizioni stabilite nella presente Licenza

Allora perché non AGPL?

C'è una differenza nel caso in cui abbandonare il software sia concesso in licenza con MIT?

Risposte

3 MadHatter Aug 30 2020 at 06:32

Hai trovato software non mantenuto, distribuito sotto Apache2. Desideri aggiornarlo e distribuire il lavoro derivato modificato sotto GPLv3 / AGPLv3 (non sei chiaro su quale). Vuoi sapere se è permesso.

La mia convinzione, di cui ho scritto altrove , è che si possa prendere un pezzo di software esistente con la licenza A (che consente la ridistribuzione e le versioni modificate), e modificarlo e rilasciarlo secondo i requisiti combinati più onerosi delle licenze A e B, a condizione che nulla in A vieti di aggiungere i requisiti extra di B, e nulla in B vieti i requisiti già applicati da A. Si noti che questa non è una doppia licenza, dove l'utente può scegliere quale licenza applicare; questo significa che entrambe le serie di requisiti si applicano contemporaneamente .

La GPLv3 proibisce esplicitamente requisiti aggiuntivi oltre ai propri, quindi il paragrafo precedente è soddisfatto solo per le licenze A e GPLv3 se i requisiti di A sono un sottoinsieme puro dei requisiti della GPLv3. Questa viene anche definita licenza A essendo compatibile con GPLv3. Apache2 è una tale licenza , così come il MIT .

Quindi la mia comprensione (che non è universalmente ritenuta; vedi il post collegato su law.se) è che puoi creare un'opera derivata e rilasciarla sotto GPLv3, o AGPLv3, a condizione che tu soddisfi anche i requisiti di s4 della licenza Apache (includere una copia del testo della licenza e qualsiasi file NOTICE preesistente, mantenere le dichiarazioni di copyright esistenti e chiarire quali file sono stati modificati). La stessa analisi si applica se A = MIT, a condizione di soddisfare i requisiti ancora meno onerosi del MIT.

Ti esorto a non pensare a questo in termini di applicazione di singoli " file di patch GPLv3 " fino a quando il lavoro non sarà completamente sostituito, come apparentemente fai nel primo paragrafo della tua domanda. A meno che tu non stia effettivamente distribuendo il lavoro come + toppe originali, questo incoraggia una visione del copyright da " mattoni colorati ", che penso sia una visione inutile. Invece, non appena si apportano modifiche alla base di codice, l'intera cosa è un'opera derivata in termini di copyright e può essere distribuita su qualsiasi set di requisiti consentito.

2 BartvanIngenSchenau Aug 30 2020 at 06:32

Se il mio codice è scritto in Python, posso riutilizzare il software abbandonato come modulo (rilasciato sotto APACHE-2) e aggiungere il mio wrapper sotto GPL-3?

Poiché le due licenze sono compatibili, puoi effettivamente utilizzare il codice con licenza Apache-2 come modulo nel tuo codice con licenza GPLv3.

Lo stesso vale quando si utilizza AGPLv3 invece della GPLv3 o quando il modulo di terze parti utilizza la licenza MIT.

Nota che il codice Apache o MIT non deve nemmeno essere abbandonato per questo. Le licenze lo consentono anche mentre l'altro progetto è ancora in fase di sviluppo attivo.