On Wed, Aug 22, 2001 at 09:24:02PM +0200, Eric Van Buggenhaut wrote: > Sorry for cross-posting, I posted to the wrong list first. > > I can't purge a package : > > curitiba_POTATO:/# dpkg --purge superviser-server > (Reading database ... 9401 files and directories currently installed.) > Removing superviser-server ... > Stopping superviser-server: dpkg: error processing superviser-server > (--purge): > subprocess pre-removal script returned error exit status 1 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
So we go look for things that could return 1 in prerm. > Errors were encountered while processing: > superviser-server > curitiba_POTATO:/# ls -l /etc/init.d/superviser-server > -rwxr-xr-x 1 root root 1945 Jul 27 11:10 > /etc/init.d/superviser-server Yes, of course, when prerm fails then no files are deleted. That's _pre_-removal. > #! /bin/sh > # prerm script for superviser-server > # > # see: dh_installdeb(1) > > set -e That is correct and important; it causes the failure of an individual command to cause the entire script to fail. > # summary of how this script can be called: > # * <prerm> `remove' > # * <old-prerm> `upgrade' <new-version> > # * <new-prerm> `failed-upgrade' <old-version> > # * <conflictor's-prerm> `remove' `in-favour' <package> <new-version> > # * <deconfigured's-prerm> `deconfigure' `in-favour' > # <package-being-installed> <version> `removing' > # <conflicting-package> <version> > # for details, see /usr/doc/packaging-manual/ > > case "$1" in > remove|upgrade|deconfigure) > # install-info --quiet --remove /usr/info/superviser-server.info.gz > ;; > > failed-upgrade) > ;; > *) > echo "prerm called with unknown argument \`$1'" >&2 > exit 0 > ;; > esac > > # dh_installdeb will replace this with shell code automatically > # generated by other debhelper scripts. > Nothing so far has actually done anything. > #DEBHELPER# > > exit 0 Clearly the thing that is returning 1 lies in the debhelper prerm. > And the debhelper script : > > [EMAIL PROTECTED]:~/arturo/superviser-server-1.0]$ more debian/prerm.debhelper > # Automatically added by dh_installdocs > if [ \( "$1" = "upgrade" -o "$1" = "remove" \) -a -L > /usr/doc/superviser-server ]; then > rm -f /usr/doc/superviser-server rm -f always returns 0, not that. > fi > # End automatically added section > # Automatically added by dh_installinit > /etc/init.d/superviser-server stop That's the only thing it could be. Your init.d script is failing and returning 1. It is bugged, fix it. Hint: --oknodo parameter to start-stop-daemon (look it up). > Is this a bug in debhelper ? Yes actually, it should be guarded with a -e: if [ -e "/etc/init.d/superviser-ircd" ]; then /etc/init.d/superviser-ircd stop fi However, this is not the problem here (wrong error message). (My debhelper guards it, I don't know why your's hasn't) -- Andrew Suffield <[EMAIL PROTECTED]> Dept. of Computing, Imperial College, London, UK
pgpPdyPCDZjWZ.pgp
Description: PGP signature