Posso utilizzare commercialmente il software con licenza GPL sul mio server se sto solo distribuendo il software client?

14

I comprendono le regole della GPL che affermano che se distribuisco software utilizzando il codice GPL, allora quel codice deve essere con licenza GPL .

Tuttavia, mi chiedo quali sono le regole in questo caso: sto creando un servizio in cui venderò e distribuirò software client .

Il software lato client non ha assolutamente alcun codice GPL. È al 100% il mio codice.

Tuttavia, il software client si collegherà al mio server, che utilizza internamente il codice GPL.

Sono non che distribuisce il mio software lato server; il software lato server vivrà su un server dedicato che controllo da solo, ma il software client non funzionerà senza connessione a detto server.

Questo conta come un software? Se dovessi fare questo, mi sarebbe richiesto di concedere in licenza il mio codice sorgente lato client come GPL? Oppure, posso vendere il software client senza rilasciare il suo codice sorgente?

    
posta Steven Jeffries 08.05.2015 - 02:15
fonte

3 risposte

10

Questo non è un problema chiaro. Prendi in considerazione due estremi dello spettro:

  1. Il tuo software client proprietario è un client HTTP e restituisce risposte HTML. Può funzionare con qualsiasi server HTTP. Il server HTTP che utilizzi per il tuo servizio utilizza componenti GPL.

  2. Hai un programma che utilizza componenti con licenza GPL. Scegli un punto arbitrario nell'operazione di quel programma e interrompi il programma in due programmi. I due programmi comunicano su un hop di rete totalmente superfluo. Metti tutti i componenti con licenza GPL nel primo programma e licenza sotto GPL, e concedi in licenza l'altro programma sotto licenza GPL-incompatibile.

Il primo caso è chiaramente a posto. Il secondo caso chiaramente non va bene. Non hai dato molte informazioni sul tuo caso particolare e, anche se lo hai fatto, solo una decisione del tribunale potrebbe decidere in via definitiva se hai ragione.

Le FAQ GPL hanno questo da dire su programmi interoperabili, con licenza separata :

However, in many cases you can distribute the GPL-covered software alongside your proprietary system. To do this validly, you must make sure that the free and non-free programs communicate at arms length, that they are not combined in a way that would make them effectively a single program.

The difference between this and “incorporating” the GPL-covered software is partly a matter of substance and partly form. The substantive part is this: if the two programs are combined so that they become effectively two parts of one program, then you can't treat them as two separate programs. So the GPL has to cover the whole thing.

Devi decidere se ritieni che il tuo server sia conforme allo standard di "due parti dello stesso programma" (e quindi ognuno di essi deve avere la licenza GPL) o meno. Le FAQ GPL forniscono alcune ulteriori spiegazioni su questo argomento su un'altra domanda :

Where's the line between two separate programs, and one program with two parts? This is a legal question, which ultimately judges will decide. We believe that a proper criterion depends both on the mechanism of communication (exec, pipes, rpc, function calls within a shared address space, etc.) and the semantics of the communication (what kinds of information are interchanged).

...

By contrast, pipes, sockets and command-line arguments are communication mechanisms normally used between two separate programs. So when they are used for communication, the modules normally are separate programs. But if the semantics of the communication are intimate enough, exchanging complex internal data structures, that too could be a basis to consider the two parts as combined into a larger program.

Quindi, la comunicazione di rete supera certamente il test del "meccanismo di comunicazione", ma non è chiaro dove la coppia client / server ricade sul test di "semantica della comunicazione".

    
risposta data 08.05.2015 - 16:16
fonte
4

Due processi che comunicano su una rete non comportano la creazione di un lavoro derivato come avviene per il collegamento di un eseguibile con una libreria. Quindi il codice GPL sul server non si applica al codice client.

Sotto GPL, è necessario distribuire il codice sorgente modificato quando si distribuiscono i binari. Poiché non stai distribuendo i file binari del server, non ti viene richiesto di distribuire il codice sorgente del server.

La GNU Affero GPL è una licenza simile alla GPL con una verbosità aggiuntiva progettata per chiudere questo buco del loop che desideri sfruttare (vedi: link e link ).

Disclaimer: sono uno sviluppatore, non un avvocato.

    
risposta data 08.05.2015 - 03:42
fonte
2

Il software client dipende dal corretto funzionamento del software del server? In altre parole, il software client funzionerà senza essere connesso al server?

Se la risposta è "sì" e il server fornisce semplicemente una funzionalità aggiuntiva, e non un supporto di base, al tuo software client, probabilmente sei chiaro. Se il software server è parte integrante del software client e fornisce funzionalità di base al software client (ovvero il software client non funziona senza il server), la combinazione è un lavoro derivato, coperto da la GPL.

    
risposta data 08.05.2015 - 03:36
fonte

Leggi altre domande sui tag