[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: