Plugins et GPL (suite...et débat sans fin ?) - JD and Co

Plugins et GPL (suite…et débat sans fin ?)

J’avais il y a déjà quelques temps évoqué le problème dans un précédent article : si une application GPL permet l’écriture de modules, de plugins, ceux-ci sont ils concernés par la propagation de la licence GPL ? En d’autres termes, peut on écrire un plugin propriétaire pour une solution GPL ?

Yoan, l’auteur d’origine de Thelia, s’est également posé la même question, suite à diverses discussions que nous avions pu avoir sur le sujet.

La seule solution permettant de clarifier à 100% le débat serait, à l’instar d’autres logiciels comme MySQL, d’utiliser un principe de double licence :

  • La licence d’origine (il n’est pas possible de “perdre” l’étiquette GPL en cours de route, pour des raisons évidentes de protection sur la liberté du code)
  • Une autre licence, plus restrictive, qui serait celle à choisir pour pouvoir ensuite faire ce qu’on veut côté plugins.

Concrètement, cela ferait distribuer le logiciel sous deux formes différentes, mais où seul l’entête de chacun des fichiers changerait.

Note : il est parfaitement possible de faire en sorte qu’une application GPL soit convertie en double-licence à un instant T. Les seules conditions sont de garder la GPL comme une des licences disponibles, et de ne pas faire de rétro-compatibilité (les versions précédentes resteraient 100% GPL et ne seraient pas concernées).

Cette solution de double-licence est quand même perturbante : si je diffuse un plugin propriétaire pour Thelia par ex, je devrais spécifier que ce plugin n’est conçu que pour la version “propriétaire” de Thelia. Or, techniquement, absolument rien n’empêcherait de le faire tourner avec la version GPL, puisque seules quelques textes écrits en commentaires changent entre les deux versions ! La compatibilité n’est bien donc que juridique.

Restons maintenant pour l’hypothèse d’une licence unique GPL. Un plugin fait “partie intégrante” du code d’origine, ne serait ce que parce qu’il utile des mécanismes tels que la surcharge de méthodes étiquetées “GPL”, ou du moins une cohabitation très intime des deux codes. Donc, en théorie, ya quasiment pas débat, on “hérite” de la licence GPL en même temps que l’on hérite des propriétés du code.

Dans la pratique, on se rend compte que cette notion “d’intimité” entre le noyau et le plugin est quand même très polémique. La licence GPL parle elle-même de “cas limites” dans sa FAQ : “Si le programme fait une édition de liens dynamique avec des plug-ins, mais que la communication entre eux est limitée à l’invocation de la fonction main du plug-in avec quelques options et l’attente du résultat de l’exécution du plug-in, nous nous trouvons dans un cas limite”

OK, soit, un plugin est GPL. Mais dans ce cas, quid par exemple des modules du noyau Linux ? Linux est GPL, les modules du noyau sont certes dynamiques mais quand même très intimement liés au noyau lui-même (un driver de carte graphique, par exemple, est indispensable à son bon fonctionnement). Et pourtant, il existe des modules propriétaires ! (les drivers Intel, par exemple).

J’ai pu trouver une réponse plausible dans une vieille discussion menée par Linus Torvalds himself :

The reason I accept binary-only modules at all is that, in many cases, you have, for example, a device driver that is not written for Linux at all, but, for example, works on SCO Unix or other operating systems, and the manufacturer suddenly wakes up and notices that Linux has a larger audience than the other groups. And as a result he wants to port that driver to Linux.

But because that driver was obviously not derived from Linux (it had a life of its own regardless of any Linux development), I didn’t feel that I had the moral right to require that it be put under the GPL, so the binary-only module interface allows those kinds of modules to exist and work with Linux.

En d’autres termes : OK ya la GPL. Mais ya aussi une “règle” que donne la personne ayant amorcé le projet, et qui tolère ces modules fermés sous certaines conditions qu’il définit lui-même (ici, le fait que le module intègre du code qui n’a pas été conçu spécifiquement pour Linux, mais qui a été adapté à partir d’autres drivers déjà développés).

On aurait donc une “position” à prendre par le mainteneur du projet, officielle, qui permettrait d’amener, non pas des amendements, mais plutôt des “tolérances” vis à vis de certaines pratiques (cette tolérance est d’ailleurs régulièrement sujette à polémique). Les maintainers du kernel Linux se basent sur une interprétation de cette notion de lien entre le kernel et son module :

