[Traduit de l'anglais]

Foire aux questions sur la GNU GPL version 2

Cette page contient les réponses aux questions les plus courantes sur la licence publique générale GNU (GNU GPL). La foire aux questions pour la dernière version de la GPL se trouve ici. 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 logiciel libre avec notre quiz (en anglais).

Table des matières


Questions de base sur la GPL, le projet GNU, et la Fondation pour le logiciel libre

Compréhension générale de la GPL

Utiliser la GPL pour vos programmes

Distribution de programmes régis par la GPL

Utiliser des programmes sous GPL pour écrire d'autres programmes

Combiner un travail avec du code sous GPL

Questions sur les violations de la GPL


Que veut dire « GPL » ?
« GPL » veut dire General Public License (Licence Publique Générale). La plus répandue des licences de ce type est la Licence Publique Générale GNU [GNU General Public License], ou GNU GPL pour faire court. On peut raccourcir encore plus en « GPL », s'il est entendu qu'il s'agit de la GNU GPL.
Est-ce que logiciel libre signifie utiliser la GPL ?
Absolument pas. Il y a beaucoup d'autres licences de logiciel libre. En voici une liste incomplète. Toute licence qui offre à l'utilisateur certaines libertés spécifiques est une licence de logiciel libre.
Pourquoi devrais-je utiliser la GNU GPL plutôt que d'autres licences de logiciel libre ?
En utilisant la GNU GPL vous exigerez que toutes les versions améliorées diffusées soient du logiciel libre. Ceci signifie que vous pouvez éviter le risque d'avoir à entrer en concurrence avec une version modifiée privatrice de votre propre travail. Cependant, dans certaines situations il peut être préférable d'utiliser une licence plus permissive.
Est-ce que tous les logiciels GNU utilisent la GNU GPL comme licence ?
La plupart des logiciels GNU utilisent la GNU GPL, mais il existe un petit nombre de programmes (et portions de programmes) GNU qui utilisent des licences moins restrictives, telles que la GPL amoindrie [Lesser GPL]. Quand nous l'utilisons, c'est pour des raisons stratégiques.
Est-ce que le fait d'utiliser la GPL pour un programme en fait un logiciel GNU ?
N'importe qui peut publier un programme sous licence GNU GPL mais ça n'en fait pas un logiciel GNU.

Faire d'un programme un 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>.

Que dois-je faire si je découvre une violation potentielle de la GPL ?
Vous devez la signaler. Tout d'abord, vérifiez les faits du mieux que vous pouvez. Puis signalez-les à l'éditeur ou au titulaire du copyright du programme en question régi par la GPL. Si c'est la Free Software Foundation, écrivez à <license-violation@gnu.org>. Sinon, le mainteneur du programme pourrait en détenir le copyright, ou pourrait vous dire comment contacter le titulaire du copyright ; donc signalez-le au mainteneur.
Pourquoi la GPL permet-elle aux utilisateurs de publier leur versions modifiées ?
Un aspect crucial du logiciel libre est que les utilisateurs sont libres de coopérer. Il est absolument essentiel de permettre aux utilisateurs qui désirent s'entraider de partager leurs correctifs et améliorations avec d'autres.

Certains ont proposé des alternatives à la GPL qui requièrent que la version modifiée passe par l'auteur original. Tant que ce dernier assure la maintenance nécessaire, ceci peut fonctionner en pratique, mais si l'auteur cesse (plus ou moins) pour passer à autre chose, ou ne répond pas aux besoins de tous les utilisateurs, l'échafaudage s'écroule. 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.

La GPL exige-t-elle que le code source des versions modifiées soit porté à la connaissance du public ?
La GPL n'exige pas que vous publiiez votre version modifiée. Vous êtes libre de faire des modifications et de les utiliser à titre privé, sans jamais les publier. Ceci s'applique aussi aux organisations (y compris les sociétés) ; une organisation peut réaliser une version modifiée et l'utiliser en interne sans jamais la diffuser en dehors de l'organisation.

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 les distribuer vous regarde.

Puis-je avoir un programme régi par la GPL et un programme non libre indépendant sur le même ordinateur ?
Oui. La clause de « simple agrégation » [mere aggregation] de la GPL rend cette autorisation explicite, mais cela renforce seulement ce qui de notre point de vue serait vrai de toute façon.
Si je connais quelqu'un qui a une copie d'un programme régi par la GPL, puis-je exiger qu'il m'en donne une copie ?
Non. La GPL lui donne la permission de faire et de redistribuer des copies du programme s'il choisit de le faire et quand il choisit de le faire. Il a également le droit de ne pas redistribuer le programme lorsque c'est son choix.
Que veut dire « offre écrite valable pour n'importe quel tiers » [written offer valid for any third party] ? Cela signifie-t-il que n'importe qui peut obtenir les sources de n'importe quel programme sous GPL dans tous les cas ?

Si vous choisissez de fournir les sources via une offre écrite, alors quiconque vous demande les sources est en droit de les recevoir.

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 obtenus 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.

Si nous exigeons que l'offre soit valable pour n'importe quel tiers, c'est pour que les personnes ayant reçu les fichiers binaires indirectement de cette façon puissent commander le code source auprès de vous.

La GPL dit que si l'on publie des versions modifiées, on doit « concéder une licence… à tout tiers » [licensed… to all third parties]. Qui sont ces tiers ?
D'après l'article 2, les versions modifiées que vous distribuez doivent être licenciées à tous les tiers aux termes de la GPL. « À tous les tiers » [all third parties] signifie absolument tout le monde – mais ça ne vous oblige pas à faire quelque chose physiquement pour eux. Cela veut seulement dire qu'ils ont obtenu une licence de votre part, aux termes de la GPL, pour votre version.
Suis-je obligé de revendiquer un copyright sur les modifications que j'apporte à un programme régi par la GPL ?
Vous n'êtes pas obligé de revendiquer un copyright sur vos modifications. Dans la plupart des pays, cependant, ceci se produit automatiquement par défaut. Dans la plupart des pays, cependant, ce copyright vous est attribué par défaut, automatiquement. Par conséquent, si vous ne voulez pas que vos modifications soient sous copyright, vous devrez les mettre dans le domaine public de manière explicite.1

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).

Si un programme combine du code du domaine public et du code régi par la GPL, puis-je prendre le code appartenant au domaine public et l'utiliser comme tel ?
Vous pouvez le faire, si vous pouvez déterminer quelle partie est dans le domaine public et la séparer du reste. Si du code a été mis dans le domaine public par son développeur, il est dans le domaine public peu importe où il était auparavant.
Est-ce que la GPL m'autorise à faire payer des exemplaires de mon programme ?
Oui, la GPL autorise cela pour tout le monde. Le droit de vendre des copies est une partie de la définition du logiciel libre. À part dans un cas, il n'y a pas de limite au prix que vous pouvez demander (cette unique exception est la proposition écrite de code source qui doit obligatoirement accompagner toute publication de binaires seuls).
La GPL me permet-elle de réclamer une redevance pour le téléchargement d'un programme sur mon site de distribution ?
Oui. Vous pouvez demander le montant que vous souhaitez pour distribuer une copie du programme. Si vous distribuez des exécutables en téléchargement, vous devez fournir un « accès équivalent » pour le téléchargement des sources – cependant, vous ne pouvez pas demander une somme plus importante pour télécharger les sources que pour télécharger les exécutables.
Est-ce que la GPL m'autorise à exiger que quiconque reçoit le logiciel me verse une redevance ou me le signale ?
Non. D'ailleurs, une telle exigence rendrait le programme non libre. Si l'on doit payer pour recevoir une copie d'un programme, ou si l'on doit le signaler à quelqu'un en particulier, alors le programme n'est pas libre. Voir la définition du logiciel libre.

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 redevance à quiconque pour cela.

Vous pouvez faire payer aux gens l'exemplaire que vous leur procurez. Vous ne pouvez pas exiger qu'ils vous paient lorsqu'ils se procurent un exemplaire auprès de quelqu'un d'autre.

