--- /dev/null
+# $Id$
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=wireless-tools
+PKG_VERSION:=27
+PKG_RELEASE:=1
+PKG_MD5SUM:=29891b66f23565e7e381d28404abb29a
+
+PKG_SOURCE_URL:=http://pcmcia-cs.sourceforge.net/ftp/contrib/
+PKG_SOURCE:=wireless_tools.$(PKG_VERSION).tar.gz
+PKG_BUILD_DIR:=$(BUILD_DIR)/wireless_tools.$(PKG_VERSION)
+PKG_CAT:=zcat
+PKG_IPK:=$(PACKAGE_DIR)/$(PKG_NAME)_$(PKG_VERSION)-$(PKG_RELEASE)_$(ARCH).ipk
+PKG_IPK_DIR:=$(PKG_BUILD_DIR)/ipkg
+
+$(DL_DIR)/$(PKG_SOURCE):
+ $(SCRIPT_DIR)/download.pl $(DL_DIR) $(PKG_SOURCE) $(PKG_MD5SUM) $(PKG_SOURCE_URL)
+
+$(PKG_BUILD_DIR)/.patched: $(DL_DIR)/$(PKG_SOURCE)
+ $(PKG_CAT) $(DL_DIR)/$(PKG_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+ $(PATCH) $(PKG_BUILD_DIR) ./patches
+ touch $(PKG_BUILD_DIR)/.patched
+
+$(PKG_BUILD_DIR)/$(PKG_NAME): $(PKG_BUILD_DIR)/.patched
+ $(MAKE) CC="$(TARGET_CC)" CFLAGS="$(TARGET_CFLAGS) -I." -C $(PKG_BUILD_DIR)
+
+$(PKG_IPK): $(PKG_BUILD_DIR)/$(PKG_NAME)
+ $(SCRIPT_DIR)/make-ipkg-dir.sh $(PKG_IPK_DIR) $(PKG_NAME).control $(PKG_VERSION)-$(PKG_RELEASE) $(ARCH)
+ mkdir -p $(PKG_IPK_DIR)/usr/lib
+ mkdir -p $(PKG_IPK_DIR)/usr/sbin
+ cp $(PKG_BUILD_DIR)/libiw.so.27 $(PKG_IPK_DIR)/usr/lib
+ cp $(PKG_BUILD_DIR)/iwconfig $(PKG_IPK_DIR)/usr/sbin
+ cp $(PKG_BUILD_DIR)/ifrename $(PKG_IPK_DIR)/usr/sbin
+ cp $(PKG_BUILD_DIR)/iwlist $(PKG_IPK_DIR)/usr/sbin
+ cp $(PKG_BUILD_DIR)/iwspy $(PKG_IPK_DIR)/usr/sbin
+ cp $(PKG_BUILD_DIR)/iwpriv $(PKG_IPK_DIR)/usr/sbin
+ cp $(PKG_BUILD_DIR)/iwevent $(PKG_IPK_DIR)/usr/sbin
+ cp $(PKG_BUILD_DIR)/iwgetid $(PKG_IPK_DIR)/usr/sbin
+ $(STRIP) $(PKG_IPK_DIR)/usr/sbin/*
+ mkdir -p $(PACKAGE_DIR)
+ $(IPKG_BUILD) $(PKG_IPK_DIR) $(PACKAGE_DIR)
+
+$(IPKG_STATE_DIR)/info/$(PKG_NAME).list: $(PKG_IPK)
+ $(IPKG) install $(PKG_IPK)
+
+source: $(DL_DIR)/$(PKG_SOURCE)
+prepare: $(PKG_BUILD_DIR)/.patched
+compile: $(PKG_IPK)
+install: $(IPKG_STATE_DIR)/info/$(PKG_NAME).list
+
+clean:
+ rm -rf $(PKG_BUILD_DIR)
+ rm -f $(PKG_IPK)
--- /dev/null
+--- wireless-tools-27.orig/iwlib.c
++++ wireless-tools-27/iwlib.c
+@@ -622,6 +622,7 @@
+ {
+ struct iwreq wrq;
+
++ memset((char *) &wrq, 0, sizeof(struct iwreq));
+ memset((char *) info, 0, sizeof(struct wireless_config));
+
+ /* Get wireless name */
+--- wireless-tools-27.orig/Makefile
++++ wireless-tools-27/Makefile
+@@ -64,8 +64,8 @@
+ # 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
+@@ -81,9 +81,9 @@
+ endif
+
+ # Other flags
+-CFLAGS=-Os -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow \
++#CFLAGS=-Os -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow \
+ -Wpointer-arith -Wcast-qual -Winline -I.
+-#CFLAGS=-O2 -W -Wall -Wstrict-prototypes -I.
++CFLAGS=-O2 -W -Wall -Wstrict-prototypes -I.
+ DEPFLAGS=-MMD
+ XCFLAGS=$(CFLAGS) $(DEPFLAGS) $(WARN) $(HEADERS) $(WELIB_FLAG)
+ PICFLAG=-fPIC
+--- wireless-tools-27.orig/iwlist.c
++++ wireless-tools-27/iwlist.c
+@@ -870,7 +870,7 @@
+ struct iw_range range;
+ int has_range;
+ struct timeval tv; /* Select timeout */
+- int timeout = 5000000; /* 5s */
++ int timeout = 15000000; /* 15s */
+
+ /* Avoid "Unused parameter" warning */
+ args = args; count = count;
+--- wireless-tools-27.orig/iwconfig.c
++++ wireless-tools-27/iwconfig.c
+@@ -835,10 +835,10 @@
+ }
+ else
+ {
+- /* '-' allow to escape the ESSID string, allowing
++ /* '-' or '--' allow to escape the ESSID string, allowing
+ * to set it to the string "any" or "off".
+ * This is a big ugly, but it will do for now */
+- if(!strcmp(args[i], "-"))
++ if(!strcmp(args[i], "-") || !strcmp(args[i], "--"))
+ {
+ i++;
+ if(i >= count)
+@@ -1377,12 +1377,21 @@
+ if (!strcmp(argv[1], "-v") || !strcmp(argv[1], "--version"))
+ goterr = iw_print_version_info("iwconfig");
+ else
+- /* The device name must be the first argument */
+- if(argc == 2)
+- print_info(skfd, argv[1], NULL, 0);
+- else
+- /* The other args on the line specify options to be set... */
+- goterr = set_info(skfd, argv + 2, argc - 2, argv[1]);
++ {
++ /* '--' escape device name */
++ if((argc > 2) && !strcmp(argv[1], "--"))
++ {
++ argv++;
++ argc--;
++ }
++
++ /* The device name must be the first argument */
++ if(argc == 2)
++ print_info(skfd, argv[1], NULL, 0);
++ else
++ /* The other args on the line specify options to be set... */
++ goterr = set_info(skfd, argv + 2, argc - 2, argv[1]);
++ }
+
+ /* Close the socket. */
+ iw_sockets_close(skfd);