1
0
mirror of https://github.com/CumulusNetworks/ifupdown2.git synced 2024-05-06 15:54:50 +00:00

ifupdown2: fixup maintainer scripts

Ticket: CM-5764
Reviewed By: TBA
Testing Done: of course none ;) Will update when I have some time to test

fupdown2's postinst and postrm scripts do not conform to Debian's policy
for maintainer scripts [1]. Specific non-conformance follows:

* fixed maintainer scripts so they only use /bin/sh as other shells are
  non-essential packages and may not exist on the system
* fixed maintainer scripts so only actions specified by $1 are performed
  per run of the script
* fixed maintainer scripts to only support specific values for $1, and
  will otherwise exit with error
* included at the bottom of the postrm script the "#DEBHELPER#" tag as
  during package building debianhelper will inject extra code at this
  location

[1] https://www.debian.org/doc/debian-policy/ch-maintainerscripts.html
(cherry picked from commit 2289fe4e90a0134fcb07fe7e2e838de755d73e68)
This commit is contained in:
Jonathan Toppins
2015-04-21 14:07:46 -07:00
parent e308cb8280
commit d1017fec7a
2 changed files with 88 additions and 31 deletions

View File

@@ -1,6 +1,22 @@
#!/bin/bash #!/bin/sh
# postinst script for ifupdown2
#
# see: dh_installdeb(1)
set -e set -e
# 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>
# * <postinst> `abort-remove'
# * <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
MYNAME="${0##*/}" MYNAME="${0##*/}"
report() { echo "${MYNAME}: $*" ; } report() { echo "${MYNAME}: $*" ; }
@@ -17,7 +33,8 @@ case "$1" in
ln -sf /run/network /etc/network/run ln -sf /run/network /etc/network/run
fi fi
ln -sf /usr/share/python-ifupdown2/generate_interfaces.py /usr/share/doc/python-ifupdown2/examples/generate_interfaces.py ln -sf /usr/share/python-ifupdown2/generate_interfaces.py \
/usr/share/doc/python-ifupdown2/examples/generate_interfaces.py
[ -d /etc/network/if-pre-up.d ] || mkdir -p /etc/network/if-pre-up.d [ -d /etc/network/if-pre-up.d ] || mkdir -p /etc/network/if-pre-up.d
[ -d /etc/network/if-up.d ] || mkdir -p /etc/network/if-up.d [ -d /etc/network/if-up.d ] || mkdir -p /etc/network/if-up.d
@@ -58,25 +75,29 @@ case "$1" in
(cd /usr/share/man/man8/ && ln -sf /usr/share/man/man8/ifup.8.gz ifdown.8.gz) (cd /usr/share/man/man8/ && ln -sf /usr/share/man/man8/ifup.8.gz ifdown.8.gz)
mkdir -p /etc/network/interfaces.d/ mkdir -p /etc/network/interfaces.d/
update-rc.d networking start 40 S . start 35 0 6 . >/dev/null
;; ;;
purge) abort-upgrade|abort-remove|abort-deconfigure)
# Note: We don't remove /etc/network/interfaces ;;
rm -f /run/network/ifstate
rm -f /sbin/ifquery *)
rm -f /sbin/ifup echo "postinst called with unknown argument \`$1'" >&2
rm -f /sbin/ifdown exit 1
rm -f /usr/share/doc/python-ifupdown2/generate_interfaces.py
;; ;;
esac esac
# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.
# override default udev bridge and hotplug rules because they interfere with # override default udev bridge and hotplug rules because they interfere with
# networking init script # networking init script
udev_user_rulesdir=/etc/udev/rules.d/ udev_user_rulesdir=/etc/udev/rules.d/
udev_sys_rulesdir=/lib/udev/rules.d/ udev_sys_rulesdir=/lib/udev/rules.d/
if [ -e $udev_user_rulesdir ]; then if [ -e $udev_user_rulesdir ]; then
udev_ifupdown2_overrides=("80-networking.rules" "60-bridge-network-interface.rules") udev_ifupdown2_overrides="80-networking.rules
for u in ${udev_ifupdown2_overrides[*]} 60-bridge-network-interface.rules"
for u in ${udev_ifupdown2_overrides}
do do
if [ -e ${udev_sys_rulesdir}/$u -a ! -e ${udev_user_rulesdir}/$u ]; then if [ -e ${udev_sys_rulesdir}/$u -a ! -e ${udev_user_rulesdir}/$u ]; then
(cd ${udev_user_rulesdir} && ln -sf /dev/null $u) (cd ${udev_user_rulesdir} && ln -sf /dev/null $u)
@@ -84,10 +105,6 @@ if [ -e $udev_user_rulesdir ]; then
done done
fi fi
if [ -x "/etc/init.d/networking" ]; then
update-rc.d networking start 40 S . start 35 0 6 . >/dev/null || exit $?
fi
#DEBHELPER# #DEBHELPER#
exit 0 exit 0

View File

@@ -1,19 +1,56 @@
#!/bin/bash #!/bin/sh
# postrm script for ifupdown2
#
# see: dh_installdeb(1)
set -e set -e
rm -f /sbin/ifup /sbin/ifdown /sbin/ifquery # summary of how this script can be called:
# * <postrm> `remove'
# * <postrm> `purge'
# * <old-postrm> `upgrade' <new-version>
# * <new-postrm> `failed-upgrade' <old-version>
# * <new-postrm> `abort-install'
# * <new-postrm> `abort-install' <old-version>
# * <new-postrm> `abort-upgrade' <old-version>
# * <disappearer's-postrm> `disappear' <overwriter>
# <overwriter-version>
# for details, see http://www.debian.org/doc/debian-policy/ or
# the debian-policy package
case "$1" in postrm_remove()
purge) {
# Note: We don't remove /etc/network/interfaces rm -f /sbin/ifup /sbin/ifdown /sbin/ifquery
update-rc.d networking remove >/dev/null
}
# Note: We don't remove /etc/network/interfaces
postrm_purge()
{
rm -f /var/tmp/network/ifstatenew rm -f /var/tmp/network/ifstatenew
if [ -L /etc/network/run ] ; then if [ -L /etc/network/run ] ; then
rm -f /etc/network/run rm -f /etc/network/run
elif [ -d /etc/network/run ] ; then elif [ -d /etc/network/run ] ; then
rmdir --ignore-fail-on-non-empty /etc/network/run rmdir --ignore-fail-on-non-empty /etc/network/run
fi fi
}
case "$1" in
purge)
postrm_purge
;;
remove)
postrm_remove
;;
upgrade|disappear|failed-upgrade|abort-install|abort-upgrade)
;;
*)
echo "postrm called with unknown argument \`$1'" >&2
exit 1
;; ;;
esac esac
@@ -22,6 +59,9 @@ udevlink=$(readlink /etc/udev/rules.d/80-networking.rules 2>/dev/null || true)
udevlink=$(readlink /etc/udev/rules.d/60-bridge-network-interface.rules 2>/dev/null || true) udevlink=$(readlink /etc/udev/rules.d/60-bridge-network-interface.rules 2>/dev/null || true)
[ -n "$udevlink" -a "$udevlink" == "/dev/null" ] && rm -f /etc/udev/rules.d/60-bridge-network-interface.rules [ -n "$udevlink" -a "$udevlink" == "/dev/null" ] && rm -f /etc/udev/rules.d/60-bridge-network-interface.rules
if [ "$1" = "purge" ] ; then # dh_installdeb will replace this with shell code automatically
update-rc.d networking remove >/dev/null # generated by other debhelper scripts.
fi
#DEBHELPER#
exit 0