[Traduit de l'anglais]

Qu'est-ce que le logiciel libre ?

« Logiciel libre » [free software] désigne des logiciels qui respectent la liberté des utilisateurs. En gros, cela veut dire que les utilisateurs ont la liberté d'exécuter, copier, distribuer, étudier, modifier et améliorer ces logiciels. Ainsi, « logiciel libre » fait référence à la liberté, pas au prix a (pour comprendre ce concept, vous devez penser à « liberté d'expression », pas à « entrée libre »). Pour bien montrer qu'il ne s'agit pas de gratuité, nous utilisons quelquefois en anglais l'expression libre software, qui emprunte au français ou à l'espagnol.

Vous pouvez avoir payé pour obtenir une copie d'un logiciel libre ou vous pouvez l'avoir obtenu gratuitement. Mais quelle que soit la manière dont vous vous l'êtes procuré, vous avez toujours la liberté de copier et de modifier le logiciel et même d'en vendre des copies.

Nous faisons campagne pour ces libertés parce que chacun les mérite. Avec ces libertés, les utilisateurs (à la fois individuellement et collectivement) contrôlent le programme et ce qu'il fait pour eux. Quand les utilisateurs ne contrôlent pas le programme, nous qualifions ce dernier de « non libre », ou « privateur ».b  Ce programme non libre contrôle les utilisateurs et son développeur le contrôle. Le programme devient donc l'instrument d'un pouvoir injuste.

L'« open source » est quelque chose d'autre : il a une philosophie très différente basée sur des valeurs différentes. Sa définition pratique est différente également, mais presque tous les programmes open source sont en fait libres. Nous expliquons ceci dans « En quoi l'open source perd de vue l'éthique du logiciel libre ».

Définition du logiciel libre

La définition du logiciel libre décrit les conditions à remplir pour qu'un logiciel soit considéré comme libre. Nous la révisons de temps à autre pour apporter des clarifications ou résoudre des questions portant sur des points difficiles. Si vous souhaitez avoir un aperçu de ces changements, veuillez consulter la section Historique ci-dessous.

Les quatre libertés essentielles

Un programme est un logiciel libre si vous, en tant qu'utilisateur de ce programme, avez les quatre libertés essentielles [1] :

  • la liberté de faire fonctionner le programme comme vous voulez, pour n'importe quel usage (liberté 0) ;
  • la liberté d'étudier le fonctionnement du programme, et de le modifier pour qu'il effectue vos tâches informatiques comme vous le souhaitez (liberté 1) ; l'accès au code source est une condition nécessaire ;
  • la liberté de redistribuer des copies, donc d'aider les autres (liberté 2) ;
  • la liberté de distribuer aux autres des copies de vos versions modifiées (liberté 3) ; en faisant cela, vous donnez à toute la communauté une possibilité de profiter de vos changements ; l'accès au code source est une condition nécessaire.

Un programme est un logiciel libre s'il donne toutes ces libertés aux utilisateurs de manière adéquate. Dans le cas contraire, il est « non libre ». Bien que nous puissions faire une distinction entre différents schémas de distribution non libres, en quantifiant ce qui leur manque pour être libres, nous les considérons tous comme équivalents dans leur manque d'éthique.

Dans chacun des scénarios, ces libertés doivent s'appliquer quel que soit le code que nous envisageons d'utiliser ou de pousser d'autres personnes à utiliser. Prenez par exemple un programme A qui lance automatiquement un programme B afin de gérer certaines situations. Si nous souhaitons distribuer A tel quel, cela implique que les utilisateurs auront besoin de B ; il nous appartient donc de juger si A et B sont tous deux libres. Cependant, si nous projetons de modifier A de telle sorte qu'il n'utilise pas B, alors seul A doit être libre ; B n'est pas pertinent dans ce cas.

Le logiciel libre peut être commercial

« Logiciel libre » ne veut pas dire « logiciel non commercial ». Au contraire, un programme libre doit être utilisable, développable et distribuable dans un cadre commercial. Cette règle est d'importance primordiale. Sans elle, le logiciel libre ne pourrait pas atteindre son objectif.

