web-dev-qa-db-fra.com

Évitez les violations GPL en déplaçant la bibliothèque hors du processus

Supposons qu'il y a une bibliothèque sous licence sous GPL. Je veux utiliser c'est un projet de source fermée. Je suis suivant:

  1. Créez une petite application Wrapper autour de cette bibliothèque GPL qui écoute une prise, des messages d'analyse et une bibliothèque de gpl appelle. Renvoie ensuite les résultats.
  2. Libérer ses sources (pour se conformer à GPL)
  3. Créez un client pour cette enveloppe dans mon application principale et ne relâchez pas les sources.

Je sais que cela ajoute des frais généraux énormes par rapport à la liaison statique/dynamique, mais je suis intéressé par la manière théorique.

22
Andrey

légalement, je dirais que ce serait bien (mais je ne suis pas un avocat - consulter un avocat pour des conseils juridiques).

moralement, c'est assez répréhensible. Si vous n'aimez pas le GPL, la solution "appropriée" ne doit pas utiliser une bibliothèque GPL.

Edit: Pour clarifier, quelle que soit la position légale de la GPL en ce qui concerne si la liaison dynamique est autorisée ou non, le LGPL a été spécifiquement créé avec l'intention de permettre une liaison dynamique dans le cas des bibliothèques. Donc, il me semble clair que, en choisissant la GPL sur le LGPL, l'auteur de la bibliothèque faisait explicitement pour interdire la liaison dynamique. Utilisation d'un Technique signifie contourner une restriction légale légale qui exprime l'auteur L'intention explicite pour son code est ce qui est répréhensible, à mon avis.

Pour l'enregistrement, je ne suis pas personnellement un fan de la GPL (je préfère une licence plus permissive telle que MIT ou BSD). Cependant, je suis un énorme fan de respect du travail d'autres Les développeurs et s'ils ne veulent pas que vous liez leur bibliothèque avec des logiciels à source fermée, c'est la prérogative.

32
Dean Harding

Ianal Mais je crois que vous allez bien, la section pertinente de GPL3 est à la fin de la section 5:

Une compilation d'un travail couvert avec d'autres œuvres distinctes et indépendantes, qui ne sont pas par leurs extensions de nature du travail couvert et qui ne sont pas combinées à celui-ci, de manière à former un programme plus vaste, dans ou sur un volume d'un stockage ou d'une distribution Medium, est appelé un "agrégat" si la compilation et son droit d'auteur résultant ne sont pas utilisés pour limiter l'accès ou les droits légaux des utilisateurs de la compilation au-delà de ce que le permis de travail individuel. L'inclusion d'un travail couvert dans un agrégat ne provoque pas que cette licence s'applique aux autres parties de l'agrégat.

Cela va probablement dépendre de ce que votre "client" fait, la réponse de Mouviciel est probablement bonne guidance sur la façon de le faire en toute sécurité

Si vous pensez que votre application est une extension de la bibliothèque plutôt que quelque chose qui y est agrégée, alors vous avez probablement raison (vous devriez être dans un bon endroit pour le savoir) auquel cas votre meilleur pari est de contacter l'auteur et d'essayer d'obtenir un licence différente

Ceci semblerait soutenir ma position que cela est explicitement permis par le GPL, en supposant bien.

6
jk.

Pour autant que je sache, vous pouvez laisser votre logiciel fermé à la source tant qu'il est capable de faire son travail sans bibliothèque GPL. Voir la bibliothèque GPL sous forme de plugin dont l'absence ne rend pas votre logiciel inutile.

2
mouviciel
  1. essayez de trouver une alternative open source, s'il n'y en a pas, allez pour le gpl One;
  2. vérifiez si c'est GPLV3 avec clause d'afferon Si c'est le cas, il n'y a rien à faire;
  3. si c'est GPLV2, vous pouvez faire exactement comme vous le suggérez;

Il y a aussi une option quelque peu controversée. Sous la plupart des législatures, la liaison dynamique devrait être limitée pour "travail dérivé". La logique derrière ceci est que tout en reliant de manière dynamique, vous incluez simplement des fichiers d'en-tête de votre programme. Dans de nombreuses législations, les dossiers d'en-tête sont considérés comme une définition de l'API et sont explicitement exclus d'être protégés par le droit d'auteur. D'autre part, avec une liaison dynamique, la liaison réelle avec la bibliothèque GPL est effectuée sur le système d'utilisateur final. Mais comme je l'ai dit, il y a beaucoup de controverse avec ça, Stallman est fortement fud-ing.

1
vartec

Serait-il légal pour Adam Brown d'écrire un programme qui a utilisé une bibliothèque GPL et a agi en tant que "serveur", s'il a publié tout le code source à tout ce qui lui est associé, mais le seul code client qu'il publié était assez faible parce que c'est tout il avait écrit le côté client? Je ne vois aucune base que ce soit pour penser que cela ne serait pas.

Si Charles Dover a trouvé le "serveur" d'Adam Brown et a décidé d'écrire un programme à source fermé pour communiquer avec elle, la GPL contraignait-elle ses actions de quelque manière que ce soit? Pas que je puisse voir, car sa seule utilisation du logiciel GPL'ed serait comme les binaires qu'il a reçus d'Adam Brown. S'il a également distribué des fichiers binaires d'Adam, il devait également inclure un lien vers la source, mais rien d'autre dans la GPL n'affecterait l'un des Code de Charles.

En ce qui concerne une personne qui écrit un serveur sous licence GPL, puis utilise le serveur pour ses propres fins fermées, je ne penserais pas qu'il devrait y avoir un problème juridique si lors de la rédaction du serveur, il a fait un effort de bonne foi pour le faire utile aux autres qui pourraient souhaiter utiliser le code GPL fourni de la même manière. En particulier, la documentation publiquement libérée de l'interface devrait être suffisante pour permettre à un programmeur compétent d'écrire du code pour un serveur qui serait accepté par le programme client, tout comme l'original serait et d'écrire des programmes clients qui utiliseraient serveur de la même manière que l'application de l'auteur.

0
supercat