BSD, LGPL, GPL : que choisir ?
Par Sébastien Pierre, dimanche 5 novembre 2006 à 15:51 :: General :: #41 :: rss
Je pensais avoir fait mon choix au niveau des licences open-source, mais en discutant aujourd'hui avec Pauline, je me suis rendu compte que les choses n'étaient pas si claires que ça.
Sans rentrer dans le détail de toutes les licences open-source (les licences BSD, LGPL et GPL en sont les principales), je vais essayer de présenter un résumé des particularités de chacune, et de voir dans quel cas je trouve pertinent d'utiliser l'une ou l'autre...
Cela fait maintenant plus de 6 ans que je fais de l'open-source, et le choix d'une licence pour mes projets est une question qui s'est répétée, et se répète encore fréquemment. Je me considère plutôt "libertaire" (dans le sens où la liberté -d'expression, de penser, etc- est pour moi primordiale), ce qui m'a poussé finalement à adopter une stratégie assez simple pour mes projets : prendre la licence open-source qui laisse le plus de liberté aux autres, mais aussi à moi.
La licence que j'ai choisi est la license BSD qui ne présente aucune obligation de la part du créateur et de la part des utilisateurs/développeurs, si ce n'est qu'il faut mentionner le/les créateurs dans tout ce qui est dérivé de ce logiciel (en gros, on peut en faire ce que l'on veut, mais il faut "mentionner" les créateurs). Il n'y a pas d'obligation de distribuer le code source, ni de distribuer les versions futures sous license BSD.
L'autre license est la license GPL et sa version "light" la LGPL. La particularité de la GPL est qu'elle implique que tous les produits dérivés soient distribués sous GPL, ainsi que tout logiciel qui est "lié" au logiciel licensié en GPL. Ainsi, si j'écris une librairie GPL, tout programme qui utilisera (en fait qui "sera lié") à cette librairie devra être licensié en GPL. La LGPL, plus modérée, ne contient pas cette dernière obligation. Lorsqu'un programme est licensié en (L)GPL, son code source doit être mis à disposition à des utilisateur/développeurs, de manière gratuite, et la license se propage aux dérivations du programme (forks, patches, etc).
La perception du concept de "liberté" entre la BSD et la GPL est très différente : la liberté de la BSD repose sur le faible nombre d'obligations qui s'y rattachent (la seule étant la mention du créateur), alors que la liberté de la LGPL/GPL repose sur la garantie que le code source du logiciel restera toujours accessible, liberté qui est paradoxalement garantie par l'obligation de redistribuer les produits dérivés/liés sous la même license.
Jusqu'à présent, je ne m'inquiétais pas trop de l'évolution des logiciels que j'ai mis en open-source : étant le créateur, et les projets étant relativement petits, la probabilité d'un produit dérivé non distribué en open-source est relativement faible. La license BSD, de par son nombre restreint d'obligations, me paraissait plus favorable à une utilisation plus large de mes programmes, notamment au sein d'entreprises qui seraient "un peu frileuses" quand à l'obligation de faire de l'open-source.
D'un point de vue d'un développeur indépendant, la license BSD offre donc l'avantage d'être simple, et de ne pas restreindre l'ensemble des utilisateurs potentiels, qui pourraient être dérangés par des obligations additionnelles.
Cela dit, dès lors que l'on fait du logiciel en groupe, ou au sein d'une entreprise, il y a un conflit d'intérêt qui s'installe : d'un côté, le créateur souhaite pouvoir utiliser le logiciel, et idéalement ses produits dérivés, alors que d'un autre côté le groupe ou l'entreprise peut vouloir se réserver le droit de poursuivre le développement du logiciel de manière propriétaire, pour des raisons stratégiques.
L'utilisation de la license BSD dans ce cas offre beaucoup moins de garanties des deux côtés : un créateur employé pourra voir des travaux dérivés devenir propriétaires, et de même, l'entreprise pourra voir un concurrent récupérer le programme sans en diffuser les modifications. Dans ce contexte, la license LGPL offre plus de sécurité : il y a une garantie d'accès aux logiciels dérivés, mais avec une possibilité d'intégration dans un logiciel propriétaire (la partie licensiée en LGPL restant dans tous les cas open-source).
Les obligations rattachées à la LGPL ont ici un potentiel de catalyseur de coopération entre les créateurs et les utilisateurs, alors que la BSD n'entraîne pas vraiment ce mécanisme de partage de contributions. Pour ma part, je pense que dès lors qu'il y a un développement fondé sur des intérêts partagés, l'utilisation de la license LGPL présente une certaine sécurité pour l'avenir du projet, assurant que celui-ci sera toujours disponible et ouvert aux modifications.
Ainsi si l'entreprise FooFactory distribue CoolSoftware 1.0 en BSD, CoolSoftware 2.0 pourrait très bien être propriétaire, alors que si CoolSoftware 1.0 étaient en LGPL, CoolSoftware 2.0 serait au moins en partie en LGPL (et pourrait également avoir des parties propriétaires, mais elles ne doivent pas êtres dérivées du code de CoolSoftware 1.0).
Considérons maintenant le cas d'un gouvernment (ou d'une institution publique) qui finance le développement d'un logiciel. L'idée est donc qu'il n'y a pas de profit direct de ce logiciel, qui est développé pour répondre à un besoin publique. Dans le cas des licenses BSD ou LGPL, ce logiciel pourrait être utilisé à des fins de profit individuel, au sein d'un produit (partiellement) propriétaire. Ici, le logiciel étant à l'origine financé par l'ensemble de la société, il y a donc tout intérêt à ce que tout ce qui se base sur ce logiciel profite à l'ensemble de la société. La license GPL permet d'aller aussi loin que cela, en assurant que toute dérivation et tout logiciel utilisant le logiciel licensié en GPL soit redistribué sous la même license. Dans ce cas, le logiciel licensié en GPL agit même comme un moteur pour licensier d'autres logiciels en GPL.
Bref, comme vous pouvez le constater, c'est une discussion assez longue. Pour résumer mon point de vue, je dirais que la license BSD convient bien à de petits travaux individuels, mais que plus l'échelle des travaux est importante, plus il est utile d'avoir une "sécurité" quand à l'avenir de la distribution du projet, et que dans ce cas, les licences LGPL et GPL deviennent plus pertinentes.
Je trouve aussi qu'il y a quelque chose d'intéressant derrière le paradoxe des libertés/obligations de la (L)GPL : cette license contient des obligations qui garantissent la "liberté" du logiciel. Il s'agit ici d'une "liberté" orientée/contrôlée, plutôt que d'une liberté au sens large -- mais il me semble qu'une liberté au sens large n'a de sens qu'au sein d'un petit groupe d'individus aux idéaux similaires... enfin, tout un débat philosophique !
Commentaires
1. Le mardi 28 novembre 2006 à 15:21, par fat
2. Le mardi 28 novembre 2006 à 15:43, par Sébastien
3. Le lundi 9 avril 2007 à 14:46, par dfg
4. Le lundi 9 avril 2007 à 15:55, par Sébastien
5. Le dimanche 21 octobre 2007 à 11:09, par coucou
6. Le jeudi 28 février 2008 à 01:28, par nabodix
7. Le jeudi 10 avril 2008 à 03:24, par matt
8. Le dimanche 6 juillet 2008 à 08:36, par Samy
9. Le vendredi 18 juillet 2008 à 16:21, par Oscar
10. Le dimanche 20 juillet 2008 à 10:27, par Sébastien Pierre
11. Le samedi 20 juin 2009 à 06:05, par Alatox
12. Le lundi 22 juin 2009 à 11:32, par Sébastien
13. Le lundi 7 décembre 2009 à 06:24, par greg
14. Le mardi 17 août 2010 à 08:17, par prom dress
15. Le mardi 24 août 2010 à 14:54, par timberland shoe company
16. Le jeudi 26 août 2010 à 00:43, par dresses
Ajouter un commentaire