Puis-je créer un lien vers une bibliothèque GPL à partir d'une application source fermée?

34

D'accord, avant que tout le monde ne crie sur les questions en double, oui, j'ai déjà vu plusieurs questions comme celle-ci ici. Mais aucun ne répond à la question.

Si je crée un lien avec une bibliothèque éditée sous GPL sans modifier cette bibliothèque, dois-je publier mon code source?

Selon cette question , la réponse est oui!

Mais cette réponse ne me satisfait pas. La réponse dit essentiellement que je ne peux en aucun cas utiliser le code GPL sans rendre mon code open source.

Mais si la précédente est vraie, cela indiquerait qu'aucune personne ou organisation ne pourrait jamais publier de logiciel propriétaire sur Linux. Ce qui doit être faux. Tout simplement parce que pour qu'une application puisse faire quelque chose d'utile, ouvrir des fichiers, écrire sur la console, créer des connexions TCP, l'application doit être liée à libclaquelle est GPL-ed.

Donc ma question est la suivante: si la GPL déclare, comme le disent toutes les réponses précédentes sur le site, qu'un programme qui relie à un autre programme GPL doit être la GPL elle-même, comment est-il possible de créer / publier / vendre une application propriétaire du tout ce qui fonctionne sous Linux? Étant donné que, comme je l'ai décrit ci-dessus, cette application doit être appréciée en code GPL uniquement pour fonctionner sous Linux.

Un exemple plus pratique, disons que je crée un lien vers une bibliothèque partagée qui est GPL-ed dans une application non-GPL, est-ce que cela forcerait l'application non-GPL à devenir GPL-ed? Plus précisément, si j'utilise une bibliothèque GPL sans la modifier, puis la distribue en tant que .soou .dll, est-ce que cela nécessiterait que mon application soit open source?

john-charles
la source
9
Vous continuez à poser la même question dans l'espoir d'une réponse différente. Vous ne pouvez pas utiliser GPL dans un logiciel non compatible GPL. Mort simple.
Andrew T Finnell
1
Le fait-il vraiment? Blimey. La réponse est simple; pourquoi ne pas entrer en contact avec les auteurs du programme GPL et leur demander si cela les dérange? S'ils disent que c'est bien c'est grandiose! S'ils s'y opposent, alors essayer de les armer avec des détails légaux va vous rendre très très impopulaire, peu importe à quel point vous avez raison.
James
3
@James: S'ils ont choisi la GPL, c'est une déclaration assez forte qui les dérange. Les gens qui ne se soucient pas de choisir MIT ou BSD ou LGPL en premier lieu. Il est très rare de voir une bibliothèque sous GPL complète. Lorsque vous le faites, vous pouvez être presque certain que c'était intentionnel.
Jan Hudec
@Jan Peut-être, dépend de l'application et de l'utilisation prévue de john-charles. Mais je pense juste que c'est étrange comment JC aborde cela. Jc essaie-t-il simplement d'obtenir la réponse qu'il veut? Il y a beaucoup de questions sur ce site qui pourraient être résolues avec un "juste leur parler, pour crier à haute voix". :-)
James
@JanHudec: Je suis d'accord. J'ai argumenté pour libérer une partie de l'IP de notre entreprise sous la forme d'une bibliothèque sous GPL, car cela serait essentiellement inutile pour nos concurrents et toujours très utile pour notre communauté.
MSalters

Réponses:

33

Si vous liez à une bibliothèque GPL, vous avez créé un travail dérivé et votre code doit être GPL - c'est différent du code L GPL qui permet spécifiquement la liaison dynamique de code sous licence différente. Les bibliothèques système, y compris libc, sont toutes LGPL.

Il existe également une exemption spéciale pour les en-têtes du noyau Linux et libgcc (la bibliothèque appelée implicitement par le compilateur).

Martin Beckett
la source
19
Aucune libc n'est LGPL - vous êtes autorisé à vous lier aux programmes LGPL. Il existe également une exemption générale pour les appels noyau / système, il n'y a donc aucun argument concernant ce qu'est un appel système vs bibliothèque
Martin Beckett
6
LGPL n'est pas une nouvelle licence, elle a été lancée pour la première fois en 1991. libc a toujours été LGPL.
FigBug
4
@ john-charles - c'est pourquoi LGPL a été inventé en 1991 avec gplv2. AsLinux (et d'autres noyaux FOSS) est devenu populaire - et c'est pourquoi il s'appelait à l'origine Library-GPL - il y avait une crainte qu'il y ait une profusion de libc par chaque fournisseur de compilateur si les applications commerciales ne pouvaient pas utiliser gcc.
Martin Beckett
1
@MartinBeckett C'est l'avis de la FSF (vous ne pouvez pas créer de lien vers le code GPLd si vous ne concédez pas le vôtre sous GPL), mais ce n'est pas incontesté. Il n'y a pas eu de procès majeur (à ma connaissance, si je me trompe, veuillez me corriger) pour confirmer l'opinion de la FSF sur la liaison.
K.Steff
2
@ john-charles - oui, toute la common law est testée par les tribunaux, mais il y a beaucoup de jurisprudence sur le droit d'auteur. Si je prétends que ma copie non modifiée d'un DVD Batman n'est pas une œuvre dérivée et que je peux donc en vendre autant que je le souhaite - il est peu probable que la MPAA soit d'accord! Le copyleft GNU utilise le droit d'auteur pour appliquer un accord de licence de manière assez intelligente - l'une des raisons pour lesquelles il n'a jamais été testé devant les tribunaux est que tout le monde a toujours réglé
Martin Beckett
7

Dans le cas général, vous avez raison, vous ne pouvez pas créer de lien vers une bibliothèque GPL, distribuer votre code, puis ne pas publier votre code en tant que GPL.

Cependant, il y a l' exception de la bibliothèque système qui est la façon dont les gens se lient aux bibliothèques Linux et publient toujours leur produit sous des licences non GPL.

Une autre exception est lorsque les deux licences sont compatibles l'une avec l'autre. Consultez la page de licence compatible FSF pour de plus amples informations.

Enfin, les auteurs de la bibliothèque GPL'd peuvent créer des exceptions spécifiques, telles que pour une utilisation non commerciale ou amateur.

Malheureusement, il y a trop de potentialités pour avoir une règle dure et rapide. Sans plus de détails dans votre question, votre réponse est "probablement pas possible, mais peut-être que vous le pouvez."


la source
1
Le SLE répond également à la question d'un programme étant un travail dérivé du compilateur car il contient un analyseur généré par le compilateur
Martin Beckett
3
Non, SLE permet de développer du code GPL en utilisant une chaîne d'outils non libre et un runtime standard, par exemple Visual Studio. Il ne permet jamais de lier une application non libre à la bibliothèque GPL.
Jan Hudec
1
La sortie d'un programme GPL n'est pas couverte par la GPL. Voir gnu.org/licenses/gpl-faq.html#GPLOutput
Maximus Minimus
-1

La réponse courte est que personne ne sait vraiment. (Cette discussion concerne la GPL et non la LGPL.)

La GPL a un langage vague à propos des «œuvres dérivées», que différentes personnes interprètent de différentes manières. Le consensus semble être que la liaison statique viole, mais l'appel via des interruptions système (par exemple vers le noyau Linux) ne le fait pas. Ce dernier est basé principalement sur le fait que des entreprises comme Oracle livrent sur Linux et n'ont pas été poursuivies - ce n'est pas clair dans la licence.

La liaison dynamique n'est pas claire, 70/30 disent probablement qu'elle viole. Appeler un programme à l'aide de canaux ou d'appels de procédure distante, probablement 30/70 ne viole pas, même si c'est essentiellement la même chose. Appeler via COM, ou utiliser un bocal Java, n'est pas du tout clair.

Fondamentalement, s'il y a un doute et que vous n'aimez pas les avocats, restez à l'écart de GPL.

Tuntable
la source
1
La GPL n'est pas vraiment vague, et la jurisprudence est bien discutée autour de la question de savoir ce qui est et n'est pas un travail dérivé. La différence entre l'interface syscall Linux et libc est que la première est nécessaire pour faire fonctionner un logiciel (qui a été affirmé comme une exception au droit d'auteur) tandis que la seconde ne l'est pas (vous pouvez implémenter la vôtre). Cela n'a rien à voir avec la façon dont les opérations sont invoquées, ce qui n'a aucune pertinence juridique. Je ne suis pas un avis juridique.
Jules
"70/30 disent qu'il viole" et "30/70 ne viole pas" - est-ce intentionnel que le rapport de violer / ne viole pas est le même? "même si c'est essentiellement la même chose" suggère qu'il était censé être différent.
Mateusz Konieczny