Le logiciel libre dont on ne peut utiliser les libertés

Et ça ne s'applique pas qu'au logiciel, d'ailleurs

Dans mon entreprise, on utilise des logiciels libres. Il arrive qu’on aie besoin de modifier ces logiciels tiers, pour gérer un cas spécifique ou pour une meilleure intégration dans l’application.

Et parfois, en se lançant dans ce genre de travaux, on tombe sur une surprise :

Il existe des logiciels libres dont il est presque impossible d’utiliser les libertés sans une quantité déraisonnable de travail.

Je ne parle pas d’openwashing ici, cette technique qui consiste à faire croire qu’un logiciel est libre mais ne l’est pas. Non, je parle de programmes véritablement libres (sous licence Apache ou MIT généralement, notre code n’étant pas libre ça ne peut être des licences contaminantes comme la GPL) mais dont les subtilités font que… visiblement quelqu’un ne veut pas que les libertés soient trop utilisées. On notera déjà que c’est souvent des logiciels dont il existe une version avancée commerciale.

Les libertés d’exécution et de redistribution sont généralement faciles à appliquer ; le problème survient souvent quand on veut étudier le programme et l’améliorer. Voici quelques exemples de techniques utilisées ; certaines peuvent être expliquées par un simple manque de volonté d’adhérer à l’esprit du logiciel libre ou par une mauvaise organisation interne ; d’autres s’approchent du sabotage. Dans tous les cas, la licence est respectée à la lettre.

Toutes les techniques ci-dessous ont été croisées dans des cas réels (heureusement pas toutes sur le même projet) :

Aucune documentation technique

Il n’existe aucune documentation technique d’aucune sorte. Selon la taille du logiciel, ça peut être plus ou moins gênant (je vous laisse imaginer quand le workspace du projet fait plusieurs centaines de Mo).

Parfois, rien qu’obtenir une version exécutable du logiciel à partir des sources est un calvaire.

Une version avancée consiste à utiliser des frameworks, compilateurs ou réglages exotiques, sans que ce soit documenté publiquement.

Les dépendances cachées

Les dépendances du projet vont par défaut se télécharger depuis un serveur qui appartient à la même organisation que le projet, et pas depuis les dépôts standards. Et surprise, ce serveur ne contient (en public) que les dernières versions des dépendances.

Au pire, ces dépendances sont elles-mêmes libres, on peut toujours aller les chercher et les compiler à la main, mais la quantité de travail pour obtenir une version fonctionnelle explose dès qu’on veut autre chose que la toute dernière version. Et je ne parle pas de la galère quand on veut mettre à jour un fork depuis l’origine.

Le faux dépôt de sources

Celle-ci est subtile : le dépôt des sources public n’est d’évidence pas un dépôt de travail, puisqu’il ne contient qu’un seul commit par version, sans le moindre commentaire. Ça n’est pas gênant tant qu’on essaie pas de maintenir un fork.

La version avancée, qui consiste à ne fournir les sources que sous la forme d’un dossier compressé sans le moindre historique, semble avoir à peu près disparue, du moins dans mon domaine.

Le tapis et le labyrinthe mouvant

Deux variantes d’une même technique :

  1. Les sources peuvent être planquées à un endroit inaccessible, voire carrément absentes du site éditorial – rien, pas même un lien, pas même une mention claire de la licence : si tu ne sais pas déjà que le logiciel est libre… tu le découvres en lisant la licence après avoir donné toutes tes informations pour la fameuse « version de démonstration 30 jours ».
  2. Le site change tout le temps, et la manière d’accéder aux sources n’est jamais la même d’un mois sur l’autre.

À noter que quelques entreprises ne fournissent les sources qu’aux clients de l’entreprise, ce qui est généralement autorisé.

Une variante intéressante du point 2, c’est quand le logiciel change régulièrement de grands pans de son architecture.

Le code qui fait des suppositions sur l’environnement de développement

Généralement à base de chemins en dur dans le code ou de réglages spécifiques à un IDE. C’est rare, mais on en croise…

La ressource libre-mais-déposée

Ici ça s’applique plus aux ressources qu’au code, principalement aux logos : votre ressource est libre, mais est une marque déposée. Il y a plein de cas où on ne peut pas l’utiliser. Par exemple, le logo GNU n’illustre pas cet article, parce que, je cite (le gras est d’origine) :