Nous voulons inviter chacun à utiliser le système GNU, y compris les entreprises et leurs collaborateurs ; son utilisation commerciale doit donc être permise. Nous espérons que des programmes libres remplaceront les programmes privateurs comparables, mais cela ne sera pas possible si les entreprises ont l'interdiction de les utiliser. Nous voulons que les produits commerciaux contenant du logiciel incluent le système GNU, et cela revient à en faire une distribution payante. Le développement commercial de logiciel libre n'est plus l'exception ; ce logiciel libre commercial est essentiel. Le support professionnel payant du logiciel libre répond à un besoin important.

Par conséquent, exclure l'utilisation, le développement ou la distribution commerciale ébranlerait la communauté du logiciel libre et mettrait obstacle à son succès. Nous devons en conclure qu'un programme publié sous une licence comportant de telles restrictions ne répond pas aux critères du logiciel libre.

Un programme libre doit offrir les quatre libertés à tout utilisateur potentiel qui en obtient un exemplaire, sous réserve que cet utilisateur n'ait pas violé la licence libre régissant ce programme au cours d'une distribution antérieure de logiciel sous cette licence. Le fait de mettre certaines de ces libertés hors d'atteinte de certains utilisateurs, ou d'exiger un paiement en espèces ou en nature pour les exercer, équivaut à ne pas leur accorder les libertés en question, ce qui rend le programme non libre.

Clarifier la limite entre libre et non libre

La suite de cet article explique plus précisément quelle étendue doit avoir chacune de ces libertés dans divers domaines pour qu'un programme soit libre.

La liberté d'exécuter le programme comme vous le souhaitez

La liberté d'utiliser un programme est la liberté pour n'importe qui ou n'importe quelle organisation de l'utiliser sur n'importe quel système informatique, pour n'importe quelle tâche et sans être obligé de communiquer à ce sujet avec le développeur ou toute autre entité particulière. Dans cette liberté, ce qui compte est ce que veut faire l'utilisateur, pas le développeur ; en tant qu'utilisateur, vous êtes libre d'exécuter un programme comme bon vous semble et, si vous le redistribuez à quelqu'un d'autre, cette personne est libre de l'exécuter comme bon lui semble, mais il ne vous est pas permis de lui imposer vos objectifs.

Que vous soyez libre d'exécuter le programme comme vous le souhaitez signifie que personne ne vous interdit ou ne vous empêche de le faire fonctionner. Cela n'a rien à voir avec telle ou telle fonctionnalité que possède le programme, ou avec le fait qu'il soit, ou non, techniquement capable de fonctionner dans un environnement donné ou utile à une activité informatique particulière.

Par exemple, si le code rejette arbitrairement certaines entrées significatives, ou même se plante inconditionnellement, cela peut rendre le programme moins utile ou même complètement inutile, mais cela ne retire pas aux utilisateurs la liberté de le faire fonctionner ; cela n'entre donc pas en conflit avec la liberté 0. Si le programme est libre, les utilisateurs peuvent lui redonner de l'utilité parce que les libertés 1 et 3 leur permettent, à eux ou à leur communauté, de débarrasser le code des nuisances arbitraires et de distribuer les versions ainsi modifiées.

« Comme vous le souhaitez » inclut l'option « pas du tout » si c'est votre souhait. On n'a donc pas besoin d'une « liberté de ne pas exécuter un programme ».

La liberté d'étudier le code source et de le modifier

Afin que les libertés 1 et 3 (la liberté de faire des modifications et la liberté de publier les versions modifiées) aient un sens, vous avez besoin d'accéder au code source. Ainsi, l'accès au code source est une condition nécessaire pour qu'un logiciel soit libre. Du code source rendu illisible [obfuscated] n'est pas du vrai code source et ne compte pas comme code source.

Le code source se définit comme la forme préférée sur laquelle faire des modifications. Ainsi, la forme qu'un développeur modifie pour développer un programme est le code source de cette version particulière.

La liberté 1 inclut la liberté d'utiliser votre version modifiée à la place de l'original. Si le programme est livré dans un produit conçu pour exécuter les versions modifiées de quelqu'un d'autre, mais pour refuser d'exécuter les vôtres (une pratique connue sous le nom de « tivoïsation », de « verrouillage » ou (dans la terminologie pernicieuse de ses partisans) de secure bootc) la liberté 1 devient un simulacre vide de sens plutôt qu'une liberté concrète. Ces binaires ne sont pas libres, même si le code source à partir duquel ils ont été compilés l'est.

