Ho creato un programma basato su un progetto LGPL e non sono autorizzato a pubblicare il codice sorgente


13

Pensavo che LGPL fosse una licenza permissiva, proprio come MIT, BSD o Apache. Ma oggi ho letto che è consentito solo il collegamento a LGPL (librerie, ecc.) Da codice a codice chiuso - a parte questo, è copyleft - quindi devo pubblicare codice basato su un programma LGPL.

Ho creato un programma per il mio datore di lavoro basato su un programma LGPL, ma che presenta notevoli modifiche. Certo, non mi è permesso mettere quel codice sorgente modificato là fuori. Allo stesso tempo, devo distribuirlo (giusto?).

Quindi mi chiedo se esiste una soluzione alternativa a questo, in modo da poter mantenere questa fonte chiusa (vorrei poter pubblicare la fonte) - qualche suggerimento?

La mia idea: posso mettere la maggior parte delle funzioni dell'app LGPL originale in una libreria esterna, scrivere l'eseguibile core da zero, ma fare riferimento alla libreria per tutte le funzioni che non ho modificato?

Attualmente, tutto è in un file .jar (è Java / Swing). se pensi che la mia idea sia legalmente / tecnicamente fattibile, quanto sforzo sarebbe separare ciò che ho scritto e qual è l'originale? Non sono il più esperto di Java.


In questo post , il ragazzo dice "Inoltre la LGPL può essere aggirata semplicemente inserendola in una nuova dll e usando delegati o interfacce per chiamarla dal codice sorgente LGPLed". - Qualcuno può elaborare un po 'di più come posso farlo con l'app Java originale?

16
questo non è un sito Web legale , non darei consigli su questioni legali da chiunque qui, tranne il consiglio di andare a ottenere una consulenza legale reale ovviamente.

5
La LGPL si occupa principalmente della distribuzione e non ci hai fornito alcuna informazione sul modo in cui prevedi di distribuire questo codice. È improbabile che la domanda ottenga risposte accurate fino a quando non lo fai. In ogni caso, ribadirò che non dovresti consultare il legale da Internet .
Rein Henrichs,

Credo che ora comprendo LGPL abbastanza bene in termini di legalità. Quindi sto davvero chiedendo a voi ragazzi su come farlo funzionare tecnicamente - anche se ovviamente avete ragione - in caso di dubbio consulterò un avvocato.
Esuus,

Non dici quale software stai utilizzando, ma alcuni fornitori di software GPL / LGPL (e altri) forniscono licenze commerciali per le persone nella tua situazione.
Jaydee,

Risposte:


13

Prima di tutto, prendere una consulenza legale qui (come in: internet) non è una buona idea.

In secondo luogo, e questo sono solo io che parlo, non un avvocato, avresti dovuto pensarci prima di prendere un programma LGPL e modificarlo per il tuo datore di lavoro.

Se la licenza fosse qualcosa che potresti ignorare solo perché non ti è piaciuta, non avrebbe molto senso averne una adesso?

Se tu e / o il tuo datore di lavoro non siete disposti a pubblicare il codice sorgente con le vostre modifiche, dovete smettere di usare quel codice LGPL e sbarazzarvi di esso.

Ancora una volta, sono solo io a parlare.

Chiedi consiglio a un vero avvocato.


In risposta alla tua domanda sull'elusione della licenza aggiungendo il codice a una DLL, suppongo che funzionerebbe nel modo seguente.

Quello che faresti sarebbe cambiare il programma originale abbastanza da renderlo in grado di chiamare funzioni in librerie esterne. Dovresti farlo senza rendere quel pezzo di codice specifico per le tue esigenze, librerie, nomi di funzioni, ecc.

Tali modifiche vengono quindi pubblicate, secondo i requisiti di licenza.

Quindi crei la tua libreria esterna con il tuo codice proprietario e chiedi a quel programma di caricarlo ed eseguirlo, usando le modifiche che hai apportato ad esso.

Non conoscendo l'intera estensione della licenza LGPL, non posso dire se ciò sia sufficiente per evitare di dover pubblicare la tua biblioteca, anche se sospetto che lo farà.

