[pkg-wpa-devel] r991 - in /wpasupplicant/trunk/debian: changelog ifupdown/functions.sh ifupdown/ifupdown.sh rules wpasupplicant.postinst wpasupplicant.postrm wpasupplicant.preinst wpasupplicant.wpa-ifupdown.init
kelmo-guest at users.alioth.debian.org
kelmo-guest at users.alioth.debian.org
Sun Jan 6 02:20:07 UTC 2008
Author: kelmo-guest
Date: Sun Jan 6 02:20:07 2008
New Revision: 991
URL: http://svn.debian.org/wsvn/pkg-wpa/?sc=1&rev=991
Log:
* Handle removal of /etc/init.d/wpa-ifupdown from package on upgrade. This
is done using preinst, postinst and postrm trio similar to that which
facilitated the removal of /etc/init.d/wpasupplicant.
* Create sendsigs omission pidfile in /lib/init/rw/sendsigs.omit.d/ for
wpa_supplicant and wpa_cli processes managed by ifupdown. Determine
runlevel when wpa_cli roaming daemon is active, and allow ot to be killed
in runlevels 0 and 6.
Added:
wpasupplicant/trunk/debian/wpasupplicant.preinst
Removed:
wpasupplicant/trunk/debian/wpasupplicant.wpa-ifupdown.init
Modified:
wpasupplicant/trunk/debian/changelog
wpasupplicant/trunk/debian/ifupdown/functions.sh
wpasupplicant/trunk/debian/ifupdown/ifupdown.sh
wpasupplicant/trunk/debian/rules
wpasupplicant/trunk/debian/wpasupplicant.postinst
wpasupplicant/trunk/debian/wpasupplicant.postrm
Modified: wpasupplicant/trunk/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-wpa/wpasupplicant/trunk/debian/changelog?rev=991&op=diff
==============================================================================
--- wpasupplicant/trunk/debian/changelog (original)
+++ wpasupplicant/trunk/debian/changelog Sun Jan 6 02:20:07 2008
@@ -64,8 +64,15 @@
* Remove upgrade removal of conffiles from wpasupplicant versions that exist
in oldstable and before. The preinst part of the upgrade handling was
removed in pkg-wpa commit r852.
-
- -- Kel Modderman <kel at otaku42.de> Fri, 04 Jan 2008 16:35:39 +1000
+ * Handle removal of /etc/init.d/wpa-ifupdown from package on upgrade. This
+ is done using preinst, postinst and postrm trio similar to that which
+ facilitated the removal of /etc/init.d/wpasupplicant.
+ * Create sendsigs omission pidfile in /lib/init/rw/sendsigs.omit.d/ for
+ wpa_supplicant and wpa_cli processes managed by ifupdown. Determine
+ runlevel when wpa_cli roaming daemon is active, and allow ot to be killed
+ in runlevels 0 and 6.
+
+ -- Kel Modderman <kel at otaku42.de> Sun, 06 Jan 2008 12:15:43 +1000
wpasupplicant (0.6.1~git20071119-1) unstable; urgency=low
Modified: wpasupplicant/trunk/debian/ifupdown/functions.sh
URL: http://svn.debian.org/wsvn/pkg-wpa/wpasupplicant/trunk/debian/ifupdown/functions.sh?rev=991&op=diff
==============================================================================
--- wpasupplicant/trunk/debian/ifupdown/functions.sh (original)
+++ wpasupplicant/trunk/debian/ifupdown/functions.sh Sun Jan 6 02:20:07 2008
@@ -32,12 +32,14 @@
WPA_SUP_BIN="/sbin/wpa_supplicant"
WPA_SUP_PNAME="wpa_supplicant"
WPA_SUP_PIDFILE="/var/run/wpa_supplicant.${WPA_IFACE}.pid"
+WPA_SUP_OMIT_PIDFILE="/lib/init/rw/sendsigs.omit.d/wpa_supplicant.${WPA_IFACE}.pid"
WPA_SUP_LOGFILE="/var/log/wpa_supplicant.${WPA_IFACE}.log"
# wpa_cli variables
WPA_CLI_BIN="/sbin/wpa_cli"
WPA_CLI_PNAME="wpa_cli"
WPA_CLI_PIDFILE="/var/run/wpa_action.${WPA_IFACE}.pid"
+WPA_CLI_OMIT_PIDFILE="/lib/init/rw/sendsigs.omit.d/wpa_action.${WPA_IFACE}.pid"
WPA_CLI_LOGFILE="/var/log/wpa_action.${WPA_IFACE}.log"
WPA_CLI_TIMESTAMP="/var/run/wpa_action.${WPA_IFACE}.timestamp"
@@ -243,6 +245,17 @@
wpa_msg stderr "$WPA_SUP_BIN daemon failed to start"
return 1
fi
+
+ if [ -s "$WPA_SUP_PIDFILE" ]; then
+ # add pid to sendsigs omit directory
+ if [ -d /lib/init/rw/sendsigs.omit.d/ ]; then
+ cat "$WPA_SUP_PIDFILE" > "$WPA_SUP_OMIT_PIDFILE"
+ else
+ wpa_msg stderr "sendsigs omit dir does not exist: /lib/init/rw/sendsigs.omit.d/"
+ fi
+ else
+ wpa_msg stderr "pidfile missing or empty: $WPA_SUP_PIDFILE"
+ fi
local WPA_SOCKET_WAIT MAX_WPA_SOCKET_WAIT
WPA_SOCKET_WAIT="0"
@@ -281,6 +294,11 @@
if [ -f "$WPA_SUP_PIDFILE" ]; then
rm -f "$WPA_SUP_PIDFILE"
fi
+
+ if [ -f "$WPA_SUP_OMIT_PIDFILE" ]; then
+ wpa_msg verbose "removing $WPA_SUP_OMIT_PIDFILE"
+ rm -f "$WPA_SUP_OMIT_PIDFILE"
+ fi
elif [ -S "$WPA_CTRL_DIR/$WPA_IFACE" ]; then
wpa_msg action "terminating via ctrl_interface socket $WPA_CTRL_DIR/$WPA_IFACE"
@@ -333,6 +351,16 @@
wpa_msg stderr "$WPA_CLI_BIN daemon failed to start"
return 1
fi
+
+ if [ -s "$WPA_CLI_PIDFILE" ]; then
+ if [ -d /lib/init/rw/sendsigs.omit.d/ ]; then
+ cat "$WPA_CLI_PIDFILE" > "$WPA_CLI_OMIT_PIDFILE"
+ else
+ wpa_msg stderr "sendsigs omit dir does not exist: /lib/init/rw/sendsigs.omit.d/"
+ fi
+ else
+ wpa_msg stderr "empty or missing: $WPA_CLI_PIDFILE"
+ fi
fi
}
@@ -350,6 +378,10 @@
if [ -f "$WPA_CLI_PIDFILE" ]; then
rm -f "$WPA_CLI_PIDFILE"
+ fi
+
+ if [ -f "$WPA_CLI_OMIT_PIDFILE" ]; then
+ rm -f "$WPA_CLI_OMIT_PIDFILE"
fi
fi
}
Modified: wpasupplicant/trunk/debian/ifupdown/ifupdown.sh
URL: http://svn.debian.org/wsvn/pkg-wpa/wpasupplicant/trunk/debian/ifupdown/ifupdown.sh?rev=991&op=diff
==============================================================================
--- wpasupplicant/trunk/debian/ifupdown/ifupdown.sh (original)
+++ wpasupplicant/trunk/debian/ifupdown/ifupdown.sh Sun Jan 6 02:20:07 2008
@@ -57,9 +57,27 @@
exit 0
fi
-# quit if wpa_action is active
if test_wpa_cli; then
- exit 0
+ # wpa-roam/wpa_action mode is active
+ if [ "$MODE" = stop ]; then
+ RUNLEVEL=$(/sbin/runlevel)
+ RUNLEVEL="${RUNLEVEL#*\ }"
+ case "$RUNLEVEL" in
+ 0|6)
+ # wpa_cli and wpa_supplicant are to be killed, we are in
+ # shutdown or reboot
+ wpa_msg verbose "allowing stop, runlevel: $RUNLEVEL"
+ ;;
+ *)
+ # allow wpa_cli daemon (wpa-roam/wpa_action) to continue,
+ # we are in a standard runlevel
+ exit 0
+ ;;
+ esac
+ else
+ # allow wpa_cli daemon (wpa-roam/wpa_action) to continue
+ exit 0
+ fi
fi
# preliminary sanity checks for roaming daemon
Modified: wpasupplicant/trunk/debian/rules
URL: http://svn.debian.org/wsvn/pkg-wpa/wpasupplicant/trunk/debian/rules?rev=991&op=diff
==============================================================================
--- wpasupplicant/trunk/debian/rules (original)
+++ wpasupplicant/trunk/debian/rules Sun Jan 6 02:20:07 2008
@@ -93,7 +93,6 @@
dh_install
dh_installlogrotate --package=wpasupplicant --name=wpa_action
dh_installlogrotate --package=wpasupplicant --name=wpa_supplicant
- dh_installinit --package=wpasupplicant --name=wpa-ifupdown --no-start -- start 15 0 6 .
dh_installman
dh_link
dh_strip
Modified: wpasupplicant/trunk/debian/wpasupplicant.postinst
URL: http://svn.debian.org/wsvn/pkg-wpa/wpasupplicant/trunk/debian/wpasupplicant.postinst?rev=991&op=diff
==============================================================================
--- wpasupplicant/trunk/debian/wpasupplicant.postinst (original)
+++ wpasupplicant/trunk/debian/wpasupplicant.postinst Sun Jan 6 02:20:07 2008
@@ -15,8 +15,23 @@
# If prerm fails during replacement due to conflict:
# <postinst> abort-remove in-favour <new-package> <version>
+# Remove a no-longer used conffile
+rm_conffile() {
+ CONFFILE="$1"
+
+ if [ -e "$CONFFILE" ]; then
+ echo "Removing obsolete conffile $CONFFILE"
+ rm -f "$CONFFILE"
+ fi
+}
+
case "$1" in
configure)
+ # Remove the obsolete wpa-ifupdown workaround
+ if dpkg --compare-versions "$2" le "0.6.2-1"; then
+ rm_conffile /etc/init.d/wpa-ifupdown
+ update-rc.d -f wpa-ifupdown remove || true
+ fi
# Add the netdev group unless it's already there
if ! getent group netdev >/dev/null; then
addgroup --quiet --system netdev || true
Modified: wpasupplicant/trunk/debian/wpasupplicant.postrm
URL: http://svn.debian.org/wsvn/pkg-wpa/wpasupplicant/trunk/debian/wpasupplicant.postrm?rev=991&op=diff
==============================================================================
--- wpasupplicant/trunk/debian/wpasupplicant.postrm (original)
+++ wpasupplicant/trunk/debian/wpasupplicant.postrm Sun Jan 6 02:20:07 2008
@@ -26,6 +26,18 @@
# 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"
+ fi
+ fi
+}
+
case "$1" in
remove)
;;
@@ -37,6 +49,9 @@
upgrade|failed-upgrade|disappear)
;;
abort-install|abort-upgrade)
+ if dpkg --compare-versions "$2" le "0.6.2-1"; then
+ undo_rm_conffile /etc/init.d/wpa-ifupdown
+ fi
;;
*)
echo "$0 called with unknown argument \`$1'" 1>&2
Added: wpasupplicant/trunk/debian/wpasupplicant.preinst
URL: http://svn.debian.org/wsvn/pkg-wpa/wpasupplicant/trunk/debian/wpasupplicant.preinst?rev=991&op=file
==============================================================================
--- wpasupplicant/trunk/debian/wpasupplicant.preinst (added)
+++ wpasupplicant/trunk/debian/wpasupplicant.preinst Sun Jan 6 02:20:07 2008
@@ -1,0 +1,48 @@
+#!/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 move a conffile without triggering a dpkg question
+prep_rm_conffile() {
+ PKGNAME="$1"
+ CONFFILE="$2"
+
+ if [ -e "$CONFFILE" ]; then
+ md5sum="`md5sum \"$CONFFILE\" | sed -e \"s/ .*//\"`"
+ old_md5sum="`dpkg-query -W -f='${Conffiles}' $PKGNAME | sed -n -e \"\\\\' $CONFFILE'{s/ obsolete$//;s/.* //p}\"`"
+ if [ "$md5sum" != "$old_md5sum" ]; then
+ echo "Obsolete conffile $CONFFILE has been modified by you."
+ echo "Renaming to $CONFFILE.dpkg-bak ..."
+ mv -f "$CONFFILE" "$CONFFILE".dpkg-bak
+ fi
+ fi
+}
+
+case "$1" in
+ install|upgrade)
+ if dpkg --compare-versions "$2" le "0.6.2-1"; then
+ prep_rm_conffile wpasupplicant /etc/init.d/wpa-ifupdown
+ fi
+ ;;
+ abort-upgrade)
+ ;;
+ *)
+ echo "$0 called with unknown argument \`$1'" 1>&2
+ exit 1
+ ;;
+esac
+
+#DEBHELPER#
+exit 0
More information about the Pkg-wpa-devel
mailing list