summaryrefslogtreecommitdiff
path: root/repo/util/wpa_supplicant
diff options
context:
space:
mode:
Diffstat (limited to 'repo/util/wpa_supplicant')
-rw-r--r--repo/util/wpa_supplicant/wpa_cli.confd1
-rw-r--r--repo/util/wpa_supplicant/wpa_cli.initd22
-rw-r--r--repo/util/wpa_supplicant/wpa_supplicant.confd10
-rw-r--r--repo/util/wpa_supplicant/wpa_supplicant.initd79
-rw-r--r--repo/util/wpa_supplicant/wpa_supplicant.xibuild106
5 files changed, 218 insertions, 0 deletions
diff --git a/repo/util/wpa_supplicant/wpa_cli.confd b/repo/util/wpa_supplicant/wpa_cli.confd
new file mode 100644
index 0000000..aa481ac
--- /dev/null
+++ b/repo/util/wpa_supplicant/wpa_cli.confd
@@ -0,0 +1 @@
+WPACLI_OPTS="-a /etc/wpa_supplicant/wpa_cli.sh"
diff --git a/repo/util/wpa_supplicant/wpa_cli.initd b/repo/util/wpa_supplicant/wpa_cli.initd
new file mode 100644
index 0000000..2bf7c0d
--- /dev/null
+++ b/repo/util/wpa_supplicant/wpa_cli.initd
@@ -0,0 +1,22 @@
+#!/sbin/openrc-run
+
+supervisor=supervise-daemon
+
+# The wpa_cli services depends on wpa_supplicant. If wpa_supplicant is
+# restarted, so is wpa_cli. Unfortunately, wpa_supplicant creates the
+# socket, used for communication with wpa_cli, rather late thereby
+# causing wpa_cli to be restarted before it is created and thus fail.
+# By default supervise-daemon will restart wpa_cli immediately, often
+# resulting in all restart attempts to be exhausted before the socket is
+# created. To work around this issue, add a respawn-delay to wpa_cli.
+supervise_daemon_args="--respawn-delay 3"
+
+name="WPA Command Line Client"
+description="Text-based frontend for interacting with WPA Supplicant"
+
+command=/sbin/wpa_cli
+command_args="${WPACLI_OPTS} >/dev/null"
+
+depend() {
+ need wpa_supplicant
+}
diff --git a/repo/util/wpa_supplicant/wpa_supplicant.confd b/repo/util/wpa_supplicant/wpa_supplicant.confd
new file mode 100644
index 0000000..56a6c11
--- /dev/null
+++ b/repo/util/wpa_supplicant/wpa_supplicant.confd
@@ -0,0 +1,10 @@
+# conf.d file for wpa_supplicant
+#
+# Please check man 8 wpa_supplicant for more information about the options
+# wpa_supplicant accepts.
+wpa_supplicant_args=""
+
+# The dbus interface will be enabled by default if wpa_supplicant.conf is
+# missing. use wpa_supplicant_dbus to explicitly enable/disable dbus interface
+
+#wpa_supplicant_dbus=no
diff --git a/repo/util/wpa_supplicant/wpa_supplicant.initd b/repo/util/wpa_supplicant/wpa_supplicant.initd
new file mode 100644
index 0000000..c1a4834
--- /dev/null
+++ b/repo/util/wpa_supplicant/wpa_supplicant.initd
@@ -0,0 +1,79 @@
+#!/sbin/openrc-run
+# Copyright (c) 2009 Roy Marples <roy@marples.name>
+# All rights reserved. Released under the 2-clause BSD license.
+supervisor=supervise-daemon
+
+name="WPA Supplicant"
+description="Wi-Fi Protected Access client and IEEE 802.1X supplicant"
+
+command=/sbin/wpa_supplicant
+wpa_supplicant_if=${wpa_supplicant_if:+-i}$wpa_supplicant_if
+command_args="$wpa_supplicant_args $wpa_supplicant_if"
+
+default_conf=/etc/wpa_supplicant/wpa_supplicant.conf
+
+depend() {
+ need localmount
+ use logger dbus
+ after bootmisc modules entropy udev-settle
+ before dns dhcpcd net
+ keyword -shutdown
+}
+
+find_wireless() {
+ local iface=
+ for iface in /sys/class/net/*; do
+ if [ -e "$iface"/wireless -o -e "$iface"/phy80211 ]; then
+ echo "${iface##*/}"
+ return 0
+ fi
+ done
+
+ 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
+
+ # set default conf if dbus is explicitly disabled
+ if [ -n "${wpa_supplicant_dbus}" ] && ! yesno "${wpa_supplicant_dbus}"; then
+ : ${wpa_supplicant_conf:=${default_conf}}
+ fi
+
+ # use default conf if it exists
+ if [ -f "${default_conf}" ]; then
+ : ${wpa_supplicant_conf:=${default_conf}}
+ fi
+
+ # enable default dbus if we still dont have a config
+ if [ -z "${wpa_supplicant_conf}" ]; then
+ : ${wpa_supplicant_dbus:=yes}
+ else
+ command_args="${command_args} -c$wpa_supplicant_conf"
+ fi
+ case " ${command_args}" in
+ *" -u"*);;
+ *) if yesno "{wpa_supplicant_dbus}"; then
+ command_args="-u ${command_args}"
+ fi
+ ;;
+ esac
+
+ checkpath -d -m 0755 -o root:root /var/run/wpa_supplicant
+}
diff --git a/repo/util/wpa_supplicant/wpa_supplicant.xibuild b/repo/util/wpa_supplicant/wpa_supplicant.xibuild
new file mode 100644
index 0000000..b1b1f20
--- /dev/null
+++ b/repo/util/wpa_supplicant/wpa_supplicant.xibuild
@@ -0,0 +1,106 @@
+#!/bin/sh
+
+MAKEDEPS="make libxml2"
+DEPS="libnl openssl readline dbus pcsc-lite libnl"
+
+PKG_VER=2.10
+
+SOURCE=https://w1.fi/releases/wpa_supplicant-$PKG_VER.tar.gz
+DESC="A utility providng key negotiation for WPA wireless networks"
+ADDITIONAL="
+wpa_cli.confd
+wpa_cli.initd
+wpa_supplicant.confd
+wpa_supplicant.initd
+ "
+
+
+prepare () {
+ cat > wpa_supplicant/.config << "EOF"
+CONFIG_DRIVER_WEXT=y
+CONFIG_DRIVER_NL80211=y
+CONFIG_LIBNL32=y
+CONFIG_DRIVER_WIRED=y
+CONFIG_IEEE8021X_EAPOL=y
+CONFIG_EAP_MD5=y
+CONFIG_EAP_MSCHAPV2=y
+CONFIG_EAP_TLS=y
+CONFIG_EAP_PEAP=y
+CONFIG_EAP_TTLS=y
+CONFIG_EAP_FAST=y
+CONFIG_EAP_GTC=y
+CONFIG_EAP_OTP=y
+CONFIG_EAP_SIM=y
+CONFIG_EAP_PSK=y
+CONFIG_EAP_PWD=y
+CONFIG_EAP_PAX=y
+CONFIG_EAP_LEAP=y
+CONFIG_EAP_AKA=y
+CONFIG_EAP_AKA_PRIME=y
+CONFIG_WPS=y
+CONFIG_PKCS12=y
+CONFIG_SMARTCARD=y
+CONFIG_PCSC=y
+CONFIG_HT_OVERRIDES=y
+CONFIG_VHT_OVERRIDES=y
+CONFIG_IPV6=y
+CONFIG_CTRL_IFACE=y
+CONFIG_WPA_CLI_EDIT=y
+CONFIG_SAE=y
+CONFIG_BACKEND=file
+CONFIG_IEEE80211W=y
+CONFIG_TLS=openssl
+CONFIG_TLSV11=y
+CONFIG_TLSV12=y
+CONFIG_CTRL_IFACE_DBUS_NEW=y
+CONFIG_CTRL_IFACE_DBUS_INTRO=y
+CONFIG_DELAYED_MIC_ERROR_REPORT=y
+CONFIG_AP=y
+CONFIG_P2P=y
+CONFIG_AUTOSCAN_PERIODIC=y
+CONFIG_IBSS_RSN=y
+CONFIG_BGSCAN_SIMPLE=y
+
+EOF
+
+}
+
+build () {
+ cd wpa_supplicant &&
+ make BINDIR=/usr/sbin LIBDIR=/usr/lib
+}
+
+package () {
+ mkdir -p $PKG_DEST/usr/sbin
+ mkdir -p $PKG_DEST/usr/share/dbus-1/system-services
+ mkdir -p $PKG_DEST/usr/share/man/man5
+ mkdir -p $PKG_DEST/usr/share/man/man8
+ install -m755 wpa_cli $PKG_DEST/usr/sbin/ &&
+ install -m755 wpa_passphrase $PKG_DEST/usr/sbin/ &&
+ install -m755 wpa_supplicant $PKG_DEST/usr/sbin/ &&
+ install -m644 doc/docbook/wpa_supplicant.conf.5 $PKG_DEST/usr/share/man/man5/ &&
+ install -m644 doc/docbook/wpa_cli.8 $PKG_DEST/usr/share/man/man8/
+ install -m644 doc/docbook/wpa_passphrase.8 $PKG_DEST/usr/share/man/man8/
+ install -m644 doc/docbook/wpa_supplicant.8 $PKG_DEST/usr/share/man/man8/
+ install -m644 dbus/fi.w1.wpa_supplicant1.service \
+ $PKG_DEST/usr/share/dbus-1/system-services/ &&
+ install -d -m755 $PKG_DEST/etc/dbus-1/system.d &&
+ install -m644 dbus/dbus-wpa_supplicant.conf \
+ $PKG_DEST/etc/dbus-1/system.d/wpa_supplicant.conf
+
+ cd ..
+
+ # openrc runscripts
+ install -d $PKG_DEST/etc/init.d/wpa_supplicant
+ install -Dm755 wpa_supplicant.initd \
+ $PKG_DEST/etc/init.d/wpa_supplicant
+ install -Dm644 wpa_supplicant.confd \
+ $PKG_DEST/etc/conf.d/wpa_supplicant
+ install -Dm755 wpa_cli.initd \
+ $PKG_DEST/etc/init.d/wpa_cli
+ install -Dm644 wpa_cli.confd \
+ $PKG_DEST/etc/conf.d/wpa_cli
+
+}
+
+