Opened 3 years ago

Last modified 7 months ago

#947 assigned Bug / Defect

Solaris 11 and "error: no tap header could be found"

Reported by: noloader Owned by: Gert Döring
Priority: minor Milestone:
Component: Configuration Version: OpenVPN 2.4.4 (Community Ed)
Severity: Not set (select this one, unless your'e a OpenVPN developer) Keywords:
Cc:

Description

I'm working on an i86 based Solaris 11.3 machine. Running configure results in:

configure:15687: error: no tap header could be found

Inspecting config.log, it appears a Windows test or Linux test is triggering the failure (see below).

If I am parsing things properly, like bug reports and patches, Solaris patches were added several years ago around the 2.2 days. Confer, http://www.whiteboard.ne.jp/~admin2/tuntap/.

If Solaris is not supported, then please forgive my ignorance.


configure:15653: checking tap-windows.h presence
configure:15653: gcc -E -I/usr/local/include -DNDEBUG -D_XPG4_2 conftest.c
conftest.c:156:25: fatal error: tap-windows.h: No such file or directory
 #include <tap-windows.h>
                         ^
compilation terminated.
configure:15653: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "OpenVPN"
| #define PACKAGE_TARNAME "openvpn"
| #define PACKAGE_VERSION "2.4.4"
| #define PACKAGE_STRING "OpenVPN 2.4.4"
| #define PACKAGE_BUGREPORT "openvpn-users@lists.sourceforge.net"
| #define PACKAGE_URL ""
| #define OPENVPN_VERSION_RESOURCE 2,4,4,0
| #define OPENVPN_VERSION_MAJOR 2
| #define OPENVPN_VERSION_MINOR 4
| #define OPENVPN_VERSION_PATCH ".4"
| #define PACKAGE "openvpn"
| #define VERSION "2.4.4"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define __EXTENSIONS__ 1
| #define _ALL_SOURCE 1
| #define _GNU_SOURCE 1
| #define _POSIX_PTHREAD_SEMANTICS 1
| #define _TANDEM_SOURCE 1
| #define TARGET_ALIAS "i386-pc-solaris2.11"
| #define TARGET_SOLARIS 1
| #define TARGET_PREFIX "S"
| #define IFCONFIG_PATH "/sbin/ifconfig"
| #define IPROUTE_PATH ""
| #define ROUTE_PATH "/sbin/route"
| #define SYSTEMD_ASK_PASSWORD_PATH ""
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define RETSIGTYPE void
| #define HAVE_CPP_VARARG_MACRO_ISO 1
| #define HAVE_CPP_VARARG_MACRO_GCC 1
| #define EMPTY_ARRAY_SIZE 0
| #define SIZEOF_UNSIGNED_INT 4
| #define SIZEOF_UNSIGNED_LONG 8
| #define HAVE_STDIO_H 1
| #define HAVE_STDARG_H 1
| #define HAVE_LIMITS_H 1
| #define HAVE_TIME_H 1
| #define HAVE_ERRNO_H 1
| #define HAVE_FCNTL_H 1
| #define HAVE_CTYPE_H 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_SOCKET_H 1
| #define HAVE_SIGNAL_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DLFCN_H 1
| #define HAVE_NETINET_IN_H 1
| #define HAVE_NETINET_IN_SYSTM_H 1
| #define HAVE_NETINET_TCP_H 1
| #define HAVE_ARPA_INET_H 1
| #define HAVE_NETDB_H 1
| #define HAVE_SYS_TIME_H 1
| #define HAVE_SYS_IOCTL_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_SYS_MMAN_H 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_SYS_WAIT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_SIGNAL_H 1
| #define HAVE_LIBGEN_H 1
| #define HAVE_STROPTS_H 1
| #define HAVE_SYSLOG_H 1
| #define HAVE_PWD_H 1
| #define HAVE_GRP_H 1
| #define HAVE_SYS_SOCKIO_H 1
| #define HAVE_SYS_UIO_H 1
| #define HAVE_SYS_POLL_H 1
| #define HAVE_ERR_H 1
| #define HAVE_NET_IF_H 1
| #define HAVE_NETINET_IP_H 1
| #define HAVE_RESOLV_H 1
| #define HAVE_SYS_UN_H 1
| #define HAVE_IN_ADDR_T 1
| #define HAVE_IN_PORT_T 1
| #define HAVE_MSGHDR 1
| #define HAVE_CMSGHDR 1
| #define HAVE_IN_PKTINFO 1
| #define HAVE_SA_FAMILY_T 1
| #define HAVE_IPI_SPEC_DST 1
| #define HAVE_DECL_SO_MARK 0
| #define HAVE_ANONYMOUS_UNION_SUPPORT /**/
| #define HAVE_DECL_SIGHUP 1
| #define HAVE_DECL_SIGINT 1
| #define HAVE_DECL_SIGUSR1 1
| #define HAVE_DECL_SIGUSR2 1
| #define HAVE_DECL_SIGTERM 1
| #define HAVE_FORK 1
| #define HAVE_VFORK 1
| #define HAVE_WORKING_VFORK 1
| #define HAVE_WORKING_FORK 1
| #define HAVE_DAEMON 1
| #define HAVE_CHROOT 1
| #define HAVE_GETPWNAM 1
| #define HAVE_SETUID 1
| #define HAVE_NICE 1
| #define HAVE_SYSTEM 1
| #define HAVE_GETPID 1
| #define HAVE_DUP 1
| #define HAVE_DUP2 1
| #define HAVE_GETPASS 1
| #define HAVE_SYSLOG 1
| #define HAVE_OPENLOG 1
| #define HAVE_MLOCKALL 1
| #define HAVE_GETGRNAM 1
| #define HAVE_SETGID 1
| #define HAVE_SETGROUPS 1
| #define HAVE_STAT 1
| #define HAVE_READV 1
| #define HAVE_WRITEV 1
| #define HAVE_TIME 1
| #define HAVE_GETTIMEOFDAY 1
| #define HAVE_CTIME 1
| #define HAVE_MEMSET 1
| #define HAVE_VSNPRINTF 1
| #define HAVE_STRDUP 1
| #define HAVE_SETSID 1
| #define HAVE_CHDIR 1
| #define HAVE_PUTENV 1
| #define HAVE_UNLINK 1
| #define HAVE_FTRUNCATE 1
| #define HAVE_EXECVE 1
| #define HAVE_UMASK 1
| #define HAVE_BASENAME 1
| #define HAVE_DIRNAME 1
| #define HAVE_ACCESS 1
| #define HAVE_SENDMSG 1
| #define HAVE_RECVMSG 1
| #define HAVE_INET_NTOP 1
| #define HAVE_INET_PTON 1
| #define HAVE_SOCKET 1
| #define HAVE_RECV 1
| #define HAVE_RECVFROM 1
| #define HAVE_SEND 1
| #define HAVE_SENDTO 1
| #define HAVE_LISTEN 1
| #define HAVE_ACCEPT 1
| #define HAVE_CONNECT 1
| #define HAVE_BIND 1
| #define HAVE_SELECT 1
| #define HAVE_GETHOSTBYNAME 1
| #define HAVE_INET_NTOA 1
| #define HAVE_SETSOCKOPT 1
| #define HAVE_GETSOCKOPT 1
| #define HAVE_GETSOCKNAME 1
| #define HAVE_POLL 1
| /* end confdefs.h.  */
| #include <tap-windows.h>
configure:15653: result: no
configure:15653: checking for tap-windows.h
configure:15653: result: no
configure:15664: checking whether TUNSETPERSIST is declared
configure:15664: gcc -c -m64 -std=c99  -I/usr/local/include -DNDEBUG -D_XPG4_2 conftest.c >&5
conftest.c: In function 'main':
conftest.c:170:10: error: 'TUNSETPERSIST' undeclared (first use in this function)
   (void) TUNSETPERSIST;
          ^
conftest.c:170:10: note: each undeclared identifier is reported only once for each function it appears in
configure:15664: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "OpenVPN"
| #define PACKAGE_TARNAME "openvpn"
| #define PACKAGE_VERSION "2.4.4"
| #define PACKAGE_STRING "OpenVPN 2.4.4"
| #define PACKAGE_BUGREPORT "openvpn-users@lists.sourceforge.net"
| #define PACKAGE_URL ""
| #define OPENVPN_VERSION_RESOURCE 2,4,4,0
| #define OPENVPN_VERSION_MAJOR 2
| #define OPENVPN_VERSION_MINOR 4
| #define OPENVPN_VERSION_PATCH ".4"
| #define PACKAGE "openvpn"
| #define VERSION "2.4.4"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define __EXTENSIONS__ 1
| #define _ALL_SOURCE 1
| #define _GNU_SOURCE 1
| #define _POSIX_PTHREAD_SEMANTICS 1
| #define _TANDEM_SOURCE 1
| #define TARGET_ALIAS "i386-pc-solaris2.11"
| #define TARGET_SOLARIS 1
| #define TARGET_PREFIX "S"
| #define IFCONFIG_PATH "/sbin/ifconfig"
| #define IPROUTE_PATH ""
| #define ROUTE_PATH "/sbin/route"
| #define SYSTEMD_ASK_PASSWORD_PATH ""
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define RETSIGTYPE void
| #define HAVE_CPP_VARARG_MACRO_ISO 1
| #define HAVE_CPP_VARARG_MACRO_GCC 1
| #define EMPTY_ARRAY_SIZE 0
| #define SIZEOF_UNSIGNED_INT 4
| #define SIZEOF_UNSIGNED_LONG 8
| #define HAVE_STDIO_H 1
| #define HAVE_STDARG_H 1
| #define HAVE_LIMITS_H 1
| #define HAVE_TIME_H 1
| #define HAVE_ERRNO_H 1
| #define HAVE_FCNTL_H 1
| #define HAVE_CTYPE_H 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_SOCKET_H 1
| #define HAVE_SIGNAL_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DLFCN_H 1
| #define HAVE_NETINET_IN_H 1
| #define HAVE_NETINET_IN_SYSTM_H 1
| #define HAVE_NETINET_TCP_H 1
| #define HAVE_ARPA_INET_H 1
| #define HAVE_NETDB_H 1
| #define HAVE_SYS_TIME_H 1
| #define HAVE_SYS_IOCTL_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_SYS_MMAN_H 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_SYS_WAIT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_SIGNAL_H 1
| #define HAVE_LIBGEN_H 1
| #define HAVE_STROPTS_H 1
| #define HAVE_SYSLOG_H 1
| #define HAVE_PWD_H 1
| #define HAVE_GRP_H 1
| #define HAVE_SYS_SOCKIO_H 1
| #define HAVE_SYS_UIO_H 1
| #define HAVE_SYS_POLL_H 1
| #define HAVE_ERR_H 1
| #define HAVE_NET_IF_H 1
| #define HAVE_NETINET_IP_H 1
| #define HAVE_RESOLV_H 1
| #define HAVE_SYS_UN_H 1
| #define HAVE_IN_ADDR_T 1
| #define HAVE_IN_PORT_T 1
| #define HAVE_MSGHDR 1
| #define HAVE_CMSGHDR 1
| #define HAVE_IN_PKTINFO 1
| #define HAVE_SA_FAMILY_T 1
| #define HAVE_IPI_SPEC_DST 1
| #define HAVE_DECL_SO_MARK 0
| #define HAVE_ANONYMOUS_UNION_SUPPORT /**/
| #define HAVE_DECL_SIGHUP 1
| #define HAVE_DECL_SIGINT 1
| #define HAVE_DECL_SIGUSR1 1
| #define HAVE_DECL_SIGUSR2 1
| #define HAVE_DECL_SIGTERM 1
| #define HAVE_FORK 1
| #define HAVE_VFORK 1
| #define HAVE_WORKING_VFORK 1
| #define HAVE_WORKING_FORK 1
| #define HAVE_DAEMON 1
| #define HAVE_CHROOT 1
| #define HAVE_GETPWNAM 1
| #define HAVE_SETUID 1
| #define HAVE_NICE 1
| #define HAVE_SYSTEM 1
| #define HAVE_GETPID 1
| #define HAVE_DUP 1
| #define HAVE_DUP2 1
| #define HAVE_GETPASS 1
| #define HAVE_SYSLOG 1
| #define HAVE_OPENLOG 1
| #define HAVE_MLOCKALL 1
| #define HAVE_GETGRNAM 1
| #define HAVE_SETGID 1
| #define HAVE_SETGROUPS 1
| #define HAVE_STAT 1
| #define HAVE_READV 1
| #define HAVE_WRITEV 1
| #define HAVE_TIME 1
| #define HAVE_GETTIMEOFDAY 1
| #define HAVE_CTIME 1
| #define HAVE_MEMSET 1
| #define HAVE_VSNPRINTF 1
| #define HAVE_STRDUP 1
| #define HAVE_SETSID 1
| #define HAVE_CHDIR 1
| #define HAVE_PUTENV 1
| #define HAVE_UNLINK 1
| #define HAVE_FTRUNCATE 1
| #define HAVE_EXECVE 1
| #define HAVE_UMASK 1
| #define HAVE_BASENAME 1
| #define HAVE_DIRNAME 1
| #define HAVE_ACCESS 1
| #define HAVE_SENDMSG 1
| #define HAVE_RECVMSG 1
| #define HAVE_INET_NTOP 1
| #define HAVE_INET_PTON 1
| #define HAVE_SOCKET 1
| #define HAVE_RECV 1
| #define HAVE_RECVFROM 1
| #define HAVE_SEND 1
| #define HAVE_SENDTO 1
| #define HAVE_LISTEN 1
| #define HAVE_ACCEPT 1
| #define HAVE_CONNECT 1
| #define HAVE_BIND 1
| #define HAVE_SELECT 1
| #define HAVE_GETHOSTBYNAME 1
| #define HAVE_INET_NTOA 1
| #define HAVE_SETSOCKOPT 1
| #define HAVE_GETSOCKOPT 1
| #define HAVE_GETSOCKNAME 1
| #define HAVE_POLL 1
| /* end confdefs.h.  */
|
|               #ifdef HAVE_LINUX_IF_TUN_H
|               #include <linux/if_tun.h>
|               #endif
|
|
|
| int
| main ()
| {
| #ifndef TUNSETPERSIST
| #ifdef __cplusplus
|   (void) TUNSETPERSIST;
| #else
|   (void) TUNSETPERSIST;
| #endif
| #endif
|
|   ;
|   return 0;
| }
configure:15664: result: no
configure:15687: error: no tap header could be found

Change History (3)

comment:1 Changed 3 years ago by Antonio

Owner: set to Gert Döring
Status: newassigned

comment:2 Changed 3 years ago by Gert Döring

If I remember right, you have to install the tun driver on Solaris first... as per the URL you found, http://www.whiteboard.ne.jp/~admin2/tuntap/, right at the top, section "TAP driver" .-)

The OpenVPN side of things has been merged, so if there is a tap driver installed, OpenVPN should find and use it without further patching needed. We do not have access to a most recent Solaris version, but from what I hear on the openvpn-devel, it should work nevertheless (we test on a older OpenSolaris? version).

comment:3 Changed 7 months ago by Gert Döring

This is still somewhat of an itch. I tried OpenIndiana? 2019 recently, and while it has a package for the tap driver, that package is missing the header file - which can be copied from the package above. But really should be included.

Note: See TracTickets for help on using tickets.