Gli script non compatibili con GPL possono essere collegati in fase di esecuzione a una libreria GPLv3, da parte della stessa libreria (GPL)?

4

Prima di tutto, scusate il titolo, in quanto non è molto chiaro. Ho un'applicazione che sto scrivendo che è GPLv3, ed è in Java, il che significa che i file di classe sono generati e collegati per l'operazione generale. Sto anche utilizzando un motore di scripting che, per prestazioni, collega tutti gli script che esegue alle librerie di scripting del mio programma (che sono file di classe) in fase di runtime.

Dato che uno script deve essere collegato in fase di runtime, è possibile eseguire uno script incompatibile con GPLv3 sull'applicazione? Posso legalmente forzare lo script per essere interpretato invece? Giusto per chiarire che sto cercando di coinvolgere la GPLv3 nel limitare le licenze non GPL-compatibili agli script.

La domanda è se un'operazione di collegamento tecnico funzionalmente equivalente (tranne che nelle prestazioni) all'analisi è in realtà un collegamento in senso giuridico.

Chiarificazione: gli script verranno trasmessi alle istanze interattive dell'applicazione. Gli script vengono caricati da una rappresentazione testuale in ECMAScript / JavaScript, tokenizzati e analizzati per la sintassi e quindi collegati. Questo è ciò che mi sta confondendo. Dato il trasporto, lo script viene compilato e collegato? O interpretato e il parser in realtà in fase di runtime si collega da solo?

    
posta hexafraction 08.09.2013 - 12:54
fonte

2 risposte

3

Sì. GPL copre solo la distribuzione / trasporto. Come suggerisce il tuo altro commento, vuoi limitare i tuoi utenti. Non importa che lo script venga inviato su una rete. Il conferimento (il termine definito dalla GPL) richiede il trasferimento di opere coperte da una persona giuridica a un'altra. I computer non sono persone giuridiche.

Questo è di fondamentale importanza per LGPL. Queste librerie sono collegate dinamicamente da ciascun utente e il lavoro derivato (caricato in memoria) non può più essere distribuito. Ma questo non è un problema perché l'utente vuole usare il risultato, non comunicarlo.

    
risposta data 10.09.2013 - 11:12
fonte
1

In generale, il codice GPL e proprietario (non GPL'd, closed-source) può essere utilizzato insieme solo quando possono essere ragionevolmente considerati come applicazioni separate. In pratica, ciò significa:

  1. Le due applicazioni devono comunicare a distanza di braccia l'una con l'altra e
  2. Ogni applicazione deve essere in grado di funzionare senza l'altra.

Quindi, se scrivo un programma che elabora un documento Word in qualche modo, non leggo Word alla GPL perché continuo a soddisfare i due requisiti precedenti. Allo stesso modo, se scrivo un programma di elaborazione di test in stile Unix che puoi inserire in una pipe stdin stout, posso renderlo GPL senza legare nessun altro programma di elaborazione del testo, ma comunque usarlo nella pipe.

Tuttavia, se scrivo un programma proprietario che si collega staticamente a una libreria GPL, probabilmente non sono conforme perché il mio programma non comunica a braccia spalancate con la libreria. Se comunico con la libreria a distanza di braccia (ad esempio, con un'interfaccia di comando basata su testo o forse collegamento dinamico), potrei ancora essere in violazione se il mio programma non funzionerà senza la libreria GPL.

Ulteriori letture
collegamento
link
L'esecuzione di un eseguibile come processo figlio equivale al collegamento di una libreria?
Quando è necessario concedere in licenza software sotto licenza GPL?

    
risposta data 09.09.2013 - 23:45
fonte

Leggi altre domande sui tag