Est-ce que le code GPL liant avec la bibliothèque propriétaire qui est créée dépend-première? [fermé]

StackOverflow https://stackoverflow.com/questions/1854843

Question

Microsoft crée leurs fenêtres et de la bibliothèque MFC DLL, etc. Une open source DÉVELOPPER écrire une nouvelle application MFC et libérer le code source GPL. L'application doit créer un lien avec les MS DLL / bibliothèques pour exécuter dans Windows, mais je ne pense pas que quiconque puisse dire que nous avons maintenant le droit de forcer leur GPL DLL de Microsoft.

Est-ce que cela signifie la licence GPL est vraiment dépend que l'on est « créé » d'abord? Si la bibliothèque exclusive est créée d'abord (comme DLL Windows) qui est publié sans lien et un code GPL et plus tard un programme GPL est lié avec elle, le programme GPL ne peut pas convertir la bibliothèque exclusive en GPL, bien que le code propriétaire est « lié » avec le code GPL.

Si tel est le cas, peut entreprise comme NVidia ou RealNetworks font ce qui suit? Supposons qu'ils aiment garder la bibliothèque du moteur de décodage multimédia HDDecoding propriétaire privé, mais ils veulent aussi « effet de levier » le code opensource sous licence GPL pour mettre en valeur leur matériel.

  1. Ils créent une bibliothèque exclusive pour faire le décodage des médias et libérer un exemple de code.
  2. Quelqu'un (développement opensource) crée « plug-in » qui est lié dans cette bibliothèque exclusive pour le code sous licence GPL, comme XBMC, Mplayer ou VLC.
  3. Peut-on dire que depuis ils ont créé la bibliothèque exclusive d'abord (comme MS créer toutes les DLL premier), les programmes GPL qui pointent avec leur code propriétaire ne les Covert pas dans le code GPL.

On peut en théorie faire valoir que le développeur de opensource qui crée le fichier vlc.exe GPL qui lien avec la bibliothèque de décodeur multimédia propriétaires NVidia viole la licence GPL.

Est-ce que cela signifie tous les programmes en cours d'exécution GPL dans Windows tels que VLC, git, Cygwin, etc sont tous violer la licence GPL, car ils ont besoin certainement un lien avec les bibliothèques Microsoft propriétaires Windows pour exécuter.

Cas n ° 2: Quel est le problème avec ceci:

NVidia peut créer une nouvelle bibliothèque d'abstraction matérielle qui cache les dernières fonctions graphiques. Ils créent également un pilote FreeBSD avec cette bibliothèque et de libérer le code source du pilote BSD, mais pas le code source bibliothèque.

Quelqu'un (développeur Linux) peut mettre en œuvre le pilote linux qui relie avec cette bibliothèque pour créer un pilote graphique NVidia pour Linux. Mais depuis NVidia n'a pas fait cela, ils peuvent garder la source de la bibliothèque tout en « caché » activer le « support Linux ».

Il viole certainement l'esprit de GPL.

Est-ce que cela signifie que l'exécution de tout exe créé avec la source sous licence GPL dans Windows / Mac / iPhone / PSP3 viole aussi l'esprit de GPL?

Était-ce utile?

La solution

De la licence GNU GPL FAQ:

  

Puis-je appliquer la GPL pour un   plug-in pour un programme non-libre?

     

Si le programme utilise fork et exec pour   invoquer des plug-ins, puis les plug-ins sont   programmes distincts, de sorte que la licence   le programme principal ne fait pas d'exigences   pour eux. Vous pouvez donc utiliser la GPL pour un   plug-in, et il n'y a pas spéciale   exigences.

     

Si le programme lie dynamiquement   plug-ins, et ils font des appels de fonction   les uns aux autres et partager des données   structures, nous croyons qu'ils forment un   seul programme, qui doit être traité   comme une extension à la fois le principal   programme et des plug-ins. Ça signifie   cette combinaison de GPL-couverte   plug-in avec le programme principal non-free   serait contraire à la GPL. Cependant, vous   peut résoudre ce problème juridique par   l'ajout d'une exception à la vôtre plug-in   licence, donnant la permission de faire le lien   avec le programme principal non-libre.

     

Voir aussi la question Je vous écris   logiciel libre qui utilise un non-libre   bibliothèque .

  

Quels sont les problèmes juridiques viennent si je l'utilise   bibliothèques GPL incompatibles avec la GPL   logiciel

     

Les deux versions de la GPL ont une   exception à leur copyleft, communément   appelé l'exception de la bibliothèque du système.   Si les bibliothèques GPL incompatibles vous   veulent utiliser répondent aux critères d'une   bibliothèque système, alors vous ne devez pas   faire quelque chose de spécial pour les utiliser; le   obligation de distribuer le code source   pour l'ensemble du programme ne comprend pas   ces bibliothèques, même si vous   distribuer un exécutable lié   les contenant.

     

