Supposons qu'il existe une bibliothèque sous licence GPL. Je veux l'utiliser est un projet open source. Je fais ce qui suit:
- Créez une petite application wrapper autour de cette bibliothèque GPL qui écoute le socket, analyse les messages et appelle la bibliothèque GPL. Retourne ensuite les résultats.
- Libérer ses sources (pour se conformer à la GPL)
- Créez un client pour ce wrapper dans mon application principale et ne libérez pas de sources.
Je sais que cela ajoute une énorme surcharge par rapport à la liaison statique / dynamique, mais je m'intéresse à la manière théorique.
Réponses:
Légalement , je dirais que ce serait OK (mais je ne suis pas avocat - consultez un avocat pour obtenir des conseils juridiques).
Moralement , c'est assez répréhensible. Si vous n'aimez pas la GPL, alors la solution "appropriée" n'est pas d'utiliser une bibliothèque GPL.
Edit : Pour clarifier, quel que soit le statut juridique de la GPL quant à savoir si la liaison dynamique est autorisée ou non, la LGPL a été spécifiquement créée dans le but de permettre la liaison dynamique dans le cas des bibliothèques. Il me semble donc clair qu'en choisissant la GPL plutôt que la LGPL, l'auteur de la bibliothèque le faisait explicitement pour interdire les liens dynamiques. À mon avis, utiliser un moyen technique pour contourner une restriction légale qui exprime l'intention explicite de l'auteur pour son code est ce qui est répréhensible.
Pour mémoire, je ne suis pas personnellement fan de la GPL (je préfère une licence plus permissive comme le MIT ou BSD). Cependant, je suis un grand fan du respect du travail des autres développeurs, et s'ils ne veulent pas que vous liez leur bibliothèque avec un logiciel open source, alors c'est une prérogative.
la source
IANAL mais je pense que vous êtes d'accord, la section pertinente de la GPL3 est à la fin de la section 5:
Cela va probablement dépendre exactement de ce que fait votre «client», la réponse de mouviciel est probablement un bon guide 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 d'agrégé avec elle, alors vous avez probablement raison (vous devriez être au bon endroit pour le savoir), auquel cas votre meilleur pari est de contacter l'auteur et d'essayer d'obtenir un licence différente
cela semblerait étayer ma position selon laquelle cela est explicitement autorisé par la GPL, en supposant qu'il soit fait correctement.
la source
Voir le J'aimerais incorporer un logiciel sous GPL dans mon système propriétaire. Puis-je faire ceci?
La question est: votre application wrapper est-elle utile à elle seule? Si vous avez créé une version de ligne de commande de votre programme qui était GPL, vous pouvez libérer l'interface graphique sous une licence différente. Par exemple, vous pouvez créer un IDE pour gcc qui était une source fermée ou un outil de diff visuel basé sur diff.
Cependant, si vous avez terminé la bibliothèque n'a pas d'autre utilité que d'être utilisé par votre programme, et que vous ne programmez pas sans cette bibliothèque, c'est un travail dérivé et devrait être publié sous la GPL.
la source
OMI, légalement c'est OK. (IANAL) Pour améliorer l'aspect moral du problème, ne l'appelez pas un "wrapper FooBar qui rend FooBar légalement disponible pour MyClosedApp", appelez-le un serveur. Faites-en un joli petit programme open source qui "permet de faire FooBar sur le net". Mettez-le sur SourceForge ou dédiez-lui un site Web, avec la page du projet et des instructions et d'autres choses. Ensuite, laissez "MyClosedApp" utiliser simplement le "serveur FooBar".
la source
Autant que je sache, vous pouvez laisser votre logiciel en source fermée tant qu'il est capable de faire son travail sans bibliothèque GPL. Voyez la bibliothèque GPL comme un plugin dont l'absence ne rend pas votre logiciel inutile.
la source
Il existe également une option quelque peu controversée. Dans la plupart des législatures, le lien dynamique devrait être la limite du "travail dérivé". La logique derrière cela est que, tout en liant dynamiquement, vous incluez simplement des fichiers d'en-tête dans votre programme. Dans de nombreuses législations, les fichiers d'en-tête sont considérés comme des définitions d'API et explicitement exclus du droit d'auteur. D'un autre côté, avec la liaison dynamique, la liaison réelle avec la bibliothèque GPL se fait sur le système de l'utilisateur final. Mais comme je l'ai dit, il y a beaucoup de controverse, Stallman est fortement FUD contre cela.
la source
Serait-il légal pour Adam Brown d'écrire un programme qui utilise une bibliothèque GPL et agissait comme un "serveur", s'il libérait tout le code source pour tout ce qui lui est associé, mais le seul code client qu'il a publié était assez faible parce que c'est tout il avait écrit côté client? Je ne vois aucune raison de penser que ce ne serait pas le cas.
Si Charles Dover trouvait le "serveur" d'Adam Brown et décidait d'écrire un programme à code source fermé pour communiquer avec lui, la GPL limiterait-elle ses actions de quelque façon que ce soit? Pas que je puisse voir, puisque sa seule utilisation des logiciels sous GPL serait comme les binaires qu'il a reçus d'Adam Brown. S'il distribuait les binaires d'Adam, il devrait également inclure un lien vers la source, mais rien d'autre dans la GPL n'affecterait le code de Charles.
En ce qui concerne une personne écrivant un serveur sous licence GPL, puis utilisant le serveur à ses propres fins de source fermée, je ne pense pas qu'il devrait y avoir de problème juridique si, en écrivant le serveur, il a fait un effort de bonne foi pour le faire utile à ceux qui souhaiteraient utiliser le code GPL fourni de la même manière. En particulier, la documentation publique 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 exactement comme l'original, et d'écrire des programmes clients qui utiliseraient le serveur de la même manière que l'application de l'auteur.
la source