pkgsrc-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: pkg/32929: net/openvpn fails to work with tap device
The following reply was made to PR pkg/32929; it has been noted by GNATS.
From: "Johnny C. Lam" <jlam%pkgsrc.org@localhost>
To: apb%cequrux.com@localhost
Cc: gnats-bugs%netbsd.org@localhost
Subject: Re: pkg/32929: net/openvpn fails to work with tap device
Date: Mon, 10 Apr 2006 04:26:38 +0000
--SUOF0GtieIMvvwua
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
On Sat, Feb 25, 2006 at 04:25:01PM +0000, Alan Barrett wrote:
> >Description:
> The net/openvpn package needs to be patched to support
> NetBSD's cloning tap device.
> >How-To-Repeat:
> install openvpn-2.05.
> Configure it with "dev tap".
> Watch it fail.
> >Fix:
> Apply appended patch. Also bump PKGREVISION.
I've applied your patch to openvpn-2.0.6, which is the current version
of OpenVPN in pkgsrc, and I've verified that it does compile. Could you
verify that it still works? For simplicity, I've attached a patch with
the complete set of changes to the package.
Thanks,
-- Johnny Lam <jlam%pkgsrc.org@localhost>
--SUOF0GtieIMvvwua
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="openvpn.diff"
Index: Makefile
===================================================================
RCS file: /cvsroot/pkgsrc/net/openvpn/Makefile,v
retrieving revision 1.16
diff -u -r1.16 Makefile
--- Makefile 5 Apr 2006 13:49:26 -0000 1.16
+++ Makefile 10 Apr 2006 04:21:32 -0000
@@ -2,6 +2,7 @@
#
DISTNAME= openvpn-2.0.6
+PKGREVISION= 1
CATEGORIES= net
MASTER_SITES= http://openvpn.net/release/ \
http://openvpn.net/release/old/
Index: distinfo
===================================================================
RCS file: /cvsroot/pkgsrc/net/openvpn/distinfo,v
retrieving revision 1.7
diff -u -r1.7 distinfo
--- distinfo 5 Apr 2006 13:49:26 -0000 1.7
+++ distinfo 10 Apr 2006 04:21:32 -0000
@@ -3,3 +3,8 @@
SHA1 (openvpn-2.0.6.tar.gz) = 046f3811831a06e4fbc9c64544faaecf04547ae5
RMD160 (openvpn-2.0.6.tar.gz) = cf3cd807bb657baf317e896b57900958cf442a63
Size (openvpn-2.0.6.tar.gz) = 664816 bytes
+SHA1 (patch-ab) = 05c9df0a7a71cb1cfa4a2f132df02cac822ba3ba
+SHA1 (patch-ac) = 7a225a0b88dcf0039cd40f72a10564c72f41b2f1
+SHA1 (patch-ad) = ee577ad5c5621bbfa05d522e85e467e937929f6e
+SHA1 (patch-ae) = b6f8f869b5c727120df8dd433e54ffe3537e0006
+SHA1 (patch-af) = ae697790e648c4d351c8c99e21ff79a56c572ddf
Index: patches/patch-ab
===================================================================
RCS file: patches/patch-ab
diff -N patches/patch-ab
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-ab 10 Apr 2006 04:21:32 -0000
@@ -0,0 +1,15 @@
+$NetBSD$
+
+--- syshead.h.orig 2005-12-08 15:57:49.000000000 -0500
++++ syshead.h
+@@ -254,6 +254,10 @@
+
+ #ifdef TARGET_NETBSD
+
++#ifdef HAVE_NET_IF_TAP_H
++#include <net/if_tap.h>
++#endif
++
+ #ifdef HAVE_NET_IF_TUN_H
+ #include <net/if_tun.h>
+ #endif
Index: patches/patch-ac
===================================================================
RCS file: patches/patch-ac
diff -N patches/patch-ac
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-ac 10 Apr 2006 04:21:32 -0000
@@ -0,0 +1,43 @@
+$NetBSD$
+
+--- tun.c.orig 2006-04-05 02:29:24.000000000 -0400
++++ tun.c
+@@ -877,7 +877,37 @@ open_tun_generic (const char *dev, const
+ if (dynamic && !has_digit(dev))
+ {
+ int i;
+- for (i = 0; i < 256; ++i)
++#if defined(TAPGIFNAME)
++ /*
++ * Perhaps we have a cloning device. Try opening
++ * the device without any appended digits,
++ * and use ioctl(,TAPGIFNAME,) to get the resulting
++ * interface name.
++ */
++ openvpn_snprintf (tunname, sizeof (tunname), "/dev/%s", dev);
++ if ((tt->fd = open (tunname, O_RDWR)) > 0)
++ {
++ struct ifreq ifr;
++ if (ioctl (tt->fd, TAPGIFNAME, (void*)&ifr) < 0)
++ {
++ msg (D_READ_WRITE | M_ERRNO,
++ "ioctl(,TAPGIFNAME,) failed for %s", tunname);
++ close(tt->fd);
++ }
++ else
++ {
++ strlcpy (dynamic_name, ifr.ifr_name,
++ sizeof (dynamic_name));
++ dynamic_opened = true;
++ msg (M_INFO, "TUN/TAP dynamic interface %s opened",
++ dynamic_name);
++ }
++ }
++ if (!dynamic_opened)
++ msg (D_READ_WRITE | M_ERRNO, "Tried opening %s (failed)",
++ tunname);
++#endif /* TAPGIFNAME */
++ for (i = 0; i < 256 && !dynamic_opened; ++i)
+ {
+ openvpn_snprintf (tunname, sizeof (tunname),
+ "/dev/%s%d", dev, i);
Index: patches/patch-ad
===================================================================
RCS file: patches/patch-ad
diff -N patches/patch-ad
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-ad 10 Apr 2006 04:21:32 -0000
@@ -0,0 +1,14 @@
+$NetBSD$
+
+--- config.h.in.orig 2006-04-05 04:03:07.000000000 -0400
++++ config.h.in
+@@ -201,6 +201,9 @@
+ /* Define to 1 if you have the <net/if.h> header file. */
+ #undef HAVE_NET_IF_H
+
++/* Define to 1 if you have the <net/if_tap.h> header file. */
++#undef HAVE_NET_IF_TAP_H
++
+ /* Define to 1 if you have the <net/if_tun.h> header file. */
+ #undef HAVE_NET_IF_TUN_H
+
Index: patches/patch-ae
===================================================================
RCS file: patches/patch-ae
diff -N patches/patch-ae
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-ae 10 Apr 2006 04:21:32 -0000
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- configure.ac.orig 2006-04-05 04:02:59.000000000 -0400
++++ configure.ac
+@@ -266,7 +266,7 @@ AC_CHECK_HEADERS(sys/time.h sys/socket.h
+ sys/mman.h fcntl.h sys/file.h stdlib.h stdint.h dnl
+ stdarg.h unistd.h signal.h stdio.h string.h dnl
+ strings.h ctype.h errno.h syslog.h pwd.h grp.h dnl
+- net/if_tun.h net/if.h stropts.h sys/sockio.h dnl
++ net/if_tap.h net/if_tun.h net/if.h stropts.h sys/sockio.h dnl
+ netinet/in.h netinet/in_systm.h netinet/ip.h dnl
+ netinet/if_ether.h netinet/tcp.h resolv.h arpa/inet.h dnl
+ netdb.h sys/uio.h linux/if_tun.h linux/sockios.h dnl
Index: patches/patch-af
===================================================================
RCS file: patches/patch-af
diff -N patches/patch-af
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-af 10 Apr 2006 04:21:32 -0000
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- configure.orig 2006-04-05 04:03:06.000000000 -0400
++++ configure
+@@ -4881,7 +4881,7 @@ fi
+
+
+
+-for ac_header in sys/time.h sys/socket.h sys/ioctl.h sys/stat.h
sys/mman.h fcntl.h sys/file.h stdlib.h stdint.h stdarg.h
unistd.h signal.h stdio.h string.h strings.h ctype.h errno.h
syslog.h pwd.h grp.h net/if_tun.h net/if.h stropts.h
sys/sockio.h netinet/in.h netinet/in_systm.h netinet/ip.h
netinet/if_ether.h netinet/tcp.h resolv.h arpa/inet.h netdb.h
sys/uio.h linux/if_tun.h linux/sockios.h linux/types.h
sys/poll.h sys/epoll.h
++for ac_header in sys/time.h sys/socket.h sys/ioctl.h sys/stat.h
sys/mman.h fcntl.h sys/file.h stdlib.h stdint.h stdarg.h
unistd.h signal.h stdio.h string.h strings.h ctype.h errno.h
syslog.h pwd.h grp.h net/if_tap.h net/if_tun.h net/if.h
stropts.h sys/sockio.h netinet/in.h netinet/in_systm.h
netinet/ip.h netinet/if_ether.h netinet/tcp.h resolv.h arpa/inet.h
netdb.h sys/uio.h linux/if_tun.h linux/sockios.h
linux/types.h sys/poll.h sys/epoll.h
+ do
+ as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ if eval "test \"\${$as_ac_Header+set}\" = set"; then
--SUOF0GtieIMvvwua--
Home |
Main Index |
Thread Index |
Old Index