Si je distribue un programme régi par la GPL contre une redevance, suis-je obligé de le rendre également disponible au public gratuitement ?
Non. Cependant, si quelqu'un paie pour obtenir une copie, la GPL lui donne la liberté de la rendre disponible au public, avec ou sans redevance. Par exemple, quelqu'un pourrait payer ce que vous demandez, puis mettre sa copie à la disposition du public sur un site web.
La GPL me permet-elle de distribuer une copie sous accord de non-divulgation ?
Non. La GPL dit que quiconque reçoit une copie de votre version de votre part a le droit d'en redistribuer des copies, modifiées ou non. Elle ne vous donne pas le droit de distribuer votre version avec des restrictions supplémentaires.

Si quelqu'un vous demande de signer un accord de non-divulgation pour recevoir un logiciel sous copyright de la FSF, veuillez nous en informer immédiatement en écrivant à license-violation@fsf.org.

Si la violation concerne du code sous GPL dont le copyright est détenu par quelqu'un d'autre, veuillez en informer le titulaire du copyright, tout comme vous le feriez pour toute autre violation de la GPL.

La GPL me permet-elle de distribuer une version modifiée ou beta sous accord de non-divulgation ?
Non. La GPL dit que vos versions modifiées doivent comporter toutes les libertés déclarées dans la GPL. Par conséquent, quiconque reçoit une copie de votre version de votre part a le droit de redistribuer des copies (modifiées ou non) de cette version. Vous ne pouvez distribuer aucune version du programme sur une base plus restrictive.
La GPL me permet-elle de développer une version modifiée sous accord de non-divulgation ?
Oui. Par exemple, vous pouvez accepter un contrat pour développer des modifications et accepter de ne pas publier vos modifications jusqu'à ce que le client soit d'accord. Ceci est permis car dans ce cas aucun code régi par la GPL n'est distribué sous accord de non-divulgation.

Vous pouvez également communiquer vos modifications au client sous GPL, mais accepter de ne pas les diffuser à d'autres personnes à moins que le client ne soit d'accord. Dans ce cas non plus, aucun code régi par la GPL n'est distribué sous accord de non-divulgation, ni avec aucune autre restriction supplémentaire.

La GPL donne le droit au client de redistribuer votre version. Dans ce scénario, le client choisira probablement de ne pas exercer ce droit, mais il le possède.

Je veux que mon travail soit reconnu. Je veux que les gens sachent ce que j'ai écrit. Puis-je encore être reconnu si j'utilise la GPL ?
Votre travail peut sans aucun doute être reconnu. La distribution d'un programme sous GPL implique la rédaction d'un avis de copyright à votre nom (à supposer que vous déteniez ce copyright). La GPL exige que chaque copie porte un avis de copyright approprié.
Pourquoi la GPL exige-t-elle d'inclure une copie de la GPL avec chaque copie du programme ?
Le fait d'inclure une copie de la licence avec le programme est vital, ainsi tous ceux qui reçoivent une copie du programme peuvent connaître leurs droits.

Il peut paraître tentant d'inclure une URL qui pointe vers 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.

Et si le programme n'est guère plus long que la licence elle-même ?
Si un programme complet est si court que ça, vous pouvez aussi bien utiliser une licence simple entièrement permissive, plutôt que la GNU GPL.
Puis-je ôter le préambule de la GPL, ou le mode d'emploi (section How to Apply These Terms to Your New Programs), pour économiser de l'espace ?
Le préambule et les instructions font partie intégrante de la GNU GPL et ne peuvent être supprimés. Lisez s'il vous plaît l'ensemble de la GPL. En fait, la GPL est sous copyright, et sa licence permet seulement de la recopier telle quelle dans son intégralité (vous pouvez en utiliser les clauses pour faire une autre licence, mais ce ne sera pas la GNU GPL).

Le préambule et les instructions ajoutent environ 5000 caractères, moins d'1/3 de la taille totale de la GPL. Ils ne constitueront pas un changement relatif important de la taille du paquet logiciel, à moins que ce paquet ne soit lui-même vraiment petit. Dans ce cas, vous pourriez aussi bien utiliser une licence simple totalement permissive plutôt que la GNU GPL.

Qu'est-ce que cela signifie que deux licences soient « compatibles » ?
Afin de combiner deux programmes (ou des parties importantes de ceux-ci) dans une programme plus grand [larger work], vous devez avoir la permission d'utiliser les deux programmes de cette manière. Si les licences des deux programmes le permettent, elles sont compatibles. S'il n'y a aucun moyen de satisfaire les deux licences en même temps, elles sont incompatibles.

Pour certaines licences, la façon dont la combinaison est faite peut affecter leur compatibilité. Par exemple, elles peuvent autoriser la liaison de deux modules, mais ne pas autoriser la fusion de leurs codes en un seul module.

S'il s'agit d'installer deux programmes distincts sur un même système, il n'est pas nécessaire que leurs licences soient compatibles, car cela ne les combine pas dans un programme plus grand.

Que veut dire « licence compatible avec la GPL » ?
Cela veut dire que la GNU GPL et l'autre licence sont compatibles ; vous pouvez combiner du code publié sous l'autre licence avec du code publié sous la GNU GPL dans un programme plus grand.

La GPL autorise une telle combinaison, à condition que cette dernière soit distribuée sous GNU GPL. L'autre licence est compatible avec la GPL si elle permet cela aussi.

Puis-je écrire un logiciel libre qui utilise des bibliothèques non libres ?
Si vous faites cela, votre programme ne sera pas totalement utilisable dans un environnement libre. Si votre programme dépend d'une bibliothèque non libre pour faire certaines tâches, il ne pourra pas le faire dans le monde du libre. S'il dépend d'une bibliothèque non libre pour fonctionner, il ne pourra pas faire partie d'un système d'exploitation libre tel que GNU ; c'est totalement exclu dans le monde du libre.

Alors, réfléchissez. Pouvez-vous trouver un moyen de réaliser cette tâche sans utiliser cette bibliothèque ? Pouvez-vous écrire une bibliothèque libre pour la remplacer ?

Si le programme a été écrit en utilisant la bibliothèque non libre, il est peut-être déjà trop tard pour changer de décision. Tant qu'à faire, il vaut mieux le publier tel qu'il est plutôt que de ne pas le publier. Mais dites dans le fichier LISEZ-MOI que la nécessité de cette bibliothèque non libre est un inconvénient et que le programme devrait être modifié de manière à faire la même chose sans elle. Suggérez aux personnes qui envisagent un travail important sur ce programme de le libérer au préalable de sa dépendance à la bibliothèque non libre.

Notez également qu'il peut y avoir des problèmes juridiques quand on combine certaines bibliothèques non libres avec un logiciel libre régi par la GPL. Veuillez consulter la question sur les logiciels sous GPL dépendant de bibliothèques incompatibles avec la GPL pour plus de renseignements.

Quels problèmes juridiques puis-je rencontrer si j'utilise, avec du logiciel sous GPL, des bibliothèques incompatibles avec la GPL ?
Si les bibliothèques avec lesquelles vous faites une édition de liens entrent dans le champ de l'exception suivante de la GPL :

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.b

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 privateur, la GPL dit que l'on peut les utiliser dans une édition de lien avec votre programme sans aucune condition.

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. Cet avis de copyright et de licence autorise l'édition de lien avec le programme FOO :

Copyright (C) aaaa [Nom du détenteur du copyright]

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.b

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.c

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.d

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.e

Vous devez ajouter ce texte dans chaque fichier auquel s'applique l'exception.

Seuls les titulaires du copyright sur le programme peuvent légalement publier leur logiciel sous ces termes. Si vous avez écrit tout le programme vous-même (à condition que votre employeur ou votre école ne revendique pas le copyright), vous en êtes le titulaire ; vous pouvez donc autoriser cette exception. Mais si vous voulez utiliser dans votre code des parties de programmes sous GPL d'autres auteurs, vous ne pouvez pas autoriser l'exception pour eux. Vous devez obtenir l'accord des titulaires des copyrights sur ces programmes.

Quand d'autres personnes modifient le programme, elles n'ont pas à mettre en place 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 qui utilisent des bibliothèques non libres.

