Che cosa significa "GPL con eccezione del classpath" in pratica?

51

Oracle sembra concedere in licenza tutti i relativi codici open source relativi a Java sotto GPL con un'eccezione classpath. Da quello che ho capito, questo sembra consentire di combinare queste librerie con il tuo codice personale in prodotti che non devono essere coperti dalla GPL. Come funziona? Quali sono esempi di come posso e non posso usare queste classi? Perché questa nuova licenza è stata utilizzata al contrario della LGPL, che sembra consentire praticamente le stesse cose, ma è meglio stabilita e compresa? Quali sono le differenze con la LGPL?

    
posta Thilo 13.11.2011 - 00:37
fonte

3 risposte

48

Prima di tutto, non sono un avvocato. Ma ho studiato molte licenze e ho compreso i problemi che li riguardano.

In secondo luogo, so che questa è una vecchia domanda, ma penso che sia ancora un punto di confusione e preoccupazione. Se non è un punto di preoccupazione, dovrebbe essere. La scelta di una licenza è un grosso problema che non puoi cambiare in modo banale, specialmente se sono coinvolti più contributori.

(L) GPL è stato scritto pensando a C / C ++, sfortunatamente. Si parla di "Codice sorgente", "Codice oggetto", "Collegamento dinamico", "Collegamento statico", "Compilatori" e "Interprete di codice oggetto". Quindi tradurre questo per altri linguaggi che non seguono le stesse tecniche di compilazione (come il bytecode di Java, la compilazione just in time di Python o la natura interpretata da Javascript) richiede alcune ipotesi e ipotesi. Quando parli di legge, cioè di pensare a eventuali casi giudiziari in cui due parti discutono, non avere una chiara distinzione è una COSA MALE.

Una parte di codice standard con licenza GPL è piuttosto semplice nell'intento. Si prevede che chiunque usi quel codice rilascerà il proprio codice a tutti gli utenti quando lo distribuiscono o lo vendono. Questo è il virus GPL che Richard Stallman voleva creare e fare in modo chiaro e pulito.

La LGPL originariamente era un tentativo di consentire una "biblioteca" che non sarebbe virale. Ma volevano ancora che l'utente finale fosse in grado di sostituire la libreria da solo, quindi la distinzione tra collegamento "statico" e "dinamico": l'utente poteva passare a una libreria con collegamenti dinamici diversi, quindi non avrebbe avuto bisogno di essere concesso in licenza come GPL. E un collegamento statico richiedeva che l'utente fosse GPL. La licenza parla effettivamente di "file header", che sono chiari in C / C ++ ma ovviamente non chiari quando ci si trova nei mondi Java, Python, Javascript, ecc. Quindi la L ("biblioteca") di materiale LGPL è fangosa, nel migliore dei casi.

Questo arriva al nocciolo della questione. Tutto ciò che non è chiaro è BAD nel mondo delle leggi. Se sto cercando di costruire qualcosa usando componenti GPL o LGPL, voglio essere certo di quale sia la mia posizione legale in futuro se dovessi atterrare in tribunale. Ma ad oggi, non sono sicuro perché non ci sono stati casi giudiziari che stabiliscono un precedente legale, solo argomentazioni intellettuali su forum come questo.

Qui è dove l'eccezione Classpath è inestimabile. Dichiara chiaramente che il codice sotto la licenza è (L) GPL, ma qualsiasi cosa che usi quel codice può seguire qualunque licenza desideri. Nessun ifs, ands o buts. Se modifichi il codice principale (ad es. Per correggere i bug), devi comunque rilasciare tali modifiche come parte della GPL. Ma l'uso NON ti infetta.

Dal punto di vista del business, capisco perché alcuni non vogliono toccare il codice GPL con un palo da 10 '. La posizione legale non è chiara e il business potrebbe essere punto un decennio lungo la strada quando finalmente verrà stabilito un precedente legale. Oppure potrebbero essere bloccati in tribunale per anni combattendo per stabilire il precedente legale. Indipendentemente dal fatto che non vogliono rischiare il costo di quella battaglia. L'aggiunta della clausola di eccezione Classpath elimina le domande legali ed evita qualsiasi (grave) potenziale causa giudiziaria.

Quindi, per me, Classpath Exception è molto diverso da LGPL. È un modo legalmente pulito per tracciare una linea luminosa che consente l'utilizzo non GPL di codice sorgente o librerie GPL o LGPL.

    
risposta data 01.08.2016 - 22:18
fonte
6

GPL con l'eccezione del classpath si comporta come LGPL per la maggior parte degli usi.

Significa che è necessario essere in grado di spedire la sorgente per la biblioteca su richiesta. Ciò non significa che devi essere in grado di spedire la tua fonte. Succede che non devi spedire un modo per sostituire la libreria se ti colleghi staticamente, ma non puoi usare una chiave pubblica per impedire la sostituzione.

    
risposta data 13.11.2011 - 02:24
fonte
-3

Sembra che le licenze in stile "GPL with classpath exception" potrebbero essere più vecchie di LGPL.

Forse l'unica ragione per cui qualcuno ancora la usa, è perché il codice GPL non può essere migrato al codice LGPL senza il permesso scritto di chiunque abbia mai contribuito al codice.

    
risposta data 13.11.2011 - 00:47
fonte

Leggi altre domande sui tag