Tuttavia, ancora una volta ...

Chiedi consiglio a un avvocato


4
Si noti che FSF, che ha scritto la famiglia di licenze GPL, considera il collegamento dinamico per creare un'opera derivata, quindi potrebbe non funzionare. (Altre persone pensano che la FSF sia sbagliata.) Non penso che ci sia una determinazione legale, anche se potrei sbagliarmi.
David Thornley,

Veramente? Sono convinto che tu ne sappia di più di me, David, ma Wikipedia afferma che puoi persino collegarti dinamicamente a librerie con licenza GPL senza dover pubblicare sotto GPL: "Ad esempio, l'eccezione di collegamento GPL consente programmi che non si autorizzano ai sensi della GPL per collegarsi alle biblioteche autorizzate ai sensi della GPL senza essere quindi soggetto ai requisiti GPL. " Quindi ora mi chiedo quale sia la differenza tra GPL e LGPL: pensavo che solo LGPL lo permettesse.
Esuus,

2
@Dave: la grande squadra legale del mio datore di lavoro non sarebbe d'accordo. Sono molto aggressivi nel proteggere la loro proprietà intellettuale e ci è esplicitamente vietato collegare il nostro codice GPL al nostro a meno che non lo distribuiamo sotto GPL. Dove hai trovato quell'eccezione? Non lo vedo in GPLv2 o v3. Sembra che ti riferisca a un'eccezione di collegamento che non fa parte della GPL vaniglia. I proprietari del copyright possono aggiungere un'eccezione di collegamento al loro codice GPL a loro discrezione, tuttavia. Consultare il proprio team legale è davvero la cosa migliore da fare.
Vuoto

5
Non mi fiderei di Wikipedia su questo. Per quanto ne sai, la voce è scritta da un quattordicenne che ha letto delle licenze il fine settimana precedente. Chiedi un vero consiglio. Oppure, puoi scommettere sulla fattoria e sperare che la tua azienda non abbia problemi. Basta che funzioni.
Lasse V. Karlsen,

Il collegamento @Dave alla GPL è un problema. Per quanto ne so, questo è stato uno dei motivi principali per cui FreeBSD ha abbandonato GCC a favore di Clang / LLVM .
Legolas,

4

La maggior parte delle librerie open source pubblicate sotto licenza LGPL o simili, almeno abbastanza buone da usare nei tuoi progetti, sono costruite usando il principio aperto / chiuso: http://en.wikipedia.org/wiki/Open/closed_principle .

Dovresti essere in grado di riformattare il tuo codice in modo tale che l'applicazione sia collegata alla libreria LGPL e che tutte le estensioni siano contenute nel codice dell'applicazione chiuso.


Bene, il codice LGPL che ho usato è un'applicazione, non una libreria ... quindi la domanda è se posso trasformarlo in una libreria o - come suggeriva Lasse - trasformare il mio codice in una libreria e mantenere il resto LGPL / aperto
Esuus

1
@Dave: LGPL era noto come Library GPL. Non ho visto applicazioni che usano questa licenza. Cosa stavi usando, se non è un segreto?
Olaf,

La FSF ora la chiama GPL minore. L'unico uso che mi viene in mente in questo momento per le app è la possibilità di collegarmi in librerie proprietarie e simili.
David Thornley,

È interessante notare che sia Mozilla che OpenOffice.org sono concessi in licenza sotto LGPL.
Esuus,

@Dave: Poi sono con @David Thornley. Mozilla fornisce mezzi per creare plug-in personalizzati che possono essere in codice chiuso. Non ho familiarità con OpenOffice, ma scommetto che lo fanno. L'applicazione LGPL in uso fornisce una sorta di estensione delle funzionalità, come l'aggiunta di plug-in o il linguaggio di script? Puoi usare quel meccanismo per il tuo codice?
Olaf,

2

Stesso disclaimer: IANAL.

Qualcosa che nessun altro ha menzionato finora è che anche se si separa il codice, è comunque necessario distribuire il codice sorgente alle parti LGPL, o almeno fornire informazioni su dove possono essere scaricati.

L'unico modo per aggirare questo è di non distribuirli in primo luogo.


2

