dimanche 17 janvier 2010

Les bugs critiques

Avec mon disque dur externe USB, j'ai rencontré un bug bien étrange: le tranfert de fichier est extrêment lent au point de prendre des heures. Je commence à chercher une solution et je trouve que ce bug est connu. Sur le site de launchpad lui-même: Bug #197762 reported by Amar Boudjerida on 2008-03-02. Nous sommes en janvier 2010, soit environ 2 ans après, et le bug est toujours là, d'ailleurs, le bug report indique bien qu'il n'a pas été corrigé, mais pire, il a été classé comme non critique.

Apparemment ce bug ne semble pas être reproductible, mais à en croire l'activité sur le bug report, les derniers messages datent de moins de deux semaines, donc d'autres personnes comme moi continuent à subir ce bug. Un bug logiciel puisque qu'avec Windows le transfert est rapide.

La question que je me pose à présent, c'est qu'est ce qu'un bug critique pour "ubuntu" ? En effet, ce n'est peut-être pas critique pour une machine serveur qui doit ne certainement pas utiliser l'USB, mais pour une machine de bureau ce l'est, d'autant plus qu'ubuntu est destiné à ce type de machine. Pourquoi je juge ce bug critique ? Pour la simple raison que si je ne peux pas utiliser mon disque dur externe pour faire de la place (voir mon article de décembre 2009) ou des backups, alors il m'est impossible d'utiliser mon ordinateur correctement, et que sans mon second ordinateur sous Windows j'aurai dû désintaller kubuntu.

Donc un bug qui peut pousser des utilisateurs, même une minorité malgré l'absence de statistique fiable, à désintaller le système d'exploitation, n'est pas critique ? Incroyable. Tous ceux qui l'ont rencontré ont affirmé que c'était « critical », pourtant, je cite:

Sebastien Bacher wrote on 2008-05-26: #20
discussing the settings is not really constructive, that issue is a speed one that only some people get, it's not critical by any mean, it might be annoying but adding random comments about the bug settings here will not make it work automagically, the desktop team is small and has thousand of open bugs so everything can't be worked immediatly, especially if the issue is hardware dependent and an upstream one
okay, c'est seulement « annoying » (ennuyeux). Ce n'est que l'avis d'un utilisateur mais au final le bug a une priorité moyenne et des personnes, tout comme moi, sont scandalisées de tomber sur ce bug. À la limite, ne pas avoir le temps le temps de le corriger est une chose, mais ne pas reconnaitre son aspect critique en est une autre. En attendant, je reste dépendant de Windows... non pas pour jouer mais pour l'USB!

slumbergod wrote on 2009-12-23: #230
I've endured painfully slow file transfer with USB flash drives ever since Hardy. It has never improved. It has never been resolved. I realise this issue doesn't affect everyone but it has annoyed me for almost my entire two years with linux. During that time I have used dozens of different USB flash drives (some good brands, some cheap) and across different hardware. I had hoped my latest laptop would be different but no, it is still pathetic. 1-2 Mb/s is hopeless. If I boot into Windows it is always significantly faster i.e. the expected USB 2.0 speed for file transfer.

PLEASE PLEASE PLEASE place some importance on this. It has been an issue for far too long.

mercredi 16 décembre 2009

Système de dépôts

Le merveilleux système de paquets de Linux... beaucoup de personnes mettent en avant ce système comme une qualité et s'en servent pour montrer la simplicité d'installation de nouveaux logiciels.
On peut lire par exemple sur sebsauvage.net:

Je n'ai plus à me demander si le logiciel que je suis en train de télécharger ne va pas me carroter le système: Les logiciels présents dans les dépôts Ubuntu sont vérifiés et signés cryptographiquement. L'installeur me signale tout paquet étranger. Si une saloperie s'installe, c'est que je l'aurai vraiment voulu.

Et je peux choisir en qui j'accorde ma confiance en ajoutant les clés cryptographiques des dépôts de mon choix.


Le système de rêve... Sauf si les logiciels présents dans les dépôts ne sont pas à jour. J'ai découvert mumble il y a peu de temps, dont la version 1.2 est sortie récemment. Mais dans le dépôt ubuntu il y avait seulement la version 1.1.8... je l'ai installé avec dégout car je savais que mes amis sous Windows allait en 2 clicks télécharger la dernière version.

Faisant office de serveur, celui ci était aussi à la version 1.1.8 contraignant les windowsiens d'utiliser une version compatible (inclus dans l'installeur Windows 1.2 heureusement).

Après avoir testé avec succès à 4 (3 versions windows, 1 linux) le logiciel, je regarde en détail le site de mumble pour les réglages avancés. Puis je tombe sur:
2009-12-11 - Mumble 1.2.0 has just been released with tons of new features, see http://mumble.sourceforge.net/1.2.0 for details.

