Une étiquette qui recouvre deux modèles de licence open source
Ping Europe a pris la décision stratégique d'ouvrir son code sous licence AGPL 3.0. C'est l'occasion de décrypter les différents types de licences dites « open source ».
Linux, Firefox, Git, VLC ou Android sont des logiciels incontournables du paysage informatique, et ils partagent un point commun, celui d'être issus du monde du logiciel libre. Mais derrière cette étiquette parfois fourre-tout se cachent des réalités très distinctes, qui se matérialisent dans des licences précises. Celles-ci définissent ce qu'il est possible de faire, et ce qui est interdit, avec le code.
Vu d'avion, on peut classer ces licences en deux grandes familles. Les licences permissives autorisent presque tout, y compris l'intégration du code dans un logiciel fermé. Les licences copyleft, qui tirent leur nom d'un jeu de mots avec « copyright », vous l'aurez compris, imposent la même liberté à la suite.
Dans les deux cas, un tiers peut réutiliser le code. Les licences copyleft restreignent toutefois la possibilité de « refermer » le code dérivé.
Les licences permissives, ou la liberté d'intégrer sans contrainte
Les plus répandues sont les licences MIT, BSD et Apache 2.0. Elles permettent à un tiers d'intégrer du code ouvert dans un logiciel propriétaire, c'est-à-dire dont le code reste privé, puis de distribuer l'ensemble sous une licence fermée. Aucune contrainte particulière ne pèse sur l'usage commercial : le code peut donc être intégré à des produits commerciaux.
C'est formidable, non ? Du code développé, testé et disponible gratuitement, que chacun peut commercialiser ! On peut légitimement se demander pourquoi offrir du code à des tiers, au risque qu'ils s'enrichissent avec. En réalité, de nombreuses situations le justifient.
La première est la volonté de faire de son code un standard de fait. L'intérêt consiste alors à maximiser l'adoption en réduisant au maximum les frictions juridiques. Un exemple emblématique est Google, qui a publié les codecs vidéo VP8, VP9 et AV1 afin d'en faciliter l'intégration par les fabricants de puces, de téléviseurs et de navigateurs.
De façon contre-intuitive, ces licences peuvent aussi être la pierre angulaire d'un modèle économique. C'est le principe de l'open core : le cœur du logiciel est publié sous licence permissive, tandis que des modules complémentaires, souvent les fonctionnalités les plus différenciantes, restent propriétaires et sont commercialisés.
Le modèle d'Android en est une autre illustration. Le cœur du système, l'Android Open Source Project (AOSP), est majoritairement publié sous licence Apache 2.0. Tout constructeur peut donc l'intégrer à ses terminaux. En revanche, il ne peut pas intégrer les services propriétaires de Google, les Google Mobile Services (GMS), dont Google Play et les applications Google, sans conclure un accord commercial avec Google.
Les licences copyleft, ou la réciprocité pour préserver le code libre
La grande différence avec les licences permissives tient à l'obligation de réciprocité. Les licences copyleft imposent généralement à celui qui distribue une œuvre dérivée de la publier sous des conditions compatibles, y compris son code source. Elles visent à garantir que du code libre ne soit pas « refermé » au fil des réutilisations.
La licence la plus connue est la GPL (GNU General Public License), utilisée notamment par le noyau Linux. Le noyau Linux est distribué sous GPLv2 uniquement, avec une exception explicite concernant les appels système.
Il est intéressant de noter que Linus Torvalds a refusé la GPLv3, publiée en 2007, notamment à cause de sa clause anti-« tivoïsation ». Celle-ci vise à empêcher qu'un fabricant livre un appareil capable d'exécuter du logiciel modifié, tout en empêchant techniquement l'utilisateur d'y installer une version alternative. Torvalds considère que la licence doit porter sur le code, non sur les choix matériels du fabricant.
Le résultat ? Un fabricant peut livrer un Linux modifié, publier le code source correspondant, puis verrouiller le démarrage de l'appareil afin d'empêcher l'installation d'un autre système. Cette situation est courante sur les box internet, certains téléviseurs et de nombreux téléphones Android.
La question la plus disputée concerne les modules chargeables du noyau, notamment les pilotes qui s'exécutent dans l'espace du noyau. Sont-ils des œuvres dérivées au sens de la GPL ? Juridiquement, la question n'est pas tranchée de manière universelle. Les développeurs du noyau ont toutefois mis en place des garde-fous techniques, plus ou moins efficaces selon les cas.
Cela a fini par faire évoluer la position de Nvidia. Longtemps distribué sous forme de pilote propriétaire, l'éditeur a publié ses modules noyau en open source à partir de 2022.
Quel modèle est vraiment libre ?
La distinction entre licences permissives et copyleft soulève une question philosophique : finalement, quel modèle est le plus libre ?
Les défenseurs des licences permissives répondront que la liberté ultime consiste à pouvoir faire ce que l'on veut du code, y compris le refermer.
Les défenseurs du copyleft répondront que la liberté doit être préservée tout au long de la chaîne : si le code est modifié et redistribué, il doit rester libre. Le copyleft agit ainsi comme une forme de « contagion » juridique.
Ce sont deux conceptions légitimes de la liberté, qui défendent des priorités différentes. D'un côté, la liberté immédiate d'usage et d'intégration. De l'autre, la pérennité de la liberté du logiciel.
Pourquoi Ping Europe a choisi l'AGPL 3.0
Chez Ping Europe, nous avons choisi une licence copyleft en adoptant l'AGPL 3.0, dont le nom complet est GNU Affero General Public License. C'est une variante de la GPL, pensée pour les logiciels accessibles via un réseau. Elle impose notamment de mettre à disposition le code source des versions modifiées proposées aux utilisateurs à distance.
Cette logique de transparence s'applique aussi à la manière dont nous protégeons vos échanges, expliquée dans notre article sur le chiffrement de bout en bout de Ping Europe. Si vous voulez voir à quoi cela ressemble côté code, rendez-vous sur ping-europe/ping-europe sur Codeberg.
L'avenir nous dira si ce choix est le bon !