Je prévois de développer un logiciel commercial à l'aide d'un logiciel LGPL.
Dans le logiciel LGPL que j'utilise certaines fonctions dans une classe ne sont pas entièrement implémentés. Je souhaite modifier le code LGPL afin que les fonctions de classe et non mise en œuvre soient rendues visibles en dehors de la DLL en ajoutant DllexPort auprès de la classe et en ajoutant le mot-clé virtuel en face de la fonction.
Ensuite, je prévois de mettre en œuvre ces fonctions dans mon logiciel exclusif. Je suis prêt à distribuer le code LGPL modifié, mais pas de logiciel propriétaire qui implémente les fonctions de la manière dont je veux.
Est-ce que cela violer les termes et conditions LGPL?
C'est une question complexe, mais je crois que ce que vous proposez n'est pas autorisé.
Vous suggérez d'ajouter des crochets dans la bibliothèque pour le faire plus facile Pour vous à Sous-classe la bibliothèque Et donc, à tout le moins. Contourner le Spirit de la LGPL.
Le problème est que si vous sous-classe une classe à la sous-classe soumise à la licence [~ # ~ # ~] lgpl [~ # ~] Licence dans votre propre code, votre travail devient A travail Basé sur la bibliothèque, plutôt que A travail qui utilise la bibliothèque ce qui signifie que votre code est un travail dérivé qui est couvert en vertu de la section 2 ( LGPL V2.1 ) plutôt qu'on couvert en vertu de la section 6 ( LGPL V2.1 ) . C'est à dire. Il devient soumis au LGPL !
Je pense que Stephen Colebourne fournit n bon résumé sur JavaLby.
Je ne suis pas un gros fan du genou-jerk Parlez à votre avocat Suggestions, mais Dans ce cas Je pense que ce serait la peine de le faire si Prévoyez de procéder à cela, sinon vous pourriez avoir une méchante lettre de la Free Software Foundation Équipe juridique.
Alternativement, vous pouvez demander à [~ # ~] FSF [~ # ~ ~] directement. De leur page de contact :
Pour des questions sur la licence de logiciels libres et le droit d'auteur
S'il vous plaît vérifier notre licence FAQ , la ( liste des licences , Informations générales de copieftft et pages connexes . Si les questions restent, email <[email protected]>.
Incidemment, dans la question connexe réflexion et le LGPL , GBJBAANB réponses avec la perspective LGPL 3. .
Standard Je ne suis pas un avocat de non-responsabilité.
LGPL nécessite des modifications au code source de la bibliothèque à distribuer à n'importe qui utilisant votre code. Il ne doit pas non exigent que votre code, qui utilise la bibliothèque, soit ouvert et publié sous la même licence.
Wikipedia Pour une description plus détaillée, mais non avocate de LGPL, y compris une section sur héritage de classe .
Je suppose: (mais ianal) vous devriez Libération comme source ouverte la bibliothèque modifiée comme code LGPL et alors DÉPASSER dans un programme commercial. Ça marcherait. Effectivement, vous finiriez par avoir une fourchette open source de la bibliothèque, puis vous vendez une extrémité avant.
Mais comme beaucoup d'autres disaient légitimement, Demandez à la FSF: C'est un scénario patologique intrigant que vous avez là; Ils pourraient se demander autant que vous le faites si c'est applicable ou non. (ou au moins la peine de prendre suffisamment de choses pour publier A FAQ entrée sur le sujet)
https://www.gnu.org/licenses/lgpl-java.html
Si vous distribuez un Java Application qui importe des bibliothèques LGPL, il est facile de se conformer à la LGPL. La licence de votre application doit permettre aux utilisateurs de modifier la bibliothèque et d'inverser l'ingénieur de votre code pour déboguer ces modifications. Cela ne signifie pas que vous devez fournir un code source ou des détails sur les internes de votre application. Bien sûr, certaines modifications peuvent apporter à la bibliothèque peut casser l'interface, rendre la bibliothèque incapable de travailler avec votre application. Vous ne pouvez pas Il faut s'inquiéter de ces personnes qui modifient la bibliothèque sont responsables du fonctionnement de son fonctionnement.
En bref, il n'y a pas de problème d'héritage tant que vous ne modifiez pas le code de la bibliothèque lui-même, mais même si vous le modifiez, vous devez libérer uniquement le code modifié de la bibliothèque et non votre code d'application.