Je découvre que la nouvelle version apporte une quantité considérable de nouveautés et surtout d'améliorations que l'on n'a pas pu profiter à cause du dépôt d'ubuntu non à jour.

Cependant, sur le site on propose le téléchargement du serveur compilé en static, c'est toujours mieux que rien. Il a d'ailleurs très bien fonctionné pour les utilisateurs Windows mais pas pour moi puisqu'il n'existe pas de client 1.2 Linux.

Résultat, cette belle description issu du même site de tout à l'heure:
  • Il me suffit de cocher une case pour installer ou virer un logiciel. Il me le télécharge, décompacte, installe et configure automatiquement.
  • Encore mieux: Il me télécharge les paquets qui sont nécessaires au fonctionnement du logiciel que j'ai choisi (plus besoin de faire la chasse aux DLL nécessaires à un programme donné.)
  • Encore mieux !: Quand je déinstalle, il vire les fichiers qui ne sont plus nécessaires. Plus de tonnes de DLL à la con qui traînent dans system32.
  • En deux clic je peux virer un logiciel. Résultat: Ça encourage à en essayer plus.
  • Et il y a plus de 20000 paquets disponibles, concernant tous les sujets (bureautique, outils système, graphisme, vidéo, généalogie, bases de données, serveurs web, image de synthèse, illustration, comptabilité, P2P, musique, sciences, électronique...)


Fait tristement une pâle figure quand j'ai vu sur le forum du projet:
With linux this isn't so easy. You'd have to release and maintain a packet for every distro / version. (Ubuntu 9.10/8.10/8.04 RedHat....and so on). This is why you have packet maintainers for the different OSses that feed your releases into the source tree of the distro.

We don't do that for snapshots/pre release version. So you either have to self-compile or find a packet from someone who did. If you have a specific request for a distribution you might be lucky and someone in this forum can give it to you.


Ah, la voici la réalité... Sur Linux il y a trop de distributions, donc les développeurs préfèrent laisser les mainteneurs de chacune d'entre elles faire leur travail. Et comme Mumble n'est pas aussi populaire que firefox, et bien je pense que je peux attendre. Déjà qu'avec Firefox c'est "long"...

Ceci dit sebsauvage ne cache pas ce point dans les "contres":
Les dépôts avec vieilles versions des logiciels, ça me gonfle. Les dépôts mettent des plombes à être mis à jour.

Je veux la dernière version de VLC ? Pas dans les dépôts Ubuntu 7.10. Dépôts Debian ? Même pas la peine d'y penser !
Je vais donc sur le site de VLC pour télécharger la dernière version. Je clic: Et là on m'indique gentiment le dépôt Ubuntu.
Gros malin, si je viens télécharger VLC sur le site de VLC, c'est qu'il n'est évidemment pas à jour dans le dépôt, sinon il se serait mis à jour automatiquement. Mince y'a aucune version compilée disponible ! Faut vraiment être une buse.
J'en suis réduit à télécharger les sources et compiler... et installer un paquet manquant... et recompiler... et installer un autre paquet manquant... et recompiler... et installer un paquet manquant... et recompiler...et... et merde !
Pour le coup, les utilisateurs de Windows sont moins emmerdés: Ils téléchargent le fichier .exe, double-clic et terminé !


Avec Linux on rajoute ainsi une étape par rapport à Windows: la diffusion de l'application par les dépôts de la distribution. La sécurité a ainsi un coût.

Pour revenir sur mumble, le problème était également ceci:
We released version 1.2.0 of Mumble on December 10, 2009. This release uses a new protocol between the client and server, which means a 1.2.0 client is only compatible with 1.2.0 or newer servers, and a 1.1.8 client can't connect to a 1.2.0 server. The new protocol is designed to be easily extended, so we should never have this problem again. If your favorite server still runs 1.1.8 don't worry, 1.2.0 comes with a backwards compatible client.

Ils ont changé le protocole client/serveur en passant de la version 1.1.8 à 1.2.0, du coup impossible de conserver le serveur 1.2 sous peine de ne pas pouvoir me servir de mumble.

J'ai toute fois tenté de compiler la version 1.2 cliente de mumble en suivant le guide en ayant pris soin de modifier la commande et d'enlever les paquets manquants (libboost1.37-dev):

$ sudo apt-get install qt4-dev-tools libqt4-dev libspeex1 libspeex-dev libboost-dev libasound2-dev libxevie-dev libxevie1 libssl-dev g++ libspeechd-dev libzeroc-ice-dev libpulse-dev slice2cpp libcap-dev libspeexdsp-dev libprotobuf-dev protobuf-compiler libogg-dev

