I found the following while trying to rebuild this package after Branden agreed for a NMU implementing a switch to po-debconf for the templates.
If one tries to rebuild timezoneconf on a *current* sarge machine, the build is OK, but the postinst dies with : bash-2.05b# dpkg -i timezoneconf_0.7_all.deb (Reading database ... 131383 files and directories currently installed.) Preparing to replace timezoneconf 0.8.1 (using timezoneconf_0.7_all.deb) ... Unpacking replacement timezoneconf ... Setting up timezoneconf (0.7) ... 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 I posted this in -devel-french and, as often, Denis Barbier found the solution.. :-) In its current version, timezoneconf.postinst includes perl with embedded shelle commands : <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< # 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: $!"; >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> The dh_installdocs part comes from a #DEBHELPER# in debian/postinst. When recompiling now, this doesnt exist anymore and thus we end up with : <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< my $temp="set -e\nset -- @ARGV\n" . << 'EOF'; if [ "$1" = "configure" ]; then [ -x /usr/sbin/update-configlets ] && /usr/sbin/update-configlets fi EOF >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> If /usr/sbin/update-configlets doesn't exist, the return code is then 1, thus explaining failure. Conclusion 1: the test was wrong, but this was hidden by the former test being successful.. :-). This appears now, as #DEBHELPER# is empty. Conclusion 2: maintainers who put tests just before #DEBHELPER# in their {post,pre}{inst,rm} should check these.... And then, Denis proposed a patch for correcting the problem in timezoneconf. --- 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#