Changement d’ABI, cassons les logiciels sans tester ni réparer

Une bonne news comme on les aime: https://www.archlinux.org/news/c-abi-change/. Mais qu’est-ce qu’une ABI ? Comme si c’était évident pour tout le monde. C’est Application Binary Interface.

Ok, l’interface binaire va changer mais l’ancienne est toujours fonctionnelle. Et puis le principe de l’open source est d’avoir justement le code source pour pouvoir tout recompiler en cas de besoin comme c’est le cas actuellement.

Ca tombe bien, TrueCrypt a été recompilé pour cette raison. Manque de bol, le logiciel ne fonctionne plus du tout.

C’est trop cool de mettre à jour un logiciel sans le tester. Ce n’est pas parce que ça compile que ça marche. 20 jours plus tard, problème toujours pas résolu.

Si le rapport de bug propose des solutions bizarres, le plus simple est le rollback puisque l’ancienne ABI existe toujours:

# cd /var/cache/pacman/pkg/
# pacman -U truecrypt-1:7.1a-2-x86_64.pkg.tar.xz

Ca, c’est fait.
Linux de merde. Ou plutot distrib de merde ? Ou encore Antonio Rojas (packageur) de merde ? Ou bien Rémy Oudompheng (le mainteneur, donc responsable) de merde ? « Monde de merde ». A coté, les problèmes de mises à jour de Windows 10 c’est du pipi de chat.

GTK 3 ? De la merde en barre

Petite mise à jour de mon système Arch Linux (début janvier 2014). Le lendemain, je lance TrueCrypt, je monte mon volume, et je double click dessus pour l’ouvrir dans mon File Manager habituel, mon cher Dolphin, le gestionnaire de fichier par défaut de KDE.

Mais c’est alors que… SURPRISE, une popup apparait pour me dire que « nautilus » n’est pas trouvé. « Nautilus » est le file manager de Gnome. Qu’est ce que ça vient foutre dans une environnement full KDE.

Après de multiple « fuck linux », je sais que ça vient de Gnome de merde et de GTK en particulier car Truecrypt utilise wxGTK (la belle erreur, très mauvaise intégration). Je décide de regarder ce qui a été mis à jour hier. Il faut savoir que pour le coup j’ai eu de la chance de m’en rendre compte rapidement, si cela avait été dans plusieurs semaines j’aurai eu beaucoup de mal à trouver l’origine du bug.

Voici donc les paquets intéressants qui ont été mis à jour:

[PACMAN] upgraded wxgtk (2.8.12.1-5 -> 3.0.0-2)
[PACMAN] upgraded truecrypt (1:7.1a-1 -> 1:7.1a-2)

J’ai commencé par regarder ce qui a changé dans le paquet truecrypt au cas où nautilus aurait été ajouté en dur dans le code (bien que cela m’aurait énormément étonné). Il n’y a rien de spécial à part les dépendances (le code n’a pas changé car « pkgver » n’a pas changé, l’incrémentation de « pkgrel » n’indique pas un changement de version du code)

Les dépendances indiquent un changement au niveau de wxgtk, et d’après la liste des paquets, wxgtk a bien été mis à jour aussi.

Je n’ai pas eu envie de chercher plus loin, je voulais juste m’assurer que les devs de truecrypt n’avaient pas fait les boulets en mettant un filemanager par défaut. Une fois avoir eu la confirmation que cela vient de GTK ou de wxGTK, je n’allais pas partir dans une croisade à la recherche de bugs.

J’ai tout simplement fait une chose horrible qui n’aurait du jamais voir le jour: j’ai créé un lien symbolique de /bin/nautilus vers /bin/dolphin… GÉNIAL.

Tous les logiciels GTK ne semblent pas capable de lancer l’application par défaut associé à un type de fichier. L’exemple le plus courant est Firefox. À noter que pour truecrypt, avant il y arrivait bien, mais ça, c’était avant.

J’avais un logiciel qui a toujours bien fonctionné (même si il était moche à cause de GTK), à un logiciel qui s’est retrouvé buggé du jour au lendemain. C’est ça linux, c’est ça GTK, du chacun pour soi.

Suite histoire d’ext4

Un beau jour ça a recommencé à nouveau… freeze, freeze, freeze à cause des accès disque. F.U.C.K linux. Je ne suis vraiment pas le seul à qui cela le fait (une recherche avec flush-8:16 ou flush-8:0 suffit). Actuellement, même KWrite freeze parfois quand je sauvegarde le fichier texte dans lequel je rédige les articles du blog… un ordinateur i7 4Go de ram inutilisable avec seulement deux applications de lancées: firefox avec un seul onglet sur une vidéo youtube, et KWrite (bon, seul firefox suffit en fait xD). Pitoyable.

Dans un autre genre, les toolkits graphiques étant différents, avec certaines applications, le CTRL+C et CTRL+V ne fonctionne pas: exemple, firefox sous kde. Il existe une solution mais elle me provoque le bug du double CTRL+C dans la console (voir article précédent). Pour d’autres applications, ce sont les nombres du clavier alphabétique qui ne marche pas (maj+numero) (exemple: truecrypt).

Dans un autre genre encore: l’écran de veille s’active après un délai très court d’inactivité (~1 minute, souvent un peu moins), malgrés une configuration à 30minutes… Le PC est devenu inutilisable, obligation de désactiver l’écran de veille.

Ou encore, au moment de se déconnecter, un écran noir avec une confirmation est censée s’afficher… sauf que le fond noir est raté, un bug fait en sorte qu’une bande de 2 cm n’est pas dessinée, du coup on voit le bureau. WTF.

Autre exemple, une application peut freezer tout le bureau, obliger d’aller dans un tty (ctrl+alt+f1 par exemple) pour tuer l’application concernée…

Ou la sauvegarde d’une image dans firefox, cela lag à cause de l’OS qui calcule à chaque fois la miniature de toutes les images du dossier dans la fenêtre de sauvegarde… La gestion du cache ? Windows le faisait déjà il y a 10 ans (Thumbs.db).

De mieux en mieux linux. C’est un produit pas fini, et finalement mal « packagé » pour ma distribution. Mais il ne faut pas se leurrer, l’herbe n’est pas plus verte ailleurs, avec une société derrière (Red hat ?) ou bien un millionnaire (Ubuntu), linux reste basé sur une multitude de logiciels open source non maitrîsés.