On Sat, Dec 20, 2014 at 11:51:24PM +0000, ni...@openbsd.org wrote: > amd64 regression test failed...
Thank you for your report! Upstream switched from ExtUtils::MakeMaker to Module::Build and that resulted in important CFLAGs missing during compilation. I've opened issue on GitHub about this. Any comments about below patch? For me regress passes in i386 and amd64. Index: Makefile =================================================================== RCS file: /cvs/ports/net/p5-IO-Interface/Makefile,v retrieving revision 1.19 diff -u -r1.19 Makefile --- Makefile 14 Jun 2014 23:25:42 -0000 1.19 +++ Makefile 24 Dec 2014 02:08:04 -0000 @@ -1,19 +1,25 @@ # $OpenBSD: Makefile,v 1.19 2014/06/14 23:25:42 sthen Exp $ -SHARED_ONLY= Yes +SHARED_ONLY = Yes -COMMENT= module for access to network card configuration information +COMMENT = module for access to network card configuration information -MODULES= cpan -DISTNAME= IO-Interface-1.06 -REVISION= 1 -CATEGORIES= net +MODULES = cpan +DISTNAME = IO-Interface-1.09 +CATEGORIES = net -MAINTAINER= Kevin Lo <ke...@openbsd.org> +HOMEPAGE = https://github.com/lstein/LibIO-Interface-Perl + +MAINTAINER = Mikolaj Kucharski <miko...@kucharski.name> # Artistic/GPL -PERMIT_PACKAGE_CDROM= Yes +PERMIT_PACKAGE_CDROM = Yes WANTLIB += c + +CONFIGURE_STYLE = modbuild + +# upstream switched to modbuild, commit c4de691 +CFLAGS += -D__USE_BSD -DSIOCGIFCONF -DHAVE_SOCKADDR_DL_STRUCT -DUSE_GETIFADDRS .include <bsd.port.mk> Index: distinfo =================================================================== RCS file: /cvs/ports/net/p5-IO-Interface/distinfo,v retrieving revision 1.7 diff -u -r1.7 distinfo --- distinfo 25 Jul 2011 14:22:42 -0000 1.7 +++ distinfo 24 Dec 2014 02:08:04 -0000 @@ -1,5 +1,2 @@ -MD5 (IO-Interface-1.06.tar.gz) = fXfQ8j7n9XcQn8Xw5n4KSw== -RMD160 (IO-Interface-1.06.tar.gz) = 8Go0QDlu7qfLCZJ3eFcb2TzxA0Q= -SHA1 (IO-Interface-1.06.tar.gz) = 13XoQDSHyjrYavnbOYStGbDAyZc= -SHA256 (IO-Interface-1.06.tar.gz) = bAe8nOvOwuxYpuaWmhTI1PSVmGkzLVPqs7ZQeVQc33c= -SIZE (IO-Interface-1.06.tar.gz) = 10339 +SHA256 (IO-Interface-1.09.tar.gz) = 5j6BxS6x4OYOwtmD9VUtJJPhFxeZJclnV/I8S9n6cTo= +SIZE (IO-Interface-1.09.tar.gz) = 16414 Index: patches/patch-Interface_xs =================================================================== RCS file: patches/patch-Interface_xs diff -N patches/patch-Interface_xs --- patches/patch-Interface_xs 30 Aug 2010 03:48:17 -0000 1.2 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,75 +0,0 @@ - -NetBSD and OpenBSD don't set the address family on the "netmask" address. -Work around that by just setting the address family field after ioctl() and -before checking it. - -if_hwaddr() was broken, code looping all interfaces was causing segmentation -fault on freeifaddrs() - -$OpenBSD: patch-Interface_xs,v 1.2 2010/08/30 03:48:17 kevlo Exp $ ---- Interface.xs.orig Fri Jun 6 16:51:42 2008 -+++ Interface.xs Sun Aug 29 01:53:48 2010 -@@ -2,6 +2,9 @@ - #include "perl.h" - #include "XSUB.h" - -+#include <stdio.h> -+#include <string.h> -+ - /* socket definitions */ - #include <sys/types.h> - #include <sys/socket.h> -@@ -511,6 +514,9 @@ if_netmask(sock, name, ...) - operation = SIOCGIFNETMASK; - } - if (!Ioctl(sock,operation,&ifr)) XSRETURN_UNDEF; -+#if defined(__NetBSD__) || defined(__OpenBSD__) -+ ifr.ifr_addr.sa_family = AF_INET; -+#endif - if (ifr.ifr_addr.sa_family != AF_INET) croak ("Address is not in the AF_INET family.\n"); - RETVAL = inet_ntoa(((struct sockaddr_in*) &ifr.ifr_addr)->sin_addr); - #endif -@@ -566,7 +572,7 @@ if_hwaddr(sock, name, ...) - IOCTL_CMD_T operation; - struct ifreq ifr; - #if (defined(USE_GETIFADDRS) && defined(HAVE_SOCKADDR_DL_STRUCT)) -- struct ifaddrs* ifap = NULL; -+ struct ifaddrs *ifap, *ifa; - struct sockaddr_dl* sdl; - sa_family_t family; - char *sdlname, *haddr, *s; -@@ -582,20 +588,17 @@ if_hwaddr(sock, name, ...) - #if (defined(USE_GETIFADDRS) && defined(HAVE_SOCKADDR_DL_STRUCT)) - getifaddrs(&ifap); - -- while(1) { -- if (ifap == NULL) break; -- if (strncmp(name, ifap -> ifa_name, IFNAMSIZ) == 0) { -- family = ifap -> ifa_addr -> sa_family; -+ for (ifa = ifap; ifa; ifa = ifa->ifa_next) { -+ if (strncmp(name, ifa->ifa_name, IFNAMSIZ) == 0) { -+ family = ifa->ifa_addr->sa_family; - if (family == AF_LINK) { -- sdl = (struct sockaddr_dl *) ifap->ifa_addr; -+ sdl = (struct sockaddr_dl *) ifa->ifa_addr; - haddr = sdl->sdl_data + sdl->sdl_nlen; - hlen = sdl->sdl_alen; - break; - } - } -- ifap = ifap -> ifa_next; - } -- freeifaddrs(ifap); - - s = hwaddr; - s[0] = '\0'; -@@ -608,6 +611,9 @@ if_hwaddr(sock, name, ...) - s += len; - } - } -+ -+ freeifaddrs(ifap); -+ - RETVAL = hwaddr; - #elif (defined(HAS_IOCTL) && defined(SIOCGIFHWADDR)) - bzero((void*)&ifr,sizeof(struct ifreq)); Index: pkg/PLIST =================================================================== RCS file: /cvs/ports/net/p5-IO-Interface/pkg/PLIST,v retrieving revision 1.5 diff -u -r1.5 PLIST --- pkg/PLIST 14 Jun 2014 23:25:42 -0000 1.5 +++ pkg/PLIST 24 Dec 2014 02:08:04 -0000 @@ -9,6 +9,5 @@ ${P5ARCH}/auto/IO/Interface/ @comment ${P5ARCH}/auto/IO/Interface/Interface.bs ${P5ARCH}/auto/IO/Interface/Interface.so -${P5ARCH}/auto/IO/Interface/autosplit.ix @man man/man3p/IO::Interface.3p @man man/man3p/IO::Interface::Simple.3p -- best regards q#