Re: I have a beef with policy 3.3.3
>>"Anthony" == Anthony Towns <aj@azure.humbug.org.au> writes:
>> So, why isn't it policy for packages to update-rc.d their init scripts only
>> on initial install? Policy just tells them to do in the postinst, period
>> -- which means unconditionally by implication.
Anthony> I'm not sure how that interacts with removal vs purging,
Anthony> btw.
Can;t distinguish between initial install, or purged since
last install. Is that a useful distinction in this debate?
manoj
A skeleton sh postinst follows, I have snipped the doc symlink
handling for brevity.
#! /bin/sh
# Abort if any command returns an error value
set -e
# This script is called as the last step of the installation of the
# package. All the package's files are in place, dpkg has already
# done its automatic conffile handling, and all the packages we depend
# of are already fully installed and configured.
# The following idempotent stuff doesn't generally need protecting
# against being run in the abort-* cases.
# Ensure the menu system is updated
[ ! -x /usr/bin/update-menus ] || /usr/bin/update-menus
package_name=
if [ -z "package_name" ]; then
print >&2 "Internal Error. Please report a bug."
exit 1;
fi
case "$1" in
configure)
# Configure this package. If the package must prompt the user for
# information, do it here.
handle_doc_symlink;
# There are three sub-cases:
if test "${2+set}" != set; then
# We're being installed by an ancient dpkg which doesn't remember
# which version was most recently configured, or even whether
# there is a most recently configured version.
:
elif test -z "$2" -o "$2" = "<unknown>"; then
# The package has not ever been configured on this system, or was
# purged since it was last configured.
:
else
# Version $2 is the most recently configured version of this
# package.
:
fi ;;
abort-upgrade)
# Back out of an attempt to upgrade this package FROM THIS VERSION
# to version $2. Undo the effects of "prerm upgrade $2".
:
;;
abort-remove)
if test "$2" != in-favour; then
echo "$0: undocumented call to \`postinst $*'" 1>&2
exit 0
fi
# Back out of an attempt to remove this package, which was due to
# a conflict with package $3 (version $4). Undo the effects of
# "prerm remove in-favour $3 $4".
:
;;
abort-deconfigure)
if test "$2" != in-favour -o "$5" != removing; then
echo "$0: undocumented call to \`postinst $*'" 1>&2
exit 0
fi
# Back out of an attempt to deconfigure this package, which was
# due to package $6 (version $7) which we depend on being removed
# to make way for package $3 (version $4). Undo the effects of
# "prerm deconfigure in-favour $3 $4 removing $6 $7".
:
;;
*) echo "$0: didn't understand being called with \`$1'" 1>&2
exit 0;;
esac
if command -v install-docs >/dev/null 2>&1; then
install-docs -i /usr/share/doc-base/$package_name
fi
--
"Say yur prayers, yuh flea-pickin' varmint!" Yosemite Sam
Manoj Srivastava <srivasta@debian.org> <http://www.debian.org/%7Esrivasta/>
1024R/C7261095 print CB D9 F4 12 68 07 E4 05 CC 2D 27 12 1D F5 E8 6E
1024D/BF24424C print 4966 F272 D093 B493 410B 924B 21BA DABB BF24 424C
Reply to: