Prima di tutto, non sono un avvocato. Ma ho studiato molte licenze e ho compreso i problemi che le 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 esserlo. La scelta di una licenza è un grosso problema che non è possibile cambiare banalmente lungo la strada, soprattutto se sono coinvolti più collaboratori.
(L) GPL è stato scritto pensando a C / C ++, sfortunatamente. Parla di "Codice sorgente", "Codice oggetto", "Collegamento dinamico", "Collegamento statico", "Compilatori" e "Interprete 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 di Javascript) richiede alcune ipotesi e ipotesi. Quando parli della legge - cioè pensando a eventuali casi giudiziari in cui due parti stanno discutendo - non avere una chiara distinzione è una COSA MALE.
Un codice standard con licenza GPL è piuttosto semplice nelle intenzioni. Chiunque utilizzi quel codice dovrebbe rilasciare il proprio codice a tutti gli utenti quando lo distribuiscono o lo vendono. Questo è il virus GPL che Richard Stallman voleva creare e ha fatto in modo chiaro e pulito.
La LGPL era originariamente un tentativo di consentire una "biblioteca" che non sarebbe virale. Volevano comunque che l'utente finale fosse in grado di sostituire la libreria da solo, da qui la distinzione tra collegamenti "statici" e "dinamici": l'utente poteva passare a una diversa libreria collegata dinamicamente, quindi non avrebbe bisogno di essere concesso in licenza come GPL. E un collegamento statico richiedeva che l'utente fosse GPL. La licenza in realtà parla 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 ("libreria") di roba LGPL è fangosa, nella migliore delle ipotesi.
Questo arriva al nocciolo della questione. Tutto ciò che non è chiaro è CATTIVO nel mondo delle leggi. Se sto cercando di costruire qualcosa usando il componente GPL o LGPL, voglio essere sicuro di quale sia la mia posizione legale in futuro se atterrerò in tribunale. Ma ad oggi, non sono sicuro perché in realtà non ci sono stati buoni casi giudiziari che stabiliscono un precedente legale, solo argomenti intellettuali su forum come questo.
Qui è dove l'eccezione del percorso di classe è preziosa. Indica chiaramente che il codice sotto la licenza è (L) GPL, ma qualsiasi cosa utilizzi quel codice può seguire qualunque licenza desideri. Nessun se, e, o ma. Se si modifica il codice principale (ad es. Correzione di bug), è comunque necessario rilasciare tali modifiche come parte della GPL. Ma l'utilizzo NON ti infetta.
Dal punto di vista aziendale, capisco perché alcuni non vogliono toccare il codice GPL con un polo da 10 '. La posizione legale non è chiara e il business potrebbe essere bloccato per un decennio lungo la strada quando verrà finalmente stabilito il precedente legale. Oppure potrebbero rimanere bloccati in tribunale per anni a lottare per stabilire il precedente legale. Indipendentemente da ciò, non vogliono rischiare il costo di quella battaglia. L'aggiunta della clausola di eccezione del percorso di classe elimina le questioni legali ed evita qualsiasi (grave) potenziale causa giudiziaria.
Quindi, per me, l'eccezione Classpath è molto diversa da LGPL. È un modo legalmente pulito per tracciare una linea luminosa che consente l'uso non GPL del codice sorgente o delle librerie GPL o LGPL.