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

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: