summary refs log tree commit diff
path: root/debian
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2007-04-24 21:00:59 +0000
committerMichael Biebl <biebl@debian.org>2007-04-24 21:00:59 +0000
commit4310bb5e2f9d9e56a0c1e544adf87d7c91d74c76 (patch)
treef8d228983d5e8a82e00ddbd8e21f90d58d1e9d42 /debian
parent4494997d2b5638e5af02b960a8901fc58486ec7a (diff)
Switch to regular SysV init scripts debian/0.6.4-8
- 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
Diffstat (limited to 'debian')
-rw-r--r--debian/changelog17
-rw-r--r--debian/network-manager.init (renamed from debian/network-manager.dbus-event)27
-rw-r--r--debian/network-manager.network-manager-dispatcher.init (renamed from debian/network-manager-dispatcher.dbus-event)26
-rw-r--r--debian/network-manager.postinst68
-rw-r--r--debian/network-manager.postrm85
-rw-r--r--debian/network-manager.preinst64
-rw-r--r--debian/network-manager.prerm14
-rwxr-xr-xdebian/rules7
8 files changed, 245 insertions, 63 deletions
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 <biebl@debian.org>  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.dbus-event b/debian/network-manager.init
index f69d7fd4..d096e950 100644
--- a/debian/network-manager.dbus-event
+++ b/debian/network-manager.init
@@ -1,17 +1,16 @@
 #! /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 <nafallo@magicalforest.se>
-#			Jan Gerber <j@bootlab.org>
-#			Mark Roach <mrroach@okmaybe.com>
-#			Thom May <thom@debian.org>
-#
-# Version:	@(#)skeleton  2.85-23  28-Jul-2004  miquels@cistron.nl
-#
+### 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
 
@@ -24,7 +23,7 @@ DAEMON=/usr/sbin/$NAME
 PIDDIR=/var/run/NetworkManager
 PIDFILE=$PIDDIR/$NAME.pid
 
-SCRIPTNAME=/etc/dbus-1/event.d/25$NAME
+SCRIPTNAME=/etc/init.d/network-manager
 USER=root
 
 # Gracefully exit if the package has been removed.
diff --git a/debian/network-manager-dispatcher.dbus-event b/debian/network-manager.network-manager-dispatcher.init
index 53dbf24b..2f386b2b 100644
--- a/debian/network-manager-dispatcher.dbus-event
+++ b/debian/network-manager.network-manager-dispatcher.init
@@ -1,16 +1,16 @@
 #! /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 <nafallo@magicalforest.se>
-#			Jan Gerber <j@bootlab.org>
-#			Mark Roach <mrroach@okmaybe.com>
-#			Thom May <thom@debian.org>
-#
-#
+### 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
 
@@ -20,7 +20,7 @@ NAME="NetworkManagerDispatcher"
 DAEMON=/usr/sbin/$NAME
 PIDDIR=/var/run/NetworkManager
 PIDFILE=$PIDDIR/$NAME.pid
-SCRIPTNAME=/etc/dbus-1/event.d/26$NAME
+SCRIPTNAME=/etc/init.d/network-manager-dispatcher
 USER=root
 
 # Gracefully exit if the package has been removed.
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:
+#	<postinst> configure <old-version>
+#
+#
+# If prerm fails during upgrade or fails on failed upgrade:
+#	<old-postinst> abort-upgrade <new-version>
+#
+# If prerm fails during deconfiguration of a package:
+#	<postinst> abort-deconfigure in-favour <new-package> <version>
+#	           removing <old-package> <version>
+#
+# If prerm fails during replacement due to conflict:
+#	<postinst> abort-remove in-favour <new-package> <version>
 
-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:
+#	<postrm> remove
+#
+# After the package was purged:
+#	<postrm> purge
+#
+# After the package was upgraded:
+#	<old-postrm> upgrade <new-version>
+# if that fails:
+#	<new-postrm> failed-upgrade <old-version>
+#
+#
+# After all of the packages files have been replaced:
+#	<postrm> disappear <overwriting-package> <version>
+#
+#
+# If preinst fails during install:
+#	<new-postrm> abort-install
+#
+# If preinst fails during upgrade of removed package:
+#	<new-postrm> abort-install <old-version>
+#
+# If preinst fails during upgrade:
+#	<new-postrm> abort-upgrade <old-version>
+
+
+# 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:
+#	<new-preinst> install
+#
+# Before removed package is upgraded:
+#	<new-preinst> install <old-version>
+#
+# Before the package is upgraded:
+#	<new-preinst> upgrade <old-version>
+#
+#
+# If postrm fails during upgrade or fails on failed upgrade:
+#	<old-preinst> abort-upgrade <new-version>
+
+
+# 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