From 4310bb5e2f9d9e56a0c1e544adf87d7c91d74c76 Mon Sep 17 00:00:00 2001 From: Michael Biebl Date: Tue, 24 Apr 2007 21:00:59 +0000 Subject: Switch to regular SysV init scripts - Rename the start script properly so they are picked up by dh_installinit - Start them at S26, stop them at K14 - preinst,postinst,postrm: Make sure, the old conffiles for NetworkManager(Dispatcher) are removed/renamed properly. git-svn-id: svn+ssh://svn.debian.org/svn/pkg-utopia/packages/unstable/networkmanager@1434 ceb527fc-18e6-0310-9fe2-813c157c29e7 --- debian/changelog | 17 +++++ debian/network-manager-dispatcher.dbus-event | 80 -------------------- debian/network-manager.dbus-event | 88 ---------------------- debian/network-manager.init | 87 +++++++++++++++++++++ ...network-manager.network-manager-dispatcher.init | 80 ++++++++++++++++++++ debian/network-manager.postinst | 68 ++++++++++++----- debian/network-manager.postrm | 85 +++++++++++++++++++++ debian/network-manager.preinst | 64 ++++++++++++++++ debian/network-manager.prerm | 14 ---- debian/rules | 7 +- 10 files changed, 386 insertions(+), 204 deletions(-) delete mode 100644 debian/network-manager-dispatcher.dbus-event delete mode 100644 debian/network-manager.dbus-event create mode 100644 debian/network-manager.init create mode 100644 debian/network-manager.network-manager-dispatcher.init create mode 100644 debian/network-manager.postrm create mode 100644 debian/network-manager.preinst delete mode 100644 debian/network-manager.prerm (limited to 'debian') diff --git a/debian/changelog b/debian/changelog index c2867ad0..38b9921a 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,20 @@ +network-manager (0.6.4-8) unstable; urgency=low + + * Install the NetworkManager and NetworkManagerDispatcher start scripts as + regular SysV init scripts + - Rename debian/network-manager.dbus-event to debian/network-manager.init + and debian/network-manager-dispatcher.dbus-event to + debian/network-manager.network-manager-dispatcher.init. + - Add proper LSB headers to the init scripts. + - debian/rules + Call dh_installinit for network-manager and network-manager-dispatcher. + - debian/network-manager.{preinst,postinst,postrm} + Remove the old conffiles /etc/dbus-1/event.d/25NetworkManager and + /etc/dbus-1/event.d/26NetworkManagerDispatcher or rename them to + *.dpkg-bak if they were changed locally. + + -- Michael Biebl Tue, 24 Apr 2007 22:30:22 +0200 + network-manager (0.6.4-7) unstable; urgency=low * debian/control diff --git a/debian/network-manager-dispatcher.dbus-event b/debian/network-manager-dispatcher.dbus-event deleted file mode 100644 index 53dbf24b..00000000 --- a/debian/network-manager-dispatcher.dbus-event +++ /dev/null @@ -1,80 +0,0 @@ -#! /bin/sh -# -# NetworkManager NetworkManagerDispatcher daemon -# Daemon for automatically switching network -# connections to the best available connection. -# This file should be placed in /etc/init.d. -# -# Authors: Christian Bjälevik -# Jan Gerber -# Mark Roach -# Thom May -# -# - -set -e - -PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin -DESC="network events dispatcher" -NAME="NetworkManagerDispatcher" -DAEMON=/usr/sbin/$NAME -PIDDIR=/var/run/NetworkManager -PIDFILE=$PIDDIR/$NAME.pid -SCRIPTNAME=/etc/dbus-1/event.d/26$NAME -USER=root - -# Gracefully exit if the package has been removed. -test -x $DAEMON || exit 0 - -. /lib/lsb/init-functions - -test -f /etc/default/rcS && . /etc/default/rcS -test -f /etc/default/NetworkManagerDispatcher && . /etc/default/NetworkManagerDispatcher - -# -# Function that starts the daemon/service. -# -d_start() { - if [ ! -d $PIDDIR ]; then - mkdir -p $PIDDIR - chown $USER:$USER $PIDDIR - fi - - start-stop-daemon --start --quiet --pidfile $PIDFILE \ - --user $USER --exec $DAEMON -- $DAEMON_OPTS --pid-file $PIDFILE - -} - -# -# Function that stops the daemon/service. -# -d_stop() { - start-stop-daemon --stop --retry 60 --quiet --pidfile $PIDFILE \ - --oknodo --user $USER --exec $DAEMON -} - - -case "$1" in - start) - log_daemon_msg "Starting $DESC" "$NAME" - d_start - log_end_msg $? - ;; - stop) - log_daemon_msg "Stopping $DESC" "$NAME" - d_stop - log_end_msg $? - ;; - restart|force-reload) - log_daemon_msg "Restarting $DESC" "$NAME" - d_stop - d_start - log_end_msg $? - ;; - *) - echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2 - exit 1 - ;; -esac - -exit 0 diff --git a/debian/network-manager.dbus-event b/debian/network-manager.dbus-event deleted file mode 100644 index f69d7fd4..00000000 --- a/debian/network-manager.dbus-event +++ /dev/null @@ -1,88 +0,0 @@ -#! /bin/sh -# -# NetworkManager NetworkManager daemon -# Daemon for automatically switching network -# connections to the best available connection. -# This file should be placed in /etc/init.d. -# -# Authors: Christian Bjälevik -# Jan Gerber -# Mark Roach -# Thom May -# -# Version: @(#)skeleton 2.85-23 28-Jul-2004 miquels@cistron.nl -# - -set -e - -PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin -DESC="network connection manager" -NAME="NetworkManager" - -DAEMON=/usr/sbin/$NAME - -PIDDIR=/var/run/NetworkManager -PIDFILE=$PIDDIR/$NAME.pid - -SCRIPTNAME=/etc/dbus-1/event.d/25$NAME -USER=root - -# Gracefully exit if the package has been removed. -test -x $DAEMON || exit 0 - -# We need /sbin/ip -[ -x /sbin/ip ] || exit 1 - -. /lib/lsb/init-functions - -test -f /etc/default/rcS && . /etc/default/rcS -test -f /etc/default/NetworkManager && . /etc/default/NetworkManager - -# -# Function that starts the daemon/service. -# -d_start() { - if [ ! -d $PIDDIR ]; then - mkdir -p $PIDDIR - chown $USER:$USER $PIDDIR - fi - - start-stop-daemon --start --quiet --pidfile $PIDFILE \ - --user $USER --exec $DAEMON -- $DAEMON_OPTS --pid-file $PIDFILE - -} - -# -# Function that stops the daemon/service. -# -d_stop() { - start-stop-daemon --stop --retry 60 --quiet --pidfile $PIDFILE \ - --oknodo --user $USER --exec $DAEMON - -} - - -case "$1" in - start) - log_daemon_msg "Starting $DESC" "$NAME" - d_start - log_end_msg $? - ;; - stop) - log_daemon_msg "Stopping $DESC" "$NAME" - d_stop - log_end_msg $? - ;; - restart|force-reload) - log_daemon_msg "Restarting $DESC" "$NAME" - d_stop - d_start - log_end_msg $? - ;; - *) - echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2 - exit 1 - ;; -esac - -exit 0 diff --git a/debian/network-manager.init b/debian/network-manager.init new file mode 100644 index 00000000..d096e950 --- /dev/null +++ b/debian/network-manager.init @@ -0,0 +1,87 @@ +#! /bin/sh +### BEGIN INIT INFO +# Provides: NetworkManager +# Required-Start: $local_fs dbus dhcdbd hal +# Required-Stop: $local_fs dbus dhcdbd hal +# Should-Start: $syslog +# Should-Stop: $syslog +# Default-Start: 2 3 4 5 +# Default-Stop: S 0 1 6 +# Short-Description: network connection manager +# Description: Daemon for automatically switching network +# connections to the best available connection. +### END INIT INFO + +set -e + +PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin +DESC="network connection manager" +NAME="NetworkManager" + +DAEMON=/usr/sbin/$NAME + +PIDDIR=/var/run/NetworkManager +PIDFILE=$PIDDIR/$NAME.pid + +SCRIPTNAME=/etc/init.d/network-manager +USER=root + +# Gracefully exit if the package has been removed. +test -x $DAEMON || exit 0 + +# We need /sbin/ip +[ -x /sbin/ip ] || exit 1 + +. /lib/lsb/init-functions + +test -f /etc/default/rcS && . /etc/default/rcS +test -f /etc/default/NetworkManager && . /etc/default/NetworkManager + +# +# Function that starts the daemon/service. +# +d_start() { + if [ ! -d $PIDDIR ]; then + mkdir -p $PIDDIR + chown $USER:$USER $PIDDIR + fi + + start-stop-daemon --start --quiet --pidfile $PIDFILE \ + --user $USER --exec $DAEMON -- $DAEMON_OPTS --pid-file $PIDFILE + +} + +# +# Function that stops the daemon/service. +# +d_stop() { + start-stop-daemon --stop --retry 60 --quiet --pidfile $PIDFILE \ + --oknodo --user $USER --exec $DAEMON + +} + + +case "$1" in + start) + log_daemon_msg "Starting $DESC" "$NAME" + d_start + log_end_msg $? + ;; + stop) + log_daemon_msg "Stopping $DESC" "$NAME" + d_stop + log_end_msg $? + ;; + restart|force-reload) + log_daemon_msg "Restarting $DESC" "$NAME" + d_stop + d_start + log_end_msg $? + ;; + *) + echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2 + exit 1 + ;; +esac + +exit 0 diff --git a/debian/network-manager.network-manager-dispatcher.init b/debian/network-manager.network-manager-dispatcher.init new file mode 100644 index 00000000..2f386b2b --- /dev/null +++ b/debian/network-manager.network-manager-dispatcher.init @@ -0,0 +1,80 @@ +#! /bin/sh +### BEGIN INIT INFO +# Provides: NetworkManagerDispatcher +# Required-Start: $local_fs +# Required-Stop: $local_fs +# Should-Start: $syslog +# Should-Stop: $syslog +# Default-Start: 2 3 4 5 +# Default-Stop: S 0 1 6 +# Short-Description: network events dispatcher +# Description: This daemon automatically runs scripts when +# NetworkManager changes the network state. +### END INIT INFO + +set -e + +PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin +DESC="network events dispatcher" +NAME="NetworkManagerDispatcher" +DAEMON=/usr/sbin/$NAME +PIDDIR=/var/run/NetworkManager +PIDFILE=$PIDDIR/$NAME.pid +SCRIPTNAME=/etc/init.d/network-manager-dispatcher +USER=root + +# Gracefully exit if the package has been removed. +test -x $DAEMON || exit 0 + +. /lib/lsb/init-functions + +test -f /etc/default/rcS && . /etc/default/rcS +test -f /etc/default/NetworkManagerDispatcher && . /etc/default/NetworkManagerDispatcher + +# +# Function that starts the daemon/service. +# +d_start() { + if [ ! -d $PIDDIR ]; then + mkdir -p $PIDDIR + chown $USER:$USER $PIDDIR + fi + + start-stop-daemon --start --quiet --pidfile $PIDFILE \ + --user $USER --exec $DAEMON -- $DAEMON_OPTS --pid-file $PIDFILE + +} + +# +# Function that stops the daemon/service. +# +d_stop() { + start-stop-daemon --stop --retry 60 --quiet --pidfile $PIDFILE \ + --oknodo --user $USER --exec $DAEMON +} + + +case "$1" in + start) + log_daemon_msg "Starting $DESC" "$NAME" + d_start + log_end_msg $? + ;; + stop) + log_daemon_msg "Stopping $DESC" "$NAME" + d_stop + log_end_msg $? + ;; + restart|force-reload) + log_daemon_msg "Restarting $DESC" "$NAME" + d_stop + d_start + log_end_msg $? + ;; + *) + echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2 + exit 1 + ;; +esac + +exit 0 diff --git a/debian/network-manager.postinst b/debian/network-manager.postinst index 1e73dfa2..c2a445c7 100644 --- a/debian/network-manager.postinst +++ b/debian/network-manager.postinst @@ -1,27 +1,59 @@ -#!/bin/sh +#!/bin/sh -e +# This script can be called in the following ways: +# +# After the package was installed: +# configure +# +# +# If prerm fails during upgrade or fails on failed upgrade: +# abort-upgrade +# +# If prerm fails during deconfiguration of a package: +# abort-deconfigure in-favour +# removing +# +# If prerm fails during replacement due to conflict: +# abort-remove in-favour -set -e -case "$1" in - configure) - if ! getent group netdev > /dev/null; then - addgroup --quiet --system netdev - fi +# Remove a no-longer used conffile +rm_conffile() +{ + CONFFILE="$1" + + if [ -e "$CONFFILE".dpkg-remove ]; then + echo "Removing obsolete conffile $CONFFILE" + rm -f "$CONFFILE".dpkg-remove + fi +} + - if [ -x "/etc/init.d/dbus" ]; then - invoke-rc.d dbus force-reload || true - fi +case "$1" in + configure) + # Upgrade from previous versions + if dpkg --compare-versions "$2" lt "0.6.4-8"; then + rm_conffile /etc/dbus-1/event.d/25NetworkManager + rm_conffile /etc/dbus-1/event.d/26NetworkManagerDispatcher + fi - if [ -x "/etc/dbus-1/event.d/25NetworkManager" ]; then - /etc/dbus-1/event.d/25NetworkManager restart - fi + if ! getent group netdev > /dev/null; then + addgroup --quiet --system netdev + fi - if [ -x "/etc/dbus-1/event.d/26NetworkManagerDispatcher" ]; then - /etc/dbus-1/event.d/26NetworkManagerDispatcher restart - fi - ;; + if [ -x "/etc/init.d/dbus" ]; then + invoke-rc.d dbus force-reload || true + fi + ;; + + abort-upgrade|abort-deconfigure|abort-remove) + ;; + + *) + echo "$0 called with unknown argument \`$1'" 1>&2 + exit 1 + ;; esac #DEBHELPER# - exit 0 + diff --git a/debian/network-manager.postrm b/debian/network-manager.postrm new file mode 100644 index 00000000..812369bd --- /dev/null +++ b/debian/network-manager.postrm @@ -0,0 +1,85 @@ +#!/bin/sh -e +# This script can be called in the following ways: +# +# After the package was removed: +# remove +# +# After the package was purged: +# purge +# +# After the package was upgraded: +# upgrade +# if that fails: +# failed-upgrade +# +# +# After all of the packages files have been replaced: +# disappear +# +# +# If preinst fails during install: +# abort-install +# +# If preinst fails during upgrade of removed package: +# abort-install +# +# If preinst fails during upgrade: +# abort-upgrade + + +# Undo removal of a no-longer used conffile +undo_rm_conffile() +{ + CONFFILE="$1" + + if [ ! -e "$CONFFILE" ]; then + if [ -e "$CONFFILE".dpkg-bak ]; then + echo "Restoring modified conffile $CONFFILE" + mv -f "$CONFFILE".dpkg-bak "$CONFFILE" + elif [ -e "$CONFFILE".dpkg-remove ]; then + echo "Restoring conffile $CONFFILE" + mv -f "$CONFFILE".dpkg-remove "$CONFFILE" + fi + fi +} + + +# Purge backup conffile +rm_backup_conffile() +{ + CONFFILE="$1" + if [ -e "$CONFFILE".dpkg-bak ]; then + echo "Purging backup of conffile $CONFFILE" + rm -f "$CONFFILE".dpkg-bak + fi +} + + +case "$1" in + remove) + ;; + + purge) + rm_backup_conffile /etc/dbus-1/event.d/25NetworkManager + rm_backup_conffile /etc/dbus-1/event.d/26NetworkManagerDispatcher + ;; + + upgrade|failed-upgrade|disappear) + ;; + + abort-install|abort-upgrade) + # Abort upgrade from previous versions + if dpkg --compare-versions "$2" lt "0.6.4-8"; then + undo_rm_conffile /etc/dbus-1/event.d/25NetworkManager + undo_rm_conffile /etc/dbus-1/event.d/26NetworkManagerDispatcher + fi + ;; + + *) + echo "$0 called with unknown argument \`$1'" 1>&2 + exit 1 + ;; +esac + +#DEBHELPER# +exit 0 diff --git a/debian/network-manager.preinst b/debian/network-manager.preinst new file mode 100644 index 00000000..60db6ae0 --- /dev/null +++ b/debian/network-manager.preinst @@ -0,0 +1,64 @@ +#!/bin/sh -e +# This script can be called in the following ways: +# +# Before the package is installed: +# install +# +# Before removed package is upgraded: +# install +# +# Before the package is upgraded: +# upgrade +# +# +# If postrm fails during upgrade or fails on failed upgrade: +# abort-upgrade + + +# Prepare to remove a no-longer used conffile +prep_rm_conffile() +{ + CONFFILE="$1" + + if [ -e "$CONFFILE" ]; then + md5sum="`md5sum \"$CONFFILE\" | sed -e \"s/ .*//\"`" + old_md5sum="`sed -n -e \"/^Conffiles:/,/^[^ ]/{\\\\' $CONFFILE '{s/ obsolete$//;s/.* //;p}}\" /var/lib/dpkg/status`" + if [ "$md5sum" != "$old_md5sum" ]; then + echo "Obsolete conffile $CONFFILE has been modified by you, renaming to .dpkg-bak" + mv -f "$CONFFILE" "$CONFFILE".dpkg-bak + else + mv -f "$CONFFILE" "$CONFFILE".dpkg-remove + fi + fi +} + + +case "$1" in + install) + ;; + + upgrade) + # Upgrade from previous versions + if dpkg --compare-versions "$2" lt "0.6.4-8"; then + if [ -x "/etc/dbus-1/event.d/25NetworkManager" ]; then + /etc/dbus-1/event.d/25NetworkManager stop + fi + if [ -x "/etc/dbus-1/event.d/26NetworkManagerDispatcher" ]; then + /etc/dbus-1/event.d/26NetworkManagerDispatcher stop + fi + prep_rm_conffile /etc/dbus-1/event.d/25NetworkManager + prep_rm_conffile /etc/dbus-1/event.d/26NetworkManagerDispatcher + fi + ;; + + abort-upgrade) + ;; + + *) + echo "$0 called with unknown argument \`$1'" 1>&2 + exit 1 + ;; +esac + +#DEBHELPER# +exit 0 diff --git a/debian/network-manager.prerm b/debian/network-manager.prerm deleted file mode 100644 index 8a010110..00000000 --- a/debian/network-manager.prerm +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh - -set -e - -case "$1" in - remove) - /etc/dbus-1/event.d/25NetworkManager stop - /etc/dbus-1/event.d/26NetworkManagerDispatcher stop - ;; -esac - -#DEBHELPER# - -exit 0 diff --git a/debian/rules b/debian/rules index 57cbedb3..55dd9d1d 100755 --- a/debian/rules +++ b/debian/rules @@ -12,6 +12,8 @@ DEB_CONFIGURE_EXTRA_FLAGS += \ --with-dhcdbd=/usr/sbin/dhcdbd \ --with-distro=debian +DEB_DH_INSTALLINIT_ARGS := -- start 26 2 3 4 5 . stop 14 0 1 6 . + clean:: rm -f po/*.gmo rm -f debian/*.1 @@ -22,10 +24,7 @@ build/network-manager:: /usr/bin/docbook-to-man debian/nm-applet.sgml > debian/nm-applet.1 binary-install/network-manager:: - install -m 755 debian/network-manager.dbus-event \ - debian/network-manager/etc/dbus-1/event.d/25NetworkManager - install -m 755 debian/network-manager-dispatcher.dbus-event \ - debian/network-manager/etc/dbus-1/event.d/26NetworkManagerDispatcher + dh_installinit --name network-manager-dispatcher $(DEB_DH_INSTALLINIT_ARGS) install -m 755 debian/network-manager-dispatcher.script \ debian/network-manager/etc/NetworkManager/dispatcher.d/01ifupdown -- cgit 1.3.0-6-gf8a5