Reflection e LGPL

3

Semplicemente, se uso la reflection per aggiungere metodi o funzionalità a una classe definita in una libreria LGPL a cui sto collegando, conta come una modifica alla libreria esistente e il mio codice riflettente deve essere rilasciato sotto la LGPL?

    
posta Magnus 29.02.2012 - 17:23
fonte

2 risposte

4

link

Direi che riflettere sulla lib LGPL è un "lavoro combinato" e quindi soggetto alle limitazioni descritte nella licenza:

A “Combined Work” is a work produced by combining or linking an Application with the Library. The particular version of the Library with which the Combined Work was made is also called the “Linked Version”.

The “Minimal Corresponding Source” for a Combined Work means the Corresponding Source for the Combined Work, excluding any source code for portions of the Combined Work that, considered in isolation, are based on the Application, and not on the Linked Version.

The “Corresponding Application Code” for a Combined Work means the object code and/or source code for the Application, including any data and utility programs needed for reproducing the Combined Work from the Application, but excluding the System Libraries of the Combined Work.

Quindi, date queste definizioni (dove il tuo riflettere nella libreria è equivalente al collegamento con esso e il codice che fa il riflesso è la fonte minima corrispondente) devi seguire questa sezione:

  1. Combined Works.

You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications, if you also do each of the following: ...

d) Do one of the following:

0) Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.

1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user's computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version.

quindi direi (Nota: IANAL) dovresti rilasciare anche la parte di codice riflettente della tua app sotto LGPL, anche se la sezione della tua app che utilizza quel codice può ancora essere proprietaria.

    
risposta data 29.02.2012 - 17:41
fonte
2

Direi che non è affatto diverso dalla creazione di una nuova classe estendendo una classe base in una libreria LGPL. Stai solo facendo l'introspezione in fase di esecuzione invece del tempo di compilazione. Pertanto, è un lavoro derivato , che non richiede la divulgazione del codice sorgente.

    
risposta data 29.02.2012 - 18:49
fonte

Leggi altre domande sui tag