51 votes

Puis-je appeler dynamiquement un logiciel LGPL / GPL dans mon application source fermée?

Je veux utiliser un outil (ffmpeg) qui est sous licence GNU Lesser General Public License, version 2.1 GNU General Public License (GPL) version 2 pour certains composants.

Pour ce faire, j'ai seulement l'appeler 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 n'ai pas le changer, je ne l'utilise une version intégrée du logiciel pour windows.


Wikipédia dit:

Une clé de litige lié à la GPL est qu'ils soient ou non GPL logiciel peut être dynamiquement lié à GPL bibliothèques. Le GPL est clair, en exigeant que toutes les œuvres dérivées de code sous GPL eux-mêmes doivent être sous licence GPL. Il est entendu que statique reliant produit des œuvres dérivées, il n'est pas clair si un exécutable qui lie dynamiquement un code GPL doit être considérée comme une œuvre dérivée (voir Copyleft Faible). L' libre/open-source, la communauté du logiciel est divisés sur la question. La FSF affirme qu'un tel exécutable est en effet un dérivés de travail si l'exécutable et Code GPL "faire des appels de fonction pour chaque des autres et de partager des structures de données," avec d'autres, d'accord (par ex. Jerry Epplin), tandis que certains (par ex. Linus Torvalds) conviennent que dynamique la liaison peut créer d'œuvres dérivées, mais en désaccord sur les circonstances.


Je suis vraiment confus par toutes ces choses. J'aurais fait mon projet LGPL ainsi et a publié la source, mais ce n'est pas à moi.

La question est donc: puis-je l'utiliser comme je le fais maintenant, ou vais-je être exécuté par une armée d'avocats?

59voto

Josh Kelley Points 24438

La liaison a une signification particulière dans la programmation informatique. Vous n'êtes pas de liaison sous licence GPL ou LGPL ed code à tous, vous êtes seulement à la ponte d'une sous licence GPL ou LGPL ed binaire, et la GPL et de la LGPL permis ce. Vos utilisateurs sont libres d'utiliser les binaires eux-mêmes, pour ses auteurs fins prévues et sont libres de télécharger et compiler les sources elles-mêmes, de sorte que tous leurs libertés sont conservés, et vous n'êtes pas en violation de la GPL ou LGPL. (C'est ce que la FAQ parle par "communicat[ing] longueur de bras.") Ce n'est même pas une violation de l'esprit de la LGPL et GPL; ils tolèrent l'existence des logiciels propriétaires et supposons qu'à un certain point des programmes propriétaires se frayer programmes gratuits et vice versa. (Sinon, nous n'avons pas pu exécuter n'importe quel logiciel sous GPL sous Windows.)

La GPL exige que les propriétaires et sous licence GPL programmes "ne sont pas combinés de façon à créer de fait un seul et même programme." Si votre programme est entièrement dépendant de la sous GPL fichiers exécutables, de sorte qu'il ne serait pas utilisable sans eux, même s'il est autonome binaire, c'est peut-placez vous sur shakier sol. (Et il est probablement temps de consulter votre avocat pour savoir à coup sûr.)

Aussi, bien que vous n'avez pas à poser des questions sur ce, gardez à l'esprit que la distribution de GPL ou LGPL ed logiciel avec votre logiciel signifie que vous êtes tenu d'inclure une copie de la licence auprès de votre installateur, et également de distribuer le code source. Par exemple, si vous créez un package de votre application dans un programme d'installation et inclure des copies sous licence GPL ou LGPL ed exécutables dans le programme d'installation, vous êtes distribuer LGPL ed ou sous GPL code et doit faire des copies du code source (que ce soit en ligne, par courrier électronique à l'offre, ou par CD, en fonction de comment vous distribuez votre application). Y compris un lien vers le projet en amont n'est pas suffisante (au moins pour la version 2 de la GPL). Lire la GPL et de la LGPL pour plus de détails.

3voto

mipadi Points 135410

