Le difficile choix des licences libres – LGPL vs GPL

Erratum : voir à la fin de l’article

Suite à des discussions sur différents salons, j’ai décidé d’écrire cette article pour essayer d’expliquer clairement la différence entre la licence LGPL et la licence GPL.

Tout d’abord, voici un tableau, repris sur le site de Korben qui résume assez bien les différentes licences libres.

Licence
Mix avec du code non libre
Modifications secrètes
Tout le monde peut changer la licence
Privilèges Accordés aux détenteurs concernant les modifications
Compatible GPL (V2)
Copyleft
Langue Officielle
GPL
NON
NON
NON
NON
OUI
OUI
EN
LGPL
OUI
NON
NON
NON
OUI
OUI
EN
BSD
OUI
OUI
NON
NON
NON
NON
EN
Domaine Public
OUI
OUI
OUI
NON
OUI
NON
N/A

Bon, donc après ce petit tableau (non exhaustif), on va en discuter mais on va se concentrer sur les licences GPL et LGPL.

Si vous développez, vous serez confronté à un choix très important quand à la diffusion de votre logiciel : Quelle licence y intégrer?

Si on résume très fortement, vous avez le choix entre 3 licences: la licence propriétaire (dont je ne ferais certainement pas la promotion 😉 ), la licence GPL et la licence LGPL.

Si vous êtes comme moi, un défenseur et/ou utilisateur des logiciels libres, vous allez vous diriger tout naturellement vers les licences GPL/LGPL.

Laquelle choisir? C’est un choix important en fonction de la pratique et de votre choix philosophique.

La licence LGPL

Pour faire simple, elle dit que n’importe qui peut faire n’importe quoi avec votre logiciel, y compris utiliser des “briques” propriétaires pour faire tourner le logiciel.

La licence GPL

C’est la même chose que la licence LGPL mais plus permissive, dans le sens que le code du programme doit être obligatoire libre (CopyLeft). On n’utilise aucun code propriétaire. L’intérêt principal est de gagner de la puissance face au monde du logiciel propriétaire et ainsi espérer qu’ils libèrent leur code. C’est notamment pour cette raison que Richard M. STALLMAN prône l’utilisation exclusive de la licence GPL. Même s’il peut passer pour un extrémiste, on ne peut pas nier que son combat est toujours là et opérationnel, même après 30 ans. Peu de personnes peuvent en dire autant.

Jusque maintenant, je n’étais pas regardant sur le contenu des licences derrière le fonctionnement. Mais à la vue des “bagarres” sur les brevets logiciels que l’on peut lire actuellement, j’ai décidé de limiter au maximum les logiciels propriétaires. C’est à dire que si je sais que tel ou tel programme peut fonctionner sans licence propriétaire, alors je choisis par passer par le full libre. Mais je ne suis pas utopiste, je sais que l’on n’aura pas de matériel ou de logiciel full libre dès demain. C’est un rêve, mais on s’en approche doucement.

A vous de choisir, et de suivre votre voie.

Erratum : Pour faire une petite correction, la licence de Apache OpenOffice est la AL v2 (Apache Licence version 2). Cette licence permet l’utilisation du code dans du code propriétaire.  On ne peut pas mettre de LGPL dans le code, ni de GPL. Que du “très” libre ( AL v2, ou MIT, ou BSD …).

Donc pour résumé, Apache OpenOffice n’est pas en GPL mais bien en AL v2.  La licence GPL v3 est contaminante. Si le code est en GPL v3, en ajoutant du code AL v2, il devient GPL. Or la licence Apache stipule qu’on ne peut pas modifier les en-têtes -> incompatibilite entre les 2.

4 thoughts on “Le difficile choix des licences libres – LGPL vs GPL”

  1. Quelques compléments d’informations par rapport à ton article:
    1. Tu occultes la licence AGPL alors que c’est la licence de la FSF la plus protectrice pour la communauté des Logiciels Libres.
    2. On peut changer la licence d’un code source sous BSD et c’est compatible GPL, c’est d’ailleurs le but de la licence BSD, que le code source soit “libre” d’aller où “il” veut (logiciel propriétaire, libre…), cf. http://fr.wikipedia.org/wiki/Licence_BSD
    3. On ne peut pas faire n’importe quoi avec un logiciel sous licence LGPL, il y a les mêmes obligations que la licence GPL, par contre il y a une exception qui permet de lier dynamiquement au runtime (pas statiquement à la compilation) le code LGPL avec un logiciel propriétaire.
    Concrètement, si quelqu’un modifie le code LGPL il a les mêmes obligations qu’avec la GPL.
    4. Enfin, pour répondre à ta question de départ du choix difficile entre BSD vs LGPL vs GPL vs AGPL, pour moi, ça dépend de deux variables: objectif de diffusion et protection des utilisateurs/développeurs.
    Par exemple, si tu fais une implémentation d’un protocole sous forme de librairie ou d’une librairie Javascript, ton objectif principal devrait être la diffusion de ce protocole ou librairie pour éviter de mauvaises implémentations, donc il vaut mieux que tu mettes ton code sous licence BSD ou à la limite LGPL.
    Par contre, si tu fais un logiciel complet qui tourne directement sur l’ordinateur ou le téléphone de la personne et que tu ne veux pas de greffons propriétaires, alors la GPL est recommandée.
    Enfin, si tu fais une application Web qui par définition fonctionne à distance de l’ordinateur de l’utilisateur, et que tu veux éviter que quelqu’un lance une offre en SaaS avec des modifications qui ne sont pas remontées à la communauté, alors il faut prendre la licence AGPL.

  2. Merci pour ce commentaire.
    En fait, j’ai sciemment omis les autres licences pour expliquer aux débutants. J’ai limité les licences pour essayer d’être clair. Maintenant il est vrai que l’on peut se perdre dans le choix, d’où mon titre plus que léger (LGPL vs GPL).J’ai réalisé également cet article suite à des attaques personnelles sur mon choix d’utilisation OpenOffice au lieu de LibreOffice.
    Ton commentaire est pertinent, et je t’en remercie. J’espère que les personnes iront un peu plus loin dans les recherches.

  3. Je ne comprends pas le rapport entre cet article et ton choix d’OpenOffice.

    Si tu choisis tes logiciels uniquement pour la licence, et comme tu préfères GPL, puis LGPL, puis BSD, tu aurais dû prendre LibreOffice, non ?
    LibreOffice est sous LGPL, OpenOffice sous licence Apache, qui est de même type que la BSD.

    De plus, d’un point de vue technique, la communauté des développeurs a migré massivement à LibreOffice: https://www.ohloh.net/p/compare?project_0=LibreOffice&project_1=Apache+OpenOffice

    De mon point de vue, à moins d’un retournement de situation de la Document Foundation, OpenOffice est sur une voie de garage.

  4. Hello, dire que OpenOffice est sur une voie de garage, je ne sais pas ce qui te fait dire cela. Je suis sur les listes de travail du groupe Apache OpenOffice et le projet avance bien. La nouvelle version d’Apache OpenOffice met du temps à sortir car le code source doit être remis correctement à la licence AL v2. (voir l’article précédent http://denis-sylvain.be/apache-openoffice-la-fondation-apache-retrace-9-mois-de-migration/). De plus travaillant pour EducOOo (http://www.educoo.org), nos sources sont sur les bases des sources d’OOo et donc on suit naturellement l’évolution. Je ne vais pas retourner ma veste au moindre “pépin” ou “conflit” 😉 . Je veux éliminer au maximum les logiciels propriétaires. Apache OpenOffice me correspond mieux dans la philosophie.
    Pour l’article avec la comparaison entre LO et AOO, les données sont erronées dans le sens que Apache ne diffuse pas le nombre de développeurs qui travaillent sur le projet et d’un autre côté on s’en fout 😉 . Quand les gens travaillent avec un traitement de texte, ils s’en foutent de savoir qu’il y a eu 1 ou 100 développeurs derrière.
    Pour info, je ne critique pas le Document fondation (qui est une bonne chose – à voir avec le temps) mais je critique les méthodes d’attaques gratuites sur les personnes qui ne suivent pas leurs idées. Le libre permet la concurrence et donc l’évolution des produits. Dans la logique, on devrait s’entr’aider au lieu de s’entretuer. Cela fait le jeu du logiciel propriétaire.

Laisser un commentaire

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.