È appropriato rilasciare solo la parte del codice con licenza GPL come open source?

3

È appropriato rilasciare firmware open source incompleto o, in altre parole, rilasciare solo il software GPL ma non il codice sorgente del software proprietario?

Come sono i programmi non open-source, nel firmware compilato per un router / dispositivo incorporato, permessi con il sistema operativo open-source, basato su Linux e altri software GPL?

Ad esempio:

Se una società rilascia firmware compilato e codice sorgente per un router, ma rilascia solo il codice sorgente per il software GPL all'interno del firmware, secondo la GPL, va bene che il codice sorgente del firmware non sarebbe compilabile perché è incompleto e manca la parte proprietaria del software?

    
posta XP1 01.05.2011 - 17:49
fonte

5 risposte

2

Dovresti contattare la FSF e i detentori del copyright per sapere se sei in chiaro.

Per Linux il codice del firmware non open source viene solitamente distribuito lungo la sorgente come blob binari, ma non penso che sia possibile collegarlo con un blob, ma è possibile caricarlo solo come se fosse un dato. Non sono sicuro di questo, quindi potrei sbagliarmi.

Se ricalcolo correttamente il compilatore originale NeXT Objective C (derivato da gcc) ho provato a spedire solo il codice gcc modificato e il codice oggetto compilato per le parti ObjC, ma la FSF l'ha presa come una violazione della licenza e in seguito NeXT ha rilasciato il codice.

Ancora una volta, contatta la FSF e i detentori del copyright.

    
risposta data 01.05.2011 - 18:10
fonte
1

Non dovrebbe mai accadere che il codice GPL usato insieme al codice proprietario sia "incomprensibile", in quanto la licenza vieta tale utilizzo. Non è possibile collegare (averli condivisi con lo stesso spazio di processo) software proprietario con la GPL, è possibile far sì che i diversi processi si avviino reciprocamente o comunichino tramite un meccanismo di trasmissione dei messaggi.

Nel caso di software pacchettizzato che contiene sia GPL che parti proprietarie che non sono collegate, il requisito GPL è che si ha il diritto di sostituire le parti GPL di quel pacchetto con la versione modificata di esso e limitare tale sostituzione è una violazione dei termini.

Di solito il firmware è solo un pacchetto di programmi diversi che funzionano in modo indipendente, quindi le parti GPL del pacchetto sono sempre riconducibili.

Il problema con il firmware è che i fornitori possono rilasciare il codice sorgente come richiesto dalla GPL, ma non forniscono alcun ragionevole meccanismo per sostituire il software, limitando il modo in cui l'hardware è accessibile. Questo è stato chiamato "Tivoization" dalla FSF, e la GPLv3 è stata creata per impedire ai produttori di limitare la possibilità di modificare le parti GPL di firmware come questo.

    
risposta data 02.05.2011 - 15:24
fonte
0

IANAL, ma ... Ci sono variazioni in ciò che le licenze GPL dicono che puoi fare con le librerie, ecc. Se il tuo codice proprietario usa le librerie GPL come librerie condivise, allora sei OK in generale. Alcune librerie consentono esplicitamente una "eccezione di collegamento", che consente di collegare staticamente la libreria al codice. Il sistema operativo eCos (che è collegato alla tua applicazione come libreria) ha un'eccezione di collegamento.

Un driver di dispositivo Linux che viene caricato nello spazio del kernel è un settore un po 'controverso. Infatti, se viene caricato un driver non GPL, vedrai un messaggio "kernel alterato".

Se stai scrivendo una sorta di software proprietario che usa i bit di GPL, mi piacerebbe parlare con qualcuno che sappia veramente cosa significano tutti i vari termini di licenza.

    
risposta data 01.05.2011 - 18:06
fonte
0

Non c'è alcun obbligo per il codice GPLed che hai rilasciato, per essere utile, prodotto stand-alone. Infatti, in passato c'era un caso simile, NeXT (ora Apple) ha rilasciato le loro modifiche al preprocessore GCC per Objective-C, che erano totalmente inutili senza la libreria runtime, che mantenevano closed-source.

Un articolo sul caso.

    
risposta data 01.05.2011 - 21:08
fonte
0

È necessario esaminare in che modo il codice GPLed è associato al codice proprietario. Se la parte GPLed non si compilerà da sola, allora sicuramente il codice nel suo insieme è un lavoro derivato del codice GPLed, e deve essere rilasciato sotto la GPL appropriata o non rilasciato affatto. (Puoi ancora usarlo per uso interno, ma l'implicazione era che lo avresti distribuito come parte di un dispositivo.) Allo stesso modo, se il codice GPLed e il codice proprietario sono compilati separatamente ma collegati staticamente, è un lavoro derivato del codice GPLed.

Se dovessi separare GPLed e il codice proprietario in modo che fossero programmi compilabili separatamente, comunicando solo con protocolli di comunicazione tra processi standard, GPLed e il codice proprietario sarebbero due lavori separati, e solo la parte GPLed sarebbe essere sotto la GPL.

Qualunque cosa nel mezzo è pronta per la domanda. La Free Software Foundation ha una visione abbastanza liberale di ciò che costituisce un lavoro derivato, ma alla fine è una questione che spetta al tribunale decidere.

Come sempre, quando si tenta di utilizzare un software con una licenza con restrizioni in modi non previsti dalla licenza, ottenere una licenza diversa dai titolari del copyright (se possibile e conveniente) o consultare un avvocato. Nessuno qui (a meno che i titolari del copyright non siano su programmers.se) può consigliarti in modo affidabile su ciò che è permesso e esattamente ciò che non lo è.

    
risposta data 02.05.2011 - 15:45
fonte

Leggi altre domande sui tag