Un moyen important de modifier un programme est de lui incorporer des modules ou des sous-programmes libres disponibles. Si la licence du programme indique que vous ne pouvez pas lui incorporer un module existant régi par une licence appropriée, par exemple si elle impose que vous soyez titulaire du copyright d sur tout code que vous ajoutez, alors la licence est trop restrictive pour être qualifiée de libre.

Qu'un changement constitue une amélioration ou non est subjectif. Si votre droit de faire des modifications se limite, en substance, aux changements que quelqu'un d'autre considère comme une amélioration, ce n'est pas un programme libre.

Un cas particulier de la liberté 1 est la liberté de supprimer le code du programme si son exécution n'a aucun effet, ou de le modifier pour qu'il invoque un autre programme. Ainsi, la liberté 1 inclut la « liberté de supprimer le programme ».

La liberté de redistribuer si vous le souhaitez : exigences de base

Avoir la liberté de distribution (libertés 2 et 3) signifie que vous êtes libre de redistribuer des copies, avec ou sans modification, gratuitement ou non, à tout le monde, partout. Être libre de faire tout cela signifie (entre autres) que vous n'avez pas à demander ni à payer pour en avoir la permission.

Vous devez aussi avoir la liberté de faire des modifications et de les utiliser à titre privé dans votre travail ou vos loisirs, sans en mentionner l'existence. Si vous publiez vos modifications, vous n'êtes pas obligé de prévenir quelqu'un en particulier ou de le faire d'une manière particulière.

La liberté 3 inclut la liberté de distribuer vos versions modifiées en tant que logiciel libre. Une licence libre peut également permettre de les distribuer sous d'autres formes ; en d'autres termes, elle n'a pas à être un copyleft.e  Cependant, une licence qui impose que les versions modifiées soient non libres ne peut pas être qualifiée de licence libre.

La liberté de redistribuer des copies doit inclure les formes binaires ou exécutables du programme, tout comme le code source, que ce soit pour les versions modifiées ou non modifiées du programme (diffuser des programmes sous une forme exécutable est nécessaire pour installer commodément les systèmes d'exploitation libres). Il y a une exception s'il n'existe aucun moyen de produire de version binaire ou exécutable pour un programme déterminé (puisque certains langages ne le permettent pas), mais vous devez avoir la liberté de distribuer des versions de ce type si vous trouvez ou si vous concevez un moyen d'en produire.

Copyleft

Certains types de règles sur la manière de distribuer le logiciel libre sont acceptables tant que ces règles ne rentrent pas en conflit avec les libertés fondamentales. Par exemple, le copyleft (pour résumer très simplement) est une règle qui établit que, lorsque vous redistribuez le programme, vous ne pouvez pas ajouter de restriction qui nie les libertés fondamentales des autres. Cette règle n'entre pas en conflit avec les libertés fondamentales ; en fait, elle les protège.

Au projet GNU, nous utilisons le copyleft pour protéger juridiquement les quatre libertés de manière que chacun en bénéficie. Nous croyons qu'il y a de bonnes raisons de préférer le copyleft. Cependant, les logiciels libres non copyleftés sont éthiques également (consultez les catégories de logiciels libres pour une discussion des relations entre « logiciel libre », « logiciel copylefté » et encore d'autres catégories de logiciel).

Règles concernant l'empaquetage et les détails de distribution

Les règles concernant l'empaquetage des versions modifiées sont acceptables si elles ne limitent pas de manière substantielle votre liberté de les publier, ou votre liberté de créer et d'utiliser des versions modifiées pour votre usage privé. Il est ainsi acceptable que la licence vous impose de changer le nom de la version modifiée, d'enlever un logo, ou de marquer vos modifications comme étant de votre fait. Aussi longtemps qu'en pratique le poids de ces contraintes ne vous empêche pas de distribuer vos changements, elles sont acceptables. Vous avez déjà fait d'autres changements dans le programme, alors vous n'aurez pas de mal à en faire quelques-uns de plus.

Une règle spécifiant que « si vous rendez votre version disponible comme ceci, vous devez aussi la rendre disponible comme cela » peut aussi être acceptable, sous les mêmes conditions. Serait par exemple acceptable une règle stipulant que, si vous avez distribué une version modifiée et qu'un ancien développeur en demande une copie, vous devez la lui envoyer (notez qu'une telle règle vous laisse néanmoins le choix de distribuer votre version ou non). Les règles qui exigent la fourniture du code source aux utilisateurs pour les versions que vous mettez à la disposition du public sont également acceptables.

