La licence de CiviKey

Un petit mot au sujet de la licence de CiviKey. Il s’agit d’une L-GPL. Qu’est-ce donc exactement ? Que pouvez-vous faire réellement avec les codes sources, les binaires (librairies dynamiques compilées et exécutables) ?

1. Un résumé

Ci-dessous un descriptif de licence type trouvé sur internet (http://dbaling.blogspot.com/2009/02/find-missing-index.html), comme on peut en trouver beaucoup, mais avec en sus une explication claire et concise (mise en gras ci-dessous).
Il s’agit d’une licence associée à une procédure stockée, d’où la référence à une base de données.

Copyright:
Licensed under the L-GPL - a weak copyleft license - you are permitted to use this as a component of a proprietary database and call this from proprietary software.
Copyleft lets you do anything you want except plagiarize, conceal the source, proprietarize modifications, or prohibit copying & re-distribution of this script/proc.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
see <http://www.fsf.org/licensing/licenses/lgpl.html> for the license text.

Je considère cet « extrême résumé » comme plutôt bien fait et vais donc en profiter pour le traduire et le commenter dans le cadre de CiviKey.

2. La notion de « copyleft licence »

Voir wikipedia pour le terme de copyleft. En résumé c’est un jeu de mot sur l’opposition à copyright (droit d’auteur) dont le principe est le suivant
« Je suis l’auteur de ce code. J’ai fixé des limites (ou pas) à ce que vous pouvez faire de ce code via une licence. Vous pouvez faire ce que vous voulez de mon code (dans les limites de la licence : le vendre, le distribuer gracieusement, le modifier, etc.), mais en aucun cas vous ne pouvez restreindre les libertés garanties par cette licence. »
 
Pour faire encore plus simpl(ist ?)e : la notion de Copyleft permet à un auteur gentil de mettre à disposition son œuvre en ayant la garantie qu’aucun business man méchant ne s’accapare son travail et dénie à autrui ce que l’auteur gentil l’avait gentiment autorisé à faire.
 
Ça, c’est le Copyleft en général. On en distingue deux catégories très différentes en pratique : le faible (weak) et le fort (strong).

2.1    Strong Copyleft

Toujours de façon très synthétique : le Copyleft « fort » impose à toute utilisation de l’œuvre d’être redistribuée sous la même licence, là où le « faible » n’impose sa licence que pour certaines utilisations qui touchent à l’intégrité de l’œuvre elle-même : principalement la modification ou la traduction.
 
Le Copyleft fort est souvent qualifié de « virale » : tout programme qui utilise un composant avec ce type de licence devient de facto, et dans son intégralité, soumis à cette licence. La licence GPL est de ce type et l’enjeu devient alors de distinguer les utilisations qui imposent la licence de celles qui ne l’imposent pas.
Ici, on entre dans des détails techniques auxquels d’une part les juristes ne comprennent pas grand-chose (à l’instar de certains « informaticiens » d’ailleurs) et d’autre part qui évoluent avec les technologies : liens statiques ou dynamiques, encapsulation d’un exécutable, utilisation de la spécialisation (héritage), etc.
En résumé : l’objectif d’un Copyleft fort est de dire aux autres informaticiens « Mon composant vous plaît ? Si vous l’utilisez, vous devez jouer le jeu de l’Open Source comme moi ! Sinon, débrouillez vous autrement. »

2.2 Weak Copyleft

Ce n’est pas le cas de CiviKey qui est en L-GPL. « L » pour « Lesser », c'est-à-dire plus faible. Elle est plus faible dans le sens où elle permet l’utilisation du composant logiciel sans imposer sa licence : le coté « viral » a disparu.

3. La licence de CiviKey : L-GPL

Alors que reste-t-il comme contraintes à respecter ? Très peu.

you are permitted to use this as a component of a proprietary application and call this from proprietary software.

Vous pouvez utiliser CiviKey dans une application spécifique et propriétaire (dont vous ne divulguez pas les sources) et la commercialiser, développer des plugins propriétaires (dont vous ne divulguez toujours pas les sources) et les commercialiser conjointement ou non avec leur propre licence que vous choisissez comme bon vous semble.

Copyleft lets you do anything you want except plagiarize, conceal the source, proprietarize modifications, or prohibit copying & re-distribution of this script/proc.

Vous ne pouvez pas :

  • Plagier CiviKey, c'est-à-dire copier tout ou partie du code source en l’intégrant à votre programme.
  • Dissimuler l’origine : c'est-à-dire distribuer CiviKey ou une application qui l'utilise sans dire clairement à vos utilisateurs, collègues, patrons ou investisseurs que vous l'utilisez.
  • Garder les modifications pour vous : c'est-à-dire faire évoluer CivKey lui-même (le noyau) sans remettre vos modifications dans le « pot commun » et rendre ces modifications visibles à toute personne qui le demande.
  • Interdire la copie ou la redistribution : ce n’est pas parce que votre application ou plugin propriétaire ne peut être copié ou redistribué que ces interdictions s’appliquent aux composants de CiviKey eux-mêmes.

En substance, vous pouvez utiliser les composants exécutables ou librairies dynamiques comme bon vous semble. Si vous modifiez les sources, vos modifications sont de facto sous licence L-GPL. A ce titre, nous apprécierons que vous les soumettiez à la communauté afin de faire progresser le projet.
Enfin, si vous « récupérez » un ou plusieurs fichiers, une classe ou un morceau de framework et que vous l’intégrer directement dans votre application (que celle-ci soit une librairie dynamique ou un exécutable), vous devez conserver l’entête du ou des fichiers, ne pas modifier leur contenu (sauf à publier ses modifications) et surtout, afficher le fait que votre application repose, en partie, sur un « morceau » de CiviKey.

Il n’y a donc finalement que quatre écueils à éviter qui ont pour nom : Plagiat, Dissimulation, Privatisation et Restriction.
Si vous échouez sur un de ces écueils, vous vous asseyez tranquillement sur notre travail. Ce ne serait pas gentil.