diff options
Diffstat (limited to 'repo/util/wpa_supplicant')
-rw-r--r-- | repo/util/wpa_supplicant/wpa_cli.confd | 1 | ||||
-rw-r--r-- | repo/util/wpa_supplicant/wpa_cli.initd | 22 | ||||
-rw-r--r-- | repo/util/wpa_supplicant/wpa_supplicant.confd | 10 | ||||
-rw-r--r-- | repo/util/wpa_supplicant/wpa_supplicant.initd | 79 | ||||
-rw-r--r-- | repo/util/wpa_supplicant/wpa_supplicant.xibuild | 106 |
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 + +} + + |