Dans le cadre de la réalisation du projet Arch-Unit-TS, une libraire de vérification des règles de l’architecture hexagonale dans le cadre d’un projet en TypeScript, nous nous sommes intéressés à l’épineuse question de la licence logicielle.
Cette plongée dans un monde totalement inconnu à mes yeux m’a beaucoup apporté dans la compréhension globale du marché des logiciels. Par cet article, j’espère vous apporter ce que j’en ai retenu mais aussi des pistes pour choisir quelle licence utiliser selon votre projet. Mais tout d’abord intéressons-nous à ce qu’est une licence logiciel.
Il s’agit d’un contrat ou d’un accord légal qui précise les droits et les restrictions des utilisateurs du logiciel mais aussi les obligations des personnes détenant les droits d’auteur, en définissant notamment les conditions d’utilisation, de distribution et de modification d’un logiciel.
Il s’agit donc d’un garde-fou juridique pour restreindre ou ouvrir des droits sur le logiciel dont vous êtes le propriétaire intellectuel.
Les licences les plus courantes, et dont je vais vous parler dans cet article, sont les suivantes :
- Licences propriétaires : Ces licences limitent généralement l'utilisation, la modification et la redistribution du logiciel. L'utilisateur n'a pas accès au code source et doit se conformer aux conditions imposées par l'éditeur. Par exemple : les licences des logiciels Microsoft Windows et Adobe Photoshop.
- Licences libres (Open Source) copyleft : Les licences libres permettent aux utilisateurs de consulter, modifier et distribuer le code source du logiciel. Elles sont souvent associées à des communautés qui contribuent à son développement. Elles imposent des contraintes fortes lors de la distribution. Exemple de licence libre copyleft : GNU General Public License (GPL), Mozilla Public License (MPL).
- Licences libres permissives : Tout comme les licences précédemment citées, elles permettent aux utilisateurs de consulter, modifier et partager largement leur code. On peut les qualifier de licences permissives car elles offrent une grande liberté aux utilisateurs, sans contrainte forte lors de distribution du code. Exemples de licences libres permissives : MIT License, Apache License.
- Licences à sources ouverte et non libres : Les licences non libres, en opposition aux licences libres, ne respectent pas les règles de liberté logicielle que nous verrons ultérieurement. Elles permettent par contre la consultation du code source. Exemples de licences à source ouverte et non-libres : Microsoft Shared Source License, Server Side Public License (SSPL).
- Licences Creative Commons : Ces licences permettent aux créateurs de partager leur travail tout en spécifiant les conditions sous lesquelles d’autres personnes peuvent l’utiliser. L’ambition de ce type de licence est de faciliter le partage et la réutilisation des œuvres créatives tout en protégeant les droits d’auteur. Elles sont utilisées fréquemment pour les œuvres créatives (de type musiques, images, vidéos…) mais elles peuvent aussi être utilisées pour les logiciels informatiques.Passons à la définition de chaque type de licences et aux intérêts et obligations inhérentes à celles-ci.
Les licences propriétaires
Les licences propriétaires désignent des accords avec l'utilisateur qui, en échange de l’accès au logiciel (en contrepartie ou non d’une transaction financière) s’engagent à être le seul bénéficiaire et à l’utiliser dans les limites fixées par l’ayant droit. C’est ce type de licence qui réglemente les logiciels payants, achetés ou mis à disposition via un système d’abonnement.
Ce type de licence est souvent associé à une licence commerciale, qui permet au propriétaire du logiciel de générer du profit.
Parmi les exemples de logiciels propriétaires (logiciels ayant une licence propriétaire) nous pouvons parler de Microsoft Office, Adobe, Intellij version ultimate…
La licence propriétaire permet de garder un contrôle complet sur son logiciel et ainsi assurer une vision cohérente de l’évolution de son produit tout en jouissant de son usufruit. Dans le cadre d’une entreprise d’édition de logiciels, elle assure la protection de la propriété intellectuelle, et ainsi garder les innovations mises en place lors de l'élaboration du logiciel et avoir une longueur d’avance sur la concurrence.
En contrepartie, l’éditeur du logiciel se porte garant de la qualité du logiciel en assurant notamment un service client, afin de soutenir les utilisateurs en cas de problèmes rencontrés avec le logiciel lors de l’installation et de l’utilisation avec entre autres un service de résolution des bugs et une évolution continue du logiciel, ainsi que le support pour les utilisateurs.
Bien qu’il y ait une contrepartie financière pour accéder à ce type de logiciel, les logiciels propriétaires présentent certains avantages pour les utilisateurs.
Ces logiciels sont des solutions clés en main pour lesquelles les propriétaires doivent investir afin de les maintenir et proposer un service de support technique. Les propriétaires sont garants de la sécurité au sein de leurs logiciels. Ainsi, leurs applications se doivent d'être sécurisées et maintenues à jour continuellement.
Les licences libres copyleft
Les logiciels libres comme les logiciels open-source ont pour philosophie sous-jacente de faire d’une propriété intellectuelle un projet de développement communautaire.
Pour les logiciels libres, cette philosophie se traduit par 4 libertés. L’utilisateur a la liberté de :
- Faire fonctionner comme bon lui semble le logiciel
- D’étudier le fonctionnement du logiciel, et de le modifier pour qu’il agisse comme il le souhaite, l’accès au code source est donc nécessaire pour que celle-ci soit opérante.
- De redistribuer des copies du logiciel
- De distribuer des copies modifiées.
Ces quatre libertés respectées permettent de qualifier un logiciel comme étant libre. Ce cadre étant posé, nous pouvons indiquer qu’un logiciel libre peut être commercial.
Prenons l’exemple de GitLab Entreprise Edition qui est un logiciel libre car il respecte les quatre libertés citées auparavant mais est payant dans sa version entreprise, afin d’offrir des fonctionnalités supplémentaires mais aussi pour assurer un support aux utilisateurs.
Il est possible d’ajouter une clause dans les licences pour s’assurer qu’un logiciel reste libre, cette clause s’appelle le copyleft, elle établit qu’un logiciel, modifié ou non, ne peut être redistribué qu’en respectant les quatre libertés.
Il existe deux types de copyleft : le copyleft standard et le copyleft fort.
Le copyleft standard impose que le logiciel original respecte les libertés logicielles et que son code reste sous la même licence lors de sa redistribution. Par contre la partie modifiée ou nouvellement créée n’est pas sujette à ces restrictions et peut être placée sous une autre licence. Les licences Lesser GNU General Public License (LGPL) ou Mozilla Public License (MPL) sont des licences copyleft standard. Le navigateur Firefox est sous licence MPL, ce qui permet d’avoir le navigateur toujours open source et d’ajouter des extensions sous diverses autres licences plus ou moins contraignantes.
Le copyleft fort suppose que l'intégralité des libertés logiciels soient respectées dans les versions découlant d’un logiciel étant sous licence copyleft fort comme la licence GNU General Public License (GPL), version 3. Le noyau Linux est par exemple sous licence GPL.
LGPL | MPL | GPL | |
Degré de liberté | ++ | + | - |
Description | Inclure la licence d’origine sur le code d’origine du projet, mais peut changer de licence pour le code nouvellement créé. | Inclure la licence d’origine sur le code d’origine du projet et le code modifié mais n’impose pas de mettre la totalité du code sous cette licence. | Inclure la licence d’origine sur l’intégralité du code du projet nouvellement créé, y compris le nouveau code. |
Copyleft standard | X | X | |
Copyleft fort | X |
Les licences libres permissives
Les licences libres permissives permettent aux propriétaires de donner accès à leurs logiciels en respectant les libertés logicielles sans imposer qu'elles soient respectées dans les logiciels nouvellement créés à partir de l’original. Elles offrent donc une plus grande flexibilité dans les droits et les contraintes liées aux licences que les licences libres copyleft.
Parmi les licences libres permissives les plus connues nous pouvons lister :
- MIT (Massachusetts Institute of Technology) License : Une licence très permissive qui permet aux utilisateurs de faire presque tout avec le logiciel (modifier, redistribuer, utiliser commercialement), à condition de mentionner l'auteur original et d'inclure la licence dans les copies ou les redistributions.
- Apache License : Similaire à la licence MIT, elle est permissive et autorise la modification, l'utilisation et la redistribution, mais ajoute également une clause de licence d’exploitation de brevet qui protège les contributeurs et les utilisateurs.
- BSD (Berkeley Software Distribution) License : Une autre licence permissive, comme la licence MIT, qui offre une grande liberté de modification et de redistribution. La licence BSD se décline sous plusieurs formes. Il en existe des formes extrêmement permissives avec la licence BSD-0 qui n’impose aucune contrainte d’attribution ou d’inclusion de la licence d’origine dans le logiciel nouvellement créé, contrairement à la licence MIT. Il est aussi possible d’avoir des formes plus contraignantes la licence BSD-4 qui impose trois clauses en plus par rapport à la licence MIT.
La licence libre permet le travail collaboratif avec la communauté du monde entier et offre ainsi une ouverture et une possible évolution du logiciel beaucoup plus grande que si le code n’était pas accessible et modifiable. Cette ouverture permet d’assurer une grande transparence et la sécurité peut être assurée par toute la communauté des développeurs afin de détecter les bugs et les failles de sécurité et de les corriger.
Cet aspect collaboratif permet au propriétaire du logiciel d’avoir moins de charge en termes de service client car cette charge est aussi portée par les utilisateurs.
Pour choisir entre les quatre licences mentionnées en exemple, il faut se pencher sur les spécificités de chacune.
La licence MIT est extrêmement permissive et permet de tout faire avec le logiciel, elle n’impose que deux clauses : une pour mentionner l’auteur du projet initial et une autre pour inclure dans les redistributions et copies cette même licence. Elle est compatible avec toutes les autres licences, sauf celles l’excluant comme la licence GPL. Cette licence à l’avantage d’offrir une grande permissivité et donc d’ouvrir un maximum au travail collaboratif. Le pendant de cette grande permissivité est qu’elle n’offre aucune protection sur la propriété intellectuelle du logiciel.
La licence BSD est aussi extrêmement permissive et offre cinq versions majeures, numérotées de 0 à 4, sous la forme BSD-{nombre de clauses}.
La licence BSD-0 est la licence la plus permissive, elle n’impose aucune contrainte et elle est ainsi plus permissive que la licence MIT.
La licence BSD-1 a une unique clause qui est une clause liée à la distribution. Elle impose lors de la distribution du code modifié ou non de conserver la licence d’origine et les avis de copyright.
La licence BSD-2 ajoute une clause de non garantie. La clause de non garantie indique que le logiciel est fourni en l’état sans aucune garantie.
La licence BSD-3 ajoute une clause interdisant l’utilisation des noms des auteurs pour la promotion des produits dérivés.
La licence BSD-4 ajoute une clause sur la publicité, qui impose que toutes publicités sur le logiciel nouvellement créé doivent mentionner le logiciel original.
Dans le cas où nous souhaitons une protection des brevets ou une régulation plus claire des modifications apportées, la licence Apache est une bonne alternative. En effet, elle reste flexible et ainsi facilite la collaboration au sein des logiciels libres. Elle impose par contre une documentation exacte des changements opérés par rapport au code initial et une clause de protection des brevets en plus des clauses de la licence MIT.
MIT |
Apache
License |
BSD-0 | BSD-1 | BSD-2 | BSD-3 | BSD-4 | |
Niveau de
permissivité |
+++ | ++ | ++++ | +++ | +++ | ++ | + |
Obligations |
Citer l’auteur du logiciel original.
Inclure la licence d’origine dans le projet créé. |
Citer l’auteur du logiciel original.
Inclure la licence d’origine dans le projet créé. Protection des brevets. Documentation exacte des modifications faites par rapport au code initial. |
Citer l’auteur du logiciel original.
Inclure la licence d’origine dans le projet créé. |
Citer l’auteur du logiciel original.
Inclure la licence d’origine dans le projet créé. Clause de non garantie. |
Citer l’auteur du logiciel original.
Inclure la licence d’origine dans le projet créé. Clause de non garantie. Interdiction d’utiliser les noms des auteurs du logiciel d’origine à des fins publicitaires. |
Citer l’auteur du logiciel original.
Inclure la licence d’origine dans le projet créé. Clause de non garantie. Interdiction d’utiliser les noms des auteurs du logiciel d’origine à des fins publicitaires. Clause de publicité : obligation de citer le logiciel original dans les publicités pour le produit créé. |
|
Copyright | X | X | X | X | X | X |
Les licences à source ouverte mais non libres
Les licences non libres et à source ouverte permettent aux utilisateurs de consulter et parfois même de modifier le code source, mais elles imposent des restrictions sur la redistribution, la modification, ou l'utilisation commerciale du logiciel.
Parmi ces licences nous pouvons citer :
- Server Side Public License (SSPL) : Développée par MongoDB, cette licence est conçue pour protéger les projets contre l'exploitation par les fournisseurs de cloud. Elle impose aux utilisateurs qui proposent le logiciel sous SSPL en tant que service de publier tout le code source des composants nécessaires pour exécuter le service. Cette licence impose des obligations de publication de code plus strictes que celles des licences libres et n'est donc pas approuvée par l'Open Source Initiative (OSI).
- Common Development and Distribution License (CDDL) : La licence CDDL est basée sur la Mozilla Public License (MPL), mais elle n'est pas entièrement compatible avec la GNU General Public License (GPL). Bien que le code source soit disponible, certaines conditions de redistribution la rendent non libre. Les modifications doivent être publiées sous CDDL, mais le logiciel résultant peut combiner des composants sous d'autres licences, ce qui peut créer des problèmes de compatibilité.
- Microsoft Shared Source License : Sous le programme "Shared Source", Microsoft offre plusieurs licences qui permettent d'accéder au code source, mais avec des restrictions sur la modification et la redistribution. Il existe différentes variantes de cette licence, certaines étant plus permissives que d'autres. Certaines variantes interdisent l'utilisation commerciale ou imposent des restrictions géographiques.
Ce type de licence permet au propriétaire du logiciel d’être transparent tout en s’assurant de garder le contrôle commercial et légal sur son produit.
Lors de l’utilisation d’une licence à source ouverte et non-libre, nous donnons accès au code source pour la consultation, mais cela conditionne la modification et la redistribution de façon plus ou moins restrictive.
Nous pouvons donner l’exemple de l’éditeur Atlassian, avec ses produits Jira et Confluence qui sont sous licence non libre afin de contrôler la distribution commerciale.
La transparence sur le code source, avec la possibilité de le consulter, permet à la fois de bénéficier de contributions communautaires mais aussi est rassurante pour les utilisateurs qui peuvent s’assurer de la qualité du code.
Cette transparence peut être totale ou partielle selon les licences utilisées, ce qui permet à certains éditeurs de choisir le degré d’accessibilité au code en fonction des exigences changeantes du marché.
En définitive, l’usage d’une licence non libre est un compromis entre la licence propriétaire qui favorise les intérêts commerciaux et l’open-source qui favorise la contribution utilisateur et la transparence pour rassurer l’utilisateur.
Nous pouvons tout de même noter que les certains logiciels sous licence non libre n’ont pas de visée commerciale immédiate et évidente, comme les :
- Freeware : Le logiciel est distribué gratuitement, mais son code source n'est pas disponible. Les utilisateurs peuvent utiliser le logiciel gratuitement, mais ne peuvent pas le modifier ou le redistribuer.
Nous pouvons citer en exemple VLC Media Player ou Adobe Acrobat Reader, qui sont distribués gratuitement mais ne donnent pas accès à leur code source.
Souvent les profits pour le créateur viennent avec les publicités intégrées ou les modèles freemium qui supposent de proposer des fonctionnalités supplémentaires/extensions moyennant des frais supplémentaires. - Shareware : Le logiciel est fourni gratuitement pour une période d'essai ou avec des fonctionnalités limitées. Les utilisateurs doivent acheter une licence pour accéder à toutes les fonctionnalités ou continuer à l'utiliser après l'essai.
Nous pouvons donner l’exemple de WinRAR ou WinZip qui donnent accès à des versions gratuites limitées dans le temps pour WinRAR et limitées dans l’usage pour WinZip.
Les licences Creative Commons
Les licences Creative Commons sont des licences permettant le partage de créations de façon plus flexible que le copyright classique, ou les droits d'auteur, qui sont “Tous droits réservés”. Une grande diversité de licences créatives existent de façon à répondre aux différents besoins des propriétaires du produit nouvellement créé.
Parmi les logiciels informatiques partiellement sous licence creative commons, nous pouvons citer certaines ressources dans GIMP (GNU Image Manipulation Program) ou dans Audacity. Ces deux logiciels sont majoritairement sous licence GNU, seuls les composants créatifs (échantillons de musiques, images… ) sont sous licence Creative Commons.
Les licences Creative Commons sont nommées selon le modèle suivant : CC BY + spécifications reliées par des tirets (qui sont optionnelles).
Les spécifications sont :
- /-NC : Commercial / Non Commercial
- /-ND : Modifiable / Non Modifiable
- /-SA : licences des créations dérivées au choix du créateur final / créations dérivées à partager selon la même licence.
Nous allons en citer six qui couvrent un certain nombre de besoins mais d’autres existent et peuvent être envisagées au cas par cas :
- CC BY (Attribution), la plus permissive et la plus ouverte : Cette licence offre une grande liberté en termes d’adaptation, de réutilisation et de redistribution à partir de l'œuvre originale. Elle permet l’utilisation d’autres licences, à l’exception de celles l’excluant, sur le produit recréé à partir du produit initial ou encore la commercialisation du produit remixé. La seule contrainte est de créditer l’auteur original.
- CC BY-SA (Attribution - Partage dans les Mêmes Conditions) : En plus de la licence précédemment citée, cette licence toujours très permissive impose au propriétaire du nouveau logiciel d’utiliser la même licence que l'œuvre originale.
- CC BY-ND (Attribution - Pas de Modification) : Cette licence offre une grande liberté en termes de redistribution, commerciale ou non, de l'œuvre telle quelle, donc sans modification et avec l’attribution de l’auteur de l'œuvre originale.
- CC BY-NC (Attribution - Pas d'Utilisation Commerciale) : Cette licence permet à d’autres personnes de modifier le produit original, qui est lui-même distribué à des fins non commerciales et impose également la distribution du nouveau produit à des fins non commerciales, sans imposer l’utilisation de la même licence.
- CC BY-NC-SA (Attribution - Pas d'Utilisation Commerciale - Partage dans les Mêmes Conditions) : À contrario de la licence précédente, cette licence impose l'utilisation de la même licence pour le produit résultant de la modification de l'œuvre originale.
- CC BY-NC-ND (Attribution - Pas d'Utilisation Commerciale - Pas de Modification), la plus restrictive : Cette licence ne permet que le téléchargement et la redistribution du produit initial, avec attribution de l’auteur de l’œuvre initiale, sans modification et à visée non commerciale.
En résumé nous avons :
CC BY | CC BY-SA | CC BY-ND | CC BY-NC | CC BY-ND-SA | CC BY ND-NC | |
Possibilité de modifier | X | X | X | |||
Possibilité d’utiliser une autre licence | X | X | X | |||
Possibilité de redistribuer à des fins commerciales | X | X | X | X |
À noter : Le produit sous licence CC BY-ND-NC est redistribué sous les mêmes conditions que l'original, puisqu'aucune modification n'est autorisée.
Dans tous les cas, le produit nouvellement créé doit accréditer l’auteur de l'œuvre originale.
Conclusion
En définitive, le choix d'une licence pour son projet est une étape à ne pas négliger. En fonction de la manière dont nous envisageons l'évolution de notre produit, il est essentiel de sélectionner la licence la plus appropriée pour l'accompagner.
Si nous choisissons une licence propriétaire, nous choisissons globalement de garder la mainmise sur le code de notre logiciel et devons donc assurer intégralement le maintien et l'évolution de celui-ci, ainsi que le support pour les utilisateurs, mais il peut par conséquent être redistribué en contrepartie d’une compensation financière et donc être une source de revenu à part entière.
En optant pour une licence libre, notre objectif principal est de diffuser notre logiciel et de permettre aux utilisateurs de s'en emparer et de le faire évoluer. L'accent est mis avant tout sur la large diffusion du produit. La notion commerciale est difficilement compatible avec ce type de licence, car la diffusion est libre mais elle n’est pas totalement incompatible avec des versions logiciels payantes en plus de la version libre.
L’usage d’une licence à source ouverte et non-libre est plus compatible avec la monétisation du logiciel car elle permet de ne pas partager l'intégralité du code source et ainsi garder secrète en partie les composants essentiels du code. Le tout en s’appuyant sur la communauté du monde entier pour la partie visible du code et ainsi avoir une veille des autres développeurs non négligeable quant au maintien et à l'évolution du produit.
Enfin le choix d’une licence Creative Commons offre plus de liberté que les licences avec copyright et permet d'être flexible quant aux droits donnés à l'utilisateur. L’objectif visé lors de l’utilisation d’une licence creative commons est la diffusion large du produit tout en adaptant ce qui est permis ou non de faire avec celui-ci.
En conclusion, cet article a pour but de présenter les principales licences et n’a pas la prétention d'être exhaustif. Quant à la description de chaque licence, elle ne vise pas non plus à être complète mais plutôt simplement à offrir un aperçu permettant de s'orienter vers la licence la plus adaptée à l'objectif recherché pour son projet. Je vous invite donc à lire attentivement les licences, et leurs différentes réglementations, que vous souhaitez utiliser avant de les mettre en place dans vos projets.