Evita la violazione GPL spostando la libreria fuori processo

21

Supponiamo che ci sia una libreria con licenza GPL. Voglio usarlo è un progetto closed source. Faccio seguito:

  1. Crea una piccola applicazione wrapper attorno alla libreria GPL che ascolta il socket, analizza i messaggi e chiama la libreria GPL. Quindi restituisce i risultati.
  2. Rilasciare i suoi sorgenti (per conformarsi a GPL)
  3. Crea un client per questo wrapper nella mia applicazione principale e non rilascia fonti.

So che questo aggiunge un sovraccarico enorme rispetto al collegamento statico / dinamico, ma sono interessato al modo teorico.

    
posta Andrey 21.02.2011 - 13:57
fonte

7 risposte

32

Legalmente , direi che sarebbe OK (ma non sono un avvocato - consulta un avvocato per un consiglio legale).

Moralmente , è piuttosto riprovevole. Se non ti piace la GPL, la soluzione "corretta" non è quella di utilizzare una libreria GPL.

Modifica : per chiarire, indipendentemente dalla legittimità della GPL rispetto al fatto che il collegamento dinamico sia consentito o no, la LGPL è stata specificamente creata con l'intento di consentire il collegamento dinamico nel caso delle biblioteche . Quindi mi sembra chiaro che, scegliendo GPL su LGPL, l'autore della libreria stava facendo così esplicitamente per disabilitare il collegamento dinamico. Usare un tecnico significa aggirare una restrizione legale che esprime l'intento esplicito dell'autore per il suo codice è ciò che è riprovevole, secondo me.

Per la cronaca, non sono personalmente un fan della GPL (preferisco una licenza più permissiva come MIT o BSD). Tuttavia, sono un grande fan del rispetto del lavoro di altri sviluppatori, e se non vogliono che colleghiate la loro libreria con un software closed-source, allora è una prerogativa.

    
risposta data 21.02.2011 - 14:03
fonte
6

IANAL ma credo che tu stia bene, la sezione pertinente di GPL3 si trova alla fine della sezione 5:

A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an “aggregate” if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate.

Probabilmente questo dipenderà esattamente da cosa fa il tuo "cliente", la risposta di mouviciel è probabilmente una buona guida su come farlo in sicurezza

Se pensi che la tua app sia un'estensione della libreria piuttosto che qualcosa di aggregato con essa, probabilmente hai ragione (dovresti essere in un buon posto per saperlo), nel qual caso la soluzione migliore è contattare l'autore e provare per ottenere una licenza diversa

questo sembrerebbe sostenere la mia posizione che ciò è esplicitamente permesso dalla GPL, assumendo fatto correttamente.

    
risposta data 21.02.2011 - 14:39
fonte
6

Vedi Mi piacerebbe incorporare il software coperto da GPL nel mio sistema proprietario. Posso farlo?

La domanda è: la tua applicazione wrapper può essere utilizzata da sola? Se hai creato una versione da riga di comando del tuo programma che era GPL, potresti rilasciare la GUI con una licenza diversa. Ad esempio potresti creare un IDE per gcc che era closed source o uno strumento di diff visivo basato su diff.

Tuttavia, se hai terminato la libreria non hai altro che usare il tuo programma, e il programma non ha alcun uso senza questa libreria, che è un lavoro derivato e dovrebbe essere rilasciato sotto licenza GPL.

    
risposta data 21.02.2011 - 18:02
fonte
5

IMO, legalmente va bene. (IANAL) Per migliorare il lato morale del problema, non chiamarlo "wrapper FooBar che rende disponibile FooBar Legaly su MyClosedApp", chiamalo server. Rendilo un bel programma open source che "permette di fare FooBar sulla rete". Mettilo su SourceForge o dedica un sito ad esso, con la pagina del progetto, le istruzioni e tutto il resto. Quindi lascia che "MyClosedApp" utilizzi semplicemente il "server FooBar".

    
risposta data 22.02.2011 - 09:11
fonte
2

Per quanto ho capito, puoi lasciare il tuo software closed-source fintanto che è in grado di fare il suo lavoro senza la libreria GPL. Vedi la libreria GPL come un plugin la cui assenza non rende il tuo software inutile.

    
risposta data 21.02.2011 - 14:34
fonte
1
  1. prova a trovare un'alternativa Open Source, se non ce n'è, vai su GPL;
  2. controlla se è GPLv3 con la clausola Affero se lo è, non c'è niente da fare;
  3. se è GPLv2, puoi fare esattamente come suggerisci;

C'è anche un'opzione alquanto controversa. Nella maggior parte delle legislazioni il collegamento dinamico dovrebbe essere limitato al "lavoro derivato". La logica alla base di questo è che, mentre si collega dinamicamente, si includono solo i file di intestazione nel programma. In molte legislazioni i file di intestazione sono considerati una definizione API ed è esplicitamente escluso dall'essere protetti da copyright. D'altra parte, con il collegamento dinamico, il collegamento effettivo con la libreria GPL viene eseguito sul sistema dell'utente finale. Ma come ho detto, c'è molta polemica con esso, Stallman è strongmente FUD-ing contro questo.

    
risposta data 21.02.2011 - 15:07
fonte
0

Sarebbe legale per Adam Brown scrivere un programma che usasse una libreria GPL e fungesse da "server", se avesse rilasciato tutto il codice sorgente a tutto ciò che era associato, ma l'unico codice client che ha rilasciato era piuttosto debole perché è tutto ciò che ha scritto sul lato client? Non vedo alcuna base per pensare che non sarebbe.

Se Charles Dover avesse trovato il "server" di Adam Brown e avesse deciso di scrivere un programma closed-source per comunicare con esso, la GPL avrebbe limitato le sue azioni in qualche modo? Non che io possa vedere, dal momento che il suo unico utilizzo del software GPL sarebbe come i binari che ha ricevuto da Adam Brown. Se distribuisse i binari di Adam, avrebbe dovuto includere anche un link alla fonte, ma nient'altro nella GPL avrebbe influenzato il codice di Charles.

Riguardo a una persona che scrive un server con licenza GPL, e quindi usa il server per i suoi scopi a sorgente chiusa, non penserei che ci dovrebbe essere alcun problema legale se scrivendo il server ha fatto uno sforzo in buona fede per renderlo utile agli altri che potrebbero voler utilizzare il codice GPL fornito nello stesso modo. In particolare, la documentazione rilasciata pubblicamente dell'interfaccia dovrebbe essere sufficiente per consentire a un programmatore competente di scrivere codice per un server che sarebbe accettato dal programma client esattamente come sarebbe l'originale e per scrivere programmi client che usassero il server allo stesso modo dell'applicazione dell'applicazione.

    
risposta data 07.10.2012 - 00:58
fonte

Leggi altre domande sui tag