Modifica del codice GPL per collegarsi strettamente con un altro programma

0

Se il programma B è concesso in licenza in GPL, può un programmatore modificarlo per interagire con il suo programma proprietario, A, in modo tale che entrambi i programmi siano processi separati e quindi rilasciare solo il codice sorgente modificato solo per il programma B?

Stavo pensando al programma B trasformato in una "scatola nera" per il programma A, ma invece di essere una funzione è un programma completamente separato.

Non cerco consulenza legale, sto cercando di capire di più sul software libero e le sue complicazioni senza essere troppo tecnico. Sfortunatamente, la Faq della GPL parla di librerie collegate e altre cose che non ho ancora affrontato a scuola, quindi è difficile per me avvolgere la mia mente sul caso "generale" qui.

    
posta temetvince 20.05.2015 - 18:30
fonte

2 risposte

1

In primo luogo, non importa se cambi B successivamente, purché pubblichi nuovamente le modifiche in GPL. B potrebbe essere stato scritto (e pubblicato) in questo modo dall'autore originale, prima di aver già iniziato a creare A.

Quindi la tua situazione è probabilmente uno dei due scenari descritti nelle FAQ GPL sotto

o

(scegli la tua scelta che si adatta meglio al tuo caso)

Quando leggi le due sezioni, vedi che il punto critico in entrambi i casi è se la comunicazione tra il programma libero e quello non libero è fatta solo da "fork ed exec" (o qualsiasi altra cosa equivalente al sistema operativo che stai usando ). Se, tuttavia, i due software "fanno chiamate di funzione tra loro e condividono strutture dati", si sta violando la GPL (che in realtà è come interpreterei le FAQ, ma IANAL).

    
risposta data 20.05.2015 - 19:02
fonte
0

Prendi il programma B con licenza GPL, lo modifichi e rilasci il risultato sotto GPL. È proprio quello che dovresti fare. Non importa cosa A fa con B finché A è nel programma indipendente.

La domanda complicata è cosa succede se il tuo programma proprietario non fa nulla di utile a meno che non ci sia anche B in esecuzione e tu scrivi e distribuisci un wrapper (ad esempio, W) che rende più facile per l'utente eseguire A e B insieme . L'intero pacchetto A + B + W potrebbe essere considerato un lavoro derivato e possono sorgere difficoltà legali. Forse, il modo più sicuro sarebbe quello di dire all'utente che devono ottenere B da soli e avviarlo nel modo giusto affinché A possa funzionare. Se ciò non è pratico, potrebbe (a seconda della situazione) essere effettivamente necessario che A (o almeno W) sia anche open source o trovi un'alternativa a B che non ha la restrizione della licenza.

    
risposta data 20.05.2015 - 18:44
fonte

Leggi altre domande sui tag