Le choix des fonds d'écrans disponibles empaquettés en deb, que l'on peut voir sur http://www.bootsplash.de,(...) m'a donner envie de m'y remettre ce week-end.
J'avais déja obtenu un beau résultat avec BootSplash dans le passé, mais je ne l'avais pas réinstallé après mon dernier crash disque. Et puis il y avait ce bug incompréhensible sur le postinst de sysv-rc-bootsplash :
Paramétrage de sysv-rc-bootsplash (1.0.0-5) ...
/var/lib/dpkg/info/sysv-rc-bootsplash.postinst: 42: function: not found
Depuis le temps, je me suis dit que ça devait être réglé!
Et bien non, le problème existe toujours. Mais cette fois ci, je me suis donné la peine de creuser. Je passe sur un problème de partage de fichiers de sysv-rc_2.86 appartenant aussi au paquet sysvinit, réglé à coup de dpkg --force-overwrit
Le problème du postinst, c'est que le script
/var/lib/dpkg/info/sysv-rc-bootsplash.postinst
utilise une fonction, ce qui n'est pas du sh, mais que le fichier commence par le classique #! /bin/sh
En temps normal, pas de problème,
/bin/sh
est divertit sur bash par défaut. Mais en toute logique, sh peut être fournit par tout shell compatible sh, même sans les extensions bash. C'était le cas pour moi, mon sh pointant sur dash.(Je ne sais plus comment dash a été installé chez moi, mais il me semble bien que c'était une suggestion de l'installateur Debian).
Il existe plusieurs solutions simples pour régler le problème, comme par exemple retirer son statut de sh par défaut à dash par un
dpkg-reconfigure dash
, et vérifier ensuite que /bin/sh
pointe bien sur bash, ou bien réécrire le postinst en question pour supprimer l'usage de function
.J'ai choisit une autre voie : puisque postinst dépend de bash, autant officialiser la chose, et remplacer
#! /bin/sh
par #! /bin/bash
dans /var/lib/dpkg/info/sysv-rc-bootsplash.postinst
Evidemment c'est un bricolage, le packageur ne peut pas se contenter de faire ça.
Moi, oui :-)
# http://www.bootsplash.de/
Posté par Julien Duponchelle (site web personnel) . Évalué à 5.
http://www.bootsplash.de/(...)
# Sysv-rc ?
Posté par Croconux . Évalué à 3.
Curieux je n'ai pas ce problème. Tu as fais un petit upgrade avant d'installer bootsplash? Il a pu y avoir des modifs.
dpkg --force-overwrit
Arrrrgghh! Vade retro. Risquer de mettre en vrac apt pour avoir un joli logo au démarrage ça ne vaut pas le coup, à mon avis.
[^] # Re: Sysv-rc ?
Posté par Lionel Draghi (site web personnel) . Évalué à 1.
Merci pour ton mail, ca m'a donné à réfléchir : c'est probablement du a ce que j'ai restauré la base de mon système avec une Knoppix.
Il y a quelques paquetages qui gardent l'empreinte Knoppix, entre autre sysvinit : je force la mise à jour vers une version Debian et je vais bien voir le résultat.
Si je ne poste plus rien dans les jours à venir, c'est que c'était une mauvaise idée :-)
# /usr/bin/reportbug
Posté par gnujsa . Évalué à 4.
La meilleur solution est de faire un rapport de bug, car il s'agit bien d'un bug: Les scripts en #!/bin/sh ne doivent pas comporter de « bashisme »
http://www.debian.org/doc/debian-policy/ch-files.html(...)
« Evidemment c'est un bricolage, le packageur ne peut pas se contenter de faire ça. »
Non non c'est pas du bricolage, c'est la bonne façon de faire. A la rigueur, il pourrait émuler la fonction bash en shellscript POSIX, mais c'est inutile (BASH est un paquet marqué « Essential »). Il y a d'ailleurs plein de paquets qui ont leurs scripts *.{pre,post}{inst,rm} en bash sans que ça pose problème.
[^] # Re: /usr/bin/reportbug
Posté par niol (site web personnel) . Évalué à 3.
Mais c'est vrai qu'il faut privilégier le rapport de bug plutôt que la petite correction dans son coin.
[^] # Re: /usr/bin/reportbug
Posté par tinodeleste . Évalué à 2.
Par contre, tu peux peut-être comparer la version officielle debian de sysv-rc avec celle modifiée. Normalement, la version officielle ne contient pas de 'bashism' (sinon, c'est un bug, à reporter effectivement aussi), et ca peut te donner des indications sur les corrections propres à effectuer sur le pquet modifié sysv-rc-debian.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.