Comment obtenir un copyright sur mon programme de façon à le distribuer sous GPL ?
Selon la Convention de Berne, tout écrit est automatiquement sous copyright dès qu'il est mis sous une forme fixe. Donc vous n'avez rien à faire pour « obtenir » un copyright sur ce que vous écrivez, dès lors que personne d'autre ne peut prétendre posséder votre travail.

C'est toutefois une excellente idée d'enregistrer votre copyright aux États-Unis. Cela vous donnera plus d'influence pour traiter avec un contrevenant aux États-Unis.

Il se peut que quelqu'un d'autre puisse revendiquer le copyright si vous êtes un employé ou un étudiant : 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 votre employeur ou votre école peuvent avoir des droits, vous pouvez résoudre le problème une fois pour toutes 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).

Et si mon école décidait de mettre mon programme dans son propre logiciel privateur ?2
De nombreuses universités essaient aujourd'hui d'attirer des fonds en restreignant l'utilisation des connaissances et informations qu'elles développent, se comportant en cela de manière peu différente des entreprises commerciales (voir dans « The Kept University », Atlantic Monthly, mars 2000, une discussion générale de ce problème et de ses effets).

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. À 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 point de vue prévale, vous devez avoir le courage de dire : « Mon programme sera libre, ou ne sera pas. »

Pourriez-vous me donner des instructions détaillées sur la façon d'appliquer la GPL à mon programme ?
Allez voir le mode d'emploi de la GPL.
J'ai entendu parler de quelqu'un qui a obtenu une copie d'un programme, régi par la GPL, sous une autre licence. Cela est-il possible ?
La GNU GPL ne donne pas le droit aux utilisateurs d'attacher d'autres licences au programme. Mais le titulaire du copyright sur un programme peut le publier sous différentes licences en parallèle. L'une d'entre elles peut être la GNU GPL.

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 ayez acquis cette copie de façon légitime, est la licence qui s'applique à votre copie.

Je voudrais publier sous GNU GPL un programme que j'ai écrit, mais j'aimerais utiliser le même code dans un programme non libre.
Il est toujours éthiquement discutable de publier un logiciel non libre, mais il n'y a pas d'obstacle juridique à ce que vous agissiez ainsi. Si vous êtes le détenteur du copyright pour le code, vous pouvez le publier sous différentes licences non exclusives à différents moments.
Est-ce que le développeur d'un programme régi par la GPL est lié par cette licence ? Est-ce que le développeur pourrait se retrouver un jour en violation de la GPL ?
En toute rigueur, la GPL est une licence de la part du développeur à l'intention des tiers qui voudraient utiliser, distribuer et modifier le programme. Le développeur lui-même n'est pas contraint par elle ; donc, quoi que fasse le développeur, ce n'est pas une « violation » de la GPL.

Toutefois, si le développeur devait entreprendre une action qui violerait la GPL si cette action était faite par quelqu'un d'autre, alors il perdrait sûrement de son autorité morale dans la communauté.

Le développeur d'un programme qui l'a distribué sous GPL peut-il ensuite établir avec un tiers une licence pour son usage exclusif ?
Non, parce que le public détient déjà le droit d'utiliser le programme sous la GPL, et que ce droit ne peut lui être retiré.
Puis-je utiliser des éditeurs sous GPL comme GNU Emacs pour développer des programmes non libres ? Puis-je utiliser des outils sous GPL comme GCC pour les compiler ?
Oui, parce que le copyright sur l'éditeur de texte ou les outils ne couvre pas le code que vous écrivez. Du point de vue juridique, leur utilisation n'impose pas de restriction à la licence que vous appliquez à votre code.

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 sous la même licence que dans le code source. La partie du résultat qui provient des données fournies au programme hérite, elle, du statut de copyright de ces données.

Il se trouve que Bison peut aussi être utilisé pour développer des programmes non libres, et ceci parce que nous avons décidé d'autoriser explicitement l'utilisation sans restriction 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 une utilisation pour des programmes non libres.

Ai-je des droits de fair use (usage raisonnable) pour l'utilisation du code source d'un programme régi par la GPL ?3
Oui. Le fair use est une utilisation autorisée sans permission spéciale. Puisque vous n'avez pas besoin de la permission des développeurs, vous pouvez utiliser ce code quoiqu'ils en aient dit – dans la licence ou ailleurs, que cette licence soit la GNU GPL ou toute 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.

Le gouvernement américain peut-il publier un programme sous la GNU GPL ?
Si le programme est écrit par des employés du gouvernement fédéral américain, dans le cadre de leur travail, il est dans le domaine public, ce qui veut dire qu'il n'y a pas de copyright. Puisque la GNU GPL est basée sur le copyright, un tel programme ne peut être publié en l'utilisant (il peut être un logiciel libre cependant ; un programme du domaine public est libre).

Toutefois, 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 GNU GPL (GNU Ada a été développé de cette façon). Ou bien un contrat peut attribuer le copyright à l'agence gouvernementale, qui peut alors publier le logiciel sous la GNU GPL.

Le gouvernement américain peut-il publier des améliorations apportées à un programme régi par la GPL ?
Oui. Si les améliorations sont écrites par les employés du gouvernement, alors les améliorations sont dans le domaine public. Cependant, la version améliorée, en son entier, est toujours régie par la GNU GPL. Il n'y a pas de problème dans ce cas.

Si le gouvernement utilise des sous-traitants pour faire le travail, alors les améliorations elles-mêmes peuvent être régies par la GPL.

Y a-t-il un moyen de mettre sous GPL le résultat que les utilisateurs obtiennent en se servant de mon programme ? Par exemple, si mon programme sert à produire des éléments de conception de composants matériels, puis-je exiger que ces éléments de conception soient libres ?
En général, ceci est juridiquement impossible ; la législation du copyright ne vous donne aucun droit sur l'utilisation du résultat obtenu par les gens qui ont fourni leurs données à votre programme. Si l'utilisateur se sert de votre programme pour saisir ou convertir ses propres données, c'est à lui et non à vous qu'appartient le copyright du produit obtenu. Plus généralement, quand un programme met les données qu'il reçoit sous une forme différente, le statut de copyright du résultat hérite de celui qui régissait les données ayant servi à le générer.

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 régie par la GNU GPL si nous n'avions créé une exception pour ce cas particulier.

Vous pourriez artificiellement forcer un programme à copier un texte particulier dans son résultat, même s'il n'y avait pas de raison technique de le faire. Mais si ce texte n'avait aucune utilité pratique, l'utilisateur pourrait simplement le supprimer du résultat et se servir uniquement du reste. Il n'aurait plus alors à respecter les conditions de redistribution du texte copié.

Dans quels cas le résultat produit par un programme sous GPL est-il également régi par la GPL ?
Seulement quand le programme copie des portions de lui-même dans le résultat.
Si j'ajoute un module à un module régi par la GPL, dois-je utiliser la GPL comme licence pour mon module ?
La GPL dit que l'ensemble du programme combiné doit être publié sous la GPL. Votre module doit donc être disponible pour utilisation sous GPL.

Mais vous pouvez donner des permissions supplémentaires pour l'utilisation de votre code. Vous pouvez, si vous le voulez, publier votre module sous une licence plus permissive que la GPL (voire laxiste), mais qui soit compatible avec elle. Sur la page liste des licences, vous trouverez un inventaire partiel des licences compatibles avec la GPL.

Si une bibliothèque est distribuée sous GPL (et non sous LGPL), cela veut-il dire que tout programme qui l'utilise doit être sous GPL ?

Oui, car du fait que le programme est effectivement lié à la bibliothèque, les termes de la GPL s'appliquent à l'ensemble de la combinaison. Les modules liés à la bibliothèque peuvent être régis par diverses licences compatibles avec la GPL, mais l'ensemble du programme doit être sous la GPL. Voir également la rubrique Que veut dire « licence compatible avec la GPL » ?