Un problème particulier apparaît lorsqu'une licence exige qu'on change le nom sous lequel le programme sera invoqué par d'autres programmes. C'est effectivement gênant pour publier une version modifiée de manière qu'elle puisse remplacer l'original quand il est invoqué par ces autres programmes. Ce type d'exigence n'est acceptable que s'il existe une possibilité de spécifier le nom du programme original comme alias de la version modifiée.

Contrôle de l'exportation

Parfois les règles du contrôle des exportations, ou bien des sanctions économiques, peuvent restreindre votre liberté de distribuer des copies de programmes à l'étranger. Les développeurs de logiciels n'ont pas le pouvoir d'éliminer ou de passer outre ces restrictions, mais ce qu'ils peuvent et doivent faire, c'est refuser de les imposer comme conditions à l'utilisation du programme. De cette manière, les restrictions n'affecteront pas les activités et les personnes se trouvant hors de la juridiction des gouvernements concernés. Ainsi, les licences de logiciel libre ne doivent pas imposer d'obéir à un règlement sur l'exportation comme préalable à l'une des libertés essentielles, quelle qu'elle soit, dans la mesure où ce règlement a une incidence pratique.

Il est acceptable de mentionner simplement l'existence du règlement sur l'exportation sans en faire une clause de la licence elle-même, car cela n'impose pas de restriction aux utilisateurs. Si de fait une règle d'exportation est sans incidence sur le logiciel libre, l'intégrer à une clause n'est pas un véritable problème ; toutefois, c'est un problème potentiel car une future modification du droit de l'exportation pourrait faire que cette exigence ait des conséquences pratiques et donc rende le logiciel non libre.

Pour que ces libertés soient effectives, elles doivent être permanentes et irrévocables tant que vous n'avez rien fait de mal ; si le développeur du logiciel a le droit de révoquer la licence ou de lui ajouter rétroactivement des clauses restrictives, sans que vous ayez fait quoi que ce soit de mal pour le justifier, le logiciel n'est pas libre.

Une licence libre ne peut pas exiger qu'on se conforme à la licence d'un programme non libre. Ainsi par exemple, si une licence exige le respect des licences de « tous les programmes que vous utilisez », et que l'utilisateur exécute des programmes non libres, cela l'obligerait à respecter les licences de ces programmes non libres et rendrait par conséquent la licence non libre.

Il est acceptable qu'une licence libre précise la juridiction dont le droit s'applique, la cour compétente pour régler les litiges, ou bien les deux.

Licences basées sur des contrats

La plupart des licences de logiciel libre sont basées sur le copyright, or les types d'exigences que le copyright peut imposer ont des limites. Si une licence basée sur le copyright respecte la liberté de la manière décrite plus haut, il est peu probable qu'elle pose un problème d'un genre totalement imprévu (bien que cela arrive parfois). Cependant, certaines licences de logiciel libre sont basées sur le droit du contrat, et les contrats peuvent imposer un éventail bien plus large de restrictions. Cela signifie qu'il y a de nombreuses possibilités pour qu'une licence de ce type puisse restreindre de manière inacceptable la liberté des utilisateurs et ainsi devenir non libre.

Nous ne pouvons pas passer en revue tout ce qui pourrait se passer. Si une licence basée sur un contrat restreint l'utilisateur d'une manière inhabituelle à laquelle les licences basées sur le copyright ne peuvent pas se conformer et qui n'est pas mentionnée ici comme légitime, nous devrons y réfléchir et nous conclurons probablement qu'elle n'est pas libre.

La définition du logiciel libre dans la pratique

Comment nous interprétons ces critères

Notez que des critères comme ceux qui sont développés dans la présente définition du logiciel libre demandent une réflexion sérieuse quant à leur interprétation. Pour décider si une licence de logiciel particulière peut être qualifiée de libre, nous la jugeons sur ces critères pour déterminer si elle convient à leur esprit tout comme à leur formulation précise. Si une licence inclut des restrictions inacceptables, nous la rejetons même si nous n'avons pas anticipé le problème dans ces critères. Quelquefois les exigences d'une licence soulèvent un problème qui nécessite des réflexions intenses, y compris des discussions avec un juriste, avant que nous puissions décider si l'exigence est acceptable. Quand nous arrivons à une conclusion concernant un nouveau problème, il est fréquent que nous mettions à jour ces critères pour qu'on sache plus facilement pourquoi telle licence s'y conforme, ou non.

Où trouver de l'aide sur les licences libres

Si vous voulez savoir si une licence particulière peut être qualifiée de « libre », reportez-vous à notre liste de licences. Si la licence qui vous intéresse ne fait pas partie de la liste, vous pouvez nous demander des précisions en envoyant un courriel à <licensing@gnu.org>.

Si vous envisagez d'écrire une nouvelle licence, veuillez auparavant contacter la Free Software Foundation, en écrivant à l'adresse ci-dessus. La prolifération de licences de logiciel libre différentes les unes des autres implique un surcroît de travail pour les utilisateurs voulant comprendre ces licences ; nous pouvons vous aider à trouver une licence de logiciel libre existante qui réponde à vos besoins.

Si ce n'est pas possible, si vous avez vraiment besoin d'une nouvelle licence, avec notre aide vous pouvez faire en sorte que cette licence soit vraiment une licence de logiciel libre et éviter divers problèmes pratiques.

Utilisez les mots justes pour parler du logiciel libre

Quand vous parlez de logiciel libre, il est préférable de ne pas utiliser de termes comme « donner » ou « gratuit », car ils laissent supposer que la finalité du logiciel libre est le prix et non la liberté. Certains termes répandus comme « piratage » comportent des idées auxquelles nous espérons que vous n'adhérerez pas. Lisez « Termes prêtant à confusion, que vous devriez éviter », un essai sur l'utilisation de ces termes. Nous avons aussi une liste de traductions correctes de free software dans de nombreuses langues.

Un autre groupe utilise le terme « open source » pour exprimer quelque chose de proche, mais pas identique au « logiciel libre ». Nous préférons le terme « logiciel libre ». En effet, une fois qu'on a compris que ce terme se rapporte à la liberté plutôt qu'au prix, il appelle la notion de liberté. Le mot « open » ne renvoie jamais à la liberté.

Au-delà du logiciel

Les manuels des logiciels doivent être libres, pour les mêmes raisons que les logiciels doivent être libres et parce que les manuels font en fait partie des logiciels.

Les mêmes arguments peuvent aussi s'appliquer à d'autres types d'œuvres à finalité pratique, c'est-à-dire des œuvres qui intègrent de la connaissance utile, tels que le matériel pédagogique et les ouvrages de référence. Wikipédia en est l'exemple le plus connu.

Tout type d'œuvre peut être libre : la définition du logiciel libre a été étendue à la définition des œuvres culturelles libres, applicable à tout type d'œuvre.

Historique

