diff --git a/recipes-connectivity/wireless-tools/wireless-tools/avoid_strip.patch b/recipes-connectivity/wireless-tools/wireless-tools/avoid_strip.patch new file mode 100644 index 0000000..f34e243 --- /dev/null +++ b/recipes-connectivity/wireless-tools/wireless-tools/avoid_strip.patch @@ -0,0 +1,21 @@ +wireless_tools: Avoid stripping iwmulticall + +Upstream-Status: Inappropriate [other] + The removed code was from upstream. + +Signed-off-by: Mark Hatle + +diff -ur wireless_tools.29.orig/Makefile wireless_tools.29/Makefile +--- wireless_tools.29.orig/Makefile 2011-06-18 11:35:12.183907453 -0500 ++++ wireless_tools.29/Makefile 2011-06-18 11:38:09.995907985 -0500 +@@ -135,9 +135,8 @@ + + macaddr: macaddr.o $(IWLIB) + +-# Always do symbol stripping here + iwmulticall: iwmulticall.o +- $(CC) $(LDFLAGS) -Wl,-s $(XCFLAGS) -o $@ $^ $(LIBS) ++ $(CC) $(LDFLAGS) $(STRIPFLAGS) $(XCFLAGS) -o $@ $^ $(LIBS) + + # It's a kind of magic... + wireless.h: diff --git a/recipes-connectivity/wireless-tools/wireless-tools/man.patch b/recipes-connectivity/wireless-tools/wireless-tools/man.patch new file mode 100644 index 0000000..cea66cc --- /dev/null +++ b/recipes-connectivity/wireless-tools/wireless-tools/man.patch @@ -0,0 +1,26 @@ +From f3f846ef06f746cd6aa7a41d277669b5e0c705ad Mon Sep 17 00:00:00 2001 +From: Moritz Rosenthal +Date: Tue, 27 Aug 2019 10:40:52 +0200 +Subject: [PATCH] Borrowed wireless tools recipe: + +Upstream-Status: Inappropriate [configuration] + +--- + Makefile | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/Makefile b/Makefile +index 879c0e6..26bccf4 100644 +--- a/Makefile ++++ b/Makefile +@@ -73,8 +73,8 @@ DYNAMIC_LINK= libiw.so + # Install directories + INSTALL_DIR= $(PREFIX)/sbin/ + INSTALL_LIB= $(PREFIX)/lib/ +-INSTALL_INC= $(PREFIX)/include/ +-INSTALL_MAN= $(PREFIX)/man/ ++INSTALL_INC= $(PREFIX)/usr/include/ ++INSTALL_MAN= $(PREFIX)/usr/share/man/ + + # Various commands + RM = rm -f diff --git a/recipes-connectivity/wireless-tools/wireless-tools/remove.ldconfig.call.patch b/recipes-connectivity/wireless-tools/wireless-tools/remove.ldconfig.call.patch new file mode 100644 index 0000000..3a22c3f --- /dev/null +++ b/recipes-connectivity/wireless-tools/wireless-tools/remove.ldconfig.call.patch @@ -0,0 +1,19 @@ +When /etc/ld.so.cache is writeable by user running bitbake then it creates invalid cache +(in my case libstdc++.so cannot be found after building zlib(-native) and I have to call +touch */libstdc++.so && /sbin/ldconfig to fix it. + +So remove ldconfig call from make install-libs + +Upstream-Status: Inappropriate [disable feature] + +diff -uNr wireless_tools.29.orig/Makefile wireless_tools.29/Makefile +--- wireless_tools.29.orig/Makefile 2007-09-18 01:56:46.000000000 +0200 ++++ wireless_tools.29/Makefile 2012-02-15 20:46:41.780763514 +0100 +@@ -163,7 +163,6 @@ + install -m 755 $(DYNAMIC) $(INSTALL_LIB) + ln -sfn $(DYNAMIC) $(INSTALL_LIB)/$(DYNAMIC_LINK) + @echo "*** Don't forget to add $(INSTALL_LIB) to /etc/ld.so.conf, and run ldconfig as root. ***" +- @$(LDCONFIG) || echo "*** Could not run ldconfig ! ***" + + # Install the static library + install-static:: $(STATIC) diff --git a/recipes-connectivity/wireless-tools/wireless-tools/wireless-tools.if-pre-up b/recipes-connectivity/wireless-tools/wireless-tools/wireless-tools.if-pre-up new file mode 100644 index 0000000..2518a5c --- /dev/null +++ b/recipes-connectivity/wireless-tools/wireless-tools/wireless-tools.if-pre-up @@ -0,0 +1,122 @@ +#!/bin/sh + +case "$METHOD" in loopback) exit 0 ;; esac + +IWCONFIG=/sbin/iwconfig +IWPRIV=/sbin/iwpriv + +if [ ! -x $IWCONFIG ]; then + exit 0 +fi + +# Detect and do nothing for linux-wlan-ng interfaces; +# which are configured by thier own if-pre-up script. +if [ -n "$IF_WIRELESS_TYPE" -a "$IF_WIRELESS_TYPE" = "wlan-ng" ]; then + exit 0 +fi + +if [ -n "$IF_NEEDS_RESET" ]; then + $IWPRIV "$IFACE" reset 1 + sleep 1 +fi + +if [ -n "$IF_NEEDS_FIRMWARE" ]; then + $IF_NEEDS_FIRMWARE "$IFACE" +fi + +if [ -n "$IF_WIRELESS_SENS" ]; then + $IWCONFIG "$IFACE" sens $IF_WIRELESS_SENS +fi + +if [ -n "$IF_WIRELESS_RATE" ]; then + $IWCONFIG "$IFACE" rate $IF_WIRELESS_RATE +fi + +if [ -n "$IF_WIRELESS_RTS" ]; then + $IWCONFIG "$IFACE" rts $IF_WIRELESS_RTS +fi + +if [ -n "$IF_WIRELESS_FRAG" ]; then + $IWCONFIG "$IFACE" frag $IF_WIRELESS_FRAG +fi + +if [ -n "$IF_WIRELESS_POWER" ]; then + $IWCONFIG "$IFACE" power $IF_WIRELESS_POWER +fi + +if [ -n "$IF_WIRELESS_POWERPERIOD" ]; then + $IWCONFIG "$IFACE" power period $IF_WIRELESS_POWERPERIOD +fi + +if [ -n "$IF_WIRELESS_POWERTIMEOUT" ]; then + $IWCONFIG "$IFACE" power timeout $IF_WIRELESS_POWERTIMEOUT +fi + +if [ -n "$IF_WIRELESS_TXPOWER" ]; then + $IWCONFIG "$IFACE" txpower $IF_WIRELESS_TXPOWER +fi + +if [ -n "$IF_WIRELESS_RETRY" ]; then + $IWCONFIG "$IFACE" retry $IF_WIRELESS_RETRY +fi + +if [ -n "$IF_WIRELESS_NICK" ]; then + $IWCONFIG "$IFACE" nick "$IF_WIRELESS_NICK" +fi + +if [ -n "$IF_WIRELESS_NWID" ]; then + $IWCONFIG "$IFACE" nwid "$IF_WIRELESS_NWID" +fi + +if [ -n "$IF_WIRELESS_ENC" ]; then + eval $IWCONFIG "$IFACE" enc $IF_WIRELESS_ENC +fi + +if [ -n "$IF_WIRELESS_KEY" ]; then + eval $IWCONFIG "$IFACE" key $IF_WIRELESS_KEY +fi + +if [ -n "$IF_WIRELESS_KEY1" ]; then + $IWCONFIG "$IFACE" key [1] "$IF_WIRELESS_KEY1" +fi + +if [ -n "$IF_WIRELESS_KEY2" ]; then + $IWCONFIG "$IFACE" key [2] "$IF_WIRELESS_KEY2" +fi + +if [ -n "$IF_WIRELESS_KEY3" ]; then + $IWCONFIG "$IFACE" key [3] "$IF_WIRELESS_KEY3" +fi + +if [ -n "$IF_WIRELESS_KEY4" ]; then + $IWCONFIG "$IFACE" key [4] "$IF_WIRELESS_KEY4" +fi + +if [ -n "$IF_WIRELESS_DEFAULTKEY" ]; then + $IWCONFIG "$IFACE" key ["$IF_WIRELESS_DEFAULTKEY"] +fi + +if [ -n "$IF_WIRELESS_KEYMODE" ]; then + $IWCONFIG "$IFACE" key "$IF_WIRELESS_KEYMODE" +fi + +if [ -n "$IF_WIRELESS_MODE" ]; then + $IWCONFIG "$IFACE" mode $IF_WIRELESS_MODE +fi + +if [ -n "$IF_WIRELESS_FREQ" ]; then + $IWCONFIG "$IFACE" freq $IF_WIRELESS_FREQ +fi + +if [ -n "$IF_WIRELESS_CHANNEL" ]; then + $IWCONFIG "$IFACE" channel $IF_WIRELESS_CHANNEL +fi + +if [ -n "$IF_WIRELESS_ESSID" ]; then + $IWCONFIG "$IFACE" essid "$IF_WIRELESS_ESSID" +fi + +if [ -n "$IF_WIRELESS_COMMIT" ]; then + $IWCONFIG "$IFACE" commit +fi + diff --git a/recipes-connectivity/wireless-tools/wireless-tools/zzz-wireless.if-pre-up b/recipes-connectivity/wireless-tools/wireless-tools/zzz-wireless.if-pre-up new file mode 100644 index 0000000..4c8e95b --- /dev/null +++ b/recipes-connectivity/wireless-tools/wireless-tools/zzz-wireless.if-pre-up @@ -0,0 +1,34 @@ +#!/bin/sh +# +# /etc/network/if-pre-up.d/zzz-wireless +# by Stefan Tomanek (stefan@pico.ruhr.de) + + +IWCONFIG=/sbin/iwconfig +IFCONFIG=/sbin/ifconfig +GREP=/bin/grep +LOGGER=/usr/bin/logger +SLEEP=/bin/sleep + +# How long do we wait for association? +RETRIES=15 +SLEEPTIME=1 + +# Only sleep if we use DHCP (add others methods seperated by spaces) +ONLY_FOR="static dhcp" + +if [ -z "$IF_WIRELESS_TYPE" ] && echo "$ONLY_FOR" | grep -q "$METHOD" ; then + $IFCONFIG $IFACE up + $LOGGER Checking for WLAN association... + while ( [ $RETRIES -gt 0 ] && ($IWCONFIG "$IFACE" | $GREP -q "Access Point: Not-Associated") ); do + $LOGGER No association yet, $RETRIES retries until timeout + RETRIES=$(($RETRIES-1)) + $SLEEP $SLEEPTIME + done + + if [ $RETRIES -eq 0 ]; then + $LOGGER Timeout waiting for association, continuing anyway... + else + $LOGGER Found association! + fi +fi diff --git a/recipes-connectivity/wireless-tools/wireless-tools_29.bb b/recipes-connectivity/wireless-tools/wireless-tools_29.bb new file mode 100644 index 0000000..5bb0fdf --- /dev/null +++ b/recipes-connectivity/wireless-tools/wireless-tools_29.bb @@ -0,0 +1,57 @@ +DESCRIPTION = "Tools for the Linux Standard Wireless Extension Subsystem" +HOMEPAGE = "http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html" +LICENSE = "GPLv2 & (LGPLv2.1 | MPL-1.1 | BSD)" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ + file://iwconfig.c;beginline=1;endline=12;md5=cf710eb1795c376eb10ea4ff04649caf \ + file://iwevent.c;beginline=59;endline=72;md5=d66a10026d4394f0a5b1c5587bce4537 \ + file://sample_enc.c;beginline=1;endline=4;md5=838372be07874260b566bae2f6ed33b6" +SECTION = "base" +PE = "1" +PR = "r4" + +SRC_URI = "http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/wireless_tools.29.tar.gz \ + file://remove.ldconfig.call.patch \ + file://man.patch \ + file://wireless-tools.if-pre-up \ + file://zzz-wireless.if-pre-up \ + file://avoid_strip.patch" + +SRC_URI[md5sum] = "e06c222e186f7cc013fd272d023710cb" +SRC_URI[sha256sum] = "6fb80935fe208538131ce2c4178221bab1078a1656306bce8909c19887e2e5a1" +S = "${WORKDIR}/wireless_tools.29" + +TARGET_CC_ARCH += "${LDFLAGS}" + +CFLAGS =+ "-I${S}" +EXTRA_OEMAKE = "-e 'BUILD_SHARED=y' \ + 'INSTALL_DIR=${D}${base_sbindir}' \ + 'INSTALL_LIB=${D}${libdir}' \ + 'INSTALL_INC=${D}${includedir}' \ + 'INSTALL_MAN=${D}${mandir}'" + +do_compile() { + oe_runmake all libiw.a +} + +do_install() { + oe_runmake PREFIX=${D} install-iwmulticall install-dynamic install-man install-hdr + install -d ${D}${sbindir} + install -m 0755 ifrename ${D}${sbindir}/ifrename + # Disabled by RP - 20/8/08 - We don't seem to need/use these + #install -d ${D}${sysconfdir}/network/if-pre-up.d + #install ${WORKDIR}/wireless-tools.if-pre-up ${D}${sysconfdir}/network/if-pre-up.d/wireless-tools + #install ${WORKDIR}/zzz-wireless.if-pre-up ${D}${sysconfdir}/network/if-pre-up.d/zzz-wireless +} + +PACKAGES = "libiw-dbg ifrename-dbg ${PN}-dbg \ +libiw libiw-dev libiw-doc ifrename-doc ifrename ${PN} ${PN}-doc" + +FILES_libiw-dbg = "${libdir}/.debug/*.so.*" +FILES_ifrename-dbg = "${sbindir}/.debug/ifrename" +FILES_libiw = "${libdir}/*.so.*" +FILES_libiw-dev = "${libdir}/*.a ${libdir}/*.so ${includedir}" +FILES_libiw-doc = "${mandir}/man7" +FILES_ifrename = "${sbindir}/ifrename" +FILES_ifrename-doc = "${mandir}/man8/ifrename.8 ${mandir}/man5/iftab.5" +FILES_${PN} = "${bindir} ${sbindir}/iw* ${base_sbindir} ${base_bindir} ${sysconfdir}/network" +FILES_${PN}-doc = "${mandir}"