Date: Tue, 15 Aug 2017 19:09:51 +0000 (UTC) From: Tobias Kortkamp <tobik@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r448001 - in head/net/wmwifi: . files Message-ID: <201708151909.v7FJ9pbq098374@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: tobik Date: Tue Aug 15 19:09:51 2017 New Revision: 448001 URL: https://svnweb.freebsd.org/changeset/ports/448001 Log: net/wmwifi: Fix runtime on amd64 Currently wmwifi doesn't start on amd64 and simply fails with wmwifi: No wireless interface found! The code assumes that sizeof(int) == sizeof(size_t) which isn't the case on amd64 (and other architectures) and all sysctl() calls will fail because of it. While here: - Fix a build failure when automake+autoconf are installed in the build environment. By patching configure.in the build wants to regenerate configure which doesn't work correctly: gmake[1]: Entering directory '/usr/ports/net/wmwifi/work/wmwifi-0.4-bsd' cd . && aclocal aclocal-1.15: warning: autoconf input should be named 'configure.ac', not 'configure.in' /usr/local/share/aclocal/gdk-pixbuf.m4:12: warning: underquoted definition of AM_PATH_GDK_PIXBUF /usr/local/share/aclocal/gdk-pixbuf.m4:12: run info Automake 'Extending aclocal' /usr/local/share/aclocal/gdk-pixbuf.m4:12: or see http://www.gnu.org/software/automake/manual/automake.html#Extending-aclocal cd . && automake --gnu Makefile automake-1.15: warning: autoconf input should be named 'configure.ac', not 'configure.in' configure.in:3: warning: AM_INIT_AUTOMAKE: two- and three-arguments forms are deprecated. For more info, see: configure.in:3: http://www.gnu.org/software/automake/manual/automake.html#Modernize-AM_005fINIT_005fAUTOMAKE-invocation configure.in:6: error: required file './compile' not found configure.in:6: 'automake --add-missing' can install 'compile' gmake[1]: *** [Makefile:82: Makefile.in] Error 1 gmake[1]: Leaving directory '/usr/ports/net/wmwifi/work/wmwifi-0.4-bsd' *** Error code 1 Remove files/patch-configure.in and pass CFLAGS through CONFIGURE_ENV instead. - Add LICENSE, LICENSE_FILE - Add missing dependency on libXext [1] https://forums.freebsd.org/threads/61981/ PR: 221531 Reported by: forester on the FreeBSD forums [1] Approved by: uqs (maintainer) MFH: 2017Q3 Deleted: head/net/wmwifi/files/patch-configure.in Modified: head/net/wmwifi/Makefile head/net/wmwifi/files/patch-wireless.c Modified: head/net/wmwifi/Makefile ============================================================================== --- head/net/wmwifi/Makefile Tue Aug 15 19:01:24 2017 (r448000) +++ head/net/wmwifi/Makefile Tue Aug 15 19:09:51 2017 (r448001) @@ -4,7 +4,7 @@ PORTNAME= wmwifi PORTVERSION= 0.4 DISTVERSIONSUFFIX=-bsd -PORTREVISION= 4 +PORTREVISION= 5 CATEGORIES= net MASTER_SITES= http://digitalssg.net/debian/ \ LOCAL/uqs @@ -12,11 +12,14 @@ MASTER_SITES= http://digitalssg.net/debian/ \ MAINTAINER= uqs@FreeBSD.org COMMENT= Dockapp displaying the signal strength of WiFi connection -GNU_CONFIGURE= yes -USE_XORG= x11 xpm -USES= gmake +LICENSE= GPLv2+ +LICENSE_FILE= ${WRKSRC}/COPYING -CPPFLAGS+= -I${LOCALBASE}/include +USES= gmake localbase +USE_XORG= x11 xext xpm + +CONFIGURE_ENV= X_CFLAGS="${CFLAGS}" +GNU_CONFIGURE= yes PLIST_FILES= bin/wmwifi Modified: head/net/wmwifi/files/patch-wireless.c ============================================================================== --- head/net/wmwifi/files/patch-wireless.c Tue Aug 15 19:01:24 2017 (r448000) +++ head/net/wmwifi/files/patch-wireless.c Tue Aug 15 19:09:51 2017 (r448001) @@ -1,5 +1,5 @@ ---- src/wireless.c.orig 2004-03-09 20:39:17.000000000 +0100 -+++ src/wireless.c 2007-11-01 17:58:13.170763665 +0100 +--- src/wireless.c.orig 2004-03-09 19:39:17 UTC ++++ src/wireless.c @@ -25,7 +25,13 @@ #include <net/if_mib.h> #include <net/if_var.h> @@ -14,7 +14,14 @@ #else #error "sorry, your OS is not supported yet" #endif -@@ -143,6 +149,7 @@ +@@ -138,11 +144,13 @@ int get_wlaniface(int old, int dir) + int i, max, step, found, index; + struct ifmibdata ifmd; + struct ifmediareq ifmr; +- int name[6], len, s; ++ int name[6], s; ++ size_t len; + char *iface[IFNAMSIZ]; max = get_max_ifs(); step = 0; @@ -22,7 +29,7 @@ if (old > max) old = max; /* just be sure to not be out of bounds */ -@@ -178,8 +185,8 @@ +@@ -178,8 +186,8 @@ int get_wlaniface(int old, int dir) len = sizeof(ifmd); sysctl(name, 6, &ifmd, &len, NULL, 0); @@ -33,7 +40,7 @@ continue; s = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); -@@ -193,9 +200,11 @@ +@@ -193,9 +201,11 @@ int get_wlaniface(int old, int dir) if (ioctl(s, SIOCGIFMEDIA, (caddr_t) &ifmr) < 0) { @@ -47,7 +54,7 @@ } close(s); /* we cannot monitor interfaces in hostap mode, so just -@@ -207,6 +216,10 @@ +@@ -207,12 +217,17 @@ int get_wlaniface(int old, int dir) found++; } } @@ -58,7 +65,21 @@ return index; } /* how many interfaces do we have? this includes non-wireless! */ -@@ -224,9 +237,18 @@ + int get_max_ifs(void) + { +- int count, len; ++ int count; ++ size_t len; + + len = sizeof(count); + sysctlbyname("net.link.generic.system.ifcount", &count, &len, NULL, 0); +@@ -220,13 +235,23 @@ int get_max_ifs(void) + } + int wifi_info(struct wifi *wfi) + { +- int name[6], len; /* interface name */ ++ int name[6]; /* interface name */ ++ size_t len; struct ifmibdata ifmd; struct ifreq ifr; /* interface stats */ @@ -77,7 +98,7 @@ /* lets find the current interface name */ name[0] = CTL_NET; name[1] = PF_LINK; -@@ -247,13 +269,38 @@ +@@ -247,13 +272,38 @@ int wifi_info(struct wifi *wfi) perror("socket"); exit(1); } @@ -117,7 +138,7 @@ strncpy(ifr.ifr_name, wfi->ifname, strlen(wfi->ifname)); wireq.wi_type = WI_RID_COMMS_QUALITY; wireq.wi_len = WI_MAX_DATALEN; -@@ -272,7 +319,7 @@ +@@ -272,7 +322,7 @@ int wifi_info(struct wifi *wfi) * wi_val[2] = noise */ wfi->link = (int) wireq.wi_val[1];
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201708151909.v7FJ9pbq098374>