Supponiamo di avere un progetto java opensource e di avere al suo interno una classe java chiamata ClasseOpenSource.java.
Supponiamo che un'altra persona, il cattivo, stia facendo un progetto proprietario.
Nel codice del cattivo ci sono i seguenti 3 casi:
1) class ClasseProprietaria extends ClasseOpenSource {} 2) class ClasseProprietaria { Object o = Class.forName("ClasseOpenSource").newInstance(); } (esempio jdbc o plugin) 3) class ClasseProprietaria { ClasseOpenSource c = new ClasseOpenSource(); }
Supponiamo ora che il codice open source sia LGPL, GPL o AGPL.
In quale combinazione caso / licenza e possibile ridistribuire il software?
A me viene in mente:
LGPL: 1,2,3 GPL: 2? AGPL: ?
Aiuti?
Il 12 gennaio 2012 12:38, Davide d@vide.bz ha scritto:
Supponiamo di avere un progetto java opensource e di avere al suo interno una classe java chiamata ClasseOpenSource.java.
Supponiamo che un'altra persona, il cattivo, stia facendo un progetto proprietario.
Nel codice del cattivo ci sono i seguenti 3 casi:
- class ClasseProprietaria extends ClasseOpenSource {}
- class ClasseProprietaria { Object o =
Class.forName("ClasseOpenSource").newInstance(); } (esempio jdbc o plugin) 3) class ClasseProprietaria { ClasseOpenSource c = new ClasseOpenSource(); }
Supponiamo ora che il codice open source sia LGPL, GPL o AGPL.
In quale combinazione caso / licenza e possibile ridistribuire il software?
A me viene in mente:
LGPL: 1,2,3 GPL: 2? AGPL: ?
e' sempre redistribuibile, ma lo e' nella licenza open source di partenza...
se estendi un LGPL, lo rilasci in LGPL... se lo USI, lo rilasci in LGPL: che la parte in piu' la puoi rilasciare in ALTRA licenza e' un fatto ben diverso
cya
Premetto che non sono un esperto di licenze e tantomeno un avoocato o persona altrimenti istruita in tematiche legali:
On 01/12/2012 12:42 PM, Diego Zanga wrote:
Il 12 gennaio 2012 12:38, Davided@vide.bz ha scritto:
Supponiamo di avere un progetto java opensource e di avere al suo interno una classe java chiamata ClasseOpenSource.java.
Supponiamo che un'altra persona, il cattivo, stia facendo un progetto proprietario.
Nel codice del cattivo ci sono i seguenti 3 casi:
- class ClasseProprietaria extends ClasseOpenSource {}
- class ClasseProprietaria { Object o =
Class.forName("ClasseOpenSource").newInstance(); } (esempio jdbc o plugin) 3) class ClasseProprietaria { ClasseOpenSource c = new ClasseOpenSource(); }
Supponiamo ora che il codice open source sia LGPL, GPL o AGPL.
In quale combinazione caso / licenza e possibile ridistribuire il software?
A me viene in mente:
LGPL: 1,2,3 GPL: 2? AGPL: ?
e' sempre redistribuibile, ma lo e' nella licenza open source di partenza...
Su questo punto non sono d'accordo. In particolare la LGPL si distingue dalla GPL sopratutto in questo punto. In particolare per 2) e 3) non è richiesto che il software venga rilasciato come LGPL. Dubito che ci sia una differeneza sostanziale tra 2) e 3). Per quanto riguarda la 1), penso che la LGPL richieda, che la classe derivata venga distribuita come LGPL. Esiste poi un altra variante, che è la GPL linking exception, usata da GNU Classpath, http://en.wikipedia.org/wiki/GPL_linking_exception. Una licenza simile vale anche per la libreria C++ che accompagna G++-
se estendi un LGPL, lo rilasci in LGPL... se lo USI, lo rilasci in LGPL: che la parte in piu' la puoi rilasciare in ALTRA licenza e' un fatto ben diverso
cya _______________________________________________ http://lists.lugbz.org/cgi-bin/mailman/listinfo/lugbz-list
Commenti?
Peter
Il 13 gennaio 2012 12:16, Peter Hopfgartner peter.hopfgartner@r3-gis.com ha scritto:
Per quanto riguarda la 1), penso che la LGPL richieda, che la classe derivata venga distribuita come LGPL.
Ciao, su questo punto ho trovato info diverse. Ho trovato questo documento che è purtroppo però un po' vecchio:
http://www.gnu.org/licenses/lgpl-java.html
e qui in fondo dice:
The only difference between Java and C from the LGPL's perspective is that Java is an object-oriented language, supporting inheritance. The LGPL contains no special provisions for inheritance, because none are needed. Inheritance creates derivative works in the same way as traditional linking, and the LGPL permits this type of derivative work in the same way as it permits ordinary function calls.
Se capisco fino in fondo questa frase inglese ... l'ereditarietà è vista come un link tanto come una chiamata a funzione.
Supponiamo di avere un progetto java opensource e di avere al suo interno una classe java chiamata ClasseOpenSource.java.
Supponiamo che un'altra persona, il cattivo, stia facendo un progetto proprietario.
Nel codice del cattivo ci sono i seguenti 3 casi:
- class ClasseProprietaria extends ClasseOpenSource {}
- class ClasseProprietaria { Object o =
Class.forName("ClasseOpenSource").newInstance(); } (esempio jdbc o plugin) 3) class ClasseProprietaria { ClasseOpenSource c = new ClasseOpenSource(); }
Supponiamo ora che il codice open source sia LGPL, GPL o AGPL.
In quale combinazione caso / licenza e possibile ridistribuire il software?
A me viene in mente:
LGPL: 1,2,3 GPL: 2?
Qui MySQL AB (ora Oracle) dice NO invece: http://www.mysql.com/about/legal/licensing/commercial-license.html
AGPL: ?
Aiuti?
Poi e` una discussione puramente accademica. Se Oracle e le aziende per cui lavoriamo tu o io (peggio, perche` sono self-employed :) non sono d'accordo sull'interpretazione di una licenza, chi pensi che abbia l'ultima parola?
Bye, Chris.