Corrigez-moi si je me trompe, mais je crois que la situation que vous décrivez est comme ceci:

  1. Vous avez une licence GPL ou LGPL programme, construit comme un exécutable séparé, avec l'absence de modification que vous avez faite.
  2. Vous êtes à la construction d'un fermé source de l'application qui a besoin de la fonctionnalité de la GPL ou LGPL programme.
  3. Dans votre programme, vous utilisez votre cadre ou le système d'exploitation d'installations pour l'exécution d'un autre, distinct de l'exécutable.
  4. Vous êtes à l'aide de la sortie de l'exécutable de votre programme.

Si c'est le cas, vous n'êtes pas vraiment reliant la GPL ou LGPL-programme sous licence. Ainsi, vous n'êtes pas lié par les termes de la licence de ce programme. C'est en fait assez commun, si complexe, de manière à éviter les problèmes de licences avec de tels fichiers exécutables.

Toutefois, il ne violer l' esprit de la GPL et de la LGPL.

2voto

Wim ten Brink Points 12422

En général, c'est l'une des rares choses que je considère être un vrai méchant de la GPL. Ce qui est pire, c'est comment contagieuse, il peut être. Encore, il y a un moyen de la contourner.

Tout d'abord, commencez par définir votre propre interface pour envoyer des données. Il sera utilisé entre votre application et d'une bibliothèque distincte que vous allez créer. Ne pas ré-utiliser quoi que ce soit à partir du code GPL car ce serait tomber sous la licence GPL. Cependant, il n'y a rien de mal avec l'aide d'un analoguede structure. Depuis cette interface est votre propre création, il tomberait sous votre propre licence. Vous êtes libre de l'utiliser comme vous le souhaitez.

Ensuite, créer un wrapper de la bibliothèque autour de la GPL code qui permettra également de mettre en œuvre votre interface personnelle. Cette bibliothèque serait tomber sous la licence GPL et donc il est contaminé. Cependant, bien qu'il serait exposer votre interface avec le monde extérieur, votre interface ne peut pas être contaminé. Il n'est pas dérivé ou quoi que ce soit. C'est 100% de votre propre code et vous pouvez utiliser la même interface pour se connecter à une autre bibliothèque.

Cette bibliothèque d'encapsulation servira de protection de la zone tampon entre votre propre convenance code et le code GPL. Votre propre code ne serait jamais GPL depuis il ne l'utilise pas tout code GPL directement. L'interface servira également comme une solution pour modifier le code GPL par une solution différente.

C'est une astuce pour contourner la restriction de licence, mais depuis l'interface est le vôtre et le vôtre seulement, le GPL sera bloqué par. LE code GPL et non-GPL code serait de deux programmes différents, si elle est utilisée de cette façon.

Pourtant, être conscient de ce que vous pourriez avoir besoin de quelques conseils juridiques ici. Il n'y a pas beaucoup d'avocats ici. Mais c'est une astuce qui permet de contourner cette licence GPL.

0voto

Chen Levy Points 4415

Je ne suis pas avocat et il ne peut s'agir d'un conseil juridique. Avec cela derrière nous, à mon humble avis, si le code que vous liez est LGPL, vous êtes en clair. Si c'est techniquement GPL, 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 partage.

0voto

haffax Points 2837

Vous pouvez faire cela avec LGPL les logiciels, mais vous ne pouvez pas faire cela avec un logiciel sous licence GPL.

LGPL 2.1 de l'article 6 sur les œuvres combinées dit comment vous pouvez utiliser la bibliothèque dans votre code source fermé le programme. Vous pouvez faire appel à un sous LGPL programme comme vous le faites, et vous pouvez même ajouter un lien dynamique.

La GPL n'a pas une telle exception, lorsque vous utilisez un programme sous GPL/bibliothèque dans le cadre de votre programme, de sorte qu'il est perçu comme une partie intégrante de votre programme, puis vous avez tout sous licence GPL compatible avec la licence. Voir ce GPL-FAQ.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X