2009-04-26 18 views
7

Ho un'app Web commerciale che utilizza un componente in LGPL. Poiché questo componente ha un'architettura plug-in, , ora ho creato un plug per questo componente che utilizza una libreria (LGPL). Questa libreria utilizza un'origine dati che è GPL.Licenza LGPL/GPL

Ciò significa che devo liberare il codice sorgente per la mia app Web? o è solo necessario rilasciare la fonte per il plug-in?

Grazie per qualsiasi input e consiglio, e perdonami per il mio povero inglese.

risposta

1

Non sono un avvocato, ma .. finché non si distribuisce il programma (rendendolo disponibile per l'utilizzo come app web non è distribuito), non è necessario rilasciare la fonte per nulla.

+0

Vero, ma non molto applicabile a questo caso dai suoni di esso. –

10

Per essere sicuri al 100%, è necessario leggere FAQ e quindi contattare un avvocato che abbia familiarità con le licenze software. Non parlare con gli avvocati che non sono perché ti diranno di non usare nulla di gratuito/opensource solo per stare dalla parte della sicurezza, cosa che chiunque può dire.

In ogni caso, cosa intendi per "origine dati che è GPL"? Il codice sorgente GPL è collegato alla tua applicazione?

Ci sono diverse domande nelle FAQ riguardanti plug-in e GPL.

Posso rilasciare un programma non libero che è progettato per caricare un coperto da GPL plug-in?

Dipende dal modo in cui il programma richiama i suoi plug-in . Ad esempio, se il programma utilizza solo semplice fork ed exec invocare e comunicare con plug-in, quindi i plug-in sono programmi separati, quindi la licenza il plug-in rende requisiti circa il principale programma.

Se il programma collega dinamicamente i plug-in, e fanno chiamate di funzione tra loro e condividono le strutture di dati, riteniamo che formano un unico programma, che deve essere trattata come un'estensione sia della programma principale e i plug-in. In Per poter utilizzare i plug-in di GPL-coperti, il programma principale deve essere rilasciato sotto GPL o libera una licenza software compatibile con la GPL, e che i termini della GPL deve essere seguita quando il programma principale è distribuito per l'uso con questi plug-in.

Se il programma collega dinamicamente i plug-in, ma la comunicazione tra loro è limitata ad invocare la funzione 'principale' del plug-in con alcune opzioni e in attesa per farlo tornare, che è un borderline caso.

L'utilizzo della memoria condivisa per comunicare con strutture di dati complesse è praticamente equivalente al collegamento dinamico.

Come altri hanno fatto notare, applicazioni web che non sono distribuiti sembra da considerarsi per uso privato in pianura GPL (non in Affero GPL?).

Una società è in esecuzione una versione modificata versione di un programma GPL su un Web sito. La GPL dice che devono rilasciare le loro fonti modificate?

La GPL permette a chiunque di fare una versione modificata e utilizzarlo senza mai distribuirlo ad altri. Quello che sta facendo questa compagnia è un caso speciale. Pertanto, la società non deve rilasciare le fonti modificate.

E 'essenziale che le persone abbiano la libertà di fare modifiche e li usa in privato, senza mai pubblicare tali modifiche. Tuttavia, mettere il programma su una macchina server per il pubblico per parlare è difficilmente uso “privato”, per cui sarebbe legittimo richiedere il rilascio del codice sorgente in questo caso particolare. Gli sviluppatori che desiderano risolvere questo problema potrebbero voler utilizzare la GNU Affero GPL per i programmi progettati per l'utilizzo del server di rete.

+0

Suppongo che quando non si distribuisce l'origine dati GPL (driver JDBC, forse?) Con l'applicazione, e il cliente scarica l'origine dati GPL da solo e configura l'applicazione per usarlo, sarebbe considerato un uso privato sul parte del cliente quindi nessuno di voi dovrebbe rilasciare la fonte a qualcosa. L'effetto collaterale sarebbe un piccolo inconveniente per il cliente (deve ottenere la documentazione GPL separatamente dal creatore originale e mettere tutto insieme). Si prega di notare che IANAL (I Am Not A Lawyer) quindi questo non è un consiglio legale ufficiale. Consultare una persona competente. –

+0

La domanda posta a proposito di LGPL, non di GPL di cui questo commento sta parlando, farebbe un downvote, ma non voglio sprecare i miei punti. – Amala

+0

@Amala OP ha scritto "Questa libreria utilizza un'origine dati che è GPL." –

1

Se per app Web si intende che si esegue il software sul server e non lo si distribuisce ai propri utenti, quindi dovrebbe essere semplice. Nessuna distribuzione, nessuna necessità di dare via la fonte.

(potrebbe essere diverso con GPL3)

6

Questo vuol dire che devo liberare la fonte per la mia web app?

No *

o è solo necessario rilasciare il sorgente per il plug-in?

Se si distribuisce l'applicazione, allora sì, si deve distribuire anche il codice sorgente per la parte LGPL di esso.

Si sarebbe anche bisogno di fare in modo che chiunque riceva l'applicazione avrebbe avuto la possibilità di modificarlo. Questo è importante per le applicazioni compilate - si avrebbe bisogno di includere i file oggetto necessari affinché la vostra applicazione può essere ricollegato con una versione modificata del codice LGPL. Oppure usa il collegamento dinamico. L'idea è che le persone debbano essere in grado di modificare la parte del codice che è LGPL e ri-combinarla con la tua app.

Ecco alcuni dei requisiti della licenza LGPL nelle mie parole (io non sono un avvocato):

  • Ci deve essere una sorta di netta separazione tra il codice LGPL e l'altro codice. In particolare, deve essere possibile per il destinatario modificare il codice LGPL o addirittura sostituirlo completamente con un altro codice, come una versione modificata o una versione successiva della libreria. Pertanto, se si tratta di un programma compilato, il codice LGPL deve essere collegato dinamicamente (come una DLL separata o un file condiviso) in modo tale che possa essere facilmente sostituito con una libreria simile ed essere comunque interoperabile; o, se è collegata in modo statico, i file minime richieste sorgenti e/o oggetto file devono essere forniti, per consentire ricompilazione con una libreria alternativa. La parte non LGPL non può contenere alcuna parte del codice LGPL, fatta eccezione per i file di intestazione molto semplici.
  • Deve essere chiaramente indicato quale parte del codice è coperta da LGPL, inclusa la sua nota di copyright originale e il testo della LGPL (inclusa la licenza GPL su cui si basa).
  • Se il software combinato visualizza le informazioni sul copyright durante la corsa, deve apparire anche la nota sul copyright per la parte coperta da LGPL, insieme a un link alla LGPL e GPL.
  • In alcuni casi, è necessario fornire le informazioni di installazione in cui viene descritto come utilizzare una versione modificata del codice LGPLd nell'applicazione combinata.

Queste erano solo alcune restrizioni, ma la LGPL offre anche una serie di libertà, che altre licenze come GPL no. Se si sta distribuendo un lavoro combinato, che comprende qualcun altro LGPL licenza codice:

  • Non è necessario rilasciare il codice sorgente per il resto della vostra applicazione (vale a dire, la parte non LGPL). L'unica eccezione a questo è come descritto sopra: se è tutto collegato staticamente, è necessario fornire un numero sufficiente di codice (e/o file oggetto) per poterlo ricollegare a una versione alternativa o modificata del codice LGPL. Se stai collegando dinamicamente e interagendo su una normale API, non devi preoccuparti di ciò.
  • Non è necessario rilasciare il resto dell'applicazione sotto GPL. È possibile utilizzare qualsiasi licenza che si desidera, comprese le licenze proprietarie più restrittive, a condizione che, al momento della distribuzione, si seguano le regole.
  • A differenza di GPL versione 3, che vieta l'utilizzo del codice se si sta implementando la protezione della copia o il software DRM, è possibile utilizzare il codice licenza LGPL versione 3 in un'applicazione che include protezione dalla copia o DRM.

Ho scritto un analysis of the LGPL license di recente - è possibile leggere questo per ulteriori informazioni.

Inoltre, leggere lo actual text of the LGPL. Non è troppo lungo.

* hai accennato al fatto che la libreria che stai utilizzando ha un'origine dati GPL. Presumibilmente ciò significa che in realtà non distribuirai questi dati GPL con essa, solo la libreria LGPL che li usa.

+0

Oh sì, se non stai distribuendo l'applicazione ma vuoi solo usarla per tuo uso personale (sul tuo server web, per esempio), allora impazzisci. L'obbligo di distribuire codice sorgente + altri strumenti è solo se si distribuisce l'app. – thomasrutter