par Richard Stallman
(La version originale de cet article a été écrite en mars 1998 à propos d'un brouillon de la NPL. Notre premier article sur ce sujet était Netscape envisage la libération du navigateur Netscape).
La Netscape Public License, ou NPL, telle qu'elle a été finalement conçue en 1998, est une licence libre -- mais elle a trois défauts majeurs. Le premier défaut est la diffusion d'une mauvaise philosophie, le deuxième est de placer la communauté du logiciel libre en position de faiblesse, et le troisième crée un problème pratique majeur au sein de la communauté du logiciel libre. Deux de ces défauts s'appliquent également à la Mozilla Public License. À cause de ces défauts, nous vous pressons de ne pas utiliser la NPL ou la MPL pour votre logiciel libre.
Le premier problème que j'ai relevé dans la NPL était qu'elle ne donne pas à Netscape et au reste d'entre nous des droits équivalents, comme le fait la GNU GPL. Sous le régime de la NPL, nous pouvons utiliser le code de Netscape seulement comme spécifié dans la NPL, mais Netscape peut utiliser vos modifications de n'importe quelle manière -- même dans des versions propriétaires du logiciel.
Le problème ici est subtil, parce que cela ne supprime pas la liberté du programme. Cela ne nous empêche pas de redistribuer le programme, ou de le modifier; cela ne nous retire aucune liberté particulière. D'un point de vue purement pratique, cela pourrait ne pas ressembler du tout à un problème.
Le problème réside dans le message profond qu'illustre cette clause. Elle nie l'idée d'une coopération entre égaux sur laquelle repose notre communauté, et dit que travailler sur un programme libre signifie contribuer à un produit logiciel propriétaire. Ceux qui acceptent ces conditions en seront certainement affectés, et le changement ne renforcera pas notre communauté.
Une solution proposée pour cette asymétrie est de la borner dans le temps -- peut-être trois ou quatre ans. Ce serait une grande amélioration, parce que la limite temporelle ruinerait la problématique du message sous-jacent.
Les effets pratiques de cette condition sont réduits par un autre inconvénient de la NPL : elle n'est pas conçue comme une vraie gauche d'auteur. En d'autres termes, elle ne fait pas beaucoup d'effort pour garantir que les modifications faites par les utilisateurs soient disponibles en tant que logiciel libre.
La MPL (Mozilla Public License) n'a pas ce problème. C'est la principale différence entre la MPL et la NPL.
La NPL a l'apparence d'une gauche d'auteur; elle dit explicitement que toutes les modifications faites par des utilisateurs doivent être fournies sous la NPL. Mais cela s'applique seulement aux modifications apportées au code existant -- pas à de nouvelles routines, si celles-ci sont placées dans des fichiers séparés. Sous l'angle pratique, cela signifie qu'il est facile de réaliser des modifications propriétaires si vous le souhaitez : vous n'avez qu'à placer le gros de votre code dans un fichier séparé, et appeler votre collection un Travail Original. Seules les routines d'appel ajoutées aux anciens fichiers devront être fournies sous la NPL, et elles ne seront pas très utiles en elles-mêmes.
L'absence d'une vrai gauche d'auteur n'est pas une catastrophe; cela ne rend pas le logiciel non-libre. Par exemple, les termes de la distribution de X.org n'essayent pas du tout d'employer une gauche d'auteur, mais X.org est néanmoins un logiciel libre. BSD est également un logiciel libre sans gauche d'auteur (bien que les termes de BSD aient un sérieux inconvénient et ne devraient pas être imités -- si vous voulez distribuer du logiciel libre sans gauche d'auteur, vous devriez plutôt utiliser les termes de X.org à la place). Le logiciel couvert par la NPL est également du logiciel libre sans gauche d'auteur, et cela ne suffit pas à faire de la NPL une licence pire que d'autres licences sans gauche d'auteur.
Par conséquent, bien qu'il n'y ait pas de catastrophe, il y a tout de même un inconvénient. Et parce que la NPL ressemble à une gauche d'auteur, certains utilisateurs peuvent se tromper à son propos, et pourraient adopter la NPL, imaginant qu'ils obtiennent les bénéfices de la gauche d'auteur pour leur logiciel, alors que ce n'est pas le cas. Pour éviter cet écueil, nous devons travailler dur à informer les gens à propos d'un problème qu'il n'est pas facile d'expliquer en peu de mots.
Le problème pratique le plus sérieux avec la NPL est qu'elle est incompatible avec la GNU GPL. Il est impossible de combiner du code couvert par la NPL et du code couvert par la GNU GPL ensemble en un seul programme, même en liant des fichiers objet ou des bibliothèques; quelle que soit la manière employée, cela viole une licence ou l'autre.
Ce conflit tient au fait que la GPL est sérieuse sur la gauche d'auteur : elle a été conçue pour garantir que toutes les modifications et les extensions à un programme libre doivent être libres. Donc elle n'offre pas de chausse-trappe autorisant des modifications propriétaires placées dans un fichier séparé. Pour fermer cette chausse-trappe, la GPL interdit de lier le programme sous gauche d'auteur avec du code qui a d'autres restrictions ou conditions -- comme la NPL.
Le fait d'être incompatible avec la GPL ne rend pas le programme non-libre; cela ne mène pas à un problème éthique de fond. Mais c'est la cause d'un sérieux problème pour la communauté du logiciel libre, en divisant la base de code en deux collections qui ne peuvent être mélangées. D'un point de vue pratique, ce problème est très important.
Le résoudre en modifiant la GPL est possible, mais cela signifierait l'abandon de la gauche d'auteur -- causant plus de mal que de bien. Il est également possible de résoudre ce problème par une petite modification de la NPL. (Voir ci-dessous pour les détails spécifiques.)
La NPL est la Netscape Public License, mais la GPL n'est pas la GNU Public License. Le nom complet de notre licence est la GNU General Public License (Licence publique Générale GNU), abrégé en GNU GPL. Parfois des gens mettent de côté le mot «GNU» et écrivent juste GPL.
(Ce n'est pas un problème, seulement un fait que vous devriez connaître.)
Vu que le problème nº3 est le plus sérieux, j'espère que les gens expliqueront poliment et rationnellement à Netscape l'importance d'y trouver une solution. Des solutions sont disponibles; les mettre en oeuvre est de leur ressort.
Nous présentons ici une façon possible d'autoriser la liaison mutuelle entre du code sous NPL et du code sous GPL. Cela peut être fait en ajoutant ces deux paragraphes à la NPL :
A.1. You may distribute a Covered Work under the terms of the GNU General Public License, version 2 or newer, as published by the Free Software Foundation, when it is included in a Larger Work which is as a whole distributed under the terms of the same version of the GNU General Public License. A.2. If you have received a copy of a Larger Work under the terms of a version or a choice of versions of the GNU General Public License, and you make modifications to some NPL-covered portions of this Larger Work, you have the option of altering these portions to say that their distribution terms are that version or that choice of versions of GNU General Public License.
En français :
A.1. Vous pouvez distribuer un Travail Couvert par les termes de la Licence publique générale GNU, version 2 ou plus récente, telle que publiée par la Fondation pour le logiciel libre (FSF), lorsqu'il est inclus dans un Travail Original qui est distribué entièrement sour les termes de la même version de la Licence publique générale GNU. A.2. Si vous avez reçu une copie d'un Travail Original sous les termes d'une version ou d'un choix de versions de la Licence publique générale GNU, et que vous apportez des modifications à des portions de ce Travail Original couvertes par la NPL, vous avez le choix d'altérer ces portions afin de dire que les termes de distribution sont cette version ou ce choix de versions de la Licence publique générale GNU.)
Cela permet aux gens de combiner du code couvert par la NPL avec du code couvert par la GPL, et de distribuer le travail combiné sous les termes de la GNU GPL.
Cela permet aux gens de fournir des modifications à de tels travaux combinés sous les termes de la GNU GPL -- mais le chemin le plus court est de les fournir sous la NPL.
Lorsque des gens utiliseront l'option A.2, leurs modifications seront fournies uniquement dans les termes de la GNU GPL; de sorte que ces modifications ne seront pas disponibles pour Netscape pour inclusion dans des versions propriétaires. Il est raisonnable de croire que Netscape voie ceci comme une infortune.
Cependant, la NPL donne aux développeurs de logiciel propriétaire un moyen facile de rendre leurs modifications non disponibles pour Netscape -- en plaçant leur code dans des fichiers séparés et en appelant la combinaison un Travail Original. En fait, c'est plus facile, pour eux, que la section A.2 pour les utilisateurs de la GPL.
Si Netscape sent qu'il peut assumer la gêne causée par des modifications propriétaires (effectives), certainement la gêne des modifications couvertes par la GPL est petite en comparaison. Si Netscape croit que les seules considérations pratiques encourageront la plupart des éditeurs de logiciel propriétaire à fournir leurs modifications à Netscape, sans raison valable, le même raisonnement devrait s'appliquer dans le monde du logiciel libre. Netscape devrait reconnaître que ce changement est acceptable, et l'adopter, afin d'éviter de placer les développeurs de logiciel libre devant un sérieux dilemme.