diff --git a/templates/wpa_supplicant/files/wpa_supplicant.rc b/templates/wpa_supplicant/files/wpa_supplicant.rc new file mode 100644 index 00000000000..38cca5f690c --- /dev/null +++ b/templates/wpa_supplicant/files/wpa_supplicant.rc @@ -0,0 +1,68 @@ +#!/sbin/runscript +# Copyright (c) 2009 Roy Marples +# All rights reserved. Released under the 2-clause BSD license. + +command=/usr/sbin/wpa_supplicant +: ${wpa_supplicant_conf:=/etc/wpa_supplicant.conf} +wpa_supplicant_if=${wpa_supplicant_if:+-i}$wpa_supplicant_if +command_args="$wpa_supplicant_args -B -c$wpa_supplicant_conf $wpa_supplicant_if" +name="WPA Supplicant Daemon" + +depend() +{ + need localmount + use logger + after bootmisc modules + before dns dhcpcd net + keyword noshutdown +} + +find_wireless() +{ + local iface= + + case "$RC_UNAME" in + Linux) + for iface in /sys/class/net/*; do + if [ -e "$iface"/wireless ]; then + echo "${iface##*/}" + return 0 + fi + done + ;; + *) + for iface in /dev/net/* $(ifconfig -l 2>/dev/null); do + if ifconfig "${iface##*/}" 2>/dev/null | \ + grep -q "[ ]*ssid " + then + echo "${iface##*/}" + return 0 + fi + done + ;; + esac + + return 1 +} + +append_wireless() +{ + local iface= i= + + iface=$(find_wireless) + if [ -n "$iface" ]; then + for i in $iface; do + command_args="$command_args -i$i" + done + else + eerror "Could not find a wireless interface" + fi +} + +start_pre() +{ + case " $command_args" in + *" -i"*) ;; + *) append_wireless;; + esac +} diff --git a/templates/wpa_supplicant/template b/templates/wpa_supplicant/template index b98eae69c43..399480c24ba 100644 --- a/templates/wpa_supplicant/template +++ b/templates/wpa_supplicant/template @@ -1,6 +1,7 @@ # Template file for 'wpa_supplicant' pkgname=wpa_supplicant version=0.6.9 +revision=1 wrksrc=${pkgname}-${version}/${pkgname} distfiles="http://hostap.epitest.fi/releases/$pkgname-$version.tar.gz" build_style=gnu_makefile @@ -23,6 +24,7 @@ long_desc=" (wpa_cli) and a GUI (wpa_gui) are included with $pkgname." conf_files="/etc/${pkgname}.conf" +openrc_services="$pkgname default" Add_dependency full glibc Add_dependency full openssl @@ -45,7 +47,9 @@ post_install() local dbus_conf=fi.epitest.hostap.WPASupplicant.conf cd ${wrksrc} || return 1 - install -d ${DESTDIR}/etc + install -d ${DESTDIR}/etc/init.d + install -m755 ${FILESDIR}/${pkgname}.rc \ + ${DESTDIR}/etc/init.d/${pkgname} install -m644 wpa_supplicant.conf ${DESTDIR}/etc for d in 5 8; do install -d ${DESTDIR}/usr/share/man/man${d}