Ce dessin est utilisable conformément à la GNU FDL v1.3, à la licence Art libre ou à la Creative Commons CC-BY-SA 2.0 (résumé en français ici). Toutefois, c’est aussi un logo déposé du projet GNU. Si vous voulez vous servir de cette tête de GNU pour mettre en lien un site web de la Free Software Foundation ou du projet GNU, n’hésitez pas ; de même, vous n’avez pas besoin de permission supplémentaire pour l’utiliser dans des contextes qui parlent de GNU de manière positive et exacte. Pour tout autre usage, veuillez au préalable demander la permission à licensing@fsf.org.

La page du logo GNU sur le site de la FSF

Et donc ce logo est disponible sous 3 licences libres différentes, mais a des restrictions très fortes sur l’usage qui peut en être fait. C’est en fait valable avec à peu près tous les logos et toutes les marques – et les règles d’utilisations de logos et marques d’entreprises peuvent être bien plus restrictives.



La conclusion de tout ceci ?

Qu’un logiciel soit libre n’impose pas que son développeur doive vous faciliter l’application des libertés.

C’est quelque chose qu’on croit trop souvent, de même qu’on mélange souvent « libre » et « gratuit ».

10 commentaires

C’est le genre de technique dont les commerciaux peuvent se servir pour embellir leur image :"on fait des logiciels libres, on est philantrophe" etc. (Je grossis le trait). Et certains développeurs pour nourrir un peu leur ego.

Je comprends mieux maintenant pourquoi certains dépôts sont juste… Inutilisables.

Merci, SpaceFox.

C’est un sujet intéressant ! J’ai quelques fois eu à faire à ce genre de cas un peu frustrant (je te regarde, NuSMV).

Plusieurs remarques/questions ouvertes qui me viennent au fil de ma lecture.


Est-ce que la liberté 1 (« la liberté d’étudier le fonctionnement du programme et de l’adapter à ses besoins ») est vraiment respectée quand il n’est pas possible de recompiler le programme ?


Les sources peuvent être planquées à un endroit inaccessible, voire carrément absentes du site éditorial – rien, pas même un lien, pas même une mention claire de la licence : si tu ne sais pas déjà que le logiciel est libre… tu le découvres en lisant la licence après avoir donné toutes tes informations pour la fameuse « version de démonstration 30 jours ».

De ce que je me souviens, les licences libres obligent le développeur a fournir le code à ses utilisateurs quand ces derniers le demandent. Il n’est pas question de moyens techniques pour y parvenir : il n’y a donc pas besoin d’avoir un repo public (ou même un repo tout court, comme tu le mentionnais). Il n’y a rien non plus (ni dans le texte, ni dans l’esprit du texte) qui empêche une boîte à te demander tes informations personnelles avant de te donner accès au logiciel (et donc, à ce que tu deviennes un utilisateur… ce qui te donnera alors le droit d’obtenir une copie de code source).

D’ailleurs, tu le dis toi-même juste après

À noter que quelques entreprises ne fournissent les sources qu’aux clients de l’entreprise, ce qui est généralement autorisé.

Ce qui est intéressant, c’est que normalement, rien n’empêche les dits clients de redistribuer les sources s’ils le souhaitent. Par contre, j’ai connaissance d’au moins un cas où ce cas d’usage est formellement prohibé dans les conditions d’utilisation du logiciel : il faut devenir sponsor pour devenir utilisateur ; « leaké » le code source fait perdre le droit d’être sponsor (et donc d’avoir le droit à une nouvelle version).


Pour finir, je ne sais pas jusqu’à quel point ta conclusion est vraie. Dans la pratique, les gens qui publient le code source de leurs logiciels sous « licence libre » ne s’embarrassent pas toujours de beaucoup d’efforts pour respecter leurs obligations spécifiée par la-dite licence. On est tous d’accords. Mais n’est pas plus un problème d’application de licence (les procès sont rares, sur ces questions), que de véritables manques des licences elle-mêmes ?

Ce que je veux dire par là, c’est qu’en tant qu’utilisateur d’un logiciel libre, tu pourrais sans doute (c’est à confirmer) contraindre le développeur à mieux respecter ses obligations par voie judiciaire, mais que bien peu de gens ne se lancent dans ces aventures là.

+0 -0

