aboutsummaryrefslogtreecommitdiffstats
path: root/main/open-vm-tools
diff options
context:
space:
mode:
Diffstat (limited to 'main/open-vm-tools')
-rw-r--r--main/open-vm-tools/0001-lib-misc-Recognize-Alpine-Linux.patch43
-rw-r--r--main/open-vm-tools/0002-open-vm-tools-Add-disable-werror-configure-option.patch39
-rw-r--r--main/open-vm-tools/0003-Do-not-assume-that-linux-and-gnu-libc-are-the-same-t.patch46
-rw-r--r--main/open-vm-tools/0004-Use-configure-test-for-struct-timespec.patch48
-rw-r--r--main/open-vm-tools/0005-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch61
-rw-r--r--main/open-vm-tools/0006-Use-configure-to-test-for-feature-instead-of-platfor.patch192
-rw-r--r--main/open-vm-tools/0007-Fix-vmblock-linux-detection.patch28
-rw-r--r--main/open-vm-tools/0008-Use-configure-test-for-sys-stat.h-include.patch28
-rw-r--r--main/open-vm-tools/0009-Rename-poll.h-to-vm_poll.h.patch763
-rw-r--r--main/open-vm-tools/0010-Add-support-for-building-with-system-libtirpc.patch258
-rw-r--r--main/open-vm-tools/0011-gnu-ucontext.patch43
-rw-r--r--main/open-vm-tools/APKBUILD119
-rw-r--r--main/open-vm-tools/fts.patch21
-rw-r--r--main/open-vm-tools/linux-is-not-gnu.patch11
-rw-r--r--main/open-vm-tools/musl-regs.patch95
-rw-r--r--main/open-vm-tools/posix-perms.patch33
-rw-r--r--main/open-vm-tools/setresuid.patch50
-rw-r--r--main/open-vm-tools/struct_timespec.patch27
-rw-r--r--main/open-vm-tools/sys-stat.patch11
-rw-r--r--main/open-vm-tools/tirpc.patch192
-rw-r--r--main/open-vm-tools/werror.patch10
21 files changed, 1589 insertions, 529 deletions
diff --git a/main/open-vm-tools/0001-lib-misc-Recognize-Alpine-Linux.patch b/main/open-vm-tools/0001-lib-misc-Recognize-Alpine-Linux.patch
index b713137126..3674fd4456 100644
--- a/main/open-vm-tools/0001-lib-misc-Recognize-Alpine-Linux.patch
+++ b/main/open-vm-tools/0001-lib-misc-Recognize-Alpine-Linux.patch
@@ -1,38 +1,39 @@
-From 70438337a96f53019bfb3b5b928d9a9ab8067d64 Mon Sep 17 00:00:00 2001
+From 00a3692ad782758d95994798e038d6d6c3104d93 Mon Sep 17 00:00:00 2001
From: Natanael Copa <ncopa@alpinelinux.org>
-Date: Mon, 2 Jul 2012 15:48:35 +0200
-Subject: [PATCH] lib/misc: Recognize Alpine Linux
+Date: Thu, 5 Nov 2015 13:09:34 +0000
+Subject: [PATCH 01/11] lib/misc: Recognize Alpine Linux
+Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
---
- lib/include/guest_os.h | 1 +
- lib/misc/hostinfoPosix.c | 3 +++
+ open-vm-tools/lib/include/guest_os.h | 1 +
+ open-vm-tools/lib/misc/hostinfoPosix.c | 3 +++
2 files changed, 4 insertions(+)
-diff --git a/lib/include/guest_os.h b/open-vm-tools/lib/include/guest_os.h
-index ffced6d..49f30eb 100644
---- a/lib/include/guest_os.h
-+++ b/lib/include/guest_os.h
-@@ -152,6 +152,7 @@ typedef enum GuestOSFamilyType {
- #define STR_OS_ESX_5 "VMware ESX 5"
+diff --git a/open-vm-tools/lib/include/guest_os.h b/open-vm-tools/lib/include/guest_os.h
+index d5d190a..c788991 100644
+--- a/open-vm-tools/lib/include/guest_os.h
++++ b/open-vm-tools/lib/include/guest_os.h
+@@ -192,6 +192,7 @@ Bool Gos_InSetArray(uint32 gos, const uint32 *set);
+ #define STR_OS_ESX_6 "VMware ESX 6"
/* Linux */
+#define STR_OS_ALPINE "Alpine"
#define STR_OS_ANNVIX "Annvix"
#define STR_OS_ARCH "Arch"
#define STR_OS_ARKLINUX "Arklinux"
-diff --git a/lib/misc/hostinfoPosix.c b/open-vm-tools/lib/misc/hostinfoPosix.c
-index 8fa18cc..9874c2a 100644
---- a/lib/misc/hostinfoPosix.c
-+++ b/lib/misc/hostinfoPosix.c
-@@ -185,6 +185,7 @@ static const DistroInfo distroArray[] = {
- {"Gentoo", "/etc/gentoo-release"},
- {"Novell", "/etc/nld-release"},
- {"Ubuntu", "/etc/lsb-release"},
+diff --git a/open-vm-tools/lib/misc/hostinfoPosix.c b/open-vm-tools/lib/misc/hostinfoPosix.c
+index a9e7d6c..c5336c4 100644
+--- a/open-vm-tools/lib/misc/hostinfoPosix.c
++++ b/open-vm-tools/lib/misc/hostinfoPosix.c
+@@ -176,6 +176,7 @@ typedef struct distro_info {
+
+ /* KEEP SORTED! (sort -d) */
+ static const DistroInfo distroArray[] = {
+ {"Alpine", "/etc/alpine-release"},
{"Annvix", "/etc/annvix-release"},
{"Arch", "/etc/arch-release"},
{"Arklinux", "/etc/arklinux-release"},
-@@ -545,6 +546,8 @@ HostinfoGetOSShortName(char *distro, // IN: full distro name
+@@ -558,6 +559,8 @@ HostinfoGetOSShortName(char *distro, // IN: full distro name
Str_Strcpy(distroShort, STR_OS_TURBO, distroShortSize);
} else if (strstr(distroLower, "sun")) {
Str_Strcpy(distroShort, STR_OS_SUN_DESK, distroShortSize);
@@ -42,5 +43,5 @@ index 8fa18cc..9874c2a 100644
Str_Strcpy(distroShort, STR_OS_ANNVIX, distroShortSize);
} else if (strstr(distroLower, "arch")) {
--
-1.7.11.1
+2.6.3
diff --git a/main/open-vm-tools/0002-open-vm-tools-Add-disable-werror-configure-option.patch b/main/open-vm-tools/0002-open-vm-tools-Add-disable-werror-configure-option.patch
new file mode 100644
index 0000000000..0c989cd7e5
--- /dev/null
+++ b/main/open-vm-tools/0002-open-vm-tools-Add-disable-werror-configure-option.patch
@@ -0,0 +1,39 @@
+From 854943f4c0df6ae015fc1852c9aee4ccca0008fd Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Thu, 5 Nov 2015 13:19:20 +0000
+Subject: [PATCH 02/11] open-vm-tools: Add --disable-werror configure option
+
+Packagers will normally not want the -Werror compile option as it may
+break compilation depending on the platform specific warnings.
+
+Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
+---
+ open-vm-tools/configure.ac | 12 +++++++++++-
+ 1 file changed, 11 insertions(+), 1 deletion(-)
+
+diff --git a/open-vm-tools/configure.ac b/open-vm-tools/configure.ac
+index ebdf17c..810555c 100644
+--- a/open-vm-tools/configure.ac
++++ b/open-vm-tools/configure.ac
+@@ -935,7 +935,17 @@ AC_C_VOLATILE
+
+ ### General flags / actions
+ CFLAGS="$CFLAGS -Wall"
+-CFLAGS="$CFLAGS -Werror"
++AC_ARG_ENABLE(
++ werror,
++ AS_HELP_STRING(
++ [--disable-werror],
++ [disable compilation with -Werror]),
++ [enable_werror="$enableval"],
++ [enable_werror="yes"])
++
++if test "$enable_werror" = "yes"; then
++ CFLAGS="$CFLAGS -Werror"
++fi
+
+ # -Wno-unknown-pragmas is due to gcc not understanding '#pragma ident'
+ # in Xlib.h on OpenSolaris.
+--
+2.6.3
+
diff --git a/main/open-vm-tools/0003-Do-not-assume-that-linux-and-gnu-libc-are-the-same-t.patch b/main/open-vm-tools/0003-Do-not-assume-that-linux-and-gnu-libc-are-the-same-t.patch
new file mode 100644
index 0000000000..55ee28a6bc
--- /dev/null
+++ b/main/open-vm-tools/0003-Do-not-assume-that-linux-and-gnu-libc-are-the-same-t.patch
@@ -0,0 +1,46 @@
+From 7be57bd68c323840119a3366fea297d6c81cc32c Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Tue, 17 Nov 2015 10:39:01 +0000
+Subject: [PATCH 03/11] Do not assume that linux and gnu libc are the same
+ thing
+
+Use __GLIBC__ when testing for GNU libc specific things instead of
+assuming that __linux__ is GNU libc.
+
+This is needed for building with musl libc.
+
+Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
+---
+ open-vm-tools/lib/file/fileIOPosix.c | 2 +-
+ open-vm-tools/lib/include/vm_basic_defs.h | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/open-vm-tools/lib/file/fileIOPosix.c b/open-vm-tools/lib/file/fileIOPosix.c
+index 18aa641..8f19239 100644
+--- a/open-vm-tools/lib/file/fileIOPosix.c
++++ b/open-vm-tools/lib/file/fileIOPosix.c
+@@ -205,7 +205,7 @@ static AlignedPool alignedPool;
+ * are not available in any header file.
+ */
+
+-#if defined(__linux__) && !defined(__ANDROID__)
++#if defined(__linux__) && defined(__GLIBC__)
+ #if defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS == 64)
+ /*
+ * We want preadv/pwritev. But due to FOB=64, the symbols are -64.
+diff --git a/open-vm-tools/lib/include/vm_basic_defs.h b/open-vm-tools/lib/include/vm_basic_defs.h
+index 81c5e21..b70cd05 100644
+--- a/open-vm-tools/lib/include/vm_basic_defs.h
++++ b/open-vm-tools/lib/include/vm_basic_defs.h
+@@ -552,7 +552,7 @@ typedef int pid_t;
+ #endif
+ #endif
+
+-#if defined __linux__ && !defined __KERNEL__ && !defined MODULE && \
++#if defined __GLIBC__ && !defined __KERNEL__ && !defined MODULE && \
+ !defined VMM && !defined FROBOS && !defined __ANDROID__
+ #include <features.h>
+ #if __GLIBC_PREREQ(2, 1) && !defined GLIBC_VERSION_21
+--
+2.6.3
+
diff --git a/main/open-vm-tools/0004-Use-configure-test-for-struct-timespec.patch b/main/open-vm-tools/0004-Use-configure-test-for-struct-timespec.patch
new file mode 100644
index 0000000000..5aca7d4764
--- /dev/null
+++ b/main/open-vm-tools/0004-Use-configure-test-for-struct-timespec.patch
@@ -0,0 +1,48 @@
+From eed7a9d80283b8bfd6ed334f86e186ea2b1c26a5 Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Wed, 18 Nov 2015 09:03:00 +0000
+Subject: [PATCH 04/11] Use configure test for struct timespec
+
+Use the configure script to test for struct time spec instead of trying
+to keep track of what platforms has it.
+
+Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
+---
+ open-vm-tools/configure.ac | 1 +
+ open-vm-tools/lib/include/hgfsUtil.h | 8 +-------
+ 2 files changed, 2 insertions(+), 7 deletions(-)
+
+diff --git a/open-vm-tools/configure.ac b/open-vm-tools/configure.ac
+index 810555c..037679d 100644
+--- a/open-vm-tools/configure.ac
++++ b/open-vm-tools/configure.ac
+@@ -925,6 +925,7 @@ AC_TYPE_OFF_T
+ AC_TYPE_PID_T
+ AC_TYPE_SIZE_T
+ AC_CHECK_MEMBERS([struct stat.st_rdev])
++AC_CHECK_MEMBERS([struct timespec.tv_sec],[],[],[[#include <time.h>]])
+ AC_HEADER_TIME
+ AC_STRUCT_TM
+ AC_C_VOLATILE
+diff --git a/open-vm-tools/lib/include/hgfsUtil.h b/open-vm-tools/lib/include/hgfsUtil.h
+index 8dddb4d..e53b0aa 100644
+--- a/open-vm-tools/lib/include/hgfsUtil.h
++++ b/open-vm-tools/lib/include/hgfsUtil.h
+@@ -53,13 +53,7 @@
+ # include <time.h>
+ # endif
+ # include "vm_basic_types.h"
+-# if !defined _STRUCT_TIMESPEC && \
+- !defined _TIMESPEC_DECLARED && \
+- !defined __timespec_defined && \
+- !defined sun && \
+- !defined __FreeBSD__ && \
+- !__APPLE__ && \
+- !defined _WIN32
++# if !defined HAVE_STRUCT_TIMESPEC_TV_SEC
+ struct timespec {
+ time_t tv_sec;
+ long tv_nsec;
+--
+2.6.3
+
diff --git a/main/open-vm-tools/0005-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch b/main/open-vm-tools/0005-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch
new file mode 100644
index 0000000000..99cb0d9285
--- /dev/null
+++ b/main/open-vm-tools/0005-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch
@@ -0,0 +1,61 @@
+From 86e194a22f7aa8cedd075ba66f18c76d4f521734 Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Wed, 18 Nov 2015 09:10:14 +0000
+Subject: [PATCH 05/11] Fix definition of ALLPERMS and ACCESSPERMS
+
+The ALLPERMS and ACCESSPERMS defines are not specified in POSIX so
+assume it is not there instead of testing for specific implementations.
+
+This is needed for musl libc.
+
+Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
+---
+ open-vm-tools/lib/hgfsServer/hgfsServerLinux.c | 8 +++++---
+ open-vm-tools/services/plugins/dndcp/dnd/dndLinux.c | 3 +--
+ 2 files changed, 6 insertions(+), 5 deletions(-)
+
+diff --git a/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c b/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
+index b874ce9..8d89644 100644
+--- a/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
++++ b/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
+@@ -107,11 +107,13 @@ typedef struct DirectoryEntry {
+ #endif
+
+ /*
+- * ALLPERMS (mode 07777) and ACCESSPERMS (mode 0777) are not defined in the
+- * Solaris version of <sys/stat.h>.
++ * ALLPERMS (mode 07777) and ACCESSPERMS (mode 0777) are not specified in
++ * POSIX.
+ */
+-#ifdef sun
++#ifndef ACCESSPERMS
+ # define ACCESSPERMS (S_IRWXU|S_IRWXG|S_IRWXO)
++#endif
++#ifndef ALLPERMS
+ # define ALLPERMS (S_ISUID|S_ISGID|S_ISVTX|S_IRWXU|S_IRWXG|S_IRWXO)
+ #endif
+
+diff --git a/open-vm-tools/services/plugins/dndcp/dnd/dndLinux.c b/open-vm-tools/services/plugins/dndcp/dnd/dndLinux.c
+index 133219c..4afa702 100644
+--- a/open-vm-tools/services/plugins/dndcp/dnd/dndLinux.c
++++ b/open-vm-tools/services/plugins/dndcp/dnd/dndLinux.c
+@@ -51,7 +51,7 @@
+
+ #define DND_ROOTDIR_PERMS (S_IRWXU | S_IRWXG | S_IRWXO)
+ #define DND_STAGINGDIR_PERMS (S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH)
+-#ifdef sun
++#ifndef ACCESSPERMS
+ #define ACCESSPERMS (S_IRWXU | S_IRWXG | S_IRWXO)
+ #endif
+ #ifdef __ANDROID__
+@@ -60,7 +60,6 @@
+ */
+ #define NO_SETMNTENT
+ #define NO_ENDMNTENT
+-#define ACCESSPERMS (S_IRWXU | S_IRWXG | S_IRWXO)
+ #endif
+
+
+--
+2.6.3
+
diff --git a/main/open-vm-tools/0006-Use-configure-to-test-for-feature-instead-of-platfor.patch b/main/open-vm-tools/0006-Use-configure-to-test-for-feature-instead-of-platfor.patch
new file mode 100644
index 0000000000..33e720d674
--- /dev/null
+++ b/main/open-vm-tools/0006-Use-configure-to-test-for-feature-instead-of-platfor.patch
@@ -0,0 +1,192 @@
+From 1a6d86a39e8ac164074ed8e0be116e7c07bb886d Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Wed, 18 Nov 2015 10:05:07 +0000
+Subject: [PATCH 06/11] Use configure to test for feature instead of platform
+
+Test for various functions instead of trying to keep track of what
+platform and what version of the given platform has support for what.
+
+This should make it easier to port to currently unknown platforms and
+will solve the issue if a platform add support for a missing feature in
+the future.
+
+The features we test for are:
+- getifaddrs
+- getauxval
+- setresuid
+- setresgid
+- issetugid
+- __secure_getenv
+
+This is needed for musl libc.
+
+Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
+---
+ open-vm-tools/configure.ac | 4 ++++
+ open-vm-tools/lib/misc/idLinux.c | 30 ++++++++++++++----------------
+ open-vm-tools/lib/nicInfo/nicInfoPosix.c | 8 ++++++--
+ open-vm-tools/lib/procMgr/procMgrPosix.c | 9 ++++++---
+ 4 files changed, 30 insertions(+), 21 deletions(-)
+
+diff --git a/open-vm-tools/configure.ac b/open-vm-tools/configure.ac
+index 037679d..f474150 100644
+--- a/open-vm-tools/configure.ac
++++ b/open-vm-tools/configure.ac
+@@ -644,6 +644,7 @@ AC_CHECK_FUNCS(
+
+ AC_CHECK_FUNCS([ecvt])
+ AC_CHECK_FUNCS([fcvt])
++AC_CHECK_FUNCS([getifaddrs getauxval setresuid setresgid issetugid __secure_getenv])
+
+ if test "$os" = "freebsd" -a "$osVersion" -ge 600000; then
+ AC_CHECK_LIB(
+@@ -861,10 +862,13 @@ AC_PATH_PROG(
+ ###
+
+ AC_CHECK_HEADERS([crypt.h])
++AC_CHECK_HEADERS([ifaddrs.h])
+ AC_CHECK_HEADERS([inttypes.h])
+ AC_CHECK_HEADERS([stdint.h])
+ AC_CHECK_HEADERS([stdlib.h])
+ AC_CHECK_HEADERS([wchar.h])
++AC_CHECK_HEADERS([net/if.h])
++AC_CHECK_HEADERS([sys/auxv.h])
+ AC_CHECK_HEADERS([sys/inttypes.h])
+ AC_CHECK_HEADERS([sys/io.h])
+ AC_CHECK_HEADERS([sys/param.h]) # Required to make the sys/user.h check work correctly on FreeBSD
+diff --git a/open-vm-tools/lib/misc/idLinux.c b/open-vm-tools/lib/misc/idLinux.c
+index 58bcb53..a7d859f 100644
+--- a/open-vm-tools/lib/misc/idLinux.c
++++ b/open-vm-tools/lib/misc/idLinux.c
+@@ -27,12 +27,9 @@
+ #include <sys/syscall.h>
+ #include <string.h>
+ #include <unistd.h>
+-#ifdef __linux__
+-#if defined(__GLIBC__) && \
+- (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 16))
++#ifdef HAVE_SYS_AUXV_H
+ #include <sys/auxv.h>
+ #endif
+-#endif
+ #ifdef __APPLE__
+ #include <sys/socket.h>
+ #include <TargetConditionals.h>
+@@ -997,31 +994,32 @@ Id_EndSuperUser(uid_t uid) // IN:
+ static Bool
+ IdIsSetUGid(void)
+ {
+-#if defined(__ANDROID__)
+- /* Android does not have a secure_getenv, so be conservative. */
+- return TRUE;
+-#else
+ /*
+ * We use __secure_getenv, which returns NULL if the binary is
+- * setuid or setgid. Alternatives include,
++ * setuid or setgid, when issetugid or getauxval(AT_SECURE) is not
++ * available. Alternatives include,
+ *
+- * a) getauxval(AT_SECURE); not available until glibc 2.16.
+- * b) __libc_enable_secure; may not be exported.
++ * a) issetugid(); not (yet?) available in glibc.
++ * b) getauxval(AT_SECURE); not available until glibc 2.16.
++ * c) __libc_enable_secure; may not be exported.
+ *
+- * Use (a) when we are based on glibc 2.16, or newer.
++ * Use (b) when we are based on glibc 2.16, or newer.
+ */
+
+-#if defined(__GLIBC__) && \
+- (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 16))
++#if HAVE_ISSETUGID
++ return issetugid();
++#elif HAVE_GETAUXVAL
+ return getauxval(AT_SECURE) != 0;
+-#else
++#elif HAVE___SECURE_GETENV
+ static const char envName[] = "VMW_SETUGID_TEST";
+
+ if (setenv(envName, "1", TRUE) == -1) {
+ return TRUE; /* Conservative */
+ }
+ return __secure_getenv(envName) == NULL;
+-#endif
++#else
++ /* Android does not have a secure_getenv, so be conservative. */
++ return TRUE;
+ #endif
+ }
+ #endif
+diff --git a/open-vm-tools/lib/nicInfo/nicInfoPosix.c b/open-vm-tools/lib/nicInfo/nicInfoPosix.c
+index 4324637..e7ff9a2 100644
+--- a/open-vm-tools/lib/nicInfo/nicInfoPosix.c
++++ b/open-vm-tools/lib/nicInfo/nicInfoPosix.c
+@@ -34,9 +34,13 @@
+ #include <sys/socket.h>
+ #include <sys/stat.h>
+ #include <errno.h>
+-#if defined(__FreeBSD__) || defined(__APPLE__)
++#if HAVE_SYS_SYSCTL_H
+ # include <sys/sysctl.h>
++#endif
++#if HAVE_IFADDRS_H
+ # include <ifaddrs.h>
++#endif
++#if HAVE_NET_IF_H
+ # include <net/if.h>
+ #endif
+ #ifndef NO_DNET
+@@ -280,7 +284,7 @@ GuestInfoGetNicInfo(NicInfoV3 *nicInfo) // OUT
+ *
+ ******************************************************************************
+ */
+-#if defined(__FreeBSD__) || defined(__APPLE__) || defined(USERWORLD)
++#if defined(NO_DNET) && defined(HAVE_GETIFADDRS)
+
+ char *
+ GuestInfoGetPrimaryIP(void)
+diff --git a/open-vm-tools/lib/procMgr/procMgrPosix.c b/open-vm-tools/lib/procMgr/procMgrPosix.c
+index d0e78a4..5038b75 100644
+--- a/open-vm-tools/lib/procMgr/procMgrPosix.c
++++ b/open-vm-tools/lib/procMgr/procMgrPosix.c
+@@ -137,7 +137,7 @@ static int ProcMgrGetCommandLineArgs(long pid,
+ #define BASH_PATH "/bin/bash"
+ #endif
+
+-#if defined(linux) && !defined(GLIBC_VERSION_23) && !defined(__UCLIBC__)
++#if defined(linux)
+ /*
+ * Implements the system calls (they are not wrapped by glibc til 2.3.2).
+ *
+@@ -146,7 +146,7 @@ static int ProcMgrGetCommandLineArgs(long pid,
+ *
+ * (In fact, newer Linux kernels don't even define _syscall macros anymore.)
+ */
+-
++#ifndef HAVE_SETRESUID
+ static INLINE int
+ setresuid(uid_t ruid,
+ uid_t euid,
+@@ -154,8 +154,9 @@ setresuid(uid_t ruid,
+ {
+ return syscall(__NR_setresuid, ruid, euid, suid);
+ }
++#endif
+
+-
++#ifndef HAVE_SETRESGID
+ static INLINE int
+ setresgid(gid_t ruid,
+ gid_t euid,
+@@ -165,6 +166,8 @@ setresgid(gid_t ruid,
+ }
+ #endif
+
++#endif
++
+
+ /*
+ *----------------------------------------------------------------------
+--
+2.6.3
+
diff --git a/main/open-vm-tools/0007-Fix-vmblock-linux-detection.patch b/main/open-vm-tools/0007-Fix-vmblock-linux-detection.patch
new file mode 100644
index 0000000000..35edc6f8dc
--- /dev/null
+++ b/main/open-vm-tools/0007-Fix-vmblock-linux-detection.patch
@@ -0,0 +1,28 @@
+From 4c4cc27681860746249218d5ee12e5acd21985ca Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Wed, 18 Nov 2015 10:37:14 +0000
+Subject: [PATCH 07/11] Fix vmblock linux detection
+
+This is needed for musl libc.
+
+Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
+---
+ open-vm-tools/lib/include/vmblock.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/open-vm-tools/lib/include/vmblock.h b/open-vm-tools/lib/include/vmblock.h
+index 8dbb0ce..541fd46 100644
+--- a/open-vm-tools/lib/include/vmblock.h
++++ b/open-vm-tools/lib/include/vmblock.h
+@@ -145,7 +145,7 @@
+ # define VMBLOCK_DEVICE_MODE VMBLOCK_FUSE_DEVICE_MODE
+ # define VMBLOCK_MOUNT_POINT VMBLOCK_FUSE_MOUNT_POINT
+
+-#elif defined(linux)
++#elif defined(__linux__)
+ # define VMBLOCK_ADD_FILEBLOCK 98
+ # define VMBLOCK_DEL_FILEBLOCK 99
+ # ifdef VMX86_DEVEL
+--
+2.6.3
+
diff --git a/main/open-vm-tools/0008-Use-configure-test-for-sys-stat.h-include.patch b/main/open-vm-tools/0008-Use-configure-test-for-sys-stat.h-include.patch
new file mode 100644
index 0000000000..cbcc0531d0
--- /dev/null
+++ b/main/open-vm-tools/0008-Use-configure-test-for-sys-stat.h-include.patch
@@ -0,0 +1,28 @@
+From 2ae2d54491b5148f0a1a6bc5072bf24f3e28de16 Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Wed, 18 Nov 2015 10:41:01 +0000
+Subject: [PATCH 08/11] Use configure test for sys/stat.h include
+
+This is needed for musl libc.
+
+Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
+---
+ open-vm-tools/services/plugins/vix/vixTools.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/open-vm-tools/services/plugins/vix/vixTools.c b/open-vm-tools/services/plugins/vix/vixTools.c
+index 3b19554..17733cb 100644
+--- a/open-vm-tools/services/plugins/vix/vixTools.c
++++ b/open-vm-tools/services/plugins/vix/vixTools.c
+@@ -66,7 +66,7 @@
+ #include <unistd.h>
+ #endif
+
+-#if defined(sun) || defined(__FreeBSD__) || defined(__APPLE__)
++#ifdef HAVE_SYS_STAT_H
+ #include <sys/stat.h>
+ #endif
+
+--
+2.6.3
+
diff --git a/main/open-vm-tools/0009-Rename-poll.h-to-vm_poll.h.patch b/main/open-vm-tools/0009-Rename-poll.h-to-vm_poll.h.patch
new file mode 100644
index 0000000000..0a4e22f3e1
--- /dev/null
+++ b/main/open-vm-tools/0009-Rename-poll.h-to-vm_poll.h.patch
@@ -0,0 +1,763 @@
+From 6accc22a50c51ab720a8b29740ccd928e6fb7f1e Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Tue, 17 Nov 2015 10:57:31 +0000
+Subject: [PATCH 09/11] Rename poll.h to vm_poll.h
+
+musl libc's system headers pulls in open-vm-tools' poll.h. To avoid this
+we rename poll.h to vm_poll.h.
+
+Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
+---
+ open-vm-tools/lib/asyncsocket/asyncsocket.c | 2 +-
+ open-vm-tools/lib/hgfsServer/hgfsServer.c | 2 +-
+ open-vm-tools/lib/include/asyncsocket.h | 2 +-
+ open-vm-tools/lib/include/poll.h | 324 ---------------------
+ open-vm-tools/lib/include/pollImpl.h | 2 +-
+ open-vm-tools/lib/include/vm_poll.h | 324 +++++++++++++++++++++
+ open-vm-tools/lib/rpcIn/rpcin.c | 2 +-
+ .../plugins/grabbitmqProxy/grabbitmqProxyPlugin.c | 2 +-
+ 8 files changed, 330 insertions(+), 330 deletions(-)
+ delete mode 100644 open-vm-tools/lib/include/poll.h
+ create mode 100644 open-vm-tools/lib/include/vm_poll.h
+
+diff --git a/open-vm-tools/lib/asyncsocket/asyncsocket.c b/open-vm-tools/lib/asyncsocket/asyncsocket.c
+index 05f217a..a24e356 100644
+--- a/open-vm-tools/lib/asyncsocket/asyncsocket.c
++++ b/open-vm-tools/lib/asyncsocket/asyncsocket.c
+@@ -52,7 +52,7 @@
+ #include "vmware.h"
+ #include "asyncsocket.h"
+ #include "asyncSocketInt.h"
+-#include "poll.h"
++#include "vm_poll.h"
+ #include "log.h"
+ #include "err.h"
+ #include "hostinfo.h"
+diff --git a/open-vm-tools/lib/hgfsServer/hgfsServer.c b/open-vm-tools/lib/hgfsServer/hgfsServer.c
+index 0939655..147b9e8 100644
+--- a/open-vm-tools/lib/hgfsServer/hgfsServer.c
++++ b/open-vm-tools/lib/hgfsServer/hgfsServer.c
+@@ -48,7 +48,7 @@
+ #include "hgfsServerOplock.h"
+ #include "hgfsDirNotify.h"
+ #include "userlock.h"
+-#include "poll.h"
++#include "vm_poll.h"
+ #include "mutexRankLib.h"
+ #include "vm_basic_asm.h"
+ #include "unicodeOperations.h"
+diff --git a/open-vm-tools/lib/include/asyncsocket.h b/open-vm-tools/lib/include/asyncsocket.h
+index 9d41a72..b9024d3 100644
+--- a/open-vm-tools/lib/include/asyncsocket.h
++++ b/open-vm-tools/lib/include/asyncsocket.h
+@@ -125,7 +125,7 @@ typedef struct AsyncSocket AsyncSocket;
+ * Or the client can specify its favorite poll class and locking behavior.
+ * Use of IVmdbPoll is only supported for regular sockets and for Attach.
+ */
+-#include "poll.h"
++#include "vm_poll.h"
+ struct IVmdbPoll;
+ typedef struct AsyncSocketPollParams {
+ int flags; /* Default 0, only POLL_FLAG_NO_BULL is valid */
+diff --git a/open-vm-tools/lib/include/poll.h b/open-vm-tools/lib/include/poll.h
+deleted file mode 100644
+index 834535c..0000000
+--- a/open-vm-tools/lib/include/poll.h
++++ /dev/null
+@@ -1,324 +0,0 @@
+-/*********************************************************
+- * Copyright (C) 1998-2015 VMware, Inc. All rights reserved.
+- *
+- * This program is free software; you can redistribute it and/or modify it
+- * under the terms of the GNU Lesser General Public License as published
+- * by the Free Software Foundation version 2.1 and no later version.
+- *
+- * This program is distributed in the hope that it will be useful, but
+- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+- * or FITNESS FOR A PARTICULAR PURPOSE. See the Lesser GNU General Public
+- * License for more details.
+- *
+- * You should have received a copy of the GNU Lesser General Public License
+- * along with this program; if not, write to the Free Software Foundation, Inc.,
+- * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+- *
+- *********************************************************/
+-
+-/*********************************************************
+- * The contents of this file are subject to the terms of the Common
+- * Development and Distribution License (the "License") version 1.0
+- * and no later version. You may not use this file except in
+- * compliance with the License.
+- *
+- * You can obtain a copy of the License at
+- * http://www.opensource.org/licenses/cddl1.php
+- *
+- * See the License for the specific language governing permissions
+- * and limitations under the License.
+- *
+- *********************************************************/
+-
+-
+-#ifndef _POLL_H_
+-#define _POLL_H_
+-
+-#define INCLUDE_ALLOW_USERLEVEL
+-#define INCLUDE_ALLOW_VMCORE
+-#include "includeCheck.h"
+-
+-#include "vm_basic_types.h"
+-#include "vm_basic_defs.h"
+-#include "vmware.h"
+-#include "userlock.h"
+-
+-#ifdef _WIN32
+-#define HZ 100
+-#elif defined linux
+-#include <asm/param.h>
+-#elif __APPLE__
+-#include <TargetConditionals.h>
+-/*
+- * Old SDKs don't define TARGET_OS_IPHONE at all.
+- * New ones define it to 0 on Mac OS X, 1 on iOS.
+- */
+-#if !defined(TARGET_OS_IPHONE) || TARGET_OS_IPHONE == 0
+-#include <sys/kernel.h>
+-#endif
+-#include <sys/poll.h>
+-#define HZ 100
+-#endif
+-#ifdef __ANDROID__
+-/*
+- * <poll.h> of android should be included, but its name is same
+- * with this file. So its content is put here to avoid conflict.
+- */
+-#include <asm/poll.h>
+-#define HZ 100
+-typedef unsigned int nfds_t;
+-int poll(struct pollfd *, nfds_t, long);
+-#endif
+-
+-
+-/*
+- * Poll event types: each type has a different reason for firing,
+- * or condition that must be met before firing.
+- */
+-
+-typedef enum {
+- /*
+- * Actual Poll queue types against which you can register callbacks.
+- */
+- POLL_VIRTUALREALTIME = -1, /* Negative because it doesn't have its own Q */
+- POLL_VTIME = 0,
+- POLL_REALTIME,
+- POLL_DEVICE,
+- POLL_MAIN_LOOP,
+- POLL_NUM_QUEUES
+-} PollEventType;
+-
+-
+-/*
+- * Classes of events
+- *
+- * These are the predefined classes. More can be declared
+- * with Poll_AllocClass().
+- */
+-
+-typedef enum PollClass {
+- POLL_CLASS_MAIN,
+- POLL_CLASS_PAUSE,
+- POLL_CLASS_IPC,
+- POLL_CLASS_CPT,
+- POLL_CLASS_MKS,
+- POLL_FIXED_CLASSES,
+- POLL_MAX_CLASSES = 320 /* Size enum to maximum */
+-} PollClass;
+-
+-
+-/*
+- * Each callback is registered in a set of classes
+- */
+-
+-typedef struct PollClassSet {
+- /* Type is uintptr_t to give best 32/64-bit code. */
+-#define _POLL_ELEMSIZE (sizeof (uintptr_t) * 8)
+- uintptr_t bits[CEILING(POLL_MAX_CLASSES, _POLL_ELEMSIZE)];
+-} PollClassSet;
+-
+-/* An empty PollClassSet. */
+-static INLINE PollClassSet
+-PollClassSet_Empty(void)
+-{
+- PollClassSet set = { { 0 } };
+- return set;
+-}
+-
+-/* A PollClassSet with the single member. */
+-static INLINE PollClassSet
+-PollClassSet_Singleton(PollClass c)
+-{
+- PollClassSet s = PollClassSet_Empty();
+-
+- ASSERT_ON_COMPILE(sizeof s.bits[0] * 8 == _POLL_ELEMSIZE); /* Size correct */
+- ASSERT_ON_COMPILE((_POLL_ELEMSIZE & (_POLL_ELEMSIZE - 1)) == 0); /* power of 2 */
+- ASSERT_ON_COMPILE(POLL_MAX_CLASSES <= ARRAYSIZE(s.bits) * _POLL_ELEMSIZE);
+- ASSERT(c < POLL_MAX_CLASSES);
+-
+- s.bits[c / _POLL_ELEMSIZE] = CONST3264U(1) << (c % _POLL_ELEMSIZE);
+- return s;
+-}
+-
+-/* Combine two PollClassSets. */
+-static INLINE PollClassSet
+-PollClassSet_Union(PollClassSet lhs, PollClassSet rhs)
+-{
+- PollClassSet u;
+- unsigned i;
+-
+- for (i = 0; i < ARRAYSIZE(u.bits); i++) {
+- u.bits[i] = lhs.bits[i] | rhs.bits[i];
+- }
+- return u;
+-}
+-
+-/* Add single class to PollClassSet. */
+-static INLINE PollClassSet
+-PollClassSet_Include(PollClassSet set, PollClass c)
+-{
+- return PollClassSet_Union(set, PollClassSet_Singleton(c));
+-}
+-
+-
+-#define POLL_CS_MAIN PollClassSet_Singleton(POLL_CLASS_MAIN)
+-#define POLL_CS_PAUSE PollClassSet_Union(POLL_CS_MAIN, \
+- PollClassSet_Singleton(POLL_CLASS_PAUSE))
+-#define POLL_CS_CPT PollClassSet_Union(POLL_CS_PAUSE, \
+- PollClassSet_Singleton(POLL_CLASS_CPT))
+-#define POLL_CS_IPC PollClassSet_Union(POLL_CS_CPT, \
+- PollClassSet_Singleton(POLL_CLASS_IPC))
+-#define POLL_CS_VMDB POLL_CS_PAUSE /* POLL_CLASS_VMDB is retired */
+-#define POLL_CS_MKS PollClassSet_Singleton(POLL_CLASS_MKS)
+-/*
+- * DANGER. You don't need POLL_CS_ALWAYS. Really. So don't use it.
+- */
+-#define POLL_CS_ALWAYS PollClassSet_Union(POLL_CS_CPT, POLL_CS_IPC)
+-
+-/*
+- * Poll class-set taxonomy:
+- * POLL_CS_MAIN
+- * - Unless you NEED another class, use POLL_CS_MAIN.
+- * POLL_CS_PAUSE
+- * - For callbacks that must occur even if the guest is paused.
+- * Most VMDB or Foundry commands are in this category.
+- * POLL_CS_CPT
+- * - Only for callbacks which can trigger intermediate Checkpoint
+- * transitions.
+- * The ONLY such callback is Migrate.
+- * POLL_CS_IPC
+- * - Only for callbacks which can contain Msg_(Post|Hint|Question)
+- * responses, and for signal handlers (why)?
+- * Vigor, VMDB, and Foundry can contain Msg_* responses.
+- * POLL_CS_MKS
+- * - Callback runs in MKS thread.
+- * POLL_CS_ALWAYS
+- * - Only for events that must be processed immediately.
+- * The ONLY such callback is OvhdMemVmxSizeCheck.
+- */
+-
+-
+-/*
+- * Poll_Callback flags
+- */
+-
+-#define POLL_FLAG_PERIODIC 0x01 // keep after firing
+-#define POLL_FLAG_REMOVE_AT_POWEROFF 0x02 // self-explanatory
+-#define POLL_FLAG_READ 0x04 // device is ready for reading
+-#define POLL_FLAG_WRITE 0x08 // device is ready for writing
+-#define POLL_FLAG_SOCKET 0x10 // device is a Windows socket
+-#define POLL_FLAG_NO_BULL 0x20 // callback does its own locking
+-#define POLL_FLAG_WINSOCK 0x40 // Winsock style write events
+-#define POLL_FLAG_FD 0x80 // device is a Windows file descriptor.
+-#define POLL_FLAG_ACCEPT_INVALID_FDS 0x100 // For broken 3rd party libs, e.g. curl
+-#define POLL_FLAG_THUNK_TO_WND 0x200 // thunk callback to window message loop
+-
+-
+-/*
+- * Advisory minimum time period.
+- * Users that want the fastest running real-time poll
+- * should use TICKS_TO_USECS(1).
+- */
+-
+-#define TICKS_TO_USECS(_x) ((_x) * (1000000 / HZ))
+-#define USECS_TO_TICKS(_x) ((_x) / (1000000 / HZ))
+-
+-
+-typedef void (*PollerFunction)(void *clientData);
+-typedef void (*PollerFireWrapper)(PollerFunction func,
+- void *funcData,
+- void *wrapperData);
+-typedef Bool (*PollerErrorFn)(const char *errorStr);
+-
+-/*
+- * Initialisers:
+- *
+- * For the sake of convenience, we declare the initialisers
+- * for custom implmentations here, even though the actual
+- * implementations are distinct from the core poll code.
+- */
+-
+-typedef struct PollOptions {
+- Bool locked; // Use internal MXUser for locking
+- Bool allowFullQueue; // Don't assert when device event queue is full.
+- VThreadID windowsMsgThread; // thread that processes Windows messages
+- PollerFireWrapper fireWrapperFn; // optional; may be useful for stats
+- void *fireWrapperData; // optional
+- PollerErrorFn errorFn; // optional; called upon unrecoverable error
+-} PollOptions;
+-
+-
+-void Poll_InitDefault(void);
+-void Poll_InitDefaultEx(const PollOptions *opts);
+-void Poll_InitGtk(void); // On top of glib for Linux
+-void Poll_InitCF(void); // On top of CoreFoundation for OSX
+-
+-
+-/*
+- * Functions
+- */
+-int Poll_SocketPair(Bool vmci, Bool stream, int fds[2]);
+-void Poll_Loop(Bool loop, Bool *exit, PollClass c);
+-void Poll_LoopTimeout(Bool loop, Bool *exit, PollClass c, int timeout);
+-Bool Poll_LockingEnabled(void);
+-void Poll_Exit(void);
+-
+-
+-/*
+- * Poll_Callback adds a callback regardless of whether an identical one exists.
+- *
+- * Likewise, Poll_CallbackRemove removes exactly one callback.
+- */
+-
+-VMwareStatus Poll_Callback(PollClassSet classSet,
+- int flags,
+- PollerFunction f,
+- void *clientData,
+- PollEventType type,
+- PollDevHandle info, // fd/microsec delay
+- MXUserRecLock *lck);
+-Bool Poll_CallbackRemove(PollClassSet classSet,
+- int flags,
+- PollerFunction f,
+- void *clientData,
+- PollEventType type);
+-Bool Poll_CallbackRemoveOneByCB(PollClassSet classSet,
+- int flags,
+- PollerFunction f,
+- PollEventType type,
+- void **clientData);
+-
+-void Poll_NotifyChange(PollClassSet classSet);
+-
+-/*
+- * Wrappers for Poll_Callback and Poll_CallbackRemove that present
+- * simpler subsets of those interfaces.
+- */
+-
+-VMwareStatus Poll_CB_Device(PollerFunction f,
+- void *clientData,
+- PollDevHandle device,
+- Bool periodic);
+-
+-Bool Poll_CB_DeviceRemove(PollerFunction f,
+- void *clientData,
+- Bool periodic);
+-
+-
+-VMwareStatus Poll_CB_RTime(PollerFunction f,
+- void *clientData,
+- int delay, // microseconds
+- Bool periodic,
+- MXUserRecLock *lock);
+-
+-Bool Poll_CB_RTimeRemove(PollerFunction f,
+- void *clientData,
+- Bool periodic);
+-
+-
+-#ifdef _WIN32
+-void Poll_SetWindowMessageRecipient(HWND hWnd, UINT msg, Bool alwaysThunk);
+-Bool Poll_FireWndCallback(void *lparam);
+-#endif
+-
+-#endif // _POLL_H_
+diff --git a/open-vm-tools/lib/include/pollImpl.h b/open-vm-tools/lib/include/pollImpl.h
+index 569c73d..e429f11 100644
+--- a/open-vm-tools/lib/include/pollImpl.h
++++ b/open-vm-tools/lib/include/pollImpl.h
+@@ -44,7 +44,7 @@
+ #define INCLUDE_ALLOW_USERLEVEL
+ #include "includeCheck.h"
+
+-#include "poll.h"
++#include "vm_poll.h"
+
+ /*
+ * PollImpl:
+diff --git a/open-vm-tools/lib/include/vm_poll.h b/open-vm-tools/lib/include/vm_poll.h
+new file mode 100644
+index 0000000..834535c
+--- /dev/null
++++ b/open-vm-tools/lib/include/vm_poll.h
+@@ -0,0 +1,324 @@
++/*********************************************************
++ * Copyright (C) 1998-2015 VMware, Inc. All rights reserved.
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU Lesser General Public License as published
++ * by the Free Software Foundation version 2.1 and no later version.
++ *
++ * This program is distributed in the hope that it will be useful, but
++ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
++ * or FITNESS FOR A PARTICULAR PURPOSE. See the Lesser GNU General Public
++ * License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public License
++ * along with this program; if not, write to the Free Software Foundation, Inc.,
++ * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
++ *
++ *********************************************************/
++
++/*********************************************************
++ * The contents of this file are subject to the terms of the Common
++ * Development and Distribution License (the "License") version 1.0
++ * and no later version. You may not use this file except in
++ * compliance with the License.
++ *
++ * You can obtain a copy of the License at
++ * http://www.opensource.org/licenses/cddl1.php
++ *
++ * See the License for the specific language governing permissions
++ * and limitations under the License.
++ *
++ *********************************************************/
++
++
++#ifndef _POLL_H_
++#define _POLL_H_
++
++#define INCLUDE_ALLOW_USERLEVEL
++#define INCLUDE_ALLOW_VMCORE
++#include "includeCheck.h"
++
++#include "vm_basic_types.h"
++#include "vm_basic_defs.h"
++#include "vmware.h"
++#include "userlock.h"
++
++#ifdef _WIN32
++#define HZ 100
++#elif defined linux
++#include <asm/param.h>
++#elif __APPLE__
++#include <TargetConditionals.h>
++/*
++ * Old SDKs don't define TARGET_OS_IPHONE at all.
++ * New ones define it to 0 on Mac OS X, 1 on iOS.
++ */
++#if !defined(TARGET_OS_IPHONE) || TARGET_OS_IPHONE == 0
++#include <sys/kernel.h>
++#endif
++#include <sys/poll.h>
++#define HZ 100
++#endif
++#ifdef __ANDROID__
++/*
++ * <poll.h> of android should be included, but its name is same
++ * with this file. So its content is put here to avoid conflict.
++ */
++#include <asm/poll.h>
++#define HZ 100
++typedef unsigned int nfds_t;
++int poll(struct pollfd *, nfds_t, long);
++#endif
++
++
++/*
++ * Poll event types: each type has a different reason for firing,
++ * or condition that must be met before firing.
++ */
++
++typedef enum {
++ /*
++ * Actual Poll queue types against which you can register callbacks.
++ */
++ POLL_VIRTUALREALTIME = -1, /* Negative because it doesn't have its own Q */
++ POLL_VTIME = 0,
++ POLL_REALTIME,
++ POLL_DEVICE,
++ POLL_MAIN_LOOP,
++ POLL_NUM_QUEUES
++} PollEventType;
++
++
++/*
++ * Classes of events
++ *
++ * These are the predefined classes. More can be declared
++ * with Poll_AllocClass().
++ */
++
++typedef enum PollClass {
++ POLL_CLASS_MAIN,
++ POLL_CLASS_PAUSE,
++ POLL_CLASS_IPC,
++ POLL_CLASS_CPT,
++ POLL_CLASS_MKS,
++ POLL_FIXED_CLASSES,
++ POLL_MAX_CLASSES = 320 /* Size enum to maximum */
++} PollClass;
++
++
++/*
++ * Each callback is registered in a set of classes
++ */
++
++typedef struct PollClassSet {
++ /* Type is uintptr_t to give best 32/64-bit code. */
++#define _POLL_ELEMSIZE (sizeof (uintptr_t) * 8)
++ uintptr_t bits[CEILING(POLL_MAX_CLASSES, _POLL_ELEMSIZE)];
++} PollClassSet;
++
++/* An empty PollClassSet. */
++static INLINE PollClassSet
++PollClassSet_Empty(void)
++{
++ PollClassSet set = { { 0 } };
++ return set;
++}
++
++/* A PollClassSet with the single member. */
++static INLINE PollClassSet
++PollClassSet_Singleton(PollClass c)
++{
++ PollClassSet s = PollClassSet_Empty();
++
++ ASSERT_ON_COMPILE(sizeof s.bits[0] * 8 == _POLL_ELEMSIZE); /* Size correct */
++ ASSERT_ON_COMPILE((_POLL_ELEMSIZE & (_POLL_ELEMSIZE - 1)) == 0); /* power of 2 */
++ ASSERT_ON_COMPILE(POLL_MAX_CLASSES <= ARRAYSIZE(s.bits) * _POLL_ELEMSIZE);
++ ASSERT(c < POLL_MAX_CLASSES);
++
++ s.bits[c / _POLL_ELEMSIZE] = CONST3264U(1) << (c % _POLL_ELEMSIZE);
++ return s;
++}
++
++/* Combine two PollClassSets. */
++static INLINE PollClassSet
++PollClassSet_Union(PollClassSet lhs, PollClassSet rhs)
++{
++ PollClassSet u;
++ unsigned i;
++
++ for (i = 0; i < ARRAYSIZE(u.bits); i++) {
++ u.bits[i] = lhs.bits[i] | rhs.bits[i];
++ }
++ return u;
++}
++
++/* Add single class to PollClassSet. */
++static INLINE PollClassSet
++PollClassSet_Include(PollClassSet set, PollClass c)
++{
++ return PollClassSet_Union(set, PollClassSet_Singleton(c));
++}
++
++
++#define POLL_CS_MAIN PollClassSet_Singleton(POLL_CLASS_MAIN)
++#define POLL_CS_PAUSE PollClassSet_Union(POLL_CS_MAIN, \
++ PollClassSet_Singleton(POLL_CLASS_PAUSE))
++#define POLL_CS_CPT PollClassSet_Union(POLL_CS_PAUSE, \
++ PollClassSet_Singleton(POLL_CLASS_CPT))
++#define POLL_CS_IPC PollClassSet_Union(POLL_CS_CPT, \
++ PollClassSet_Singleton(POLL_CLASS_IPC))
++#define POLL_CS_VMDB POLL_CS_PAUSE /* POLL_CLASS_VMDB is retired */
++#define POLL_CS_MKS PollClassSet_Singleton(POLL_CLASS_MKS)
++/*
++ * DANGER. You don't need POLL_CS_ALWAYS. Really. So don't use it.
++ */
++#define POLL_CS_ALWAYS PollClassSet_Union(POLL_CS_CPT, POLL_CS_IPC)
++
++/*
++ * Poll class-set taxonomy:
++ * POLL_CS_MAIN
++ * - Unless you NEED another class, use POLL_CS_MAIN.
++ * POLL_CS_PAUSE
++ * - For callbacks that must occur even if the guest is paused.
++ * Most VMDB or Foundry commands are in this category.
++ * POLL_CS_CPT
++ * - Only for callbacks which can trigger intermediate Checkpoint
++ * transitions.
++ * The ONLY such callback is Migrate.
++ * POLL_CS_IPC
++ * - Only for callbacks which can contain Msg_(Post|Hint|Question)
++ * responses, and for signal handlers (why)?
++ * Vigor, VMDB, and Foundry can contain Msg_* responses.
++ * POLL_CS_MKS
++ * - Callback runs in MKS thread.
++ * POLL_CS_ALWAYS
++ * - Only for events that must be processed immediately.
++ * The ONLY such callback is OvhdMemVmxSizeCheck.
++ */
++
++
++/*
++ * Poll_Callback flags
++ */
++
++#define POLL_FLAG_PERIODIC 0x01 // keep after firing
++#define POLL_FLAG_REMOVE_AT_POWEROFF 0x02 // self-explanatory
++#define POLL_FLAG_READ 0x04 // device is ready for reading
++#define POLL_FLAG_WRITE 0x08 // device is ready for writing
++#define POLL_FLAG_SOCKET 0x10 // device is a Windows socket
++#define POLL_FLAG_NO_BULL 0x20 // callback does its own locking
++#define POLL_FLAG_WINSOCK 0x40 // Winsock style write events
++#define POLL_FLAG_FD 0x80 // device is a Windows file descriptor.
++#define POLL_FLAG_ACCEPT_INVALID_FDS 0x100 // For broken 3rd party libs, e.g. curl
++#define POLL_FLAG_THUNK_TO_WND 0x200 // thunk callback to window message loop
++
++
++/*
++ * Advisory minimum time period.
++ * Users that want the fastest running real-time poll
++ * should use TICKS_TO_USECS(1).
++ */
++
++#define TICKS_TO_USECS(_x) ((_x) * (1000000 / HZ))
++#define USECS_TO_TICKS(_x) ((_x) / (1000000 / HZ))
++
++
++typedef void (*PollerFunction)(void *clientData);
++typedef void (*PollerFireWrapper)(PollerFunction func,
++ void *funcData,
++ void *wrapperData);
++typedef Bool (*PollerErrorFn)(const char *errorStr);
++
++/*
++ * Initialisers:
++ *
++ * For the sake of convenience, we declare the initialisers
++ * for custom implmentations here, even though the actual
++ * implementations are distinct from the core poll code.
++ */
++
++typedef struct PollOptions {
++ Bool locked; // Use internal MXUser for locking
++ Bool allowFullQueue; // Don't assert when device event queue is full.
++ VThreadID windowsMsgThread; // thread that processes Windows messages
++ PollerFireWrapper fireWrapperFn; // optional; may be useful for stats
++ void *fireWrapperData; // optional
++ PollerErrorFn errorFn; // optional; called upon unrecoverable error
++} PollOptions;
++
++
++void Poll_InitDefault(void);
++void Poll_InitDefaultEx(const PollOptions *opts);
++void Poll_InitGtk(void); // On top of glib for Linux
++void Poll_InitCF(void); // On top of CoreFoundation for OSX
++
++
++/*
++ * Functions
++ */
++int Poll_SocketPair(Bool vmci, Bool stream, int fds[2]);
++void Poll_Loop(Bool loop, Bool *exit, PollClass c);
++void Poll_LoopTimeout(Bool loop, Bool *exit, PollClass c, int timeout);
++Bool Poll_LockingEnabled(void);
++void Poll_Exit(void);
++
++
++/*
++ * Poll_Callback adds a callback regardless of whether an identical one exists.
++ *
++ * Likewise, Poll_CallbackRemove removes exactly one callback.
++ */
++
++VMwareStatus Poll_Callback(PollClassSet classSet,
++ int flags,
++ PollerFunction f,
++ void *clientData,
++ PollEventType type,
++ PollDevHandle info, // fd/microsec delay
++ MXUserRecLock *lck);
++Bool Poll_CallbackRemove(PollClassSet classSet,
++ int flags,
++ PollerFunction f,
++ void *clientData,
++ PollEventType type);
++Bool Poll_CallbackRemoveOneByCB(PollClassSet classSet,
++ int flags,
++ PollerFunction f,
++ PollEventType type,
++ void **clientData);
++
++void Poll_NotifyChange(PollClassSet classSet);
++
++/*
++ * Wrappers for Poll_Callback and Poll_CallbackRemove that present
++ * simpler subsets of those interfaces.
++ */
++
++VMwareStatus Poll_CB_Device(PollerFunction f,
++ void *clientData,
++ PollDevHandle device,
++ Bool periodic);
++
++Bool Poll_CB_DeviceRemove(PollerFunction f,
++ void *clientData,
++ Bool periodic);
++
++
++VMwareStatus Poll_CB_RTime(PollerFunction f,
++ void *clientData,
++ int delay, // microseconds
++ Bool periodic,
++ MXUserRecLock *lock);
++
++Bool Poll_CB_RTimeRemove(PollerFunction f,
++ void *clientData,
++ Bool periodic);
++
++
++#ifdef _WIN32
++void Poll_SetWindowMessageRecipient(HWND hWnd, UINT msg, Bool alwaysThunk);
++Bool Poll_FireWndCallback(void *lparam);
++#endif
++
++#endif // _POLL_H_
+diff --git a/open-vm-tools/lib/rpcIn/rpcin.c b/open-vm-tools/lib/rpcIn/rpcin.c
+index abe48e6..243a86f 100644
+--- a/open-vm-tools/lib/rpcIn/rpcin.c
++++ b/open-vm-tools/lib/rpcIn/rpcin.c
+@@ -57,7 +57,7 @@
+
+ #if defined(VMTOOLS_USE_VSOCKET)
+ # include <glib.h>
+-# include "poll.h"
++# include "vm_poll.h"
+ # include "asyncsocket.h"
+ # include "vmci_defs.h"
+ #include "dataMap.h"
+diff --git a/open-vm-tools/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c b/open-vm-tools/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c
+index 9451dcc..3ebf6ba 100644
+--- a/open-vm-tools/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c
++++ b/open-vm-tools/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c
+@@ -48,7 +48,7 @@
+ #include "rpcout.h"
+ #include "rabbitmqProxyConst.h"
+ #include "vm_basic_types.h"
+-#include "poll.h"
++#include "vm_poll.h"
+ #ifdef OPEN_VM_TOOLS
+ #include "vmci_sockets.h"
+ #include "sslDirect.h"
+--
+2.6.3
+
diff --git a/main/open-vm-tools/0010-Add-support-for-building-with-system-libtirpc.patch b/main/open-vm-tools/0010-Add-support-for-building-with-system-libtirpc.patch
new file mode 100644
index 0000000000..ae1254249d
--- /dev/null
+++ b/main/open-vm-tools/0010-Add-support-for-building-with-system-libtirpc.patch
@@ -0,0 +1,258 @@
+From 7d1329e9cdcae199789f7f37e6050d50d92a78b5 Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Wed, 18 Nov 2015 09:54:42 +0000
+Subject: [PATCH 10/11] Add support for building with system libtirpc
+
+This is needed for buliding with musl libc.
+
+Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
+---
+ open-vm-tools/configure.ac | 14 ++++++++++++++
+ open-vm-tools/lib/dynxdr/Makefile.am | 8 +++++++-
+ open-vm-tools/lib/guestRpc/Makefile.am | 6 ++++++
+ open-vm-tools/lib/netUtil/Makefile.am | 4 ++++
+ open-vm-tools/lib/nicInfo/Makefile.am | 2 ++
+ open-vm-tools/lib/rpcChannel/Makefile.am | 4 ++++
+ open-vm-tools/lib/slashProc/Makefile.am | 4 ++++
+ open-vm-tools/libguestlib/Makefile.am | 2 ++
+ open-vm-tools/services/plugins/dndcp/Makefile.am | 2 ++
+ open-vm-tools/services/plugins/guestInfo/Makefile.am | 1 +
+ open-vm-tools/services/plugins/resolutionSet/Makefile.am | 2 ++
+ open-vm-tools/services/plugins/vix/Makefile.am | 2 ++
+ open-vm-tools/services/plugins/vmbackup/Makefile.am | 2 ++
+ 13 files changed, 52 insertions(+), 1 deletion(-)
+
+diff --git a/open-vm-tools/configure.ac b/open-vm-tools/configure.ac
+index f474150..d7d0e91 100644
+--- a/open-vm-tools/configure.ac
++++ b/open-vm-tools/configure.ac
+@@ -380,6 +380,20 @@ AC_VMW_CHECK_LIB([fuse],
+ AC_MSG_WARN([Fuse is missing, vmblock-fuse/vmhgfs-fuse will be disabled.])])
+
+ #
++# Check for libtirpc
++#
++AC_VMW_CHECK_LIB([libtirpc],
++ [LIBTIRPC],
++ [libtirpc],
++ [],
++ [],
++ [rpc/xdr.h],
++ [xdr_void],
++ [have_libtirpc=yes],
++ [have_libtitirpc=no;
++ AC_MSG_WARN([libtirpc is missing.])])
++
++#
+ # Check for PAM.
+ #
+ AC_ARG_WITH([pam],
+diff --git a/open-vm-tools/lib/dynxdr/Makefile.am b/open-vm-tools/lib/dynxdr/Makefile.am
+index deb75e4..c6a285b 100644
+--- a/open-vm-tools/lib/dynxdr/Makefile.am
++++ b/open-vm-tools/lib/dynxdr/Makefile.am
+@@ -17,7 +17,13 @@
+
+ noinst_LTLIBRARIES = libDynxdr.la
+
+-libDynxdr_la_SOURCES =
++libDynxdr_la_SOURCES =
+ libDynxdr_la_SOURCES += dynxdr.c
+ libDynxdr_la_SOURCES += xdrutil.c
+
++libDynxdr_la_CPPFLAGS =
++libDynxdr_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
++
++libDynxdr_la_LIBADD =
++libDynxdr_la_LIBADD += @LIBTIRPC_LIBS@
++
+diff --git a/open-vm-tools/lib/guestRpc/Makefile.am b/open-vm-tools/lib/guestRpc/Makefile.am
+index d68bc07..cf75f0a 100644
+--- a/open-vm-tools/lib/guestRpc/Makefile.am
++++ b/open-vm-tools/lib/guestRpc/Makefile.am
+@@ -20,6 +20,12 @@ noinst_LTLIBRARIES = libGuestRpc.la
+ libGuestRpc_la_SOURCES =
+ libGuestRpc_la_SOURCES += nicinfo_xdr.c
+
++libGuestRpc_la_CPPFLAGS =
++libGuestRpc_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
++
++libGuestRpc_la_LIBADD =
++libGuestRpc_la_LIBADD += @LIBTIRPC_LIBS@
++
+ # XXX: Autoreconf complains about this and recommends using AM_CFLAGS instead.
+ # Problem is, $(CFLAGS) is appended to the compiler command line after AM_CFLAGS
+ # and after libGuestRpc_la_CFLAGS, so "-Wall -Werror" will override this flag.
+diff --git a/open-vm-tools/lib/netUtil/Makefile.am b/open-vm-tools/lib/netUtil/Makefile.am
+index 6b13632..fcd5623 100644
+--- a/open-vm-tools/lib/netUtil/Makefile.am
++++ b/open-vm-tools/lib/netUtil/Makefile.am
+@@ -20,3 +20,7 @@ noinst_LTLIBRARIES = libNetUtil.la
+ libNetUtil_la_SOURCES =
+ libNetUtil_la_SOURCES += netUtilLinux.c
+
++libNetUtil_la_CPPFLAGS =
++libNetUtil_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
++
++libNetUtil_la_LIBADD = @LIBTIRPC_LIBS@
+diff --git a/open-vm-tools/lib/nicInfo/Makefile.am b/open-vm-tools/lib/nicInfo/Makefile.am
+index ff59606..7d78358 100644
+--- a/open-vm-tools/lib/nicInfo/Makefile.am
++++ b/open-vm-tools/lib/nicInfo/Makefile.am
+@@ -25,12 +25,14 @@ libNicInfo_la_SOURCES += nicInfoPosix.c
+
+ libNicInfo_la_CPPFLAGS =
+ libNicInfo_la_CPPFLAGS += @GLIB2_CPPFLAGS@
++libNicInfo_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
+
+ AM_CFLAGS = $(DNET_CPPFLAGS)
+ if USE_SLASH_PROC
+ AM_CFLAGS += -DUSE_SLASH_PROC
+ endif
+ libNicInfo_la_LIBADD =
++libNicInfo_la_LIBADD += @LIBTIRPC_LIBS@
+ if HAVE_DNET
+ libNicInfo_la_LIBADD += @DNET_LIBS@
+ endif
+diff --git a/open-vm-tools/lib/rpcChannel/Makefile.am b/open-vm-tools/lib/rpcChannel/Makefile.am
+index 32a9f8c..4497cce 100644
+--- a/open-vm-tools/lib/rpcChannel/Makefile.am
++++ b/open-vm-tools/lib/rpcChannel/Makefile.am
+@@ -27,3 +27,7 @@ endif
+
+ libRpcChannel_la_CPPFLAGS =
+ libRpcChannel_la_CPPFLAGS += @VMTOOLS_CPPFLAGS@
++libRpcChannel_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
++
++libRpcChannel_la_LIBADD =
++libRpcChannel_la_LIBADD += @LIBTIRPC_LIBS@
+diff --git a/open-vm-tools/lib/slashProc/Makefile.am b/open-vm-tools/lib/slashProc/Makefile.am
+index e78988b..6026014 100644
+--- a/open-vm-tools/lib/slashProc/Makefile.am
++++ b/open-vm-tools/lib/slashProc/Makefile.am
+@@ -22,6 +22,10 @@ libSlashProc_la_SOURCES += net.c
+
+ libSlashProc_la_CPPFLAGS =
+ libSlashProc_la_CPPFLAGS += @GLIB2_CPPFLAGS@
++libSlashProc_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
++
++libSlashProc_la_LIBADD =
++libSlashProc_la_LIBADD += @LIBTIRPC_LIBS@
+
+ AM_CFLAGS = $(DNET_CPPFLAGS)
+
+diff --git a/open-vm-tools/libguestlib/Makefile.am b/open-vm-tools/libguestlib/Makefile.am
+index b05d43a..a6b7c0b 100644
+--- a/open-vm-tools/libguestlib/Makefile.am
++++ b/open-vm-tools/libguestlib/Makefile.am
+@@ -22,6 +22,7 @@ AM_CFLAGS += -I$(top_builddir)/include
+
+ libguestlib_la_LIBADD =
+ libguestlib_la_LIBADD += @VMTOOLS_LIBS@
++libguestlib_la_LIBADD += @LIBTIRPC_LIBS@
+
+ libguestlib_la_SOURCES =
+ libguestlib_la_SOURCES += guestlibV3_xdr.c
+@@ -56,6 +57,7 @@ CFLAGS += -Wno-unused
+ libguestlib_la_CPPFLAGS =
+ libguestlib_la_CPPFLAGS += -DVMTOOLS_USE_GLIB
+ libguestlib_la_CPPFLAGS += @GLIB2_CPPFLAGS@
++libguestlib_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
+
+ EXTRA_DIST = vmguestlib.pc.in
+
+diff --git a/open-vm-tools/services/plugins/dndcp/Makefile.am b/open-vm-tools/services/plugins/dndcp/Makefile.am
+index 37e23c8..c00b77c 100644
+--- a/open-vm-tools/services/plugins/dndcp/Makefile.am
++++ b/open-vm-tools/services/plugins/dndcp/Makefile.am
+@@ -22,6 +22,7 @@ libdndcp_la_CPPFLAGS =
+ libdndcp_la_CPPFLAGS += @GTK_CPPFLAGS@
+ libdndcp_la_CPPFLAGS += @GTKMM_CPPFLAGS@
+ libdndcp_la_CPPFLAGS += @PLUGIN_CPPFLAGS@
++libdndcp_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
+ libdndcp_la_CPPFLAGS += -I$(top_srcdir)/services/plugins/dndcp/dnd
+ libdndcp_la_CPPFLAGS += -I$(top_srcdir)/services/plugins/dndcp/dndGuest
+ libdndcp_la_CPPFLAGS += -I$(top_srcdir)/services/plugins/dndcp/stringxx
+@@ -37,6 +38,7 @@ libdndcp_la_LIBADD += @GTK_LIBS@
+ libdndcp_la_LIBADD += @GTKMM_LIBS@
+ libdndcp_la_LIBADD += @VMTOOLS_LIBS@
+ libdndcp_la_LIBADD += @HGFS_LIBS@
++libdndcp_la_LIBADD += @LIBTIRPC_LIBS@
+
+ libdndcp_la_SOURCES =
+
+diff --git a/open-vm-tools/services/plugins/guestInfo/Makefile.am b/open-vm-tools/services/plugins/guestInfo/Makefile.am
+index 4ac05f4..8528238 100644
+--- a/open-vm-tools/services/plugins/guestInfo/Makefile.am
++++ b/open-vm-tools/services/plugins/guestInfo/Makefile.am
+@@ -22,6 +22,7 @@ plugin_LTLIBRARIES = libguestInfo.la
+
+ libguestInfo_la_CPPFLAGS =
+ libguestInfo_la_CPPFLAGS += @PLUGIN_CPPFLAGS@
++libguestInfo_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
+
+ libguestInfo_la_LDFLAGS =
+ libguestInfo_la_LDFLAGS += @PLUGIN_LDFLAGS@
+diff --git a/open-vm-tools/services/plugins/resolutionSet/Makefile.am b/open-vm-tools/services/plugins/resolutionSet/Makefile.am
+index 75432d7..9303b25 100644
+--- a/open-vm-tools/services/plugins/resolutionSet/Makefile.am
++++ b/open-vm-tools/services/plugins/resolutionSet/Makefile.am
+@@ -21,6 +21,7 @@ plugin_LTLIBRARIES = libresolutionSet.la
+ libresolutionSet_la_CPPFLAGS =
+ libresolutionSet_la_CPPFLAGS += @GTK_CPPFLAGS@
+ libresolutionSet_la_CPPFLAGS += @PLUGIN_CPPFLAGS@
++libresolutionSet_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
+ libresolutionSet_la_CPPFLAGS += -DRESOLUTION_X11
+
+ libresolutionSet_la_LDFLAGS =
+@@ -30,6 +31,7 @@ libresolutionSet_la_LIBADD =
+ libresolutionSet_la_LIBADD += @COMMON_XLIBS@
+ libresolutionSet_la_LIBADD += @GTK_LIBS@
+ libresolutionSet_la_LIBADD += @VMTOOLS_LIBS@
++libresolutionSet_la_LIBADD += @LIBTIRPC_LIBS@
+
+ libresolutionSet_la_SOURCES =
+ libresolutionSet_la_SOURCES += libvmwarectrl.c
+diff --git a/open-vm-tools/services/plugins/vix/Makefile.am b/open-vm-tools/services/plugins/vix/Makefile.am
+index b19a15d..02996d2 100644
+--- a/open-vm-tools/services/plugins/vix/Makefile.am
++++ b/open-vm-tools/services/plugins/vix/Makefile.am
+@@ -20,6 +20,7 @@ plugin_LTLIBRARIES = libvix.la
+
+ libvix_la_CPPFLAGS =
+ libvix_la_CPPFLAGS += @PLUGIN_CPPFLAGS@
++libvix_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
+ libvix_la_CPPFLAGS += -I$(top_srcdir)/vgauth/public
+
+ libvix_la_LDFLAGS =
+@@ -29,6 +30,7 @@ libvix_la_LIBADD =
+ libvix_la_LIBADD += @VIX_LIBADD@
+ libvix_la_LIBADD += @VMTOOLS_LIBS@
+ libvix_la_LIBADD += @HGFS_LIBS@
++libvix_la_LIBADD += @LIBTIRPC_LIBS@
+ libvix_la_LIBADD += $(top_builddir)/lib/auth/libAuth.la
+ libvix_la_LIBADD += $(top_builddir)/lib/foundryMsg/libFoundryMsg.la
+ libvix_la_LIBADD += $(top_builddir)/lib/impersonate/libImpersonate.la
+diff --git a/open-vm-tools/services/plugins/vmbackup/Makefile.am b/open-vm-tools/services/plugins/vmbackup/Makefile.am
+index 99589bf..1cfa007 100644
+--- a/open-vm-tools/services/plugins/vmbackup/Makefile.am
++++ b/open-vm-tools/services/plugins/vmbackup/Makefile.am
+@@ -20,6 +20,7 @@ plugin_LTLIBRARIES = libvmbackup.la
+
+ libvmbackup_la_CPPFLAGS =
+ libvmbackup_la_CPPFLAGS += @PLUGIN_CPPFLAGS@
++libvmbackup_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
+
+ libvmbackup_la_LDFLAGS =
+ libvmbackup_la_LDFLAGS += @PLUGIN_LDFLAGS@
+@@ -27,6 +28,7 @@ libvmbackup_la_LDFLAGS += @PLUGIN_LDFLAGS@
+ libvmbackup_la_LIBADD =
+ libvmbackup_la_LIBADD += @GOBJECT_LIBS@
+ libvmbackup_la_LIBADD += @VMTOOLS_LIBS@
++libvmbackup_la_LIBADD += @LIBTIRPC_LIBS@
+
+ libvmbackup_la_SOURCES =
+ libvmbackup_la_SOURCES += nullProvider.c
+--
+2.6.3
+
diff --git a/main/open-vm-tools/0011-gnu-ucontext.patch b/main/open-vm-tools/0011-gnu-ucontext.patch
new file mode 100644
index 0000000000..3f9161a094
--- /dev/null
+++ b/main/open-vm-tools/0011-gnu-ucontext.patch
@@ -0,0 +1,43 @@
+From 2d57a974d9305fac9c18e2f34a04b4d0c204b8fb Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Wed, 18 Nov 2015 10:27:51 +0000
+Subject: [PATCH 11/11] gnu-ucontext
+
+---
+ open-vm-tools/lib/include/sigPosixRegs.h | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/open-vm-tools/lib/include/sigPosixRegs.h b/open-vm-tools/lib/include/sigPosixRegs.h
+index 08ee2c6..b397260 100644
+--- a/open-vm-tools/lib/include/sigPosixRegs.h
++++ b/open-vm-tools/lib/include/sigPosixRegs.h
+@@ -33,7 +33,7 @@
+ #include "includeCheck.h"
+
+
+-#if __linux__ // We need the REG_foo offsets in the gregset_t;
++#if defined(__GLIBC__) // We need the REG_foo offsets in the gregset_t;
+ # define _GNU_SOURCE // _GNU_SOURCE maps to __USE_GNU
+
+ /* And, the REG_foo definitions conflict with our own in x86.h */
+@@ -73,7 +73,7 @@
+ #include <sys/ucontext.h>
+ #endif
+
+-#if __linux__
++#if defined(__GLIBC__)
+ # if defined(__x86_64__)
+ # undef REG_RAX
+ # undef REG_RBX
+@@ -194,7 +194,7 @@
+ #define SC_ESP(uc) ((unsigned long) (uc)->uc_mcontext.mc_esp)
+ #define SC_EIP(uc) ((unsigned long) (uc)->uc_mcontext.mc_eip)
+ #endif
+-#elif defined (sun)
++#elif !defined (__GLIBC__)
+ #ifdef __x86_64__
+ #define SC_EAX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_RAX])
+ #define SC_EBX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_RBX])
+--
+2.6.3
+
diff --git a/main/open-vm-tools/APKBUILD b/main/open-vm-tools/APKBUILD
index c3aab556d5..4c3ee54fe8 100644
--- a/main/open-vm-tools/APKBUILD
+++ b/main/open-vm-tools/APKBUILD
@@ -1,9 +1,9 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=open-vm-tools
-pkgver=9.4.6_p1770165
+pkgver=10.0.0_p3000743
_pkgsubver=${pkgver#*_p}
_ver=${pkgver/_p/-}
-pkgrel=4
+pkgrel=0
pkgdesc="The Open Virtual Machine Tools are the open source implementation of VMware Tools."
url="http://open-vm-tools.sourceforge.net/"
arch="x86 x86_64"
@@ -13,26 +13,26 @@ install="$pkgname.pre-install"
makedepends="procps-dev libdnet-dev icu-dev glib-dev bash icu-dev
gtk+-dev libxext-dev libxinerama-dev libxtst-dev gtkmm-dev fuse-dev
libnotify-dev libxrandr-dev libxcomposite-dev libice-dev libsm-dev
- libtirpc-dev linux-headers
+ libtirpc-dev linux-headers libmspack-dev openssl-dev rpcgen
automake autoconf libtool m4
"
-source="http://downloads.sourceforge.net/project/open-vm-tools/open-vm-tools/stable-${pkgver%.*}.x/open-vm-tools-$_ver.tar.gz
+source="https://github.com/vmware/open-vm-tools/archive/open-vm-tools-$_ver.tar.gz
0001-lib-misc-Recognize-Alpine-Linux.patch
- werror.patch
- tirpc.patch
- linux-is-not-gnu.patch
- fts.patch
- struct_timespec.patch
- posix-perms.patch
- setresuid.patch
- musl-regs.patch
- sys-stat.patch
+ 0002-open-vm-tools-Add-disable-werror-configure-option.patch
+ 0003-Do-not-assume-that-linux-and-gnu-libc-are-the-same-t.patch
+ 0004-Use-configure-test-for-struct-timespec.patch
+ 0005-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch
+ 0006-Use-configure-to-test-for-feature-instead-of-platfor.patch
+ 0007-Fix-vmblock-linux-detection.patch
+ 0008-Use-configure-test-for-sys-stat.h-include.patch
+ 0009-Rename-poll.h-to-vm_poll.h.patch
+ 0010-Add-support-for-building-with-system-libtirpc.patch
+ 0011-gnu-ucontext.patch
open-vm-tools.initd
"
-[ "$ALPINE_LIBC" != "eglibc" ] && makedepends="$makedepends rpcgen"
-
-_builddir="$srcdir"/$pkgname-$_ver
+_builddir="$srcdir"/open-vm-tools-open-vm-tools-$_ver
+#/open-vm-tools
prepare() {
cd "$_builddir"
@@ -46,11 +46,8 @@ prepare() {
esac
done
- sed -i -e 's/__unused1/st_atim.tv_nsec/g' \
- -e 's/__unused2/st_mtim.tv_nsec/g' \
- -e 's/__unused3/st_ctim.tv_nsec/g' \
- lib/file/filePosix.c lib/hgfsServer/hgfsServerLinux.c \
- || return 1
+ cd open-vm-tools
+
# workaround automake-1.10 issue
# http://ramblingfoo.blogspot.com/2007/07/required-file-configrpath-not-
mkdir -p config
@@ -62,25 +59,28 @@ prepare() {
build() {
export CUSTOM_PROCPS_NAME="procps"
export CFLAGS="$CFLAGS -Wno-unused-but-set-variable -D_GNU_SOURCE"
- mkdir "$srcdir"/build
- cd "$srcdir"/build
- ../$pkgname-$_ver/configure \
+ export CXXFLAGS="$CXXFLAGS -std=c++11"
+ mkdir "$_builddir"/build
+ cd "$_builddir"/build
+ ../open-vm-tools/configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
--sysconfdir=/etc \
--without-dnet \
+ --without-xerces \
--with-icu \
--with-procps \
--with-x \
--without-kernel-modules \
--without-pam \
+ --disable-werror \
|| return 1
make || return 1
}
package() {
- cd "$srcdir"/build
+ cd "$_builddir"/build
make install DESTDIR=$pkgdir || return 1
install -Dm755 "$srcdir"/open-vm-tools.initd \
"$pkgdir"/etc/init.d/open-vm-tools
@@ -98,39 +98,42 @@ gtk() {
"$subpkgdir"/usr/lib/open-vm-tools/plugins/
}
-md5sums="3969daf1535d34e1c5f0c87a779b7642 open-vm-tools-9.4.6-1770165.tar.gz
-87b131c2208b32d9c0bb6fbacd7f75a9 0001-lib-misc-Recognize-Alpine-Linux.patch
-e462f567cd5588d738af4cfa0dd13b3c werror.patch
-c89d3f4db3b86bf60359b2c32fc5a22a tirpc.patch
-50a8a12058d4b124b5a7e229993dc365 linux-is-not-gnu.patch
-012907c27e4f5fece18a1e8c21f23776 fts.patch
-821d75876bbb3b55703ec72e02d30cc6 struct_timespec.patch
-2ef8fdedff4998f38c373513cd57fae5 posix-perms.patch
-ad5a1b69aa80d5dfc23f640ac2e33004 setresuid.patch
-8ecff63e2488e3549b1b6d31e476fe8a musl-regs.patch
-22358020ff9d2d917adfc97ad82e176a sys-stat.patch
+md5sums="13b508201e3285c5f404b24f992936f8 open-vm-tools-10.0.0-3000743.tar.gz
+29600cc32974dc8b936f0c790eccc833 0001-lib-misc-Recognize-Alpine-Linux.patch
+f99e39b159d385c0af63c87d98085da3 0002-open-vm-tools-Add-disable-werror-configure-option.patch
+aeb0bdb6c4568865436863a76d1c40e3 0003-Do-not-assume-that-linux-and-gnu-libc-are-the-same-t.patch
+b102e760b68521f95068956e2324207c 0004-Use-configure-test-for-struct-timespec.patch
+5137012586e2cc2f55df95ac743f9c76 0005-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch
+53c1dd1cb051d9d9044d31bf5b53daf2 0006-Use-configure-to-test-for-feature-instead-of-platfor.patch
+5eead16eb2591568654ff7cf1569773d 0007-Fix-vmblock-linux-detection.patch
+863372a41921f22d4b74a728a0821111 0008-Use-configure-test-for-sys-stat.h-include.patch
+3a92d0642f43ef6343a3525ed2b521d1 0009-Rename-poll.h-to-vm_poll.h.patch
+87bfbfc96d0f7ff25f224af23eafc666 0010-Add-support-for-building-with-system-libtirpc.patch
+b303601e7b129a4dee22b1c3ae09e7a3 0011-gnu-ucontext.patch
d666cfe7f779f9cb6b5c2260f6c50b54 open-vm-tools.initd"
-sha256sums="54d7a83d8115124e4b809098b08d7017ba50828801c2f105cdadbc85a064a079 open-vm-tools-9.4.6-1770165.tar.gz
-7c12e96fed05834857ff6971d297ac8560eef2942817a37303909b76dff54da0 0001-lib-misc-Recognize-Alpine-Linux.patch
-b3d39192908c43a26c8aff92d99510b8195c2c7a4e990ff3e74b73ef5bccd73c werror.patch
-1bb6d48d46ea4877e5b2c54eb094f5cf6c3b2fc09db77c01f8fc3626fa13bd6c tirpc.patch
-3caeb8011cc1fa0554b5d96115827a71b273b2031662b2e08376e02633448931 linux-is-not-gnu.patch
-517bef979ea411a0182d18266c2fe1420d1b1940e58e64435af2941f0e44aa45 fts.patch
-87ebc8821291ca7046ec4285c4814cee7ea92bed8c71c9b4c56cbbf19dcb9f9e struct_timespec.patch
-9735e3251e33bb1349af35aa23853a39f660340ca5154488e4dd3594b8b8b53a posix-perms.patch
-8fc78b0d8ca42963be7530bd76d74dd851eea2e0f59661f08810147648702069 setresuid.patch
-13920ca0fbc49646f9294dee6abd3decf072f98b238c8a680e0b98b3f3559c82 musl-regs.patch
-6f738a4a45ee506337a89cfcda05eaeffa38c1f1695d8ee45bf78a00fa1134de sys-stat.patch
+sha256sums="8765784d85e4a39b08f1cbc2fb9bbb920027d5fa0abb9b99cec4a886a793ad94 open-vm-tools-10.0.0-3000743.tar.gz
+d33a60fd3ec63d677d13997ba811e901fa4096a5b883ffae6669dd3ce91ccf5e 0001-lib-misc-Recognize-Alpine-Linux.patch
+68ecb2557ed2c57dff71420d32c1ac8ce4689b3dec6a06d5c75d9b352f309365 0002-open-vm-tools-Add-disable-werror-configure-option.patch
+3b09818b552342281660b812b7fa924db414aa2d8df05081e0e00c41c29b41f5 0003-Do-not-assume-that-linux-and-gnu-libc-are-the-same-t.patch
+d4b2edf7be206dde75ca778599918bd6e01f148b12fe5f8a0a90b49dfd98eaf5 0004-Use-configure-test-for-struct-timespec.patch
+862e0855266b6aa76a61683b20b098c4b0651a3b01f3c24a2c7b3e18f0f8e039 0005-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch
+7ce9a1d294efa2ea2c93283ce1cf5ceb025c4ef74c9639ad7af0c4ac0b100d22 0006-Use-configure-to-test-for-feature-instead-of-platfor.patch
+63c0b6cfaa37894f9a8f83904eff58993e1b8bbc5ea0f41d286ceebee588634e 0007-Fix-vmblock-linux-detection.patch
+40d8ccdb5ce1f5721942c7f1ace1573277e2ee96b9fbb82c6f197edba7f644cb 0008-Use-configure-test-for-sys-stat.h-include.patch
+f080c651e75e9315c5b698646a7faf46a6af835189f49f045e3f1a930d5f621c 0009-Rename-poll.h-to-vm_poll.h.patch
+58d062fb1fc148700dac17b2681cb4967ada5a1caac43fbb249f13258d93be37 0010-Add-support-for-building-with-system-libtirpc.patch
+f3ea30dd393608c1f7ea4db8ea2843bc078a7f31a40867ff35de83288fa78a09 0011-gnu-ucontext.patch
5b824642ecf298136d39bc40ed25b4d62e1a83ecbdc6b3fe428c520c95f65479 open-vm-tools.initd"
-sha512sums="a16dc51a51a182031c1849776be9ac0e13bef9d9cb85807e03fbb816d4e9109b64e60f1919f6686a471c79042f30ca93f0193985c2150c6254bc72e3fd8ffa49 open-vm-tools-9.4.6-1770165.tar.gz
-c9f99658dcbd659ed7288dae36d47216aeea8a496f7fab52711bffb382fab8035c9414045a1dffae79eb38ff03fcb116e1965dae00532f92a09173695f1756aa 0001-lib-misc-Recognize-Alpine-Linux.patch
-2128c4056e110a068a98cbc9c3ef934aa99d2a74ccae6b96aae6776d62595ac1cb544bbc299002bf545827dee0c75a02a227ea5d43838eeae720e70ee7959824 werror.patch
-98da1733eba6f53a53a9361ee2ad02dbd08fa8958aba449cebbf5be04705af1bc0fab187f2d78b94f2802a3c0b32fa03d33249006236ce27c10702992a62abb4 tirpc.patch
-fa9407febe8ed3bff114eddb66a12e7bfed995a1d8818a7b2fd6c619b6b1f42836326c81a799d6e40250aa5d391b340d7af5aad092409e489e8fdba729e9f132 linux-is-not-gnu.patch
-75d9a72204dbef4e34b8e66c39210a07243abe8663dcf8a194763a15587195e88b47d5882264dd6a8fe0a82c6f94cfb0fa4b02156fca28609ed09a0dd8320bed fts.patch
-7fc08ad7018b6790bb7125621b7e387bfb4219325550ef28a88ddd0b473136afe5da11a8f6066c3ebba6cc645e2f7a16a019cbfca0f31f3164fe505d76517c85 struct_timespec.patch
-ee5e6b49cb3878b37887d95bbaa687536e2339c9ec48a315351ca690f966a800afdc3a7e3026127f59eb8b0549057e9ec299daf3991166bdd66795f79f5ca485 posix-perms.patch
-4cec764234742ea7fa8c61867ae1e396d1fed3d4f881fee063b19ab51ba30b4831d33d8d96a92a03944e7d044c7736d60aa4de06ab5cc8c484fed5cde5c57592 setresuid.patch
-16449ee7b30161d4486385947763b34e02a22429c794333ec641f328b988209fd128f48d9d6c8c41c4e6bb8349df0680cb968ab1212b9cba8bc43d4c36704316 musl-regs.patch
-94d8ce4415b8adce214acc13677e4c93f746923915f9017416f33d05e1c1ea0fad399926d9b5cec3385c97f79266c89a3b4a401d14518b0344398ec77cb44f48 sys-stat.patch
+sha512sums="25428a4982fa19208f915fd58067a5aa9a8427b2ff8c3f06889194cdd4792489911232c3cd94ea54f5000c47ca915debd33ee0441579adf50f183b74def5cd45 open-vm-tools-10.0.0-3000743.tar.gz
+87ab7df83f512cf5f1ff6bf68546bd3d72a82e7f60f35ce795db6d6105b1178c85dada2beaddd32f870b81e6af4bf907b3a6fca241b33fdee53864bbeb5863ce 0001-lib-misc-Recognize-Alpine-Linux.patch
+918592fd854c8c64ebf351bfd043fc1ea1f8659aadc637c1d0b4344e5e2e945b2c0e685dcc314eff7ad69b59643ad1ec9da8e7e2e5be78fadf70fe4e00cb2f73 0002-open-vm-tools-Add-disable-werror-configure-option.patch
+aab2a84214726f2019802e5a2a8df257cec62191ea2077c8a5a449cba9f1b117b36b3af2cc4151d8926551482ef83a8e0496a6f66b3f8636774a2ccbdf0952a6 0003-Do-not-assume-that-linux-and-gnu-libc-are-the-same-t.patch
+e3c6ba7b4871f515fa4b79537e9219e406bdd8c13740d330417d402b7c754f1b43c5e2ba7757c45d429e868d7b3a0875802ff632b2115caaaf61b655330bf7e7 0004-Use-configure-test-for-struct-timespec.patch
+84f5067df06b025458729f0b2af31a1a54bf64a8a22ab41a45eb6ff2d52daad0ea88ecd4a21788c1dcd845191360b927c6968a23608e0e997a051a3de1f3b4ab 0005-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch
+def3873694122b7ef789ae130bd334f4ba82429d570e49073c4f1884f246d9aa560a8fd8004dfd95cb67c4602e423d8de0990a991a46366381c25f5c717baf2a 0006-Use-configure-to-test-for-feature-instead-of-platfor.patch
+c68eefd71202cf76f97f6148675b1241a7ad812343b133e1ceb1047c5c2d5d6a3a4997663a6a7c5b94b28b75a3f8d9d5d51ca26e8c8ac859a4c241f62aceedfd 0007-Fix-vmblock-linux-detection.patch
+db9251502ca05cc3ddb111ee192300897615c30b1e17a9a1f62266bba687b7216d9a4d824b9ff61811c3750a4d733dd8fa9a548f1c455893eccbb10fdaec232f 0008-Use-configure-test-for-sys-stat.h-include.patch
+b873864da2073e57cc7e1dad6b48200ad0b931d9448a60273e55bb2d44cb34c2eb6b1a2346c1708791e0add81a70d487966f2270a2bdf163cdfa37d38a2c0926 0009-Rename-poll.h-to-vm_poll.h.patch
+d2acbc98b79e0a41545443c1195807034b37083a6e7160d74af1173acd6a2d6e14a8e5f909bd17db80c0c93e1d8f34d7278902bd272b672dae412e7cb504517e 0010-Add-support-for-building-with-system-libtirpc.patch
+fafe0fe92133ac385121192781fc519a4c66945a46d4a7f4ddfb679c7ce4fd869023ff4c736da367bf83b3664dcacf3c1000e8e27d2e44b210e25eaa8560a370 0011-gnu-ucontext.patch
c675323a823b3069a281d1b2c1dedccd9d9959e36cffb4763ab72fcf7e828fb1a048a20e005c15a46697a98a61e073bcd778db427a6f77c7b24ac20133f95695 open-vm-tools.initd"
diff --git a/main/open-vm-tools/fts.patch b/main/open-vm-tools/fts.patch
deleted file mode 100644
index e4a5eaf039..0000000000
--- a/main/open-vm-tools/fts.patch
+++ /dev/null
@@ -1,21 +0,0 @@
---- open-vm-tools-9.4.6-1770165.orig/configure.ac
-+++ open-vm-tools-9.4.6-1770165/configure.ac
-@@ -772,6 +772,7 @@
- ###
-
- AC_CHECK_HEADERS([crypt.h])
-+AC_CHECK_HEADERS([fts.h])
- AC_CHECK_HEADERS([inttypes.h])
- AC_CHECK_HEADERS([stdint.h])
- AC_CHECK_HEADERS([stdlib.h])
---- open-vm-tools-9.4.6-1770165.orig/lib/file/filePosix.c
-+++ open-vm-tools-9.4.6-1770165/lib/file/filePosix.c
-@@ -99,7 +99,7 @@
- * happens the prosix version should be updated to use the generic code.
- */
-
--#if defined(__USE_FILE_OFFSET64) || defined(sun) || defined(__ANDROID__)
-+#if defined(__USE_FILE_OFFSET64) || defined(sun) || defined(__ANDROID__) || !defined(HAVE_FTS_H)
- # define CAN_USE_FTS 0
- #else
- # define CAN_USE_FTS 1
diff --git a/main/open-vm-tools/linux-is-not-gnu.patch b/main/open-vm-tools/linux-is-not-gnu.patch
deleted file mode 100644
index 3045d536dc..0000000000
--- a/main/open-vm-tools/linux-is-not-gnu.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- open-vm-tools-9.4.6-1770165.orig/lib/include/vm_basic_defs.h
-+++ open-vm-tools-9.4.6-1770165/lib/include/vm_basic_defs.h
-@@ -550,7 +550,7 @@
- #endif
- #endif
-
--#if defined __linux__ && !defined __KERNEL__ && !defined MODULE && \
-+#if defined __GLIBC__ && !defined __KERNEL__ && !defined MODULE && \
- !defined VMM && !defined FROBOS && !defined __ANDROID__
- #include <features.h>
- #if __GLIBC_PREREQ(2, 1) && !defined GLIBC_VERSION_21
diff --git a/main/open-vm-tools/musl-regs.patch b/main/open-vm-tools/musl-regs.patch
deleted file mode 100644
index 9d0236da7c..0000000000
--- a/main/open-vm-tools/musl-regs.patch
+++ /dev/null
@@ -1,95 +0,0 @@
---- open-vm-tools-9.4.6-1770165.orig/lib/include/sigPosixRegs.h
-+++ open-vm-tools-9.4.6-1770165/lib/include/sigPosixRegs.h
-@@ -37,7 +37,7 @@
- # define _GNU_SOURCE // _GNU_SOURCE maps to __USE_GNU
-
- /* And, the REG_foo definitions conflict with our own in x86.h */
--# if defined(__x86_64__)
-+# if defined(__x86_64__) && defined(__GLIBC__)
- # define REG_RAX GNU_REG_RAX
- # define REG_RBX GNU_REG_RBX
- # define REG_RCX GNU_REG_RCX
-@@ -55,7 +55,7 @@
- # define REG_R13 GNU_REG_R13
- # define REG_R14 GNU_REG_R14
- # define REG_R15 GNU_REG_R15
--# elif defined(__i386__)
-+# elif defined(__i386__) && defined(__GLIBC__)
- # define REG_EAX GNU_REG_EAX
- # define REG_EBX GNU_REG_EBX
- # define REG_ECX GNU_REG_ECX
-@@ -73,7 +73,7 @@
- #include <sys/ucontext.h>
- #endif
-
--#if __linux__
-+#if __GLIBC__
- # if defined(__x86_64__)
- # undef REG_RAX
- # undef REG_RBX
-@@ -219,23 +219,23 @@
- #define SC_EIP(uc) ((unsigned long) (uc)->uc_mcontext.eip)
- #else
- #ifdef __x86_64__
--#define SC_EAX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[GNU_REG_RAX])
--#define SC_EBX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[GNU_REG_RBX])
--#define SC_ECX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[GNU_REG_RCX])
--#define SC_EDX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[GNU_REG_RDX])
--#define SC_EDI(uc) ((unsigned long) (uc)->uc_mcontext.gregs[GNU_REG_RDI])
--#define SC_ESI(uc) ((unsigned long) (uc)->uc_mcontext.gregs[GNU_REG_RSI])
--#define SC_EBP(uc) ((unsigned long) (uc)->uc_mcontext.gregs[GNU_REG_RBP])
--#define SC_ESP(uc) ((unsigned long) (uc)->uc_mcontext.gregs[GNU_REG_RSP])
--#define SC_EIP(uc) ((unsigned long) (uc)->uc_mcontext.gregs[GNU_REG_RIP])
--#define SC_R8(uc) ((unsigned long) (uc)->uc_mcontext.gregs[GNU_REG_R8])
--#define SC_R9(uc) ((unsigned long) (uc)->uc_mcontext.gregs[GNU_REG_R9])
--#define SC_R10(uc) ((unsigned long) (uc)->uc_mcontext.gregs[GNU_REG_R10])
--#define SC_R11(uc) ((unsigned long) (uc)->uc_mcontext.gregs[GNU_REG_R11])
--#define SC_R12(uc) ((unsigned long) (uc)->uc_mcontext.gregs[GNU_REG_R12])
--#define SC_R13(uc) ((unsigned long) (uc)->uc_mcontext.gregs[GNU_REG_R13])
--#define SC_R14(uc) ((unsigned long) (uc)->uc_mcontext.gregs[GNU_REG_R14])
--#define SC_R15(uc) ((unsigned long) (uc)->uc_mcontext.gregs[GNU_REG_R15])
-+#define SC_EAX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_RAX])
-+#define SC_EBX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_RBX])
-+#define SC_ECX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_RCX])
-+#define SC_EDX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_RDX])
-+#define SC_EDI(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_RDI])
-+#define SC_ESI(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_RSI])
-+#define SC_EBP(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_RBP])
-+#define SC_ESP(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_RSP])
-+#define SC_EIP(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_RIP])
-+#define SC_R8(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_R8])
-+#define SC_R9(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_R9])
-+#define SC_R10(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_R10])
-+#define SC_R11(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_R11])
-+#define SC_R12(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_R12])
-+#define SC_R13(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_R13])
-+#define SC_R14(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_R14])
-+#define SC_R15(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_R15])
- #elif defined(__arm__)
- #define SC_R0(uc) ((unsigned long) (uc)->uc_mcontext.arm_r0)
- #define SC_R1(uc) ((unsigned long) (uc)->uc_mcontext.arm_r1)
-@@ -254,15 +254,15 @@
- #define SC_LR(uc) ((unsigned long) (uc)->uc_mcontext.arm_lr)
- #define SC_PC(uc) ((unsigned long) (uc)->uc_mcontext.arm_pc)
- #else
--#define SC_EAX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[GNU_REG_EAX])
--#define SC_EBX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[GNU_REG_EBX])
--#define SC_ECX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[GNU_REG_ECX])
--#define SC_EDX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[GNU_REG_EDX])
--#define SC_EDI(uc) ((unsigned long) (uc)->uc_mcontext.gregs[GNU_REG_EDI])
--#define SC_ESI(uc) ((unsigned long) (uc)->uc_mcontext.gregs[GNU_REG_ESI])
--#define SC_EBP(uc) ((unsigned long) (uc)->uc_mcontext.gregs[GNU_REG_EBP])
--#define SC_ESP(uc) ((unsigned long) (uc)->uc_mcontext.gregs[GNU_REG_ESP])
--#define SC_EIP(uc) ((unsigned long) (uc)->uc_mcontext.gregs[GNU_REG_EIP])
-+#define SC_EAX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_EAX])
-+#define SC_EBX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_EBX])
-+#define SC_ECX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_ECX])
-+#define SC_EDX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_EDX])
-+#define SC_EDI(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_EDI])
-+#define SC_ESI(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_ESI])
-+#define SC_EBP(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_EBP])
-+#define SC_ESP(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_ESP])
-+#define SC_EIP(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_EIP])
- #endif
- #endif
-
diff --git a/main/open-vm-tools/posix-perms.patch b/main/open-vm-tools/posix-perms.patch
deleted file mode 100644
index ddffb20cbb..0000000000
--- a/main/open-vm-tools/posix-perms.patch
+++ /dev/null
@@ -1,33 +0,0 @@
---- open-vm-tools-9.4.6-1770165.orig/lib/hgfsServer/hgfsServerLinux.c
-+++ open-vm-tools-9.4.6-1770165/lib/hgfsServer/hgfsServerLinux.c
-@@ -89,8 +89,10 @@
- * ALLPERMS (mode 07777) and ACCESSPERMS (mode 0777) are not defined in the
- * Solaris version of <sys/stat.h>.
- */
--#ifdef sun
-+#ifndef ACCESSPERMS
- # define ACCESSPERMS (S_IRWXU|S_IRWXG|S_IRWXO)
-+#endif
-+#ifndef ALLPERMS
- # define ALLPERMS (S_ISUID|S_ISGID|S_ISVTX|S_IRWXU|S_IRWXG|S_IRWXO)
- #endif
-
---- open-vm-tools-9.4.6-1770165.orig/services/plugins/dndcp/dnd/dndLinux.c
-+++ open-vm-tools-9.4.6-1770165/services/plugins/dndcp/dnd/dndLinux.c
-@@ -51,7 +51,7 @@
-
- #define DND_ROOTDIR_PERMS (S_IRWXU | S_IRWXG | S_IRWXO)
- #define DND_STAGINGDIR_PERMS (S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH)
--#ifdef sun
-+#ifndef ACCESSPERMS
- #define ACCESSPERMS (S_IRWXU | S_IRWXG | S_IRWXO)
- #endif
- #ifdef __ANDROID__
-@@ -60,7 +60,6 @@
- */
- #define NO_SETMNTENT
- #define NO_ENDMNTENT
--#define ACCESSPERMS (S_IRWXU | S_IRWXG | S_IRWXO)
- #endif
-
-
diff --git a/main/open-vm-tools/setresuid.patch b/main/open-vm-tools/setresuid.patch
deleted file mode 100644
index 308d6a78c5..0000000000
--- a/main/open-vm-tools/setresuid.patch
+++ /dev/null
@@ -1,50 +0,0 @@
---- open-vm-tools-9.4.6-1770165.orig/configure.ac
-+++ open-vm-tools-9.4.6-1770165/configure.ac
-@@ -575,6 +575,7 @@
-
- AC_CHECK_FUNCS([ecvt])
- AC_CHECK_FUNCS([fcvt])
-+AC_CHECK_FUNCS([setresuid setresgid])
-
- if test "$os" = "freebsd" -a "$osVersion" -ge 600000; then
- AC_CHECK_LIB(
---- open-vm-tools-9.4.6-1770165.orig/lib/procMgr/procMgrPosix.c
-+++ open-vm-tools-9.4.6-1770165/lib/procMgr/procMgrPosix.c
-@@ -137,7 +137,7 @@
- #define BASH_PATH "/bin/bash"
- #endif
-
--#if defined(linux) && !defined(GLIBC_VERSION_23) && !defined(__UCLIBC__)
-+#if defined(linux)
- /*
- * Implements the system calls (they are not wrapped by glibc til 2.3.2).
- *
-@@ -146,7 +146,7 @@
- *
- * (In fact, newer Linux kernels don't even define _syscall macros anymore.)
- */
--
-+#ifndef HAVE_SETRESUID
- static INLINE int
- setresuid(uid_t ruid,
- uid_t euid,
-@@ -154,8 +154,9 @@
- {
- return syscall(__NR_setresuid, ruid, euid, suid);
- }
-+#endif
-
--
-+#ifndef HAVE_SETRESGID
- static INLINE int
- setresgid(gid_t ruid,
- gid_t euid,
-@@ -163,6 +164,8 @@
- {
- return syscall(__NR_setresgid, ruid, euid, suid);
- }
-+#endif
-+
- #endif
-
-
diff --git a/main/open-vm-tools/struct_timespec.patch b/main/open-vm-tools/struct_timespec.patch
deleted file mode 100644
index a2c536794a..0000000000
--- a/main/open-vm-tools/struct_timespec.patch
+++ /dev/null
@@ -1,27 +0,0 @@
---- open-vm-tools-9.4.6-1770165.orig/configure.ac
-+++ open-vm-tools-9.4.6-1770165/configure.ac
-@@ -837,6 +837,7 @@
- AC_TYPE_PID_T
- AC_TYPE_SIZE_T
- AC_CHECK_MEMBERS([struct stat.st_rdev])
-+AC_CHECK_MEMBERS([struct timespec.tv_sec],[],[],[[#include <time.h>]])
- AC_HEADER_TIME
- AC_STRUCT_TM
- AC_C_VOLATILE
---- open-vm-tools-9.4.6-1770165.orig/lib/include/hgfsUtil.h
-+++ open-vm-tools-9.4.6-1770165/lib/include/hgfsUtil.h
-@@ -53,13 +53,7 @@
- # include <time.h>
- # endif
- # include "vm_basic_types.h"
--# if !defined _STRUCT_TIMESPEC && \
-- !defined _TIMESPEC_DECLARED && \
-- !defined __timespec_defined && \
-- !defined sun && \
-- !defined __FreeBSD__ && \
-- !__APPLE__ && \
-- !defined _WIN32
-+# if !defined HAVE_STRUCT_TIMESPEC_TV_SEC
- struct timespec {
- time_t tv_sec;
- long tv_nsec;
diff --git a/main/open-vm-tools/sys-stat.patch b/main/open-vm-tools/sys-stat.patch
deleted file mode 100644
index 14492c7aa8..0000000000
--- a/main/open-vm-tools/sys-stat.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- open-vm-tools-9.4.6-1770165.orig/services/plugins/vix/vixTools.c
-+++ open-vm-tools-9.4.6-1770165/services/plugins/vix/vixTools.c
-@@ -54,7 +54,7 @@
- #include <unistd.h>
- #endif
-
--#if defined(sun) || defined(__FreeBSD__) || defined(__APPLE__)
-+#ifdef HAVE_SYS_STAT_H
- #include <sys/stat.h>
- #endif
-
diff --git a/main/open-vm-tools/tirpc.patch b/main/open-vm-tools/tirpc.patch
deleted file mode 100644
index 203c3201cd..0000000000
--- a/main/open-vm-tools/tirpc.patch
+++ /dev/null
@@ -1,192 +0,0 @@
---- open-vm-tools-9.4.6-1770165.orig/configure.ac
-+++ open-vm-tools-9.4.6-1770165/configure.ac
-@@ -367,6 +367,20 @@
- AC_MSG_WARN([Fuse is missing, vmblock-fuse will be disabled.])])
-
- #
-+# Check for libtirpc
-+#
-+AC_VMW_CHECK_LIB([libtirpc],
-+ [LIBTIRPC],
-+ [libtirpc],
-+ [],
-+ [],
-+ [rpc/xdr.h],
-+ [xdr_void],
-+ [have_libtirpc=yes],
-+ [have_libtitirpc=no;
-+ AC_MSG_WARN([libtirpc is missing.])])
-+
-+#
- # Check for PAM.
- #
- AC_ARG_WITH([pam],
---- open-vm-tools-9.4.6-1770165.orig/lib/dynxdr/Makefile.am
-+++ open-vm-tools-9.4.6-1770165/lib/dynxdr/Makefile.am
-@@ -21,3 +21,9 @@
- libDynxdr_la_SOURCES += dynxdr.c
- libDynxdr_la_SOURCES += xdrutil.c
-
-+libDynxdr_la_CPPFLAGS =
-+libDynxdr_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
-+
-+libDynxdr_la_LIBADD =
-+libDynxdr_la_LIBADD += @LIBTIRPC_LIBS@
-+
---- open-vm-tools-9.4.6-1770165.orig/lib/guestRpc/Makefile.am
-+++ open-vm-tools-9.4.6-1770165/lib/guestRpc/Makefile.am
-@@ -20,6 +20,12 @@
- libGuestRpc_la_SOURCES =
- libGuestRpc_la_SOURCES += nicinfo_xdr.c
-
-+libGuestRpc_la_CPPFLAGS =
-+libGuestRpc_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
-+
-+libGuestRpc_la_LIBADD =
-+libGuestRpc_la_LIBADD += @LIBTIRPC_LIBS@
-+
- # XXX: Autoreconf complains about this and recommends using AM_CFLAGS instead.
- # Problem is, $(CFLAGS) is appended to the compiler command line after AM_CFLAGS
- # and after libGuestRpc_la_CFLAGS, so "-Wall -Werror" will override this flag.
---- open-vm-tools-9.4.6-1770165.orig/lib/netUtil/Makefile.am
-+++ open-vm-tools-9.4.6-1770165/lib/netUtil/Makefile.am
-@@ -20,3 +20,7 @@
- libNetUtil_la_SOURCES =
- libNetUtil_la_SOURCES += netUtilLinux.c
-
-+libNetUtil_la_CPPFLAGS =
-+libNetUtil_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
-+
-+libNetUtil_la_LIBADD = @LIBTIRPC_LIBS@
---- open-vm-tools-9.4.6-1770165.orig/lib/rpcChannel/Makefile.am
-+++ open-vm-tools-9.4.6-1770165/lib/rpcChannel/Makefile.am
-@@ -23,3 +23,7 @@
-
- libRpcChannel_la_CPPFLAGS =
- libRpcChannel_la_CPPFLAGS += @VMTOOLS_CPPFLAGS@
-+libRpcChannel_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
-+
-+libRpcChannel_la_LIBADD =
-+libRpcChannel_la_LIBADD += @LIBTIRPC_LIBS@
---- open-vm-tools-9.4.6-1770165.orig/libguestlib/Makefile.am
-+++ open-vm-tools-9.4.6-1770165/libguestlib/Makefile.am
-@@ -22,11 +22,15 @@
-
- libguestlib_la_LIBADD =
- libguestlib_la_LIBADD += @VMTOOLS_LIBS@
-+libguestlib_la_LIBADD += @LIBTIRPC_LIBS@
-
- libguestlib_la_SOURCES =
- libguestlib_la_SOURCES += guestlibV3_xdr.c
- libguestlib_la_SOURCES += guestlibIoctl_xdr.c
- libguestlib_la_SOURCES += vmGuestLib.c
-+
-+libguestlib_la_CPPFLAGS =
-+libguestlib_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
-
- libguestlib_la_LDFLAGS =
- # We require GCC, so we're fine passing compiler-specific flags.
---- open-vm-tools-9.4.6-1770165.orig/services/plugins/dndcp/Makefile.am
-+++ open-vm-tools-9.4.6-1770165/services/plugins/dndcp/Makefile.am
-@@ -24,6 +24,7 @@
- libdndcp_la_CPPFLAGS += @GTK_CPPFLAGS@
- libdndcp_la_CPPFLAGS += @GTKMM_CPPFLAGS@
- libdndcp_la_CPPFLAGS += @PLUGIN_CPPFLAGS@
-+libdndcp_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
- libdndcp_la_CPPFLAGS += -I$(top_srcdir)/services/plugins/dndcp/dnd
- libdndcp_la_CPPFLAGS += -I$(top_srcdir)/services/plugins/dndcp/dndGuest
- libdndcp_la_CPPFLAGS += -I$(top_srcdir)/services/plugins/dndcp/stringxx
-@@ -38,6 +39,7 @@
- libdndcp_la_LIBADD += @GTKMM_LIBS@
- libdndcp_la_LIBADD += @VMTOOLS_LIBS@
- libdndcp_la_LIBADD += @HGFS_LIBS@
-+libdndcp_la_LIBADD += @LIBTIRPC_LIBS@
-
- libdndcp_la_SOURCES =
-
---- open-vm-tools-9.4.6-1770165.orig/services/plugins/guestInfo/getlib/Makefile.am
-+++ open-vm-tools-9.4.6-1770165/services/plugins/guestInfo/getlib/Makefile.am
-@@ -25,7 +25,11 @@
-
- libGuestInfo_la_CPPFLAGS =
- libGuestInfo_la_CPPFLAGS += @GLIB2_CPPFLAGS@
-+libGuestInfo_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
- libGuestInfo_la_CPPFLAGS += -I$(srcdir)/..
-+
-+libGuestInfo_la_LIBADD =
-+libGuestInfo_la_LIBADD += @LIBTIRPC_LIBS@
-
- AM_CFLAGS = $(DNET_CPPFLAGS)
-
---- open-vm-tools-9.4.6-1770165.orig/services/plugins/guestInfo/Makefile.am
-+++ open-vm-tools-9.4.6-1770165/services/plugins/guestInfo/Makefile.am
-@@ -23,6 +23,7 @@
-
- libguestInfo_la_CPPFLAGS =
- libguestInfo_la_CPPFLAGS += @PLUGIN_CPPFLAGS@
-+libguestInfo_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
-
- libguestInfo_la_LDFLAGS =
- libguestInfo_la_LDFLAGS += @PLUGIN_LDFLAGS@
-@@ -31,6 +32,7 @@
- libguestInfo_la_LIBADD += @VMTOOLS_LIBS@
- libguestInfo_la_LIBADD += @PROCPS_LIBS@
- libguestInfo_la_LIBADD += @XDR_LIBS@
-+libguestInfo_la_LIBADD += @LIBTIRPC_LIBS@
- libguestInfo_la_LIBADD += getlib/libGuestInfo.la
-
- if HAVE_DNET
---- open-vm-tools-9.4.6-1770165.orig/services/plugins/resolutionSet/Makefile.am
-+++ open-vm-tools-9.4.6-1770165/services/plugins/resolutionSet/Makefile.am
-@@ -21,6 +21,7 @@
- libresolutionSet_la_CPPFLAGS =
- libresolutionSet_la_CPPFLAGS += @GTK_CPPFLAGS@
- libresolutionSet_la_CPPFLAGS += @PLUGIN_CPPFLAGS@
-+libresolutionSet_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
- libresolutionSet_la_CPPFLAGS += -DRESOLUTION_X11
-
- libresolutionSet_la_LDFLAGS =
-@@ -30,6 +31,7 @@
- libresolutionSet_la_LIBADD += @COMMON_XLIBS@
- libresolutionSet_la_LIBADD += @GTK_LIBS@
- libresolutionSet_la_LIBADD += @VMTOOLS_LIBS@
-+libresolutionSet_la_LIBADD += @LIBTIRPC_LIBS@
-
- libresolutionSet_la_SOURCES =
- libresolutionSet_la_SOURCES += libvmwarectrl.c
---- open-vm-tools-9.4.6-1770165.orig/services/plugins/vix/Makefile.am
-+++ open-vm-tools-9.4.6-1770165/services/plugins/vix/Makefile.am
-@@ -20,6 +20,7 @@
-
- libvix_la_CPPFLAGS =
- libvix_la_CPPFLAGS += @PLUGIN_CPPFLAGS@
-+libvix_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
-
- libvix_la_LDFLAGS =
- libvix_la_LDFLAGS += @PLUGIN_LDFLAGS@
-@@ -28,6 +29,7 @@
- libvix_la_LIBADD += @VIX_LIBADD@
- libvix_la_LIBADD += @VMTOOLS_LIBS@
- libvix_la_LIBADD += @HGFS_LIBS@
-+libvix_la_LIBADD += @LIBTIRPC_LIBS@
- libvix_la_LIBADD += $(top_builddir)/lib/auth/libAuth.la
- libvix_la_LIBADD += $(top_builddir)/lib/foundryMsg/libFoundryMsg.la
- libvix_la_LIBADD += $(top_builddir)/lib/impersonate/libImpersonate.la
---- open-vm-tools-9.4.6-1770165.orig/services/plugins/vmbackup/Makefile.am
-+++ open-vm-tools-9.4.6-1770165/services/plugins/vmbackup/Makefile.am
-@@ -20,6 +20,7 @@
-
- libvmbackup_la_CPPFLAGS =
- libvmbackup_la_CPPFLAGS += @PLUGIN_CPPFLAGS@
-+libvmbackup_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
-
- libvmbackup_la_LDFLAGS =
- libvmbackup_la_LDFLAGS += @PLUGIN_LDFLAGS@
-@@ -27,6 +28,7 @@
- libvmbackup_la_LIBADD =
- libvmbackup_la_LIBADD += @GOBJECT_LIBS@
- libvmbackup_la_LIBADD += @VMTOOLS_LIBS@
-+libvmbackup_la_LIBADD += @LIBTIRPC_LIBS@
-
- libvmbackup_la_SOURCES =
- libvmbackup_la_SOURCES += nullProvider.c
diff --git a/main/open-vm-tools/werror.patch b/main/open-vm-tools/werror.patch
deleted file mode 100644
index cd203cf81d..0000000000
--- a/main/open-vm-tools/werror.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- ./configure.ac.orig
-+++ ./configure.ac
-@@ -832,7 +832,6 @@
-
- ### General flags / actions
- CFLAGS="$CFLAGS -Wall"
--CFLAGS="$CFLAGS -Werror"
-
- # -Wno-unknown-pragmas is due to gcc not understanding '#pragma ident' in Xlib.h on OpenSolaris.
- for TEST_CFLAG in -Wno-pointer-sign -Wno-unused-value -fno-strict-aliasing \