In the opinion of Linux maintainers, LKM are derived works of the kernel. The Linux maintainers tolerate the distribution of proprietary modules, but allow symbols to be marked as only available to GPL modules. (source : Wikipedia EN)

Encore une piste donc, la notion de “derived works” qui permettrait de “contourner” ce lien noyau/plugin impliquant la transmission de la GPL. Mais là, on rentre dans du carrément tordu puisque cette notion est typiquement américaine…

Autre exemple, mais cette fois-ci plus restrictif : celui de WordPress. Là, pas de tolérance, le mainteneur du projet annonce un respect strict de la GPL. Avec toutes les discussions et nuances d’interprétation de la notion de “qu’est ce qu’un plugin” que ça amène.

Je rajouterai une info de @chessman2212 que l’on vient d’avoir sur Twitter au moment de la rédaction de cet article : le projet #joomla a justement viré des centaines d’extensions non GPL il y a peu de son referencement pour être conforme.

Compliqué tout ça… Bien entendu, je suis preneur de toutes vos contributions et expériences…

12 réflexions au sujet de “Plugins et GPL (suite…et débat sans fin ?)”

  1. Oui ce débat est compliqué, on arrive aux limites d’utilisation d’une licence.
    En plus on ajoute là dessus de l’applicatif hébergé sur le web, c’est donc encore différent par rapport a du code compilé et démarré sur un système offline.

    C’est en tout cas un débat très intéressant.

  2. Une fois un logiciel en GNU/GPL celui-ci et les addons ou plugins developpés doivent rester au minimum sous la même licence. Donc si l’on souhaite changer de licence il faut réécrire TOUT le logiciel vu que l’utilisation d’une partie de code GNU/GPL rend automatiquement le logiciel GNU/GPL. Par contre il est possible d’encoder les fichiers via ioncube ou zendguard par exemple mais il faudra de toute façon que le code source soit disponible et diffusable.

  3. Oui chessman, on est tous d’accord sur la protection de liberté qu’apporte la GPL et que tu rappelle ici

    ce que je voudrais comprendre, c’est le cas particulier des modules propriétaires pour Linux qui sont en contradiction avec ce que tu décris : c’est quoi, un addendum a la gpl par linus, une interprétation borderline de ce qu’est un plugin, une violation répréhensible de la gpl? Pour moi, mystère

  4. @ybb : le “logiciel” linux a toujours été en GPL, du moins depuis la version 0.12 (je l’ai téléchargée pour vérifier 😉 ) qui date de janvier 92. Auparavant, aucune licence n’était mentionnée (ce qui aurait été délicat, il me semble que les toutes premieres versions linux incluaient du code de Minix).

    la “marque” linux en revanche a été très rapidement déposée pour éviter toute récupération, ce qui a d’ailleurs été une fois le cas :
    “En 1995, Linux avait acquis une certaine notoriété ; un particulier eut l’idée de déposer la marque Linux, ce que personne n’avait fait (la même chose était arrivée avec MLF quelques années avant en France). La réaction fut vive dans toute la communauté, le litige se régla à l’amiable et Linus devint propriétaire du nom Linux (et donc libre de le refuser ou non à une distribution qu’il estimerait s’écarter trop du projet initial).” (source : Wikipedia)

  5. Linux est à la base sous licence GNU/GPL (prononcez “GNOU” les copains). C’est d’ailleurs un peu grâce à linux que l’on a cette licence. Si l’on reste strictement “légal” les distributions qui utilisent des software propriétaires (genre Quicktime ou autre drivers nvidia ou intel) ne doivent pas être considérées comme GNU/GPL. Toutefois il existe une “largesse d’esprit” assez forte sur les distributions linux qui se disent GNU/GPL.

    A partir d’une licence GNU/GPL on ne peut pas faire du GNU/GPL mais on le DOIT.

    @ybb : pour répondre à ton article il y a un petit problème d’interprétation je pense dans l’article de zdnet. La licence GNU/GPL autorise de modifier et redistribuer gratuitement ou de façon payante tout soft GNU/GPL. Il faudra par contre bien respecter les auteurs d’origine en conservant les liens vers les sources d’origine pour qu’ils soient identifiés.

  6. Défendre la licence “GNU GPL” (effectivement c’est son nom exact 🙂 mais sans le slash pour faire un peu d’enculage de mouche 😀 ) est louable, et d’ailleurs bien loin de moi l’idée de la remettre en question : si pour Thelia nous avons fait le choix de cette licence, ce n’est pas par hasard, mais aussi pour se mettre clairement dans le camp des “libristes” et pas simplement de l’opensource (mais yoan défendra ce point de vue mieux que moi 🙂 )

    mais je vais me répéter : le cas des modules du noyau linux propriétaires me pose vraiment question. Ca n’est pas “simplement” accepter de diffuser un Quicktime dans une distribution. C’est tolérer qu’un élément intégrant de manière extrêmement intime le noyau ne partage pas sa licence (techniquement, un module du kernel est quand même beaucoup plus qu’un simple “driver”, et beaucoup plus intégré).

    après, répéter le cas général ne va pas m’aider à trouver une réponse : ce truc des modules propriétaires est un vrai cas particulier, et dont j’ignore la justification “juridique” (j’espère qu’elle existe 🙂 )

    attention, je ne dis pas que le procédé me choque : il y a eu un moment, que j’ai bien connu à l’époque, où il a fallu faire un choix entre priver Linux de tout hardware dont la documentation était liée à une NDA (Non Disclosure Agreement), ou mettre un coup de canif dans sa licence d’origine. Mais ce “coup de canif” est il tenable légalement ?

  7. héhé je pense que personne n’a vraiment la réponse 🙂 et que ce n’est pas comparable avec notre cas.

    Pour linux ils n’ont pas réussi à avoir les sources parceque… ils voulaient donner que les binaires (d’après ce que tu relates je n’ai pas cherché plus loin), donc c’est soit ils les prenaient soit… ils allaient voir ailleurs 🙂 et comme tu l’as dit ils ont préféré mettre un coup de canif.

    Qui c’est on? Linus Torvald apparemment (le bonhomme prend les décisions seuls, c’est son projet).

    Ybb a pas mis le lien mais il y a bien une jurisprudence en france dans le cas d’utilisation d’un programme propriétaire utilisé via une programme sous GPL (http://www.caprioli-avocats.com/management-juridique-innovation/61-gnu-gpl)

    extrait (je vous raconte pas l’histoire lisez l’article ca sera encore mieux) :

    “le jugement ne reconnaît pas la validité de la licence GNU-GPL contrairement à ce que certains ont pu affirmer. Pour cela, il aurait fallu que ce soit le titulaire des droits (l’Université de Stanford, ou son cessionnaire) qui agisse sur le fondement juridique de la contrefaçon et demande la reconnaissance de ses droits avec tous les effets juridiques y attachés, ce qui n’était pas le cas.”

    Donc si je reviens à notre cas, il faudrait que ce soit linus torvalds lui même qui porte plainte, or c’est lui qui a autorisé à ce que ces “greffons” soient utilisées.

    Autre chose que j’ai cru comprendre concernant Torvalds, c’est qui s’en fiche un peu que Linux soit sous GPL ou non. J’ai plus l’impression que linux et GPL se sont croisés au bon moment et au bon endroit…

    Ca c’est le premier point qui avait l’air de te pré-occuper le plus et ce n’est que mon interprétation.

    concernant la double licence ou bien le changement de licence en cours de route. La je suis plutôt mitigé. De toute façon pour tout ce qui est licence niveau “open source” (attention on parle plus de libre maintenant) c’est un vrai foutoir (http://www.opensource.org/licenses/category) il doit y avoir autant de licences qu’il n’y a d’acteurs majeurs du “libre”. Autrement dit chacun prend ce qui l’arrange et laisse ce qu’il ne veut pas de côté (et généralement ce qu’il met de côté c’est le côté libre, genre on peut choisir si je le mets en libre ou pas en gros). Ca démontre bien une fois de plus que l’intérêt des personne mets de côté tout le débat philosophique qu’il y a pu y avoir depuis longtemps (et je vous rassure je suis pas un extrêmiste comme stallman, moi aussi j’ai arrêté de croire à l’évangélisation du logiciel libre).

    Je pense qu’à partir du moment où on a fait un choix de licence il faut s’y tenir (la liste est longue, il y a de quoi choisir). Mais une fois qu’un logiciel est diffusé, bien diffusé même je ne trouve pas normal qu’on puisse décider de mettre en place une double licence ou bien de changer carrément la licence. Après ben le créateur du projet a tous les droits, si il veut le changer il en a tout à fait le droit.

    Je tiens à saluer tout de même le développeur qui a crée wordpress pour avoir fait le ménage (concernant joomla la facon dont c’est dit ca donne plus l’impression qu’ils ont pas eu le choix).

Laisser un commentaire