Est-ce que la liberté 1 (« la liberté d’étudier le fonctionnement du programme et de l’adapter à ses besoins ») est vraiment respectée quand il n’est pas possible de recompiler le programme ?

lthms

La GPL précise explicitement que les scripts de compilation et d’installation doivent être fournis. Si ce n’est pas explicite, je ne sais pas.

De ce que je me souviens, les licences libres obligent le développeur a fournir le code à ses utilisateurs quand ces derniers le demandent. Il n’est pas question de moyens techniques pour y parvenir : il n’y a donc pas besoin d’avoir un repo public (ou même un repo tout court, comme tu le mentionnais). Il n’y a rien non plus (ni dans le texte, ni dans l’esprit du texte) qui empêche une boîte à te demander tes informations personnelles avant de te donner accès au logiciel (et donc, à ce que tu deviennes un utilisateur… ce qui te donnera alors le droit d’obtenir une copie de code source).

D’ailleurs, tu le dis toi-même juste après

À noter que quelques entreprises ne fournissent les sources qu’aux clients de l’entreprise, ce qui est généralement autorisé.

lthms

C’est bien un exemple qui montre que cette façon de faire du libre existe dans la réalité.

Ce qui est intéressant, c’est que normalement, rien n’empêche les dits clients de redistribuer les sources s’ils le souhaitent. Par contre, j’ai connaissance d’au moins un cas où ce cas d’usage est formellement prohibé dans les conditions d’utilisation du logiciel : il faut devenir sponsor pour devenir utilisateur ; « leaké » le code source fait perdre le droit d’être sponsor (et donc d’avoir le droit à une nouvelle version).

lthms

Là par contre je me demande à quel point il y a conflit avec la licence libre. J’imagine que ça doit dépendre de la licence.

Pour finir, je ne sais pas jusqu’à quel point ta conclusion est vraie. Dans la pratique, les gens qui publient le code source de leurs logiciels sous « licence libre » ne s’embarrassent pas toujours de beaucoup d’efforts pour respecter leurs obligations spécifiée par la-dite licence. On est tous d’accords. Mais n’est pas plus un problème d’application de licence (les procès sont rares, sur ces questions), que de véritables manques des licences elle-mêmes ?

Ce que je veux dire par là, c’est qu’en tant qu’utilisateur d’un logiciel libre, tu pourrais sans doute (c’est à confirmer) contraindre le développeur à mieux respecter ses obligations par voie judiciaire, mais que bien peu de gens ne se lancent dans ces aventures là.

lthms

C’est une bonne question : je ne sais pas s’il y a des licences libres (des trucs un peu utilisés, pas trop exotiques) qui s’intéressent vraiment à cet aspect des choses. Si quelqu’un a des informations sérieuses là-dessus, ça m’intéresse.

Là par contre je me demande à quel point il y a conflit avec la licence libre. J’imagine que ça doit dépendre de la licence.

C’est en effet un cas limite, utilisé par GRSecurity, le gros correctif pour améliorer la sécurité du noyau Linux et est donc soumis à la GPLv2.

Jusqu’ici la question n’est pas vraiment tranchée, mais disons que clairement l’auteur n’est pas très bienveillant. Il faudrait un jugement d’un tribunal pour régler la question définitivement.

+0 -0

Dans le même genre de problématique, j’ai ma télévision.

Une télé, en soit classique, non connecté, pas d’accès à un réseau. Mais en parcourant le manuel, j’ai vu quelques pages concernant le soft embarqué.

Celui-ci est open source(je ne me souviens pas de la licence exacte, pas certain qu’il soit libre ? Faudrait que je vérifie), et n’importe qui peut accéder au code source. Par curiosité, je me suis dis que j’allais jeter un œil.

Donc, je vais à la section « comment accéder au code source ». C’est simple, il faut envoyer un courrier papier au constructeur, faisant la demande de ce code source, avec une adresse postale pour la réponse.

N’ayant pas eu la motivation, je n’ai pas fait la demande. Mais au vu de l’adresse de contacte, la seule possibilité que je vois, c’est qu’ils envoient le code par clef usb ou par cédérom… :-°

Cédérom ou DVD, effectivement, ça se fait « beaucoup » (il me semble que BMW avait fait ça une fois). Il suffit d’un courageux, pour demander puis publier dans un format plus acceptable le contenu :p.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte