[Traduit de l'anglais]

Foire aux questions sur les licences GNU

Table des matières


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

Compréhension générale des licences GNU

Utiliser les licences GNU pour vos programmes

Distribution de programmes régis par les licences GNU

Utiliser des programmes sous licences GNU pour écrire d'autres programmes

Combiner un travail avec du code sous licence GNU

Questions sur les violations des licences GNU


Que veut dire « GPL » ? (#WhatDoesGPLStandFor)

« GPL » veut dire General Public License (licence publique générale). La plus répandue des licences de ce type est la licence publique générale GNU, ou GNU GPL pour faire court. On peut raccourcir encore plus en « GPL », s'il est entendu qu'il s'agit de la GNU GPL.

Est-ce que « logiciel libre » signifie utilisation de la GPL ? (#DoesFreeSoftwareMeanUsingTheGPL)

Absolument pas ; il y a beaucoup d'autres licences de logiciel libre. En voici une liste incomplète. Toute licence qui donne à 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 publiées soient du logiciel libre. Cela signifie que vous pouvez éviter le risque d'avoir à entrer en concurrence avec une version modifiée privatrice de votre propre travail. Cependant, dans certaines situations il peut être préférable d'utiliser une licence plus permissive.

Est-ce que tous les logiciels GNU utilisent la GNU GPL comme licence ? (#DoesAllGNUSoftwareUseTheGNUGPLAsItsLicense)

La plupart des logiciels GNU utilisent la GNU GPL, mais il existe un petit nombre de programmes (et portions de programmes) GNU qui utilisent des licences moins restrictives, telles que la GPL amoindrie. 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 la GNU GPL mais ça n'en fait pas un logiciel GNU.

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

Que dois-je faire si je découvre une violation potentielle de la GPL ? (#ReportingViolation)

Vous devez la signaler. Tout d'abord, vérifiez les faits du mieux que vous pouvez. Puis signalez-les à l'éditeur ou au titulaire du copyright du programme en question régi par la GPL. Si c'est la Free Software Foundation, écrivez à <license-violation@gnu.org>. Sinon, le mainteneur du programme pourrait en détenir le copyright, ou pourrait vous dire comment contacter le titulaire du copyright ; donc signalez-les au mainteneur.

Pourquoi la GPL permet-elle aux utilisateurs de publier leurs 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 correctifs et améliorations avec d'autres.

Certains ont proposé des alternatives à la GPL qui obligent la version modifiée à passer par l'auteur original. Tant que ce dernier assure la maintenance nécessaire, ceci peut fonctionner en pratique, mais si l'auteur cesse (plus ou moins) de le faire pour passer à autre chose, ou bien ne répond pas à tous les besoins des utilisateurs, l'échafaudage s'écroule. Mis à part les 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 hors du cadre du projet GNU, mais les utilisateurs peuvent les différencier. La GPL exige que l'auteur d'une version mette son nom dessus, pour la distinguer des autres versions et protéger la réputation des autres mainteneurs.

La GPL exige-t-elle que le code source des versions modifiées soit porté à la connaissance du public ? (#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 aux entreprises) ; une organisation peut réaliser une version modifiée et l'utiliser en interne sans jamais la diffuser à l'extérieur.

Mais si vous distribuez la version modifiée au public de quelque manière que ce soit, la GPL vous oblige à mettre la version modifiée du code source à disposition des utilisateurs, sous GPL.

Ainsi, la GPL donne la permission de distribuer des programmes modifiés à certaines conditions et non autrement ; mais la décision de les distribuer vous regarde.

Puis-je avoir un programme régi par la GPL et un programme non libre indépendant sur le même ordinateur ? (#GPLAndNonfreeOnSameMachine)

Oui.

Si je sais que quelqu'un a un exemplaire d'un programme régi par la GPL, puis-je exiger qu'on m'en donne une copie ? (#CanIDemandACopy)

Non. La GPL donne à chacun la permission de copier le programme et de redistribuer les copies s'il choisit de le faire et quand il choisit de le faire. Il a également le droit de ne pas choisir de redistribuer le programme.

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 est en droit de les recevoir.

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

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

La GPLv2 dit que si l'on publie des versions modifiées, on doit « concéder une licence… à tous les tiers » (licensed… to all third parties). Qui sont ces tiers ? (#TheGPLSaysModifiedVersions)

D'après l'article 2, les versions modifiées que vous distribuez doivent être licenciées à tous les tiers aux termes de la GPL. « À tous les tiers » signifie absolument tout le monde, mais ça ne vous oblige pas à faire quelque chose physiquement pour ces personnes. Cela veut simplement dire qu'elles ont obtenu une licence de votre part, aux termes de la GPL, pour votre version.

Suis-je obligé de revendiquer un copyright sur les modifications que j'apporte à un programme régi par la GPL ? (#RequiredToClaimCopyright)

Vous n'êtes pas obligé de revendiquer un copyright sur vos modifications. Dans la plupart des pays, cependant, ce copyright vous est attribué par défaut, automatiquement. Par conséquent, si vous ne voulez pas que vos modifications soient sous copyright, vous devrez les mettre dans le domaine public de manière explicite. a

Que vous revendiquiez ou non un copyright sur vos modifications, vous devrez publier la version modifiée, en entier, sous la GPL (si vous la publiez).

Que dit la GPL sur la traduction d'un morceau de code dans un autre langage de programmation ? (#TranslateCode)

D'après le droit du copyright, la traduction d'une œuvre constitue un type de modification. Donc ce que dit la GPL des versions modifiées s'applique aussi aux versions traduites. La traduction d'un programme est couverte par le copyright de l'original.

Si le programme original porte une licence libre, cette licence donne la permission de le traduire, et détermine la manière dont vous pouvez utiliser et mettre sous licence le programme traduit. Si le programme original est régi par certaines versions de la GNU GPL, le programme traduit doit être régi par les mêmes versions.

Si un programme combine du code du domaine public et du code régi par la GPL, puis-je prendre le code appartenant au domaine public et l'utiliser comme tel ? (#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 quel que soit le contexte où il se trouve.

Est-ce que la GPL m'autorise à faire payer des exemplaires de mon programme ? (#DoesTheGPLAllowMoney)

Oui, la GPL autorise cela pour tout le monde. Le droit de vendre des copies fait partie de la définition du logiciel libre. À part dans un cas, il n'y a pas de limite au prix que vous pouvez demander (cette unique exception est l'offre écrite de code source qui doit obligatoirement accompagner toute publication de binaires seuls).

La GPL me permet-elle de réclamer une redevance pour le téléchargement d'un programme sur mon site de distribution ? (#DoesTheGPLAllowDownloadFee)

Oui. Vous pouvez demander le montant que vous souhaitez pour distribuer une copie du programme. Selon les termes de la GPLv2, si vous distribuez des exécutables en téléchargement, vous devez fournir un « accès équivalent » pour le téléchargement des sources ; par conséquent, vous ne pouvez pas demander une somme plus importante pour télécharger les sources que pour télécharger les exécutables. Si les exécutables sont distribués sous la GPLv3, vous devez offrir un accès équivalent au code source, de la même façon et au même endroit, sans frais supplémentaires.

Est-ce que la GPL m'autorise à exiger que quiconque reçoit le logiciel m'en informe ou me verse une redevance ? (#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 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 ; par conséquent elle permet l'utilisation et même la redistribution du logiciel sans que l'on ait à payer de redevance à quiconque pour cela.

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

Si je distribue un programme régi par la GPL contre redevance, suis-je obligé de le mettre aussi à disposition du public gratuitement ? (#DoesTheGPLRequireAvailabilityToPublic)

Non. Cependant, si quelqu'un vous paie une redevance pour obtenir une copie, la GPL lui donne la liberté de la mettre à disposition du public, avec ou sans redevance. Par exemple, quelqu'un pourrait payer ce que vous demandez, puis mettre sa copie sur un site web destiné au grand public.

La GPL me permet-elle de distribuer une copie sous accord de non-divulgation ? (#DoesTheGPLAllowNDA)

Non. La GPL dit que toute personne recevant un exemplaire de votre part a le droit d'en redistribuer des copies, modifiées ou non. Vous n'avez pas le droit de distribuer la création dont il s'agit avec des restrictions supplémentaires.

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

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

La GPL me permet-elle de distribuer une version modifiée ou beta sous accord de non-divulgation ? (#DoesTheGPLAllowModNDA)

Non. La GPL dit que vos versions modifiées doivent comporter toutes les libertés spécifiées dans la GPL. Par conséquent, quiconque reçoit de votre part un exemplaire de votre version a le droit d'en redistribuer des copies (modifiées ou non). Vous ne pouvez distribuer aucune version de la création dont il s'agit 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 régi par la GPL n'est distribué sous accord de non-divulgation.

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

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

Je veux que mon travail soit reconnu. Je veux que les gens sachent ce que j'ai écrit. Peut-on encore me donner crédit si j'utilise la GPL ? (#IWantCredit)

Votre travail peut sans aucun doute être reconnu. La distribution d'un programme sous GPL implique la rédaction d'un avis de copyright à votre nom (à supposer que vous déteniez ce copyright). La GPL exige que chaque copie porte un avis de copyright approprié.

Est-ce que la GPL m'autorise à ajouter des clauses exigeant une citation ou un remerciement dans les articles scientifiques qui utilisent un logiciel régi par la GPL ou les données produites par un tel logiciel ? (#RequireCitation)

Non, ce n'est pas permis par les termes de la GPL. Tout en reconnaissant qu'une citation correcte est une part importante de toute publication académique, nous ne pouvons pas ajouter à la GPL de clause qui rende ceci obligatoire. Exiger une citation dans les articles scientifiques qui font usage de logiciel sous GPL va au-delà de ce qui serait considéré comme une condition additionnelle acceptable selon l'article 7(b) de la GPL. Et le droit du copyright ne vous permet pas de soumettre les données produites par le logiciel à une telle exigence, que ce logiciel soit régi par la GPL ou par une autre licence.

Pourquoi la GPL exige-t-elle d'inclure une copie de la GPL dans chaque copie du programme ? (#WhyMustIInclude)

Le fait d'inclure une copie de la licence dans le programme est vital ; ainsi tous ceux qui reçoivent une copie du programme sont en mesure de connaître leurs droits.

Il peut paraître tentant d'inclure une URL qui pointe vers cette licence, au lieu de la licence elle-même. Mais vous ne pouvez pas être sûr que cette URL sera toujours valable dans cinq ou dix ans. Dans vingt ans, les URL que nous connaissons aujourd'hui n'existeront peut-être plus.

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

Puis-je me contenter de mettre une copie de la GNU GPL dans mon dépôt ? (#LicenseCopyOnly)

Se contenter de mettre un fichier avec une copie de la GNU GPL dans votre dépôt ne revient pas à déclarer explicitement que le code de ce dépôt peut être utilisé sous les conditions de la GNU GPL. Sans cette déclaration, il n'est pas complètement évident que les permissions données par la licence s'appliquent vraiment à tel ou tel fichier source. Il n'y aura plus aucun doute si c'est dit explicitement.

Un fichier ne contenant que la licence, sans une déclaration disant que certains autres fichiers sont couverts par cette licence, ressemble à un fichier ne contenant qu'un sous-programme qui n'est jamais appelé de nulle part. La ressemblance n'est pas parfaite : les avocats et les tribunaux pourraient se servir de leur sens commun et conclure que si vous avez mis une copie de la GNU GPL à cet endroit, c'est que vous deviez avoir l'intention de placer le code sous cette licence ; mais leur conclusion pourrait être différente. Pourquoi laisser planer une incertitude ?

Cette déclaration doit apparaître dans chaque fichier source. Du point de vue juridique, une déclaration claire dans le fichier LISEZ-MOI (README) du programme est suffisante, dans la mesure où ce fichier accompagne le code ; mais il pourrait facilement arriver qu'ils soient séparés. Pourquoi risquer une incertitude sur la licence de votre code ?

Ceci n'a rien à voir avec les particularités de la GNU GPL. C'est vrai de n'importe quelle licence libre.

Pourquoi dois-je mettre un avis de licence dans chaque fichier source ? (#NoticeInSourceFile)

Vous devez mettre au début de chaque fichier source un avis précisant par quelle licence il est régi, de manière à éviter le risque de voir le code déconnecté de sa licence. Si le fichier LISEZ-MOI de votre dépôt dit que le fichier source est sous la GNU GPL, qu'est-ce qui se passera si quelqu'un copie le fichier dans un autre programme ? Dans cet autre contexte, la licence du fichier ne sera peut-être pas apparente. Il pourrait avoir l'air de porter une autre licence, ou pas de licence du tout, ce qui le rendrait non libre.

Il est facile d'ajouter un avis de copyright et un avis de licence au début de chaque fichier source ; cela rend improbable qu'il y ait confusion.

Ceci n'a rien à voir avec les particularités de la GNU GPL. C'est vrai de n'importe quelle licence libre.

Et si mon programme n'est pas très long ? (#WhatIfWorkIsShort)

Si un paquet logiciel complet contient très peu de code – moins de 300 lignes selon notre critère – vous pouvez aussi bien le mettre sous une licence permissive (laxiste) plutôt que sous une licence à copyleft comme la GNU GPL (sauf, bien sûr, si le code est particulièrement important). Nous recommandons la licence Apache 2.0 pour ce genre de cas.

Puis-je ôter le préambule de la GPL, ou la section « Comment appliquer ces stipulations à vos nouveaux programmes », pour économiser de l'espace ? (#GPLOmitPreamble)

Le préambule et les instructions font partie intégrante de la GNU GPL et ne peuvent être supprimés. 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 mots, moins d'1/5 de la taille totale de la GPL. Ils ne constitueront pas un changement relatif important de la taille du logiciel, à moins que ce dernier ne soit lui-même vraiment petit. Dans ce cas, vous pourriez aussi bien utiliser une licence simple totalement permissive plutôt que la GNU GPL.

Qu'entendez-vous par « deux licences compatibles » ? (#WhatIsCompatible)

Pour combiner deux programmes (ou des parties importantes de ceux-ci) dans une « création plus vaste », vous devez avoir la permission d'utiliser les deux programmes de cette manière. Si les licences des deux programmes le permettent, elles sont compatibles. S'il n'y a aucun moyen de satisfaire les deux licences en même temps, elles sont incompatibles.

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

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 création plus vaste.

Que veut dire « licence compatible avec la GPL » ? (#WhatDoesCompatMean)

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

Toutes les versions de la GNU GPL autorisent de telles combinaisons en privé ; elles autorisent aussi la distribution de ces combinaisons à condition que la combinaison soit publiée sous la même version de la 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 additionnelles qui ne sont pas dans la GPLv3 elle-même. L'article 7 donne un supplément d'information à ce sujet, en particulier la liste des conditions additionnelles 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.

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

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

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

Puis-je lier un programme sous GPL avec une bibliothèque système privatrice ? (#SystemLibraryException)

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 ; l'obligation de distribuer le code source de tout le programme n'inclut pas ces bibliothèques, même si vous distribuez un exécutable lié qui les contient.

Les critères définissant une « bibliothèque système » varient selon les versions de la GPL. La GPLv3 définit explicitement les « Bibliothèques Système » dans l'article 1, pour les exclure de la définition de la « Source Correspondante » ; la GPLv2 traite la question un peu différemment, vers la fin de l'article 3.

De quelles manières puis-je lier ou combiner du code sous AGPLv3 et du code sous GPLv3 ? (#AGPLGPL)

Chacune de ces licences permet explicitement de lier du code régi par l'autre licence. Vous pouvez toujours lier des modules sous GPLv3 avec des modules sous AGPLv3 et inversement. C'est vrai même si certains de ces modules sont des bibliothèques.

Quels problèmes juridiques puis-je rencontrer si mon logiciel sous GPL dépend de bibliothèques incompatibles avec la GPL ? (#GPLIncompatibleLibs)

Si vous voulez que votre programme soit lié à une bibliothèque non régie par l'exception des bibliothèques système, vous devez donner la permission de le faire. Vous trouverez plus loin deux exemples d'avis 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 titulaires du copyright sur le programme peuvent légalement publier leur logiciel sous ces termes. Si vous avez écrit tout le programme vous-même (à condition que votre employeur ou votre école ne revendique pas le copyright), vous en êtes le titulaire ; vous pouvez donc autoriser cette exception. Mais si vous voulez utiliser dans votre code des parties de programmes sous GPL d'autres auteurs, vous ne pouvez pas autoriser l'exception pour eux. Vous devez obtenir l'accord des titulaires des copyrights sur ces programmes.

Quand d'autres personnes modifient le programme, elles ne sont pas obligées de mettre en place la même exception pour leur code ; elles ont le choix de le faire ou non.

Si les bibliothèques que vous projetez de lier ne sont pas libres, veuillez également consulter la question 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 additionnelle selon l'article 7. L'avis de licence suivant le fait. Vous devez remplacer tout le texte entre crochets par le texte approprié à votre programme. Si tout le monde ne peut pas distribuer le code source des 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 <https://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.} b

Si vous utilisez la GPLv2, vous pouvez ajouter votre propre exception aux termes de la licence. C'est ce que fait l'avis de licence suivant. Là encore, vous devez remplacer tout le texte entre crochets avec le texte approprié à votre programme. Si tout le monde ne peut pas distribuer le code source des 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 <https://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. c

Comment obtenir un copyright sur mon programme de façon à le distribuer sous GPL ? (#HowIGetCopyright)

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 création.

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

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

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

Et si mon école décidait de mettre mon programme dans son propre logiciel privateur ?d (#WhatIfSchool)

De nombreuses universités essaient aujourd'hui d'attirer des fonds en restreignant l'utilisation des connaissances et de l'information qu'elles développent, se comportant en cela de manière peu différente des entreprises commerciales (voir dans « The Kept University », Atlantic Monthly, mars 2000, une discussion générale de ce problème et de ses effets).

Si vous pensez que votre école risque de refuser la publication de votre programme comme logiciel libre, il vaut mieux soulever le problème le plus tôt possible. Plus le programme sera proche d'être fonctionnel 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 vous rapprocher de l'administration quand le programme n'est encore qu'à moitié fini, en disant : « Si vous me laissez le publier sous licence libre, je le termine. » Ne considérez pas ça comme du bluff. Pour que votre point de vue prévale, vous devez avoir le courage de dire : « Mon programme sera libre, ou ne sera pas. »

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

Allez voir le mode d'emploi de la GPL.

J'ai entendu parler de quelqu'un qui a obtenu une copie d'un programme régi par la GPL, sous une autre licence. Cela est-il possible ? (#HeardOtherLicense)

La GNU GPL ne donne pas le droit aux utilisateurs d'attacher d'autres licences au programme. Mais le titulaire du copyright sur un programme peut le publier sous différentes licences en parallèle. L'une d'entre elles peut être la GNU GPL.

La licence qui se trouve dans votre copie est celle qui s'applique, à supposer qu'elle ait été mise là par le titulaire du copyright et que vous ayez acquis cette copie de façon légitime.

Je voudrais publier sous GNU GPL un programme que j'ai écrit, mais j'aimerais utiliser le même code dans un programme non libre. (#ReleaseUnderGPLAndNF)

Il est toujours éthiquement discutable de publier un logiciel non libre, mais il n'y a pas d'obstacle juridique à ce que vous agissiez ainsi. Si vous détenez le copyright sur ce code, vous pouvez le publier sous différentes licences non exclusives à différents moments.

Est-ce que le développeur d'un programme régi par la GPL est lié par cette licence ? Est-ce que les actions du développeur pourraient un jour violer la GPL ? (#DeveloperViolate)

En toute rigueur, la GPL est une licence de la part du développeur à l'intention des tiers qui voudraient utiliser, distribuer ou modifier le programme. Le développeur lui-même n'est pas lié par la licence ; donc, quoi qu'il fasse, 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 GPL et que ce droit ne peut lui être retiré.

Puis-je utiliser des éditeurs sous GPL comme GNU Emacs pour développer des programmes non libres ? Puis-je utiliser des outils sous GPL comme GCC pour les compiler ? (#CanIUseGPLToolsForNF)

Oui, parce que le copyright sur l'éditeur de texte ou les outils ne couvre pas le code que vous écrivez. Du point de vue juridique, leur utilisation n'impose pas de restriction à la licence que vous appliquez à votre code.

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

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

Ai-je des droits de fair use e pour l'utilisation du code source d'un programme régi 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 des développeurs, vous pouvez utiliser ce code quoiqu'ils en aient dit – dans la licence ou ailleurs, que cette licence soit la GNU GPL ou toute autre licence de logiciel libre.

Notez cependant qu'il n'existe pas de principe universel de fair use ; les types d'utilisation relevant du fair use varient selon les pays.

Le gouvernement américain peut-il publier un programme sous la GNU GPL ? (#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é sous GPL (cela reste un logiciel libre cependant ; un programme du domaine public est libre).

Toutefois, quand une agence du gouvernement fédéral américain utilise des sous-traitants pour développer un logiciel, c'est une situation différente. Le contrat peut exiger que le sous-traitant le publie sous la GNU GPL (GNU Ada a été développé de cette façon). Ou bien un contrat peut attribuer le copyright à l'agence fédérale, qui peut alors publier le logiciel sous la GNU GPL.

Le gouvernement américain peut-il publier des améliorations apportées à un programme régi par la GPL ? (#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 régie par la GNU GPL. Il n'y a pas de problème dans ce cas.

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

La GPL a-t-elle des exigences différentes concernant les modules liés à une création qu'elle régit, selon que la liaison est statique ou dynamique ? (#GPLStaticVsDynamic)

Non. Lier une création régie par la GPL avec d'autres modules, que ce soit de manière statique ou dynamique, revient à faire une création combinée basée sur la création régie par la GPL. Donc les termes et conditions de la licence publique générale GNU s'appliquent à l'ensemble de la combinaison. Voir également Quels problèmes juridiques puis-je rencontrer si mon logiciel sous GPL dépend de bibliothèques incompatibles avec la GPL ?

La LGPL a-t-elle des exigences différentes concernant les modules liés à une création qu'elle régit, selon que la liaison est statique ou dynamique ? (#LGPLStaticVsDynamic)

Pour vous mettre en conformité avec la LGPL (quel que soit le numéro de version : v2, v2.1 ou v3) :

(1) si vous faites un lien statique avec une bibliothèque sous LGPL, vous devez aussi proposer votre application dans un format objet (pas nécessairement source), de manière que l'utilisateur ait la possibilité de modifier la bibliothèque et d'éditer le lien avec l'application ;

(2) si vous faites un lien dynamique avec une bibliothèque sous LGPL déjà présente sur l'ordinateur de l'utilisateur, vous n'avez pas besoin de transmettre les sources de la bibliothèque. Si en revanche vous transmettez vous-même avec votre application la bibliothèque exécutable régie par la LGPL, que le lien soit statique ou dynamique, vous devez aussi transmettre les sources de la bibliothèque par un des moyens préconisés par la LGPL.

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 plans de composants matériels, puis-je exiger que ces plans soient libres ? (#GPLOutput)

En général, ceci est juridiquement impossible ; la législation du copyright ne vous donne aucun droit de regard sur l'utilisation du résultat obtenu par les gens qui ont fourni leurs données à votre programme. Si l'utilisateur se sert de votre programme pour saisir ou convertir ses propres données, c'est à lui et non à vous qu'appartient le copyright sur le produit obtenu. Plus généralement, quand un programme met les données qu'il reçoit sous une forme différente, le résultat hérite du statut de copyright des données ayant servi à le générer.

Par conséquent, le seul moyen pour que vous ayez des droits sur le résultat est que des parties substantielles de ce résultat soient copiées (plus ou moins) à partir du texte présent dans votre programme. Par exemple, une partie du résultat produit par Bison (voir ci-dessus) serait régie par la GNU GPL si nous n'avions créé une exception pour ce cas particulier.

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

Dans quels cas le résultat produit par un programme sous GPL est-il, lui aussi, régi par la GPL ? (#WhatCaseIsOutputGPL)

Le résultat de l'exécution d'un programme n'est pas, en général, sous le même copyright que le code du programme. Par conséquent, la licence du code ne s'applique pas au résultat, que vous l'envoyiez dans un fichier par un tube, ou que vous fassiez une copie d'écran, une vidéographie ou une vidéo.

Il peut y avoir une exception quand le programme affiche une pleine page de texte ou de graphisme qui provient du programme. Dans ce cas, le résultat a le même copyright que ce texte ou ce graphisme. L'exception s'appliquerait aussi aux programmes qui produisent de l'audio, tels les jeux vidéo.

Si le graphisme ou l'audio est sous GPL, alors la GPL s'applique lorsque vous le copiez, quelle que soit la méthode de copie. Cependant, le fair use peut encore s'appliquer.

Gardez à l'esprit que le graphisme ou l'audio contenu dans un programme sous GPL (typiquement un jeu vidéo) peut être régi par une licence différente. Si c'est le cas, la licence du graphisme ou de l'audio définit les termes sous lesquels on peut diffuser la vidéo ou le son. Allez voir également Puis-je utiliser la GPL pour autre chose que des logiciels ?

Si j'ajoute un module à un programme régi par la GPL, dois-je mettre mon module sous GPL ? (#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, publier votre module sous une licence plus laxiste que la GPL, mais qui soit compatible avec elle. Dans notre liste de licences, vous trouverez un inventaire partiel des licences compatibles avec la GPL.

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

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

Si un interpréteur de langage de programmation est publié sous GPL, cela veut-il dire que les programmes destinés à ê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. Pour lui, le programme interprété n'est qu'un ensemble de données ; une licence de logiciel libre comme la GPL, basée sur la législation du copyright, ne peut pas limiter la nature des données que vous fournissez à l'interpréteur. Vous pouvez l'exécuter sur n'importe quelles données (programme interprété) comme vous le souhaitez et vous n'avez aucune obligation de concéder une licence à quiconque pour ces données.

Cependant, lorsque l'interpréteur a des extensions qui lui ajoutent 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 publiés sous GPL, le programme interprété qui les utilise doit être publié d'une manière compatible avec la GPL. La JNI (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 aux 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 particulières, alors il doit aussi être publié de manière compatible avec la GPL.

Un autre cas similaire et très courant est la fourniture, avec l'interpréteur, de bibliothèques 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 dynamiquement.

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

J'écris une application Windows avec Microsoft Visual C++ et je prévois de la publier sous GPL. Est-il permis par la GPL de lier mon programme dynamiquement avec la bibliothèque d'exécution (runtime) de Visual C++ ? (#WindowsRuntimeAndGPL)

Vous pouvez lier votre programme à cette bibliothèque et distribuer le programme compilé à des tiers. Quand vous le faites, la bibliothèque d'exécution est une « bibliothèque système » selon la définition donnée par la GPLv3. Cela veut dire que vous n'avez pas à vous préoccuper d'inclure son code source dans la « source correspondante » du programme ». La GPLv2 comporte une exception similaire dans son article 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 programmes seraient « piégés » par Windows et donc représenteraient une contribution nulle au monde du libre.

Pourquoi la licence BSD d'origine 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. L'article 6 de la GPLv2 dit en effet ceci :

Vous ne pouvez imposer une quelconque limitation supplémentaire à l'exercice, par le destinataire, des droits octroyés au titre des présentes. f

La GPLv3 dit quelque chose de similaire dans son article 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.

Quand peut-on considérer un programme et ses greffons comme un programme combiné unique ? (#GPLPlugins)

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

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

Si j'écris un greffon pour un programme publié sous GPL, quelles contraintes cela impose-t-il aux licences qu'il m'est possible d'utiliser pour distribuer mon greffon ? (#GPLAndPlugins)

Reportez-vous à cette question pour savoir quand les greffons et le programme principal sont considérés comme un programme combiné unique et quand ils sont considérés comme des créations séparées.

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

Puis-je utiliser la GPL pour un greffon dans un programme non libre ? (#GPLPluginsInNF)

Reportez-vous à cette question pour savoir quand les greffons et le programme principal sont considérés comme un programme combiné unique et quand ils sont considérés comme des programmes séparées.

S'ils forment un programme combiné unique, cela signifie que la combinaison du greffon 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 à la licence du greffon une exception qui autorise sa liaison au programme principal non libre.

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

Puis-je faire un programme non libre conçu pour charger un greffon régi par la GPL ? (#NFUseGPLPlugins)

Reportez-vous à cette question pour savoir quand les greffons et le programme principal sont considérés comme un programme combiné unique et quand ils sont considérés comme des programmes séparées.

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

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

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

Vous avez mis sous GPL un programme que j'aimerais lier à mon code pour fabriquer un programme privateur. Le fait que j'établisse des liens avec votre programme implique-t-il que je mette 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 ? (#SwitchToLGPL)

Vous pouvez toujours demander, mais la plupart des auteurs persisteront à vous la refuser. L'idée même de la GPL est que, si vous voulez inclure notre code dans votre programme, ce dernier doit être également un logiciel libre. Le but est de vous inciter à distribuer votre programme de manière qu'il s'intègre à notre communauté.

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

La distribution d'un pilote non libre destiné à se lier au noyau Linux est-elle une violation de la GPL ? (#NonfreeDriverKernelLinux)

Linux (le noyau du système d'exploitation GNU/Linux) est distribué sous la version 2 de la GPL. La distribution d'un pilote non libre destiné à se lier au noyau Linux est-elle une violation de la GPL ?

Oui, c'est une violation, parce que cela crée de fait une combinaison plus étendue. Que l'utilisateur soit censé rassembler les morceaux ne change vraiment rien.

Chaque contributeur de Linux qui détient un copyright sur une partie importante du code peut faire respecter la GPL ; nous encourageons chacun d'eux à agir contre ceux qui distribuent des pilotes non libres pour Linux.

Comment puis-je autoriser la liaison de modules privateurs à ma bibliothèque sous GPL, mais uniquement dans une interface contrôlée ? (#LinkingOverControlledInterface)

Ajoutez ce texte à l'avis de licence de chaque fichier du paquet, à la fin du texte qui dit que le fichier est distribué sous la licence GNU GPL :

Linking ABC statically or dynamically with other modules is making a combined work based on ABC. Thus, the terms and conditions of the GNU General Public License cover the whole combination.

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 and provided that you do not modify the ABCDEF interface.

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. If you modify the ABCDEF interface, this exception does not apply to your modified version of ABC, and you must remove this exception when you distribute your modified version.

This exception is an additional permission under section 7 of the GNU General Public License, version 3 (“GPLv3”). g

Cette exception permet la liaison avec des modules régis par des licences différentes à travers l'interface spécifiée (ABCDEF), tout en garantissant que les utilisateurs continuent à disposer du code source comme ce serait normalement le cas sous la GPL.

Seuls les détenteurs du copyright sur le programme peuvent légalement autoriser cette exception. Si vous avez écrit tout le programme vous-même, c'est vous qui êtes détenteur du copyright, à supposer que ni votre employeur ni votre école ne le revendiquent ; vous pouvez alors autoriser cette exception. Mais si vous voulez utiliser dans votre code des parties d'autres programmes placés sous GPL par d'autres auteurs, vous ne pouvez pas autoriser cette exception à leur place. Vous devez obtenir l'accord des détenteurs du copyright sur ces programmes.

J'ai écrit une application qui se lie à une variété de composants régis par différentes licences. Je ne comprends vraiment pas bien quelles clauses des licences s'appliquent à mon programme. Pourriez-vous m'expliquer quelles licences je peux utiliser ? (#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 établir une liaison avec la bibliothèque FOO, qui est disponible sous GPL amoindrie.
  • 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 la liaison avec QUUX ».
Quelle est la différence entre un « agrégat » (aggregate) et d'autres types de « versions modifiées » ? (#MereAggregation)

Un « agrégat » est un ensemble de programmes séparés distribués sur le même CD-ROM ou autre média. La GPL vous permet de créer et de distribuer un agrégat, même si les licences des autres logiciels ne sont pas libres ou sont incompatibles avec la GPL. La seule restriction est que vous ne pouvez pas publier un agrégat sous une licence qui interdit aux utilisateurs d'exercer les droits que la licence individuelle de chaque programme leur octroierait.

Où est la limite entre deux programmes séparés et un programme en deux parties ? Il s'agit d'une question juridique qui sera tranchée en dernier recours par un juge. Nous pensons qu'un critère adapté tient compte à la fois des modes de communication (exec, tubes, RPC, appels 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 en liaison l'un avec l'autre dans un espace d'adressage partagé, cela signifie presque à coup sûr une combinaison en un seul programme.

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

Quand il s'agit de déterminer si deux morceaux de logiciel forment une création unique, le fait que le code soit dans un ou plusieurs conteneurs a-t-il un effet quelconque ? (#AggregateContainers)

Non. L'analyse permettant de déterminer s'ils forment une création unique ou un agrégat est indépendante de la présence de conteneurs.

Pourquoi la FSF demande-t-elle aux personnes qui contribuent aux programmes sous copyright de la FSF de lui transférer leur copyright ? Si je détiens le copyright d'un programme sous GPL, est-ce que je dois 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 en poursuivant les contrevenants en justice, il valait mieux simplifier au maximum le statut du programme à l'égard du copyright. C'est ce que nous faisons en demandant à chaque contributeur, soit de transférer à la FSF les copyrights sur ses contributions, soit de les abandonner.

Nous demandons également aux contributeurs individuels d'obtenir une renonciation au copyright écrite par leur employeur (s'il existe), de manière à s'assurer que ce dernier ne pourra prétendre avoir des droits sur les éléments de contribution au projet.

Bien entendu, si tous les participants mettent leur code dans le domaine public, il n'y a plus de copyright permettant de faire appliquer la GPL. Aussi nous les encourageons à transférer à la FSF le copyright sur les contributions importantes sous forme de code et à ne mettre que les modifications mineures dans le domaine public.

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

Puis-je modifier la GPL et faire une licence modifiée ? (#ModifyGPL)

Il est possible de faire des versions modifiées de la GPL, mais il faut s'attendre à des conséquences pratiques.

Vous pouvez légalement utiliser les termes de la GPL (éventuellement modifiés) dans une autre licence, à condition de donner un autre nom à votre licence, de ne pas y inclure le préambule de la GPL, de modifier suffisamment les instructions d'utilisation de la fin pour que la formulation soit clairement différente et de ne pas mentionner GNU (bien que la procédure décrite puisse être similaire).

Si vous voulez utiliser notre préambule dans une licence modifiée, veuillez écrire à <licensing@gnu.org> pour obtenir une autorisation. Avant de vous la donner, nous voudrons vérifier les clauses effectives 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 des différentes licences de logiciel libre est un fardeau en soi.

Plutôt que de modifier la GPL, merci d'utiliser le mécanisme d'exception proposé par sa version 3.

Si j'utilise un 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 ces derniers 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 son « code source » – ce que la GPL définit par la forme privilégiée permettant d'y apporter des modifications.

Toutefois, pour les manuels (scolaires en particulier), et plus généralement pour tout ouvrage destiné à enseigner un sujet, nous vous recommandons d'utiliser la GNU FDL plutôt que 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 faire passer la version V2 à une licence autre que la 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. Je n'ai pas d'autorisation pour utiliser ce logiciel hormis celle que me donne la GPL. Puis-je le faire ? (#GPLInProprietarySystem)

Vous ne pouvez pas incorporer de logiciel régi par la GPL dans un système privateur. L'objectif de la GPL est d'accorder à tous la liberté de copier, redistribuer, comprendre et modifier un programme. Si vous pouviez incorporer des logiciels sous GPL dans un système non libre, cela aurait pour effet de rendre également non libres ces logiciels sous GPL.

Un système qui incorpore un programme régi par la GPL est une version étendue de ce programme. La GPL dit que toute version étendue du programme doit être distribuée sous GPL dès lors qu'elle est publié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 manière qu'ils forment de fait deux parties d'un même programme, alors vous ne pouvez pas les traiter comme des programmes séparés et La GPL doit régir l'ensemble.

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

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

L'utilisation sous GPL d'un certain programme GNU 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 projets logiciels privateurs contrecarrent plus qu'ils ne favorisent la cause de la liberté.

Il nous arrive de créer des exceptions de licence pour aider un projet de logiciel libre utilisant une autre licence que la GPL. Toutefois, il faut pour cela nous montrer une bonne raison que cela fasse avancer la cause du logiciel libre.

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

J'aimerais incorporer un logiciel régi par la GPL dans mon système privateur. Puis-je le faire en ajoutant un module « enveloppant », sous une licence permissive (laxiste) compatible avec la GPL (la licence X11, par exemple) entre la partie régie par la GPL et la partie privatrice ? (#GPLWrapper)

Non. La licence X11 est compatible avec la GPL, donc vous pouvez incorporer un module au programme régi par la GPL et le mettre sous licence X11. Mais si vous les incorporiez tous deux dans un programme plus grand, cet ensemble inclurait la partie régie par la GPL, donc cet ensemble devrait être sous la GNU GPL.

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

Où puis-je en apprendre plus sur l'exception de la bibliothèque d'exécution (runtime) de GCC ? (#LibGCCException)

L'exception de la bibliothèque d'exécution de GCC couvre libgcc, libstdc++, libfortran, libgomp, libdecnumber et 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 leur 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, reportez-vous à notre FAQ sur l'exception de la bibliothèque d'exécution de GCC.

J'aimerais modifier des programmes sous GPL et les lier avec les bibliothèques de portage de Pompe-À-Fric, S.A. Je ne peux pas distribuer le code source de ces bibliothèques, aussi tout utilisateur voulant modifier ces versions devrait se procurer ces bibliothèques séparément. 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 y faire passer un camion. 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 aux bibliothèques de Pompe-À-Fric ne seraient pas vraiment des logiciels libres au sens où nous l'entendons : elles ne comprendraient pas l'intégralité du code source qui permet aux utilisateurs de modifier et de recompiler le programme.

Si la licence d'un module Q a une condition incompatible avec la GPL, mais que cette condition s'applique uniquement lorsque Q est distribué seul et non lorsqu'il est distribué dans un programme plus grand, est-ce compatible avec la GPL ? Puis-je combiner ou lier Q avec un programme régi par la GPL ? (#GPLIncompatibleAlone)

Si un programme P est publié sous la GPL, cela signifie qu'il peut être utilisé sous la GPL, en totalité ou en partie, quelle que soit cette partie. 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 de ces parties est Q. Donc, publier P+Q sous la GPL signifie que Q (ou l'une de ses parties) peut être utilisé sous la GPL. En d'autres termes, un utilisateur qui obtient P+Q sous la GPL peut supprimer P de sorte que seul Q demeure, toujours sous la GPL.

Si la licence du module Q vous permet d'autoriser cela, alors elle est compatible avec la GPL. Sinon, elle est incompatible.

Si la licence de Q dit sans ambiguïté que vous devez faire certaines choses (incompatibles avec la GPL) quand vous redistribuez Q lui-même, alors cela ne vous permet pas de distribuer Q sous la GPL. Il s'ensuit que vous ne pouvez pas publier P+Q sous la GPL non plus. Donc vous ne pouvez pas lier ou combiner P avec Q.

Puis-je publier une version modifiée d'un programme régi par la GPL sous forme binaire uniquement ? (#ModifiedJustBinary)

Non. Tout le propos de la GPL est que chacune des versions modifiées doit être un logiciel libre, ce qui signifie en particulier que son code source doit être disponible pour les utilisateurs.

J'ai téléchargé uniquement le programme binaire à partir d'Internet. Si je distribue des copies, dois-je me procurer le code source et le redistribuer également ? (#UnchangedJustBinary)

Oui. En règle générale, si vous distribuez des binaires, vous devez aussi distribuer le code source complet correspondant. L'exception pour le cas où vous auriez reçu une offre écrite de code source est tout à fait limitée.

Je veux distribuer les binaires sur support physique sans les sources associées. Puis-je fournir le code source par FTP ? (#DistributeWithSourceOnInternet)

La version 3 de la GPL le permet ; consultez l'option 6(b) pour plus de détails. Sous la version 2, vous êtes tout à fait libre de proposer le code source par FTP et la plupart des utilisateurs l'obtiendront de cette manière. Cependant, si certains d'entre eux préfèrent le recevoir par la poste sur un support physique, vous devez le leur envoyer.

Si vous distribuez les binaires par FTP, vous devez distribuer les sources par FTP.

Mon ami a l'exécutable d'un programme sous GPL avec une offre de fourniture des sources et il en 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. L'article 6(d) autorise cela. Cependant, vous devez fournir des instructions claires que les gens puissent suivre pour obtenir le code source, et vous assurer que ce dernier 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 aux binaires. Le code source correspondant est celui à partir duquel l'utilisateur peut recompiler les même binaires.

Une partie du concept de logiciel libre est que les utilisateurs aient accès au code source pour les programmes qu'ils utilisent. Ceux qui utilisent votre version doivent avoir accès au code source de votre version.

Un des objectifs principaux 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 ne convient pas vraiment à la fourniture de code source.

Un utilisateur souhaitant récupérer le code source dans un an peut se trouver dans l'incapacité de se procurer la bonne version sur un autre site à ce moment-là. Le site de distribution standard peut avoir une version plus récente avec laquelle les différences en question ne fonctionneront pas.

Vous devez donc fournir le code source complet avec les binaires, pas seulement les différences.

Puis-je rendre les binaires disponibles sur un serveur réseau, mais envoyer les sources uniquement à ceux qui en font la demande ? (#AnonFTPAndSendSources)

Si vous rendez le code objet disponible sur un serveur réseau, vous devez également proposer la source correspondante sur un serveur réseau. Le plus simple est de les publier sur le même serveur, mais si vous préférez, vous pouvez expliquer comment récupérer le code source sur un autre serveur, ou même dans 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. Tout ceci est précisé dans l'article 6(d) de la GPLv3.

Les sources que vous fournissez doivent correspondre exactement aux binaires. Vous devez tout particulièrement vous assurer qu'elles appartiennent à la même version du programme et non à une version plus ancienne ou plus récente.

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.

La GPL exige-t-elle que je fournisse un code source à partir duquel on puisse construire un binaire de hash identique à celui que je distribue ? (#MustSourceBuildToMatchExactHashOfBinary)

« Source correspondante complète » désigne la source à partir de laquelle les binaires ont été produits, mais cela n'implique pas que vos outils doivent être capables de fabriquer un binaire ayant un hash identique à celui du binaire que vous distribuez. Dans certains cas, il pourrait être (à peu près) impossible de compiler un binaire ayant exactement le même hash que le binaire distribué ; par exemple si les binaires étaient horodatées par le système, ou si le programme avait été construit par une version différente (voire non publiée) du compilateur.

Une société utilise une version modifiée d'un programme sous GPL sur son site web. Est-il stipulé dans la GPL qu'elle doit publier les sources modifiées ? (#UnreleasedMods)

La GPL permet à quiconque de faire une version modifiée et de l'utiliser sans jamais 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. La situation est différente quand le programme modifié est régi par la GNU Affero GPL.

Comparez ceci à la situation où le site web contient, ou met en lien, des programmes indépendants sous GPL qui sont distribués à l'utilisateur lorsqu'il visite le site (ils sont souvent écrits en JavaScript, mais d'autres langages sont aussi employés). Dans cette situation, le code source des programmes distribués doit être accessible à l'utilisateur sous les termes de la GPL.

Une société utilise une version modifiée d'un programme régi par la licence publique générale GNU Affero (AGPL) sur un site web. Est-il stipulé dans l'AGPL qu'elle doit publier les sources modifiées ? (#UnreleasedModsAGPL)

La GNU Affero GPL exige que les versions modifiées du logiciel donnent à tous les utilisateurs qui interagissent avec lui sur un réseau informatique l'opportunité de recevoir la source. Ce que fait la société rentre dans ce cadre ; elle doit donc publier le code source modifié.

Si une organisation ou une société fait plusieurs copies et les utilise en interne, s'agit-il de « distribution » ? (#InternalDistribution)

Non, dans ce cas l'organisation ne fait de copies que 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 au personnel la permission 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 donne-t-elle au voleur le droit de redistribuer cette version ? (#StolenCopy)

Si la version a été publiée ailleurs, alors il est probable que les voleurs ont effectivement le droit de faire des copies et de les redistribuer sous GPL, mais si on les met en prison pour avoir volé le CD, il se peut qu'ils doivent attendre leur libération pour le faire.

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

Et si une société me distribue sous couvert du secret industriel une copie d'un programme sous GPL développé par des tiers ? (#TradeSecretRelease)

C'est une violation de la GPL et la société doit cesser de distribuer ce programme. Notez la différence avec le cas de vol ci-dessus ; si un exemplaire a été volé, la distribution n'est pas intentionnelle et donc la société ne viole pas la GPL.

Et si une société me distribue sous couvert du secret industriel une copie d'un programme sous GPL qu'elle a développé elle-même ? (#TradeSecretRelease2)

Si le programme distribué n'incorpore aucune création de tiers couverte par la GPL, alors la société ne viole pas la GPL (voir « Est-ce que le développeur d'un programme régi par la GPL est lié par cette licence ? »), mais elle affirme deux choses contradictoires : que vous pouvez le redistribuer, et que vous ne le pouvez pas. Il serait judicieux d'exiger une clarification des termes sous lesquels vous pouvez utiliser ce programme avant d'en accepter une copie.

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

L'utilisation de la GPL amoindrie pour une bibliothèque particulière représente une défaite pour le logiciel libre. Cela signifie que nous abandonnons partiellement nos tentatives de défendre la liberté de l'utilisateur, ainsi qu'une partie de l'obligation de partager ce qui est construit à partir de logiciel sous GPL. Il s'agit en l'état d'évolutions négatives.

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

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

C'est donc au cas par cas que nous décidons quelle licence utiliser pour chaque bibliothèque. Il existe une longue explication sur ce qui guide notre jugement.

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) ? (#VersionThreeOrLater)

Il nous arrive de temps en temps (à intervalle de plusieurs années) de modifier la GPL, soit pour éclaircir un point, soit pour autoriser certaines utilisations alors qu'elles ne l'étaient pas auparavant, soit encore 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 lorsque d'autres versions de la GPL seront disponibles.

Si une exigence plus forte introduite dans une nouvelle version de la GPL ne s'applique pas obligatoirement aux 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 ces nouvelles versions.

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 le faire 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 peut-être n'avaient même pas 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. Publier 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 dans ce cas il vaut bien mieux utiliser la licence GNU de documentation libre (GNU FDL).

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

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

Dans un manuel régi par la GNU FDL, il est permis de modifier le texte se rapportant à son sujet technique. Il est important d'autoriser ces modifications, car les personnes qui modifient un programme doivent mettre à jour la documentation. La liberté de le faire 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 » pour qu'elles ne puissent être ni modifiées ni retirées. La GNU FDL a des dispositions relatives à ces « sections inaltérables ».

Comment la GPL s'applique-t-elle aux polices de caractères ? (#FontException)

La mise sous licence des polices est un problème complexe qui nécessite 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 – veuillez consulter ce billet explicatif et écrire à <licensing@gnu.org>.

Pour utiliser cette exception, ajoutez le texte suivant à l'avis de licence de 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

Je développe un système de maintenance de site web, aussi appelé « système de gestion de contenu » (content management system), ou une autre application générant des pages web à partir de modèles. Quelle licence dois-je utiliser pour ces modèles ? (#WMS)

Les modèles sont assez mineurs et ça ne vaut pas la peine d'utiliser le copyleft pour les protéger. Habituellement il n'y a pas de danger à utiliser le copyleft pour des créations mineures, mais les modèles sont un cas particulier, car ils se combinent à des données fournies par les utilisateurs de l'application et cette combinaison est distribuée. C'est pourquoi nous vous 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. Puisque les modèles sont combinés à des données de l'utilisateur, il est possible que l'ensemble (modèle + données utilisateur + JavaScript) soit considéré comme une création unique selon la législation sur le copyright. Il est nécessaire de tracer une limite entre le code JavaScript (sous copyleft) et le code utilisateur (habituellement sous des termes incompatibles), comme indiqué dans le diagramme ci-dessous.

Diagramme de modèle faisant appel à du JavaScript

Voici une exception pour le code JavaScript qui fait cela :

As a special exception to 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 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 la GPL, mais si les bibliothèques ne sont pas couvertes par l'exception « bibliothèque système », vous devrez lui adjoindre un avis explicite donnant la permission de lier votre programme avec elles. La question sur l'utilisation de bibliothèques incompatibles avec la GPL donne des renseignements complémentaires sur la manière de le procéder.

Existe-t-il des traductions de la GPL en d'autres langues ? (#GPLTranslations)

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

Sous certains aspects, un document juridique ressemble à un programme. Le traduire est comme porter un logiciel d'un langage ou d'un système d'exploitation vers un autre. Seul un juriste compétent dans les deux langues peut le faire, et même alors subsiste le risque d'introduire un bogue.

Si nous devions approuver, officiellement, une traduction de la GPL, nous donnerions à quiconque l'autorisation de faire tout ce que la traduction dit que l'on peut faire. Si la traduction était parfaitement exacte, tout irait bien. Mais s'il existait une erreur dans la traduction, il pourrait en résulter un désastre que nous ne pourrions réparer.

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

Des personnes qui souhaitent nous aider proposent parfois de faire pour nous le travail de traduction. Si le problème était de trouver quelqu'un pour accomplir la tâche, il serait résolu. Mais le vrai problème est le risque d'erreur ; proposer 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, nous n'approuvons pas les traductions de la GPL comme globalement valides et contractuelles, pour le moment du moins. Au lieu de cela, nous faisons deux choses :

  • Nous dirigeons les gens vers des traductions non officielles. Cela signifie que nous autorisons tout un chacun à traduire la GPL, mais que nous n'approuvons pas le résultat comme juridiquement valide et contractuel.

    Une traduction non approuvée n'a pas de valeur juridique et doit le déclarer explicitement. Cela doit être écrit comme suit :

    This translation of the GPL is informal, and not officially approved by the Free Software Foundation as valid. To be completely sure of what is permitted, refer to the original GPL (in English).
    Cette traduction de la GPL est informelle et n'est pas approuvée officiellement comme valide par la Free Software Foundation. Pour être tout à fait sûr de ce qui est autorisé, 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 qui font de la distribution au public par FTP doivent vérifier la véritable GPL en anglais pour s'assurer de ce qu'elle autorise.

  • Publication de traductions valides pour un pays seulement.

    Nous réfléchissons à l'idée de publier des traductions qui soient officiellement valides pour un pays seulement. De cette façon, si une erreur est faite, l'effet sera limité à ce pays et le dommage pas trop important.

    Il faudra 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 incompatible avec la GPL, puis-je l'utiliser pour exécuter des programmes régis par la GPL ? (#InterpreterIncompat)

Quand l'interpréteur ne fait qu'interpréter un langage, la réponse est oui. Pour lui, le programme interprété n'est qu'un ensemble de données ; la GPL ne limite pas votre choix d'outils pour le traitement du programme.

Cependant, lorsque l'interpréteur a des fonctions supplémentaires fournissant des « interfaces » (bindings) vers d'autres dispositifs (souvent, mais pas nécessairement, des bibliothèques), le programme interprété est effectivement lié aux dispositifs qu'il utilise à travers ces interfaces. La JNI (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 aux programmes Java qui les appellent.

Donc, si ces dispositifs sont publiés sous une licence incompatible avec la GPL, la situation est similaire à celle qu'on aurait avec un autre type de liaison à une bibliothèque non compatible avec la GPL. Les implications sont les suivantes :

  1. Si vous écrivez du code et que vous le publiez sous GPL, vous pouvez définir une exception explicite donnant l'autorisation de le lier à ces dispositifs incompatibles.
  2. Si ce programme, que vous avez écrit et publié sous GPL, a été conçu spécifiquement pour fonctionner avec ces dispositifs, on peut considérer qu'il y a une exception implicite autorisant la liaison avec ces mêmes dispositifs. Mais si c'est vraiment ce que vous souhaitez, il vaut mieux le déclarer de manière explicite.
  3. Vous ne pouvez pas prendre le code sous GPL de quelqu'un d'autre et l'utiliser de cette façon, ni y ajouter de telles exceptions. Seul le détenteur du copyright pour ce code peut ajouter l'exception.
Qui a la capacité de faire respecter la GPL ? (#WhoHasThePower)

Puisque la GPL est une licence de copyright, ce sont les détenteurs du copyright sur le logiciel qui ont la capacité de faire respecter la GPL. Si vous constatez une violation de la GPL, vous devez en informer les développeurs du logiciel concerné. Ou bien ils détiennent le copyright, ou bien ils sont en relation avec le détenteur du copyright. Apprenez-en plus sur la manière de rapporter des violations de la GPL.

Dans un langage orienté objet comme Java, si j'utilise une classe qui est sous GPL sans la modifier et que je crée une sous-classe, de quelle manière la GPL affecte-t-elle l'ensemble du programme ? (#OOPLang)

Une sous-classe créée par héritage est un travail dérivé. Les termes de la GPL s'appliquent donc à l'ensemble du programme dans lequel vous créez une sous-classe d'une classe sous GPL.

Si je fais un portage de mon programme vers GNU/Linux, cela veut-il dire que je dois le publier comme logiciel libre, sous GPL ou autre licence libre ? (#PortProgramToGPL)

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, soit la GNU GPL plus une exception permettant de lier 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 il y a des exigences auxquelles vous devez vous conformer.

Certaines bibliothèques sont publiées sous la GNU GPL seule ; vous devez choisir une licence compatible avec la GPL pour les utiliser. Mais il s'agit normalement des bibliothèques les plus spécialisées, qui n'ont pas leur équivalent sur une autre plateforme ; il est donc probable que vous n'en aurez pas besoin pour un simple portage.

Bien sûr, votre logiciel n'est pas une contribution à notre communauté s'il n'est pas libre, et ceux qui accordent de la valeur à leur liberté refuseront de l'utiliser. Seuls les gens qui sont prêts à abandonner leur liberté utiliseront votre logiciel, ce qui signifie qu'il constituera de fait une incitation à abandonner cette liberté.

Si vous espérez un jour, en faisant le point sur votre carrière, avoir le sentiment qu'elle a contribué au développement d'une société équitable et libre, vous devez rendre vos logiciels libres.

Je viens de découvrir qu'une entreprise a un exemplaire d'un programme sous GPL et qu'il faut payer pour l'obtenir. Ne violent-ils pas la GPL en ne le rendant pas disponible sur Internet ? (#CompanyGPLCostsMoney)

Non. La GPL n'oblige personne à utiliser Internet pour la distribution. Elle n'exige pas non plus que quelqu'un en particulier redistribue le programme. Et (en dehors d'un cas spécial) même si quelqu'un décide effectivement un jour de redistribuer le programme, la GPL ne dit pas qu'il doit vous en distribuer une copie à vous, ou à toute autre personne en particulier.

Ce que la GPL exige, c'est qu'il ait la liberté de vous en distribuer une copie s'il le souhaite. Une fois que le détenteur du copyright a distribué une copie du programme à quelqu'un, ce quelqu'un peut alors redistribuer le programme, à vous ou à n'importe qui d'autre, comme ça lui convient.

Puis-je publier un programme avec une licence stipulant qu'on peut en distribuer des versions modifiées sous la GPL, mais qu'on ne peut pas redistribuer l'original lui-même sous la GPL ? (#ReleaseNotOriginal)

Non. Une telle licence serait contradictoire. Regardons ses implications pour moi, l'utilisateur.

Supposons que je prenne la version originale (appelons-la version A), que j'ajoute du code (disons 1000 lignes) et que je publie cette version (appelons-la B) sous GPL. La GPL dit que n'importe qui peut changer la version B à nouveau et publier le résultat sous GPL. Je peux donc (ou quelqu'un d'autre peut) supprimer ces 1000 lignes et obtenir la version C, qui a le même code que la version A, mais sous GPL.

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

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

La question de savoir si le déplacement vers une filiale (ou l'inverse) constitue une « distribution » doit être tranchée en fonction de la loi sur le copyright en vigueur dans la juridiction appropriée (la GPL n'est pas et ne peut pas être au-dessus des lois locales). Le droit américain du copyright n'est pas totalement clair sur ce point, mais il semble ne pas considérer cela comme une distribution.

Si dans un pays donné c'est considéré comme une distribution et que la filiale doit obtenir le droit de redistribuer le programme, cela ne fera pas grande différence. La filiale est contrôlée par la maison mère ; droit ou pas droit, elle ne redistribuera pas le programme à moins que la maison mère ne le décide.

Est-ce que des installeurs de logiciels peuvent demander aux gens de cliquer pour accepter la GPL ? Si je me procure un logiciel sous GPL, dois-je donner mon accord à quelque chose ? (#ClickThrough)

Dans certains systèmes d'empaquetage, l'installation comprend une étape qui vous oblige à indiquer votre accord aux termes de la GPL, par un clic ou autrement. Ce n'est ni requis, ni interdit. Avec ou sans clic, les règles de la GPL demeurent les mêmes.

Le fait d'accepter les termes de la GPL ne vous oblige à rien. Vous n'êtes pas obligé d'accepter quoi que ce soit pour simplement utiliser un logiciel sous licence GPL. Vous n'avez d'obligations que si vous modifiez ou distribuez le logiciel. Si cela vous ennuie vraiment de cliquer pour donner votre accord à la GPL, rien ne vous empêche de modifier le logiciel pour passer outre.

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

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

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 j'ai l'intention de distribuer le logiciel conformément aux lois en vigueur sur l'exportation. Pourquoi font-ils cela ? 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 tierces 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 l'article 10 de la GPLv3, ni l'article 6 de la GPLv2.

La FSF s'oppose à l'application au logiciel libre des 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 devra toujours être) 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 réellement privé de logiciel libre par les lois américaines sur le contrôle de l'exportation ; de plus, nous estimons qu'aucun pays ne doit voir ses habitants 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 exemplaire 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é qu'a l'utilisateur d'exécuter le programme. C'est ajouter une condition aux termes de la GPL, ce qui est interdit par la licence.

Comment passer de la (L)GPLv2 à 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 tous les avis de licence v2 existants (généralement au début de chaque fichier) par le nouveau texte recommandé, disponible dans le guide d'utilisation des licences GNU. Ce sera plus sûr à l'avenir, car ce texte ne comporte plus l'adresse postale de la FSF.

Bien sûr, tout texte descriptif parlant de la licence du paquet (par exemple dans le fichier LISEZ-MOI) doit être également mis à jour de manière appropriée.

Comment la GPLv3 rend-elle la distribution par BitTorrent plus facile ? (#BitTorrent)

Puisque 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 façon de s'assurer qu'une distribution de code objet sous GPLv2 par BitTorrent est conforme à la licence serait d'inclure la source correspondante en entier 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 l'article 9 dit : « La propagation accessoire d’une création régie qui se produit du seul fait de l’utilisation d’une transmission pair à pair pour recevoir un exemplaire identique ne nécessite pas l’acceptation [de la licence]. » (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].)

Ensuite, l'article 6(e) de la GPLv3 est conçu pour donner aux distributeurs – les personnes qui initient les torrents – un moyen clair et simple de fournir les sources, en disant aux destinataires sur quel serveur public elles sont disponibles. Cela garantit que ceux qui veulent les sources sont en mesure de les obtenir et cela n'occasionne presque aucun dérangement pour le distributeur.

Qu'est-ce que la « tivoïsation » ? 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 à les modifier. Il y a beaucoup de manières différentes de le faire ; par exemple, le matériel lance des contrôles de temps en temps sur les logiciels installés et s'arrête 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 « tivoïsation ».

L'article 6 de la GPLv3 exige que les distributeurs de « Produits Utilisateur » intégrant des logiciels régis par cette licence fournissent les informations nécessaires à la modification de ces logiciels. « Produit Utilisateur » (User Product)est un terme spécifiquement défini dans la licence ; il recouvre par exemple les baladeurs, 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 tout ce que vous voulez en fait de technologies DRM. Cependant, si vous faites cela, l'article 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 avec le logiciel, elle les empêche seulement d'imposer des restrictions aux 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 régi par des lois similaires à la loi sur le copyright, comme les masques de semi-conducteurs. Par exemple, vous pouvez publier sous GPL le schéma d'un objet physique ou d'un circuit.

Souvent, le copyright ne couvre pas la fabrication de matériel à partir d'un schéma. Dans ces conditions, la licence que vous avez placée sur le schéma ne peut pas exercer le moindre contrôle sur la fabrication ou la vente du matériel, quelle que soit la licence. Lorsqu'en revanche le copyright couvre la fabrication du matériel, par exemple dans le cas des masques de circuits intégrés, la GPL s'applique de manière utile.

J'utilise une clé de chiffrement publique pour signer mon code de manière à garantir son authenticité. Est-il vrai que la GPLv3 m'oblige à publier mes clés de signature privées ? (#GiveUpKeys)

Non. Le seul cas où vous seriez obligé de publier les clés de signature est celui où vous transmettriez du logiciel sous GPL à l'intérieur d'un « produit utilisateur » et où le matériel ferait une vérification du logiciel pour y chercher une signature de chiffrement valide avant de fonctionner. Dans ce cas précis, vous seriez obligé de fournir à tout détenteur de l'appareil, à sa demande, la clé requise pour signer et installer une version modifiée du logiciel sur son appareil afin qu'elle devienne fonctionnelle. Si chaque exemplaire de l'appareil avait sa propre clé, alors vous n'auriez besoin de donner à chaque acheteur que la clé correspondant à son exemplaire.

La GPLv3 exige-t-elle que les votants puissent modifier le logiciel utilisé dans une machine à voter ? (#v3VotingMachine)

Non. Les sociétés qui distribuent des appareils contenant du logiciel sous GPLv3 sont obligées de fournir les sources et les informations d'installation du logiciel aux personnes qui possèdent une copie du code objet, rien de plus. Le votant qui utilise une machine à voter (comme tout autre service en ligne) ne la possède pas, pas même temporairement, donc il ne possède pas non plus le logiciel binaire qui est à l'intérieur.

Notez cependant que le vote est un cas très spécial. Ce n'est pas parce que le logiciel équipant un ordinateur est libre que vous pouvez faire confiance à cet ordinateur pour voter. Nous croyons que l'on ne peut pas faire confiance aux ordinateurs pour voter. On doit voter avec du papier.

La GPLv3 a-t-elle une « clause de rétorsion de brevets » (patent retaliation clause) (#v3PatentRetaliation)

Oui, en effet. L'article 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 tout de même, l'article 8 explique comment il perdrait sa licence de copyright et toutes les licences de brevet qui l'accompagnaient.

Puis-je utiliser des petits bouts de code source régi 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 avec le fair use (usage raisonnable) ou loi similaire, alors oui. Autrement, non.

Le début de l'article 6 de la GPLv3 dit que je peux transmettre une « création régie », sous forme de code objet, « suivant les termes des articles 4 et 5 » pourvu que je respecte aussi les conditions décrites à l'article 6. Qu'est-ce que cela signifie ? (#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 avis de copyright intacts, 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 accordé la licence de brevet explicite de la GPLv3 à 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 vous conformiez également aux termes de la version ultérieure de la GPL.

N'allez pas imaginer que cela vous autorise à 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 se lie à une bibliothèque sous LGPLv3 que j'ai modifiée, quelle est la « version du contributeur » servant à déterminer l'étendue de la licence de brevet explicite que j'accorde ? S'agit-il de la combinaison complète ou seulement de la bibliothèque ? (#LGPLv3ContributorVersion)

La « version contributeur » est seulement votre version de la bibliothèque.

La GPLv3 est-elle compatible avec la GPLv2 ? (#v2v3Compatibility)

Non. De nombreuses conditions ont changé entre la GPLv2 et la GPLv3, ce qui signifie que les conditions précises de la GPLv2 ne sont pas présentes dans la GPLv3 et vice versa. Par exemple, les conditions de résiliation de la GPLv3 sont beaucoup plus permissives que celles de la GPLv2 et par conséquent diffèrent des conditions de résiliation de la GPLv2.

À cause de ces différences, les deux licences sont incompatibles : si vous essayiez de combiner du code publié sous GPLv2 avec du code sous GPLv3, vous violeriez l'article 6 de la GPLv2.

Cependant, si le code est publié sous GPL « version 2 ou ultérieure » (version 2 or later), c'est compatible avec la GPLv3 car la GPLv3 est une des options permises.

Est-ce que la GPLv3 a des exigences concernant la fourniture des informations d'installation ? (#InstInfo)

La GPLv3 exige explicitement que la redistribution comporte « l'information complète nécessaire à l'installation ». La GPLv2 n'emploie pas cette expression, mais elle exige que la redistribution comporte « les scripts utilisés pour contrôler la compilation et l'installation de l'exécutable » ainsi que le code source correspondant complet. Cela couvre une partie de ce que la GPLv3 appelle « informations d'installation », mais pas tout. Ainsi, la GPLv3 est plus exigeante sur les informations d'installation.

Que signifie « remédier » à une violation de la GPLv3 ? (#Cure)

Remédier à une violation signifie ajuster vos pratiques pour vous conformer aux conditions de la licence.

Les clauses de limitation 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. L'article 7 vous donne la permission d'ajouter vos propres limitations de garantie et de responsabilité, plus précisément 7(a).

Mon programme a des interfaces utilisateur interactives qui ne sont pas de nature visuelle. Comment puis-je me conformer à l'exigence de « mentions légales appropriées » de la GPLv3 ? (#NonvisualLegalNotices)

Tout ce que vous avez à faire est de vous assurer que les mentions légales appropriées soient facilement disponibles dans votre interface utilisateur. Par exemple, si vous avez écrit une interface audio, vous pourriez ajouter une commande qui lise les avis à voix haute.

Si je donne une copie d'un programme régi par la GPLv3 à un(e) 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. Il s'agit de propagation, pas de transmission, car la société ne met pas de copie à la disposition de tiers.

Si je distribue une programme régi par la GPLv3, puis-je donner 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 qui est à l'intérieur, vous n'avez pas l'obligation de donner une garantie couvrant tout ce qu'il est possible de faire avec le logiciel sous GPLv3.

Pourquoi avez-vous décidé d'écrire l'AGPLv3 comme licence distincte ? (#SeparateAffero)

Les premières ébauches de la GPLv3 autorisaient les donneurs de licence à ajouter dans l'article 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. Elles veulent éviter d'avoir du code soumis à cette obligation supplémentaire et ont exprimé leur inquiétude sur les coûts administratifs qu'entraînerait la vérification de code associée à cette condition supplémentaire. En publiant séparément la GNU AGPLv3 avec des clauses, présentes à la fois dans cette dernière et dans la GPLv3, autorisant les parties de code sous ces licences à être liées entre elles, nous avons accompli tous nos buts originaux tout en rendant plus facile la détermination du code dont il est obligatoire de publier des sources.

Pourquoi avoir inventé les nouveaux termes « propager » (propagate) et « transmettre » (convey) 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 quelle que soit la manière 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 les définissons dans le texte de la licence.

Je voudrais mettre mon code sous GPL, mais je voudrais aussi indiquer clairement qu'il ne peut pas être utilisé pour des usages militaires ou commerciaux. Puis-je faire cela ? (#NoMilitary)

Non, car ces deux objectifs sont contradictoires. 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 l'article 7, mais toute autre restriction additionnelle peut être retirée par l'utilisateur.

Plus généralement, une licence qui limite l'utilisation du programme à certaines personnes ou certains usages n'est pas un logiciel libre.

Est-ce que « transmettre » (convey) dans la GPLv3 est la même chose que « distribuer » (distribute) 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. Une fois que vous avez fait cela, il peut se passer un certain temps avant que quelqu'un n'obtienne effectivement le logiciel de votre part ; mais comme cela peut arriver immédiatement, vous devez de votre côté remplir les obligations de la GPL immédiatement. Par conséquent, nous avons défini la transmission pour y inclure cette activité.

Puisque, dans la GPLv3, la distribution et la mise à disposition du public sont des formes de transmission aussi bien que de propagation, pourriez-vous nous donner des exemples de propagation qui ne constituent pas une transmission ? (#PropagationNotConveying)

Copier des logiciels pour vous-même est la principale forme de propagation qui ne soit pas une transmission. Vous pourriez le faire pour installer ces logiciels sur plusieurs ordinateurs ou pour les sauvegarder.

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 l'article 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 la question, 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 se liguer pour contourner les obligations de la GPL, elles peuvent toutes deux être poursuivies pour infraction au copyright. D'autant plus que la définition de la transmission inclut explicitement les activités qui rendraient quelqu'un responsable d'une infraction secondaire.

Suis-je en accord avec la GPLv3 si je propose des binaires sur un serveur FTP et leurs sources par le biais d'un lien vers un dépôt de code utilisant 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 libre et disponible publiquement. Vous devez donner aux utilisateurs des instructions claires et faciles à suivre sur la façon d'obtenir les sources exactes du code objet qu'ils ont téléchargé ; après tout, ils ne veulent pas nécessairement les derniers développements du code.

Une personne qui transmet un logiciel régi par la GPLv3 dans un produit utilisateur peut-elle utiliser une attestation à distance pour empêcher l'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 : « Ces informations doivent suffire à garantir que le fonctionnement continu du code objet modifié n’est en aucun cas empêché ou entravé seulement parce qu’une modification a été effectuée. » i 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 aux règles concernant le trafic que vous pouvez envoyer par le réseau. Par exemple, s'il y a une limite au nombre de requêtes par jour que vous pouvez envoyer à un serveur, ou à la taille des fichiers que vous pouvez téléverser vers une destination, votre accès à ces ressources peut être refusé si vous ne respectez pas ces limites.

Il n'y a rien dans ces règles qui ne concerne pas directement les données voyageant sur le réseau. Par exemple, si un serveur du réseau envoyait vers votre appareil des messages destinés aux utilisateurs, 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 les informations d'installation définies par la GPLv3 ne sont pas tenus de fournir un « service de support » pour le produit. Qu'entendez-vous par « service de support » ? (#SupportService)

Il s'agit du genre de service que beaucoup de fabricants d'appareils proposent pour vous aider à installer, utiliser ou dépanner leurs produits. Si le fonctionnement correct d'un appareil repose sur l'accès à des services web ou technologies similaires, ceux-ci doivent normalement être toujours disponibles pour les versions modifiées, en accord avec les termes de l'article 6 concernant l'accès à un réseau.

Dans la GPLv3 et l'AGPLv3, que signifie « nonobstant toute autre clause de la licence » (notwithstanding any other provision of this License) ? (#v3Notwithstanding)

Cela 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 l'article 7 de la GPLv3. Ce texte établit clairement que l'interprétation voulue est correcte et que vous pouvez faire la combinaison.

Ce texte ne fait que résoudre des conflits entre 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 donnent pas carte blanche pour ignorer le reste de la licence, ils précisent au contraire des exceptions très limitées.

Sous l'AGPLv3, quand je modifie le programme selon l'article 13, quelle « source correspondante » doit-il offrir ? (#AGPLv3CorrespondingSource)

La « source correspondante » est définie à l'article 1 de la licence et vous devez fournir ce qu'il énumère. Par conséquent, si votre version modifiée dépend de bibliothèques régies par d'autres licences, comme la licence Expat ou la GPLv3, la source correspondante doit inclure ces bibliothèques (à moins que ce ne soit des bibliothèques système). Si vous avez modifié ces bibliothèques, vous devez fournir votre code source modifié.

La dernière phrase du premier paragraphe de l'article 13 sert uniquement à réaffirmer ce que la plupart des gens auraient naturellement supposé : bien que les combinaisons avec le code sous GPLv3 soient traitées par l'exception spéciale de l'article 13, la source correspondante doit tout de 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 code source régi par la GPLv3, elle signifie au contraire qu'un tel code n'est pas exclu de la définition de la source correspondante.

Dans l'AGPLv3, qu'est-ce qui est pris en compte dans « interagissant avec [le logiciel] à distance par l'intermédiaire d'un réseau » (interacting with [the software] remotely through a computer network) ? (#AGPLv3InteractingRemotely)

Si le programme est expressément conçu pour accepter les requêtes des utilisateurs et envoyer des réponses sur un réseau, alors il remplit ces critères. Des exemples communs de programmes qui tomberaient dans cette catégorie comprennent les serveurs 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 obligée de fournir son code source simplement parce que l'utilisateur l'exécute par SSH ou par session X distante.

Comment se situe le concept de « vous » (you) dans la GPLv3 par rapport à la définition d'« entité juridique » (Legal Entity) dans la licence Apache 2.0 ? (#ApacheLegalEntity)

C'est en fait la même chose. La définition d'« entité juridique » dans la licence Apache 2.0 est très standard et on la retrouve dans divers types de contrats, à tel point qu'il serait surprenant qu'un tribunal n'interprète pas ce 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 qu'il s'agit de chacun des programmes ayant jamais été publiés sous GPLv3 ? (#v3TheProgram)

Le terme « le Programme » signifie une création 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 la création logicielle particulière que vous avez reçue en association avec cet acte particulier d'octroi de licence, dans l'état où vous l'avez reçue.

« Le Programme » ne peut pas signifier « toutes les créations 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 à ce sujet.

Si je me contente de faire des copies d'un programme régi par la GPL et que je les utilise sans les distribuer ni les transmettre à d'autres, que m'impose de faire la licence ? (#NoDistributionRequirements)

Rien. La GPL ne pose aucune condition à 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)

L'AGPLv3 exige qu'un programme propose son code source à « tous les utilisateurs qui interagissent avec lui à distance via un réseau informatique ». Il importe peu que vous appeliez le programme « client » ou « serveur »; ce que vous devez vous demander, c'est si l'on peut raisonnablement s'attendre à ce qu'une personne interagisse à distance avec ce programme sur un réseau.

En ce qui concerne les logiciels faisant tourner un serveur proxy régi par l'AGPL, sous quelle forme puis-je proposer la source correspondante aux utilisateurs qui interagissent avec ce code ? (#AGPLProxy)

Pour les logiciels d'un serveur proxy, vous pouvez faire une offre de code source par la méthode habituelle utilisée pour transmettre des messages aux utilisateurs de ce type de proxy. Par exemple, un proxy web pourrait utiliser une page de renvoi. Quand les utilisateurs utilisent le proxy pour la première fois, vous pouvez les rediriger vers une page qui leur propose le code source ainsi que toute autre information de votre choix.

L'AGPL dit que vous devez faire cette offre à « tous les utilisateurs ». Si vous savez que l'offre a déjà été montrée à un certain utilisateur, pour la version actuelle du logiciel, vous n'avez pas à la lui présenter de nouveau.

De quelle manière les différentes licences GNU sont-elles compatibles entre elles ? (#AllCompatibility)

Les diverses licences GNU sont pleinement compatibles entre elles. Le seul cas où vous ne pourrez pas combiner de code sous deux de ces licences est celui où vous voudrez utiliser du code régi uniquement par une ancienne version de la licence, avec du code régi 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 suppose que quelqu'un d'autre a écrit du logiciel régi par une de ces licences et que vous voulez incorporer du code de ce logiciel dans un projet que vous publiez (que ce soit votre création originale, ou une version modifiée d'un logiciel tiers). Trouvez la licence pour votre projet 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 portion de code d'une source donnée, avec ou sans modification, et que vous l'insérez dans votre propre programme, ce qui génère une création basée sur la première portion du code. « Utiliser une bibliothèque » signifie que vous ne copiez pas du code directement, mais que vous interagissez avec lui par une liaison, un import ou d'autres mécanismes typiques qui relient les sources entre elles au moment de la compilation ou de l'exécution du code.

Dans la matrice de compatibilité, chaque affirmation concernant la GPLv3 s'applique aussi à l'AGPLv3.

Sauter la matrice de compatibilité


Je veux mettre mon code 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 qui est sous : GPLv2 seulement OK OK [2] NON OK : la combinaison est sous GPLv2 seulement [7] OK : la combinaison est sous GPLv2 seulement [7][2] NON
GPLv2 ou ultérieure OK [1] OK OK OK : la combinaison est sous GPLv2 ou ultérieure [7] OK : la combinaison est sous GPLv2 ou ultérieure [7] OK : la combinaison est sous GPLv3 [8]
GPLv3 NON OK : la combinaison est sous GPLv3 [3] OK OK : la combinaison est sous GPLv3 [7] OK : la combinaison est sous GPLv3 [7] OK : la combinaison est sous GPLv3 [8]
LGPLv2.1 seulement OK : transmettez le code copié sous GPLv2 [7] OK : transmettez le code copié sous GPLv2 ou ultérieure [7] OK : transmettez le code copié sous GPL3 ou ultérieure [7] OK OK [6] OK : transmettez le code copié sous GPLv3 [7][8]
LGPLv2.1 ou ultérieure OK : transmettez le code copié sous GPLv2 [7][1] OK : transmettez le code copié sous GPLv2 ou ultérieure [7] OK : transmettez le code copié sous GPLv3 ou ultérieure [7] OK [5] OK OK
LGPLv3 NON OK : la combinaison est sous GPLv3 [8][3] OK : la combinaison est sous GPLv3 [8] OK : la combinaison est sous GPLv3 [7][8] OK : la combinaison est sous LGPLv3 [4] OK : la combinaison est sous LGPLv3
Je veux utiliser une bibliothèque qui est sous : GPLv2 seulement OK OK [2] NON OK : la combinaison est sous GPLv2 seulement [7] OK : la combinaison est sous GPLv2 seulement [7][2] NON
GPLv2 ou ultérieure OK [1] OK OK OK : la combinaison est sous GPLv2 ou ultérieure [7] OK : la combinaison est sous GPLv2 ou ultérieure [7] OK : la combinaison est sous GPLv3 [8]
GPLv3 NON OK : la combinaison est sous GPLv3 [3] OK OK : la combinaison est sous GPLv3 [7] OK : la combinaison est sous GPLv3 [7] OK : la combinaison est 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 : la combinaison est sous GPLv3 [9] OK OK OK OK

Sauter les notes

1 : Dans ce cas, vous devez suivre les termes de la GPLv2 en incorporant le code. Vous ne pouvez pas bénéficier des termes des versions ultérieures de la GPL.

2 : Vous pouvez publier votre projet (que ce soit un programme dont vous êtes l'auteur original ou un programme que vous avez reçu et modifié) sous GPLv2 ou ultérieure, mais le code qui est sous GPLv2 seulement 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 la création dans son ensemble (toute combinaison de votre projet avec l'autre code) ne pourra être transmis que sous les termes de la GPLv2.

3 : Si vous avez la possibilité de publier le projet sous GPLv2 ou toute version ultérieure, vous pouvez choisir de le publier sous GPLv3 ou toute version ultérieure ; 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 ultérieure, vous pouvez choisir de le publier sous LGPLv3 ou toute version ultérieure ; et dès que vous aurez fait cela, vous pourrez incorporer du code publié sous LGPLv3.

5 : Dans ce cas-là, vous devez respecter les termes de la LGPLv2.1 quand vous incorporez le code. Vous ne pouvez pas bénéficier des termes des versions ultérieures de la LGPL.

6 : Si vous faites cela, tant que le projet contient du code publié sous LGPLv2.1 seulement, vous ne pourrez pas faire passer la licence du projet à 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 est constituée de la GPLv3 et de permissions supplémentaires qui ne concernent pas ce cas.

9 : Puisque la GPLv2 ne permet pas les combinaisons avec la LGPLv3, vous devez dans ce cas transmettre le projet sous les termes de la GPLv3 qui, elle, permet cette combinaison.


Notes de traduction
  1.   L'équivalent français du copyright est le droit d'auteur, mais il en diffère de manière significative. En particulier, le droit d'auteur ne permet pas de mettre volontairement une création dans le domaine public ; l'auteur gardera entre autres ses droits moraux, qui sont inaliénables.
  2.   Traduction non officielle (le choix des termes est basé sur une traduction de la GPLv3) :
        Copyright (C) [années] [nom du titulaire du copyright]
        Ce programme est un logiciel libre ; vous pouvez le redistribuer ou le modifier suivant les termes de la GNU General Public License telle que publiée par la Free Software Foundation ; soit la version 3 de la licence, soit (à votre gré) toute version ultérieure.
        Ce programme est distribué dans l'espoir qu'il sera utile, mais SANS AUCUNE GARANTIE ; sans même la garantie tacite de QUALITÉ MARCHANDE ou d'ADÉQUATION à UN BUT PARTICULIER. Consultez la GNU General Public License pour plus de détails.
        Vous devez avoir reçu une copie de la GNU General Public License en même temps que ce programme ; si ce n'est pas le cas, consultez <http://www.gnu.org/licenses>.
        Permission additionelle selon l'article 7 de la GNU GPL, version 3
        Si vous modifiez ce programme, ou toute création régie, 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 régies par les termes de la [nom de la licence de la bibliothèque], les concédants de ce programme vous donnent la permission additionnelle de transmettre la création résultante. {Si cette combinaison n'est pas sous forme de code source, la Source Correspondante devra inclure le code source des parties de [nom de la bibliothèque] utilisées ainsi que celui de la création régie}.
  3.   Traduction non officielle :
        Ce programme est un logiciel libre ; vous pouvez le redistribuer ou le modifier suivant les termes de la GNU General Public License telle que publiée par la Free Software Foundation ; soit la version 2 de la licence, soit (à votre gré) toute version ultérieure.
        Lier [nom de votre programme] statiquement ou dynamiquement avec d'autres modules en fait une création combinée basée sur [nom de votre programme]. Par conséquent, les stipulations de la GNU General Public License régissent la totalité de la combinaison.
        De plus, à titre d'exception particulière, les titulaires du copyright sur [nom de votre programme] vous donnent l'autorisation de combiner [nom de votre programme] avec des logiciels libres ou des bibliothèques régies par la GNU LGPL et avec du code inclus dans la version standard de [nom de la bibliothèque] régie par 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 respectant les termes de la GNU GPL pour [nom de votre programme] et des licences pertinentes pour 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}.
        Notez 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 GNU General Public License donne la permission de publier une version modifiée sans cette exception ; cette exception rend également possible de publier une version modifiée qui perpétue cette exception.
  4.   Autre traduction de proprietary : propriétaire.
  5.   La notion de fair use (lit. « usage raisonnable ») est définie précisément dans la législation des États-Unis d'Amérique. Nous l'avons donc laissée telle quelle dans la traduction. Il vous appartient de vérifier si une telle notion existe également dans votre système juridique.
  6.   D'après une traduction non officielle de la GPLv2.
  7.   Traduction non officielle :
        Lier ABC statiquement ou dynamiquement avec d'autres modules en fait une création combinée basée sur ABC. Par conséquent, les stipulations de la GNU General Public License régissent la totalité du programme.
        À titre d'exception particulière, les détenteurs du copyright sur ABC vous donnent l'autorisation de combiner le programme ABC avec des programmes ou des bibliothèques libres publiées sous la GNU LGPL, ainsi qu'avec des modules indépendants qui communiquent avec ABC uniquement à travers l'interface ABCDEF. Vous pouvez copier et distribuer un tel système aux termes de la GNU GPL pour ABC, ainsi que des licences des autres codes concernés, à condition d'inclure le code source de cet autre code, quand la GNU GPL exige la distribution du code source et de la manière qu'elle prescrit et pourvu que vous ne modifiiez pas l'interface ABCDEF.
        Notez que les personnes qui font des versions modifiées de ABC ne sont pas obligées d'accorder cette exception particulière pour leurs versions modifiées ; il leur appartient de le faire ou non. La GNU General Public License donne la permission de publier une version modifiée sans cette exception ; cette exception rend également possible de publier une version modifiée qui perpétue cette exception. Si vous modifiez l'interface ABCDEF, cette exception ne s'applique pas à votre version modifiée de ABC et vous devez supprimer cette exception quand vous distribuez votre version modifiée.
        Cette exception constitue une permission additionnelle selon l'article 7 de la licence publique générale GNU, version 3 (GPLv3).
  8.   Traduction non officielle :
        À titre d'exception particulière, si vous créez un document qui utilise cette police, ou intégrez cette police ou des parties inaltérées de cette police dans le document, la présence de cette police n'implique pas en soi que le document résultant soit régi par la GNU General Public License. Toutefois, cette exception n'invalide pas les autres raisons pour lesquelles le document pourrait être régi par la GNU General Public License. Si vous modifiez cette police, vous pouvez étendre ce droit à votre version de la police, mais vous n'y êtes pas obligé. Si vous ne le souhaitez pas, supprimez cette clause de votre version.
  9.   Traduction non officielle :
        À titre d'exception particulière à la GPL, tout fichier HTML faisant essentiellement des appels de fonction à ce code, et qui pour ce faire l'inclut par référence, devra être considéré comme une création séparée en ce qui concerne la loi sur le copyright. De plus, les titulaires du copyright sur ce code vous donnent l'autorisation de combiner ce code avec des bibliothèques libres publiées sous la GNU LGPL. Vous pouvez copier et distribuer un tel système suivant les termes de la GNU GPL pour ce code et ceux de la LGPL pour les bibliothèques. Si vous modifiez ce code, vous pouvez étendre cette exception à votre version du code, mais vous n'y êtes pas obligé. Si vous ne souhaitez pas le faire, supprimez cet avis d'exception de votre version.
  10.   D'après la traduction de la GPLv3 mentionnée dans la note c.