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#

Répondre à