De temps à autre, nous révisons la définition du logiciel libre pour la clarifier. Voici une liste de ces modifications de fond, ainsi que les liens, pour montrer exactement ce qui a changé.

  • Version 1.169 explique plus clairement pourquoi les quatre libertés doivent s'appliquer aux activités commerciales, et explique pourquoi elles impliquent les libertés de ne pas exécuter le programme et de le supprimer (on n'a donc pas besoin de définir séparément ces conditions).
  • Version 1.165 précise que les nuisances arbitraires du code ne rendent pas caduque la liberté 0 et que les libertés 1 et 3 permettent aux utilisateurs de les éliminer.
  • Version 1.153 précise que la liberté d'exécuter le programme signifie que rien ne vous empêche de le faire fonctionner.
  • Version 1.141 précise quel code doit être libre.
  • Version 1.135 répète chaque fois que la liberté 0 est la liberté d'exécuter le programme comme on veut.
  • Version 1.134: la liberté 0 ne fait pas intervenir la fonctionnalité du programme.
  • Version 1.131: une licence libre ne peut pas exiger qu'on se conforme à une licence non libre d'un autre programme.
  • Version 1.129 énonce explicitement qu'il est permis de choisir le droit applicable et de spécifier la cour compétente (cela a toujours été notre politique).
  • Version 1.122 : un règlement sur l'exportation est un véritable problème s'il tire à conséquence ; autrement, ce n'est qu'un problème potentiel.
  • Version 1.118 précise qu'il s'agit des limites à votre droit de modifier, et non de la nature de ces modifications. Et les modifications ne se limitent pas à des « améliorations ».
  • Version 1.111 précise la version 1.77 en disant que seules les restrictions rétroactives sont inacceptables. Les titulaires du copyright peuvent toujours concéder des permissions supplémentaires pour les utilisations de ce travail en le publiant d'une autre manière en parallèle.
  • Version 1.105 élabore sur un point déjà indiqué dans la Version 1.80, à savoir que le court énoncé de la liberté 1 implique d'utiliser effectivement votre version modifiée pour votre travail informatique.
  • Version 1.92 précise que le code rendu illisible [obfuscated] n'est pas considéré comme du code source.
  • Version 1.90 précise que la liberté 3 implique le droit de redistribuer des copies de votre propre version modifiée ou améliorée, et non le droit de participer au développement d'un projet tiers.
  • Version 1.89 : la liberté 3 inclut le droit de distribuer des versions modifiées en tant que logiciel libre.
  • Version 1.80 : la liberté 1 doit être concrète, pas seulement théorique ; autrement dit, pas de tivoïsation.
  • Version 1.77 précise que tout changement rétroactif de la licence est inacceptable, même si ce n'est pas décrit comme un remplacement complet.
  • Version 1.74 : clarification de quatre points insuffisamment explicites, ou bien mentionnés en divers endroits mais pas pris en compte partout :
    • « améliorations » ne signifie pas que la licence peut de façon substantielle limiter le type de versions modifiées que vous pouvez publier ; la liberté 3 comprend la distribution des versions modifiées, pas seulement des changements ;
    • le droit d'incorporer des modules existants se réfère à ceux qui sont sous une licence appropriée ;
    • énonce explicitement la conclusion du point se rapportant au contrôle des exportations ;
    • imposer un changement de licence constitue une révocation de l'ancienne licence.
  • Version 1.57 : ajout de la section « Au-delà du logiciel ».
  • Version 1.46 précise de quelle personne l'objectif doit être pris en compte, dans « la liberté d'exécuter le programme, pour tous les usages ».
  • Version 1.41 précise la formulation relative aux licences basées sur des contrats.
  • Version 1.40 explique qu'une licence libre doit vous autoriser à utiliser d'autres logiciels libres disponibles pour créer vos modifications.
  • Version 1.39 signale qu'il est acceptable qu'une licence vous oblige à fournir les sources des versions logicielles que vous mettez à disposition du public.
  • Version 1.31 signale qu'il est acceptable qu'une licence vous oblige à vous identifier en tant qu'auteur de modifications. Ce texte apporte d'autres précisions mineures.
  • Version 1.23 s'intéresse aux problèmes potentiels relatifs aux licences basées sur des contrats.
  • Version 1.16 explique pourquoi la distribution de binaires est importante.
  • Version 1.11 signale qu'une licence libre peut vous obliger à envoyer une copie des versions que vous distribuez aux développeurs précédents, sur demande.

Il y a des sauts dans les numéros de versions indiqués ci-dessus, car il y a eu beaucoup d'autres changements qui n'affectent pas l'essence de la définition ni ses interprétations. Par exemple, cette liste ne signale pas les changements concernant les à-côtés, le formatage, l'orthographe ou d'autres parties de la page. Si vous voulez consulter la liste intégrale des changements, vous pouvez le faire sur l'interface cvsweb.

Note

  1. La raison pour laquelle elles sont numérotées de 0 à 3 est historique. Vers 1990 il y avait trois libertés, numérotées de 1 à 3. Puis nous nous sommes rendu compte qu'il était nécessaire de mentionner la liberté d'exécuter le programme explicitement. Comme elle était à l'évidence plus basique que les trois autres, elle devait les précéder. Plutôt que de renuméroter les autres, nous l'avons appelée liberté 0.

Notes de traduction
  1. Free veut dire « libre », mais aussi « gratuit ».
  2. Autre traduction de proprietary : propriétaire.
  3. Informatique de confiance.
  4. L'équivalent français du copyright est le droit d'auteur, mais comme il y a des différences significatives entre les deux, nous ne traduisons pas copyright dans cet article.
  5. Traduction possible : gauche d'auteur.