Cette page contient les réponses aux questions les plus courantes sur la GNU General Public License (GPL). Pour en apprendre plus sur les autres licences de la Fondation pour le logiciel libre, veuillez consulter notre page des licences.
Après avoir lu cette FAQ, vous pouvez tester vos connaissances sur les licences de logiciels libres avec notre quiz (en anglais).
Faire d'un programme un paquet logiciel GNU signifie contribuer explicitement au projet GNU. Ceci se produit quand les développeurs du programme et le projet GNU se mettent d'accord pour le faire. Si vous souhaitez contribuer au projet GNU par un programme, veuillez écrire à <maintainers@gnu.org>.
Certains ont proposé des alternatives à la GPL qui requièrent que la version modifiée passe par l'auteur original. Tant que l'auteur original assure la maintenance nécessaire, ceci peut fonctionner en pratique, mais si l'auteur cesse (plus ou moins) et passe à autre chose, ou ne répond pas aux besoins de tous les utilisateurs, cette manière de procéder s'effondre. En plus des problèmes pratiques, cette façon de faire ne permet pas aux utilisateurs de s'entraider.
Quelquefois, le contrôle sur les versions modifiées est proposé comme un moyen d'éviter des confusions entre les différentes versions faites par les utilisateurs. Notre expérience nous a montré qu'il ne s'agit pas d'un problème majeur. De nombreuses versions d'Emacs ont été faites en dehors du cadre du Projet GNU, mais les utilisateurs peuvent les différencier. La GPL requiert que l'auteur d'une version mette son nom dessus, pour la distinguer des autres versions et protéger la réputation des autres mainteneurs.
Mais si vous distribuez la version modifiée au public de quelque manière que soit, la GPL vous oblige à rendre la version du code source modifiée disponible pour les utilisateurs, sous GPL.
Ainsi, la GPL autorise à distribuer des programmes modifiés sous certaines conditions, et pas sous d'autres; mais la décision de le distribuer vous regarde.
Si vous distribuez commercialement des fichiers binaires non accompagnés du code source, la GPL dit que vous devez fournir une offre écrite de distribuer le code source ultérieurement. Quand les utilisateurs redistribuent non commercialement les fichiers binaires qu'ils ont obtenu auprès de vous, ils doivent transmettre en même temps une copie de cette offre écrite. Ce qui veut dire que les personnes n'ayant pas récupéré les fichiers binaires directement auprès de vous peuvent quand même recevoir une copie du code source, selon l'offre écrite.
La raison pour laquelle nous exigeons que l'offre soit valide pour n'importe quel tiers est qu'ainsi les personnes qui reçoivent les fichiers binaires indirectement de cette façon peuvent ainsi commander le code source auprès de vous.
Que vous revendiquiez ou non un copyright sur vos modifications, vous devrez publier la version modifiée, dans son entier, sous la GPL. (si vous la publiez)
La GPL est une licence de logiciel libre, et par conséquent elle permet l'utilisation et même la redistribution du logiciel sans que l'on ait à payer de droit à quiconque pour cela.
Vous pouvez également publier vos modifications pour le client sous GPL, mais accepter de ne pas les diffuser à d'autres personnes à moins que le client ne soit d'accord. Dans ce cas aussi, aucun code couvert par la GPL n'est distribué sous accord de non divulgation, ou toute autre restriction supplémentaire.
La GPL donne le droit au client de redistributer votre version. Dans ce scénario, le client choisira probablement de ne pas exercer ce droit, mais il a le droit de le faire.
Il peut paraître tentant d'inclure une URL qui réfère à cette licence, au lieu de la licence elle-même. Mais vous ne pouvez pas être sûr que cette URL sera toujours valable dans cinq ou dix ans. Dans vingt ans, les URL que nous connaissons aujourd'hui n'existeront peut-être plus.
La seule façon de s'assurer que les détenteurs de copies du programme pourront continuer à voir les licences, malgré les changements qui apparaîtront dans le réseau, est d'inclure une copie de la licence dans le programme.
Le préambule et les instructions ajoutent environ 5000 caractères, moins d'1/3 de la taille totale de la GPL. Ils ne constitueraient pas un changement substantiel de la taille d'un paquetage logiciel à moins que ce paquetage lui-même soit vraiment petit. Dans ce cas, vous pourriez aussi bien utiliser une licence totalement permissive au lieu de la GNU GPL.
La GPL autorise une telle combinaison, à condition qu'elle soit distribuée sous GNU GPL. L'autre licence est compatible avec la GPL si elle permet cela aussi.
Aussi, veuillez considérer ceci : pouvez-vous trouver un moyen de réaliser cette action sans utiliser cette bibliothèque ? Pouvez-vous écrire une bibliothèque libre pour la remplacer ?
Si le programme est déjà écrit en utilisant la bibliothèque non-libre, il est peut-être déjà trop tard pour changer de décision. Vous pouvez aussi publier le programme tel qu'il est plutôt que de ne pas le publier. Mais veuillez mentionner dans le fichier README que la nécessité de la bibliothèqe non-libre est un inconvénient, et suggérez de changer de programme pour qu'il puisse faire la même chose sans la bibliothèque non-libre. Veuillez suggérez que quiconque pense faire un gros travail sur le programme, le libère d'abord de sa dépendance à la bibliothèque non-libre.
Notez également qu'il peut y avoir des problèmes juridiques en combinant certaines bibliothèques non-libres avec un logiciel libre couvert par la GPL. Veuillez consulter la question sur les logiciels sous GPL avec les bibliothèques incompatibles avec la GPL pour plus de renseignements.
However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.
alors vous n'avez rien de spécial à faire pour les utiliser. En d'autres termes, si les bibliothèques dont vous avez besoin accompagnent les éléments majeurs d'un système d'exploitation propriétaire, la GPL dit que l'on peut les utiliser dans une édition de lien avec votre programme.
Si vous désirez que votre programme puisse être lié à une bibliothèque non couverte par cette exception, vous devrez ajouter votre propre exception, entièrement en dehors de la GPL. Cette note de copyright et de licence autorise l'édition de lien avec le programme FOO :
Copyright (C) yyyy <name of copyright holder>
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Linking ABC statically or dynamically with other modules is making a combined work based on ABC. Thus, the terms and conditions of the GNU General Public License cover the whole combination.
In addition, as a special exception, the copyright holders of ABC give you permission to combine ABC program with free software programs or libraries that are released under the GNU LGPL and with code included in the standard release of DEF under the XYZ license (or modified versions of such code, with unchanged license). You may copy and distribute such a system following the terms of the GNU GPL for ABC and the licenses of the other code concerned, provided that you include the source code of that other code when and as the GNU GPL requires distribution of source code.
Note that people who make modified versions of ABC are not obligated to grant this special exception for their modified versions; it is their choice whether to do so. The GNU General Public License gives permission to release a modified version without this exception; this exception also makes it possible to release a modified version which carries forward this exception.
Traduction
Ce programme est un logiciel libre; vous pouvez le redistribuer et/ou le modifier selon les termes de la GNU General Public License (Licence Publique Générale GNU) telle qu'elle a été publiée par la Free Software Foundation; soit la version 2 de de la licence, soit (comme vous le souhaitez) toute version ultérieure.
Ce programme est distribué dans l'espoir qu'il sera utile, mais SANS LA MOINDRE GARANTIE; pas même la garantie implicite de COMMERCIABILITé ou d'ADéQUATION à UN BUT PARTICULIER. Voir la GNU General Public License pour plus de détails.
Vous devriez avoir reçu une copie de la GNU General Public License en même temps que ce programme; sinon, merci d'écrire à la Free Software Foundation, Inc, 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Lier ABC statiquement ou dynamiquement avec d'autres modules en fait une œuvre combinée basée sur ABC. Cependant, les termes et conditions de la Licence publique générale GNU couvrent la totalité de la combinaison.
De plus, à titre exceptionnel, les détenteurs du copyright> de ABC vous donne l'autorisation de combiner ABC avec des logiciels libres ou des bibliothèques couvertes par la LGPL GNU et avec du code inclus dans la version standard de DEF sous la licence XYZ (ou des versions modifiées de ce code, sans changement de licence). Vous pouvez copier et distribuer un tel système en suivant les termes de la GPL GNU pour ABC et les licences de l'autre code concernĂ©, pourvu d'y inclure le code source de l'autre code car la GPL GNU nécessite la distribution du code source.
Veuillez remarquer que les personnes qui font des versions modifiées de ABC ne sont pas obligées d'accorder cette exception particulière pour leurs versions modifiées; ils leur appartient de le faire ou pas. La Licence publique générale GNU donne la permission de publier une version modifiée sans cette exception; cette exception rend également possible de publier une version modifiée qui perpétue cette exception.
Vous devez ajouter ce texte dans chaque fichier auquel s'applique l'exception.
Seuls les détenteurs du copyright du programme peuvent légalement autoriser cette exception. Si vous avez écrit tout le programme vous même, alors à supposer que votre employeur ou votre école ne le réclame pas, vous êtes le détenteur du copyright--donc vous pouvez autoriser l'exception. Mais si vous voulez utiliser dans votre code des portions d'autres programmes sous GPL écrits par d'autres auteurs, vous ne pouvez autoriser cette exception à leur place. Vous devez obtenir l'autorisation des détenteurs des copyrights de ces programmes.
Quand d'autres personnes modifient le programme, elles n'ont pas à créer la même exception pour leur code--elles ont le choix de le faire ou non.
Si les bibliothèques que vous avez l'intention de lier ne sont pas libres, veuillez également consulter la section sur l'écriture de logiciels libres utilisant des bibliothèques non-libres..
C'est toutefois une excellente idée d'enregistrer votre copyright aux État-Unis. Cela vous donnera plus d'influence pour traiter avec une violation aux États-Unis.
Il se peut que quelqu'un d'autre puisse réclamer le copyright si vous êtes un employé ou un étudiant; alors, l'employeur ou l'école peuvent prétendre que vous avez effectué le travail pour eux, et que le copyright leur appartient. La validité de leurs prétentions dépend des circonstances telles que les lois de votre lieu de résidence, votre contrat d'embauche et le genre de travail que vous faites. Le mieux est de consulter un avocat s'il y a le moindre doute.
Si vous pensez que l'employeur ou l'école peuvent avoir des droits, vous pouvez résoudre le problème clairement en obtenant une renonciation au copyright signée par un officiel autorisé de l'entreprise ou de l'école. (Votre supérieur hiérarchique immédiat ou votre professeur ne sont généralement PAS autorisés à signer de telles renonciations.)
Si vous pensez qu'il existe une probabilité que votre école refuse de vous autoriser à distribuer votre programme sous GPL, il vaut mieux soulever le problème le plus tôt possible. Plus le programme sera proche d'un fonctionnement utile, et plus la tentation sera grande pour l'administration de vous le prendre et de le finir sans vous. A un stade moins avancé, vous avez plus de marge de manœuvre.
Aussi nous vous recommandons de les aborder quand le programme est seulement à moitié réalisé, en disant : «Si vous me laissez le distribuer sous licence libre, je le termine». N'y pensez pas comme à du bluff. Pour que votre opinion prévale, vous devez avoir le courage de dire : «Mon programme sera libre, ou ne sera pas».
La licence qui se trouve dans votre copie, en supposant qu'elle y ait été mise par le détenteur du copyright et que vous aillez acquis cette copie de façon légitime, est la licence qui s'applique à votre copie.
Toutefois, si le développeur devait entreprendre une action qui violerait la GPL si quelqu'un d'autre faisait la même chose, alors il perdrait sûrement de son autorité morale dans la communauté.
Certains programmes recopient des parties d'eux-mêmes dans leur résultat pour des raisons techniques--par exemple, Bison copie un programme standard d'analyse dans son fichier résultat. Dans de tels cas, le texte copié dans le résultat est couvert par la même licence qui le couvre dans le code source. Entre temps, la partie du résultat qui vient des données fournies au programme hérite du même copyright que ces données.
Il se trouve que Bison peut aussi être utilisé pour développer des programmes non-libres. C'est parce que nous avons décidé d'autoriser explicitement l'utilisation sans restrictions du programme standard d'analyse dans les fichiers produits par Bison. Nous avons pris cette décision parce qu'il existait déjà d'autres outils comparables à Bison qui autorisaient déjà une utilisation pour des programmes non-libres.
Oui. Le «fair use» est une utilisation autorisée sans permission spéciale. Puisque vous n'avez pas besoin de la permission du développeur pour un tel usage, vous pouvez le faire, quoiqu'en ait dit le développeur--dans la licence ou ailleurs, que cette licence soit la GNU GPL ou tout autre licence de logiciel libre.
Notez cependant qu'il n'existe pas de principe universel de fair use; les types d'utilisation relevant du «fair use» varient selon les pays.
Cependant, quand une agence du gouvernement fédéral américain utilise des sous-traitants pour développer un logiciel, c'est une situation différente. Le contrat peut requérir que le sous-traitant le publie sous la GPL GNU. (GNU Ada a été développé de cette façon). Ou un contrat peut donner le droit d'auteur à l'agence gouvernementale, qui peut alors publier le logiciel sous la GPL GNU.
Si le gouvernement utilise des sous-traitants pour faire le travail, alors les améliorations elles-mêmes peuvent être couvertes par la GPL.
Par conséquent, le seul moyen pour que vous ayez des droits sur le résultat est que des parties substantielles de ce résultat soient copiées (plus ou moins) à partir du texte présent dans votre programme. Par exemple, une partie du résultat produit par Bison (voir ci-dessus) serait couverte par la GNU GPL si nous n'avions créé une exception pour ce cas particulier.
Vous pourriez artificiellement forcer un programme à copier un certain texte dans son résultat, même s'il n'y a pas de raison technique de le faire. Mais si ce texte ne sert à rien en pratique, l'utilisateur pourrait simplement le supprimer du résultat et n'utiliser que le reste. Il n'aurait plus alors à respecter les conditions de redistribution du texte copié.
Mais vous pouvez donner des permissions supplémentaires pour l'utilisation de votre code. Vous pouvez, si vous le voulez, distribuer votre programme sous une licence plus lâche que la GPL, mais qui est compatible avec elle. La page de liste des licences donne une liste partielle des licences compatibles avec la GPL.
Cependant, lorsque l'interpréteur est étendu pour fournir des «bindings» (interfaces) vers d'autres dispositifs (souvent, mais pas nécessairement, des bibliothèques), le programme interprété est effectivement lié aux dispositifs qu'il utilise à travers ces interfaces. Donc si ces dispositifs sont diffusés sous GPL, le programme interprété qui les utilise doit être diffusé d'une manière compatible avec la GPL. La JNI ou Java Native Interface est un exemple d'un tel dispositif; les bibliothèques auxquelles on accède de cette façon sont liées dynamiquement avec les programmes Java qui les appellent.
Ces bibliothèques sont aussi liées à l'interpréteur. Si l'interpréteur est lié statiquement à ces bibliothèques, ou s'il est conçu pour se lier dynamiquement à ces bibliothèques spécifiques, alors il doit être aussi publié de manière compatible avec la GPL.
Une autre cas similaire et très courant est la fourniture de bibliothèques avec l'interpréteur qui sont elles-mêmes interprétées. Par exemple, Perl est fourni avec de nombreux modules Perl, t une implémentation de Java est fournie avec de nombreuses classes Java. Ces bibliothèques et les programmes qui les appellent sont toujours liés ensemble dynamiquement.
Une conséquence est que si vous choisissez d'utiliser des modules Perl ou des classes Java sous GPL dans votre programme, vous devez diffuser le programme d'une façon compatible avec la GPL, indépendamment de la licence utilisée dans l'interpréteur Perl ou Java sur lequel va s'exécuter le programme combiné Perl ou Java.
Cela ne signifie pas que c'est une bonne idée d'écrire un programme qui ne fonctionne que sur Windows. En faisant ceci, cela donne un logiciel libre mais «pris au piège» (en ce cas précis, pris au piège de Windows au lieu de Java, mais l'effet est le même).
You may not impose any further restrictions on the recipients' exercise of the rights granted herein.
La clause concernant la publicité est justement l'une de ces restrictions supplémentaires, et ceci la rend incompatible avec la GPL.
La licence BSD révisée ne contient plus cette clause sur la publicité, ce qui élimine le problème.
Si le programme fait une édition de liens dynamique avec les plug-ins, et qu'ils font des appels de fonctions mutuels et partagent de structure de données, nous pensons qu'ils forment un seul et même programme, et les plug-ins doivent donc être traités comme des extensions du programme principal. Cela signifie qu'il doivent être distribués sous la GPL ou sous une licence de logiciel libre compatible avec la GPL.
Si le programme fait une édition de liens dynamique avec des plug-ins, mais que la communication entre eux est limitée à l'invocation de la fonction `main' du plug-in avec quelques options et l'attente du résultat de l'exécution du plug-in, nous nous trouvons dans un cas limite.
Si le programme fait une édition de liens dynamique avec les plug-ins, et qu'ils font des appels de fonctions mutuels et partagent de structure de données, nous pensons qu'ils forment un seul et même programme qui doit être traité comme une extension du programme principal et des plug-ins. Cela signifie que la combinaison du plug-in sous GPL avec le programme principal constituerait une violation de la GPL. Toutefois, vous pouvez résoudre ce problème légal en ajoutant une exception à la licence de votre plug-in, qui autorise à le lier avec le programme principal non-libre.
Voir aussi la question «Puis-je écrire un logiciel libre qui utilise des bibliothèques non-libres ?»
Si le programme lie dynamiquement les plug-ins, et qu'ils font mutuellement des appels de fonctions et partagent des structures de données, nous pensons qu'ils forment un seul programme, qui doit être traité comme une extension du programme principal et des plug-ins. Afin d'utiliser les plug-ins couverts par la GPL, le programme principal doit être publié sous la GPL ou une licence de logiciel libre compatible avec la GPL, et que les termes ne la GPL doivent être respectés quand le programme principal est distribué pour utiliser ces plug-ins.
Si le programme principal lie dynamiquement les plug-ins, mais que la communication entre eux est limitée à l'invocation de la fonction «main» du plug-in avec quelques options, et attend le retour d'informations, il s'agit d'un cas limite.
Pour plus de détails, voir aussi la question «Puis-je écrire un logiciel libre qui utilise des bibliothèques non-libres ?»
Vous disposez toujours de l'alternative légale de ne pas utiliser notre code.
Linking ABC statically or dynamically with other modules is making a combined work based on ABC. Thus, the terms and conditions of the GNU General Public License cover the whole combination. In addition, as a special exception, the copyright holders of ABC give you permission to combine ABC program with free software programs or libraries that are released under the GNU LGPL and with independent modules that communicate with ABC solely through the ABCDEF interface. You may copy and distribute such a system following the terms of the GNU GPL for ABC and the licenses of the other code concerned, provided that you include the source code of that other code when and as the GNU GPL requires distribution of source code. Note that people who make modified versions of ABC are not obligated to grant this special exception for their modified versions; it is their choice whether to do so. The GNU General Public License gives permission to release a modified version without this exception; this exception also makes it possible to release a modified version which carries forward this exception.
Traduction
Lier ABC statiquement ou dynamiquement avec d'autres modules en fait un travail combiné basé sur ABC. Par conséquent, les termes et conditions de la Licence publique générale GNU couvrent la totalité de programme. Exceptionnellement, les détenteurs du copyright de ABC vous donne la permission de combiner ABC avec des logiciels libres ou des bibliothèques couvertes par la LGPL GNU et avec des modules indépendants qui communiquent avec ABC seulement à partir de l'interface ABCDEF. Vous pouvez copier et distribuer un tel système en suivant les termes de la GPL GNU pour ABC et les licences de l'autre code concerné pourvu d'y inclure le code source de cet autre code car la GPL GNU nécessite de distribuer le code source. Notez que les personnes qui font des versions modifiées de ABC ne sont pas obligées d'accorder cette exception particulière pour leurs versions modifiées; il leur appartient de le faire ou pas. La Licence publique générale GNU donne la permission de publier une version modifiée sans cette exception; cette exception rend également possible de publier une version modifiée qui perpétue cette exception.
Seuls les détenteurs du droit d'auteur pour le programme peuvent légalement autoriser cette exception. Si vous avez écrit tout le programme vous-même, en vous assurant que votre employeur ou votre école ne revendique pas le droit d'auteur, vous êtes le dédenteur du droit d'auteur et vous pouvez alors autoriser cette exception. Mais si vous voulez utiliser des parties d'autres programmes couverts par la GPL par d'autres auteurs dans votre code, vous ne pouvez autoriser cette exception pour eux. Vous devez obtenir l'autorisation des détenteurs de droit d'auteur pour ces programmes.
Combiner deux modules («combining two modules») signifie les connecter de telle sorte qu'ils constituent un seul programme plus important. Si l'une au moins des parties est couverte par la GPL, l'ensemble doit alors aussi être distribué sous GPL--si vous ne pouvez ou ne voulez pas le faire, vous n'êtes pas autorisé à les combiner.
Qu'est-ce qui constitue le fait de combiner deux parties en un seul programme? Il s'agit d'un problème juridique, qui sera tranché en dernier recours par un juge. Nous pensons qu'un critère adapté tient compte à la fois des modes de communication (exec, pipes, rpc, appel de fonctions au sein d'un espace de mémoire commun, etc.) et de la sémantique de cette communication (quels genres d'informations sont échangés).
Si les modules sont inclus dans un même fichier exécutable, ils sont indéniablement combinés dans un seul programme. Si les modules sont conçus pour être exécutés par édition de liens dans un même espace mémoire partagé, cela signifie presque à coup sûr une combinaison en un seul programme.
En revanche, les pipes, sockets et autres arguments de ligne de commande sont des mécanismes de communication utilisés normalement entre deux programmes séparés. Aussi, tant que ceux-ci servent à communiquer, les modules sont normalement des programmes séparés. Mais si la sémantique des échanges est assez 'intime', avec échange de structures de données internes complexes, cela pourrait également constituer une base suffisante pour considérer les deux éléments combinés comme un seul et même programme.
Nous demandons également aux contributeurs individuels d'obtenir une renonciation au copyright écrite par leur employeur (s'il existe), de façon à s'assurer que ce dernier ne puisse prétendre avoir des droits sur les éléments de contribution au projet.
Bien entendu, si tous les participants mettent leur code dans le domaine public, il n'y a plus de copyright permettant de faire appliquer la GPL. Aussi nous encourageons à définir un copyright sur les des contributions importantes en matière de code, et à seulement mettre les modifications mineures dans le domaine public.
Si êtes prêt à faire un effort pour défendre la GPL appliquée à votre programme, c'est probablement une bonne idée que d'adopter une politique similaire. Merci de contacter <licensing@gnu.org> si vous désirez plus de renseignements.
Si vous voulez utiliser notre préambule dans une licence modifiée, veuillez écrire à <licensing@gnu.org> pour une autorisation. À cette fin, vous voudrons vérifier les conditions réelles de la licence pour voir si nous les approuvons.
Bien que nous n'objecterons pas de raisons juridiques pour modifier la licence de cette manière, nous espérons que vous y réfléchirez à deux fois et que vous ne le ferez pas. Une telle licence modifiée est presque sûrement incompatible avec la GPL GNU, et cette incompatibilité bloque des combinaisons utiles de modules. La prolifération de différentes licences de logiciels libres est un fardeau en soi.
Ces conditions sont indispensables pour inclure dans votre programme le code sous GPL que vous avez reçu.
Toutefois, pour les manuels et les ouvrages, et plus généralement toute œuvre ayant pour but d'enseigner un sujet, nous recommandons l'utilisation de la GFDL, plutôt que de la GPL.
Voir cet article pour les détails. Cela fonctionne comme c'est conçu, voulu et attendu.
Un système qui incorpore un programme placé sous GPL est une version étendue de ce programme. La GPL dit que toute version étendue du programme doit être distribuée sous GPL dès qu'elle est seulement diffusée. Il y a deux raisons à cela : s'assurer que les utilisateurs qui obtiennent le programme disposent de la liberté à laquelle ils ont droit, et encourager les gens à donner en échange les améliorations qu'ils ont pu apporter.
Toutefois, dans de nombreux cas, vous pouvez distribuer un logiciel sous GPL à côté de votre système propriétaire. Pour que cette opération soit légale, vous devez vous assurer que les programmes libres et non-libres communiquent de suffisamment loin, et qu'ils ne sont pas combinés de façon à créer de fait un seul et même programme.
La différence entre ceci et «l'incorporation» du logiciel sous GPL est une question à la fois de fond et de forme. Essentiellement : si les deux programmes sont combinés de telle façon qu'ils forment les deux parties d'un même programme, alors vous ne pouvez les traiter comme des programmes séparés. La GPL doit alors couvrir l'ensemble.
Si les deux programmes demeurent bien séparés, comme par exemple le compilateur et le noyau, ou comme un éditeur de texte et un shell, vous pouvez alors les traiter comme des programmes séparés--mais vous devez faire cela comme il faut. Se pose alors simplement la question de la forme : comment vous décrivez ce que vous faites. Pourquoi cela nous importe-t-il ? Parce que nous voulons être sûr que l'utilisateur comprenne bien le statut libre du logiciel de cet ensemble qui est sous GPL.
Si quelqu'un distribue un logiciel sous GPL en l'identifiant comme étant «une partie» d'un système dont les utilisateurs savent qu'il est partiellement propriétaire, ces derniers pourraient ne pas avoir une idée claire de leurs droits concernant le logiciel GNU. Mais s'ils savent que ce qu'ils ont reçu correspond à un programme libre plus un autre programme, côte à côte, leurs droits sont clairs.
Non. La licence X11 est compatible avec la GPL, donc vous pouvez incorporer un module au programme couvert par la GPL et le mettre sous licence X 11. Mais si vous les incorporez dans un programme plus gros, cet ensemble incluerait la partie couverte par la GPL, donc cet ensemble devrait être sous licence GPL.
Le fait qu'un module propriétaire A communique avec un module C couvert par la GPL par le seul biais d'un module B sous licence X 11 n'est pas légalement recevable ; ce qui importe, c'est que le module C est inclus dans l'ensemble.
Oui. Le but de l'exception est d'autoriser les gens à compiler des logiciels propriétaires en utilisant gcc.
D'abord une raison d'ordre général. Si nous autorisions la société A à créer un fichier propriétaire, et la société B à distribuer un logiciel sous GPL lié à ce fichier, cela aurait pour effet de créer une faille dans la GPL suffisante pour qu'un camion passe à travers. On aurait alors carte blanche pour faire de la rétention sur le code source pour toute sorte de modifications et d'extensions à des logiciels sous GPL.
L'un de nos objectifs principaux étant de donner accès au code source à tous les utilisateurs, c'est là une conséquence que nous essayons à tout prix d'éviter.
Plus spécifiquement, les versions du programme liées avec les bibliothèques de Pompe-A-Fric ne seraient pas vraiment des logiciels libres au sens où nous l'entendons--elles ne comprendraient pas l'intégralité du code source qui permet aux utilisateurs de modifier et de recompiler le programme.
Si la licence du module Q vous permet d'autoriser cela, alors elle est compatible avec la GPL. Sinon, elle est incompatible.
Si la licence de Q dit en des termes incertains que vous devez faire certaines choses (incompatibles avec la GPL) quand vous redistribuer Q lui-même, alors cela ne vous permet pas de distribuer Q sous la GPL. Il s'ensuit que vous ne pouvez pas publier P+Q sous la GPL non plus. Donc vous ne pouvez pas lier ou combiner P avec Q.
Lorsqu'un utilisateur demande le code source, vous devez faire en sorte de le lui faire parvenir. Si un certain utilisateur peut commodément obtenir les sources par FTP, tout va bien--cela suffit. Mais tous les utilisateurs ne sont pas reliés à un réseau. Ceux qui ne le sont pas ont tout autant le droit d'obtenir le code source de votre part. Aussi vous devez être prêt à le leur envoyer, sur disquette ou sur bande magnétique, par courrier postal.
Bien entendu, il est plus simple de mettre le code source avec le fichier binaire dès le départ.
Si vous distribuez les binaires par FTP, vous devriez distribuer le source par FTP.
Notez cependant qu'il ne suffit pas de trouver un site qui héberge le code source actuellement, et de dire aux gens d'aller voir là-bas. Demain, ce site peut supprimer le code source, ou simplement le remplacer par une version plus récente du même programme. Vous ne seriez alors plus en règle avec les exigences de la GPL. Pour faire un effort raisonnable pour être en règle, vous devez avoir un arrangement clair avec le site en question, et par là vous assurer que le code source y sera disponible aussi longtemps que vous rendrez les fichiers binaires accessibles.
Pour partie, l'idée du logiciel libre est que les utilisateurs aient accès au code source pour *les programmes qu'ils utilisent*. Ceux qui utilisent votre version devraient avoir accès au code source de votre version.
Un objectif majeur de la GPL est de construire le Monde Libre en s'assurant que les améliorations apportées à un programme libre sont elles-mêmes libres. Si vous distribuez une version améliorée d'un logiciel placé sous GPL, vous devez distribuer le code source amélioré sous GPL.
Un utilisateur qui souhaite récupérer le code source dans un an peut se trouver dans l'incapacité d'obtenir la bonne version auprès de la FSF à ce moment là. Nous pourrions avoir une version plus récente, mais les différences en question ne correspondraient probablement plus avec cette version.
Vous devez donc fournir le code source complet, pas seulement les différences, avec les fichiers binaires.
Aussi, si vous désirez distribuer des fichiers binaires par FTP anonyme, vous devez distribuer les sources en même temps. Cela ne devrait pas être difficile. Si vous pouvez trouver un site pour votre programme, vous pouvez certainement en trouver un qui a de la place pour vos sources.
Les sources que vous fournirez doivent correspondre exactement aux fichiers binaires. Vous devez tout particulièrement vous assurer qu'elles sont celles de la même version du programme--pas une version plus ancienne ou plus récente.
Vous pouvez mettre à disposition les sources et les binaires sur des machines différentes, du moment que les deux sont aussi faciles à atteindre, et que vous placez près des binaires l'information indiquant où trouver les sources.
Nos exigences vis-à-vis des redistributeurs ont pour but de s'assurer que les utilisateurs peuvent obtenir le code source, pas de forcer les utilisateurs à le télécharger même s'ils ne le désirent pas.
Il est essentiel pour les gens d'avoir la liberté defaire des modifications et de les utiliser de façon privée, sans avoir à publier les modifications. Cependant, mettre le programme sur un serveur accessible au public peut être difficilement qualifié d'utilisation «privée», c'est pourquoi il serait légitime de réclamer la publication du code source dans ce cas particulier. Nous pensons introduire quelque chose à ce sujet dans la GPL version 3, mais nous n'avons pas encore de formulation précise en tête.
Entre temps, vous pourriez vouloir la GPL Affero pour des programmes conçus pour une utilisation sur des serveurs en réseau.
Cependant, quand une organisation transfère des copies à d'autres organisations ou à des particuliers, c'est une distribution. En particulier, fournir des copies à des sous-traitants pour une utilisation hors site est une distribution.
Si la version en question n'est pas publiée ou considérée par une société comme un secret commercial, alors la publier peut être une violation du secret commercial, selon d'autres circonstances. La GPL ne change pas cela. Si la société a essayé de publier sa version en la considérant encore comme un secret commercial, cela violerait la GPL, mais si la société n'a pas publié cette version, ce n'est pas une violation.
Une défaite partielle peut parfois se révéler être une bonne stratégie. Quelquefois, l'utilisation de la LGPL pour une bibliothèque peut amener à une utilisation plus large de cette bibliothèque, et par voie de conséquence à son amélioration, un plus grand soutien au logiciel libre, ainsi de suite. Cela pourrait être bon pour le logiciel libre, si cela se passe à grande échelle. Mais nous pouvons seulement spéculer sur l'étendue d'un tel succès.
Il serait sympathique d'essayer pendant un temps la LGPL pour chaque bibliothèque, pour voir si cela améliore les choses, puis de se remettre sous GPL si la LGPL n'apporte rien de plus. Mais cela n'est pas envisageable. Une fois qu'une bibliothèque particulière est placée sous LGPL, il est difficile de changer à nouveau.
Nous décidons donc de quelle licence utiliser pour chaque librairie au cas par cas. Il existe une longue explication sur la façon dont nous procédons pour nous décider.
Notre objectif n'est pas de maximiser le nombre d'utilisateurs. Nous essayons plutôt de donner les libertés fondamentales au plus grand nombre possible d'utilisateurs. D'une manière générale, les logiciels propriétaires freinent les libertés plus qu'ils ne les favorisent.
Il nous arrive de créer des exceptions de licence pour aider un projet de logiciel libre sous une autre licence que la GPL. Toutefois, il nous faut pour cela une bonne justification du fait que cela fera avancer la cause du logiciel libre.
Il nous arrive aussi quelquefois de modifier les clauses de distribution d'un paquetage, quand cela nous apparaît clairement comme un moyen de promouvoir la cause du logiciel libre, mais nous sommes très prudent à ce sujet et il vous faudra nous donner des raisons très convainquantes.
Si aucun programme ne contenait ce pointeur indirect, nous serions forcés de longuement discuter du changement avec de très nombreux détenteurs de copyright, ce qui serait virtuellement impossible. En pratique, la probabilité d'aboutir à un mode de distribution unifié pour les logiciels GNU serait nulle.
Supposez qu'un programme dise «Version 2 de la GPL ou toute version ultérieure» et qu'une nouvelle version de la GPL soit publiée. Si la nouvelle version de la GPL donne une permission supplémentaire, cette permission est immédiatement disponible pour tous les utilisateurs du programme. Mais, si la nouvelle version de la GPL comporte une exigence plus restrictive, cela ne limitera pas l'utilisation de la version courante du programme, car ce dernier peut toujours être utilisé sous GPL Version 2. Lorsqu'un programme dit «Version 2 de la GPL ou toute version ultérieure», les utilisateurs seront toujours autorisés à l'utiliser, et même à le modifier, selon les termes de la GPL Version 2--même après que d'autres versions de la GPL auront été rendues disponibles.
Si une exigence plus forte dans une nouvelle version de la GPL n'est pas obligatoire pour les logiciels existants, à quoi sert-elle ? Lorsque la version 3 de la GPL est disponible, les développeurs de la plupart des programmes sous GPL distribueront les versions suivantes de leur programme en spécifiant «Version 3 de la GPL ou toute version ultérieure». Les utilisateurs devront se conformer aux clauses plus restrictives de la GPL Version 3, pour les versions suivantes de ce programme.
Les développeurs ne sont toutefois pas dans l'obligation d'agir ainsi; ils peuvent continuer à autoriser l'utilisation de la version précédente de la GPL, si c'est leur souhait.
La GPL a été conçue pour les programmes; elle contient de nombreuses clauses complexes qui sont très importantes pour les programmes, mais constituent un poids mort pour un livre ou un manuel. En revanche, la GFDL contient des clauses qui permettent aux éditeurs de manuels libres d'en tirer des revenus.
Nous autorisons les modifications du texte qui concerne les sujets technique, mais nous n'autorisons pas de modifications dans les sections qui exposent notre position légale, politique, ou éthique. Nous faisons cela en signalant explicitement les sections qui ne peuvent être modifiées. La GFDL prévoit ces «sections invariantes»--alors que la GPL ne les autoriserait pas.
Il est important d'autoriser les modifications des parties techniques, car les gens qui modifient un programme doivent pouvoir modifier la documentation correspondante. Nous ne pouvons les y obliger, mais si nous voulons espérer qu'il le fassent, mieux vaut ne pas se mettre en travers de leur route.
Pour utiliser cette exception, ajouter ce texte à votre notice de licence pour chaque fichier du paquetage (dans la mesure du possible), après le texte qui dit que le fichier est distribué sous la GPL GNU :
Comme exception spéciale, si vous créez un document qui utilise cette police, ou intégrez cette police ou des parties inaltérées de cette police dans le document, cette police n'implique pas en soi que le document résultant soit couvert par la Licence publique générale GNU. Cette exception n'empêche pas cependant que le document soit, pour d'autres raisons, couvert par la Licence publique générale GNU. Si vous modifiez cette police, vous pouvez étendre ce droit à votre version de la police, mais vous n'y êtes pas obligé. Si vous ne le souhaitez pas, supprimez cette clause de votre version.
Les modèles sont assez mineurs et ça ne vaut pas la peine d'utiliser le copyleft (la gauche d'auteur) pour les protéger. Il n'est normalement pas dangereux d'utiliser le copyleft pour des œuvres mineures, mais les modèles sont un cas particulier car ils combinent des données fournies par les utilisateurs de l'application et cette combinaison est distribuée. C'est pourquoi nous recommandons d'utiliser une licence permissive simple pour vos modèles.
Certains modèles font des appels à des fonctions Javascript. Puisque le Javascript n'est pas souvent trivial, cela vaut la peine de mettre les scripts sous copyleft. Parce que les modèles sont combinés avec des données utilisateur, il est possible que l'ensemble modèle+données utilisateur+Javascript soit considéré comme une seule œuvre selon la loi sur les droits d'auteur. Il est nécessaire de tracer une ligne antre le code Javascript (sous copyleft) et le code utilisateur (habituellement en des termes incompatibles).
Il y a une exception pour le code Javascript qui dit ceci :
As a special exception to GPL, any HTML file which merely makes function calls to this code, and for that purpose includes it by reference shall be deemed a separate work for copyright law purposes. In addition, the copyright holders of this code give you permission to combine this code with free software libraries that are released under the GNU LGPL. You may copy and distribute such a system following the terms of the GNU GPL for this code and the LGPL for the libraries. If you modify this code, you may extend this exception to your version of the code, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.
Traduction
En tant qu'exception spéciale à la GPL, tout fichier HTML faisant essentiellement des appels de fonction à ce code et qui pour ce faire l'inclut par référence, devra être considéré comme une œuvre séparée pour la loi sur le droit d'auteur. De plus, les détenteurs du droit d'auteur de ce code vous donne l'autorisation de combiner ce code avec des bibliothèques de logiciels libres publiées sous la GNU LGPL. Vous pouvez copier et distribuer un tel système suivant les termes de la GNU GPL pour ce code et ceux de la LGPL pour les bibliothèques. Si vous modifiez ce code, vous pouvez étendre cette exception à votre version du code, mais vous n'y êtes pas obligé. Si vous ne souhaitez pas le faire, supprimez cette déclaration d'exception de votre version.
Toutefois, si vous liez des bibliothèques non-libres à ce code source, ce serait un problème que vous devez prendre en compte. Cela n'empêche pas de publier le code source sous licence GPL, mais si les bibliothèques ne correspondent pas à l'exception « bibliothèque système », vous devrez ajouter une notice explicite donnant la permission de lier votre programme avec elles. The FSF peut vous conseiller pour faire cela.
Un document légal ressemble parfois à un programme. Le traduire est comme de porter un logiciel d'un langage et d'un système d'exploitation vers un autre. Seul un juriste compétent dans les deux langues peut le faire--et même alors subsiste le risque d'introduire un bug.
Si nous devions approuver, officiellement, une traduction de la GPL, nous donnerions à quiconque l'autorisation de faire tout ce que la traduction dit que l'on peut faire. Si la traduction est parfaitement exacte, tout va bien. Mais s'il existe une erreur dans la traduction, le résultat pourrait en être un désastre que nous ne pourrions réparer.
Lorsqu'un programme contient un bug, l'on peut distribuer une nouvelle version, et éventuellement, l'ancienne version disparaîtra plus ou moins. Mais une fois que l'on a donné à tout le monde la permission d'agir selon les termes d'une certaine traduction, il n'y a plus aucun moyen de reprendre cette permission, si l'on découvre, ultérieurement, qu'elle avait un bug.
Des gens qui souhaitent nous aider nous proposent parfois de faire pour nous le travail de traduction. Si le problème était de trouver quelqu'un pour accomplir la tâche, cela le résoudrait. Mais en fait le vrai problème est le risque d'erreur, et le fait d'offrir de faire le travail ne l'évite pas. Nous ne pourrions en aucun cas autoriser une traduction non écrite par un juriste.
Par conséquent, pour le moment, nous n'approuvons pas les traductions de la GPL comme globalement valides ni contractuelles. Au lieu de cela, nous faisons deux choses :
Une traduction non-approuvée n'a pas de valeur légale, et devrait le déclarer explicitement. Cela devrait être écrit comme suit :
This translation of the GPL is informal, and not officially approved by the Free Software Foundation as valid. To be completely sure of what is permitted, refer the original GPL (in English). Cette traduction de la GPL est informelle, et n'est pas approuvée officiellement comme valide par la Free Software Foundation. Pour être tout-à-fait sûr de ce qui est autorisé, se reférer à la GPL originale (en anglais).
Mais la traduction non-officielle peut très bien servir d'aide à la compréhension de la GPL en anglais. Pour beaucoup d'utilisateurs, c'est suffisant.
Toutefois, les entreprises qui utilisent des logiciels GNU dans leurs activités commerciales, et les gens faisant une distribution publique par ftp, devraient vérifier la véritable GPL en anglais pour s'assurer de ce qu'elle autorise.
Nous considérons l'idée de publier des traductions qui soient officiellement valides pour un pays seulement. De cette façon, si une erreur est faite, l'effet sera limité à ce pays, et le dommage pas trop important.
Il faudra quand même pour faire une traduction une dose considérable d'expertise et d'efforts de la part d'un juriste à la fois acquis à la cause et compétent, aussi ne pouvons-nous promettre de telles traductions dans un futur proche.
Cependant, lorsque l'interpréteur est étendu pour fournir des «bindings» (interfaces) vers d'autres dispositifs (souvent, mais pas nécessairement, des bibliothèques), le programme interprété est effectivement lié aux dispositifs qu'il utilise à travers ces interfaces. Donc si ces dispositifs sont diffusés sous GPL, le programme interprété qui les utilise doit être diffusé d'une manière compatible avec la GPL. La JNI ou Java Native Interface est un exemple d'un tel dispositif; les bibliothèques auxquelles on accède de cette façon sont liées dynamiquement avec les programmes Java qui les appellent. Ces bibliothèques sont aussi liées avec l'interpréteur. Si l'interpréteur est lié statiquement avec ces bibliothèques, ou s'il est conçu pour se lier dynamiquement avec ces bibliothèques spécifiques, alors il doit être publié de manière compatible avec la GPL.
Ainsi si ces dispositifs sont diffusés sous une licence incompatible avec la GPL, la situation est similaire dans tout autre aspect à l'édition de liens avec une bibliothèque non compatible avec la GPL. Ce qui implique que :
Certaines bibliothèques sont diffusées sous la GNU GPL seule; vous devez utiliser une licence compatible GPL pour utiliser ces bibliothèques. Mais c'est normalement les bibliothèques les plus spécialisées, et vous n'auriez pas eu quelque chose de similaire sur une autre plateforme, donc vous n'aurez probablement pas besoin de ces bibliothèques pour un simple portage.
Bien-sûr, votre logiciel n'est pas une contribution à notre communauté s'il n'est pas libre, et ceux qui accordent de la valeur à leur liberté refuseront de l'utiliser. Le résultat sera qu'il constituera une incitation à l'abandon de cette liberté, et sera seulement utile à ceux qui auront fait cela. Si vous espérez un jour jeter un regard en arrière sur votre carrière et sentir que votre travail a été plus qu'une façon de gagner de l'argent, cela devrait vous inciter à rendre votre programme libre.
Ce que la GPL exige, c'est qu'il ait la liberté de vous en distribuer une copie s'il le souhaite. Une fois que le détenteur du copyright distribue une copie du programme à quelqu'un, ce quelqu'un peut alors vous redistribuer le programme, ou à n'importe qui d'autre, comme ça lui convient.
Supposons que je commence avec la version originale (appelons-la version A), que j'ajoute du code (disons 1000 lignes), et que je publie cette version (appelons-la B) sous la GPL. La GPL dit que quiconque peut changer la version B à nouveau et publier le résultat sous la GPL. Aussi je peux (ou quelqu'un d'autre) supprimer ces 1000 lignes, en produisant la version C qui a le même code que la version A mais sous la GPL.
Si vous essayez de bloquer ceci, en disant explicitement dans la licence que je ne suis pas autorisé à reproduire quelque chose identique à la version A sous la GPL en supprimant ces lignes de la version B, en fait la licence dit maintenant que je ne peux pas utiliser entièrement la version B des toutes les manières que l'autorise la GPL. En d'autres mots, la licence n'autorise pas en fait un utilisateur à publier une version telle que la version B sous la GPL.
Que le déplacement vers ou à partir de cette filiale constitue une «distribution» ou pas est une question qui doit être décidée en fonction de la loi sur le droit d'auteur et de la juridiction appropriés. La GPL ne surpasse pas les lois locales. La loi sur le droit d'auteur américain n'est pas totalement claire sur ce point, mais ne semble pas traiter de ce cas de distribution.
Si, dans certains pays, c'est considéré comme une distribution, et que la filiale doit recevoir le droit de redistribuer le programme, cela ne fera pas de grande différence. La filiale est contrôlée par la société mère; droits ou pas droits, elle ne redistribuera pas le programme à moins que la société mère ne le décide.
Certains systèmes d'empaquetage de logiciel ont une partie qui nécessite de cliquer ou d'indiquer votre accord des termes de la GPL. Ce n'est ni requis, ni interdit. Avec ou sans clic, les règles de la GPL demeurent les mêmes.
Le fait d'accepter les termes de la GPL ne vous obligent à rien. Vous n'êtes pas obligé d'accepter quoi que ce soit pour seulement utiliser le logiciel sous licence GPL. Vous avez des obligations seulement si vous modifier ou distribuer le logiciel. Si cela vous ennuie vraiment de cliquer pour accepter l'accord de licence de la GPL, rien ne vous empêche de modifier le logiciel pour passer outre.
Non. L'installeur et les fichiers qu'il installe sont des travaux séparés. Par conséquent, les termes de la GPL ne s'appliquent pas au logiciel d'installation.
En savoir plus sur les licences