diff options
Diffstat (limited to 'main/open-vm-tools')
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 \ |