#! /bin/sh # postinst.skeleton # Skeleton maintainer script showing all the possible cases. # Written by Charles Briscoe-Smith, March-June 1998. Public Domain. # 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. # Install info files into the dir file : install-info --quiet --section "section pattern" "Section Title" \ : --description="Name of the document" /usr/info/foo.info # Create stub directories under /usr/local : if test ! -d /usr/local/lib/foo; then : if test ! -d /usr/local/lib; then : if mkdir /usr/local/lib; then : chown root.staff /usr/local/lib || true : chmod 2775 /usr/local/lib || true : fi : fi : if mkdir /usr/local/lib/foo; then : chown root.staff /usr/local/lib/foo || true : chmod 2775 /usr/local/lib/foo || true : fi : fi # Ensure the menu system is updated : [ ! -x /usr/bin/update-menus ] || /usr/bin/update-menus # Arrange for a daemon to be started at system boot time : update-rc.d foo default >/dev/null case "$1" in configure) # Configure this package. If the package must prompt the user for # information, do it here. : # Activate menu-methods script : chmod a+x /etc/menu-methods/foo # Update ld.so cache : ldconfig # Make our version of a program available : update-alternatives \ : --install /usr/bin/program program /usr/bin/alternative 50 \ : --slave /usr/man/man1/program.1.gz program.1.gz \ : /usr/man/man1/alternative.1.gz # Tell ucf that the file in /usr/share/foo is the latest # maintainer version, and let it handle how to manage the real # confuguration file in /etc. This is how a static configuration # file can be handled: ucf /usr/share/foo/configuration /etc/foo.conf ### We could also do this on the fly. The following is from Tore ### Anderson: #. /usr/share/debconf/confmodule ### find out what the user answered. # db_get foo/run_on_boot # run_on_boot=$RET # db_stop ### safely create a temporary file to generate our suggested ### configuration file. # tempfile=`tempfile` # cat << _eof > $tempfile ### Configuration file for Foo. ### this was answered by you, the user in a debconf dialogue # RUNONBOOT=$run_on_boot ### this was not, as it has a sane default value. # COLOUROFSKY=blue #_eof ### Note that some versions of debconf do not release stdin, so ### the following invocation of ucf may not work, since the stdin ### is never coneected to ucfr. ### now, invoke ucf, which will take care of the rest, and ask ### the user if he wants to update his file, if it is modified. #ucf $tempfile /etc/foo.conf ### done! now we'll just clear up our cruft. #rm -f $tempfile # 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" = ""; 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 exit 0