GPL sul posto di lavoro?


12

Una volta ho intervistato una società di consulenza in cui nella conversazione è emerso che usano prodotti open source (il che è fantastico, ho usato ampiamente Hibernate, JBoss, ecc.). Una cosa che mi ha sorpreso è che quando ho chiesto se hanno usato l'OSS con licenza GPL durante la scrittura di applicazioni per i clienti, hanno detto "Certo, sempre! Finché il client ottiene ciò che desidera e è felice." Ora, non sono un avvocato o un grande appassionato di licenze, ma avevo l'impressione che usando il codice GPL (diciamo qualche libreria che includi), allora ti viene richiesto di rilasciare l'intera applicazione con la stessa licenza. Quando l'ho sottolineato, mi è stata data una rapida risposta di "Bene, diamo ai clienti tutto il codice sorgente quando abbiamo finito, quindi non è davvero un problema."

Non volendo insistere ulteriormente sul problema (le interviste non sono il luogo per argomenti del genere), ho lasciato che scendesse. Tuttavia, ciò mi preoccupa ancora di quella particolare pratica del business. Qual è la parola ufficiale sul codice con licenza GPL e quanto deve essere "aperta"? Devi pubblicarlo e dire "La mia azienda ha utilizzato questa libreria, quindi qui è il sito in cui è possibile scaricare la nostra applicazione per il sistema di evasione degli acquisti e degli ordini che spendiamo milioni di dollari per costruire". In questa situazione, la società ha ragione per usare il codice GPL a insaputa del cliente? Basta "dare loro la fonte"?

Risposte:


15

Si applicano le dichiarazioni di non responsabilità standard: non sono un avvocato e nemmeno tu.

GPL, in sostanza, riguarda la protezione dei diritti di coloro che utilizzano il programma per ottenere e utilizzare anche la fonte. Non è obbligatorio che tu pubblichi la fonte di qualsiasi programma che scrivi che utilizza il codice GPL, semplicemente che se pubblichi un tale programma devi anche fornire la fonte.

Posso scrivere un numero qualsiasi di app per il mio uso personale, inserire il codice GPL e non dare mai la fonte di tutto questo a nessuno. Posso scrivere tali app per uso interno da parte della mia azienda e ho bisogno di fornire la fonte solo a quelli all'interno della mia azienda che usano il programma (in pratica, dovrei farlo comunque se avessero delle buone ragioni per richiederlo). Se scrivo un programma del genere per qualche altra entità, ho solo dovuto dare loro il codice (e mettere in chiaro che il programma è con licenza GPL) - se si vanno a distribuirlo, devono, inoltre, quindi effettuare la sorgente disponibile, ma sono fuori dai giochi.

Quindi l'unica preoccupazione che la tua società di consulenza potrebbe avere è che non erano in grado di rendere i propri clienti consapevoli della licenza sotto la quale il codice fornito rientrava. In realtà, mentisco - se avessero negoziato una licenza diversa con i loro clienti (il cliente possiede tutti i diritti sul codice ...), potrebbero anche essere in acqua calda su quello ... Ma questo è vero per qualsiasi codice di terze parti : a meno che non sia di dominio pubblico, è necessario rispettare la licenza e non ripetere la licenza a meno che tale diritto non sia stato concesso dal titolare del copyright.


1
Hai ragione AGPL, ma è più severo su questo

@Pierre: corretto, nel senso che non si può uscire dal fornire la fonte ai propri utenti attenendosi alle app del server.
Shog9

1
Interessante. Quindi, nella GPL standard, se scrivi un'app SaaS, non ti viene richiesto di fornire la fonte poiché non stai "distribuendo" tecnicamente l'applicazione stessa?
Ryan Hayes,

2
@Ryan: giusto. Bene, non sei tenuto a consegnarlo ai tuoi utenti . Chiunque ottenga il codice compilato ottiene ancora la fonte.
Shog9

7

Come consulente, desidero sollevare tempestivamente problemi di licenza con i miei clienti in modo che possano fare una scelta informata. Se la migliore tecnologia da applicare al loro problema è soggetta a GPL ma non sono conformi alla licenza, non posso utilizzarla. In pratica, questo ha avuto due effetti.

Innanzitutto, molti sono felici di pagare un prodotto commerciale appositamente per evitare questo problema. Ciò è particolarmente comune nel mondo dei sistemi embedded in cui la conformità a GPL richiederebbe effettivamente la pubblicazione della progettazione hardware completa e la documentazione di come tutto funzioni per soddisfare lo spirito della GPL, che è un tentativo di consentire a un utente finale di cambiare il prodotto . Sebbene sia possibile realizzare prodotti così aperti, richiede un grande impegno a tutti i livelli dell'azienda. Il problema più grande è che molti componenti di un progetto ci sono documentati dai loro produttori sotto NDA ed è effettivamente impossibile creare un codice conforme a GPL che utilizza la documentazione rilasciata sotto NDA.

In secondo luogo, ora preferiamo la licenza del MIT e i suoi numerosi parenti (che chiariscono che l'uso commerciale è accettabile) rispetto alla GPL in qualsiasi revisione. Non ho avuto alcun oggetto da parte del cliente nel rilasciare correzioni di errori e miglioramenti apportati alle comunità di prodotti pertinenti. Poiché la licenza è permissiva, posso ottemperare ai miei obblighi NDA, soddisfare i miei clienti e contribuire alle comunità interessate.


2

Open source non significa necessariamente libero.

Anche IANAL, ma in generale il requisito per GPL è fornire il codice sorgente per il tuo progetto. Puoi sicuramente vendere un prodotto a qualcun altro. Tuttavia, credo che non si possa impedire loro di darlo via. Questo è probabilmente ciò che rende la maggior parte dei software GPL gratuiti, come nella birra. Sono abbastanza certo che non devi pubblicare il tuo codice su world + dog solo perché è GPL.

Dal preambolo alla v3 della GPL (enfatizzare il mio):

Le licenze per la maggior parte dei software e altre opere pratiche sono progettate per togliere la libertà di condividere e modificare le opere. Al contrario, la GNU General Public License ha lo scopo di garantire la libertà di condividere e modificare tutte le versioni di un programma, per assicurarsi che rimanga software gratuito per tutti i suoi utenti. Noi, la Free Software Foundation, utilizziamo la GNU General Public License per la maggior parte dei nostri software; si applica anche a qualsiasi altra opera pubblicata in questo modo dai suoi autori. Puoi applicarlo anche ai tuoi programmi.

Quando parliamo di software libero, ci riferiamo alla libertà, non al prezzo. Le nostre licenze pubbliche generali sono progettate per assicurarti che tu abbia la libertà di distribuire copie di software libero (e addebitarle se lo desideri), di ricevere il codice sorgente o di ottenerlo se lo desideri, di poter cambiare il software o usane parti in nuovi programmi gratuiti e sai che puoi fare queste cose.

( fonte )

In questa situazione, la società ha ragione per usare il codice GPL a insaputa del cliente? Basta "dare loro la fonte"?

Questa è una domanda leggermente diversa. Se il cliente ha qualche aspettativa e tale aspettativa è dettata da un contratto, la società potrebbe avere un problema. Altrimenti, spetta a loro determinare il modo migliore per svolgere il lavoro. Tuttavia, dovrebbero includere un avviso nel codice sorgente relativo alla licenza. Non sono sicuro che debbano rivelarlo al loro cliente in altro modo.


2
GPL non richiede che pubblichi attivamente la fonte, ma richiede che tu pubblichi all'utente il fatto che il programma è GPL e che fornirai la fonte su richiesta (possibilmente soggetto a una commissione di gestione equa e ragionevole). In pratica, quest'ultimo requisito è spesso gestito da un tarball o zip in un URL che può essere fornito su richiesta. Come consulente, hai l'obbligo di far sapere ai tuoi clienti quale sarà il loro onere se distribuiscono il tuo lavoro ad altri, perché diventano l'editore ai sensi della GPL.
RBerteig,

@RBerteig Grazie per il chiarimento. È passato un po 'di tempo da quando ho esaminato i termini della licenza.
George Marian,

"Puoi sicuramente vendere un prodotto a qualcun altro. Tuttavia, credo che tu non possa impedire loro di regalarlo." Dipende dal fatto che tu dia loro qualcosa ai sensi della GPL o se sei il detentore del copyright originale e concedigli nuovamente la licenza con una licenza diversa.
endolito il

-5

No, hai ragione. Ecco perché:

Considera se abbiamo un'applicazione in GPL. Ora, quindi non può essere utilizzato dal codice proprietario.

Se fosse abbastanza per aprire il codice sorgente che utilizza GPL, potrei aprire un progetto basato su di esso come BSD.

Quindi il software proprietario potrebbe utilizzare il prodotto GPL.


4
Questo non ha senso. La GPL non afferma che il codice proprietario non può utilizzarlo. La GPL è incentrata sulla distribuzione, come afferma chiaramente la risposta del signor C. In breve, non è consentito distribuire software che utilizza il codice GPL a meno che non si distribuisca anche il codice sorgente per quel software con una licenza compatibile.
dash-tom-bang,

1
Il codice proprietario non può usare il codice GPL. Fa parte del motivo dell'esistenza della licenza.
alternativa il

Tutto dipende da cosa intendi per "codice proprietario". Se vuoi dire "codice che possiedi", allora non ha senso: GPL non può togliere il tuo copyright, quindi a meno che tu non lo assegni al FSF di tua spontanea volontà possiedi comunque il codice che scrivi . OTOH, se intendi "codice che desideri distribuire con una licenza incompatibile con GPL", allora hai ragione - così come sei stato in grado di ottenere e utilizzare la fonte su cui stai costruendo, sei obbligato a concedere ai tuoi utenti questo diritto alla tua fonte. Ancora una volta, si tratta di distribuzione - nessuno che non è in grado di ottenere il programma ha diritti sul codice.
Shog9

@Sig. C per codice proprietario intendo codice incompatibile con la GPL. E il codice è distribuito al client quindi ... Ma sì, non sono un avvocato, quindi potrei sbagliarmi.
alternativa il

2
-1, risposta fuorviante. Questo è vero solo per alcune definizioni di "uso" e "proprietario". Ad esempio, potrei creare un prodotto Linux incorporato e rilasciare solo il kernel Linux e il codice che si collega direttamente al codice del kernel, ma non la mia interfaccia utente o altre app che si verificano solo su un kernel GPL. Esistono molte di queste relazioni. L'ambiguità in questo uso di "proprietario" è già coperta. Inoltre, nella maggior parte delle giurisdizioni, un "lavoro a noleggio" dato solo alla parte che ha assunto uno sviluppatore per codificare non è la stessa della distribuzione. IANAL, ecc.
HedgeMage,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.