Module de noyau Linux, "GPL", avec un binaire pour masquer des valeurs?

J’ai un problème embêtant à vous soumettre. J’ai acheté un appareil USB (que je n’identifierai pas ici), pour lequel son fabriquant distribue un paquet DKMS avec presque l’entièreté du code source. Le fichier « module.c » inclus la ligne « MODULE_LICENSE(« GPL »); », donc en principe le module serait libre, et effectivement le noyau ne se plaint pas que le module serait « tainted » .

Par contre il y a un fichier de définitions qui est fourni en tant que binaire compilé (avec l’extension .o_shipped); ce fichier encapsule une simple structure de quelques valeurs entières utilisées un peu partout dans le code (pour des multiplications, divisions, etc), à l’aide de variables aux noms cryptiques. C’est évidemment un jeu d’enfant de recréer le fichier C original en inspectant les valeurs « cachées »…

J’ai demandé hier au fabriquant (et auteur du module) si le rôle de ce binaire serait d’empêcher de compiler le module sur d’autres plate-formes que x64, ce qu’il m’a confirmé sans hésitation. Aujourd’hui j’ai demandé si le module est vraiment GPL, et j’attends une réponse…

  • Est-ce qu’il est permit d’inclure un binaire dans un module GPL pour masquer des valeurs dans le seul but de contrôler l’usage du module?

  • Si le fabriquant décide de spécifier une licence propriétaire (parce qu’il aurait fait une « erreur »), est-ce que le module prétendument publié sous licence libre le serait effectivement?

  • Si le module est vraiment libre, est-ce qu’il est permis de recréer le fichier C (par « rétro-ingénierie » élémentaire) et de le publier?

C’est la première fois qu’une telle situation se présente à moi. Quoique je puisse modifier le module à ma guise pour un usage privé, j’aimerais pouvoir partager mes modifications et même créer un module dérivé. Que faire?

Je pense que les releases précédentes demeurent sous leurs licences respectives, à moins que les auteurs révoquent leur droit de copie. (Je ne suis pas avocat et donc peut être que ce n’est pas exact.)

Je ne me risquerais pas à supposer que le module est GPL dans sa forme actuelle. Le support de la compagnie m’a répondu en m’invitant de (re)lire le EULA du module qui stipule essentiellement que « All your base are belong to us ». J’ai reposé la question en demandant une réponse binaire (oui on non). J’ai aussi écrit à la FSF pour m’aider à comprendre la situation. J’attends…

Mon impression est que le développeur du module utilise MODULE_LICENSE(« GPL ») sans savoir pourquoi, ou pire, pour éviter la gênante mention « tainted » des les logs du noyau. Pas surprenant de la part d’une compagnie qui vise d’abord des consommateurs utilisant MacOS ou Windows, mais qui se dit « pro-open ». Le openwashing est encore une pratique courante…

Le modèle d’affaire de la compagnie est en bonne partie basée sur des services liés à l’utilisation du bidule, mais je veux (et peux) l’utiliser sans les autres logiciels (que j’ai acheté), et services (que je ne solliciterai pas). Ces logiciels utilisent un mécanisme d’activation et de vérification ponctuelle (aux quelques mois) de la licence d’utilisation, pour jusqu’à 3 copies, sauf pour le module de noyau.

Aussi, le paquet Debian du module inclue un panneau de contrôle bidon (et sans le source) qui sert à afficher des infos sur le bidule et à sauvegarder des logs d’installationdu module, capturés (et collectionnés) par les scripts DKMS, rien de moins que les logs du noyau (dmesg) et une copie de /var/log/syslog. Ouch! Mais ce détail n’est pas mentionné, et il faut dézipper un fichier avec l’extension .dat pour le découvrir. La compagnie indique que ces rapports ne sont transmis que si on le consent, mais ce système de « reporting » semble conçu de manière à ce que qu’on ne se préoccupe pas vraiment de ce qui est envoyé.

Bref, l’usager lambda (ce que je suis moi-même lors de premières utilisations) se fait (presqu’) entuber avec son consentement, évidemment…

J’aurais dû être plus prudent avant d’acheter le (dispendieux) bidule, mais il n’y a rien d’équivalent sur son marché vertical et rien n’indique qu’il aura de la concurrence à moyen terme. Qu’il fonctionne sous Gnu/Linux fut un incitatif très fort.

À suire…

Le mystère demeure concernant la nature de ton appareil USB secret !

Je comprend que ça pique la curiosité, mais je ne veux pas mentionner la compagnie. Au pire je devrai négocier un remboursement (idéalement complet), mais j’espère que ça va pouvoir s’arranger sans en arriver jusque là. Pas simple d’être un usager GNU/Linux, même après 25 ans de pratique, parce que l’enjeu n’est pas que technologique.

Pour les courageux, deux lectures intéressantes, d’abord un échange (relativement court) avec Linus Torvald, suivi d’un article dans une revue savante (que je vais lire à tête très reposée):
https://yarchive.net/comp/linux/gpl_modules.html
http://digital.law.washington.edu/dspace-law/bitstream/handle/1773.1/1115/7WJLTA265.pdf

Et puis, pour l’histoire, depuis que je me suis fait traité de « utilisateur compulsif et convaincu de logiciel libre », il y a plus de 15 ans par un universitaire spécialiste du droit d’auteur, j’ai des doutes sur ma compréhension des enjeux: https://www.lescpi.ca/articles/v16/n2/les-logiciels-libres-a-lassaut-du-droit-dauteur/

C’est difficile de s’y retrouver dans cet environnement légal.

La difficulté réside dans la bonne volonté de respecter le dit « droit d’auteur », mais surtout de faire accepter que le logiciel libre s’inscrit tout à fait dans l’histoire de ce « droit », et qu’il peut être respecté, ce qui est loin d’être acquis étant donné que la règle par défaut est « tous droits réservés » (pas besoin d’un EULA agressif pour le rappeler), et que le logiciel libre reste l’exception sauf dans des contextes spécifiques (notamment pour une large part de l’infrastructure d’Internet), ce qui pour le commun du mortel consommateur n’a encore aucune importance. À ce dit consommateur on peut encore faire accepter presque n’importe quoi en autant qu’il n’a qu’à « cliquer ici » sans lire ni réfléchir…

Mais le même problème se présente aussi à un utilisateur de logiciels libres qui n’a habituellement pas à se préoccuper si un logiciel est libre parce que la plupart de ceux qu’il utilise le sont.

Bref, c’est le manque de vigilance qui me semble en cause ici, ou une mauvaise « adaptation d’impédances » entre les parties, pour utiliser une métaphore électronique… :slight_smile: