Hi Michael,
On Saturday 03 March 2007 12:22, Michael Biebl wrote:
> Hi,
>
> you will also very likely need the attached patch:
> Debian does not use pam_console but uses group membership to control
> access to D-Bus. Activating both options in the conf file makes it work
> on Debian and Ubuntu.
Thanks very much.
>
> About activating the service, you will very likely have to provide a
> D-Bus init script (for /etc/dbus-1/event.d/) comparable to the one from
> dhcdbd.
Ok. How would the sequnce number of the wpa_supplicant event.d scriplet be
determined?
Attached is the patch I recently commited to SVN, can you please check it?
Also, an experimental package has been prepared at:
http://users.tpg.com.au/sigm/debian/pkg-wpa/wpasupplicant_0.6.0~cvs20070224-1.dsc
> I don't think that NetworkManager uses D-Bus's service autostart
> activation, but you can install the attached wpa_supplicant.service to
> /usr/share/dbus-1/service/ anyway, for applications that use that
> mechanism.
Added.
Thanks, Kel.
Index: debian/changelog
===================================================================
--- debian/changelog (revision 799)
+++ debian/changelog (working copy)
@@ -29,13 +29,16 @@
* Install a service file to /usr/share/dbus-1/services/ for dbus aware
applications that may take advantage of that in the future (Michael
Biebl).
+ * Add a dbus event hook for starting wpa_supplicant as a system service.
+ * Add prerm and postinst handling for reloading dbus daemon, and restarting
+ or stopping the wpa_supplicant dbus daemon on configure/remove.
* Add support to ifupdown.sh for `wpa-mode' and `wpa-frequency' options used
in IBSS mode. Note that ifupdown.sh does not do any sanity checking for
the other many requirements for using wpa_supplicant in IBSS mode.
* Update XS-Vcs-* fields in control file, add Vcs-Browser token.
* Move debian spcific ifupdown sh glue into debian/ifupdown/.
- -- Kel Modderman <[EMAIL PROTECTED]> Sun, 4 Mar 2007 14:06:46 +1000
+ -- Kel Modderman <[EMAIL PROTECTED]> Sun, 4 Mar 2007 15:17:27 +1000
wpasupplicant (0.5.5-4) unstable; urgency=low
Index: debian/rules
===================================================================
--- debian/rules (revision 799)
+++ debian/rules (working copy)
@@ -25,6 +25,8 @@
debian/wpasupplicant/sbin/wpa_action
install --mode=644 -D dbus-wpa_supplicant.conf \
debian/wpasupplicant/etc/dbus-1/system.d/wpa_supplicant.conf
+ install --mode=755 -D debian/dbus/wpa_supplicant.dbus-event \
+ debian/wpasupplicant/etc/dbus-1/event.d/23wpa_supplicant
install --mode=644 -D debian/dbus/wpa_supplicant.service \
debian/wpasupplicant/usr/share/dbus-1/services/wpa_supplicant.service
dh_installinit --name=wpa-ifupdown --no-start \
Index: debian/dbus/wpa_supplicant.dbus-event
===================================================================
--- debian/dbus/wpa_supplicant.dbus-event (revision 0)
+++ debian/dbus/wpa_supplicant.dbus-event (revision 0)
@@ -0,0 +1,56 @@
+#!/bin/sh
+#
+# wpa_supplicant D-Bus daemon
+#
+# Debian/Ubuntu wpasupplicant Maintainers <[EMAIL PROTECTED]>
+#
+
+set -e
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+DESC="wpa_supplicant D-Bus daemon"
+NAME="wpa_supplicant"
+PIDFILE="/var/run/$NAME.dbus.pid"
+DAEMON="/sbin/$NAME"
+DAEMON_OPTS="-u -B -P $PIDFILE"
+SCRIPTNAME="/etc/dbus-1/event.d/23$NAME"
+
+test -x $DAEMON || exit 0
+
+. /lib/lsb/init-functions
+
+d_start() {
+ start-stop-daemon --start --quiet --pidfile $PIDFILE \
+ --exec $DAEMON -- $DAEMON_OPTS
+}
+
+d_stop() {
+ start-stop-daemon --stop --quiet --pidfile $PIDFILE \
+ --oknodo --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
+ sleep 5
+ d_start
+ log_end_msg $?
+ ;;
+ *)
+ echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
Index: debian/wpasupplicant.postinst
===================================================================
--- debian/wpasupplicant.postinst (revision 796)
+++ debian/wpasupplicant.postinst (working copy)
@@ -43,6 +43,16 @@
if dpkg --compare-versions "$2" lt "0.4.8-1"; then
rm_init_script
fi
+
+ # Ask the bus to reload the config file
+ if [ -x /etc/init.d/dbus ]; then
+ invoke-rc.d dbus force-reload || true
+ fi
+
+ # Restart wpa_supplicant D-Bus service
+ if [ -x /etc/dbus-1/event.d/23wpa_supplicant ]; then
+ /etc/dbus-1/event.d/23wpa_supplicant restart
+ fi
;;
abort-upgrade|abort-deconfigure|abort-remove)
Index: debian/wpasupplicant.prerm
===================================================================
--- debian/wpasupplicant.prerm (revision 0)
+++ debian/wpasupplicant.prerm (revision 0)
@@ -0,0 +1,27 @@
+#!/bin/sh
+
+# 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
+
+set -e
+
+if [ "$1" = "remove" ]; then
+ # Stop dhcdbd service on removal
+ if [ -x /etc/dbus-1/event.d/23wpa_supplicant ]; then
+ /etc/dbus-1/event.d/23wpa_supplicant stop
+ fi
+fi
+
+#DEBHELPER#
+exit 0
+