Tout d'abord, je ne suis pas un avocat. Mais j'ai étudié de nombreuses licences et je comprends les problèmes qui les concernent.
Deuxièmement, je sais que c’est une vieille question, mais je pense que c’est toujours un point de confusion et d’inquiétude. Si ce n'est pas un sujet de préoccupation, cela devrait l'être. Le choix d'une licence est un gros problème que vous ne pouvez pas modifier de manière triviale, surtout si plusieurs contributeurs sont impliqués.
(L) GPL a été écrit avec C / C ++ à l’esprit, malheureusement. Il parle de "code source", "code objet", "liaison dynamique", "liaison statique", "compilateurs" et "interpréteur de code objet". Donc, traduire cela pour d'autres langages qui ne suivent pas les mêmes techniques de compilation (comme le bytecode de Java, la compilation juste-à-temps de Python ou la nature interprétée par Javascript) nécessite quelques devinettes et suppositions. Lorsque vous parlez de droit - par exemple en pensant à des procès ultérieurs où deux parties se disputent - ne pas avoir de distinction nette est un MAUVAIS OBJET.
Un morceau de code sous licence GPL standard est assez simple d’intention. Quiconque utilise ce code est censé publier son code à tous les utilisateurs lorsqu'ils le distribuent ou le vendent. C'est le virus sous GPL que Richard Stallman voulait créer et a fait clairement et proprement.
La LGPL était à l'origine une tentative d'autoriser une "bibliothèque" qui ne serait pas virale. Mais ils souhaitaient toujours que l’utilisateur final puisse remplacer la bibliothèque elle-même, d’où la distinction entre les liens «statiques» et «dynamiques»: l’utilisateur pouvait basculer vers une autre bibliothèque liée dynamiquement, de sorte qu’il n’aurait pas à le faire. être sous licence GPL. Et un lien statique exigeait que l'utilisateur soit sous licence GPL. La licence parle en réalité de "fichiers d'en-tête", qui sont clairs en C / C ++ mais qui ne sont évidemment pas clairs lorsque vous êtes dans les mondes Java, Python, Javascript, etc. Donc, la L ("bibliothèque") de documents LGPL est boueuse, au mieux.
Cela touche au cœur de la question. Tout ce qui manque de clarté est MAUVAIS dans le monde des lois. Si je cherche à construire quelque chose en utilisant les composants GPL ou LGPL, je veux être certain de mon statut juridique à l’avenir si je parviens devant un tribunal. Mais à ce jour, je n'en suis pas certain, car il n'y a pas vraiment eu de bonnes affaires judiciaires créant un précédent juridique, il n'y a que des arguments intellectuels sur des forums comme celui-ci.
Voici où l'exception Classpath est inestimable. Il est clairement indiqué que le code sous la licence est (L) GPL, mais tout utilisateur utilisant ce code peut suivre la licence de son choix. Pas de si, de et, ou de mais. Si vous modifiez le code principal (par exemple, en corrigeant des bugs), vous devez toujours publier ces modifications dans le cadre de la licence GPL. Mais l'utilisation ne vous infecte pas.
D'un point de vue commercial, je comprends pourquoi certains ne veulent pas toucher au code GPL avec un pôle de 10 '. La situation juridique n'est pas claire et l'entreprise risque d'être lancée dans une décennie quand un précédent juridique sera enfin créé. Ou bien ils pourraient être bloqués devant un tribunal pendant des années pour se battre pour établir un précédent juridique. Peu importe, ils ne veulent simplement pas risquer le coût de cette bataille. L'ajout de la clause d'exception Classpath élimine les problèmes juridiques et évite tout litige (grave) potentiel.
Donc, pour moi, l’exception Classpath est très différente de LGPL. C'est un moyen juridiquement propre de tracer une ligne claire permettant l'utilisation du code source ou des bibliothèques GPL ou LGPL sans utiliser la GPL.