Newsgroup: it.comp.software.libero
Titolo: Combinare licenze

Salve a tutti, scusate se sarò prolisso nello spiegare il mio problema.
La ditta per cui lavoro sviluppa un software composto di vari moduli più 
o meno indipendenti bastati su un'unico framework sviluppato 
internamente. Si tratta di applicazioni web che vengono installate 
all'interno di un'unica webapp su servlet container (tomcat). Ogni 
cliente può avere una diversa combinazione di moduli installati 
(rispettando alcune dipendenze).
Fino ad ora si tratta di software closed-source anche se sfruttiamo 
molte librerie con licenze tipo LGPL.
Ora uno dei moduli avrebbe l'esigenza di includere una applet basata su 
un'applicazione java rilasciata come GPL.
Leggendo vari commenti relativi alla GPL si trovano termini come 
"eseguibile" e "linked" che in java non hanno molto senso, quindi ho una 
serie di dubbi.
Mi è chiaro che la versione modificata della applet deve essere 
rilasciata obbligatoriamente come GPL ma non mi è chiaro se questo basta.
La nuova applet richiede alcuni jar: anche questi devono essere rilasciati?
La nuova applet interagisce con l'applicazione web ed in particolare con 
il modulo da cui viene lanciata. Tale modulo deve essere rilasciato?
Se si immagino che anche il framework debba essere rilasciato come GPL 
giusto?
Fin qui' si tratterebbe di anticipare un progetto che avevamo già in 
mente, quindi non si tratta di grossi problemi, se non che ci sono altri 
dubbi.
Tutte le librerie utilizzate dagli "oggetti" rilasciati come GPL (fin 
quì framework e modulo che interagisce con la applet) devono avere una 
licenza GPL compatibile giusto? Si tratta di diverse decine di librerie 
open source e la verifica richiederà un certo sforzo considerando che 
alcune hanno licenze "particolari".
Se ho ben capito invece gli altri moduli da noi prodotti e che non 
dipendono dal modulo che utilizza la applet non hanno la necessità di 
essere rilasciati come GPL, giusto?
Grazie a chiunque sappia chiarire qualche dubbio o sappia indicarmi dove 
informarmi meglio.
Andrea Polci

 informarmi meglio.
Ciao,
Paolo

No, vale il discorso di prima.
Pablo, quel che scrivi è vero se fai girare una applet sul tuo sistema
Java, come se fai girare Emacs su un sistema Sun: si può fare perché le
librerie sono quelle di sistema.  Ma se distribuisci tutto insieme non è
più ovvio che sia così.  In particolare, distribuire un sistema che
contiene un programma Java GPL e delle librerie jar proprietarie è in
generale una violazione della GPL.
Ci possono essere casi particolari di librerie caricate dinamicamente
con interfacce standard o comunque molto semplici che possono essere
considerati al limite del legittimo, ma anche in questo caso stabilire
se siano di qua o di là dal limite non è ovvio e va discusso caso per
caso.

 caso.
La mia impressione finora è che la formulazione della GPL sia molto 
difficile da applicare a contesti come quello Java dove c'è una 
sovrapposizione di virtual machine, librerie standard, application 
server, e decine di altri strati software, il tutto linkato dinamicamente.
Andrea

dinamicamente.
Sì, è vero.  Per questo cercavo di chiarire almeno i pochi punti fermi:


 librerie jar proprietarie è in generale una violazione della GPL.
Facciamo un esempio molto concreto (il mio) cercando di semplificare al 
massimo (scusate l'esempio è complicato e un po' lungo).
Abbiamo i seguenti componenti:
L: una serie di librerire con licenza GPL-compatibile (solitamente LGPL, 
APL o simili)
F: un framework sviluppato internamente e che utilizza L. Il Framework è 
sia una API che un prodotto che può essere installato a sé (fornisce 
alcuni servizi tipo un rudimentale SSO).
PX: un prodotto sviluppato tramite sulla base del framework F.
A: un'applet richiesta dal prodotto PX (mettiamo un editor di 
configurazione) e basata su un altro programma java con licenza GPL. 
Interagisce con PX (visto che ne è l'editor di configurazione)
P1, P2, P3...: una serie di altri moduli sviluppati sulla base di F che 
possono avere dipendenze fra loro ma che non dipendono mai da PX.
Il cliente scarica (attualmente dopo averli acquistati) alcuni dei 
prodotti più il framework (scaricato separatamente) oltre ad un 
programma che si occupa di combinare tutti i pacchetti in un'unico war e 
fare l'installazione.
Alla fine ci sarà un'unica webapp con tutti i prodotti acquistati 
integrati insieme.
Quello che ho capito finora è:
- A deve essere obbligatoriamente rilasciato come GPL. Nessun problema
- PX non sono sicuro che debba essere rilasciato come GPL. Si finche è 
distribuito insieme ad A, ma se scorporassimo A? In fondo l'applet è un 
programma a sé stante anche se interagisce (tramite chiamate http) con 
l'applicativo web PX. Mi sembra tanto il caso di un programma GPL che 
accede ad un DB Oracle.
- Se PX deve essere rilasciato come GPL, anche F deve essere rilasciato 
come GPL? Credo di si, sbaglio?
- Gli altri prodotti P1, P2, P3 non dipendendo in alcun modo da PX e 
soprattutto dall'applet A (né viceversa) credo che non debbano essere 
rilasciati come GPL. Sbaglio?

 librerie jar proprietarie è in generale una violazione della GPL.
In effetti sembra coincidere con ciò che si evince (a fatica) dalle FAQ 
della GPL.
Però da questo punto di vista tutti i package di java erano proprietari, 
fino a quest'anno, e questo non voleva dire che non si potessero fare 
applicazioni Java non GPL.
Ciao,
Paolo

Pablo Xon <pabl...@NIENTESPAMconcavi.net>:

È vero, per il motivo che dicevo prima: su qualunque sistema moderno la
macchina virtuale java e le sue librerie sono parte del sistema.  Tu
distribuisci il programma, per cui questo a mio parere rientra nella
norma GPLv2 (punto 3):
 «In ogni caso non  è necessario che il codice sorgente
fornito  includa  nulla  che  sia normalmente  distribuito  (in  forma
sorgente o in formato binario) con i principali componenti del sistema
operativo sotto cui viene  eseguito il Programma (compilatore, kernel,
e così via), a meno che tali componenti accompagnino l'eseguibile.»

massimo (scusate l'esempio è complicato e un po' lungo).
Ci provo un'altra volta: ora è tardi è sono stanco, scusa :)

rilasciati come GPL. Sbaglio?
Dipende dalla distribuzione, come sopra.