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 à libc
laquelle 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 .so
ou .dll
, est-ce que cela nécessiterait que mon application soit open source?
Réponses:
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).
la source
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
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.
la source