Les NOUVEAUX paquets suivants seront installés :
comerr-dev gccxml ice33-slice libasound2-dev libaudio-dev libavahi-client-dev libavahi-common-dev
libboost-date-time1.38-dev libboost-date-time1.38.0 libboost-dev libboost-filesystem1.38-dev
libboost-filesystem1.38.0 libboost-graph1.38-dev libboost-graph1.38.0 libboost-iostreams1.38-dev
libboost-iostreams1.38.0 libboost-math1.38-dev libboost-math1.38.0 libboost-program-options1.38-dev
libboost-python1.38-dev libboost-python1.38.0 libboost-regex1.38-dev libboost-regex1.38.0
libboost-serialization1.38-dev libboost-serialization1.38.0 libboost-signals1.38-dev libboost-signals1.38.0
libboost-system1.38-dev libboost-system1.38.0 libboost-test1.38-dev libboost-test1.38.0 libboost-thread1.38-dev
libboost-thread1.38.0 libboost-wave1.38-dev libboost-wave1.38.0 libboost1.38-dev libboost1.38-doc libcap-dev
libdb4.6++ libdbus-1-dev libexpat1-dev libfontconfig1-dev libfreetype6-dev libfreeze33 libgl1-mesa-dev
libglacier2-33 libglib2.0-dev libglu1-mesa-dev libglu1-xorg-dev libgssrpc4 libicebox33 libicegrid33
libicepatch2-33 libicessl33 libicestorm33 libicexml33 libicu-dev libkadm5srv6 libkdb5-4 libkrb5-dev liblcms1-dev
libmng-dev libogg-dev libpq-dev libprotobuf-dev libprotobuf3 libpulse-browse0 libpulse-dev libpulse-mainloop-glib0
libqt4-dev libqt4-opengl-dev libspeechd-dev libspeex-dev libspeexdsp-dev libsqlite0 libsqlite0-dev libssl-dev
libxcursor-dev libxevie-dev libxext-dev libxfixes-dev libxft-dev libxi-dev libxinerama-dev libxmu-dev
libxmu-headers libxrandr-dev libxrender-dev libzeroc-ice33-dbg libzeroc-ice33-dev mesa-common-dev
protobuf-compiler python-dev python2.6-dev qt4-designer qt4-dev-tools qt4-doc qt4-qmake x11proto-evie-dev
x11proto-fixes-dev x11proto-randr-dev x11proto-render-dev x11proto-xext-dev x11proto-xinerama-dev xlibmesa-gl-dev
Il est nécessaire de prendre 172Mo dans les archives.
Après cette opération, 577Mo d'espace disque supplémentaires seront utilisés


577 Mo à installer pour compiler l'application... J'ai donc laissé tomber par manque d'espace disque.

Pour résumer: le système de dépôts possède des avantages, mais aussi beaucoup d'inconvénients. Tout d'abord pour les utilisateurs qui ne sont pas à jour, mais aussi pour les développeurs qui doivent contacter les mainteneurs de chaque distribution (quoi que) pour satisfaire ceux qui ne souhaitent pas compiler, ou bien proposer eux-même les versions pour chaque distribution.
Au final, l'utilisateur "avancé" devra tôt ou tard tard installer des logiciels en dehors du système de dépôts dont la complexité d'installation dépendra de l'investissement des développeurs dans la diffusion de leur application. Par exemple, TrueCrypt ou yEd s'installent facilement.

samedi 31 octobre 2009

Mise à jour 9.04 vers 9.10

Rien de plus simple, cela s'effectue avec l'outil de mise à jour qui va télécharger les nouveaux paquets. Cependant, le serveur de téléchargement étant assez lent, je décide de télécharger en trois secondes l'image ISO sur le serveur mirroir de mon choix, puis de mettre à jour le système à partir du CD mais sans le graver.

Je lance l'installation, je choisis d'effectuer une installation offline recommander pour les machines sans accès Internet, mais il me télécharge quand même des fichier sur Internet, ce qui est bizarre. Je décide de débrancher le câble réseau pour tenter de résoudre ce bug, en vain. Finalement je me résous à faire la mise à jour en ligne en tentant de prendre un miroir plus rapide, mais sans succès.

Le lendemain, je tente à nouveau la mise à jour, mais c'est toujours aussi lent... En voulant changer la liste des miroirs directement en éditant le fichier /etc/apt/source.list, j'ai eut l'idée d'effacer tous les miroirs Internet pour ne laisser que le cdrom. Puis j'ai relancé une installation offline qui a fonctionné parfaitement.

Résultat: à quoi bon proposer une option spéciale pour une installation offline avec une confirmation que rien ne sera téléchargé sur Internet même si une connexion est trouvée, pour au final quand même exploiter les sources Internet ?