Si un interpréteur d'un langage de programmation est publié sous GPL, est-ce que cela signifie que les programmes écrits pour être interprétés par celui-ci doivent être placés sous des licences compatibles avec la GPL ?
Quand l'interpréteur ne fait qu'interpréter le langage, la réponse est non. Le programme interprété est juste des données, pour l'interpréteur ; une licence de logiciel libre comme la GPL, basée sur la législation du copyright, ne peut pas limiter la nature des données que vous fournissez à l'interpréteur. Vous pouvez l'exécuter sur n'importe quelle donnée (programme interprété), comme vous le souhaitez, et vous n'avez aucune obligation de concéder une licence à quiconque pour ces données.

Cependant, lorsque l'interpréteur est étendu pour fournir des « interfaces » [bindings] 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 aussi être publié de manière compatible avec la GPL.

Un 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, et 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.

Par conséquent, si vous choisissez d'utiliser des modules Perl ou des classes Java sous GPL dans votre programme, vous devez publier 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.

J'écris une application Windows avec Microsoft Visual C++ et je prévois de la publier sous GPL. Est-il permis par la GPL de lier mon programme dynamiquement avec la bibliothèque d'exécution [runtime] de Visual C++ ?
La GPL permet ceci parce que cette bibliothèque d'exécution accompagne normalement le compilateur ou l'interpréteur que vous utilisez. Cela tombe donc dans le champ de l'exception de l'article 3 de la GPL.

Cela ne signifie pas que ce soit 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. (Note historique : en décembre 2006, Sun est en train de republier sa plateforme Java sous la GNU GPL [en].)

Pourquoi la licence BSD d'origine est-elle incompatible avec la GPL ?
Parce qu'elle impose une exigence spécifique qui n'est pas dans la GPL ; à savoir la règle portant sur la publicité du programme. La GPL dit :

You may not impose any further restrictions on the recipients' exercise of the rights granted herein.f

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.

Quand peut-on considérer un programme et ses greffons comme un programme combiné unique ?
Cela dépend de la façon dont le programme principal invoque ses greffons. S'il le fait à l'aide d'instructions fork et exec et établit avec eux une communication intime en partageant ou échangeant des structures de données complexes, cela peut faire de l'ensemble un programme combiné unique. Si le programme principal invoque ses greffons à l'aide d'instructions fork et exec mais n'établit pas de communication intime avec eux, les greffons sont des programmes séparés.

Si le programme principal se lie dynamiquement aux greffons et qu'ils font des appels de fonction mutuels en partageant des structures de données, nous pensons qu'ils forment un seul et même programme qui doit être traité comme une extension à la fois du programme principal et des greffons. Si le programme principal se lie dynamiquement aux greffons mais que la communication entre eux se limite à invoquer la fonction main de chaque greffon avec quelques options et à attendre son retour, on est en présence d'un cas limite.

L'utilisation de la mémoire partagée pour communiquer avec des structures de données complexes est pratiquement équivalente à une liaison dynamique.

Si j'écris un greffon pour un programme publié sous GPL, quelles contraintes cela impose-t-il aux licences qu'il m'est possible d'utiliser pour distribuer mon greffon ?
Reportez-vous à cette question pour savoir quand les greffons et le programme principal sont considérés comme un programme combiné unique et quand ils sont considérés comme des créations séparées.

Si le programme principal et les greffons constituent un programme combiné unique, cela signifie que vous devez publier le greffon sous la GPL ou sous une licence de logiciel libre compatible avec la GPL et le distribuer avec le code source en respectant les termes de la GPL. Un programme principal qui est séparé de ses greffons n'impose aucune exigence les concernant.

Puis-je utiliser la GPL pour un greffon dans un programme non libre ?
Reportez-vous à cette question pour savoir quand les greffons et le programme principal sont considérés comme un programme combiné unique, et quand ils sont considérés comme des programmes séparés.

S'ils forment un programme combiné unique, cela signifie que la combinaison du greffon sous GPL avec le programme principal non libre constituerait une violation de la GPL. Toutefois, vous pouvez résoudre ce problème juridique en ajoutant à la licence du greffon une exception 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 ? »

Puis-je faire un programme non libre conçu pour charger un greffon régi par la GPL ?
Reportez-vous à cette question pour savoir quand les greffons et le programme principal sont considérés comme un programme combiné unique, et quand ils sont considérés comme des programmes séparés.

S'ils forment un programme combiné unique, alors le programme principal doit être publié sous la GPL ou sous une licence libre compatible avec la GPL, et les termes de la GPL doivent s'appliquer lorsque le programme principal est distribué en vue de son utilisation avec ces greffons.

Si toutefois ce sont des créations séparées, alors la licence des greffons n'impose pas d'exigence supplémentaire concernant le programme principal.

Voir aussi la question « Puis-je écrire un logiciel libre qui utilise des bibliothèques non libres ? »

Vous avez mis sous GPL un programme que j'aimerais lier à mon code pour fabriquer un programme privateur. Le fait que je fasse une édition de liens avec votre programme implique-t-il que je mette mon programme sous GPL ?
Oui.
Si oui, ai-je une chance d'obtenir une licence de votre programme sous la GPL amoindrie [Lesser GPL] ?
Vous pouvez toujours demander, mais la plupart des auteurs persisteront à vous le refuser. L'idée même de la GPL est que, si vous voulez inclure notre code dans votre programme, votre programme doit aussi être un logiciel libre. Ceci est fait pour vous inciter à distribuer votre programme de telle sorte qu'il s'intègre à notre communauté.

Vous disposez toujours de l'alternative légale de ne pas utiliser notre code.

Comment puis-je autoriser la liaison de modules privateurs avec ma bibliothèque sous GPL uniquement dans une interface contrôlée ?
Ajoutez ce texte à l'avis de licence de chaque fichier du paquet, à la fin du texte qui dit que le fichier est distribué sous la licence GNU GPL :

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.c

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.g

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.e

Seuls les titulaires du copyright sur le programme peuvent légalement publier leur logiciel sous ces termes. Si vous avez écrit tout le programme vous-même (à condition que votre employeur ou votre école ne revendique pas le copyright), vous en êtes le titulaire ; vous pouvez donc autoriser cette exception. Mais si vous voulez utiliser dans votre code des parties de programmes sous GPL d'autres auteurs, vous ne pouvez pas autoriser l'exception pour eux. Vous devez obtenir l'accord des titulaires des copyrights sur ces programmes.

J'ai écrit une application qui se lie avec de nombreux composants différents régis par différentes licences. Je ne comprends vraiment pas bien quelles clauses des licences s'appliquent à mon programme. Pourriez-vous m'expliquer quelles licences je peux utiliser ?
Pour répondre à cette question, nous aurions besoin de voir une liste complète des composants utilisés par votre programme, des licences de chacun de ces composants, ainsi qu'une brève description (quelques phrases par composant devraient suffire) de la façon dont votre bibliothèque les utilise. Deux exemples potentiels :
  • Pour que mon logiciel fonctionne, il doit subir une édition de liens avec la bibliothèque FOO, qui est disponible sous GPL amoindrie [Lesser GPL].
  • Mon logiciel fait un appel système (avec une ligne de commande que j'ai écrite) pour lancer le programme BAR, qui est « sous GPL, avec une exception spéciale autorisant une édition de liens avec QUUX ».
Quelle est la différence entre la « simple agrégation » [mere aggregation] et la « combinaison de deux modules dans un seul programme » [combining] ?
La simple agrégation de deux programmes consiste à les mettre côte à côte sur le même CD-ROM ou le même disque dur. Nous utilisons ce terme dans les cas où il s'agit de programmes distincts, pas des parties d'un même programme. Dans ce cas, si l'un des programmes est régi par la GPL, cela n'a pas d'effet sur l'autre programme.

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.

En quoi consiste la combinaison de 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, appels 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 d'adressage 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 ces mécanismes ne servent qu'à 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 peut constituer une base suffisante pour considérer les deux éléments combinés comme un seul et même programme.

Pourquoi la FSF requiert-elle que les personnes qui contribuent aux programmes sous copyright de la FSF transfèrent leur copyright à la FSF ? Si je détiens le copyright d'un programme sous GPL, est-ce que je dois faire la même chose ? Si oui, comment ?
Nos avocats nous ont avisés que pour être dans la meilleure position pour faire appliquer la GPL au tribunal contre des contrevenants, il valait mieux conserver un statut de copyright le plus simple possible. C'est ce que nous faisons en demandant à chaque contributeur, soit de transférer le copyright de sa contribution à la FSF, soit d'abandonner ce copyright, le plaçant ainsi dans le domaine public.

Nous demandons également aux contributeurs individuels d'obtenir une renonciation au copyright écrite par leur employeur (s'il existe), de manière à s'assurer que ce dernier ne pourra 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 les encourageons à transférer à la FSF le copyright sur les contributions importantes en matière de code, et à ne mettre que les modifications mineures dans le domaine public.

Si vous êtes prêt à vous donner du mal pour faire appliquer la GPL à 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.

Puis-je modifier la GPL et faire une licence modifiée ?
Vous pouvez utiliser les termes de la GPL (qui peuvent être modifiés) dans une autre licence, à condition de donner un autre nom à votre licence et de ne pas y inclure le préambule de la GPL, et à condition de modifier les instructions d'utilisation de la fin suffisamment pour les rendre clairement différentes dans leur formulation et ne pas y mentionner GNU (bien que la procédure que vous décrivez puisse être similaire).

Si vous voulez utiliser notre préambule dans une licence modifiée, veuillez écrire à <licensing@gnu.org> pour obtenir une autorisation. À cette fin, nous voudrons vérifier les conditions réelles de la licence pour voir si nous les approuvons.

Bien que nous n'ayons pas d'objection juridique à une telle modification de la licence, 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 GNU GPL, et cette incompatibilité bloque des combinaisons utiles de modules. La prolifération de différentes licences de logiciel libre est un fardeau en soi.

Si j'utilise un morceau de logiciel que j'ai obtenu sous GNU GPL, ai-je le droit de modifier le code original pour créer un nouveau programme, puis de commercialiser ce programme ?
Vous êtes autorisé à vendre des copies du programme modifié, mais uniquement selon les termes de la GNU GPL. Ainsi, par exemple, vous devez rendre le code source disponible pour les utilisateurs du programme comme précisé par la GPL, et ils doivent être autorisés à le redistribuer et à le modifier, comme prévu également par la GPL.

Ces conditions sont indispensables pour inclure dans votre programme le code sous GPL que vous avez reçu.

Puis-je utiliser la GPL pour autre chose que des logiciels ?
Vous pouvez appliquer la GPL à n'importe quel type d'œuvre, du moment qu'il n'y a pas d'incertitude sur ce qui constitue le « code source » de l'œuvre. Ce que la GPL définit par la forme privilégiée de l'œuvre permettant d'y apporter des modifications.

Toutefois, pour les manuels (scolaires en particulier), et plus généralement pour tout ouvrage destiné à enseigner un sujet, nous recommandons l'utilisation de la GNU FDL, plutôt que de la GPL.

Comment la LGPL fonctionne-t-elle avec Java ?
Voir cet article pour les détails. Cela fonctionne comme c'est conçu, voulu et attendu.
Considérez la situation suivante :
1) X distribue la version V1 d'un projet sous GPL.
2) Y contribue au développement de la version V2 avec des modifications et des ajouts au code basés sur V1.
3) X veut convertir la version V2 vers une licence autre que GPL.
X a-t-il besoin de la permission de Y ?
Oui. Y avait l'obligation de distribuer sa version sous GNU GPL, du fait qu'elle est basée sur la version V1 de X. Rien n'oblige Y à être d'accord avec toute autre licence pour son code. Par conséquent, X doit obtenir la permission de Y avant de distribuer ce code sous une autre licence.
J'aimerais incorporer un logiciel sous GPL dans mon système privateur. Est-ce possible ?
Vous ne pouvez pas incorporer de logiciel régi par la GPL dans un système privateur. L'objectif de la GPL est d'accorder à tous la liberté de copier, redistribuer, comprendre, et modifier un programme. Si vous pouviez incorporer des logiciels sous GPL dans un système non libre, cela aurait pour effet de rendre également non libres les logiciels sous GPL.

Un système qui incorpore un programme régi par la 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 lors qu'elle est 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 privateur. 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 régir l'ensemble.

Si les deux programmes demeurent bien séparés, comme le compilateur et le noyau, ou bien 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ûrs que l'utilisateur comprenne bien le statut libre du logiciel qui est sous GPL dans cet ensemble.

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 privateur, 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.

L'utilisation d'un certain programme GNU placé sous GPL ne cadre pas avec notre projet de réalisation d'un logiciel privateur. Pourriez-vous faire une exception pour nous ? Cela augmenterait le nombre d'utilisateurs de ce programme.
Désolé, nous ne faisons pas d'exception de ce genre, cela ne serait pas bien.

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 projets logiciels privateurs contrecarrent plus qu'ils ne favorisent la cause de la liberté.

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 faut pour cela nous montrer une bonne raison que cela fasse avancer la cause du logiciel libre.

Il nous arrive aussi quelquefois de modifier les clauses de distribution d'un paquet, quand cela nous apparaît clairement comme un moyen de promouvoir la cause du logiciel libre, mais nous sommes très prudents à ce sujet et il vous faudra nous donner des raisons très convaincantes.

J'aimerais incorporer un logiciel régi par la GPL dans mon système privateur. Puis-je le faire en ajoutant un module « enveloppant », sous une licence permissive (laxiste) compatible avec la GPL (la licence X11, par exemple) entre la partie régie par la GPL et la partie privatrice ?
Non. La licence X11 est compatible avec la GPL, donc vous pouvez incorporer un module au programme régi par la GPL et le mettre sous licence X11. Mais si vous les incorporez dans un programme plus grand, cet ensemble inclurait la partie régie par la GPL, donc cet ensemble devrait être sous la GNU GPL.

Le fait qu'un module privateur A communique avec un module C régi par la GPL par le seul biais d'un module B sous licence X11 n'est pas juridiquement recevable ; ce qui importe, c'est le fait que le module C est inclus dans l'ensemble.

Est-ce que l'exception de libstdc++ permet les liaisons dynamiques ?
Oui. Le but de l'exception est d'autoriser les gens à compiler des logiciels privateurs en utilisant GCC.
J'aimerais modifier des programmes sous GPL et les lier avec les bibliothèques de portage de Pompe-À-Fric, S.A. Je ne peux pas distribuer le code source de ces bibliothèques, aussi tout utilisateur voulant modifier ces versions devrait acheter ces bibliothèques. Pourquoi la GPL ne le permet-elle pas ?
Il y a deux raisons à cela.

D'abord une raison d'ordre général. Si nous autorisions la société A à créer un fichier privateur, 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 y faire passer un camion. On aurait alors carte blanche pour faire de la rétention de code source pour toutes sortes de modifications ou 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-À-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 d'un module Q requiert une condition incompatible avec la GPL, mais que cette condition s'applique seulement lorsque Q est distribué seul, et non lorsqu'il est distribué dans un plus grand programme, est-ce compatible avec la licence GPL ? Puis-je combiner ou lier Q avec un programme régi par la GPL ?
Si un programme P est publié sous la GPL, cela signifie que toute et chaque partie de celui-ci peut être utilisée sous la GPL. Si vous intégrez le module Q, et publiez le programme combiné P+Q sous la GPL, cela signifie que chaque partie de P+Q peut être utilisée sous la GPL. Une partie de P+Q est Q. Aussi, publier P+Q sous la GPL signifie que Q, une partie de celui-ci, peut être utilisé sous la GPL. En d'autres termes, un utilisateur qui obtient P+Q sous la GPL peut supprimer P, de sorte que seul Q demeure, toujours sous la GPL.

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.

Puis-je publier une version modifiée d'un programme régi par la GPL sous forme binaire uniquement ?
Non. Tout le propos de la GPL est que toutes les versions modifiées doivent être des logiciels libres, ce qui signifie, en particulier, que le code source de la version modifiée est disponible pour les utilisateurs.
J'ai téléchargé uniquement le programme binaire à partir d'Internet. Si je distribue des copies, dois-je me procurer le code source et le redistribuer aussi ?
Oui. La règle générale est que si vous distribuez des binaires, vous devez aussi distribuer le code source complet correspondant. L'exception pour le cas où vous recevez une offre écrite pour le code source est tout à fait limitée.
Je veux distribuer les fichiers binaires d'un programme sous GPL sur support physique sans les sources associées. Puis-je fournir le code source par FTP plutôt que de l'envoyer par la poste sur demande ?
Vous êtes censé fournir le code source sur un support physique envoyé par la poste, si quelqu'un vous en passe commande. Vous pouvez très bien, en plus de l'option envoi postal, proposer aux gens un moyen de récupérer le code source par FTP, mais un accès au code source par FTP ne suffit pas pour respecter la section 3 de la GPL.

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 peuvent pas faire ce genre de téléchargement. Les autres ont également 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.

Si l'accès FTP est suffisamment pratique, peut-être que personne ne choisira de demander une copie par courrier. Si c'est le cas, vous n'aurez pas à en envoyer. Mais vous ne pouvez pas en être sûr.

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 devez distribuer les sources par FTP.

Mon ami a un exécutable d'un programme sous GPL avec une offre de fourniture des sources, et a fait une copie pour moi. Puis-je utiliser l'offre pour obtenir les sources ?
Oui. L'offre doit être ouverte à toute personne qui a une copie de l'exécutable qu'elle accompagne. C'est pourquoi la GPL dit que votre ami doit vous donner une copie de l'offre avec la copie de l'exécutable – pour que vous puissiez en bénéficier.
Puis-je mettre les binaires sur mon serveur Internet et les sources sur un site Internet différent ?
La GPL prévoit que vous devez offrir un accès au code source « à partir du même endroit » [from the same place] ; ce qui signifie à côté des fichiers binaires. Si toutefois vous vous arrangez avec un autre site pour rendre disponible le code source nécessaire, et que vous mettez un lien ou une référence croisée au code source à côté des fichiers binaires, nous pensons que cela équivaut à « à partir du même endroit ».

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 accessibles les fichiers binaires.

Je veux distribuer une version étendue d'un programme sous GPL sous forme binaire. Me suffit-il de distribuer le code source de la version originale ?
Non, vous devez fournir le code source qui correspond aux binaires. Le code source correspondant est celui à partir duquel l'utilisateur peut recompiler les même binaires.

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 doivent avoir accès au code source de votre version.

Un objectif majeur de la GPL est de construire le monde du 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.

Je souhaite distribuer des binaires, mais il est difficile de distribuer l'ensemble du code source. Et si je donnais aux utilisateurs les différences par rapport à la version « standard » en même temps que les binaires ?
L'intention est louable, mais cette méthode pour fournir le code source ne convient pas vraiment.

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 avec les binaires, pas seulement les différences.

Je veux rendre les binaires disponibles par FTP anonyme, mais envoyer les sources uniquement à ceux qui en font la demande.

Si vous voulez distribuer les binaires par FTP anonyme, vous devez de toute façon fournir le code source au moyen d'une des options énumérées à l'article 3. Ce ne devrait pas être difficile. Vous pouvez fournir une offre écrite de code source si vous voulez ; l'article 3(b) le permet. Mais si vous pouvez trouver un site qui distribue votre programme, vous pouvez certainement en trouver un qui a de la place pour vos sources.

Quelle que soit la manière dont vous distribuez le code source, celui que vous fournissez doit correspondre exactement aux binaires. Vous devez tout particulièrement vous assurer qu'elles appartiennent à la même version du programme, et non à une version plus ancienne ou plus récente.

Vous pouvez rendre les sources et les binaires disponibles sur des machines différentes, pourvu qu'elles soient d'accès aussi facile l'une que l'autre, et pourvu que vous placiez l'information disant où trouver les sources près des binaires.

Comment puis-je m'assurer que tout utilisateur qui télécharge les binaires obtient également le code source ?
Vous n'avez pas à vous en assurer. Du moment que vous mettez à disposition des utilisateurs à la fois les sources et les binaires, afin qu'ils puissent voir ce qui est disponible et prendre ce qui les intéresse, vous avez fait ce que l'on attend de vous. C'est à l'utilisateur de décider s'il veut télécharger 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.

Une société utilise une version modifiée d'un programme sous GPL sur son site web. La GPL dit-elle qu'elle doit publier les sources modifiées ?
La GPL permet à quiconque de faire une version modifiée sans avoir à la redistribuer à d'autres. Ce que fait cette société en est un cas particulier. Par conséquent, la société n'est pas obligée de publier les sources modifiées.

Il est essentiel pour les gens d'avoir la liberté de faire 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 difficilement être 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 choisir la GPL Affero [en] pour des programmes conçus pour une utilisation sur des serveurs en réseau.

Est-ce que l'utilisation à l'intérieur d'une organisation ou d'une société est une « distribution » ?
Non, dans ce cas la société fait juste des copies pour elle-même. Par conséquent, une société ou une organisation peut développer une version modifiée et l'installer dans ces locaux, sans donner la permission au personnel de publier la version modifiée à l'extérieur.

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 quelqu'un vole un CD contenant une version d'un programme sous GPL, la GPL lui donne-t-elle le droit de redistribuer cette version ?
Si la version a été publiée ailleurs, alors il est probable que le voleur a effectivement le droit de faire des copies et de les redistribuer sous GPL, mais si on le met en prison pour avoir volé le CD, il se peut qu'il doive attendre sa libération pour le faire.

Si la version en question n'est pas publiée ou est considérée par une société comme un secret de fabrication, alors la publier peut être une violation du secret industriel ; cela dépend des circonstances. La GPL ne change pas cela. Si la société essayait de publier sa version en continuant à la considérer comme un secret de fabrication, cela violerait la GPL, mais si la société n'a pas publié cette version, ce n'est pas une violation.

Et si une société me distribue sous couvert du secret industriel une copie d'un programme sous GPL développé par des tiers ?
C'est une violation de la GPL et la société doit cesser de distribuer ce programme. Notez la différence avec le cas de vol ci-dessus ; si un exemplaire a été volé, la distribution n'est pas intentionnelle et donc la société ne viole pas la GPL.
Et si une société me distribue sous couvert du secret industriel une copie d'un programme sous GPL qu'elle a développé elle-même ?
Si le programme distribué n'incorpore aucune création de tiers couverte par la GPL, alors la société ne viole pas la GPL (voir « Est-ce que le développeur d'un programme régi par la GPL est lié par cette licence ?), mais elle affirme deux choses contradictoires : que vous pouvez le redistribuer, et que vous ne le pouvez pas. Il serait judicieux d'exiger une clarification des termes sous lesquels vous pouvez utiliser ce programme avant d'en accepter une copie.
Pourquoi certaines bibliothèques GNU sont-elles distribuées sous GPL normale plutôt que sous GPL amoindrie [Lesser GPL] ?
L'utilisation de la GPL amoindrie pour une bibliothèque particulière représente une défaite pour le logiciel libre. Cela signifie que nous abandonnons partiellement nos tentatives de défendre la liberté de l'utilisateur, ainsi qu'une partie de l'obligation de partager ce qui est construit à partir de logiciel sous GPL. Il s'agit en l'état d'évolutions négatives.

Une défaite partielle peut parfois se révéler comme 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 soutien plus large au logiciel libre, etc. Cela pourrait être bon pour le logiciel libre si cela se passait à 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 revenir à la GPL si la LGPL n'apporte rien de plus. Mais cela n'est pas envisageable. Une fois qu'une bibliothèque donnée est sous LGPL, il est difficile de faire marche arrière.

Nous décidons donc de quelle licence utiliser pour chaque bibliothèque au cas par cas. Il existe une longue explication sur la façon dont nous procédons pour nous décider.

Pourquoi les programmes doivent-ils se référer à « la version 2 de la GPL ou toute version ultérieure » [version 2 of the GPL or any later version] ?
De temps en temps, après quelques années, il nous arrive de modifier la GPL – quelquefois simplement pour éclaircir un point, quelquefois pour autoriser certaines utilisations alors qu'elles ne l'étaient pas auparavant, et quelquefois pour renforcer une exigence (le dernier changement date de 1991). L'utilisation de ce « pointeur indirect » dans chaque programme nous permet de changer les conditions de distribution de l'ensemble des logiciels GNU, lorsque nous modifions la GPL.

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 sera 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.

Pourquoi n'utilisez-vous pas la GPL pour les manuels ?
Il est possible d'utiliser la GPL pour les manuels, mais pour ceux-ci il vaut beaucoup mieux utiliser la licence GNU de documentation libre, ou GNU FDL [GNU Free Documentation Licence].

La GPL a été conçue pour les programmes ; elle contient de nombreuses clauses complexes qui sont très importantes pour ces derniers mais constituent un poids mort pour un livre ou un manuel. Par exemple, toute personne qui publie un livre sur papier devrait, ou bien inclure le « code source » du livre lisible par machine dans chaque copie imprimée, ou bien

La GNU FDL, quant à elle, contient des clauses qui permettent aux éditeurs de manuels libres de tirer des revenus de la vente de copies – les textes de couverture par exemple. Grâce aux règles spéciales applicables aux sections Endorsements (approbations), il est possible d'utiliser cette licence pour définir une norme officielle : les versions modifiées seraient autorisées, mais elles ne seraient pas reconnues comme « la norme ».

En utilisant la GNU FDL pour un manuel qui couvre un sujet technique, nous permettons de modifier son texte. Il est important d'autoriser les modifications des parties techniques, car les gens qui modifient un programme doivent pouvoir modifier la documentation correspondante. La liberté de faire cela est un impératif éthique.

Nos manuels contiennent aussi des sections qui font état de notre position politique sur les logiciels libres. Nous marquons ces sections comme « inaltérables », de sorte qu'elles ne puissent être modifiées ou retirées. La GNU FDL établit des clauses pour ces « sections inaltérables ».

Comment la GPL s'applique-t-elle aux polices ?
La licence de police est un problème complexe qui a besoin d'une sérieuse réflexion. L'exception de licence suivante est expérimentale mais approuvée pour une utilisation générale. Les suggestions sont les bienvenues sur ce sujet – veuillez consulter ce billet explicatif [en] et écrire à <licensing@gnu.org>.

Pour utiliser cette exception, ajouter ce texte à votre avis de licence pour chaque fichier du paquet (dans la mesure du possible), après le texte qui dit que le fichier est distribué sous la GNU GPL :

As a special exception, if you create a document which uses this font, and embed this font or unaltered portions of this font into the document, this font does not by itself cause the resulting document to be covered by the GNU General Public License. This exception does not however invalidate any other reasons why the document might be covered by the GNU General Public License. If you modify this font, you may extend this exception to your version of the font, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.h

J'écris un système de maintenance de site web, aussi appelé « système de gestion de contenu » [content management system] ou une autre application générant des pages web à partir de modèles. Quelle licence dois-je utiliser pour ces modèles ?

Les modèles sont assez mineurs et ça ne vaut pas la peine d'utiliser le copyleft pour les protéger. Il n'est normalement pas dangereux d'utiliser le copyleft pour des créations 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 est souvent non 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 création unique selon la loi sur le copyright. Il est nécessaire de tracer une limite entre le code JavaScript (sous copyleft) et le code utilisateur (habituellement sous des termes incompatibles), comme indiqué dans le diagramme ci-dessous.

Diagramme de modèle faisant appel à du JavaScript

Voici une exception pour le code JavaScript qui fait cela :

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.i

Puis-je publier sous GPL un programme que j'ai développé en utilisant des outils non libres ?
Les programmes que vous utilisez pour éditer le code source, le compiler, l'étudier ou l'enregistrer n'affectent généralement pas la licence de ce code source.

Toutefois, si vous liez des bibliothèques non libres à ce code source, ce sera un problème que vous devrez prendre en compte. Cela n'empêchera 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 lui adjoindre un avis explicite donnant la permission de lier votre programme avec elles. La FSF peut vous donner des conseils sur la manière de procéder.

Existe-t-il des traductions de la GPL en d'autres langues ?
Il serait utile d'avoir des traductions de la GPL en d'autres langues que l'anglais. Certains ont même écrit des traductions et nous les ont fait parvenir. Mais nous n'avons pas osé les annoncer comme officiellement valides. Cela comporte un trop grand risque, que nous ne sommes pas prêts à prendre.

Sous certains aspects, un document juridique ressemble à un programme. Le traduire est comme 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 bogue.

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 était parfaitement exacte, tout irait bien. Mais s'il existait une erreur dans la traduction, il pourrait en résulter un désastre que nous ne pourrions réparer.

Lorsqu'un programme contient un bogue, on peut distribuer une nouvelle version, et à terme 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 était boguée.

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, il serait résolu. 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 écrite par un non-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 :

  • Nous dirigeons les gens vers des traductions non officielles. Cela signifie que nous les autorisons à écrire des traductions de la GPL, mais que nous ne les approuvons pas comme juridiquement valides et contractuelles.

    Une traduction non approuvée n'a pas de valeur juridique, et doit le déclarer explicitement. Cela doit ê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 to the original GPL.

    Cette traduction de la GPL est informelle, et sa validité juridique n'est pas reconnue officiellement par la Free Software Foundation. Pour être tout à fait sûr de ce qui est autorisé, référez-vous à 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, doivent vérifier la véritable GPL en anglais pour s'assurer de ce qu'elle autorise.

  • Publication de traductions valides pour un pays seulement.

    Nous réfléchissons à 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 à notre cause et compétent, aussi ne pouvons-nous promettre de telles traductions dans un futur proche.

Si un interpréteur de langage de programmation a une licence qui est incompatible avec la GPL, puis-je l'utiliser pour exécuter des programmes régis par la GPL ?
Quand l'interpréteur ne fait qu'interpréter un langage, la réponse est oui. Le programme interprété est juste des données, pour l'interpréteur ; la GPL ne restreint pas les outils avec lesquels vous traitez le programme.

Cependant, lorsque l'interpréteur est étendu pour fournir des « interfaces » [bindings] 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. 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.

Donc, si ces dispositifs sont publiés sous une licence incompatible avec la GPL, la situation est similaire à l'édition, par tout autre moyen, de liens avec une bibliothèque non compatible avec la GPL. Ce qui implique que :

  1. Si vous écrivez du code et le publiez sous GPL, vous pouvez définir une exception explicite donnant l'autorisation de le lier avec ces dispositifs incompatibles.
  2. Si vous avez écrit et publié le programme sous GPL, et que vous l'avez conçu spécifiquement pour fonctionner avec ces dispositifs, on peut considérer qu'il y a une exception implicite autorisant une édition de lien avec ces dispositifs. Mais si c'est ce que vous souhaitez, il est préférable de le déclarer de façon explicite.
  3. Vous ne pouvez pas prendre le code sous GPL de quelqu'un d'autre et l'utiliser de cette façon, ni y ajouter de telles exceptions. Seul le détenteur du copyright pour ce code peut ajouter l'exception.
Qui a la capacité de faire respecter la GPL ?
Puisque la GPL est une licence de copyright, ce sont les détenteurs du copyright sur le logiciel qui ont la capacité de faire respecter la GPL. Si vous constatez une violation de la GPL, vous devez en informer les développeurs du logiciel concerné. Ou bien ils détiennent le copyright, ou bien ils sont en relation avec le détenteur du copyright. Apprenez-en plus sur la manière de rapporter des violations de la GPL.
Dans un langage orienté objet comme Java, si j'utilise une classe qui est sous GPL sans la modifier, et que j'en hérite, dans quelle mesure la GPL affecte-t-elle le programme résultant ?
Une sous-classe créée par héritage est un travail dérivé. Donc, les termes de la GPL s'appliquent à l'ensemble du programme dans lequel vous créez une sous-classe d'une classe sous GPL.
Si je fais un portage de mon programme vers GNU/Linux, cela veut-il dire que je dois le publier comme logiciel libre, sous GPL ou autre licence libre ?
De manière générale, la réponse est non ; ce n'est pas une exigence légale. De manière plus spécifique, la réponse dépend des bibliothèques que vous désirez utiliser et de leurs licences. La plupart des bibliothèques système utilisent soit la GNU GPL amoindrie [GNU Lesser GPL], soit la GNU GPL plus une exception permettant de lier de la bibliothèque à n'importe quoi d'autre. Ces bibliothèques peuvent être utilisées dans des programmes non libres ; mais dans le cas de la GPL amoindrie, elle comporte des exigences auxquelles vous devez vous conformer.