Non penso che tu abbia bisogno di un avvocato per capire che cercare di aggirare una licenza non è una buona cosa. Il buon senso è abbastanza.

Puoi invece contattare l'autore originale del programma LGPL e chiedere / acquistare una licenza diversa e proprietaria.

Le uniche altre alternative sono rilasciare la fonte o riscriverla completamente.


1

IANAL, TINLA, ecc.

Pensavo che LGPL fosse una licenza permissiva, proprio come MIT, BSD o Apache. Ma oggi ho letto che è consentito solo il collegamento a LGPL (librerie, ecc.) Da codice a codice chiuso - a parte questo, è copyleft - quindi devo pubblicare codice basato su un programma LGPL.

Sì, la LGPL richiede che tu renda disponibile il codice sorgente a chiunque riceva una copia dell'opera, o che tu debba distribuire la tua opera in una forma in cui i destinatari del software possano sostituire la tua versione della LGPL funzionerebbe con una nuova versione. In entrambi i casi, tutte le modifiche alla parte LGPL dell'opera devono essere disponibili per tutti i destinatari dell'opera.

Ho creato un programma per il mio datore di lavoro basato su un programma LGPL, ma che presenta notevoli modifiche. Certo, non mi è permesso mettere quel codice sorgente modificato là fuori. Allo stesso tempo, devo distribuirlo (giusto?).

Corretta. La licenza impone che tutti i destinatari del software abbiano accesso al codice sorgente.

La mia idea: posso mettere la maggior parte delle funzioni dell'app LGPL originale in una libreria esterna, scrivere l'eseguibile core da zero, ma fare riferimento alla libreria per tutte le funzioni che non ho modificato?

Ciò può costituire un'opera derivata e ti verrà comunque richiesto di distribuire tutti gli script di build che riducono il programma a una libreria.

Attualmente, tutto è in un file .jar (è Java / Swing). se pensi che la mia idea sia legalmente / tecnicamente fattibile, quanto sforzo sarebbe separare ciò che ho scritto e qual è l'originale? Non sono il più esperto di Java.

Java aggiunge tutta una serie di nuovi problemi alla LGPL, dal momento che non è chiaro cosa costituisca un collegamento "statico" e "dinamico". Poiché le eccezioni della LGPL sulla GPL si basano su tale concetto, nella maggior parte dei casi la LGPL è realmente equivalente alla GPL. Dovrai consultare il team legale dell'azienda per rispondere a qualsiasi domanda che sorgerà.

Il mio consiglio è che se qualcuno al di fuori della tua azienda avrà accesso al programma, scartalo e ricomincia. Se non è possibile soddisfare i requisiti della licenza, non è possibile distribuirla affatto.

Se il programma sarà disponibile solo all'interno dell'azienda, è necessario solo rendere la fonte disponibile per i dipendenti dell'azienda. Suggerirei di aggiungerlo al controllo del codice sorgente dell'azienda esistente. Ciò soddisferà i requisiti della LGPL, a condizione che nessuno al di fuori dell'azienda abbia accesso.


1

è possibile utilizzare il modello di adattatore e non toccare il codice originale. Inoltre LGPL ti consente di ereditare le classi e sovrascrivere la funzionalità delle sue classi nel tuo progetto.


0

Questa è la mia comprensione, IANAL.

Controlla il testo della versione LGPL che copre il codice che stai utilizzando. Credo che il requisito sia che qualsiasi codice LGPL dovrebbe essere in grado di scambiare, di solito usando un file libreria / jar condiviso. Se riesci a separare il codice che usi LGPL in una libreria, puoi rilasciarlo sotto LGPL, rilasciando al contempo l'applicazione con qualunque licenza ti piaccia.


0

Non puoi eludere la licenza. Anche se trovi una scappatoia, è ancora immorale (anche se questa è una domanda diversa per alcune persone). Quello che PUOI fare è contattare l'autore di detto software, spiegare la situazione e chiedere una licenza separata. Se è disposto a concederti una licenza speciale per un prezzo, puoi confrontarlo con il costo di riscrittura del software senza utilizzare il componente in questione. E semplicemente andare con quello più economico.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.