Foire Aux Questions de la GNU GPL


 [image d'une tête de GNU] [ Anglais | Coréen | Français | Polonais | Portuguais ]


Table des matières


Que veut dire "GPL" ?

"GPL" est l'acronyme de "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 réduire 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 logiciels libres. 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 compétition avec une version modifiée propriétaire 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 paquets 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 paquet logiciel GNU.

Faire d'un programme un paquet logiciel GNU signifie contribuer explicitement au projet GNU. Ceci se produit quand les développeurs du programme et le projet GNU se mettent d'accord pour le faire. Si vous souhaitez contribuer au projet GNU par un programme, veuillez écrire à <maintainers@gnu.org>.

Que devrais-je faire si je découvre une violation potentielle de la GPL ?

Vous devriez la signaler. Tout d'abord, vérifiez les faits du mieux que vous pouvez. Puis signalez-le à l'éditeur ou au détenteur du copyright du programme en question couvert par la GPL. Si c'est la Free Software Foundation, écrivez à <license-violation@gnu.org>. Sinon, le mainteneur du programme pourrait être le détenteur du copyright, ou pourrait sinon vous dire comment contacter le détenteur 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 patches 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 l'auteur original assure la maintenance nécessaire, ceci peut fonctionner en pratique, mais si l'auteur cesse (plus ou moins) et passe à autre chose, ou ne répond pas aux besoins de tous les utilisateurs, cette manière de procéder s'effondre. En plus des problèmes pratiques, cette façon de faire ne permet pas aux utilisateurs de s'entraider.

Quelquefois, le contrôle sur les versions modifiées est proposé comme un moyen d'éviter des confusions entre les différentes versions faites par les utilisateurs. Notre expérience nous a montré qu'il ne s'agit pas d'un problème majeur. De nombreuses versions d'Emacs ont été faites en dehors du cadre du Projet GNU, mais les utilisateurs peuvent les différencier. La GPL requiert que l'auteur d'une version mette son nom dessus, pour la distinguer des autres versions et protéger la réputation des autres mainteneurs.

Est-ce que la GPL requiert 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 le distribuer vous regarde.

Que veut dire "offre écrite valide 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 ?

"Valide pour n'importe quel tiers" ("Valid for any third party") signifie que quiconque dispose de cette offre de votre part peut l'accepter.

Si vous distribuez commercialement des fichiers binaires non accompagnés du code source, la GPL dit que vous devez fournir une offre écrite de distribuer le code source ultérieurement. Quand les utilisateurs redistribuent non commercialement les fichiers binaires qu'ils ont obtenu auprès de vous, ils doivent transmettre en même temps une copie de cette offre écrite. Ce qui veut dire que les personnes n'ayant pas récupéré les fichiers binaires directement auprès de vous peuvent quand même recevoir une copie du code source, selon l'offre écrite.

La raison pour laquelle nous exigeons que l'offre soit valide pour n'importe quel tiers est qu'ainsi les personnes qui reçoivent les fichiers binaires indirectement de cette façon peuvent ainsi commander le code source auprès de vous.

Si je distribue des fichiers binaires sans les sources, puis-je fournir le code source par FTP plutôt que par courrier postal ?

Vous êtes censé fournir le code source sur un support physique, si quelqu'un le commande. Ceci signifie un envoi par colis postal.

Vous pouvez parfaitement offrir la possibilité de copier le code source correspondant par FTP, en plus de l'option par courrier postal. L'accès FTP peut s'avérer pratique ou non pour l'utilisateur. S'il l'est suffisamment, peut-être que personne ne choisira de commander une copie, et vous n'aurez jamais à en envoyer. Tant mieux pour vous. Mais si un utilisateur choisit de commander une copie du code source, vous devrez envoyer la commande.

La GPL dit que les versions modifiées, si elles sont diffusées, doivent être "donner une licence ... pour tout tiers" ("licensed ... to all third parties."). Qui sont ces tiers ?

La section 2 dit que vous devez donner à tous les tiers une licence sous GPL sur les versions modifiées que vous distribuez. "A 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 une obtenu une licence de votre part, sous la GPL, pour votre version.

Est-ce que la GPL m'autorise à vendre des copies payantes 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.

Est-ce que la GPL m'autorise à exiger que quiconque reçoit le logiciel doive me payer un montant et/ou me le signaler ?

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

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 doit certainement être reconnu. La distribution d'un programme sous licence GPL doit aussi se traduire par la mention d'un copyright à votre propre nom (à supposer que vous déteniez ce copyright). La GPL requiert que chaque copie porte une mention de copyright appropriée.

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 réfère à cette licence, au lieu de la licence elle-même. Mais vous ne pouvez pas être sûr que cette URL sera toujours valable dans cinq ou dix ans. Dans vingt ans, les URL que nous connaissons aujourd'hui n'existeront peut-être plus.

La seule façon de s'assurer que les détenteurs de copies du programme pourront continuer à voir les licences, malgré les changements qui apparaîtront dans le réseau, est d'inclure une copie de la licence dans le programme.

Et si le programme n'est guère plus long que la licence elle-même ?

Si un programme est aussi court, vous pouvez aussi bien utiliser une licence sans restriction, plutôt que la GNU GPL.

Puis-je ôter le préambule de la GPL, ou les instructions sur la façon de l'utiliser dans vos propres programmes, pour économiser de l'espace ?

Le préambule et les instructions sont des portions intégrales de la GNU GPL et ne peuvent être supprimées. 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é.

Le préambule et les instructions ajoutent environ 5000 caractères, moins d'1/3 de la taille totale de la GPL. Ils ne constitueraient pas un changement substantiel de la taille d'un paquetage logiciel à moins que ce paquetage lui-même soit vraiment petit. Dans ce cas, vous pourriez aussi bien utiliser une licence totalement permissive au lieu de la GNU GPL.

Que signifie le fait que deux licences sont "compatibles" ?

Afin de combiner deux programmes (ou des parties substantielles de ceux-ci) dans un produit plus important, vous devez obtenir la permission d'utiliser les deux programmes de cette façon. Si les licences des deux programmes le permettent, elles sont compatibles. S'il n'est pas possible de se satisfaire aux deux licences à la fois, elles sont incompatibles.

Pour certaines licences, le mode de combinaison peut affecter la compatibilité--par exemple, elles peuvent permettre l'édition de liens entre deux modules, mais pas la fusion de leurs codes en un seul module.

Que veut dire le fait qu'une licence soit "compatible avec la GPL" ("compatible with the GPL") ?

Cela signifie que l'autre licence et la GNU GPL sont compatibles; vous pouvez combiner du code publié sous l'autre licence avec du code publié sous la GNU GPL dans un programme plus large.

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

J'écris du logiciel libre qui utilise des bibliothèques non-libres. Quels problèmes légaux surgissent si j'utilise la GPL ?

Si les bibliothèques avec lesquelles vous faites une édition de liens entre 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.

alors vous n'avez rien de spécial à faire pour les utiliser. En d'autres termes, si les bibliothèques dont vous avez besoin accompagnent les éléments majeurs d'un système d'exploitation propriétaire, la GPL dit que l'on peut les utiliser dans une édition de lien avec votre programme.

Si vous désirez que votre programme puisse être lié à une bibliothèque non couverte par cette exception, vous devrez ajouter votre propre exception, entièrement en dehors de la GPL. Cette note de copyright et de licence autorise l'édition de lien avec le programme FOO:

   Copyright (C) aaaa  <nom du détenteur>

    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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

    In addition, as a special exception, <name of copyright
    holder> gives permission to link the code of this program with
    the FOO library (or with modified versions of FOO that use the
    same license as FOO), and distribute linked combinations including
    the two.  You must obey the GNU General Public License in all
    respects for all of the code used other than FOO.  If you modify
    this file, you may extend this exception to your version of the
    file, but you are not obligated to do so.  If you do not wish to
    do so, delete this exception statement from your version.

    Ce programme est un logiciel libre; vous pouvez le redistribuer
    et/ou le modifier selon les termes de la GNU General Public
    License (Licence Publique Générale GNU) telle qu'elle a été
    publiée par la Free Software Foundation; soit la version 2 de de
    la licence, soit (comme vous le souhaitez) toute version
    ultérieure.

    Ce programme est distribué dans l'espoir qu'il sera utile, mais
    SANS LA MOINDRE GARANTIE; pas même la garantie implicite de
    COMMERCIABILITE ou d'ADEQUATION A UN BUT PARTICULIER. Voir la GNU
    General Public License pour plus de détails.

    Vous devriez avoir reçu une copie de la GNU General Public License
    en même temps que ce programme; sinon, merci d'écrire à la Free
    Software Foundation, Inc, 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA

   De plus, à titre exceptionnel, <nom du détenteur du
   copyright> donne l'autorisation de réaliser une édition de lien
   du code de ce programme avec la bibliothèque FOO (ou avec des
   versions modifiées de FOO qui utilisent la même licence que FOO),
   et de distribuer des combinaisons par édition de lien intégrant les
   deux. Vous devez respecter la GNU General Public License à tous les
   égards pour tout code utilisé autre que FOO. Si vous modifiez ce
   fichier, vous pouvez étendre cette exception à votre version du
   fichier, mais n'êtes pas obligé de le faire. Si vous ne souhaitez
   pas le faire, supprimez cette déclaration d'exception de votre
   version.

Seuls les détenteurs du copyright du programme peuvent légalement autoriser cette exception. Si vous avez écrit tout le programme vous même, alors à supposer que votre employeur ou votre école ne le réclame pas, vous êtes le détenteur du copyright--donc vous pouvez autoriser l'exception. Mais si vous voulez utiliser dans votre code des portions d'autres programmes sous GPL écrits par d'autres auteurs, vous ne pouvez autoriser cette exception à leur place. Vous devez obtenir l'autorisation des détenteurs des copyrights de ces programmes.

Quand d'autres personnes modifient le programme, elles n'ont pas à créer la même exception pour leur code--elles ont le choix de le faire ou non.

Le fait d'ajouter cette exception écarte le problème juridique, mais ne fait rien en ce qui concerne le problème plus grave consistant à utiliser une bibliothèque non-libre : votre programme ne sera pas totalement utilisable dans un environnement libre. Si votre programme dépend d'une bibliothèque propriétaire pour réaliser une certaine tâche, il ne peut pas le faire dans le Monde Libre. S'il dépend d'une bibliothèque non-libre pour simplement fonctionner, il ne peut pas faire partie d'un système d'exploitation libre comme GNU; il est complètement hors des bornes du Monde Libre.

Aussi, veuillez réfléchir : pouvez-vous trouver un moyen de faire la même chose sans utiliser cette bibliothèque ? Pouvez-vous écrire un remplaçant libre pour cette bibliothèque ?

Si le programme est déjà écrit en utilisant la bibliothèque non-libre, peut-être est-il trop tard pour changer d'avis. Vous pourriez autant distribuer le programme tel qu'il est, plutôt que pas du tout. Mais veuillez s'il vous plaît mentionner dans le README que ce recours à une bibliothèque non-libre est un inconvénient, et suggérez une tâche de modification du programme pour qu'il fasse la même chose sans cette bibliothèque non-libre.

Pensez également à nous (<tasks@gnu.org>) signaler cette bibliothèque non-libre, en nous expliquant à quoi elle sert. Nous pourrions encourager du monde à développer une bibliothèque libre pour réaliser les mêmes tâches.

Comment obtenir un copyright sur mon programme de façon à le distribuer sous la GPL ?

Selon la Convention de Berne, tout écrit est automatiquement sous copyright dès qu'il est placé 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 Etat-Unis. Cela vous donnera plus d'influence pour traiter avec une violation aux Etats-Unis.

Il se peut que quelqu'un d'autre puisse réclamer le copyright si vous êtes un employé ou un étudiant; alors, l'employeur ou l'école peuvent prétendre que vous avez effectué le travail pour eux, et que le copyright leur appartient. La validité de leurs prétentions dépend des circonstances telles que les lois de votre lieu de résidence, votre contrat d'embauche et le genre de travail que vous faites. Le mieux est de consulter un avocat s'il y a le moindre doute.

Si vous pensez que l'employeur ou l'école peuvent avoir des droits, vous pouvez résoudre le problème clairement en obtenant une renonciation au copyright signée par un officiel autorisé de l'entreprise ou de l'école. (Votre supérieur hiérarchique immédiat ou votre professeur ne sont généralement PAS autorisés à signer de telles renonciations.)

Et si mon école décidait de mettre mon programme dans son propre logiciel propriétaire ?

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 sociétés commerciales. (Voir "The Kept University", Atlantic Monthly, Mars 2000, pour 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. A un stade moins avancé, vous avez plus de marge de manoeuvre.

Aussi nous vous recommandons de les aborder quand le programme est seulement à moitié réalisé, en disant : "Si vous me laissez le distribuer sous licence libre, je le termine". N'y pensez pas comme à du bluff. Pour que votre opinion prévale, vous devez avoir le courage de dire : "Mon programme sera libre, ou ne sera pas".

Pourriez-vous me donner des instructions détaillées sur la façon d'appliquer la GPL à mon programme ?

Voir la page des instructions pour la GPL.

Pourriez-vous me donner des instructions détaillées sur la façon d'appliquer la GFDL à un manuel ?

Voir la fin de la GFDL elle-même, et la page des instructions pour la GFDL.

J'ai entendu parler de quelqu'un qui a obtenu une copie d'un programme en 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 détenteur 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 aillez acquis cette copie de façon légitime, est la licence qui s'applique à votre copie.

Je voudrais diffuser 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 légal à 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 couvert par la GPL est lié par cette GPL ? Est-ce que le développeur pourrait se retrouver un jour en violation de la GPL ?

Strictement parlant, la GPL est une licence de la part du développeur à l'attention des tiers qui voudraient utiliser, distribuer et modifier le programme. Le développeur lui-même n'est pas contraint par elle, donc quelque soit ce que fait 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 quelqu'un d'autre faisait la même chose, 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 ce droit ne peut être retiré.

Puis-je utiliser des éditeurs sous GPL pour développer des programmes non-libres ? Puis-je utiliser des outils sous GPL pour les compiler ?

Oui, parce que le copyright sur l'éditeur de texte et les outils ne couvre pas le code que vous écrivez.

Certains programmes recopient des parties d'eux-mêmes dans leur résultat pour des raisons techniques--par exemple, Bison copie un programme standard d'analyse dans son fichier résultat. Dans de tels cas, le texte copié dans le résultat est couvert par la même licence qui le couvre dans le code source. Entre temps, la partie du résultat qui vient des données fournies au programme hérite du même copyright que ces données.

Il se trouve que Bison peut aussi être utilisé pour développer des programmes non-libres. C'est parce que nous avons décidé d'autoriser explicitement l'utilisation sans restrictions du programme standard de d'analyse dans les fichiers produits par Bison. Nous avons pris cette décision parce qu'il existait déjà d'autres outils comparables à Bison qui autorisaient déjà une utilisation pour des programmes non-libres.

Ai-je des droits de "fair use" pour l'utilisation du code source d'un programme couvert par la GPL ?

N.d.T. : La notion de "fair use" (lit. "utilisation correcte") est déterminée précisément dans la législation des Etats-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.

Oui. Le "fair use" est une utilisation autorisée sans permission spéciale. Puisque vous n'avez pas besoin de la permission du développeur pour un tel usage, vous pouvez le faire, quoiqu'en ait dit le développeur--dans la licence ou ailleurs, que cette licence soit la GNU GPL ou tout autre licence de logiciel libre

Notez cependant qu'il n'existe pas de principe universel de fair use; quels types d'utilisations relèvent du "fair" varient selon les pays.

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; les lois du copyright ne vous donnent aucun droit sur l'utilisation qui est faite du résultat du programme par les gens qui lui ont fourni leurs données. 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 transforme les données qu'il reçoit sous une forme différente, le statut du copyright du résultat hérite de celui qui couvrait 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 couverte par la GNU GPL si nous n'avions créé une exception pour ce cas particulier.

Vous pourriez artificiellement forcer un programme à copier un certain texte dans son résultat, même s'il n'y a pas de raison technique de le faire. Mais si ce texte ne sert à rien en pratique, l'utilisateur pourrait simplement le supprimer du résultat et n'utiliser que le reste. Il n'aurait plus alors à respecter les conditions de redistribution du texte copié.

Dans quels cas le résultat produit par un programme sous GPL est-il également couvert 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 couvert 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, distribuer votre programme sous une licence plus lâche que la GPL, mais qui est compatible avec elle. La page de liste des licences donne une liste partielle des licences compatibles avec la GPL.

Si une bibliothèque est distribuée sous GPL (et non sous LGPL), cela signifie-t-il que n'importe quel programme qui l'utilise doit être sous GPL ?

Oui, parce que le programme tel qu'il est effectivement exécuté inclus la bibliothèque.

Si un interpréteur d'un langage de programmation est diffusé 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 interprète juste un 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 mettre de limites à quelles données vous pouvez prendre pour utiliser l'interpréteur. Vous pouvez l'exécuter sur n'importe quelle donnée (programme interprété), de la façon dont vous le souhaitez, et il n'y a aucune exigence sur le fait d'appliquer licence à des tiers sur ces données.

Cependant, lorsque l'interpréteur est étendu pour fournir des "bindings" (interfaces) vers d'autres dispositifs (souvent, mais pas nécessairement, des bibliothèques), le programme interprété est effectivement lié aux dispositifs qu'il utilise à travers ces interfaces. Donc si ces dispositifs sont diffusés sous GPL, le programme interprété qui les utilise doit être diffusé d'une manière compatible avec la GPL. La JNI ou Java Native Interface est un exemple d'un tel dispositif; les bibliothèques auxquelles on accède de cette façon sont liées dynamiquement avec les programmes Java qui les appellent.

Une autre cas similaire et très courant est la fourniture de bibliothèques avec l'interpréteur qui sont elles-mêmes interprétées. Par exemple, Perl est fourni avec de nombreux modules Perl, t une implémentation de Java est fournie avec de nombreuses classes Java. Ces bibliothèques et les programmes qui les appellent sont toujours liés ensemble dynamiquement.

Une conséquence est que si vous choisissez d'utiliser des modules Perl ou des classes Java sous GPL dans votre programme, vous devez diffuser le programme d'une façon compatible avec la GPL, indépendamment de la licence utilisée dans l'interpréteur Perl ou Java sur lequel va s'exécuter le programme combiné Perl ou Java.

J'écris une application Windows avec Microsoft Visual C++ et je prévois de la diffuser sous GPL. Est-il permis par ma GPL de lier mon programme dynamiquement avec la bibliothèque de run-time de Visual C++ ?

Oui, parce que cette bibliothèque run-time accompagne normalement le compilateur ou l'interpréteur que vous utilisez.

Pourquoi la licence BSD originale 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.

La clause concernant la publicité est justement l'une de ces restrictions supplémentaires, et ceci la rend incompatible avec la GPL.

La licence BSD révisée ne contient plus cette clause sur la publicité, ce qui élimine le problème.

Si un programme distribué sous GPL utilise des plug-ins, quelles sont les contraintes portant sur les licences d'un plug-in ?

Cela dépend de la façon dont le programme invoque ses plug-ins. S'il utilise 'fork' et 'exec' pour les invoquer, alors les plug-ins sont des programmes séparés, donc la licence du programme principal ne n'impose aucune exigence les concernant.

Si le programme fait une édition de liens dynamique avec les plug-ins, et qu'ils font des appels de fonctions mutuels et partagent de structure de données, nous pensons qu'ils forment un seul et même programme, et les plug-ins doivent donc être traités comme des extensions du programme principal. Cela signifie qu'il doivent être distribués sous la GPL ou sous une licence de logiciel libre compatible avec la GPL.

Si le programme fait une édition de liens dynamique avec des plug-ins, mais que la communication entre eux est limitée à l'invocation de la fonction `main' du plug-in avec quelques options et l'attente du résultat de l'exécution du plug-in, nous nous trouvons dans un cas limite.

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

Si le programme utilise 'fork' et 'exec' pour invoquer les plug-ins, alors les plug-ins sont des programmes séparés, aussi la licence pour le programme principal n'impose aucune exigence les concernant. Vous pouvez donc utiliser la GPL pour un plug-in, il n'y a pas d'exigence spéciale.

Si le programme fait une édition de liens dynamique avec les plug-ins, et qu'ils font des appels de fonctions mutuels et partagent de structure de données, nous pensons qu'ils forment un seul et même programme, et les plug-ins doivent donc être traités comme des extensions du programme principal. Cela signifie que de lier le plug-in sous GPL avec le programme principal constituerait une violation de la GPL. Toutefois, vous pouvez résoudre ce problème légal en ajoutant une exception à la licence de votre programme, qui autorise à le lier avec le programme principal non-libre.

Pour plus de détail, voir la question ci-dessus commençant par "J'écris du 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 propriétaire. Le fait que je fasse une édition de liens avec votre programme implique-t-il que je doive mettre 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 et refuseront. 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.

J'ai écrit une application qui se lie avec de nombreux composants différents, qui sont couverts par différentes licences. Je ne comprends vraiment pas bien quelles clauses des licences s'appliquent à mon programme. Pourriez-vous m'expliquer quelle 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 description brève (quelques phrases par composant devraient suffire) de la façon dont votre bibliothèque les utilise. Deux exemples potentiels :

Quelle est la différence entre "mere aggregation" et "combining two modules into one program" ?

La "mere aggregation" 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 couvert 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.

Qu'est-ce qui constitue le fait de combiner deux parties en un seul programme? Il s'agit d'un problème juridique, qui sera tranché en dernier recours par un juge. Nous pensons qu'un critère adapté tient compte à la fois des modes de communication (exec, pipes, rpc, appel de fonctions au sein d'un espace de mémoire commun, etc.) et de la sémantique de cette communication (quels genres d'informations sont échangés).

Si les modules sont inclus dans un même fichier exécutable, ils sont indéniablement combinés dans un seul programme. Si les modules sont conçus pour être exécutés par édition de liens dans un même espace mémoire partagé, cela signifie presque à coup sûr une combinaison en un seul programme.

En revanche, les pipes, sockets et autres arguments de ligne de commande sont des mécanismes de communication utilisés normalement entre deux programmes séparés. Aussi, tant que ceux-ci servent à communiquer, les modules sont normalement des programmes séparés. Mais si la sémantique des échanges est assez 'intime', avec échange de structures de données internes complexes, cela pourrait également constituer une base suffisante pour considérer les deux éléments combinés comme un seul et même programme.

Pourquoi la FSF requiert-elle que les contributeurs de programmes sous copyright de la FSF transfèrent le copyright à la FSF ? Si je détiens le copyright d'un programme sous GPL, devrais-je 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 façon à s'assurer que ce dernier ne puisse prétendre avoir des droits sur les éléments de contribution au projet.

Bien entendu, si tous les participants mettent leur code dans le domaine public, il n'y a plus de copyright permettant de faire appliquer la GPL. Aussi nous encourageons à définir un copyright sur les des contributions importantes en matière de code, et à seulement mettre les modifications mineures dans le domaine public.

Si êtes prêt à faire un effort pour défendre la GPL appliquée à votre programme, c'est probablement une bonne idée que d'adopter une politique similaire. Merci de contacter <licensing@gnu.org> si vous désirez plus de renseignements.

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

Je programme en langage C ou en C++, et je compile avec GCC. Dois-je distribuer les logiciels que j'écris dans ces langages sous la même licence que GCC ?

L'utilisation de GCC n'impose aucune exigence en ce qui concerne la licence de votre programme.

Puis-je utiliser la GPL pour autre chose que des logiciels ?

Vous pouvez appliquer la GPL à n'importe quel type d'oeuvre, du moment qu'il n'y a pas d'incertitude sur ce qui constitue le "code source" de l'oeuvre. Ce que la GPL définit par la forme privilégiée de l'oeuvre permettant d'y apporter des modifications.

Toutefois, pour les manuels et les ouvrages, et plus généralement toute oeuvre ayant pour but d'enseigner un sujet, nous recommandons l'utilisation de la GFDL, plutôt que de la GPL.

Considérez la situation suivante :
  • X distribue la version V1 d'un projet sous GPL.
  • Y contribue au développement de la version V2 avec des modifications et des ajouts au code basés sur V1.
  • 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 propriétaire. Est-ce possible ?

Vous ne pouvez pas incorporer un logiciel couvert par la GPL dans un système propriétaire. 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-libre les logiciels sous GPL.

Un système qui incorpore un programme placé sous GPL est une version étendue de ce programme. La GPL dit que toute version étendue du programme doit être distribuée sous GPL dès qu'elle est seulement diffusée. Il y a deux raisons à cela : s'assurer que les utilisateurs qui obtiennent le programme disposent de la liberté à laquelle ils ont droit, et encourager les gens à donner en échange les améliorations qu'ils ont pu apporter.

Toutefois, dans de nombreux cas, vous pouvez distribuer un logiciel sous GPL à côté de votre système propriétaire. Pour que cette opération soit légale, vous devez vous assurer que les programmes libres et non-libres communiquent de suffisamment loin, et qu'ils ne sont pas combinés de façon à créer de fait un seul et même programme.

La différence entre ceci et "l'incorporation" du logiciel sous GPL est une question à la fois de fond et de forme. Essentiellement : si les deux programmes sont combinés de telle façon qu'ils forment les deux parties d'un même programme, alors vous ne pouvez les traiter comme des programmes séparés. La GPL doit alors couvrir l'ensemble.

Si les deux programmes demeurent bien séparés, comme par exemple le compilateur et le noyau, ou comme un éditeur de texte et un shell, vous pouvez alors les traiter comme des programmes séparés--mais vous devez faire cela comme il faut. Se pose alors simplement la question de la forme : comment vous décrivez ce que vous faites. Pourquoi cela nous importe-t-il ? Parce que nous voulons être sûr que l'utilisateur comprenne bien le statut libre du logiciel de cet ensemble qui est sous GPL.

Si quelqu'un distribue un logiciel sous GPL en l'identifiant comme étant "une partie" d'un système dont les utilisateurs savent qu'il est partiellement propriétaire, ces derniers pourraient ne pas avoir une idée claire de leurs droits concernant le logiciel GNU. Mais s'ils savent que ce qu'ils ont reçu correspond à un programme libre plus un autre programme, côte à côte, leurs droits sont clairs.

J'aimerais modifier des programmes placés sous GPL et les lier avec les bibliothèques de portage de Pompe A 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 propriétaire, et la société B à distribuer un logiciel sous GPL lié à ce fichier, cela aurait pour effet de créer une faille dans la GPL suffisante pour qu'un camion passe à travers. On aurait alors carte blanche pour faire de la rétention sur le code source pour toute sorte de modifications et d'extensions à des logiciels sous GPL.

L'un de nos objectifs principaux étant de donner accès au code source à tous les utilisateurs, c'est là une conséquence que nous essayons à tout prix d'éviter.

Plus spécifiquement, les versions du programme liées avec les bibliothèques de Pompe-A-Fric ne seraient pas vraiment des logiciels libres au sens où nous l'entendons--elles ne comprendraient pas l'intégralité du code source qui permet aux utilisateurs de modifier et de recompiler le programme.

Je veux distribuer les fichiers binaires d'un programme sous GPL sans les sources associées. Au lieu d'envoyer ultérieurement le code source aux utilisateurs qui en font la demande, puis-je me contenter de mettre les sources sur un serveur Internet ?

Vous pouvez très bien mettre à disposition par FTP anonyme le code source de n'importe quelle version d'un programme sous GPL, mais cela 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 sont pas reliés à un réseau. Ceux qui ne le sont pas ont tout autant le droit d'obtenir le code source de votre part. Aussi vous devez être prêt à le leur envoyer, sur disquette ou sur bande magnétique, par courrier postal.

Bien entendu, il est plus simple de mettre le code source avec le fichier binaire dès le départ.

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

Je veux distribuer une version étendue d'un programme sous GPL sous forme de fichiers binaires. Me suffit-il de distribuer le code source de la version originale ?

Non, vous devez fournir le code source qui correspond au fichier binaire. Le code source correspondant est celui à partir duquel l'utilisateur peut recompiler le même fichier binaire.

Pour partie, l'idée du logiciel libre est que les utilisateurs aient accès au code source pour *les programmes qu'ils utilisent*. Ceux qui utilisent votre version devraient avoir accès au code source de votre version.

Un objectif majeur de la GPL est de construire le Monde Libre en s'assurant que les améliorations apportées à un programme libre sont elles-mêmes libres. Si vous distribuez une version améliorée d'un logiciel placé sous GPL, vous devez distribuer le code source amélioré sous GPL.

Je souhaite distribuer des fichiers 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 FSF courante en même temps que les binaires, en leur suggérant d'obtenir le code de base auprès de la FSF ?

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

Je veux rendre disponible par FTP anonyme les fichiers binaires, mais envoyer les sources seulement à ceux qui en font la demande

La GPL insiste sur le fait que les distributeurs de fichiers binaires sans les sources fournissent une offre écrite d'envoyer les sources, parce que c'est le seul moyen de s'assurer que les utilisateurs peuvent les obtenir.

Aussi, si vous désirez distribuer des fichiers binaires par FTP anonyme, vous devez distribuer les sources en même temps. Cela ne devrait pas être difficile. Si vous pouvez trouver un site pour votre programme, vous pouvez certainement en trouver un qui a de la place pour vos sources.

Les sources que vous fournirez doivent correspondre exactement aux fichiers binaires. Vous devez tout particulièrement vous assurer qu'elles sont celles de la même version du programme--pas une version plus ancienne ou plus récente.

Vous pouvez mettre à disposition les sources et les binaires sur des machines différentes, du moment que les deux sont aussi faciles à atteindre, et que vous placez près des binaires l'information indiquant où trouver les sources.

Comment puis-je m'assurer que tout utilisateur qui télécharge les fichiers 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.

Pourquoi certaines bibliothèques GNU sont-elles distribuées sous GPL normale, plutôt que sous GPL amoindrie (Lesser GPL) ?

L'utilisation de la Lesser GPL (GPL Amoindrie) pour toute 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, et certaines des exigences sur le partage de ce qui est construit sur un logiciel sous GPL. Il s'agit en l'état d'évolutions négatives.

Une défaite partielle peut parfois se révéler être une bonne stratégie. Quelquefois, l'utilisation de la LGPL pour une bibliothèque peut amener à une utilisation plus large de cette bibliothèque, et par voie de conséquence à son amélioration, un plus grand soutien au logiciel libre, ainsi de suite. Cela pourrait être bon pour le logiciel libre, si cela se passe à grande échelle. Mais nous pouvons seulement spéculer sur l'étendue d'un tel succès.

Il serait sympathique d'essayer pendant un temps la LGPL pour chaque bibliothèque, pour voir si cela améliore les choses, puis de se remettre sous GPL si la LGPL n'apporte rien de plus. Mais cela n'est pas envisageable. Une fois qu'une bibliothèque particulière est placée sous LGPL, il est difficile de changer à nouveau.

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

L'utilisation d'un certain programme GNU placé sous GPL ne cadre pas avec notre projet de réalisation d'un logiciel propriétaire. 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 logiciels propriétaires freinent les libertés plus qu'ils ne les favorisent.

Il nous arrive de créer des exceptions de licence pour aider un projet de logiciel libre sous une autre licence que la GPL. Toutefois, il nous faut pour cela une bonne justification du fait que cela fera avancer la cause du logiciel libre.

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

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 est disponible, les développeurs de la plupart des programmes sous GPL distribueront les versions suivantes de leur programme en spécifiant "Version 3 de la GPL ou toute version ultérieure". Les utilisateurs devront se conformer aux clauses plus restrictives de la GPL Version 3, pour les versions suivantes de ce programme.

Les développeurs ne sont toutefois pas dans l'obligation d'agir ainsi; ils peuvent continuer à autoriser l'utilisation de la version précédente de la GPL, si c'est leur souhait.

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 GNU Free Documentation Licence (GFDL, Licence de Documentation Libre GNU).

La GPL a été conçue pour les programmes; elle contient de nombreuses clauses complexes qui sont très importantes pour les programmes, mais constituent un poids mort pour un livre ou un manuel. En revanche, la GFDL contient des clauses qui permettent aux éditeurs de manuels libres d'en tirer des revenus.

Nous autorisons les modifications du texte qui concerne les sujets technique, mais nous n'autorisons pas de modifications dans les sections qui exposent notre position légale, politique, ou éthique. Nous faisons cela en signalant explicitement les sections qui ne peuvent être modifiées. La GFDL prévoit ces "sections invariantes"--alors que la GPL ne les autoriserait pas.

Il est important d'autoriser les modifications des parties techniques, car les gens qui modifient un programme doivent pouvoir modifier la documentation correspondante. Nous ne pouvons les y obliger, mais si nous voulons espérer qu'il le fassent, mieux vaut ne pas se mettre en travers de leur route.

Existe-t-il des traductions de la GPL dans d'autres langues ?

Il serait utile d'avoir des traductions de la GPL dans d'autres langues que l'anglais. Certains ont même écrit des traductions et nous les ont faites parvenir. Mais nous ne nous sommes pas risqués à les annoncer comme officiellement valides. Cela comporte un trop grand risque, que nous ne sommes pas prêt à prendre.

Un document légal ressemble parfois à un programme. Le traduire est comme de porter un logiciel d'un langage et d'un système d'exploitation vers un autre. Seul un juriste compétent dans les deux langues peut le faire--et même alors subsiste le risque d'introduire un bug.

Si nous devions approuver, officiellement, une traduction de la GPL, nous donnerions à quiconque l'autorisation de faire tout ce que la traduction dit que l'on peut faire. Si la traduction est parfaitement exacte, tout va bien. Mais s'il existe une erreur dans la traduction, le résultat pourrait en être un désastre que nous ne pourrions réparer.

Lorsqu'un programme contient un bug, l'on peut distribuer une nouvelle version, et éventuellement, l'ancienne version disparaîtra plus ou moins. Mais une fois que l'on a donné à tout le monde la permission d'agir selon les termes d'une certaine traduction, il n'y a plus aucun moyen de reprendre cette permission, si l'on découvre, ultérieurement, qu'elle avait un bug.

Des gens qui souhaitent nous aider nous proposent parfois de faire pour nous le travail de traduction. Si le problème était de trouver quelqu'un pour accomplir la tâche, cela le résoudrait. Mais en fait le vrai problème est le risque d'erreur, et le fait d'offrir de faire le travail ne l'évite pas. Nous ne pourrions en aucun cas autoriser une traduction non écrite par un juriste.

Par conséquent, pour le moment, nous n'approuvons pas les traductions de la GPL comme globalement valides ni contractuelles. Au lieu de cela, nous faisons deux choses :

Si un interpréteur de langage de programmation a une licence qui est incompatible avec la GPL, puis-je l'utiliser pour faire tourner des programmes placés sous GPL ?

Quand un interpréteur interprète seulement 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 "bindings" (interfaces) vers d'autres dispositifs (souvent, mais pas nécessairement, des bibliothèques), le programme interprété est effectivement lié aux dispositifs qu'il utilise à travers ces interfaces. Donc si ces dispositifs sont diffusés sous GPL, le programme interprété qui les utilise doit être diffusé d'une manière compatible avec la GPL. La JNI ou Java Native Interface est un exemple d'un tel dispositif; les bibliothèques auxquelles on accède de cette façon sont liées dynamiquement avec les programmes Java qui les appellent. Ainsi si ces dispositifs sont diffusés sous une licence incompatible avec la GPL, la situation est similaire dans tout autre aspect à l'édition de liens avec une bibliothèque non compatible avec la GPL. Ce qui implique que:
  1. Si vous écrivez du code et le diffusez sous GPL, vous pouvez définir une exception explicite donnant l'autorisation d'en faire une édition de liens avec ces dispositifs incompatibles avec la GPL.

  2. Si vous avez écrit et diffusé 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 de quelqu'un d'autre couvert par la GPL et l'utiliser de de cette façon, ou 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, les détenteurs du copyright du logiciel sont ceux qui ont la capacité de faire respecter la GPL. Si vous constatez une violation de la GPL, vous devriez en informer les développeurs du logiciel couvert par la GPL concerné. Ils sont soit les détenteurs du copyright, ou bien sont liés au détenteur du copyright.

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é. Ainsi, 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, est-ce que cela signifie que je doive le diffuser en tant que Logiciel Libre placé sous la GPL ou une autre licence de Logiciel Libre ?

De façon générale, la réponse est non--ce n'est pas une exigence légale. De façon 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 Lesser GPL (GNU GPL Amoindrie), ou utilisent la GNU GPL plus une exception permettant l'édition de liens de la bibliothèque avec quoique ce soit. Ces bibliothèques peuvent être utilisées dans des programmes non-libres; mais dans le cas de la GPL Amoindrie, elle comporte des exigences que vous devez suivre.

Certaines bibliothèques sont diffusées sous la GNU GPL seule; vous devez utiliser une licence compatible GPL pour utiliser ces bibliothèques. Mais c'est normalement les bibliothèques les plus spécialisées, et vous n'auriez pas eu quelque chose de similaire sur une autre plateforme, donc vous n'aurez probablement pas besoin de ces bibliothèques pour un simple portage.

Bien-sûr, votre logiciel n'est pas une contribution à notre communauté s'il n'est pas libre, et ceux qui accordent de la valeur à leur liberté refuseront de l'utiliser. Le résultat sera qu'il constituera une incitation à l'abandon de cette liberté, et sera seulement utile à ceux qui auront fait cela. Si vous espérez un jour jeter un regard en arrière sur votre carrière et sentir que votre travail a été plus qu'une façon de gagner de l'argent, cela devrait vous inciter à rendre votre programme libre.

Je viens de découvrir qu'une compagnie a une copie d'un programme sous GPL, et qu'il faut payer pour l'obtenir. Ne violent-ils pas la GPL en ne la rendant pas disponible sur Internet ?

Non. La GPL n'oblige personne à utiliser Internet pour la distribution. Elle ne requiert pas non plus que quelqu'un en particulier redistribue le programme. Et (en dehors d'un cas particulier), même si quelqu'un décide parfois de redistribuer le programme, la GPL ne dit pas qu'il doit vous distribuer une copie à vous en particulier, ou tout 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 distribue une copie du programme à quelqu'un, ce quelqu'un peut alors vous redistribuer le programme, ou à n'importe qui d'autre, comme ça lui convient.


[ Anglais | Coréen | Français | Polonais | Portuguais ]

Traduction : Vincent Veyron <vveyron@easynet.fr>, Olivier Berger <oberger@gnu.org>


Merci d'envoyer vos questions concernant GNU et la FSF à gnu@gnu.org. Il existe également d'autres moyens de contacter la FSF.

Veuillez envoyer vos commentaires concernant cette page à webmasters@gnu.org, Envoyez vos autres questions à gnu@gnu.org.

Copyright (C) 2001 Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA

La copie conforme et la distribution de l'intégralité de cet article sont autorisées par n'importe quel moyen, pourvue que cette note soit préservée.

Modifié: $Date: 2001/10/03 08:17:48 $ $Author: taz $