summaryrefslogtreecommitdiff
path: root/debian/postinst
diff options
context:
space:
mode:
Diffstat (limited to 'debian/postinst')
-rwxr-xr-xdebian/postinst472
1 files changed, 472 insertions, 0 deletions
diff --git a/debian/postinst b/debian/postinst
new file mode 100755
index 0000000..7043cce
--- /dev/null
+++ b/debian/postinst
@@ -0,0 +1,472 @@
+#! /bin/sh
+# -*- Mode: Sh -*-
+# postinst ---
+# Author : Manoj Srivastava ( srivasta@glaurung.green-gryphon.com )
+# Created On : Fri Nov 14 11:25:07 2003
+# Created On Node : glaurung.green-gryphon.com
+# Last Modified By : Manoj Srivastava
+# Last Modified On : Mon Dec 1 21:50:09 2003
+# Last Machine Used: glaurung.green-gryphon.com
+# Update Count : 27
+# Status : Unknown, Use with caution!
+# HISTORY :
+# Description :
+#
+# arch-tag: 5401e9ef-39cc-4aee-96a4-61dfb8f32cf7
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+#
+
+# Abort if any command returns an error value
+set -e
+
+package_name=dist;
+
+if [ -z "$package_name" ]; then
+ print >&2 "Internal Error. Please report a bug."
+ exit 1;
+fi
+
+# 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.
+# summary of how this script can be called:
+# * <postinst> `configure' <most-recently-configured-version>
+# * <old-postinst> `abort-upgrade' <new version>
+# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+# <new-version>
+# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+# <failed-install-package> <version> `removing'
+# <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+#
+# quoting from the policy:
+# Any necessary prompting should almost always be confined to the
+# post-installation script, and should be protected with a conditional
+# so that unnecessary prompting doesn't happen if a package's
+# installation fails and the `postinst' is called with `abort-upgrade',
+# `abort-remove' or `abort-deconfigure'.
+
+# 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/${package_name}.info
+
+# Create stub directories under /usr/local
+##: if test ! -d /usr/local/lib/${package_name}; 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/${package_name}; then
+##: chown root.staff /usr/local/lib/${package_name} || true
+##: chmod 2775 /usr/local/lib/${package_name} || 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 ${package_name} default >/dev/null
+
+ask_organization () {
+ if [ -e /usr/share/debconf/confmodule ]; then
+ . /usr/share/debconf/confmodule
+ db_capb
+ ok=''
+ # See if the old shared question still exists.
+ if db_get share/news/organization; then
+ if [ "X$RET" != "X" ]; then
+ orgname="$RET"
+ db_fget share/news/organization seen
+ if [ "$RET" = true ]; then
+ if [ "$orgname" = "--none--" ]; then
+ orgname=""
+ fi
+ else
+ orgname=""
+ fi
+ # I no longer claim this question.
+ db_unregister share/news/organization
+ fi
+ else
+ # Good. The old question is gone.
+ if ! db_get shared/news/organization; then
+ while [ ! "$ok" ]; do
+ retval=$(db_input low shared/news/organization) || true
+ if [ "$retval" = "30 question skipped" ]; then
+ ok=1
+ fi
+ db_go || true
+ db_get shared/news/organization
+ if [ "X$RET" != "X" ]; then
+ ok=1
+ break
+ fi
+ done
+ fi
+ db_fget shared/news/organization seen
+ if [ "$RET" = true ]; then
+ # The user saw and answered the question using debconf.
+ db_get shared/news/organization
+ if [ "$RET" = "--none--" ]; then
+ orgname=""
+ else
+ orgname="$RET"
+ fi
+ else
+ # Debconf did not display the question to the user.
+ orgname=""
+ fi
+ fi
+ else
+ # Debconf is not available so ask the question by hand.
+ echo ""
+ /bin/cat << 'EOH'
+
+ Please type the name of your organization as you want it to
+ appear on the Organization line of outgoing articles/patches.
+ This information is stored in the configuration file
+ /etc/news/organization. (It is nice if this also specifies
+ your location. Your city name is probably sufficient if well
+ known.) For example:
+
+ University of Southern North Dakota, Hoople
+ type in "--none--" if you do not want to specify one.
+ However, you shall be asked again on the next upgrade if
+ /etc/news/organization does not exist.
+
+EOH
+
+ orgname=""
+ while test "X$orgname" = "X"; do
+ rp='Organization:'
+ xxxm=$dflt
+ case "$xxxm" in
+ '') echo -n "$rp " ;;
+ *) case "$rp" in
+ '') echo -n "[$xxxm] ";;
+ *)
+ if test `echo "$rp [$xxxm] " | wc -c` -ge 80; then
+ echo "$rp"
+ echo -n "[$xxxm] "
+ else
+ echo -n "$rp [$xxxm] "
+ fi
+ ;;
+ esac;;
+ esac
+ ans='!'
+ while expr "X$ans" : "X!" >/dev/null; do
+ read answ
+ set x $xxxm
+ shift
+ aok=''; eval "ans=\"$answ\"" && aok=y
+ case "$answ" in
+ "$ans")
+ case "$ans" in
+ "!")
+ sh
+ echo " "
+ case "$xxxm" in
+ '') echo -n "$rp " ;;
+ *) case "$rp" in
+ '') echo -n "[$xxxm] ";;
+ *)
+ if test `echo "$rp [$xxxm] " | wc -c` -ge 80; then
+ echo "$rp"
+ echo -n "[$xxxm] "
+ else
+ echo -n "$rp [$xxxm] "
+ fi
+ ;;
+ esac;;
+ esac
+ ;;
+ !*)
+ set x `expr "X$ans" : "X!\(.*\)$"`
+ shift
+ sh -c "$*"
+ echo " "
+ case "$xxxm" in
+ '') echo -n "$rp ";;
+ *) case "$rp" in
+ '') echo -n "[$xxxm] ";;
+ *)
+ if test `echo "$rp [$xxxm] " | wc -c` -ge 80; then
+ echo "$rp"
+ echo -n "[$xxxm] "
+ else
+ echo -n "$rp [$xxxm] "
+ fi
+ ;;
+ esac;;
+ esac
+ ;;
+ esac;;
+ *)
+ case "$aok" in
+ y)
+ echo "*** Substitution done -- please confirm."
+ xxxm="$ans"
+ ans=`echo -n "$ans" | tr '\012' ' '`
+ xxxm="$ans"
+ ans=!
+ ;;
+ *)
+ echo "*** Error -- try again."
+ ans=!
+ ;;
+ esac
+ case "$xxxm" in
+ '') echo -n "$rp " ;;
+ *) case "$rp" in
+ '') echo -n "[$xxxm] ";;
+ *)
+ if test `echo "$rp [$xxxm] " | wc -c` -ge 80; then
+ echo "$rp"
+ echo -n "[$xxxm] "
+ else
+ echo -n "$rp [$xxxm] "
+ fi
+ ;;
+ esac;;
+ esac
+ ;;
+ esac
+ case "$ans$xxxm$nostick" in
+ '')
+ ans=!
+ case "$xxxm" in
+ '') echo -n "$rp " ;;
+ *) case "$rp" in
+ '') echo -n "[$xxxm] ";;
+ *)
+ if test `echo "$rp [$xxxm] " | wc -c` -ge 80; then
+ echo "$rp"
+ echo -n "[$xxxm] "
+ else
+ echo -n "$rp [$xxxm] "
+ fi
+ ;;
+ esac;;
+ esac
+ ;;
+ esac
+ done
+ case "$ans" in
+ '') ans="$xxxm";;
+ esac
+ orgname="$ans"
+ done
+ if [ "$ans" = "--none--" ]; then
+ orgname=""
+ fi
+ fi
+
+}
+
+set_org_perms () {
+ chown root /etc/news/organization
+ if grep news /etc/group 2>&1 >/dev/null ; then
+ chgrp news /etc/news/organization
+ else
+ chgrp root /etc/news/organization
+ fi
+ chmod 0644 /etc/news/organization
+}
+
+case "$1" in
+ configure)
+ # Configure this package. If the package must prompt the user for
+ # information, do it here.
+ # Install emacs lisp files
+ ##:if [ -x /usr/lib/emacsen-common/emacs-package-install ]; then
+ ##: /usr/lib/emacsen-common/emacs-package-install $package_name
+ ##:fi
+
+
+ # Activate menu-methods script
+ ##: chmod a+x /etc/menu-methods/${package_name}
+
+ # 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:
+ ##:if which ucf >/dev/null 2>&1; then
+ ##: ucf /usr/share/${package_name}/configuration /etc/${package_name}.conf
+ ##:fi
+
+ ### We could also do this on the fly. The following is from Tore
+ ### Anderson:
+
+ if [ -e /usr/share/debconf/confmodule ]; then
+ . /usr/share/debconf/confmodule
+ fi
+
+
+ ### 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" || test "$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
+
+ if [ ! -f /etc/news/organization ]; then
+ echo ""
+ echo "Hmmm.. You don't seem to have an /etc/news/organization file."
+ echo "Ususally that contains the name of your organization as "
+ echo "you want it to appear on the Organization line of outgoing"
+ echo "articles/patches."
+ echo ""
+
+ : echo create directory
+ if test ! -d /etc/news ; then
+ mkdir /etc/news
+ chown root /etc/news
+ if grep news /etc/group 2>&1 >/dev/null ; then
+ chgrp news /etc/news
+ else
+ echo "darn, you do not have news in /etc/group"
+ chgrp root /etc/news
+ fi
+ chmod 2755 /etc/news
+ fi
+
+ # if the organization stuff exists, then copy that over
+ if test -f /etc/organization ; then
+ echo "But you do have /etc/organization. I'll Use that."
+ echo "If that is not right, just edit the /etc/news/organization "
+ echo "after the setup is done. (/etc/organization is deprecated. You"
+ echo "might consider removing it if nothing else uses it)."
+ echo ""
+ cp /etc/organization /etc/news/organization
+ set_org_perms
+ else
+ : echo get organization name
+ ask_organization
+ if [ "X$orgname" != "X" ]; then
+ echo "$orgname" > /etc/news/organization
+ set_org_perms
+ fi
+ fi
+ 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 || test "$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
+
+# Install doc base documentation
+##:if which install-docs >/dev/null 2>&1; then
+##: if [ -e /usr/share/doc-base/${package_name} ]; then
+##: install-docs -i /usr/share/doc-base/${package_name}
+##: fi
+##:fi
+
+#DEBHELPER#
+
+exit 0