postinst is in resolvconf 1.69ubuntu1.
This file is a maintainer script. It is executed when installing (*inst) or removing (*rm) the package.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 | #!/bin/sh
#
# This file is part of the resolvconf package.
#
set -e
. /usr/share/debconf/confmodule
MYNAME=resolvconf.postinst
report() { echo "${MYNAME}: $*" ; }
report_err() { report "Error: $*" >&2 ; }
report_warn() { report "Warning: $*" >&2 ; }
report_info() { report "$*" >&2 ; }
OLD_RUN_DIR=/var/run
is_immutable_file() {
[ "$1" ] || return 2
[ -e "$1" ] || return 1
[ ! -L "$1" ] || return 1
local ATTR="$(lsattr "$1" 2>/dev/null || :)"
[ "$ATTR" ] || return 1
echo "$ATTR" | awk '$1 ~ /i/ { exit 0; }; { exit 1; }'
}
### Deal with obsolete configuration files ###
rm -f /etc/dhcp3/dhclient-enter-hooks.d/resolvconf
[ -f /etc/resolvconf/update.d/bind ] && mv -f /etc/resolvconf/update.d/bind /etc/resolvconf/update.d/bind.dpkg-old
### Create run-time directories and linkify ###
#
# We create the run-time directories here, in the postinst, even though
# we also do so in the preinst, because
# * the system may have rebooted since the preinst ran, causing
# everything on tmpfses to disappear;
# * multistrap doesn't run the preinst at all.
#
case "$1" in
configure)
# Linkify /etc/resolv.conf if appropriate
db_get resolvconf/linkify-resolvconf
if [ "$RET" = "true" ] ; then
if is_immutable_file /etc/resolv.conf ; then
db_input critical resolvconf/fixing-immutable
db_go || :
chattr -i /etc/resolv.conf
fi
if [ -f /etc/resolv.conf ] \
&& [ ! -L /etc/resolv.conf ]
then
# Back up original file
if [ ! -e /etc/resolvconf/resolv.conf.d/original ] ; then
cp -a /etc/resolv.conf /etc/resolvconf/resolv.conf.d/original
db_get resolvconf/link-tail-to-original
if [ "$RET" = "true" ]; then
ln -s original /etc/resolvconf/resolv.conf.d/tail
else
: > /etc/resolvconf/resolv.conf.d/tail
fi
else
cp -a /etc/resolv.conf /etc/resolv.conf.dpkg-old
fi
mkdir -p /run/resolvconf/interface
# Before creating the link, make sure that the original file is
# at the target of the link. /sbin/resolvconf will overwrite
# this when it does an update, of course.
if [ ! -e /run/resolvconf/resolv.conf ] ; then
cp -a /etc/resolv.conf /run/resolvconf/resolv.conf
fi
# Add the original file to the database so that its contents
# are included when resolvconf updates.
# Yes, this is an ugly workaround for the problem that there
# is no way to obtain nameserver information from interface
# configurers after they have done their configuration work.
cp -a /etc/resolv.conf /run/resolvconf/interface/original.resolvconf
fi
# Create the link and make sure we don't convert it again on upgrade
# The link is relative to allow for cp from outside a chroot into a chroot
# to work without overwriting the file outside the chroot (or failing)
ln -nsf ../run/resolvconf/resolv.conf /etc/resolv.conf
db_set resolvconf/linkify-resolvconf false
fi
# FHS violation; get rid of it, we use /run directly now.
if [ -e /etc/resolvconf/run ]; then
rm -rf /etc/resolvconf/run
fi
;;
# triggered)
# Don't do anything here
# ;;
# abort-upgrade)
# Don't do anything here since we don't do anything in the prerm on upgrade or on failed-upgrade
# ;;
# abort-remove)
# Don't do anything extra here since we don't deconfigure anything in the prerm on remove
# ;;
# abort-deconfigure)
# Don't do anything extra here since we don't do anything in the prerm on deconfigure
# ;;
esac
db_stop
### Notify others of our installation ###
is_installed() {
# Same function in preinst, postinst, postrm
[ "$1" ] || return 1
dpkg-query -W -f='${Status}\n' "$1" 2>/dev/null | grep -siq '^[[:alpha:]]\+ [[:alpha:]]\+ installed$' >/dev/null 2>&1
}
case "$1" in
configure)
if [ -f /run/resolvconf/packages-to-notify ] ; then
PACKAGES_TO_NOTIFY="$(cat /run/resolvconf/packages-to-notify)"
rm -f /run/resolvconf/packages-to-notify
for PKG in $PACKAGES_TO_NOTIFY ; do
if is_installed "$PKG" ; then
SCRPT="/usr/lib/resolvconf/dpkg-event.d/$PKG"
if [ -x "$SCRPT" ] ; then
"$SCRPT" install || :
fi
fi
done
fi
;;
# triggered)
# Don't do anything
# ;;
# abort-upgrade)
# Don't do anything here since we don't do anything in the prerm on upgrade or on failed-upgrade
# ;;
# abort-remove)
# Don't do anything extra here since we don't deconfigure anything in the prerm on remove
# ;;
# abort-deconfigure)
# Don't do anything extra here since we don't do anything in the prerm on deconfigure
# ;;
esac
# Automatically added by dh_installinit
if [ -x "/etc/init.d/resolvconf" ]; then
if [ ! -e "/etc/init/resolvconf.conf" ]; then
update-rc.d resolvconf defaults >/dev/null
fi
invoke-rc.d resolvconf start || exit $?
fi
# End automatically added section
# Automatically added by dh_installinit
update-rc.d -f resolvconf remove >/dev/null || exit $?
# End automatically added section
exit 0
|