Re: Recompilation de timezoneconf
On Sat, Jul 26, 2003 at 08:07:06PM +0200, Christian Perrier wrote:
> Quelqu'un pourrait-il essayer de recompiler le paquet timezoneconf
> (version 0.7 de sarge) sans aucune modification, puis d'installer le
> paquet recompilé ?
[...]
> Problem with debhelper scripts: at /var/lib/dpkg/info/timezoneconf.postinst line 16.
> dpkg: error processing timezoneconf (--install):
> subprocess post-installation script returned error exit status 1
> Errors were encountered while processing:
> timezoneconf
> Bien sûr, si j'installe avec APT le paquet issu de l'archive, tout se
> passe bien.
C'est très intéressant, tu devrais AMHA le poster sur debian-devel.
Dans la version actuelle, timezoneconf.postinst contient (c'est du perl
qui embarque des commandes shell
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
# Stolen from debhelper(1)
my $temp="set -e\nset -- @ARGV\n" . << 'EOF';
if [ "$1" = "configure" ]; then
[ -x /usr/sbin/update-configlets ] && /usr/sbin/update-configlets
fi
# Automatically added by dh_installdocs
if [ "$1" = "configure" ]; then
if [ -d /usr/doc -a ! -e /usr/doc/timezoneconf -a -d /usr/share/doc/timezoneconf ]; then
ln -sf ../share/doc/timezoneconf /usr/doc/timezoneconf
fi
fi
# End automatically added section
EOF
system ($temp) / 256 == 0
or die "Problem with debhelper scripts: $!";
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
La partie ajoutée par dh_installdocs vient d'un #DEBHELPER# dans le
debian/postinst. Quand on recompile aujourd'hui, cette partie n'existe
plus, et on se retrouve avec (en ne gardant que la partie intéressante) :
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
my $temp="set -e\nset -- @ARGV\n" . << 'EOF';
if [ "$1" = "configure" ]; then
[ -x /usr/sbin/update-configlets ] && /usr/sbin/update-configlets
fi
EOF
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Mais si /usr/sbin/update-configlets n'existe pas, le code de retour
est 1, ce qui entraîne l'échec. Le diff joint corrige le problème.
Conclusion : le test était foireux, mais on ne le voyait pas. Maintenant
que #DEBHELPER# est vide, le problème apparaît.
Moralité : il faudrait que ceux qui mettent des tests avant #DEBHELPER#
dans leurs fichiers {post,pre}{inst,rm} les vérifient.
Denis
--- debian/postinst.orig 2003-07-26 22:54:06.000000000 +0200
+++ debian/postinst 2003-07-26 22:54:23.000000000 +0200
@@ -7,7 +7,9 @@
my $temp="set -e\nset -- @ARGV\n" . << 'EOF';
if [ "$1" = "configure" ]; then
- [ -x /usr/sbin/update-configlets ] && /usr/sbin/update-configlets
+ if [ -x /usr/sbin/update-configlets ]; then
+ /usr/sbin/update-configlets
+ fi
fi
#DEBHELPER#
Reply to: