Pourquoi je préfère la licence GPL aux licences permissives type BSD/MIT

En avant-propos, ce billet ne représente que ma démarche personnelle et mon humble point de vue sur l’utilisation des licences libres, correspondant forcément à ma façon d’agir, de faire, un point de vue duquel je suis volontiers prêt à discuter.

En matière de licence, pour tout ce qui ne concerne pas mes projets personnels, j’adopte complètement le point de vue de Zed Shaw, auteur du manuel de Python Learn Python The Hard Way et d’articles parfois polémiques (mais souvent intéressants), qui a écrit son point de vue sur le choix de la licence d’un logiciel par son auteur dans cet article (traduit par Framasoft, source originale en anglais) et que je vais essentiellement résumer par cette citation :

I really don’t care what license people use on their software, it’s their software and bitching at them for the license they choose is offensive. They wrote it, put their blood and sweat into it, and you should be glad that you get the privilege of even seeing it.

(traduction approximative : Je me fiche complètement de la licence que les gens utilisent pour leur logiciel, c’est leur logiciel et dire du mal d’eux pour la licence qu’ils ont choisi est offensant. Ils l’ont écrit, ont sué sang et eau pour lui et vous devriez être content d’avoir le privilège de juste le voir)

En tant que programmeur du Logiciel Libre, je ne peux qu’adhérer à ce point de vue. Par contre, je peux décrire pourquoi dans quasiment tous mes projets je n’utilise – personnellement encore une fois – que la GPLv3 (General Public License version 3).

GPL vs BSD

GPL vs BSD, une opposition classique au sein du Logiciel Libre

Éviter la fuite de code hors de la communauté

Rappelons quelques bases : tout le code écrit sous une licence permissive type BSD ou MIT restera dans la communauté du Libre. Par contre l’une des principales caractéristiques des licences permissives est la possibilité offerte de rendre privatrice une bifurcation (fork) d’une base de code au précédent sous une licence permissive. Très concrètement, il est autorisé de bifurquer un logiciel sous licence BSD ou MIT et d’en faire un logiciel privateur. Cet aspect est bien connu et parfois voulu des utilisateurs de ces licences, permettant toutes les utilisations possibles des bases de code sous ces licences. Le but recherché est d’attirer la plus large base possible d’utilisateurs et de contributeurs qui utiliseront et contribueront peut-être un jour à la base de code originale ou à ses dérivées.

FreeBSD, principal projet des BSD sous licence MIT

FreeBSD, principal projet sous licence BSD

J’ai toujours été pour ma part gêné par cette caractéristique des licences permissives. Je l’assimile à une potentielle fuite de code hors de la communauté. En effet, un cas d’usage de ces licences va consister à bifurquer une base de code existante et à implémenter de nouvelles fonctionnalités à partir de cette base de code. Ces nouvelles fonctionnalités, développées au sein d’une base de code privatrice, n’alimenteront donc pas en retour la base de code communautaire, accessible publiquement, librement utilisable et modifiable.

Prenons un cas assez courant, les routeurs construits sur une base de code sous licence BSD (souvent FreeBSD et OpenBSD). Pour le dire franchement, la liste de ces produits est à tomber par terre. Et ça n’est bien sûr que l’extrême sommet de l’iceberg.

Ma position est donc au final que ces licences permissives, bien que facilitant l’appropriation d’un Logiciel Libre et assurant à l’individu le maximum de droits sur une base de code qu’il n’a pas écrite, desservent la communauté dans son ensemble en laissant optionnelle la réintégration à la base de code communautaire les éventuels développements survenus sur la bifurcation devenue privatrice, développements pourtant eux-mêmes basés sur cette base de code produite à l’origine par la communauté.

iceberg

On peut se douter de la masse de produits privateurs réalisés à partir de logiciels sous licences permissives par l’important nombre de ceux qui sont connus

Une licence est fondée sur le droit, pas sur l’informatique

La GPLv3 et d’une manière générale perçue comme complexe par les informaticiens du Libre, ce qui représente un frein à son adoption. Inutile de le nier, elle l’est indubitablement pour quelqu’un de non-formé au droit (moi le premier). Le texte court et aisément compréhensible des licences BSD/MIT provoque souvent un phénomène d’adhésion, faisant que les licences BSD/MIT sont souvent préférées à la GPLv3. Mais cette brièveté cache des conséquences potentielles insoupçonnées, dont la plus importante a été décrite au chapitre précédent.

