Je veux utiliser un outil ( ffmpeg ) sous licence GNU Lesser General Public License, version 2.1 GNU General Public License (GPL) version 2 pour certains composants.
Pour ce faire, je l’appelle uniquement dans mon logiciel en tant que tel:
System.Diagnostics.Process p = new System.Diagnostics.Process(); p.StartInfo = new System.Diagnostics.ProcessStartInfo("lgplSoftware.exe", myParams); p.Start();
Je ne le change pas, je n’utilise qu’une version intégrée du logiciel pour Windows.
Wikipedia dit:
Un problème majeur lié à la GPL est de savoir si les logiciels non-GPL peuvent être liés dynamicment aux bibliothèques GPL. La GPL exige clairement que toutes les œuvres dérivées de code sous la GPL soient elles-mêmes sous la GPL. Bien qu’il soit entendu que la liaison statique produit des œuvres dérivées, il n’est pas clair si un exécutable lié dynamicment à un code GPL doit être considéré comme un travail dérivé (voir Copyleft faible). La communauté des logiciels libres / open-source est divisée sur ce problème. La FSF affirme qu’un tel exécutable est en fait un travail dérivé si l’exécutable et le code GPL “se font des appels de fonctions et partagent des structures de données”, certains acceptant (par exemple, Jerry Epplin). La liaison dynamic peut créer des œuvres dérivées mais ne pas être d’accord sur les circonstances.
Je suis vraiment confus par toutes ces choses juridiques. J’aurais aussi fait mon projet LGPL et sorti la source, mais ce n’est pas à moi.
La question est donc la suivante: puis-je l’utiliser comme je le fais actuellement ou vais-je être exécuté par une armée d’avocats?
La liaison a une signification spécifique dans la programmation informatique. Vous ne liez pas du tout le code GPL ou LGPL, vous ne faites que générer un fichier binary GPL ou LGPL, et la GPL et la LGPL le permettent. Vos utilisateurs sont libres d’utiliser eux-mêmes ce binary pour les fins prévues par leurs auteurs et sont libres de télécharger et de comstackr eux-mêmes la source, afin que toutes leurs libertés soient préservées et que vous ne violiez pas la GPL ou la LGPL. (C’est ce dont parle la FAQ de la GPL en “communiquant à distance”). Cela ne viole même pas l’esprit de la LGPL et de la GPL; ils tolèrent l’existence de logiciels propriétaires et supposent que, à certains moments, les programmes propriétaires généreront des programmes libres et vice versa. (Sinon, nous ne pourrions pas exécuter de logiciel sous GPL sous Windows.)
La GPL exige que les programmes propriétaires et sous GPL “ne soient pas combinés de manière à en faire un programme unique”. Si votre programme est complètement dépendant des exécutables GPL, de sorte qu’il ne serait pas utilisable sans eux même s’il s’agit d’un fichier binary autonome, cela pourrait vous placer sur des bases plus difficiles. (Et il est probablement temps de consulter votre avocat pour savoir avec certitude.)
De plus, même si vous ne vous êtes pas spécifiquement renseigné à ce sujet, gardez à l’esprit que la dissortingbution de logiciels sous GPL ou LGPL avec votre logiciel implique que vous deviez inclure une copie de la licence avec votre installateur et dissortingbuer également la source. code. Par exemple, si vous emballez votre application dans un programme d’installation et que vous incluez des copies d’exécutables GPL ou LGPL dans le programme d’installation, vous dissortingbuez du code LGPL ou GPL et vous devez faire des copies du code source. (en ligne, par courrier postal ou par CD, selon la manière dont vous dissortingbuez votre application). L’inclusion d’un lien vers le projet en amont n’est pas suffisante (du moins pour la version 2 de la GPL). Lisez la GPL et la LGPL pour plus de détails.
Corrigez-moi si je me trompe, mais je crois que la situation que vous décrivez est la suivante:
Si tel est le cas, vous ne créez pas de lien vers le programme sous licence GPL ou LGPL. Ainsi, vous n’êtes pas lié par les termes de la licence de ce programme. C’est en fait un moyen assez courant, bien que compliqué, d’éviter les problèmes de licence avec de tels exécutables.
Cependant, cela viole l’ esprit de la GPL et de la LGPL.
En général, c’est l’une des rares choses que je considère comme de la méchanceté de la GPL. Ce qui le rend pire, c’est à quel point il peut être contagieux. Pourtant, il y a un moyen de le contourner.
Commencez par définir votre propre interface pour envoyer des données. Cela sera utilisé entre votre application et une bibliothèque distincte que vous créerez. Ne réutilisez rien du code GPL, car cela relèverait de la licence GPL. Cependant, il n’ya rien de mal à utiliser une structure similaire . Comme cette interface est votre propre création, elle relèverait de votre propre licence. Vous êtes libre de l’utiliser comme bon vous semble.
Ensuite, créez une bibliothèque d’encapsulage autour du code GPL qui implémentera également votre interface personnelle. Cette bibliothèque serait soumise à la licence GPL et serait donc contaminée. Cependant, bien que votre interface soit exposée au monde extérieur, votre interface ne peut pas être contaminée. Ce n’est pas dérivé ou autre. C’est votre propre code à 100% et vous pouvez utiliser la même interface pour vous connecter à une autre bibliothèque.
Cette bibliothèque de wrapper servira de tampon de protection entre votre propre code propriétaire et le code GPL. Votre propre code ne serait jamais GPL car il n’utilise pas directement de code GPL. L’interface servira également de solution pour changer le code GPL par une solution différente.
C’est une astuce pour contourner la ressortingction de licence, mais comme l’interface est la vôtre et la vôtre uniquement, la GPL sera bloquée par celle-ci. Le code GPL et le code non-GPL seraient deux programmes différents s’ils étaient utilisés de cette manière.
Cependant, sachez que vous pourriez avoir besoin de conseils juridiques ici. Il n’y a pas beaucoup d’avocats ici à SO. Mais c’est un truc qui peut contourner cette licence GPL.
Je ne suis pas avocat et cela ne peut pas être un conseil juridique. Avec cela derrière nous, à mon humble avis, si le code que vous associez est LGPL, vous êtes au clair. Si c’est GPL techniquement, c’est un problème.
La différence entre GPL et LGPL réside dans le fait que la liaison avec le code LGPL ne déclenche pas le besoin de partager.
Vous pouvez le faire avec le logiciel LGPL, mais vous ne pouvez pas le faire avec un logiciel sous licence GPL.
LGPL 2.1 section 6 sur les œuvres combinées indique comment utiliser la bibliothèque dans votre programme source fermé. Vous pouvez appeler un programme sous licence LGPL comme vous le faites, et vous pouvez même y accéder dynamicment.
La GPL ne fait pas exception à la règle. Lorsque vous utilisez un programme / bibliothèque GPL dans le cadre de votre programme, pour qu’il soit perçu comme faisant partie intégrante de votre programme, vous devez tout concéder sous licence compatible GPL. Voir cette entrée de la GPL-FAQ .