Oracle semble attribuer une licence à tout son code source ouvert lié à Java sous la licence GPL avec une exception de chemin d' accès aux classes . D'après ce que j'ai compris, cela semble permettre de combiner ces bibliothèques avec votre propre code dans des produits qui ne doivent pas nécessairement être couverts par la GPL.
- Comment cela marche-t-il?
- Quels sont des exemples de la façon dont je peux et ne peux pas utiliser ces classes?
- Pourquoi cette nouvelle licence a-t-elle été utilisée contrairement à la LGPL, qui semble permettre à peu près les mêmes choses, mais qui est mieux établie et comprise?
- Quelles sont les différences avec la LGPL?
Réponses:
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.
la source
La GPL avec exception classpath se comporte comme LGPL pour la plupart des utilisations.
Cela signifie que vous devez être en mesure d'expédier le code source de la bibliothèque à la demande. Cela ne signifie pas que vous devez être en mesure d'expédier votre propre source. Cela signifie que vous n'avez pas besoin de fournir un moyen de remplacer la bibliothèque si vous établissez un lien statique avec celle-ci, mais vous ne pouvez pas utiliser de clé publique pour empêcher le remplacement.
la source
Il semble que les licences de style "GPL avec exception de chemin de classe" puissent être plus anciennes que LGPL.
Peut-être que la seule raison pour laquelle on l'utilise encore est que le code GPL ne peut pas être migré vers le code LGPL sans l'autorisation écrite de tous ceux qui ont déjà fourni du code.
la source