GPL "Integrabile" ma non "integrato"

6

Si è discusso molto sul fatto se il semplice collegamento a un pezzo di codice lo renda un lavoro derivativo. So che FSF dice "sì", quindi secondo loro non posso collegare dinamicamente un programma non GPL compatibile a una libreria GPL e distribuire il tutto. Ma potrei farlo per uso privato, a patto che nessun codice venga rilasciato al pubblico.

Questo mi ha fatto riflettere: cosa succede se non lo ridistribuisco affatto? Se il mio programma può funzionare da solo (rinforzando la mia affermazione che è non un lavoro derivativo), ma posso fare di più se la libreria GPL è installata anche nel sistema, non potrei semplicemente rilasciare la mia applicazione sotto il mio termini di licenza - senza includere alcun codice GPL - e postare istruzioni per chiunque sia interessato a scaricare separatamente il codice GPL e fare l'integrazione "per uso privato"?

So che è contro lo "spirito" della GPL, quindi non sto suggerendo che sia una buona idea farlo. Tuttavia, questa domanda mi disturba da tempo, specialmente a causa delle implicazioni di ciascuna risposta:

Se I non può fare questo:

  • posso scrivere un'altra libreria con un'API simile? (prima di rispondere "ovviamente si può", ricorda che avere la stessa API consentirebbe a entrambe le librerie di essere scambiate a piacimento dai miei clienti - quindi non ho bisogno di lavorare troppo sulla mia libreria o addirittura renderla "funzionante". Come determinare se un programma simile è simile o è un tentativo di elusione?)
    • (Modifica: come ha sottolineato @Karl Bielefeldt, quella libreria sarebbe un lavoro derivato, quindi questo punto è discutibile

Se I può fare questo:

  • posso essere pagato anche per eseguire il servizio di installazione della libreria GPL per un cliente? (Li vendo il mio programma, lo installo nelle loro macchine, scarica e installa anche la libreria GPL)
    • (Modifica: questa pratica sarebbe la prova del mio intento per combinare entrambi i programmi, rinforzando l'affermazione che il mio è stato concepito con l'obiettivo di essere combinato - e quindi è un lavoro derivato)
  • posso inserire i due programmi nello stesso sito web? In due CD diversi? (So che ho detto che l'idea era non di ridistribuire il codice GPL, sto solo pensando a delle scuse che le persone potrebbero usare per affermare che non stanno ridistribuendo anche se lo sono)
    • (Modifica: sarebbe un "aggregato" , quindi nessun problema con esso)

Aggiornamento: dopo aver analizzato le risposte e i collegamenti di @Eli Rosencruft's e @Karl Bielefeldt e letto alcune risorse esterne, mi sto avvicinando a una conclusione. Ho apportato alcune modifiche alla domanda in base al feedback, e di seguito pubblicherò alcune delle mie conclusioni finora:

  • Le qualità intrinseche di entrambi i programmi sono un fattore più determinante nel decidere se derivare o meno da un altro rispetto ai mezzi tecnologici per ottenere la loro integrazione. L'intento degli autori di raggiungere un obiettivo è anche rilevante quanto i mezzi con cui sono stati raggiunti (in questo scenario). Citando un post sul blog che - sebbene non sia autorevole in materia - credo sia pertinente la domanda (enfasi mia):

Since under the GPL the end-user can do whatever they want with the code (short of redistribution constraints), the end-user can always PULL various software on the Net and choose to combine and use them in any way they wish (assuming all parts are legits and legitimately obtained of course). (...) It does NOT mean that I can offer (PUSH) to the user a proprietary software that has been conceived with the goal/intent of being combined with a GPL software (whether it is deemed to be combined before or after distribution).

  • Se legalmente significativo o no, ora comprendo le motivazioni dietro l'insistenza di FSF sul collegamento statico vs dinamico: un programma non libero che si interfaccia con uno libero in modi complicati è de facto che limita gli utenti 'libertà su quest'ultimo, poiché non possono modificarlo sostanzialmente senza interrompere l'integrazione (questo consente anche EEE , nel caso in cui anche la parte libera venga modificata per adattarla a quella non libera). Quindi, se ci si prende cura del movimento del software libero, si dovrebbe rispettare i loro termini o, per lo meno, prendere le misure necessarie per salvaguardare le libertà del ricevente.
posta mgibsonbr 06.04.2012 - 03:24
fonte

2 risposte

3

Innanzitutto, verifica che la libreria con cui desideri collegare il tuo codice sia in realtà GPL e non LGPL. Come nota Karl Bielefeldt di seguito, la maggior parte delle librerie comuni sono già LGPL o dual license.

L'uso del "lavoro derivato" da parte della FSF per quanto riguarda il collegamento statico o dinamico è problematico dal punto di vista legale. Vedi "Esempio 3" e "Esempio 4" dalla Scuola di diritto dell'Università di Washington . L'esempio 4, relativo alla tecnologia plug-in, è particolarmente illuminante.

Tuttavia, se assumiamo che l'interpretazione FSF del "lavoro derivativo" sia definita dal collegamento dinamico, quindi qualsiasi affermazione che un'opera non sia derivata quando in realtà può essere collegato con un lavoro GPL e tale collegamento fornisce funzionalità aggiuntive sarebbe una pretesa speciosa.

D'altra parte, chi potrebbe agire contro di te per questo? Penso che solo i titolari di copyright originali della biblioteca contro cui si collega possano essere parti di un'azione, non i tuoi clienti.

Tuttavia, anche leggendo contro le Domande frequenti sulla GPL , e anche supponendo che non ci sia nessuno da portare un'azione, vuoi davvero essere qui da una prospettiva di business?

Se il tuo software sarà davvero popolare, il danno alla tua immagine pubblica per il fatto che sembra violare la GPL potrebbe non valere il costo di sviluppo della tua libreria proprietaria.

Se il tuo software avrà una distribuzione limitata ed è costoso, dovresti fornire il software ai tuoi clienti in base a un contratto piuttosto che a una licenza. Vedi Robert Pierce . In base al contratto, forniresti il prodotto confezionato al cliente, insieme al codice sorgente completo, come se avessi sviluppato il lavoro per il noleggio esclusivamente per quel particolare cliente. Potresti stabilire che se il cliente ridistribuisce il prodotto, lo farebbe a un prezzo concordato dal quale ti pagherebbe una percentuale di royalties. È probabile che la maggior parte dei tuoi clienti non sia interessata alla distribuzione o al supporto di prodotti software, pertanto questa clausola probabilmente non verrà mai esercitata. Probabilmente potresti anche stipulare le condizioni per proteggere il codice sorgente dai rischi di divulgazione, come limitare l'accesso al codice sorgente.

    
risposta data 06.04.2012 - 17:42
fonte
1

Questa è una domanda ipotetica? Sono a conoscenza solo di una delle principali librerie open source che usa la GPL al posto della LGPL, e questo è mysql che offre anche una licenza commerciale per coprire ciò che si vuole fare. Immagino che la maggior parte delle altre librerie GPL offrirebbe anche licenze commerciali, altrimenti lo renderebbero semplicemente LGPL. Se non si tratta di una domanda ipotetica, potrebbe essere utile menzionare la libreria di cui stai parlando.

Credo che non sia sufficiente che il tuo programma possa funzionare senza la libreria. La parte del programma che utilizza la libreria deve essere separabile e in grado di essere distribuita separatamente. Prendiamo ad esempio i driver del kernel di nvidia. Distribuiscono una libreria binaria. Distribuiscono anche un wrapper open source a quella libreria che fornisce un'interfaccia tra la loro libreria e le intestazioni del kernel. Per installarlo, compili quel wrapper.

La chiave qui è che il kernel e la loro libreria binaria possono cambiare completamente indipendentemente l'uno dall'altro, e devi solo modificare il wrapper per farlo funzionare. Prova di ciò è che le terze parti sono state in grado di distribuire le modifiche a quel wrapper quando l'interfaccia del kernel è cambiata e nvidia non aveva ancora raggiunto il loro rilascio ufficiale. Qualcuno potrebbe anche usare quel wrapper per altri driver, anche se a mia conoscenza nessuno lo ha fatto.

Come per le altre tue domande, scrivere un'altra libreria con un'API quasi identica è sicuramente un'opera derivata. La GPL non proibisce di essere pagata per l'installazione o per l'aggregazione di un lavoro GPL su un CD.

    
risposta data 06.04.2012 - 17:32
fonte

Leggi altre domande sui tag