Enfin, oui enfin je fais le billet avec ce titre, maintes fois reculé, maintes fois annulé, maintes fois abandonné, cette fois c’est bien commencé pour le faire publier! De quoi allons-nous parler? Un retour sur Debian, le pourquoi du non-changement, la routine et tout ça avec un exemple concret… En gros, la mise en pratique du titre dans un billet.

LE Johnny a souvent été plus philosophe dans ses chansons que dans sa vie, elles sont sources de modèle pour moi, mais c’est pas vraiment la question. Il suffit d’écouter cette chanson pour voir à quel point elle est dans le vrai ou juste le refrain:

Ça ne change pas un homme, un homme ça vieillit. Ça ne meurt pas un homme, un homme ça s’oublie.

Je n’aime pas le changement pour changer, je n’aime pas les changements révolutionnaires ou sinon je m’adapte mais il me faut du temps –comme avec GNOME-Shell–, à la place j’aime les évolutions. J’ai mes habitudes bonnes et mauvaises, c’est comme ça, mais j’ai essayé de changer.

En fait pour changer, il faut deux choses, la première est de pouvoir changer, la deuxième est de le vouloir. J’ai voulu changer sans avoir la nécessité ou le besoin, je pouvais le faire alors je l’ai fait, changer pour changer mais sans la volonté de le faire. Je me suis trouvé de fausses raisons pour avoir un prétexte de le faire qui du coup m’ont toujours fait regarder derrière.

openSUSE est une excellente distribution, simple, accessible, professionnel, communautaire et j’en passe, surtout je dirai ayant de bons outils comme Yast, OBS/OSC, pour ne citer qu’eux. Mais il y a un mais, c’est que j’ai passé 12 ans sur du Debian, que je sais faire ce que je veux sur Debian, que je fais mes propres paquets avec mes propres options de compilations et tout ça avec des automatismes que je ne retrouve pas avec une distribution à base de RPM.

Je me fous un peu du format de paquets pourvu qu’il soit répandu mais ce n’est pas qu’une question de format de paquets, RPM ou Deb, peu importe c’est la même guerre. En fait c’est plus complexe que ça, le paquet Deb vient avec un nombre de scripts et d’outils, qui ont pour but de faciliter la vie aux mainteneurs. Quand le logiciel ne demande pas de changements significatifs, on peut automatiser les trois étapes de construction en trois commandes. Pour prendre un exemple concret, je vais parler de Ghostwriter –dont je maintiens les paquets pour Debian et openSUSE entre autre chose–, pour commencer je télécharge les sources de Debian Sid pour ne pas partir de zéro, je le fais avec dget ou bien apt:

dget http://deb.debian.org/debian/pool/main/g/ghostwriter/ghostwriter_1.8.0-2.dsc

ou:

apt-get source ghostwriter

L’avantage de la solution utilisant dget est d’être utilisable depuis n’importe quelle distribution et peut importer des sources d’un paquet deb aussi bien de Debian, Ubuntu, Devuan, etc…, depuis une adresse distante. Il suffit juste de donner l’adresse du fichier dscdsc pour Debian Source Control–. Les deux commandes vont importer trois fichiers, une archive ghostwriter_1.8.0.orig.tar.gz contenant les sources du logiciel comme son développeur amont l’offre, une seconde archive ghostwriter_1.8.0-2.debian.tar.xz qui contient les changements apportés par le mainteneur Debian lors de la debianisation et un fichier ghostwriter_1.8.0-2.dsc. Au passage, ça va aussi vous décompresser les deux archives, mettre le dossier /debian –résultant de la debianisation– dans le dossier des sources amonts.

Ensuite si le fichier watch du dossier debian est bien fait, c’est le cas avec Ghostwriter –sans aucune modestie :)–, il suffira de faire uscan dans ce dossier pour vérifier la présence de sources plus récentes (nouvelle version amont), les télécharger et les décompresser, faire une archive “sauvegarde” des sources amont avec orig dans le nom, mettre le dossier debian dans les nouvelles sources et va ajouter une entrée dans le journal des changements (changelog) du dossier debian, tout ça automatiquement et de façon transparente.

Enfin il ne reste plus qu’a lancer la fabrication des paquets .deb avec la commande pdebuild (si on veut utiliser un chroot et non avoir besoin de télécharger tout un paquet de dépendances de build) –faut quand même installer pdebuild et le configurer un minimum–.

Voila, en trois petites commandes j’ai fait le gros du travail –pour un système archaïque dixit certains, c’est pas mal!!!–. C’est quelque chose que je n’ai pas pu/su faire chez les autres, notamment avec les distributions RPM, qui m’oblige donc de passer manuellement toutes les étapes –télécharger le rpm-sources, le décompresser, récupérer le spec, télécharger sur le site de l’auteur les nouvelles sources de la dernière version, faire évoluer le spec notamment la partie changelog et la version du programme, installer les dépendances de constructions et enfin lancer le build–, ce qui est chiant. Mais c’est pas que ça.

Non Debian ne se résume pas seulement à ses paquets, c’est bien plus que ça. Un truc qui me gène chez openSUSE, je ne le cache pas, c’est l’obligation de passer par un dépôt tiers pour tout ce qui est multimédia. Ça gêne peu de monde mais moi oui ça me dérange, simplement une raison qui me vient comme ça, les remontés de bugs. Le défaut d’avoir besoin d’un dépôt tiers, c’est qu’on a beaucoup de mal à savoir d’où vient le bug et vers qui se tourner.

Puisqu’on me dit souvent que je n’apporte jamais de faits concrets, je vais parler d’un cas qui m’est arrivé. J’utilise Minidlna comme serveur DLNA sur mon PC, avant lui, j’utilisais Mediatomb qui est devenu Gerbera; pour rendre accessible tout un tas de séries et de films sur et à travers divers supports comme des ordinateurs portables, des tablettes, des portables android, des appareil DLNA, des TV,… et encore bien d’autres… Sur les tablettes, portables android et PC, j’utilise VLC comme lecteur, ça c’est pour planter le décor. Depuis le passage à la librairie PUPNP 1.8 qui donne entre autre chose libupnp13, on se retrouve dans une situation connue en amont, d’impossibilité d’accéder et de voir les serveurs DLNA, ce qui est juste beaucoup embêtant. Alors c’est pas critique et on fait un petit rapport de bugs pour ce cas de figure. Au début, ne sachant pas que le bug venait de pupnp, j’ai fait un rapport parlant de VLC et de Minidlna, j’ai aussi inclus que je me tournais plutôt sur un bug de VLC puisque le bug touchait seulement la version PC, pas les autres supports qui voyaient bien mon serveurs, ce qui indiquait que mon serveur Minidlna était bien fonctionnel et que le bug venait pas de lui. Sauf que voila, VLC vient de Packman (le dépôt tiers pour le multimédia chez openSUSE), que Minidlna nous vient directement du projet openSUSE. Donc si le bug venait bien de VLC, il fallait que je fasse deux rapports, un pour openSUSE et un pour Packman. Enfin de compte, puisque Debian était elle aussi touché par ce bug, j’ai eu un retour des devs de chez eux pour me l’indiquer. Le paquet PUPNP venant bien du projet openSUSE et non de Packman, mon rapport était valide. Tout ça a bien-sur fait perdre du temps, demandé plus de recherches et j’en passe…

Le truc c’est que openSUSE ne peut abriter dans ses dépôts des choses qui sont interdites dans certains pays, comme des choses brevetées ou illégales comme des codecs par exemple. La raison la plus simple, c’est que cette distribution, comme Fedora, est soutenue par/appartient à une société commercial. Il est bien question de faire une fondation et il fut question de voter pour ou contre un changement de nom pour ne plus faire allusion à SUSE –car ça nécessite les droits et autorisation de SUSE pour l’utiliser– mais je ne pense pas que ça fera un énorme changement. Déjà pour le changement de nom, je me trompe peut être mais au vu de ce que j’ai pu lire, il n’y en aura pas, de plus SUSE est bien décidé d’arranger les angles dans l’utilisation de son nom pour le projet.

Le besoin de passer par un dépôt tiers est pour moi, pénalisant et c’est surtout ça qui me fait préférer ma Debian par rapport à openSUSE.

Je pourrais parler de la “standardisation debianeuse” qui continue sa route, de par sa popularité, cette famille est souvent bien mieux fournit en documentation et en exemple, mais surtout elle est un standard, pas de façon officiel comme peut l’être la norme LSB, mais tout de même.

La “standardisation” aussi dans l’emplacement des fichiers de configuration, j’aime Debian aussi pour ça, c’est du standard, on cherche jamais longtemps pour trouver et sinon il suffit de se promener sur les wikis ou les documentations des programmes en question.

Standard aussi pour faire des paquets, si je ne trouve pas un programme dans les dépôts de Debian, il me suffit d’aller chercher le paquet source dans une des nombreuses distributions coulants d’elle et d’en faire un paquet depuis ma Debian. C’est vraiment loin du cas des RPM qui même en ne prenant que les sources-RPM et un spec demandent bien trop de changements dans la majorité des cas.

Pour tout un tas d’autres raisons aussi, je pense aux changements incessantes dans les dépôts officiels du projet openSUSE, voir dans ceux qu’on appel “expérimentaux”, dans ce dernier cas c’est pas bien grave, on sait à quoi s’attendre, mais c’est toujours un peu chiant de voir disparaître des dépôts un ou plusieurs paquets qu’on utilise du jour au lendemain. Avec Debian, cette pratique n’est pas ou du moins n’est tolérée que dans de rares cas. Nous avons aussi rarement des versions de développement, un exemple tout con qui me vient, le jeu Wesnoth chez openSUSE, soit on à la version 1.12 soit on a la version de développement qui est la 1.15, pour la version stable 1.14 faut repasser…

C’est pour encore d’autres raisons que ceux détaillées ici, que j’ai choisi de retourner sur Debian pour mon ordinateur principal. Je continue cependant de contribuer dans du packaging, je garde en effet un œil sur cette distribution, je la garde notamment sur l’ordinateur portable.