C’est à mon sens une grave erreur que de se référer à la brièveté d’une licence pour la percevoir comme “bonne”. Il est bon d’avoir le contrôle complet sur ce que l’on produit, mais la licence n’est pas une partie technique du programme, mais la définition juridique des droits que vous accordez à vos futurs utilisateurs et exploitants de votre code, le droit d’auteur vous donnant par défaut tous les droits sur la production de votre programme.

La licence évolue dans le monde du droit et le fait que vous soyez ou non capable de la lire ne devrait avoir dans les faits avoir que peu d’importance. Êtes-vous capable d’écrire vous-même le contrat de vente de votre maison ? Êtes-vous capable de percevoir et comprendre toutes les implications des conditions générales d’utilisation et de confidentialité des services en ligne que vous utilisez, comme celles de Facebook ou Gmail (désolé si vous n’êtes pas utilisateur de ces services, beaucoup le sont même chez les Libristes. J’utilise moi-même Twitter) ? La plupart du temps, vous n’êtes pas en capacité de le faire et vous devez vous appuyer sur un avocat pour étudier correctement un contrat. C’est absolument la même chose avec votre programme. Si vous souhaitez le défendre juridiquement de manière efficace, il vous faudra vous reposer sur le travail de professionnels du droit.

Eben Moglen

Eben Moglen, avocat conseil de la Free Software Foundation et président du Software Freedom Law Center.

Et c’est ici que la GPLv3 entre en jeu. Autant elle peut paraître effrayante par sa complexité, autant elle protégera juridiquement de manière efficace votre logiciel. Cette licence a su évoluer face aux attaques que le Logiciel Libre a subi, comme la Tivoisation. Cela est bien sûr valable si vous adhérez aux principes prônés par le créateur de cette licence, ce qui est mon cas dans le cadre de mes projets.

Une licence en accord avec sa démarche propre

Comme décrit en introduction, je pense qu’il faut accorder de l’importance à la licence qu’on choisit pour son logiciel afin de le protéger juridiquement, et par la même occasion protéger sa communauté d’utilisateurs et le travail produit par cette communauté.

Ce choix est également primordial pour s’assurer que le cadre d’utilisation dudit logiciel sera conforme à celui que désirait le créateur du projet. Dans mon cas, la GPLv3 accorde à chaque utilisateur du code les mêmes droits mais aussi les mêmes devoirs, à savoir reverser à la communauté le code modifié rendu public en conservant la même licence. Cela permet ainsi aux individus de se nourrir du travail de la communauté, et la communauté de bénéficier du travail des individus. Un cercle vertueux qui correspond à mon idéal personnel pour la communauté du Logiciel Libre.

Et vous ? Que pensez-vous du choix de la licence GPLv3 au lieu des licences plus permissives type BSD/MIT pour vos projets ? N’hésitez pas à réagir dans les commentaires.

