La question de la licence d'un plugin est assez récurrente au sein de la communauté Thelia. Cette même question se pose d'ailleurs pour les autres CMS.
Dans ce billet, je ne vais m'intéresser qu'aux CMS sous licence GPL dont Thelia fait partie.
Certains développeurs souhaiteraient simplement savoir si un plugin réalisé avec Thelia doit être GPL ou s'il peut passer sous licence propriétaire.
Cette question se pose en général lorsqu'ils souhaitent monétiser un module. En effet, un module sous licence GPL peut tout à fait être vendu mais rien empêche à l'acquéreur de le redistribuer lui-même gratuitement. Ceci explique pourquoi la vente d'un plugin GPL n'est pas forcément rentable sur le long terme.
Les développeurs de logiciels libres gagnent en général de l'argent sur du développement spécifique, de la formation, des services annexes.
Une licence propriétaire spécifique pour un plugin permettrait par exemple d'interdire la redistribution gratuite, la duplication sur plusieurs sites, etc.
Je ne traite pas ici de l'aspect éthique ni mon point de vue personnel. Il se trouve que cette demande existe.
Un plugin destiné à une solution GPL peut-il avoir une licence propriétaire ? La réponse se trouve ici.
A partir du moment où un plugin utilise du code contenu dans le CMS (inclusion, héritage, etc) ou partage des structures de données alors le module devra être sous licence GPL ou compatible.
Un plugin qui ne serait que l'appel d'un programme retournant une donnée ne serait pas soumis à une licence particulière. C'est rarement le cas surtout dans le cadre d'un CMS.
Les plugins Thelia doivent donc être sous licence GPL ou compatible. Ceci n'oblige pas de publier son travail bien entendu mais tout travail publié devra être sous licence GPL ou compatible. Il sera donc possible de réutiliser le code tant que la licence est respectée.
Les autre CMS sous licence GPL contenant la notion de plugin seront soumis aux mêmes obligations.
MAJ 07/02/13
Bien souvent, un plugin pour un CMS interagit fortement avec le moteur du CMS (appel de fonctions ou méthodes, héritage, structures de données). On est loin d'un simple script que l'on appellerait avec quelques arguments pour récupérer une donnée en retour.
Sans le moteur de base, le plugin n'est pas fonctionnel.