Les critères de ce qui compte comme   « Bibliothèque système » varie entre   différentes versions de la GPL. GPLv3   définit explicitement « Bibliothèques Système »   dans la section 1, à l'exclure de la   définition de « Source Correspondante ».   GPLv2 dit ce qui suit, à la fin   de l'article 3:

     

Toutefois, à titre d'exception, la   code source distribué n'a pas besoin   inclure tout ce qui est normalement   distribué (source ou   sous forme binaire) avec les composants principaux   (Compilateur, noyau, etc.) du   système d'exploitation sur lequel la   exécutable fonctionne, à moins que le composant   lui-même accompagne l'exécutable.

     

...

Autres conseils

Vous avez une incompréhension fondamentale de la façon dont les restrictions entreront en vigueur GPL. Votre premier exemple est couvert par la « exemption de bibliothèque système. » - mais même si ce n'était pas, il ne serait pas l'effet que vous Posit

La GPL dit que si vous distribuez le programme sous licence GPL, ou un de ses dérivés, vous devez fournir aussi la source au programme ou d'un dérivé selon les termes GPL équivalent (aux personnes que vous avez distribué le programme / dérivé de) .

Cela signifie que si je distribue votre programme GPL lié à une partie de code de Microsoft, je dois fournir la source à la balle entière de la cire, ou risquer d'être poursuivi en justice par vous pour briser vos droits d'auteur. Notez que tant que Microsoft est un tiers, cela ne met pas de restrictions à les (bien sûr!). Si je n'ai pas accès au code de Microsoft, qui est probable, alors je ne peux pas distribuer ce travail dérivé sans être en violation de la licence.

IANAL, mais l'ordre de création n'a pas d'importance. Si les deux binaires de liaison seraient une violation de la GPL, alors il est interdit par la GPL, quel que soit qui a été créé en premier.

Cas n ° 1 est adressée par l'exception de la bibliothèque du système, comme Michael Burr cité. Notez que ce n'est pas dépendant du temps - s'il n'y avait pas l'exception de la bibliothèque du système, il serait tout autant d'une violation GPL pour exécuter du code sous licence GPL écrit en 2003 sur Windows 98 (ce qui a été écrit avant le code sous GPL) comme serait de l'exécuter sur Vista (qui a été écrit après le code sous GPL).

Je suis d'accord que le cas 2 viole l'esprit de la GPL, mais, comme le terme est utilisé par la GPL, ce pilote NVidia n'est pas « lié » avec le noyau Linux car il est chargé en tant que module. Vous ne seriez pas en mesure de distribuer un noyau Linux avec le binaire NVidia non sans lié statiquement, mais qui distribue des noyaux liés statiquement ces jours-ci de toute façon?

Vous cannnot changer les autres licences de programmes en liant à eux, jamais. Si votre licence ne permet pas de relier aux programmes sources non ouverts, vous devez soit modifier votre licence ou arrêter de lier à ces programmes. La situation serait différente si les autres programmes liés à la vôtre. Dans ce cas, ils doivent cahnge leur licence ou d'arrêter un lien vers votre programme.

Qu'est-ce que cela signifie, tout simplement, est que vous ne pouvez pas appliquer la GPL au-dessus du code ou des bibliothèques qui ne sont pas compatible avec la GPL et distribuer un travail combiné compilé, sauf si vous appliquez un reliant d'exception.

L'exception de liaison est un moyen pour vous de distribuer compilés contenant les executables bits non-libres, alors qu'aucune autorisation spéciale est nécessaire pour distribuer le programme au format source.

Cette exception, bien sûr, dépend des bibliothèques non libres vous permettant de distribuer des programmes qui sont liés contre (en particulier statiquement).

Alors, pour répondre à votre première question, non .. ce n'est pas un scénario de poulet ou oeuf. Ce que je recommande est face à la possibilité d'avoir à écrire une exception, il est probablement préférable de choisir juste une licence avec moins de restrictions, comme Apache ou 3 clause licence BSD.

En second lieu, non, vous ne pouvez pas appliquer la GPL à votre code aux fins de modification de la licence pour quelque chose qui vous arrive d'un lien contre. Encore une fois, nous revenons à l'exception de liaison, ce qui est de votre responsabilité de fournir.

Le spririt de la GPL vit dans un monde où il n'y a pas une telle chose comme un logiciel propriétaire. RMS a déclaré ce que l'objectif final à de nombreuses reprises. Restent qui doivent être adressées modalités pratiques pour les personnes qui souhaitent distribuer des logiciels libres sur les plates-formes non-libres.

Ceci est l'une des principales raisons pour lesquelles Linux (comme dans le noyau) reste GPL v2 uniquement.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top