L'original de cette page est en anglais.
Foire aux questions sur les licences GNU
Cette page contient les réponses aux questions les plus courantes sur les licences GNU.
Table des matières
Questions de base sur le projet GNU, la Fondation pour le logiciel libre et ses licences
- Que veut dire « GPL » ?
- Est-ce que logiciel libre signifie utiliser la GPL ?
- Pourquoi devrais-je utiliser la GNU GPL plutôt que d'autres licences de logiciel libre ?
- Est-ce que tous les logiciels GNU utilisent la GNU GPL comme licence ?
- Est-ce que le fait d'utiliser la GPL pour un programme en fait un logiciel GNU ?
- Puis-je utiliser la GPL pour autre chose que des logiciels ?
- Pourquoi n'utilisez-vous pas la GPL pour les manuels ?
- Existe-t-il des traductions de la GPL dans d'autres langues ?
- Pourquoi certaines bibliothèques GNU sont-elles distribuées sous GPL normale plutôt que sous GPL amoindrie (Lesser GPL) ?
- Qui a la capacité de faire respecter la GPL ?
- 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, devrais-je faire la même chose ? Si oui, comment ?
- Puis-je modifier la GPL et faire une licence modifiée ?
- Pourquoi avez-vous décidé d'écrire la GNU Affero GPLv3 comme licence distincte ?
Compréhension générale des licences GNU
- Pourquoi la GPL permet-elle aux utilisateurs de publier leur versions modifiées ?
- Est-ce que la GPL requiert que le code source des versions modifiées soit porté à la connaissance du public ?
- Puis-je avoir un programme couvert par la GPL et un programme non libre indépendant sur le même ordinateur ?
- Si je connais quelqu'un qui a une copie d'un programme couvert par la GPL, puis-je exiger qu'il m'en donne une copie ?
- 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 ?
- La GPL dit que si l'on diffuse des versions modifiées, on doit « donner une licence… à tout tiers » (licensed… to all third parties). Qui sont ces tiers ?
- Est-ce que la GPL m'autorise à vendre des copies payantes de mon programme ?
- La GPL me permet-elle de réclamer une redevance pour le téléchargement d'un programme sur mon site ?
- Est-ce que la GPL m'autorise à exiger que quiconque reçoit le logiciel doive me verser une redevance et/ou me le signaler ?
- Si je distribue un programme couvert par la GPL contre une redevance, suis-je obligé de le rendre également disponible au public gratuitement ?
- La GPL me permet-elle de distribuer une copie sous accord de non-divulgation ?
- La GPL me permet-elle de distribuer une version modifiée ou beta sous accord de non-divulgation ?
- La GPL me permet-elle de développer une version modifiée sous accord de non-divulgation ?
- Pourquoi la GPL exige-t-elle d'inclure une copie de la GPL avec chaque copie du programme ?
- Et si mon programme n'est pas très long ?
- Suis-je obligé de revendiquer un copyright sur les modifications que j'apporte à un programme couvert par la GPL ?
- Si un programme combine du code du domaine public et du code couvert par la GPL, puis-je prendre la partie du code dépendant du domaine public et l'utiliser comme tel ?
- 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 ?
- 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 ?
- Que veut dire le fait que deux licences soient « compatibles » ?
- Que veut dire le fait qu'une licence soit « compatible avec la GPL » (« compatible with the GPL ») ?
- Pourquoi la licence BSD originale est-elle incompatible avec la GPL ?
- Quelle est la différence entre aggregation et d'autres types de « versions modifiées » ?
- 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, devrais-je faire la même chose ? Si oui, comment ?
- 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 nouveau programme ?
- Puis-je utiliser la GPL pour autre chose que des logiciels ?
- Je voudrais mettre mon code sous licence GPL, mais je voudrais aussi qu'il soit clair qu'il ne peut pas être utilisé pour des usages militaires ou commerciaux. Puis-je faire cela ?
- Puis-je utiliser la GPL pour mettre sous licence du matériel ?
- Est-ce que la préliaison de binaires sous GPL à diverses bibliothèques du système, pour optimiser les performances, compte comme une modification ?
- Comment la LGPL fonctionne-t-elle avec Java ?
- Pourquoi avoir inventé les nouveaux mots propagate (propager) et convey (transmettre) dans la GPLv3 ?
- Est-ce que convey (transmettre) dans la GPLv3 est la même chose que distribute (distribuer) dans la GPLv2 ?
- Si je fais seulement des copies d'un programme couvert par la GPL et que je les exécute, sans les distribuer ni les transmettre à d'autres, que m'impose de faire la licence ?
- La GPLv3 donne comme exemple de propagation « la mise à disposition du public ». Que cela signifie-t-il ? La mise à disposition est-elle une forme de transmission ?
- Puisque la distribution et la mise à disposition du public sont des formes de propagation qui transmettent aussi la GPLv3, quels sont les exemples de propagation qui ne constituent pas une transmission ?
- Comment la GPLv3 rend-elle la distribution par BitTorrent plus facile ?
- Qu'est-ce que la « tivoisation » ? Comment la GPLv3 l'empêche-t-elle ?
- La GPLv3 interdit-elle l'emploi de DRM ?
- La GPLv3 nécessite-t-elle que les votants puissent modifier le logiciel utilisé dans une machine à voter ?
- La GPLv3 a-t-elle une clause de rétorsion de brevets (patent retaliation clause) ?
- Dans la GPLv3 et l'AGPLv3, que signifie notwithstanding any other provision of this License (nonobstant toute autre clause de la licence) ?
- Dans l'AGPLv3, qu'est-ce qui est pris en compte dans interacting with [the software] remotely through a computer network (interagissant avec [le logiciel] à distance par l'intermédiaire d'une réseau) ?
- Comment se situe le concept de « vous » (you) de la GPLv3 par rapport à la définition d'« entité juridique » (Legal Entity) de la licence Apache 2.0 ?
- Dans la GPLv3, à quoi se réfère « le programme » ? Est-ce chaque programme publié sous la GPLv3 ?
- Si des logiciels clients d'un réseau sont publiés sous licence AGPLv3, doivent-ils être en mesure de fournir leur code source aux serveurs avec lesquels ils interagissent ?
Utiliser les licences GNU pour vos programmes
- Comment mettre à jour à partir de la (L)GPLv2 vers la (L)GPLv3 ?
- Pourriez-vous me donner des instructions détaillées sur la façon d'appliquer la GPL à mon programme ?
- Pourquoi devrais-je utiliser la GNU GPL plutôt que d'autres licences de logiciel libre ?
- Pourquoi la GPL exige-t-elle d'inclure une copie de la GPL avec chaque copie du programme ?
- Et si mon programme n'est pas très long ?
- 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 ?
- Comment obtenir un copyright sur mon programme de façon à le distribuer sous la GPL ?
- Et si mon école décidait de mettre mon programme dans son propre logiciel privateur ?a
- 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.
- 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 ?
- Le gouvernement américain peut-il publier un programme couvert par la GNU GPL ?
- Le gouvernement américain peut-il publier des améliorations d'un programme couvert par la GPL ?
- Pourquoi les programmes doivent-ils se référer à « la version 3 de la GPL ou toute version ultérieure » (version 3 of the GPL or any later version) ?
- Est-ce une bonne idée d'utiliser une licence disant qu'un certain programme ne peut être utilisé que sous la dernière version de la GNU 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 ?
- Pourquoi n'utilisez-vous pas la GPL pour les manuels ?
- Comment la GPL s'applique t-elle aux polices ?
- Quelle licence dois-je utiliser pour des modèles de système de maintenance de sites web ?
- Puis-je publier sous licence GPL un programme que j'ai développé en utilisant des outils non libres ?
- J'utilise une clé de chiffrement publique pour signer mon code pour assurer son authenticité. Est-il vrai que la GPLv3 m'oblige à publier mes clés de signature privées ?
- La GPLv3 nécessite-t-elle que les votants puissent modifier le logiciel utilisé dans une machine à voter ?
- Les clauses de garantie et de responsabilité dans la GPLv3 semblent spécifiques à la loi américaine. Puis-je ajouter mes propres clauses à mon code ?
- Mon programme a des interfaces utilisateur interactives qui ne sont pas de nature visuelles. Comment puis-je me conformer à l'exigence de « notices légales appropriées » de la GPLv3 ?
Distribution de programmes couverts par les licences GNU
- Puis-je publier une version modifiée d'un programme sous GPL sous forme binaire uniquement ?
- J'ai téléchargé uniquement le programme binaire à partir d'Internet. Si je distribue des copies, dois-je obtenir le code source et le redistribuer aussi ?
- 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 l'envoyer par la poste sur demande ?
- 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 ?
- Puis-je mettre les fichiers binaires sur mon serveur Internet et les sources sur un site Internet différent ?
- 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 ?
- 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 « standard » en même temps que les binaires ?
- Puis-je rendre disponible sur un serveur réseau les fichiers binaires, mais envoyer les sources seulement à ceux qui en font la demande ?
- Comment puis-je m'assurer que tout utilisateur qui télécharge les fichiers binaires obtient également le code source ?
- Puis-je publier un programme avec une licence stipulant que vous pouvez redistribuer sous la GPL des versions modifiées de celui-ci sous la GPL, mais pas l'original lui-même ?
- Je viens de découvrir qu'une société 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 ?
- 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 ?
- Est-ce que l'utilisation à l'intérieur d'une organisation ou d'une société 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 ?
- Et si une société distribuait une copie sous couvert du secret commercial ?
- Ai-je des droits de fair use (usage raisonnable) pour l'utilisation du code source d'un programme couvert par la GPL ?
- Est-ce que déplacer une copie vers une filiale contrôlée majoritairement constitue une distribution ?
- Est-ce que des installeurs de logiciels peuvent demander aux gens de cliquer pour accepter la GPL ? Si j'obtiens un logiciel sous GPL, dois-je accepter quelque chose ?
- Je voudrais fournir un logiciel sous GPL avec un installeur. Cet installeur doit-il être compatible avec la licence GPL ?
- Est-ce qu'un distributeur viole la GPL s'il exige que je « déclare et certifie » (represent and warrant) que je suis basé aux États-Unis, ou que l'ai l'intention de distribuer le logiciel conformément aux lois pertinentes sur l'exportation ?
- Le début de la section 6 de la GPLv3 dit que je peux transmettre une œuvre qu'elle couvre, sous forme de code objet, « selon les termes des sections 4 et 5 » pourvu que je respecte aussi les conditions de la section 6. Que cela signifie-t-il ?
- Ma société détient beaucoup de brevets. Au fil des années, nous avons contribué au code de projets sous « GPL version 2 ou versions ultérieures », et le projet lui-même a été distribué sous les mêmes termes. Si un utilisateur décide de mettre le code du projet (incorporant mes contributions) sous GPLv3, cela signifie-t-il que j'ai automatiquement autorisé une licence de brevet GPLv3 explicite à cet utilisateur ?
- Si je distribue une programme couvert par la GPLv3, puis-je fournir une garantie qui devient caduque si l'utilisateur modifie le programme ?
- Si je donne une copie d'un programme couvert par la GPLv3 à un collègue dans ma société, lui ai-je « transmis » la copie ?
- Suis-je en accord avec la GPLv3 si je propose des binaires sur un serveur FTP et les sources par le biais d'un lien vers un dépôt de code source dans un système de contrôle de versions, tel que CVS ou Subversion ?
- Quelqu'un qui transmet un logiciel couvert par la GPLv3 dans un produit utilisateur peut-il se servir d'une attestation à distance pour empêcher un utilisateur de modifier ce logiciel ?
- Que signifie « règles et protocoles pour la communication sur le réseau » (rules and protocols for communication across the network) dans la GPLv3 ?
- Les distributeurs qui fournissent une information d'installation sous GPLv3 ne sont pas tenus de fournir un « service de support » pour le produit. Quelle sorte de « service de support » entendez-vous ?
Utiliser des programmes sous licences GNU pour écrire d'autres programmes
- Puis-je avoir un programme couvert par la GPL et un programme non libre indépendant sur le même ordinateur ?
- 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 ?
- 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 ?
- Dans quels cas le résultat produit par un programme sous GPL est-il également couvert par la 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 ?
- J'aimerais incorporer un logiciel sous GPL dans mon système privateur. Est-ce possible ?
- Si je distribue un programme privateur qui est lié à une bibliothèque sous LGPLv3 que j'ai modifiée, quelle est la « version du contributeur » servant à déterminer l'étendue de l'autorisation de licence de brevet explicite que je donne ; s'agit-il seulement de la bibliothèque ou de la combinaison complète ?
- Sous l'AGPLv3, quand je modifie le programme sous la section 13, quelle source correspondante doit-il offrir ?
- Où puis-je en apprendre plus sur l'exception de la Runtime Library (bibliothèque d'exécution) de GCC ?
Combiner une œuvre avec du code sous licences GNU
- La GPLv3 est-elle compatible avec la GPLv2 ?
- De quelle manière les différentes licences GNU sont-elles compatibles entre elles ?
- Quelle est la différence entre aggregation et d'autres types de « versions modifiées » ?
- Ai-je des droits de fair use (usage raisonnable) pour l'utilisation du code source d'un programme couvert par la GPL ?
- Le gouvernement américain peut-il publier des améliorations d'un programme couvert par la GPL ?
- Si une bibliothèque est distribuée sous GPL (et non sous LGPL), cela signifie-t-il que n'importe quel logiciel qui l'utilise doit être sous GPL ou sous une licence compatible avec la GPL ?
- 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 doive mettre mon programme sous GPL ?
- Si oui, ai-je une chance d'obtenir une licence de votre programme sous la GPL amoindrie (Lesser GPL) ?
- 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.
- 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 ?
- 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 ?
- Si j'ajoute un module à un module couvert par la GPL, dois-je utiliser la GPL comme licence pour mon module ?
- Si un programme distribué sous GPL utilise des plug-ins, quelles sont les contraintes portant sur les licences de plug-in ?
- Puis-je utiliser la GPL pour un plug-in dans un programme non libre ?
- Puis-je faire un programme non libre conçu pour charger un plugin couvert par la GPL ?
- J'aimerais incorporer un logiciel sous GPL dans mon système privateur. Est-ce possible ?
- J'aimerais incorporer un logiciel couvert par la GPL dans mon système privateur. Puis-je le faire en ajoutant un module « enveloppant », sous une licence permissive compatible avec la GPL (de type licence X 11) entre la partie couverte par la GPL et la partie privatrice ?
- Puis-je écrire un logiciel libre qui utilise des bibliothèques non libres ?
- J'écris du logiciel libre qui utilise des bibliothèques non libres. Quels problèmes légaux puis-je rencontrer si j'utilise la GPL ?
- J'écris une application Windows avec Microsoft Visual C++ et je prévois de la diffuser sous GPL. Est-il permis par la GPL de lier mon programme dynamiquement avec la bibliothèque runtime de Visual C++ ?
- 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 ?
- Si la licence pour un module Q requiert une condition incompatible avec la GPL, mais que cette condition ne 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 couvert par 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 ?
- Comment puis-je autoriser la liaison de modules privateurs avec ma bibliothèque sous GPL uniquement dans une interface contrôlée ?
- 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 ?
- 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 ?
- Puis-je utiliser des petits bouts de code source couvert par la GPL dans de la documentation qui est sous une licence incompatible avec la GPL ?
Questions sur les violations des licences GNU
- Que devrais-je faire si je découvrais une violation potentielle de la GPL ?
- Qui a la capacité de faire respecter la GPL ?
- 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 ?
- 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 ?
- Je viens de découvrir qu'une société 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 ?
- Puis-je utiliser du logiciel sous GPL dans un appareil qui arrêterait de fonctionner si les clients ne continuaient pas à payer un abonnement ?
- Que signifie « soigner » une violation de la GPLv3 ?
- Si quelqu'un installe un logiciel sous GPL sur un portable et qu'il prête ce portable à un ami sans fournir le code source du logiciel, a-t-il enfreint la GPL ?
- Supposons que deux sociétés essaient de contourner l'obligation de fournir des informations d'installation : l'une diffuserait des logiciels signés et la seconde diffuserait un produit utilisateur qui n'exécuterait que les logiciels signés de la première. Est-ce une violation de la GPLv3 ?
- Que veut dire « GPL » ? (#WhatDoesGPLStandFor)
« 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 ? (#DoesFreeSoftwareMeanUsingTheGPL)
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 ? (#WhyUseGPL)
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 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 ? (#DoesAllGNUSoftwareUseTheGNUGPLAsItsLicense)
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 ? (#DoesUsingTheGPLForAProgramMakeItGNUSoftware)
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écouvrais une violation potentielle de la GPL ? (#ReportingViolation)
Vous devriez la signaler. Tout d'abord, vérifiez les faits du mieux que vous pouvez. Puis signalez-les à 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 vous dire comment contacter le détenteur du copyright ; donc signalez-les au mainteneur.
- Pourquoi la GPL permet-elle aux utilisateurs de publier leur versions modifiées ? (#WhyDoesTheGPLPermitUsersToPublishTheirModifiedVersions)
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 ? (#GPLRequireSourcePostedPublic)
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 modifiée du code source disponible pour les utilisateurs, sous GPL.
Ainsi, la GPL autorise à distribuer des programmes modifiés sous certaines conditions, et non sous d'autres ; mais la décision de les distribuer vous regarde.
- Puis-je avoir un programme couvert par la GPL et un programme non libre indépendant sur le même ordinateur ? (#GPLAndNonfreeOnSameMachine)
Oui.
- Si je connais quelqu'un qui a une copie d'un programme couvert par la GPL, puis-je exiger qu'il m'en donne une copie ? (#CanIDemandACopy)
Non. La GPL lui donne la permission de faire et de redistribuer des copies du programme s'il choisit de le faire. Il a également le droit de ne pas redistribuer le programme, si 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 ? (#WhatDoesWrittenOfferValid)
Si vous choisissez de fournir les sources via une offre écrite, alors, quiconque vous demande les sources doit 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 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 valable pour n'importe quel tiers est qu'ainsi les personnes qui reçoivent les fichiers binaires indirectement de cette façon peuvent commander le code source auprès de vous.
- La GPL dit que si l'on diffuse des versions modifiées, on doit « donner une licence… à tout tiers » (licensed… to all third parties). Qui sont ces tiers ? (#TheGPLSaysModifiedVersions)
La section 2 dit que vous devez donner à tous les tiers une licence sous GPL sur les versions modifiées que vous distribuez. « À 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, sous la GPL, pour votre version.
- Suis-je obligé de revendiquer un copyright sur les modifications que j'apporte à un programme couvert par la GPL ? (#RequiredToClaimCopyright)
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, aussi vous devrez mettre de façon explicite les modifications dans le domaine public si vous ne voulez pas qu'elles soient sous copyright.
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 couvert par la GPL, puis-je prendre la partie du code dépendant du domaine public et l'utiliser comme tel ? (#CombinePublicDomainWithGPL)
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 me permet de vendre des copies payantes de mon programme ? (#DoesTheGPLAllowMoney)
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. Sauf dans un cas particulier, il n'y a aucune limite au prix que vous pouvez demander (la seule exception est l'offre écrite obligatoire de fourniture de code source qui doit accompagner la diffusion de binaires seuls).
- La GPL me permet-elle de réclamer une redevance pour le téléchargement d'un programme sur mon site ? (#DoesTheGPLAllowDownloadFee)
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 de 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 doive me verser une redevance et/ou me le signaler ? (#DoesTheGPLAllowRequireFee)
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.
- Si je distribue un programme couvert par la GPL contre une redevance, suis-je obligé de le rendre également disponible au public gratuitement ? (#DoesTheGPLRequireAvailabilityToPublic)
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 sur un site web à disposition du public.
- La GPL me permet-elle de distribuer une version modifiée ou beta sous accord de non divulgation ? (#DoesTheGPLAllowNDA)
Non. La GPL dit que 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. Elle ne vous donne pas le droit de distribuer votre travail avec plus de restrictions.
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 couvert par la GPL ayant un autre détenteur de copyright, veuillez en informer le détenteur, 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 ? (#DoesTheGPLAllowModNDA)
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 pas) de cette version. Vous ne pouvez distribuer aucune version de l'œuvre sur une base plus restrictive.
- La GPL me permet-elle de développer une version modifiée sous accord de non divulgation ? (#DevelopChangesUnderNDA)
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 couvert par la GPL n'est distribué sous accord de non divulgation
Vous pouvez également publier vos modifications pour le client sous GPL, mais accepter de ne pas les diffuser à d'autres personnes à moins que le client ne soit d'accord. Dans ce cas non plus, aucun code couvert par la GPL n'est distribué sous accord de non divulgation, ni avec toute 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 a le droit de le faire
- 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 ? (#IWantCredit)
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 ? (#WhyMustIInclude)
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 mon programme n'est pas très long ? (#WhatIfWorkIsShort)
Si un paquet logiciel contient très peu de code - moins de 300 lignes selon notre critère - vous pouvez aussi bien le mettre sous une simple licence permissive, plutôt que sous une licence à copyleft comme la GNU GPL. Nous recommandons la licence Apache 2.0 pour ce genre de cas.
- 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 ? (#GPLOmitPreamble)
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é (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 1000 caractères, moins d'1/5 de la taille totale de la GPL. Ils ne constitueraient pas un changement substantiel de la taille d'un paquet logiciel à moins que ce paquet lui-même ne 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 soient « compatibles » ? (#WhatIsCompatible)
Pour combiner deux programmes (ou des parties substantielles de ceux-ci) dans un programme plus gros, 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 de lier deux modules, mais ne pas autoriser de fusionner leurs codes dans un seul module.
Si vous voulez seulement installer deux programmes distincts sur le même système, il n'est pas nécessaire que leurs licences soient compatibles, car cela ne les combine pas dans une œuvre plus grande.
- Que veut dire le fait qu'une licence soit « compatible avec la GPL » (compatible with the GPL) ? (#WhatDoesCompatMean)
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 grand.
Toutes les versions de la licence GNU GPL autorisent de telles combinaisons à titre personnel ; elles autorisent la distribution de telles combinaisons à condition que la combinaison soit publiée sous la même version de GNU GPL. L'autre licence est compatible avec la GPL si elle permet cela aussi.
La GPLv3 est compatible avec plus de licences que la GPLv2 : elle permet de faire des combinaisons avec du code ayant des conditions supplémentaires qui ne sont pas dans la GPLv3 elle-même. La section 7 contient plus d'informations à ce sujet, y compris la liste des conditions supplémentaires qu'elle permet.
- Puis-je écrire un logiciel libre qui utilise des bibliothèques non libres ? (#FSWithNFLibs)
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.
Aussi, veuillez considérer ceci : 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 est déjà écrit en utilisant la bibliothèque non libre, il est peut-être déjà trop tard pour changer de décision. Vous pouvez aussi publier le programme tel qu'il est plutôt que de ne pas le publier. Mais veuillez mentionner dans le fichier README que la nécessité de la bibliothèque non libre est un inconvénient, et suggérez de modifier le programme pour qu'il puisse faire la même chose sans la bibliothèque non libre. Veuillez suggérez que quiconque pense faire un gros travail sur le programme le libère d'abord de sa dépendance à la bibliothèque non libre.
Notez également qu'il peut y avoir des problèmes juridiques en combinant certaines bibliothèques non libres avec un logiciel libre couvert par la GPL. Veuillez consulter la question sur les logiciels sous GPL dépendant de bibliothèques incompatibles avec la GPL pour plus de renseignements.
- Quels problèmes légaux puis-je rencontrer si j'utilise des bibliothèques incompatibles avec un logiciel sous GPL ? (#GPLIncompatibleLibs)
Les deux versions de la GPL ont une exception à leur copyleft, communément appelée « exception des bibliothèques système ». Si les bibliothèques incompatibles avec la GPL que vous voulez utiliser répondent aux critères de bibliothèque système, vous n'avez alors rien de spécial à faire pour les utiliser ; la condition de distribuer le code source de tout le programme n'inclut pas ces bibliothèques, même si vous distribuez un exécutable lié les contenant.
Les critères qui qualifient une « bibliothèque système » varient selon les différentes versions de la GPL. La GPLv3 définit explicitement les « bibliothèques système » dans la section 1, pour les exclure de la définition du « code source ». La GPLv2 dit la chose suivante, près de la fin de la section 3 :
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
Si vous voulez que votre programme soit lié à une bibliothèque non couverte par l'exception des bibliothèques système, vous devez fournir une autorisation pour le faire. Vous trouverez ci-dessous deux exemples de notices de licence que vous pouvez utiliser à cette fin ; l'une pour la GPLv3, et l'autre pour la GPLv2. Dans les deux cas, vous devez mettre ce texte dans chaque fichier pour lequel vous donnez cette autorisation.
Seuls les détenteurs du copyright du programme peuvent légalement publier leur logiciel sous ces termes. Si vous avez écrit tout le programme vous-mêmes, et en supposant que votre employeur ou votre école ne revendique pas le copyright, vous êtes le détenteur du copyright - 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 détenteurs du copyright de ces programmes.
Quand d'autres personnes modifient le programme, elles n'ont pas besoin de faire la même exception pour leur code ; il leur appartient de le faire, ou pas.
Si les bibliothèques que vous projetez de lier ne sont pas libres, veuillez également consulter la section sur l'écriture de logiciels libres qui utilisent des bibliothèques non libres.
Si vous utilisez la GPLv3, vous pouvez atteindre ce but en donnant une permission supplémentaire sous la section 7. La notice de licence suivante le fait. Vous devez remplacer tout le texte entre crochets avec le texte approprié pour votre programme. Si tout le monde ne peut pas distribuer le source pour les bibliothèques que vous voulez lier, vous devrez supprimer le texte entre accolades ; sinon, enlevez juste les accolades.
Copyright (C) [years] [name of copyright holder]
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 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, see <http://www.gnu.org/licenses>.
Additional permission under GNU GPL version 3 section 7
If you modify this Program, or any covered work, by linking or combining it with [name of library] (or a modified version of that library), containing parts covered by the terms of [name of library's license], the licensors of this Program grant you additional permission to convey the resulting work. {Corresponding Source for a non-source form of such a combination shall include the source code for the parts of [name of library] used as well as that of the covered work.} c
Si vous utilisez la GPLv2, vous pouvez fournir votre propre exception aux termes de la licence. La notice de licence suivante fera cela. Là encore, vous devez remplacer tout le texte entre crochets avec le texte approprié pour votre programme. Si tout le monde ne peut pas distribuer le source pour les bibliothèques que vous voulez lier, vous devrez supprimer le texte entre accolades ; sinon, enlevez juste les accolades.
Copyright (C) [years] [name of copyright holder]
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, see <http://www.gnu.org/licenses>.
Linking [name of your program] statically or dynamically with other modules is making a combined work based on [name of your program]. Thus, the terms and conditions of the GNU General Public License cover the whole combination.
In addition, as a special exception, the copyright holders of [name of your program] give you permission to combine [name of your program] with free software programs or libraries that are released under the GNU LGPL and with code included in the standard release of [name of library] under the [name of library's 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 [name of your program] and the licenses of the other code concerned{, provided that you include the source code of that other code when and as the GNU GPL requires distribution of source code}.
Note that people who make modified versions of [name of your program] 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.d
- Comment obtenir un copyright sur mon programme de manière à le distribuer sous la 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 œuvre.
C'est toutefois une excellente idée d'enregistrer votre copyright aux État-Unis. Cela vous donnera plus d'influence pour traiter avec un contrevenant aux États-Unis.
Il se peut que quelqu'un d'autre puisse réclamer le copyright si vous êtes un employé ou un étudiant ; alors, l'employeur ou l'école peuvent prétendre que vous avez effectué le travail pour eux, et que le copyright leur appartient. La validité de leurs prétentions dépend des circonstances telles que les lois de votre lieu de résidence, votre contrat d'embauche et le genre de travail que vous faites. Le mieux est de consulter un avocat s'il y a le moindre doute.
Si vous pensez que l'employeur ou l'école peuvent avoir des droits, vous pouvez résoudre le problème clairement en obtenant une renonciation au copyright signée par un officiel autorisé de l'entreprise ou de l'école (votre supérieur hiérarchique immédiat ou votre professeur ne sont généralement PAS autorisés à signer de telles renonciations).
- Et si mon école décidait de mettre mon programme dans son propre logiciel privateur ? (#WhatIfSchool)
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 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 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 ? (#WhatIfSchool)
Voir la page des instructions pour la GPL.
- J'ai entendu parler de quelqu'un qui a obtenu une copie d'un programme couvert pas la GPL sous une autre licence. Cela est-il possible ? (#HeardOtherLicense)
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 ayez 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. (#ReleaseUnderGPLAndNF)
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 ? (#DeveloperViolate)
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 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, faite par quelqu'un d'autre, violerait la GPL, 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 ? (#CanDeveloperThirdParty)
Non, parce que le public détient déjà le droit d'utiliser le programme sous la GPL, et 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 ? (#CanIUseGPLToolsForNF)
Oui, parce que le copyright sur l'éditeur de texte et les outils ne couvre pas le code que vous écrivez. Les utiliser ne pose pas de restriction, juridiquement, sur la licence que vous utilisez pour 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 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 copyright des données.
Il se trouve que Bison peut aussi être utilisé pour développer des programmes non libres. C'est parce que nous avons décidé d'autoriser explicitement l'utilisation sans restrictions du programme standard d'analyse dans les fichiers produits par Bison. Nous avons pris cette décision parce qu'il existait déjà d'autres outils comparables à Bison qui autorisaient déjà une utilisation pour des programmes non libres.
- Ai-je des droits de fair usee pour l'utilisation du code source d'un programme couvert par la GPL ? (#GPLFairUse)
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 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 couvert par la GNU GPL ? (#GPLUSGov)
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).
Cependant, quand une agence du gouvernement fédéral américain utilise des sous-traitants pour développer un logiciel, c'est une situation différente. Le contrat peut requérir que le sous-traitant le publie sous la GNU GPL (GNU Ada a été développé de cette façon). Ou un contrat peut donner 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 d'un programme couvert par la GPL ? (#GPLUSGovAdd)
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 couverte 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 couvertes 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 ? (#GPLOutput)
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 met 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 ? (#WhatCaseIsOutputGPL)
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 ? (#GPLModuleLicense)
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 permissive 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 ou sous une licence compatible avec la GPL ? (#IfLibraryIsGPL)
Oui, parce que le programme tel qu'il est effectivement exécuté inclut 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 ? (#IfInterpreterIsGPL)
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 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 de donner une licence à des tiers 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 être aussi 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 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 la GPL de lier mon programme dynamiquement avec la bibliothèque de runtime (bibliothèque d'exécution) de Visual C++ ? (#WindowsRuntimeAndGPL)
Vous pouvez lier votre programme à ces bibliothèques et distribuer le programme compilé à des tiers. Quand vous le faites, les bibliothèques de runtime sont des « bibliothèques système » telles que définies par la GPLv3. Cela veut dire que vous n'avez pas à vous préoccuper d'inclure leur code source avec les « sources correspondant au programme ». La GPLv2 comporte une exception similaire dans sa section 3
Vous n'avez pas la permission de distribuer ces bibliothèques avec le programme sous forme de DLL compilée. Pour éviter que des distributeurs peu scrupuleux n'essaient d'utiliser l'exception des bibliothèques système comme échappatoire, la GPL dit qu'une bibliothèque ne peut être qualifiée de bibliothèque système que si elle n'est pas distribuée avec le programme lui-même. Si vous distribuez les DLL avec le programme, elles ne seront plus éligibles à cette exception ; alors la seule manière de vous conformer à la GPL serait de fournir le code source, ce que vous ne pouvez pas faire.
Il est possible d'écrire des programmes libres qui ne fonctionnent que sur Windows, mais ce n'est pas une bonne idée. Ces programme seraient « piégés » par Windows, et donc représenteraient une contribution nulle au monde du libre.
- Pourquoi la licence BSD originale est-elle incompatible avec la GPL ? (#OrigBSD)
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 section 6 de la GPLv2 dit :
You may not impose any further restrictions on the recipients' exercise of the rights granted herein.f
La GPLv3 dit quelque chose de similaire dans sa section 10. 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 de plug-in ? (#GPLAndPlugins)
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 n'impose aucune exigence les concernant.
Si le programme charge dynamiquement des plug-ins, et qu'ils font des appels de fonctions mutuels et partagent des structures 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, et que les termes de la GPL doivent être respectés lorsque ces plug-ins sont distribués.
Si le programme charge dynamiquement des plug-ins, mais que la communication entre eux est limitée à l'invocation de la fonction « main » du plug-in avec quelques options puis à 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 ? (#GPLPluginsInNF)
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 charge dynamiquement des plug-ins, et qu'ils font des appels de fonctions mutuels et partagent de structure de données, nous pensons qu'ils forment un seul et même programme qui doit être traité comme une extension du programme principal et des plug-ins. Cela signifie que la combinaison du plug-in sous GPL avec un programme principal non libre constituerait une violation de la GPL. Toutefois, vous pouvez résoudre ce problème juridique en ajoutant une exception à la licence de votre plug-in, qui autorise à le lier avec le programme principal non libre.
Voir aussi la question « Puis-je écrire un logiciel libre qui utilise des bibliothèques non libres ? »
- Puis-je faire un programme non libre conçu pour charger un plugin couvert par la GPL ? (#NFUseGPLPlugins)
Cela dépend de la façon dont le programme invoque ses plug-ins. Par exemple, si le programme utilise seulement fork et exec pour invoquer et communiquer avec les plug-ins, alors les plug-ins sont des programmes séparés, et la licence du plug-in ne demande pas de prérequis pour le programme principal.
Si le programme charge dynamiquement des plug-ins, et qu'ils font mutuellement des appels de fonctions et partagent des structures de données, nous pensons qu'ils forment un seul programme, qui doit être traité comme une extension du programme principal et des plug-ins. Afin d'utiliser les plug-ins couverts par la GPL, le programme principal doit être publié sous la GPL ou une licence de logiciel libre compatible avec la GPL, et les termes ne la GPL doivent être respectés quand le programme principal est distribué pour utiliser ces plug-ins.
Si le programme charge dynamiquement des plug-ins, mais que la communication entre eux est limitée à l'invocation de la fonction « main » du plug-in avec quelques options puis à l'attente du résultat de l'exécution du plug-in, nous nous trouvons dans un cas limite.
L'utilisation de mémoire partagée pour communiquer avec des structures de données complexes est pratiquement équivalente à une liaison dynamique.
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 doive mettre mon programme sous GPL ? (#LinkingWithGPL)
Pas exactement. Cela signifie que vous devez publier votre programme sous une licence compatible avec la GPL (plus précisément, compatible avec une ou plusieurs des versions de la GPL acceptées par tout le reste du code dans la combinaison que vous liez). La combinaison elle-même est alors disponible sous ces versions de la GPL.
- Si oui, ai-je une chance d'obtenir une licence de votre programme sous la GPL amoindrie (Lesser GPL) ? (#SwitchToLGPL)
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 ? (#LinkingOverControlledInterface)
Ajoutez ce texte à la notice 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.
In addition, as a special exception, the copyright holders of ABC give you permission to combine ABC program with free software programs or libraries that are released under the GNU LGPL and with independent modules that communicate with ABC solely through the ABCDEF interface. You may copy and distribute such a system following the terms of the GNU GPL for ABC and the licenses of the other code concerned, provided that you include the source code of that other code when and as the GNU GPL requires distribution of source code.
Note that people who make modified versions of ABC are not obligated to grant this special exception for their modified versions; it is their choice whether to do so. The GNU General Public License gives permission to release a modified version without this exception; this exception also makes it possible to release a modified version which carries forward this exception.g
Seuls les détenteurs du copyright pour le programme peuvent légalement autoriser cette exception. Si vous avez écrit tout le programme vous-même, en vous assurant que votre employeur ou votre école ne revendique pas le copyright, vous êtes le détenteur du copyright et vous pouvez alors autoriser cette exception. Mais si vous voulez utiliser des parties d'autres programmes couverts par la GPL par d'autres auteurs dans votre code, vous ne pouvez autoriser cette exception pour eux. Vous devez obtenir l'autorisation des détenteurs du copyright pour ces programmes.
- 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 ? (#ManyDifferentLicenses)
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 :
- Pour que mon logiciel fonctionne, il doit subir une édition de liens avec la librairie 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 un « agrégat » (aggregate) et d'autres types de « versions modifiées » ? (#MereAggregation)
Un « agrégat » consiste en des programmes séparés distribués ensemble sur le même CD-ROM ou autre média. La GPL vous permet de créer et distribuer un agrégat, même si les licences des autres logiciels ne sont pas libres ou sont incompatibles avec la GPL. La seule condition est que vous ne pouvez pas publier un agrégat sous une licence qui interdise aux utilisateurs d'exercer les droits que chaque licence individuelle des programmes leur autorise.
Où est la limite entre deux programmes séparés et un programme en deux parties ? 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 (quel genre d'information est échangée).
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 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, devrais-je faire la même chose ? Si oui, comment ? (#AssignCopyright)
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, la 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 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 ? (#ModifyGPL)
Vous pouvez utiliser les termes de la GPL (qui peuvent être modifiés) dans une autre licence pourvu que vous l'appeliez par un autre nom et que vous n'y incluiez pas le préambule de la GPL, et pourvu que vous modifiiez les instructions d'usage à la fin suffisamment pour la rendre clairement différente dans la formulation et pour ne pas 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, vous 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 à faire une licence modifiée de cette manière, nous espérons que vous y réfléchirez à deux fois et que vous ne le ferez pas. Une telle licence modifiée est presque sûrement incompatible avec la GNU GPL, et cette incompatibilité bloque des combinaisons utiles de modules. La prolifération de différentes licences de logiciels libres 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 nouveau programme ? (#GPLCommercially)
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 ? (#GPLOtherThanSoftware)
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 et les ouvrages, et plus généralement toute œuvre ayant pour but d'enseigner un sujet, nous recommandons l'utilisation de la GFDL, plutôt que de la GPL.
- Comment la LGPL fonctionne-t-elle avec Java ? (#LGPLJava)
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 ? (#Consider)
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 ? (#GPLInProprietarySystem)
Vous ne pouvez pas incorporer de logiciel couvert 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 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 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 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û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.
- J'aimerais incorporer un logiciel couvert par la GPL dans mon système privateur. Puis-je le faire en ajoutant un module « enveloppant », sous une licence permissive compatible avec la GPL (de type licence X11) entre la partie couverte par la GPL et la partie privatrice ? (#GPLWrapper)
Non. La licence X11 est compatible avec la GPL, donc vous pouvez incorporer un module au programme couvert par la GPL et le mettre sous licence X11. Mais si vous les incorporez dans un programme plus grand, cet ensemble inclurait la partie couverte par la GPL, donc cet ensemble devrait être sous la GNU GPL.
Le fait qu'un module privateur A communique avec un module C couvert par la GPL par le seul biais d'un module B sous licence X11 n'est pas légalement recevable ; ce qui importe, c'est le fait que le module C est inclus dans l'ensemble.
- Où puis-je en apprendre plus sur l'exception de la Runtime Library (bibliothèque d'exécution) de GCC ? (#LibGCCException)
L'exception de la Runtime Library de GCC couvre libgcc, libstdc++, libfortran, libgomp, libdecnumber, et d'autres bibliothèques distribuées avec GCC. L'exception a pour but de permettre aux gens de distribuer les programmes compilés avec GCC sous les termes de leurs choix, même lorsque des parties de ces bibliothèques sont incluses dans les exécutables au cours du processus de compilation. Pour en apprendre plus, veuillez lire notre FAQ sur l'exception de la Runtime Library de GCC
- 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 ? (#MoneyGuzzlerInc)
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 qu'un camion passe à travers. On aurait alors carte blanche pour faire de la rétention de code source pour toutes sortes de modifications et d'extensions à des logiciels sous GPL.
L'un de nos objectifs principaux étant de donner accès au code source à tous les utilisateurs, c'est là une conséquence que nous essayons à tout prix d'éviter.
Plus spécifiquement, les versions du programme liées avec les bibliothèques de Pompe-A-Fric ne seraient pas vraiment des logiciels libres au sens où nous l'entendons : elles ne comprendraient pas l'intégralité du code source qui permet aux utilisateurs de modifier et de recompiler le programme.
- Si la licence pour 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 couvert par la GPL ? (#GPLIncompatibleAlone)
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 le formulant autrement, 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 sous GPL sous forme binaire uniquement ? (#ModifiedJustBinary)
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 sont disponible pour les utilisateurs.
- J'ai téléchargé uniquement le programme binaire à partir d'Internet. Si je distribue des copies, dois-je obtenir le code source et le redistribuer aussi ? (#UnchangedJustBinary)
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 binaires sur support physique sans les sources associées. Puis-fournir le code source par FTP ? (#DistributeWithSourceOnInternet)
La version 3 de la GPL permet ceci ; consulter l'option 6(b) pour plus de détails. Sous la version 2, vous êtes certainement libre de proposer les sources via FTP, et la plupart des utilisateurs l'obtiendront de cette manière. Cependant, si certains d'entre eux préfèrent obtenir le code source sur un support physique par courrier, vous devez le leur envoyer.
Si vous distribuez les binaires par FTP, vous devriez 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 cette offre pour obtenir les sources ? (#RedistributedBinariesGetSource)
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 ? (#SourceAndBinaryOnDifferentSites)
Oui. La section 6(d) autorise cela. Cependant, vous devez fournir des instructions claires que les utilisateurs puissent suivre pour obtenir le code source, et vous devez vous assurer que le code source demeure disponible tant que vous distribuez le code objet.
- 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 ? (#DistributeExtendedBinary)
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 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 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 ? (#DistributingSourceIsInconvenient)
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 binaires.
- Puis-je rendre les binaires disponibles sur un serveur réseau, mais envoyer les sources seulement à ceux qui en font la demande ? (#AnonFTPAndSendSources)
Si vous rendez le code objet disponible sur un serveur réseau, vous devez fournir le code source correspondant sur un serveur réseau également. Le moyen le plus simple de le faire est de les publier sur le même serveur, mais vous pourriez aussi donner des instructions pour obtenir le code source à partir d'un autre serveur, ou même à partir d'un système de contrôle de version. Peu importe ce que vous faites, le code source doit être aussi facile d'accès que le code objet cependant. Tout ceci est spécifié dans la section 6(d) de la GPLv3.
Les sources que vous fournissez doivent correspondre exactement aux fichiers 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.
- Comment puis-je m'assurer que tout utilisateur qui télécharge les binaires obtient également le code source ? (#HowCanIMakeSureEachDownloadGetsSource)
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 ? (#UnreleasedMods)
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. Les développeurs qui souhaitent corriger cela, pourraient vouloir utiliser la GNU GPL Affero 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 » ? (#InternalDistribution)
Non, dans ce cas la société fait juste des copies pour elle-même. Par conséquent, une société ou autre 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 ? (#StolenCopy)
Si la version a été publiée ailleurs, alors le voleur a probablement le droit de faire des copies et de les redistribuer sous la GPL, mais s'il est emprisonné pour avoir volé le CD, il se peut qu'il doivent attendre sa libération avant de le faire.
Si la version en question n'est pas publiée ou est considérée par une société comme un secret commercial, alors la publier peut être une violation du secret commercial ; 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 un secret commercial, 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é distribuait une copie sous couvert du secret commercial ? (#TradeSecretRelease)
Si la société vous a distribué une copie et revendique le secret commercial, la société a violé la GPL et doit cesser la distribution. Notez comme cela diffère du cas du vol ci-dessus ; la société ne distribue pas intentionnellement une copie quand une copie est volée, aussi dans ce cas, la société n'a pas violé la GPL.
- Pourquoi certaines bibliothèques GNU sont-elles distribuées sous GPL normale plutôt que sous GPL amoindrie (Lesser GPL) ? (#WhySomeGPLAndNotLGPL)
L'utilisation de la 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 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 plus grand soutien au logiciel libre, et ainsi de suite. 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 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 bibliothèque 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 privateur. Pourriez-vous faire une exception pour nous? Cela augmenterait le nombre d'utilisateurs de ce programme. (#WillYouMakeAnException)
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 privateurs 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 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.
- Pourquoi les programmes doivent-ils se référer à « la version 3 de la GPL ou toute version ultérieure » (version 3 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 (les deux derniers changements datent de 2007 et 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 3 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 3. Lorsqu'un programme dit « version 3 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 3, 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 4 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 4 de la GPL ou toute version ultérieure ». Les utilisateurs devront se conformer aux clauses plus restrictives de la GPL version 4, 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.
- Est-ce une bonne idée d'utiliser une licence disant qu'un certain programme ne peut être utilisé que sous la dernière version de la GNU GPL? (#OnlyLatestVersion)
La raison pour laquelle vous ne devez pas faire ça est que cela pourrait entraîner un jour ou l'autre le retrait automatique de certaines permissions que les utilisateurs avaient auparavant
Supposez qu'un programme ait été publié en 2000 sous la « dernière version ». À l'époque, on pouvait l'utiliser sous la GPLv2. Le jour où nous avons publié la GPLv3 (en 2007), chacun aurait été soudain forcé de passer à la GPLv3.
Certains utilisateurs qui n'avaient jamais entendu parler de la GPL version 3, auraient été obligés de l'utiliser. Ils n'auraient pas violé la licence du programme intentionnellement mais simplement parce qu'ils n'avaient pas eu l'information. Ce n'est pas une bonne manière de traiter les gens.
Nous pensons qu'il n'est pas correct de reprendre des permissions déjà accordées, sauf en cas de violation. Si votre liberté peut être révoquée, alors ce n'est pas vraiment la liberté. Aussi, quand vous vous procurez une copie d'un programme sous une certaine version d'une licence, les droits accordés par cette licence doivent vous être acquis définitivement. Mettre à disposition sous « la GPL version N ou ultérieure » met ce principe en application.
- Pourquoi n'utilisez-vous pas la GPL pour les manuels ? (#WhyNotGPLForManuals)
Il est possible d'utiliser la GPL pour les manuels, mais pour ceux-ci il vaut beaucoup mieux utiliser la licence de documentation libre GNU, ou GFDL (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 les programmes, 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 fournir une offre écrite d'envoyer le « code source » plus tard.
En revanche, la GFDL contient des clauses qui permettent aux éditeurs de manuels libres de tirer des revenus de la vente de copies - des textes de couverture par exemple. Les règles spéciales applicables aux sections Endorsements (approbations) rendent possible l'utilisation de la GFDL pour définir un standard officiel. Par ce moyen, les versions modifiées seraient autorisées, mais elles ne seraient pas reconnues comme « le standard ».
En utilisant la GFDL, nous permettons des changements dans le texte d'un manuel qui couvre un sujet technique. 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 ceci 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 GFDL établit des clauses pour ces « sections inaltérables ».
- Comment la GPL s'applique t-elle aux polices ? (#FontException)
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 et écrire à licensing@gnu.org.
Pour utiliser cette exception, ajoutez ce texte à votre notice 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 application qui génère des pages web à partir de modèles. Quelle licence dois-je utiliser pour ces modèles ? (#WMS)
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 œuvres mineures, mais les modèles sont un cas particulier car ils combinent des données fournies par les utilisateurs de l'application, et cette combinaison est distribuée. C'est pourquoi nous recommandons d'utiliser une licence permissive simple pour vos modèles.
Certains modèles font des appels à des fonctions JavaScript. Puisque le JavaScript 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 seule œuvre selon la loi sur le copyright. Il est nécessaire de tracer une ligne entre le code JavaScript (sous copyleft) et le code utilisateur (habituellement sous des termes incompatibles).
Il y a une exception pour le code JavaScript qui dit ceci :
As a special exception to the 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 licence GPL un programme que j'ai développé en utilisant des outils non libres ? (#NonFreeTools)
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 ajouter une notice explicite donnant la permission de lier votre programme avec elles. Notre FAQ sur l'utilisation des bibliothèques incompatibles avec la GPL fournit plus d'informations sur la manière de le faire.
- Existe-t-il des traductions de la GPL dans d'autres langues ? (#GPLTranslations)
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ê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 est parfaitement exacte, tout va 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, 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 é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 autorisons les gens à écrire des traductions de la GPL, mais que nous les approuvons pas comme légalement valides et contractuelles.
Une traduction non approuvée n'a pas de valeur légale, et devrait le déclarer explicitement. Cela devrait être écrit comme suit :
Cette traduction de la GPL est informelle, et n'est pas approuvée officiellement comme valide par la Free Software Foundation. Pour être tout à fait sûr de ce qui est autorisé, 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, devraient 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 tout de 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 faire tourner des programmes placés sous GPL ? (#InterpreterIncompat)
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. 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.
Donc, si ces dispositifs sont diffusé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 :
- Si vous écrivez du code et le diffusez sous GPL, vous pouvez définir une exception explicite donnant l'autorisation de le lier avec ces dispositifs incompatibles.
- 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.
- 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 ? (#WhoHasThePower)
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é. Soit ce sont les détenteurs du copyright, soit ils sont en relation avec lui. En savoir plus sur la façon 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 ? (#OOPLang)
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 ? (#PortProgramToGL)
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 diffusé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 à l'abandon de cette liberté.
Si vous espérez un jour jeter un regard en arrière sur votre carrière et sentir qu'elle a contribué à l'expansion d'une société bonne et libre, vous avez besoin de rendre votre programme libre.
- Je viens de découvrir qu'une société 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 ? (#CompanyGPLCostsMoney)
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 effectivement un jour 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.
- Puis-je publier un programme avec une licence stipulant que vous pouvez redistribuer sous la GPL des versions modifiées de celui-ci, mais pas l'original lui-même ? (#ReleaseNotOriginal)
Non. Une telle licence serait contradictoire. 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 la GPL. La GPL dit que n'importe qui peut modifier à nouveau la version B et publier le résultat sous la GPL. Aussi je peux (ou quelqu'un d'autre) supprimer ces 1000 lignes, en produisant la version C qui a le même code que la version A, mais sous la GPL.
Si vous essayez de bloquer ceci, en disant explicitement dans la licence que je ne suis pas autorisé à reproduire sous la GPL quelque chose d'identique à la version A en supprimant ces lignes de la version B, en fait la licence dit maintenant que je ne peux pas utiliser entièrement la version B des toutes les manières que l'autorise la GPL. En d'autres termes, la licence n'autorise pas, de fait, un utilisateur à publier sous la GPL une version telle que la version B .
- Est-ce que déplacer une copie vers une filiale contrôlée majoritairement constitue une distribution ? (#DistributeSubsidiary)
Que le déplacement vers ou à partir de cette filiale constitue une « distribution » ou non est une question qui doit être décidée en fonction de la loi sur le copyright et de la juridiction appropriés. La GPL n'est pas au-dessus des lois locales. La loi sur le copyright américain n'est pas totalement claire sur ce point, mais ne semble pas traiter de ce cas de distribution.
Si, dans certains pays, c'est considéré comme une distribution, et que la filiale doit recevoir le droit de redistribuer le programme, cela ne fera pas grande différence. La filiale est contrôlée par la société mère ; droits ou pas droits, elle ne redistribuera pas le programme à moins que la société mère ne le décide.
- Est-ce que des installeurs de logiciels peuvent demander aux gens de cliquer pour accepter la GPL ? Si j'obtiens un logiciel sous GPL, dois-je accepter quelque chose ? (#ClickThrough)
Certains systèmes d'empaquetage de logiciel ont une partie qui nécessite d'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 doit-il être compatible avec la licence GPL ? (#GPLCompatInstaller)
Non. L'installeur et les fichiers qu'il installe sont des œuvres séparés. Par conséquent, les termes de la GPL ne s'appliquent pas au logiciel d'installation.
- Certains distributeurs de logiciels sous GPL m'obligent, par leur CLUF « parapluie » ou au cours de leur processus de téléchargement, à « déclarer et certifier » (represent and warrant) que je suis basé aux États-Unis, ou que l'ai l'intention de distribuer le logiciel conformément aux lois pertinentes sur l'exportation. Pourquoi font-ils cela, et est-ce une violation des obligations imposées à ces distributeurs par la GPL ? (#ExportWarranties)
Ce n'est pas une violation de la GPL. Ces distributeurs (presque tous des sociétés commerciales qui vendent du logiciel libre et des services associés) essaient de réduire leurs propres risques juridiques, non de contrôler votre comportement. Aux États-Unis, les lois sur l'exportation pourraient engager leur responsabilité s'ils exportaient du logiciel vers certains pays en connaissance de cause, ou s'ils donnaient du logiciel à des parties dont ils savent qu'elles feront ce type d'exportation. En demandant ces déclarations à leurs clients et aux autres destinataires de leur logiciel, ils se protègent vis-à-vis d'éventuelles demandes des autorités régulatrices concernant leur connaissance de la destination finale du logiciel qu'ils ont distribué. Elles ne restreignent pas ce que vous pouvez faire avec le logiciel, elles ne font que les prémunir contre tout reproche concernant ce que vous pourriez faire avec. Puisqu'ils ne placent pas de restriction supplémentaire sur le logiciel, ils ne violent ni la section 10 de la GPL v3, ni la section 6 de la GPL v2.
La FSF s'oppose à l'application au logiciel libre de lois américaines sur le contrôle de l'exportation. Non seulement ces lois sont incompatibles avec ses objectifs généraux de liberté du logiciel, mais elles ne servent aucun but raisonnable du gouvernement. En effet, le logiciel libre est actuellement (et devrait toujours rester) mis à disposition par des entités de presque tous les pays, y compris de pays qui n'ont pas de loi sur le contrôle de l'exportation et qui ne participent pas aux embargos commerciaux conduits par les États-Unis. Par conséquent, dans aucun pays le gouvernement n'est privé de logiciel libre par les lois américaines sur le contrôle de l'exportation ; de plus, en ce qui nous concerne, aucun pays ne devrait voir ses citoyens privés de logiciel libre, quelle que soit la politique de son gouvernement. Nous pouvons vous fournir des copies de tous les logiciels sous GPL publiés par la FSF sans que vous fassiez de déclaration sur votre lieu de résidence ou sur vos intentions. Cependant la FSF comprend le désir des distributeurs commerciaux basés aux États-Unis de se conformer aux lois américaines. Ils ont le droit de choisir à qui ils distribuent chaque copie d'un logiciel libre ; exercer ce droit ne viole pas la GPL à moins qu'ils n'ajoutent des restrictions contractuelles allant au-delà de celles que permet la GPL.
- Puis-je utiliser du logiciel sous GPL dans un appareil qui arrêterait de fonctionner si les clients ne continuaient pas à payer un abonnement ? (#SubscriptionFee)
Non. Dans ce scénario, la nécessité de continuer à payer un abonnement limite la possibilité de l'utilisateur d'exécuter le programme. C'est ajouter une condition aux termes de la GPL, ce qui est interdit pas la licence.
- Comment mettre à jour à partir de la (L)GPLv2 vers la (L)GPLv3 ? (#v3HowToUpgrade)
Tout d'abord, incorporez la nouvelle version de la licence dans votre paquet logiciel. Si vous utilisez la LGPLv3 pour votre projet, assurez-vous d'incorporer à la fois les copies de la GPLv3 et de la LGPLv3, car la LGPLv3 est maintenant écrite comme un ensemble de permissions supplémentaires en sus de la GPLv3.
Ensuite, remplacez toutes vos notices de licences v2 existantes (généralement, au début de chaque fichier) avec le nouveau texte recommandé disponible dans Comment utiliser les licences GNU pour vos logiciels ?. Ce sera plus sûr à l'avenir car il n'inclut plus l'adesse postale de la FSF.
Bien sûr, tout texte descriptif (comme dans le fichier README), qui parle de la licence du paquet doit être aussi mis à jour de façon appropriée.
- Comment la GPLv3 rend-elle la distribution par BitTorrent plus facile ? (#BitTorrent)
Parce que la GPLv2 a été écrite avant que la distribution pair à pair de logiciels ne soit courante, il est difficile de respecter ses conditions quand on partage du code de cette façon. La meilleure manière pour s'assurer que vous êtes en conformité en distribuant du code sous GPLv2 avec BitTorrent serait d'inclure toutes les sources correspondantes dans le même torrent, ce qui serait beaucoup trop coûteux.
La GPLv3 corrige ce problème de deux manières. D'abord, les personnes qui téléchargent ce torrent et envoient les données à d'autres pendant le processus ne sont pas requises de faire quoi que ce soit. C'est parce que la section 9 dit : Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance [of the license]. (« La propagation auxiliaire d'une œuvre couverte n'intervenant que comme une conséquence de l'utilisation de la transmission pair à pair, recevoir une copie ne nécessite pareillement aucune acceptation [de la licence]. »).
Ensuite, la section 6(e) de la GPLv3 est conçue pour donner aux distributeurs - les personnes qui initient les torrents -un moyen clair et simple de fournir les sources, en disant au destinataires où elles sont disponibles sur un serveur public. Ceci assure que quiconque veut obtenir les sources peut le faire et n'occasionne presque aucun dérangement pour le distributeur.
- Qu'est-ce que la « tivoisation » ? Comment la GPLv3 l'empêche-t-elle ? (#Tivoization)
Certains appareils utilisent des logiciels libres qui peuvent être mis à jour, mais sont conçus pour que les utilisateurs ne soient pas autorisés à modifier ces logiciels. Il y a beaucoup de façons différentes de faire ceci ; par exemple, parfois le matériel lance des contrôles sur les logiciels installés et s'éteint s'il ne trouve pas les signatures attendues. Les fabricants se conforment à la GPLv2 en vous donnant les sources, mais vous n'avez toujours pas la liberté de modifier les logiciels que vous utilisez. Nous appelons cette pratique « tivoisation ».
Quand des personnes distribuent des « produits utilisateur » qui incluent des logiciels sous GPLv3, la section 6 nécessite qu'ils fournissent les informations nécessaires pour modifier les logiciels. « Produits utilisateur » est un terme spécialement défini dans la licence ; des exemples de « produits utilisateur » incluent les lecteurs musicaux portables, les enregistreurs vidéo numériques et les systèmes de sécurité domestiques.
- La GPLv3 interdit-elle l'emploi de DRM ? (#DRMProhibited)
Non ; vous pouvez utiliser du code publié sous GPLv3 pour développer toute ce que vous voulez en fait de technologies DRM. Cependant, si vous faites cela, la section 3 dit que ce système ne comptera pas comme une mesure de « protection » technologique réelle, ce qui signifie que si quelqu'un casse le dispositif de DRM, il sera libre également de distribuer son logiciel, sans les entraves de la DMCA et lois similaires.
Comme d'habitude, la GNU GPL ne restreint pas ce que les gens font aux logiciels, elle les empêche juste de restreindre les autres.
- Puis-je utiliser la GPL pour mettre sous licence du matériel ? (#GPLHardware)
Tout matériel qui peut être mis sous copyright peut être mis sous licence GPL. La GPLv3 peut aussi être utilisée pour licencier du matériel couvert par d'autres lois similaires à la loi sur le copyright, comme les masques de semi-conducteurs. Par exemple, vous pouvez publier les schémas d'une conception matérielle sous la GPL. Cependant, si quelqu'un utilise cette information pour créer un appareil, il n'aura aucune obligation de licence pour la distribution ou la vente de cet appareil : cela tombe en dehors de la portée du copyright, et par conséquent de la GPL elle-même.
- J'utilise une clé de chiffrement publique pour signer mon code pour assurer son authenticité. Est-il vrai que la GPLv3 m'oblige à publier mes clés de signature privées ? (#GiveUpKeys)
Non. La seule fois où vous seriez obligé de publier les clés de signature est si vous transmettiez du logiciel sous GPL à l'intérieur d'un « produit utilisateur » et que le matériel fasse une vérification du logiciel pour y chercher une signature de chiffrement valide avant de fonctionner. Dans ce cas spécifique, vous seriez obligé de fournir à tout détenteur de l'appareil, à la demande, la clé pour signer et installer le logiciel modifié sur son appareil pour qu'il puisse fonctionner. Si chaque appareil utilise une clé différente, alors vous devriez donner à chaque acheteur la clé pour son appareil.
- La GPLv3 nécessite-t-elle que les votants puissent modifier le logiciel utilisé dans une machine à voter ? (#v3VotingMachine)
Non. Les sociétés distribuant des appareils contenant du logiciel sous GPLv3 sont obligées de fournir les sources et les informations d'installation pour le logiciel aux personnes qui possèdent une copie du code objet, pas plus. Le votant qui utilise une machine à voter (comme tout autre kiosque) ne la possède pas, pas même temporairement, donc le votant ne possède pas non plus le logiciel qui est à l'intérieur.
Notez cependant que voter est un cas très spécial. Parce que le logiciel dans un ordinateur est libre ne signifie pas que vous pouvez faire confiance aux ordinateurs pour voter. Nous croyons que l'on ne peut pas faire confiance aux ordinateurs pour voter. Voter doit être fait avec du papier.
- La GPLv3 a-t-elle une clause de rétorsion de brevets ? (#v3PatentRetaliation)
Oui, en fait. La section 10 interdit aux gens qui transmettent le logiciel de déposer plainte pour contrefaçon de brevet contre d'autres destinataires de la licence. Si quelqu'un le faisait cependant, la section 8 explique comment il perdrait sa licence et toutes autres licences de brevets l'accompagnant.
- Puis-je utiliser des petits bouts de code source couvert par la GPL dans de la documentation qui est sous une licence incompatible avec la GPL ? (#SourceCodeInDocumentation)
Si les morceaux de code sont suffisamment petits pour que vous les incorporiez en accord le fair use (usage raisonnable) ou loi similaire, alors oui. Autrement, non.
- Le début de la section 6 de la GPLv3 dit que je peux transmettre une œuvre qu'elle couvre, sous forme de code objet, « selon les termes des sections 4 et 5 » pourvu que je respecte aussi les conditions de la section 6. Que cela signifie-t-il ? (#v3Under4and5)
Cela signifie que toutes les permissions et conditions que vous avez pour transmettre le code source s'appliquent aussi quand vous transmettez du code objet : vous pouvez faire payer, vous devez garder les notices de copyright intactes, etc.
- Ma société détient beaucoup de brevets. Au fil des années, nous avons contribué au code de projets sous « GPL version 2 ou versions ultérieures », et le projet lui-même a été distribué sous les mêmes termes. Si un utilisateur décide de mettre le code du projet (incorporant mes contributions) sous GPLv3, cela signifie-t-il que j'ai automatiquement autorisé une licence de brevet GPLv3 explicite à cet utilisateur ? (#v2OrLaterPatentLicense)
Non. Quand vous transmettez du logiciel sous GPL, vous devez suivre les termes et conditions d'une version particulière de la licence. C'est cette version qui définit vos obligations. Que les utilisateurs puissent aussi choisir d'utiliser les versions ultérieures de la GPL, c'est simplement une permission supplémentaire qu'ils ont ; cela ne nécessite pas que vous satisfassiez également les termes de la version ultérieure de la GPL.
N'allez pas imaginer que vous pouvez menacer la communauté avec vos brevets. Dans beaucoup de pays, la distribution de logiciel sous GPLv2 donne aux destinataires une licence de brevet implicite pour exercer leurs droits sous la GPL. Même si ce n'est pas le cas, quiconque envisage de faire appliquer ses brevets agressivement est un ennemi de la communauté, et nous nous défendrons contre une telle attaque.
- Si je distribue un programme privateur qui est lié à une bibliothèque sous LGPLv3 que j'ai modifiée, quelle est la « version du contributeur » servant à déterminer l'étendue de l'autorisation de licence de brevet explicite que je donne ; s'agit-il seulement de la bibliothèque ou de la combinaison complète ? (#LGPLv3ContributorVersion)
La « version contributeur » est seulement votre version de la bibliothèque.
- La GPLv3 est-elle compatible avec la GPLv2 ? (#v2v3Compatibility)
Non. Certaines conditions de la GPLv3, comme la fourniture d'informations d'installation, n'existent pas dans la GPLv2. Par conséquent, les licences ne sont pas compatibles : Si vous essayiez de combiner du code publié sous ces deux licences, vous violeriez la section 6 de la GPLv2.
Cependant, si le code est publié sous GPL « version 2 or later, » (version 2 ou suivantes), c'est compatible avec la GPLv3 car la GPLv3 est une des options permises.
- Que signifie « soigner » une violation de la GPLv3 ? (#Cure)
Soigner une violation signifie ajuster vos pratiques pour se conformer aux conditions de la licence.
- Les clauses de garantie et de responsabilité dans la GPLv3 semblent spécifiques à la loi américaine. Puis-je ajouter mes propres clauses à mon code ? (#v3InternationalDisclaimers)
Oui. La section 7 vous donne la permission d'ajouter vos propres clauses, spécifiquement 7(a).
- Mon programme a des interfaces utilisateur interactives qui ne sont pas de nature visuelles. Comment puis-je me conformer aux notices légales appropriées de la GPLv3 ? (#NonvisualLegalNotices)
Tout ce que vous avez à faire est de vous assurer que les notices légales appropriées soient immédiatement disponibles dans votre interface utilisateur. Par exemple, si vous avez écrit une interface audio, vous pourriez inclure une commande qui lise les notices pour l'utilisateur.
- Si je donne une copie d'un programme couvert par la GPLv3 à un collègue dans ma société, lui ai-je « transmis » la copie ? (#v3CoworkerConveying)
Tant que vous utilisez tous les deux le logiciel dans votre société plutôt que personnellement, la réponse est non. Les copies appartiennent à la société, pas à vous ni à votre collègue. Cette copie est une propagation, pas une transmission, car la société ne met pas de copies à la disposition de tiers.
- Si je distribue une programme couvert par la GPLv3, puis-je fournir une garantie qui devient caduque si l'utilisateur modifie le programme ? (#v3ConditionalWarranty)
Oui. Tout comme les appareils n'ont pas besoin d'être garantis si les utilisateurs modifient le logiciel à l'intérieur, vous n'avez pas l'obligation de fournir une garantie qui couvre toutes les activités possibles que quelqu'un pourrait faire avec un logiciel couvert par la GPLv3.
- Pourquoi avez-vous décidé d'écrire la GNU Affero GPLv3 comme licence distincte ? (#SeparateAffero)
Les premiers jets de la GPLv3 autorisaient les donneurs de licence à ajouter dans la section 7 une condition de publication des sources similaire à celle de la licence Affero. Cependant, certaines sociétés qui développent des logiciels libres et en dépendent considèrent cette condition comme trop contraignante. Ils veulent éviter d'avoir du code soumis à cette obligation supplémentaire, et ont exprimé leur inquiétude sur les coûts administratifs associés de vérification du code. En publiant séparément la GNU Affero GPLv3 avec des clauses, présentes à la fois dans cette dernière et dans la GPLv3, autorisant le code sous ces licences à être lié entre eux, nous avons accompli tous nos buts originaux tout en rendant plus facile la détermination du code ayant obligation de publication des sources.
- Pourquoi avoir inventé les nouveaux mots propagate (propager) et convey (transmettre) dans la GPLv3 ? (#WhyPropagateAndConvey)
Le terme « distribuer » utilisé dans la GPLv2 était emprunté à la loi sur le copyright des États-Unis. Au fil des années, nous avons appris que certaines juridictions utilisaient ce même mot dans leurs propres lois sur le copyright (ou le droit d'auteur), mais lui donnaient des significations différentes. Nous avons inventé ces nouveaux termes pour rendre nos intentions aussi claires que possible quelque soit la façon dont la licence est interprétée. Ils ne sont utilisés dans aucune loi sur le copyright (ou le droit d'auteur) dans le monde et nous avons fourni leurs définitions directement dans la licence.
- Je voudrais mettre mon code sous licence GPL, mais je voudrais aussi qu'il soit clair qu'il ne peut pas être utilisé pour des usages militaires ou commerciaux. Puis-je faire cela ? (#NoMilitary)
Non, car ces deux buts se contredisent entre eux. La GNU GPL est conçue spécifiquement pour empêcher l'addition d'autres restrictions. La GPLv3 autorise un ensemble très limité d'entre elles, dans la section 7, mais toute autre restriction ajoutée par la suite peut être retirée par l'utilisateur.
- Est-ce que convey (transmettre) dans la GPLv3 est la même chose que distribute (distribuer) dans la GPLv2 ? (#ConveyVsDistribute)
Oui, plus ou moins. En faisant respecter la GPLv2, nous avons appris que certaines juridictions utilisaient le mot « distribuer » dans leurs propres lois sur le copyright (ou le droit d'auteur), mais lui donnaient des significations différentes. Nous avons inventé un nouveau terme pour rendre nos intentions claires et éviter tout problème pouvant être causé par ces différences.
- La GPLv3 donne comme exemple de propagation « la mise à disposition du public ». Que cela signifie-t-il ? La mise à disposition est-elle une forme de transmission ? (#v3MakingAvailable)
Un exemple de « mise à disposition du public » est de mettre le logiciel sur un serveur web ou FTP. Après avoir fait cela, un certain temps peut se passer avant que quelqu'un n'obtienne en fait le logiciel de votre part ; mais comme cela peut arriver, vous devez remplir les obligations de la GPL. Par conséquent, nous avons défini la transmission pour y inclure cette activité.
- Puisque la distribution et la mise à disposition du public sont des formes de propagation qui transmettent aussi la GPLv3, quels sont les exemples de propagation qui ne constituent pas une transmission ? (#PropagationNotConveying)
Faire des copies de logiciels pour vous-même est la forme principale de propagation qui n'est pas une transmission. Vous pourriez faire ceci pour installer des logiciels sur plusieurs ordinateurs ou pour faire des sauvegardes.
- Est-ce que la préliaison de binaires sous GPL à diverses bibliothèques du système, pour optimiser les performances, compte comme une modification ? (#Prelinking)
Non. La préliaison fait partie d'un processus de compilation ; cela n'ajoute aucune condition de licence à celles qui se rapportent aux autres étapes de la compilation. Si vous êtes autorisé à lier le programme aux bibliothèques, alors vous pouvez aussi le prélier à celles-ci. Si vous distribuez du code objet prélié, vous devez suivre les termes de la section 6.
- Si quelqu'un installe un logiciel sous GPL sur un portable et qu'il prête ce portable à un ami sans fournir le code source du logiciel, a-t-il enfreint la GPL ? (#LaptopLoan)
Non. Dans les juridictions où nous avons enquêté sur ce problème, cette sorte de prêt ne compterait pas comme transmission. Le propriétaire du portable n'aurait aucune obligation sous la GPL.
- Supposons que deux sociétés essaient de contourner l'obligation de fournir des informations d'installation : l'une diffuserait des logiciels signés et la seconde diffuserait un produit utilisateur qui n'exécuterait que les logiciels signés de la première. Est-ce une violation de la GPLv3 ? (#TwoPartyTivoization)
Oui. Si deux parties essaient de travailler ensemble pour contourner les obligations de la GPL, elles peuvent toutes deux être poursuivies pour infraction sur le copyright. D'autant plus que la définition de la transmission inclut explicitement les activités qui rendraient quelqu'un responsable d'une d'infraction secondaire.
- Suis-je en accord avec la GPLv3 si je propose des binaires sur un serveur FTP et les sources par le biais d'un lien vers un dépôt de code source dans un système de contrôle de versions, tel que CVS ou Subversion ? (#SourceInCVS)
Ceci est acceptable tant que la récupération des sources ne devient pas pénible ou restrictive. Quiconque peut télécharger votre code objet doit aussi être en mesure de récupérer les sources à partir de votre système de contrôle de version, en utilisant un logiciel client gratuit disponible publiquement. Les utilisateurs doivent obtenir des instructions claires et adéquates sur la façon d'obtenir les sources sur le code objet précis qu'ils ont téléchargé ; ils peuvent ne pas vouloir nécessairement les derniers développement du code, après tout.
- Quelqu'un qui transmet un logiciel couvert par la GPLv3 dans un produit utilisateur peut-il utiliser une attestation à distance pour empêcher un utilisateur de modifier ce logiciel ? (#RemoteAttestation)
Non. La définition des informations d'installation, qui doivent être fournies avec les sources du logiciel transmis dans un produit utilisateur, dit explicitement : « Les informations doivent suffire à assurer que le fonctionnement continu du code objet modifié ne soit en aucun cas empêché ou gêné du seul fait de la modification qui y a été apportée. » Si l'appareil utilise une quelconque attestation à distance, les informations d'installation doivent vous fournir un moyen d'authentifier votre logiciel modifié comme légitime.
- Que signifie « règles et protocoles pour la communication sur le réseau » (rules and protocols for communication across the network) dans la GPLv3 ? (#RulesProtocols)
Ceci se réfère au trafic que vous pouvez envoyer par le réseau. Par exemple, s'il y a une limite au nombre de requêtes que vous pouvez envoyer à un serveur par jour, ou à la taille d'un fichier que vous pouvez téléverser (upload) vers une destination, votre accès à ces ressources peut être refusé si vous ne respectez pas ces limites.
Ces règles n'incluent pas quoi que ce soit ne se rapportant pas directement aux données voyageant sur le réseau. Par exemple, si un serveur du réseau envoie des messages aux utilisateurs de votre appareil, votre accès au réseau ne pourrait pas être refusé simplement parce que vous auriez modifié le logiciel pour qu'il n'affiche pas les messages.
- Les distributeurs qui fournissent une information d'installation sous GPLv3 ne sont pas tenus de fournir un « service de support » pour le produit. Quelle sorte de « service de support » entendez-vous ? (#SupportService)
Ceci inclut le genre de service que beaucoup de fabricants fournissent pour vous aider à installer, utiliser ou dépanner le produit. Si un appareil repose sur l'accès aux services web ou technologies similaires pour fonctionner correctement, celles-ci doivent encore être disponibles pour les versions modifiées, en accord avec les termes de la section 6 concernant l'accès à un réseau.
- Dans la GPLv3 et l'AGPLv3, que signifie notwithstanding any other provision of this License (nonobstant toute autre clause de la licence) ? (#v3Notwithstanding)
Ceci signifie simplement que les termes suivants prévalent sur tout autre terme de la licence pouvant entrer en conflit avec eux. Par exemple, sans ce texte, certaines personnes auraient pu prétendre que vous ne pouvez pas combiner du code sous GPLv3 avec du code sous AGPLv3, car les conditions additionnelles de l'AGPL sont considérées comme des « restrictions supplémentaires » (further restrictions) dans la section 7 de la GPLv3. Ce texte rend clair que l'interprétation voulue est correcte et que vous pouvez faire la combinaison.
Ce texte ne fait que résoudre des conflits entre les différents termes de la licence. Quand il n'y a pas de conflit entre deux conditions, vous devez alors satisfaire les deux. Ces paragraphes ne vous donne pas carte blanche pour ignorer le reste de la licence (ils précisent plutôt des exceptions très limitées).
- Sous l'AGPLv3, quand je modifie le programme sous la section 13, quelle « source correspondante » doit-il offrir ? (#AGPLv3CorrespondingSource)
Le « code source correspondant » est définie dans la section 1 de la licence, et vous devez fournir ce qu'elle énumère. Donc, si votre version modifiée dépend de bibliothèques sous d'autres licences, comme la licence Expat ou la GPLv3, le code source correspondant doit inclure ces bibliothèques (à moins que ce ne soit des bibliothèques système). Si vous avez modifié ces bibliothèques, vous devez produire votre code source modifié.
La dernière phrase du premier paragraphe de la section 13 est seulement faite pour réaffirmer ce que la plupart des gens auraient naturellement supposé : même si les combinaisons de code sous GPLv3 sont traitées par l'exception spéciale de la section 13, le code source correspondant doit quand même inclure le code qui est combiné avec le programme de cette façon. Cette phrase ne signifie pas que vous devez seulement fournir le source couvert par la GPLv3 mais plutôt qu'un tel code n'est pas exclu de la définition du code source correspondant.
- Dans l'AGPLv3, qu'est-ce qui est pris en compte dans interacting with [the software] remotely through a computer network (interagissant avec [le logiciel] à distance par l'intermédiaire d'une réseau) ? (#AGPLv3InteractingRemotely)
Si le programme est expressément conçu pour accepter les requêtes des utilisateurs et envoyer des réponse sur un réseau, alors il remplit ces critères. Des exemples communs de programmes qui tomberaient dans cette catégorie comprennent les serveur de messagerie et les serveurs web, les applications interactives en ligne et les serveurs pour les jeux en ligne.
Si un programme n'est pas expressément conçu pour interagir avec un utilisateur sur un réseau, mais est exécuté dans un environnement où il lui arrive de le faire, alors il ne tombe pas dans cette catégorie. Par exemple, une application n'est pas forcée de fournir son code source simplement parce que l'utilisateur l'exécute via SSH ou une session X distante.
- Comment se situe le concept de « vous » (you) de la GPLv3 par rapport à la définition d'« entité juridique » (Legal Entity) de la licence Apache 2.0 ? (#ApacheLegalEntity)
Ils sont en fait identiques. La définition d'entité juridique de la licence Apache 2.0 est très standard dans divers types de contrats (de sorte qu'il serait surprenant qu'un tribunal n'interprète pas le terme de la même façon en l'absence d'une définition explicite). C'est aussi ce à quoi nous nous attendons quand ils examineront la GPLv3 et se demanderont qui doit être considéré comme destinataire de la licence.
- Dans la GPLv3, à quoi se réfère « le programme » ? Est-ce chaque programme publié sous la GPLv3 ? (#v3TheProgram)
Le terme « le programme » signifie une œuvre particulière qui est sous licence GPLv3 et qui a été reçue par un destinataire de licence particulier, de la part d'un donneur de licence ou d'un distributeur. Le programme est l'œuvre logicielle particulière que vous avez reçue en association avec cet acte particulier d'octroi de licence.
« Le programme » ne peut pas signifier « toutes les œuvres ayant jamais été placées sous la GPLv3 »; cette interprétation n'a pas de sens pour de nombreuses raisons. Nous avons publié une analyse du terme « le programme » pour ceux qui voudraient en apprendre plus sur ce sujet.
- Si je fais seulement des copies d'un programme couvert par la GPL et que je les exécute, sans les distribuer ni les transmettre à d'autres, que m'impose de faire la licence ? (#NoDistributionRequirements)
Rien. La GPL n'a pas de conditions pour cette activité.
- Si des logiciels clients d'un réseau sont publiés sous licence AGPLv3, doivent-ils être en mesure de fournir leur code source aux serveurs avec lesquels ils interagissent ? (#AGPLv3ServerAsUser)
Ceci ne devrait pas être requis pour une relation typique client-serveur. L'AGPLv3 requiert qu'un programme offre le code source à « tous les utilisateurs qui interagissent avec lui à distance via un réseau informatique ». Dans la plupart des architectures client-serveur, il ne serait tout simplement pas raisonnable de soutenir que l'opérateur du serveur est un « utilisateur » interagissant avec le client de quelque façon que ce soit.
Prenons HTTP comme exemple. Tous les clients HTTP attendent que les serveurs fournissent certaines fonctionnalités : ils peuvent envoyer des réponses spécifiées à des requêtes bien formées. L'inverse n'est pas vrai : les serveurs ne peuvent pas supposer que le client fera quelque chose de particulier avec les données qu'ils envoient. Le client peut être un navigateur web, un lecteur de flux RSS, un robot, un outil de supervision réseau ou un autre programme spécifique. Le serveur ne peut faire absolument aucune supposition sur ce que le client fera. Il n'y a donc aucune manière sensée d'assimiler l'opérateur du serveur à un utilisateur du logiciel.
- De quelle manière les différentes licences GNU sont-elles compatibles entre elles ? (#AllCompatibility)
Les diverses licences GNU sont pleinement compatibles entre elles. La seule fois où vous ne pourrez pas combiner de code sous deux de ces licences est quand vous voudrez utiliser du code couvert uniquement par une version plus ancienne de la licence, avec du code couvert par une version plus récente.
Vous trouverez ci-dessous une matrice de compatibilité détaillée des diverses combinaisons de licences GNU, qui constitue une référence facile à utiliser pour des cas spécifiques. Elle présume que quelqu'un d'autre a écrit du logiciel couvert par une de ces licences, et que vous voulez incorporer du code de ce logiciel dans un projet que vous publiez (soit de votre création, soit une version modifiée d'un logiciel de quelqu'un d'autre couvert par la GPL). Trouvez la licence pour votre propre travail dans une colonne au sommet du tableau, et la licence pour l'autre code dans une ligne sur la gauche. La cellule d'intersection vous dira si cette combinaison est permise ou pas.
Quand nous disons « copier du code », nous voulons seulement dire que vous prenez une section du code, avec ou sans modification et que vous l'insérez dans votre propre programme, formant par conséquent une œuvre basée sur la première section du code. « Utiliser une bibliothèque » signifie que vous ne copiez pas du code directement, mais que vous interagissez avec par une liaison, un import ou d'autres mécanismes typiques qui lient les sources ensemble quand vous compilez ou exécutez le code.
Sauter la matrice de compatibilité
Je veux publier un projet sous : GPLv2 seulement GPLv2 ou ultérieure GPLv3 ou ultérieure LGPLv2.1 seulement LGPLv2.1 ou ultérieure LGPLv3 ou ultérieure Je veux copier du code sous : GPLv2 seulement OK OK [2] NON OK : transférez le projet sous GPLv2 seulement [7] OK : transférez le projet sous GPLv2 seulement [7][2] NON GPLv2 ou ultérieure OK [1] OK OK OK : transférez le projet sous GPLv2 ou ultérieure [7] OK : transférez le projet sous GPLv2 ou ultérieure [7] OK : transférez le projet sous GPLv3 [8] GPLv3 NON OK : transférez le projet sous GPLv3 [3] OK OK : transférez le projet sous GPLv3 [7] OK : transférez le projet sous GPLv3 [7] OK : transférez le projet sous GPLv3 [8] LGPLv2.1 seulement OK : transférez le code sous GPLv2 [7] OK : transférez le code sous GPLv2 ou ultérieure [7] OK : transférez le code sous GPLv3 [7] OK OK [6] OK : transférez le code sous GPLv3 [7][8] LGPLv2.1 ou ultérieure OK : transférez le code sous GPLv2 [7][1] OK : transférez le code sous GPLv2 ou ultérieure [7] OK : transférez le code sous GPLv3 [7] OK [5] OK OK LGPLv3 NON OK : transférez le projet et le code sous GPLv3 [8][3] OK : transférez le code sous GPLv3 [8] OK : transférez le projet et le code sous GPLv3 [8][3] OK : transférez le projet sous LGPLv3 [4] OK Je veux utiliser une bibliothèque sous : GPLv2 seulement OK OK [2] NON OK : transférez le projet sous GPLv2 seulement [7] OK : transférez le projet sous GPLv2 seulement [7][2] NON GPLv2 ou ultérieure OK [1] OK OK OK : transférez le projet sous GPLv2 ou ultérieure [7] OK : transférez le projet sous GPLv2 ou ultérieure [7] OK : transférez le projet sous GPLv3 [8] GPLv3 NON OK : transférez le projet sous GPLv3 [3] OK OK : transférez le projet sous GPLv3 [7] OK : transférez le projet sous GPLv3 [7] OK : transférez le projet sous GPLv3 [8] LGPLv2.1 seulement OK OK OK OK OK OK LGPLv2.1 ou ultérieure OK OK OK OK OK OK LGPLv3 NON OK : transférez le projet sous GPLv3 [8] OK OK OK OK 1 : Dans ce cas, vous devez suivre les termes de la GPLv2 en incorporant le code. Vous ne pouvez pas tirer avantage des termes des versions ultérieures de la GPL.
2 : Alors que dans ce cas vous pouvez rendre disponible votre projet (que ce soit votre œuvre originale ou une œuvre que vous avez reçue et modifiée) sous la GPLv2 ou version ultérieure, notez que l'autre code que vous utilisez doit rester sous GPLv2 seulement. Tant que votre projet dépend de ce code, vous ne serez pas en mesure de faire passer votre projet sous GPLv3 ou ultérieure, et l'œuvre dans son ensemble (toute combinaison de votre projet avec l'autre code) ne pourra être transférée que sous les termes de la GPLv2.
3 : Si vous avez la possibilité de publier le projet sous GPLv2 ou toute version plus récente, vous pouvez choisir de la publier sous GPLv3 ou toute version plus récente ; et dès que vous aurez fait cela, vous pourrez incorporer le code publié sous GPLv3.
4 : Si vous avez la possibilité de publier le projet sous LGPLv2.1 ou toute version plus récente, vous pouvez choisir de le publier sous LGPLv3 ou toute version plus récente ; et dès que vous aurez fait cela, vous pourrez incorporer du code publié sous LGPLv3.
5 : Vous devez respecter les termes de la LGPLv2.1 en incorporant le code dans ce cas-là. Vous ne pouvez pas tirer avantage des termes des versions plus récentes de la LGPL.
6 : Si vous faites cela, tant que le projet contient du code publié sous LGPLv2.1 seulement, vous ne pourrez pas mettre à jour la licence du projet vers la LGPLv3 ou ultérieure.
7 : La LGPLv2.1 vous donne la permission de placer le code sous toute version de la GPL depuis la GPLv2, en tant que nouvelle licence. Dans ce cas, si vous pouvez basculer le code sous LGPL pour utiliser une version appropriée de la GPL à la place (comme noté dans le tableau), vous pouvez faire cette combinaison.
8 : La LGPLv3 vous donne la permission de placer le code sous GPLv3 en tant que nouvelle licence. Dans ces cas, vous pouvez combiner le code si vous convertissez le code sous LGPL vers la GPLv3.
9 : Parce que la GPLv2 ne permet pas les combinaisons avec la LGPLv3, vous devez dans ce cas transférer le projet sous les termes de la GPLv3 puisqu'elle permet cette combinaison.
- Autre traduction de proprietary :
propriétaire. ↑
-
Traduction :
Cependant, à titre d'exception spéciale, le code source distribué n'a pas besoin d'inclure quoi que ce soit qui ne soit normalement distribué (sous forme de source ou de binaire) avec les composants majeurs (compilateur, noyau, etc.) du système d'exploitation sur lequel fonctionne l'exécutable, à moins que ce composant n'accompagne l'exécutable. ↑ -
Traduction :
Copyright (C) [années] [nom du détenteur du copyright]
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 3 de la licence, soit (comme vous le souhaitez) toute version ultérieure.
Ce programme est distribué dans l'espoir qu'il sera utile, mais SANS LA MOINDRE GARANTIE ; pas même la garantie implicite de COMMERCIABILITÉ ou d'ADÉQUATION à UN BUT PARTICULIER. Voir la GNU General Public License pour plus de détails. Vous devriez avoir reçu une copie de la GNU General Public License en même temps que ce programme ; si ce n'est pas le cas, consultez <http://www.gnu.org/licenses>.
Permission supplémentaire de la GNU GPL version 3 section 7
Si vous modifiez ce programme, ou toute œuvre couverte, en le liant ou en le combinant avec [nom de la bibliothèque] (ou une version modifiée de cette bibliothèque), contenant des parties couvertes par les termes de [nom de la licence de la bibliothèque], les donneurs de licence de ce programme vous donnent une permission supplémentaire de transmettre le travail résultant. {Le source correspondant à une forme non source d'une telle combinaison devra inclure le code source pour les parties de [nom de la bibliothèque] utilisées ainsi que celui de l'œuvre couverte}. ↑
-
Traduction :
Ce programme est un logiciel libre ; vous pouvez le redistribuer et/ou le modifier selon les termes de la GNU General Public License (licence publique générale GNU) telle qu'elle a été publiée par la Free Software Foundation ; soit la version 2 de la licence, soit (comme vous le souhaitez) toute version ultérieure.
Lier [nom de votre programme] statiquement ou dynamiquement avec d'autres modules en fait une œuvre combinée basée sur [nom de votre programme]. Par conséquent, les termes et conditions de la licence publique générale GNU couvrent la totalité de la combinaison.
De plus, à titre exceptionnel, les détenteurs du copyright de [nom de votre programme] vous donnent l'autorisation de combiner [nom de votre programme] avec des logiciels libres ou des bibliothèques couvertes par la LGNU GPL et avec du code inclus dans la version standard de [nom de la bibliothèque] sous la licence [nom de la licence de la bibliothèque] (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 [nom de votre programme] et des licences de l'autre code concerné{, pourvu qu'y soit inclus le code source de l'autre code, car la GNU GPL nécessite la distribution du code source}.
Veuillez remarquer que les personnes qui font des versions modifiées de [nom de votre programme] ne sont pas obligées d'accorder cette exception particulière pour leurs versions modifiées ; ils leur appartient de le faire ou non. La licence publique générale GNU donne la permission de publier une version modifiée sans cette exception ; cette exception rend également possible de publier une version modifiée qui perpétue cette exception. ↑ - La notion de fair use (lit. « usage
raisonnable ») est déterminée 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. ↑
-
Traduction :
Vous ne pouvez pas imposer de restriction supplémentaire aux destinataires des droits accordés ici. ↑ -
Traduction :
Lier ABC statiquement ou dynamiquement avec d'autres modules en fait un travail combiné basé sur ABC. Par conséquent, les termes et conditions de la licence publique générale GNU couvrent la totalité du programme.
À titre exceptionnel, les détenteurs du copyright de ABC vous donnent la permission de combiner ABC avec des logiciels libres ou des bibliothèques couvertes par la LGNU GPL et avec des modules indépendants qui communiquent avec ABC seulement à partir de l'interface ABCDEF. Vous pouvez copier et distribuer un tel système en suivant les termes de la GNU GPL pour ABC et les licences de l'autre code concerné pourvu qu'y soit inclus le code source de cet autre code, car la GNU GPL nécessite de distribuer le code source.
Notez que les personnes qui font des versions modifiées de ABC ne sont pas obligées d'accorder cette exception particulière pour leurs versions modifiées ; il leur appartient de le faire ou non. La licence publique générale GNU donne la permission de publier une version modifiée sans cette exception ; cette exception rend également possible de publier une version modifiée qui perpétue cette exception. ↑ -
Traduction :
À titre d'exception spéciale, si vous créez un document qui utilise cette police, ou intégrez cette police ou des parties inaltérées de cette police dans le document, cette police n'implique pas en soi que le document résultant soit couvert par la licence publique générale GNU. Cette exception n'empêche pas cependant que le document soit, pour d'autres raisons, couvert par la licence publique générale GNU. Si vous modifiez cette police, vous pouvez étendre ce droit à votre version de la police, mais vous n'y êtes pas obligé. Si vous ne le souhaitez pas, supprimez cette clause de votre version. ↑ - Traduction :
En tant qu'exception spéciale à la GPL, tout fichier HTML faisant essentiellement des appels de fonction à ce code et qui pour ce faire l'inclut par référence, devra être considéré comme une œuvre séparée pour la loi sur le copyright. De plus, les détenteurs du copyright sur ce code vous donnent l'autorisation de combiner ce code avec des bibliothèques de logiciels libres publiées sous la GNU LGPL. Vous pouvez copier et distribuer un tel système suivant les termes de la GNU GPL pour ce code et ceux de la LGPL pour les bibliothèques. Si vous modifiez ce code, vous pouvez étendre cette exception à votre version du code, mais vous n'y êtes pas obligé. Si vous ne souhaitez pas le faire, supprimez cette déclaration d'exception de votre version. ↑