Certaines bibliothèques sont publiées sous la GNU GPL seule ; vous devez utiliser une licence compatible avec la GPL pour utiliser ces bibliothèques. Mais ce sont normalement les bibliothèques les plus spécialisées, qui n'ont pas leur équivalent 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. Seuls les gens qui sont prêts à abandonner leur liberté utiliseront votre logiciel, ce qui signifie qu'il constituera de fait une incitation à abandonner cette liberté.

Si vous espérez un jour faire le point sur votre carrière et sentir qu'elle a contribué à la croissance d'une société bonne et libre, vous devez rendre vos logiciels libres.

Je viens de découvrir qu'une société a un exemplaire d'un programme sous GPL, et qu'il faut payer pour l'obtenir. Ne violent-ils pas la GPL en ne le rendant pas disponible sur Internet ?
Non. La GPL n'oblige personne à utiliser Internet pour la distribution. Elle n'exige pas non plus que quelqu'un en particulier redistribue le programme. Et (en dehors d'un cas spécial) même si quelqu'un décide effectivement un jour de redistribuer le programme, la GPL ne dit pas qu'il doit vous en distribuer une copie à vous, ou à toute autre personne en particulier.

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 a distribué une copie du programme à quelqu'un, ce quelqu'un peut alors redistribuer le programme, à vous ou à n'importe qui d'autre, comme ça lui convient.

Puis-je publier un programme avec une licence stipulant qu'on peut en distribuer des versions modifiées sous la GPL, mais qu'on ne peut pas redistribuer l'original lui-même sous la GPL ?
Non. Une telle licence comporterait une contradiction interne. Regardons ses implications pour moi, l'utilisateur.

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 GPL. La GPL dit que n'importe qui peut changer la version B à nouveau et publier le résultat sous GPL. Je peux donc (ou quelqu'un d'autre peut) supprimer ces 1000 lignes et obtenir la version C, qui a le même code que la version A, mais sous GPL.

Si vous essayez de m'en empêcher, en disant explicitement dans la licence que je ne suis pas autorisé à reproduire une version identique à A en supprimant ces lignes de la version B et à la placer sous GPL, cela revient en fait à m'interdire d'utiliser pleinement la version B, de toutes les manières autorisées par la GPL. Autrement dit, la licence n'autorise pas les utilisateurs à publier sous GPL des versions modifiées telles que B.

Est-ce que déplacer une copie vers une filiale contrôlée majoritairement constitue une distribution ?

Que le déplacement vers une filiale (ou inversement) constitue une « distribution » ou non est une question qui doit être tranchée en fonction de la loi sur le copyright en vigueur dans la juridiction appropriée. La GPL n'est pas au-dessus des lois locales. Le droit américain du copyright n'est pas totalement clair sur ce point, mais il 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 grande différence. La filiale est contrôlée par la maison mère ; droit ou pas droit, elle ne redistribuera pas le programme à moins que la maison mère ne le décide.

Est-ce que des installeurs de logiciels peuvent demander aux gens de cliquer pour accepter la GPL ? Si j'obtiens un logiciel sous GPL, est-ce que je dois accepter quelque chose ?

Dans certains systèmes d'empaquetage, l'installation comprend une étape qui vous oblige à indiquer votre accord aux termes de la GPL, par un clic ou autrement. 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 oblige à rien. Vous n'êtes pas obligé d'accepter quoi que ce soit pour simplement utiliser un logiciel sous licence GPL. Vous n'avez d'obligations que si vous modifiez ou distribuez 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.

Je voudrais fournir un logiciel sous GPL avec un installeur. Cet installeur a-t-il besoin d'avoir une licence compatible avec la GPL ?

Non. L'installeur et les fichiers qu'il installe sont des créations séparées. Par conséquent, les termes de la GPL ne s'appliquent pas au logiciel d'installation.


Notes de traduction
  1.   L'équivalent français du copyright est le droit d'auteur, mais il en diffère de manière significative. En particulier, le droit d'auteur ne permet pas de mettre volontairement une création dans le domaine public ; l'auteur gardera entre autres ses droits moraux, qui sont inaliénables.
  2.   Autre traduction de proprietary : propriétaire.
  3.   La notion de fair use (litt. « utilisation raisonnable ») est définie précisément dans la législation des États-Unis d'Amérique. Nous l'avons donc laissée telle quelle dans la traduction. Il vous appartient de vérifier si une telle notion existe également dans votre système juridique.

Traductions non officielles des avis (le choix des termes est basé sur une traduction de la GPLv3)

  1.    Cependant, à titre d'exception particulière, le code source distribué n'a pas besoin d'inclure quoi que ce soit qui fasse partie de la distribution normale (sous forme de source ou de binaire) des composants principaux (compilateur, noyau, etc.) du système d'exploitation sur lequel fonctionne l'exécutable, à moins que ce composant n'accompagne l'exécutable.
  2.    Ce programme est un logiciel libre ; vous pouvez le redistribuer ou le modifier suivant les termes de la GNU General Public License telle que publiée par la Free Software Foundation ; soit la version 2 de la licence, soit (à votre gré) toute version ultérieure.
       Ce programme est distribué dans l'espoir qu'il sera utile, mais SANS AUCUNE GARANTIE ; sans même la garantie tacite de QUALITÉ MARCHANDE ou d'ADÉQUATION à UN BUT PARTICULIER. Consultez la GNU General Public License pour plus de détails.
       Vous devez avoir reçu une copie de la GNU General Public License en même temps que ce programme ; si ce n'est pas le cas, merci d'écrire à la Free Software Foundation, Inc, 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  3.    Lier ABC statiquement ou dynamiquement avec d'autres modules en fait une création combinée basée sur ABC. Cependant, les termes et conditions de la GNU General Public License régissent l'ensemble de la combinaison.
  4.    De plus, à titre exceptionnel, les détenteurs du copyright sur ABC vous donnent l'autorisation de combiner ABC avec des programmes ou des bibliothèques libres publiées sous la GNU LGPL 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 GNU GPL pour ABC et des licences de l'autre code concerné, pourvu que la source de l'autre code soit incluse, car la GNU GPL nécessite la distribution du code source.
  5.   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 non. La GNU General Public License 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.
  6.   Vous n'avez pas la permission d'imposer de restriction supplémentaire, quelle qu'elle soit, à l'exercice des droits accordés au destinataire de la présente licence.
  7.    De plus, à titre d'exception particulière, les détenteurs du copyright sur ABC vous donnent l'autorisation de combiner le programme ABC avec des programmes ou des bibliothèques libres publiées sous la GNU LGPL, ainsi qu'avec des modules indépendants qui communiquent avec ABC uniquement à travers l'interface ABCDEF. Vous pouvez copier et distribuer un tel système aux termes de la GNU GPL pour ABC, ainsi que des licences des autres codes concernés, à condition d'inclure le code source de cet autre code, quand la GNU GPL exige la distribution du code source et de la manière qu'elle prescrit.
  8.    À titre d'exception particulière, 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, la présence de cette police n'implique pas en soi que le document résultant soit régi par la GNU General Public License. Toutefois, cette exception n'invalide pas les autres raisons pour lesquelles le document pourrait être régi par la GNU General Public License. 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.
  9.    À titre d'exception particulière à 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 création séparée en ce qui concerne la loi sur le copyright. De plus, les titulaires du copyright sur ce code vous donnent l'autorisation de combiner ce code avec des bibliothèques 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 cet avis d'exception de votre version.