[ImoLUG] Licensing ... Apache2 vs GPLv2

Riccardo Govoni ☢ battlehorse@gmail.com
Dom 10 Maggio 2009 20:39:18 CEST


Ciao imolug,
come qualcuno sa, nel tempo libero sviluppo un software rilasciato
sotto licenza Apache2. Tale software ha dipendenze nei confronti di un
certo numero di librerie, rilasciate con varie licenze, tra cui MIT e
LGPLv2 e, soprattutto GPL v2.

Ora, vorremmo 'regolarizzare' la nostra posizione e capire se e'
possibile avere codice Apache2 che include codice GPLv2... da quello
che ho capito direi 'no', ma ho le idee piuttosto confuse. Vorrei
avere la vostra opinione in merito, preferibilmente supportata da casi
precedenti e/o in modo scritto chiaramente da qualche parte. Non
voglio aprire una discussione sulla situazione, mi serve solo un
chiaro giudizio "si perche' ..." o "no perche' ...".

Il software che sviluppo non _modifica_ in alcun modo il codice GPL da
cui dipende, ma si limita a interfacciarvisi attraverso le API da
questo esposte. Tecnicamente, il codice GPL non viene nemmeno incluso
nei nostri sorgenti. Quindi potrei dire che il mio codice, per il suo
corretto funzionamento, "necessita" di ulteriori componenti, i quali
siano conformi a certe API, guardacaso identiche a quelle esposte da
note librerie GPL.

Chiaro che, al momento del deployment, mi aspetto che nel 99.9999% dei
casi  il codice verra' integrato esattamente con le suddette librerie
GPL, ma questo e' un altro discorso.

Detto cio', posso rilasciare codice con queste caratteristiche con
licenza Apache2 ?  Posso creare un prodotto (servizio web) che
utilizza il suddetto codice Apache2 _e_ librerie GPL ?
Mi viene da dire "forse" nel primo caso e "no" nel secondo. Il
problema e' che molto di quanto trovato si riferisce al rapporto con
il software proprietario, non alla relazione con un'altra licenza open
(seppur piu' restrittiva ).

Per chi interessa, queste le mie fonti...
- la GPLv2 e' strong-copyleft ( al contrario di weak-copyleft, secondo
la definizione di http://en.wikipedia.org/wiki/Copyleft ): ""Weak
copyleft" licenses are generally used for the creation of software
libraries, to allow other software to link to the library, and then be
redistributed without the legal requirement for the work to be
distributed under the library's copyleft license. Only changes to the
weak copylefted software itself become subject to the copyleft
provisions of such a license, not changes to the software that links
to it.".

La differenza tra le due mi sembra essere esattamente la possibilita'
di avere dipendenze del tipo che ho descritto nel mio caso.

- La pagina http://www.gnu.org/philosophy/why-not-lgpl.html  sembra
indicare le stesse cose (anche se si riferisce al software
proprietario): "The GNU Project has two principal licenses to use for
libraries. One is the GNU Lesser GPL; the other is the ordinary GNU
GPL. The choice of license makes a big difference: using the Lesser
GPL permits use of the library in proprietary programs; using the
ordinary GPL for a library makes it available only for free programs."

- Il grafico qui (
http://www.fsf.org/licensing/licenses/quick-guide-gplv3.html ), questa
pagina ( http://www.apache.org/licenses/GPL-compatibility.html ) e
questa ( http://www.oss-watch.ac.uk/resources/apache2.xml ), mi
suggeriscono che non posso mischiare Apache2 e GPLv2, anche se si
tratta di semplice linking di librerie.

Mi sembra che il tutto ruoti attorno alla definizione di 'derivative
work' e non sono in grado di capire se il mio progetto rappresenta un
'derivative work' nel rispetto del codice GPL da cui dipende, o meno.
Direi di no, ma, al solito, sono incerto.

/R.


Maggiori informazioni sulla lista ImoLUG