21 thoughts on “Pourquoi je préfère la licence GPL aux licences permissives type BSD/MIT

  1. J’utilise personnellement une licence personnelle qui dérive de la licence rien à branler et de la beerware.

    Je n’ai ni l’envie ni le temps, de chercher à faire la police avec les gens qui utilisent mon code. De plus, j’ai besoin de comprendre les droits que je laisse sur le travail que je produit. Utiliser une licence que je ne comprends pas (et je ne comprends sincèrement pas la GPL) m’empêchera mécaniquement de la faire respecter ou même de pouvoir expliquer à quelqu’un aussi perdu que moi de lui expliquer ce qu’il peut faire ou non.

    Mais ce choix cache aussi une vision différente du clivage entre logiciel libre et fermé. Je considère que les logiciels libres ont intrinsèquement des qualités qui les rendent plus enviables que les logiciels privateur. Il n’ont donc pas besoin de montage légal complexe. Je préfère une démarche tel que le fond une partie des développeurs de Linux : expliquer ce qu’est le libre, comment il fonctionne et comme je suis convaincu, je lève que les gens convergeront tôt ou tard vers ce modèle.

    J’ai exactement la même démarche sur d’autres aspects de la vie. Par exemple sur l’utilisation du vélo. Je ne suis pas aux grève qui m’entourent ce qu’ils devraient faire ou non. Mais je leur montre les avantages de mon mode de déplacement.

    • barmic : merci pour ton retour, j’en suis très content car il recoupe plusieurs points évoqués dans mon article, en particulier le point sur l’influence de la complexité de la licence sur lequel j’argumente qu’un “technicien” (au sens large) de l’informatique n’est pas un technicien du droit et qu’il n’a donc pas à s’intéresser à la complexité de la licence et doit faire confiance aux professionnels du droit.

      tu abordes également un autre point très intéressant sur le clivage entre Logiciel Libre et logiciel fermé. Et c’est vrai qu’aujourd’hui plusieurs articles ont célébré la “victoire” du modèle du Libre dans l’industrie du logiciel. Ce qui semble valider que le modèle des licences permissives permettant aux entreprises de piocher dans le Libre à leur guise est finalement plus avantageux que le modèle propriétaire “classique”. La grande question sera sur le retour effectif en terme de ressources, de contribution et d’alimentation de la base de code développée hors du Libre mais qui en est issue.

  2. Ma position a changé 2 fois à ce sujet.

    D’abord, au début du projet Duniter, j’avais pris la licence MIT pour les raisons que tu évoques (simplicité, et appropriation commerciale possible, c’était voulu).

    Puis 1er changement : la licence GPL paraît plus appropriée pour se protéger de “quelque chose” … je ne comprenais pas bien quoi à l’époque. Duniter est passé en GPL.

    Enfin 2ème changement : cette fois je conserve la GPL, mais je comprends que la licence (GPL/MIT/BSD/autre) est née d’un monde en monnaie-crédit, et que c’est bien d’elle et de ses créanciers pyramidaux qu’on se protège. Après tout : aurait-on besoin de protéger son code d’un unique utilisateur qui privatise du code, ou bien est-ce surtout pour faire face au cas de multinationales avec un puissant pouvoir de création de code (une armée de développeurs payés en monnaie-crédit) et de son déploiement ?

    Mon avis est que les licences actuelles sont surtout nées de ce monde en monnaie-crédit, et autant la GPL paraît appropriée dans celui-ci, autant elle ne me le paraît pas autant qu’une MIT/BSD dans une économie libre. Mais on n’y est pas encore. Toutefois, constatant que les producteurs de logiciels libres, eux, choisissent dans un 1er temps spontanément MIT/BSD, je pense que leur esprit y a déjà un pied sans le savoir … et que c’est bien l’économie non-libre contre laquelle ils se battent qui les oblige à finalement choisir une GPL.

    • Bon, après discussions ultérieures à ce commentaire, j’ai finalement pu voir contre quoi l’on se battait, et ce n’est pas spécialement l’économie non-libre. Et suite à cette compréhension, la GPL prévaudra donc à tous les coups me concernant.

      Mais qu’est-ce donc que cette entité ?! Et puis qu’est-ce qu’il croit avoir compris le cgeek ? Pour le savoir, il suffira de suivre mon blog. J’y consacrerai un article, quand je trouverai le temps 🙂

      > Accessible en cliquant sur mon pseudonyme.

  3. C’est encore un très bon article très clair sur un sujet compliqué avec un point de vue personnel justifié mais non assené de force.

    Je me suis intéressé aux licences très tardivement à cause de leur complexité et parce que c’est moins drôle que de coder 😉 J’ai aujourd’hui un point de vue très similaire au tien où je privilégie la GPL non pas pour fermer le logiciel mais pour forcer les retours à la communauté.

  4. Salut 🙂

    Il me semble (en tant que non juriste), que la protection qu’apporte la GPL n’a de réelle puissance que dans le cas de libre=gratuit, lorsque le logiciel protégé est disponible publiquement en ligne.

    Dès que le logiciel est distribué d’une façon sélective (contre rémunération en particulier), même si cette protection existe, la contribution à la communauté ne devient effective que si les utilisateurs sont aussi des techniciens (suffisamment pour savoir qu’un logiciel est modifiable ) et ont connaissance des droits que leur confère cette licence (qui lit les fameuses CGU citées dans l’article ? ).

    Par exemple, si je fait des modifications sur un logiciel sous licence GPL, que je vends ensuite. Seul mes “clients” sont en droit d’obtenir le code source. Rien ne m’oblige d’ailleurs à mettre fortement en avant ce droit.

    Si mes “clients” ne sont pas techniciens, quel intérêt pour eux d’obtenir ce code-source et, a fortiori, de le redistribuer ? Il y a fort à parier que la communauté ne bénéficie pas, en pratique, des modifications, même si cela pourrait être le cas par ricochet si les “clients” redistribuaient le logiciels et son code-source.

    En réalité, dans le cas d’une économie de marché du logiciel libre, la GPL protège l’utilisateur contre la contrainte d’un prestataire unique pour intervenir sur le logiciel, mais ne garantie pas vraiment en pratique que la communauté bénéficiera des améliorations effectuées, même si c’est le cas théoriquement.

  5. J’ai une préférence pour la LGPL, il me semble que c’est un compromis bien meilleur : utilisable (linkable) dans un produit commercial, mais toutes amélioration doit être reversé à la communauté. Le juste milieux entre la viralité de la GPL et la permissivité de BSD/MIT, selon moi.
    Je suis d’ailleurs étonné de pas la voir apparaître dans l’article

    • Merci c’est une très bonne remarque. Je n’en ai pas parlé car je ne l’ai jamais utilisé et l’article est en partie un retour d’expérience.

  6. Si une entreprise fork et vend le code utilisé, il restera toujours la source qui sera libre.
    Est ce qu’il y a des exemples où une entreprise qui s’est approprié du code à fait mourir un projet parce qu’il n’avait pas contribué ?
    Si la GPL est si puissante et vertueuse, le logiciel libre serait à mon avis bien plus avancé qu’il ne l’est.
    Parmi les plus gros projets de logiciels libre, je vois très souvent une entreprise commerciale derrière. Est ce que c’est la pire des choses compte tenu de la situation actuelle.
    Si une entreprise à besoin de pérenniser son activité en ne publiant pas son code pour un moment donné, est ce que c’est pire que de ne pas laisser une opportunité à cette entreprise et contribuer par ailleurs sur d’autres projets.

    Après, même avec le droit, qui peut s’assurer que son code n’est pas repris par un autre sans aucun respect de la licence ?
    On voit bien que le principe de brevets est inutile et contre productif.

    Penser que des verrous (même si l’objectif est louable) permettront d’améliorer le logiciel libre me semble un peu optimiste, proche de l’univers des Bisounours ou des Télétubbies.
    Si le développement du logiciel libre est lent et n’arrive à percer que dans certaines niches, c’est pas à cause des licences mais plutôt la stratégie adoptée par les multi nationales pour écraser cette menace.

    Si on doit partager quelque chose, on ne le fait pas sous conditions.
    Après, chacun dispose de son travail comme il l’entend.

    • Bien sûr dans la réalité tu peux tuer ton voisin et lui voler sa voiture. Et si tu es né dans un pays sans police et sans justice, tu n’auras rien à craindre. Mais ça n’est pas (la plupart du temps) le cas dans les pays industrialisés. Les licences t’apportent quand même une expression légale de ta volonté vis-à-vis de l’utilisation et de la redistribution de ton projet.

      Je n’ai pas de statistiques sur “les plus gros projets de logiciels libre, je vois très souvent une entreprise commerciale derrière”. Linux ? Debian ? Gnome ? Kde ? Beaucoup de gros projets sont avant tout portés par la communauté, même si un nombre variable d’acteurs commerciaux interviennent très souvent (l’exemple du noyau Linux est parlant à ce sujet).

      Certains projets sont portés par une société, je pense à Red Hat. Le recours à une fondation permet souvent d’équilibrer cette relation.

      J’ai d’ailleurs d’expérience tendance à me méfier de plus en plus des projets grossissants ne créant pas de fondation assurant la pérennité du projet.

  7. Personnellement, mon choix de licence dépend de ce que j’ai écrit. Pour quelque chose de très court, dont l’intérêt réside dans sa réutilisation massive plutôt que dans son originalité ou dans le travail que j’ai mis dedans, je préfère choisir la licence la plus permissive possible, soit la WTFPL/LPRAB, soit la CC-0 — faute de pouvoir élever son travail dans le domaine public en France — ou éventuellement une BSD ou MIT/Expat.

    Il en est de même de mes empaquetages Debian : pour que ça puisse survivre sans problème à un changement de licence, je choisis la même licence que le projet amont si elle est déjà très permissive, et la CC-0 sinon.

    Lorsqu’il s’agit de projets un peu plus importants, c’est plutôt GPLv3, voire AGPLv3.

    Convernant les licences choisies par les autres, dans certains cas je me permets de critiquer, par exemple :
    – lorsque l’auteur s’est manifestement trompé et a choisi par erreur une licence non libre, ce qui est le cas avec certains beerwares qui /demandent/ de payer une bière à l’auteur ;
    – lorsque l’auteur revendique une démarche libre, mais a choisi une licence non libre et s’obstine dans ce choix.

    • J’ai la même approche pour l’empaquetage. Et la même approche pour les licences qui se croient libres mais qui ne le sont pas 🙂 J’ai eu le cas une fois avec un logiciel qui excluait les utilisateur s’ils étaient militaires.

  8. À un moment, je me suis moi aussi posé la question du “quelle licence ?” Il s’agissait des textes du blog. Je n’ai pas de projet logiciel suffisamment important pour me gratter la tête dessus.

    J’ai choisi une licence CC-by, en faisant la reflexion que c’est une licence BSD-like appliquée au contenu artistique (en l’occurence textuel). J’ai choisi cette licence parce …

    “Aussi longtemps qu’il est bien mentionné que je suis l’auteur de ces textes, alors vous pouvez les utiliser, et ce pour n’importe quelle raison.”

    … et je ne voulais pas restreindre leur usage. Vas-y mec, sers toi.

    La GPL impose que les oeuvres créés par modification du code originel restent sous cette licence. Je trouve que c’est imposer trop de restrictions sur le futur auteur. D’autre part, elle interdit l’utilisation d’oeuvres qui serait sous licence moins ouverte qu’elles. C’est aussi une restriction.

  9. Je pense que le choix de la licence, pour un non professionnel du droit, est d’abord lié aux déclarations d’intentions affichées par ceux qui l’on créé. En dehors des grandes idées, je ne comprend pas moi même toutes les subtilités techniques de ces licences. Cela ne m’empêche donc pas d’utiliser la GPLv3 lorsque l’occasion se présente.

    Dans la pratique et à mon humble niveau, je pourrais ne pas mettre de licence que ce serait pareil. Je le fais quand même pour une raison simple : montrer que je suis en accord avec l’esprit derrière cette licence. En le faisant, je participe aussi à mon échelle, à sa diffusion.

  10. Je ne suis pas développeur, quand je diffuse un peu de code c’est principalement sous WTFPL ou assimilé, rarement en GPL. La raison est qu’il est souvent court, ou bien que je considère qu’il n’est pas suffisamment propre pour baser tout un projet dessus, mais qu’il peut quand même servir d’exemple (bon ou mauvais ^^ ).

    Mon avis diverge par contre sur le fait de comprendre les licences. Certes quand c’est ton propre code, cela a moins d’importance, mais quand tu récupères le code de quelqu’un d’autre il faut bien savoir quels sont tes droits et devoirs.

    Quand tu utilises la GPL, tu impose alors aux futurs contributeurs le fait de comprendre la GPL. Je ne pense pas que cela soit mal, mais pour certains petits projets cela ajoute une complexité qui n’est pas nécessaire, et peut faire fuir les personnes qui ne sont pas encore à l’aise avec les licences libres.

    • “Mon avis diverge par contre sur le fait de comprendre les licences. Certes quand c’est ton propre code, cela a moins d’importance, mais quand tu récupères le code de quelqu’un d’autre il faut bien savoir quels sont tes droits et devoirs.”

      Tu peux comprendre et connaître les implications de chacune des licences sans les avoir lues. Beaucoup d’efforts sont faits pour vulgariser la compréhension des licences (je pense en particulier à la GPL et les licences Creative Commons) pour les comprendre sans être un spécialiste du droit.

      Croire qu’on peut gérer soi-même dans un projet est une erreur. Par exemple dans la création d’entreprise, tôt ou tard tu te heurtes à de la compta, de l’écriture de contrat, la revente de ta société, de la fusion-acquisition. Si tu veux le faire par toi-même au mieux tu le fais mal et tu perds de vue ce sur quoi tu es efficace, au pire tu fais n’importe quoi. Il est indispensable de déléguer.

      Et c’est pareil avec la licence de ton logiciel, tu délègues à des spécialistes du droit qui défendent les mêmes idées que toi la rédaction de ta licence d’utilisation. Et tout le monde s’en porte bien mieux.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *