added my Recipes

This commit is contained in:
2024-07-11 14:16:35 +02:00
parent 38bc4f53ac
commit 09b621d929
7118 changed files with 525762 additions and 3 deletions

View File

@@ -0,0 +1,72 @@
From c1ee0b0a0a05379d0e6475dfceaaf41876192640 Mon Sep 17 00:00:00 2001
From: Trevor Gamblin <trevor.gamblin@windriver.com>
Date: Wed, 14 Apr 2021 10:24:52 -0400
Subject: [PATCH] Add resolv_compat.h for musl builds
musl doesn't implement res_ninit, so it needs to be defined
independently for musl builds. This patch is based on the one at
https://gitweb.gentoo.org/proj/musl.git/tree/dev-qt/qtwebengine/files/qtwebengine-5.7.0-musl-resolver.patch?id=7f4100326793d55d45d0f5bb6178827ce6173513
Upstream-Status: Pending
Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
---
open-vm-tools/lib/nicInfo/nicInfoPosix.c | 4 +++
open-vm-tools/lib/nicInfo/resolv_compat.h | 30 +++++++++++++++++++++++
2 files changed, 34 insertions(+)
create mode 100644 open-vm-tools/lib/nicInfo/resolv_compat.h
diff --git a/open-vm-tools/lib/nicInfo/nicInfoPosix.c b/open-vm-tools/lib/nicInfo/nicInfoPosix.c
index c56b73cfe..8ae3b2f74 100644
--- a/open-vm-tools/lib/nicInfo/nicInfoPosix.c
+++ b/open-vm-tools/lib/nicInfo/nicInfoPosix.c
@@ -70,6 +70,10 @@
# include <net/if.h>
#endif
+#if !defined(__GLIBC__)
+#include "resolv_compat.h"
+#endif
+
/*
* resolver(3) and IPv6:
*
diff --git a/open-vm-tools/lib/nicInfo/resolv_compat.h b/open-vm-tools/lib/nicInfo/resolv_compat.h
new file mode 100644
index 000000000..d768464b9
--- /dev/null
+++ b/open-vm-tools/lib/nicInfo/resolv_compat.h
@@ -0,0 +1,30 @@
+#if !defined(__GLIBC__)
+/***************************************************************************
+ * resolv_compat.h
+ *
+ * Mimick GLIBC's res_ninit() and res_nclose() for musl libc
+ * Note: res_init() is actually deprecated according to
+ * http://docs.oracle.com/cd/E36784_01/html/E36875/res-nclose-3resolv.html
+ **************************************************************************/
+#include <string.h>
+
+static inline int res_ninit(res_state statp)
+{
+ int rc = res_init();
+ if (statp != &_res) {
+ memcpy(statp, &_res, sizeof(*statp));
+ }
+ return rc;
+}
+
+static inline int res_nclose(res_state statp)
+{
+ if (!statp)
+ return -1;
+ if (statp != &_res) {
+ memset(statp, 0, sizeof(*statp));
+ }
+ return 0;
+}
+#endif
+
--
2.25.1

View File

@@ -0,0 +1,41 @@
From c953564b9f029b31381a2c630b47133ffe6a33e7 Mon Sep 17 00:00:00 2001
From: Martin Kelly <mkelly@xevo.com>
Date: Fri, 7 Apr 2017 15:20:30 -0700
Subject: [PATCH] configure.ac: don't use dnet-config
The dnet-config tool doesn't know about cross-compilation, so it injects
-I/usr/include into the path, causing compiler errors. So instead find dnet via
-ldnet.
Upstream-Status: Inappropriate [embedded specific]
Signed-off-by: Martin Kelly <mkelly@xevo.com>
---
open-vm-tools/configure.ac | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/open-vm-tools/configure.ac b/open-vm-tools/configure.ac
index 3c058135a..124781f99 100644
--- a/open-vm-tools/configure.ac
+++ b/open-vm-tools/configure.ac
@@ -1227,7 +1227,7 @@ if test "$with_dnet" = "yes"; then
AC_VMW_CHECK_LIB([dnet],
[DNET],
[],
- [dnet-config],
+ [],
[],
[dnet.h],
[intf_open],
@@ -1237,7 +1237,7 @@ if test "$with_dnet" = "yes"; then
if test $have_dnet = "no"; then
AC_MSG_ERROR(
- [dnet-config was not found on your PATH. Please configure without dnet or install dnet - http://libdnet.sourceforge.net])
+ [dnet was not found. Please configure without dnet (using --without-dnet) or install dnet - http://libdnet.sourceforge.net])
fi
fi
--
2.25.1

View File

@@ -0,0 +1,54 @@
From dcb5d3e5d47b1e01fdcde575badc51825d4f4681 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 3 Jan 2023 13:36:01 -0800
Subject: [PATCH] timeSync: Portable way to print 64bit time_t
This ensures when 64bit time_t is used on 32bit architectures (
-D_TIME_BITS=64 ) then it can print it correctly as well.
Fixes
pllLinux.c:43:20: error: format specifies type 'long' but the argument has type 'long long' [-Werror,-Wformat]
| prefix, tx->offset, tx->freq, tx->maxerror, tx->esterror,
| ^~~~~~~~~~
Upstream-Status: Submitted [https://github.com/vmware/open-vm-tools/pull/631]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
open-vm-tools/services/plugins/timeSync/pllLinux.c | 8 ++++----
open-vm-tools/services/plugins/timeSync/slewLinux.c | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/open-vm-tools/services/plugins/timeSync/pllLinux.c b/open-vm-tools/services/plugins/timeSync/pllLinux.c
index e9c8e61de..90ba8c63f 100644
--- a/open-vm-tools/services/plugins/timeSync/pllLinux.c
+++ b/open-vm-tools/services/plugins/timeSync/pllLinux.c
@@ -38,10 +38,10 @@
static void
TimeSyncLogPLLState(const char *prefix, struct timex *tx)
{
- g_debug("%s : off %ld freq %ld maxerr %ld esterr %ld status %d "
- "const %ld precision %ld tolerance %ld tick %ld\n",
- prefix, tx->offset, tx->freq, tx->maxerror, tx->esterror,
- tx->status, tx->constant, tx->precision, tx->tolerance, tx->tick);
+ g_debug("%s : off %jd freq %jd maxerr %jd esterr %jd status %d "
+ "const %jd precision %jd tolerance %jd tick %jd\n",
+ prefix, (intmax_t)tx->offset, (intmax_t)tx->freq, (intmax_t)tx->maxerror, (intmax_t)tx->esterror,
+ tx->status, (intmax_t)tx->constant, (intmax_t)tx->precision, (intmax_t)tx->tolerance, (intmax_t)tx->tick);
}
/*
diff --git a/open-vm-tools/services/plugins/timeSync/slewLinux.c b/open-vm-tools/services/plugins/timeSync/slewLinux.c
index 1ab6e3584..0c304b5d7 100644
--- a/open-vm-tools/services/plugins/timeSync/slewLinux.c
+++ b/open-vm-tools/services/plugins/timeSync/slewLinux.c
@@ -156,6 +156,6 @@ TimeSync_Slew(int64 delta,
g_debug("adjtimex failed: %s\n", strerror(errno));
return FALSE;
}
- g_debug("time slew start: %ld\n", tx.tick);
+ g_debug("time slew start: %jd\n", (intmax_t)tx.tick);
return TRUE;
}
--
2.39.0

View File

@@ -0,0 +1,48 @@
From 6384b37cdef4ea868c3cee27bb627e4cfbab7b50 Mon Sep 17 00:00:00 2001
From: Natanael Copa <ncopa@alpinelinux.org>
Date: Wed, 18 Nov 2015 09:03:00 +0000
Subject: [PATCH] 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 124781f99..05f37f275 100644
--- a/open-vm-tools/configure.ac
+++ b/open-vm-tools/configure.ac
@@ -1441,6 +1441,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 609f4c000..a3a022d42 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.25.1

View File

@@ -0,0 +1,61 @@
From 6be6cda5aea42b951212ec5f8a72778b1ef9c2da Mon Sep 17 00:00:00 2001
From: Natanael Copa <ncopa@alpinelinux.org>
Date: Wed, 18 Nov 2015 09:10:14 +0000
Subject: [PATCH] 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 63c4e65f0..87d419a7b 100644
--- a/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
+++ b/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
@@ -105,11 +105,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 219065f74..b5b7e6203 100644
--- a/open-vm-tools/services/plugins/dndcp/dnd/dndLinux.c
+++ b/open-vm-tools/services/plugins/dndcp/dnd/dndLinux.c
@@ -53,7 +53,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__
@@ -62,7 +62,6 @@
*/
#define NO_SETMNTENT
#define NO_ENDMNTENT
-#define ACCESSPERMS (S_IRWXU | S_IRWXG | S_IRWXO)
#endif
--
2.25.1

View File

@@ -0,0 +1,141 @@
From 9d22fba096cd77101fc45420c918ec748d2cc31b Mon Sep 17 00:00:00 2001
From: Natanael Copa <ncopa@alpinelinux.org>
Date: Wed, 18 Nov 2015 10:05:07 +0000
Subject: [PATCH] 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
- issetugid
- __secure_getenv
This is needed for musl libc.
Refit patch of open-vm-tools/lib/nicInfo/nicInfoPosix.c
Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
Signed-off-by: Randy MacLeod <randy.macleod@windriver.com>
---
open-vm-tools/configure.ac | 4 ++++
open-vm-tools/lib/misc/idLinux.c | 30 +++++++++++-------------
open-vm-tools/lib/nicInfo/nicInfoPosix.c | 6 ++++-
3 files changed, 23 insertions(+), 17 deletions(-)
diff --git a/open-vm-tools/configure.ac b/open-vm-tools/configure.ac
index 05f37f275..9a0c63cf6 100644
--- a/open-vm-tools/configure.ac
+++ b/open-vm-tools/configure.ac
@@ -1169,6 +1169,7 @@ AC_CHECK_FUNCS(
AC_CHECK_FUNCS([ecvt])
AC_CHECK_FUNCS([fcvt])
+AC_CHECK_FUNCS([getifaddrs getauxval issetugid __secure_getenv])
AC_CHECK_FUNC([mkdtemp], [have_mkdtemp=yes])
@@ -1378,10 +1379,13 @@ fi
###
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 1bb86f483..41c670cfc 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>
@@ -1025,31 +1022,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 de57a4a90..c56b73cfe 100644
--- a/open-vm-tools/lib/nicInfo/nicInfoPosix.c
+++ b/open-vm-tools/lib/nicInfo/nicInfoPosix.c
@@ -35,9 +35,13 @@
#include <sys/stat.h>
#include <errno.h>
#include <limits.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
--
2.25.1

View File

@@ -0,0 +1,28 @@
From 2bc09bc7d933bc3d91c687e1cc2befdaa38d2c86 Mon Sep 17 00:00:00 2001
From: Natanael Copa <ncopa@alpinelinux.org>
Date: Wed, 18 Nov 2015 10:41:01 +0000
Subject: [PATCH] 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 34f3125d2..cebf4dd8d 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.25.1

View File

@@ -0,0 +1,36 @@
From dbe0943011c24d48de3df5a95f4e4606be0ef250 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 13 Jun 2018 23:48:04 -0700
Subject: [PATCH] Fix subdir objects configure error
Fix build on musl while here
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
open-vm-tools/configure.ac | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/open-vm-tools/configure.ac b/open-vm-tools/configure.ac
index 9a0c63cf6..5845490f6 100644
--- a/open-vm-tools/configure.ac
+++ b/open-vm-tools/configure.ac
@@ -326,7 +326,6 @@ AC_ARG_ENABLE(
[],
[enable_resolutionkms="auto"])
-
AC_ARG_ENABLE(
vmwgfxctrl,
AS_HELP_STRING(
@@ -335,7 +334,7 @@ AC_ARG_ENABLE(
[],
[enable_vmwgfxctrl="auto"])
-AM_INIT_AUTOMAKE
+AM_INIT_AUTOMAKE([subdir-objects])
###
### Constants
--
2.25.1

View File

@@ -0,0 +1,29 @@
From 8c7f5895ed1f98bfc4101f8cfb93af3d13fd6bce Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 13 Jun 2018 23:02:50 -0700
Subject: [PATCH] include poll.h instead of sys/poll.h
including sys/poll.h is deprecated
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
open-vm-tools/lib/asyncsocket/asyncsocket.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/open-vm-tools/lib/asyncsocket/asyncsocket.c b/open-vm-tools/lib/asyncsocket/asyncsocket.c
index 2bf97b549..b285c59c6 100644
--- a/open-vm-tools/lib/asyncsocket/asyncsocket.c
+++ b/open-vm-tools/lib/asyncsocket/asyncsocket.c
@@ -70,8 +70,8 @@
#else
#include <stddef.h>
#include <ctype.h>
+#include <poll.h>
#include <sys/types.h>
-#include <sys/poll.h>
#include <sys/socket.h>
#include <sys/un.h>
#include <netdb.h>
--
2.25.1

View File

@@ -0,0 +1,112 @@
From 0c695d910b3e136e116cdbe0bfc6231dfac255a1 Mon Sep 17 00:00:00 2001
From: Randy MacLeod <Randy.MacLeod@windriver.com>
Date: Wed, 24 Mar 2021 16:21:35 -0400
Subject: [PATCH] Rename poll.h to vm_poll.h
Rename poll.h to vm_poll.h and switch from:
#include <sys/poll.h>
to
#include <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.
Update for open-vm-tools-11.2.5.
Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
---
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/pollImpl.h | 2 +-
open-vm-tools/lib/include/{poll.h => vm_poll.h} | 2 +-
open-vm-tools/lib/rpcIn/rpcin.c | 2 +-
6 files changed, 6 insertions(+), 6 deletions(-)
rename open-vm-tools/lib/include/{poll.h => vm_poll.h} (99%)
diff --git a/open-vm-tools/lib/asyncsocket/asyncsocket.c b/open-vm-tools/lib/asyncsocket/asyncsocket.c
index b285c59c6..5c528820d 100644
--- a/open-vm-tools/lib/asyncsocket/asyncsocket.c
+++ b/open-vm-tools/lib/asyncsocket/asyncsocket.c
@@ -87,7 +87,7 @@
#include "random.h"
#include "asyncsocket.h"
#include "asyncSocketBase.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 98f5b3f06..b436f0c7e 100644
--- a/open-vm-tools/lib/hgfsServer/hgfsServer.c
+++ b/open-vm-tools/lib/hgfsServer/hgfsServer.c
@@ -51,7 +51,7 @@
#include "hgfsDirNotify.h"
#include "hgfsThreadpool.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 dad848093..b61a2561f 100644
--- a/open-vm-tools/lib/include/asyncsocket.h
+++ b/open-vm-tools/lib/include/asyncsocket.h
@@ -171,7 +171,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/pollImpl.h b/open-vm-tools/lib/include/pollImpl.h
index 46442e556..8bc669970 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"
#include "vm_basic_asm.h"
#if defined(__cplusplus)
diff --git a/open-vm-tools/lib/include/poll.h b/open-vm-tools/lib/include/vm_poll.h
similarity index 99%
rename from open-vm-tools/lib/include/poll.h
rename to open-vm-tools/lib/include/vm_poll.h
index ade356b9f..8759fb960 100644
--- a/open-vm-tools/lib/include/poll.h
+++ b/open-vm-tools/lib/include/vm_poll.h
@@ -60,7 +60,7 @@ extern "C" {
#if !defined(TARGET_OS_IPHONE) || TARGET_OS_IPHONE == 0
#include <sys/kernel.h>
#endif
-#include <sys/poll.h>
+#include <poll.h>
#define HZ 100
#endif
#ifdef __ANDROID__
diff --git a/open-vm-tools/lib/rpcIn/rpcin.c b/open-vm-tools/lib/rpcIn/rpcin.c
index 8b1fe759d..f22fcd402 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"
--
2.25.1

View File

@@ -0,0 +1,42 @@
From 921621a098f242953117747f5852d7e3136ae6c4 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 13 Jun 2018 23:16:53 -0700
Subject: [PATCH] use posix strerror_r unless on gnu libc system
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
open-vm-tools/lib/err/errPosix.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/open-vm-tools/lib/err/errPosix.c b/open-vm-tools/lib/err/errPosix.c
index c81b4c13f..7a4036402 100644
--- a/open-vm-tools/lib/err/errPosix.c
+++ b/open-vm-tools/lib/err/errPosix.c
@@ -31,6 +31,7 @@
#include <errno.h>
#include <string.h>
#include <locale.h>
+#include <stdio.h>
#include "vmware.h"
#include "errInt.h"
@@ -63,11 +64,13 @@ ErrErrno2String(Err_Number errorNumber, // IN
{
char *p;
-#if defined(__linux__) && !defined(__ANDROID__)
+#if defined(__GLIBC__) && !defined(__ANDROID__)
p = strerror_r(errorNumber, buf, bufSize);
#else
- p = strerror(errorNumber);
-#endif
+ if (strerror_r(errorNumber, buf, bufSize) != 0)
+ snprintf(buf, bufSize, "unknown error %i", errorNumber);
+ p = buf;
+#endif /* defined __GLIBC__ */
ASSERT(p != NULL);
return p;
}
--
2.25.1

View File

@@ -0,0 +1,36 @@
From b44d1d4e4ba77f1d9cf7de73a3bd210d02b5ff36 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 24 Mar 2021 17:26:53 -0400
Subject: [PATCH] Use uintmax_t for handling rlim_t
rlimit types are not representable with long or long long
formats, therefore use uintmax_t to typecast rlim_t types
and use %j to print it
Refit patch for open-vm-tools-11.2.5.
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
---
open-vm-tools/lib/hgfsServer/hgfsServerLinux.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c b/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
index 87d419a7b..f5cc80b76 100644
--- a/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
+++ b/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
@@ -5301,8 +5301,8 @@ HgfsWriteCheckIORange(off_t offset, // IN:
goto exit;
}
- LOG(6, "%s: File Size limits: 0x%"FMT64"x 0x%"FMT64"x\n",
- __FUNCTION__, fileSize.rlim_cur, fileSize.rlim_max);
+ //LOG(6, ("%s: File Size limits: 0x%jx 0x%jx\n",
+ // __FUNCTION__, (uintmax_t)fileSize.rlim_cur, (uintmax_t)fileSize.rlim_max));
/*
* Check the offset is within the file size range.
--
2.25.1

View File

@@ -0,0 +1,34 @@
From 39a59ab7efe98c880c783b2ccf43e5a137d2b222 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 27 Aug 2018 23:22:21 -0700
Subject: [PATCH] Use off64_t instead of __off64_t
Fixes
unknown type name '__off64_t'
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
open-vm-tools/lib/file/fileIOPosix.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/open-vm-tools/lib/file/fileIOPosix.c b/open-vm-tools/lib/file/fileIOPosix.c
index 492a4bf4a..a80a884cd 100644
--- a/open-vm-tools/lib/file/fileIOPosix.c
+++ b/open-vm-tools/lib/file/fileIOPosix.c
@@ -211,10 +211,10 @@ static AlignedPool alignedPool;
* the symbols (and anyone building XOPEN<700 gets nothing).
*/
extern ssize_t preadv64(int fd, const struct iovec *iov, int iovcnt,
- __off64_t offset) __attribute__ ((weak));
+ off64_t offset) __attribute__ ((weak));
extern ssize_t pwritev64(int fd, const struct iovec *iov, int iovcnt,
- __off64_t offset) __attribute__ ((weak));
+ off64_t offset) __attribute__ ((weak));
#else
#error "Large file support is unavailable."
#endif
--
2.25.1

View File

@@ -0,0 +1,44 @@
From 859c21b9a21c53d936301b05044d0c649d6cf32b Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 24 Mar 2021 17:36:26 -0400
Subject: [PATCH] hgfsServerLinux: Consider 64bit time_t possibility
Upstream-Status: Pending
Refit for open-vm-tools-11.2.5.
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
---
open-vm-tools/lib/hgfsServer/hgfsServerLinux.c | 14 --------------
1 file changed, 14 deletions(-)
diff --git a/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c b/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
index f5cc80b76..5a79d6451 100644
--- a/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
+++ b/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
@@ -2566,20 +2566,6 @@ HgfsStatToFileAttr(struct stat *stats, // IN: stat information
LOG(4, "%s: done, permissions %o%o%o%o, size %"FMT64"u\n", __FUNCTION__,
attr->specialPerms, attr->ownerPerms, attr->groupPerms,
attr->otherPerms, attr->size);
-#ifdef __FreeBSD__
-# if !defined(VM_X86_64) && !defined(VM_ARM_64) && __FreeBSD_version >= 500043
-# define FMTTIMET ""
-# else
-# define FMTTIMET "l"
-# endif
-#else
-# define FMTTIMET "l"
-#endif
- LOG(4, "access: %"FMTTIMET"d/%"FMT64"u \nwrite: %"FMTTIMET"d/%"FMT64"u \n"
- "attr: %"FMTTIMET"d/%"FMT64"u\n",
- stats->st_atime, attr->accessTime, stats->st_mtime, attr->writeTime,
- stats->st_ctime, attr->attrChangeTime);
-#undef FMTTIMET
attr->userId = stats->st_uid;
attr->groupId = stats->st_gid;
--
2.25.1

View File

@@ -0,0 +1,36 @@
From 7f7e00ce582d72013cb54278548d3320e032b0dc Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 7 Feb 2022 13:32:32 -0800
Subject: [PATCH] open-vm-tools: Correct include path for poll.h
sys/poll.h is deprecated and musl calls it out explicitly.
Fixes
| In file included from ../../../../git/open-vm-tools/services/plugins/gdp/gdpPlugin.c:35:
| /mnt/b/yoe/master/build/tmp/work/core2-32-yoe-linux-musl/open-vm-tools/11.3.5-r0/recipe-sysroot/usr/include/sys/poll.h:1:2: error: redirecting incorrect #include <sys/poll.h> to <poll.h> [-Werror,-W#warnings]
| #warning redirecting incorrect #include <sys/poll.h> to <poll.h>
| ^
| 1 error generated.
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
open-vm-tools/services/plugins/gdp/gdpPlugin.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/open-vm-tools/services/plugins/gdp/gdpPlugin.c b/open-vm-tools/services/plugins/gdp/gdpPlugin.c
index 2bba2937e..025339595 100644
--- a/open-vm-tools/services/plugins/gdp/gdpPlugin.c
+++ b/open-vm-tools/services/plugins/gdp/gdpPlugin.c
@@ -32,7 +32,7 @@
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/eventfd.h>
-#include <sys/poll.h>
+#include <poll.h>
#include <unistd.h>
#endif
--
2.25.1

View File

@@ -0,0 +1,163 @@
From 3028cdd4c0b2461b904cbe5a5868c8e591aa0941 Mon Sep 17 00:00:00 2001
From: John Wolfe <jwolfe@vmware.com>
Date: Mon, 8 May 2023 19:04:57 -0700
Subject: [PATCH] Remove some dead code.
Address CVE-2023-20867.
Remove some authentication types which were deprecated long
ago and are no longer in use. These are dead code.
CVE: CVE-2023-20867
Upstream-Status: Backport
[https://github.com/vmware/open-vm-tools/blob/CVE-2023-20867.patch/2023-20867-Remove-some-dead-code.patch]
Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
---
open-vm-tools/services/plugins/vix/vixTools.c | 102 --------------------------
1 file changed, 102 deletions(-)
diff --git a/open-vm-tools/services/plugins/vix/vixTools.c b/open-vm-tools/services/plugins/vix/vixTools.c
index 9f376a7..85c5ba7 100644
--- a/open-vm-tools/services/plugins/vix/vixTools.c
+++ b/open-vm-tools/services/plugins/vix/vixTools.c
@@ -254,8 +254,6 @@ char *gImpersonatedUsername = NULL;
#define VIX_TOOLS_CONFIG_API_AUTHENTICATION "Authentication"
#define VIX_TOOLS_CONFIG_AUTHTYPE_AGENTS "InfrastructureAgents"
-#define VIX_TOOLS_CONFIG_INFRA_AGENT_DISABLED_DEFAULT TRUE
-
/*
* The switch that controls all APIs
*/
@@ -730,9 +728,6 @@ VixError GuestAuthSAMLAuthenticateAndImpersonate(
void GuestAuthUnimpersonate();
-static Bool VixToolsCheckIfAuthenticationTypeEnabled(GKeyFile *confDictRef,
- const char *typeName);
-
#if SUPPORT_VGAUTH
VGAuthError TheVGAuthContext(VGAuthContext **ctx);
@@ -8013,29 +8008,6 @@ VixToolsImpersonateUser(VixCommandRequestHeader *requestMsg, // IN
userToken);
break;
}
- case VIX_USER_CREDENTIAL_ROOT:
- {
- if ((requestMsg->requestFlags & VIX_REQUESTMSG_HAS_HASHED_SHARED_SECRET) &&
- !VixToolsCheckIfAuthenticationTypeEnabled(gConfDictRef,
- VIX_TOOLS_CONFIG_AUTHTYPE_AGENTS)) {
- /*
- * Don't accept hashed shared secret if disabled.
- */
- g_message("%s: Requested authentication type has been disabled.\n",
- __FUNCTION__);
- err = VIX_E_GUEST_AUTHTYPE_DISABLED;
- goto done;
- }
- }
- // fall through
-
- case VIX_USER_CREDENTIAL_CONSOLE_USER:
- err = VixToolsImpersonateUserImplEx(NULL,
- credentialType,
- NULL,
- loadUserProfile,
- userToken);
- break;
case VIX_USER_CREDENTIAL_NAME_PASSWORD:
case VIX_USER_CREDENTIAL_NAME_PASSWORD_OBFUSCATED:
case VIX_USER_CREDENTIAL_NAMED_INTERACTIVE_USER:
@@ -8205,36 +8177,6 @@ VixToolsImpersonateUserImplEx(char const *credentialTypeStr, // IN
}
/*
- * If the VMX asks to be root, then we allow them.
- * The VMX will make sure that only it will pass this value in,
- * and only when the VM and host are configured to allow this.
- */
- if ((VIX_USER_CREDENTIAL_ROOT == credentialType)
- && (thisProcessRunsAsRoot)) {
- *userToken = PROCESS_CREATOR_USER_TOKEN;
-
- gImpersonatedUsername = Util_SafeStrdup("_ROOT_");
- err = VIX_OK;
- goto quit;
- }
-
- /*
- * If the VMX asks to be root, then we allow them.
- * The VMX will make sure that only it will pass this value in,
- * and only when the VM and host are configured to allow this.
- *
- * XXX This has been deprecated XXX
- */
- if ((VIX_USER_CREDENTIAL_CONSOLE_USER == credentialType)
- && ((allowConsoleUserOps) || !(thisProcessRunsAsRoot))) {
- *userToken = PROCESS_CREATOR_USER_TOKEN;
-
- gImpersonatedUsername = Util_SafeStrdup("_CONSOLE_USER_NAME_");
- err = VIX_OK;
- goto quit;
- }
-
- /*
* If the VMX asks us to run commands in the context of the current
* user, make sure that the user who requested the command is the
* same as the current user.
@@ -10917,50 +10859,6 @@ VixToolsCheckIfVixCommandEnabled(int opcode, // IN
/*
*-----------------------------------------------------------------------------
*
- * VixToolsCheckIfAuthenticationTypeEnabled --
- *
- * Checks to see if a given authentication type has been
- * disabled via the tools configuration.
- *
- * Return value:
- * TRUE if enabled, FALSE otherwise.
- *
- * Side effects:
- * None
- *
- *-----------------------------------------------------------------------------
- */
-
-static Bool
-VixToolsCheckIfAuthenticationTypeEnabled(GKeyFile *confDictRef, // IN
- const char *typeName) // IN
-{
- char authnDisabledName[64]; // Authentication.<AuthenticationType>.disabled
- gboolean disabled;
-
- Str_Snprintf(authnDisabledName, sizeof(authnDisabledName),
- VIX_TOOLS_CONFIG_API_AUTHENTICATION ".%s.disabled",
- typeName);
-
- ASSERT(confDictRef != NULL);
-
- /*
- * XXX Skip doing the strcmp() to verify the auth type since we only
- * have the one typeName (VIX_TOOLS_CONFIG_AUTHTYPE_AGENTS), and default
- * it to VIX_TOOLS_CONFIG_INFRA_AGENT_DISABLED_DEFAULT.
- */
- disabled = VMTools_ConfigGetBoolean(confDictRef,
- VIX_TOOLS_CONFIG_API_GROUPNAME,
- authnDisabledName,
- VIX_TOOLS_CONFIG_INFRA_AGENT_DISABLED_DEFAULT);
-
- return !disabled;
-}
-
-
-/*
- *-----------------------------------------------------------------------------
- *
* VixTools_ProcessVixCommand --
*
*
--
2.6.2

View File

@@ -0,0 +1,2 @@
[guestinfo]
disable-perf-mon=1

View File

@@ -0,0 +1,66 @@
#!/bin/sh
#
# vmtoolsd Start/stop the vmware tools daemon
#
# chkconfig: 2345 90 60
# description: vmtoolsd is a daemon that starts up. for some reason, it
# doesn't include a sysv init startup file in the latest release.
# so i have to write this
#
### BEGIN INIT INFO
# Provides: vmtoolsd
# Required-Start: $local_fs $syslog
# Required-Stop: $local_fs $syslog
# Default-Start: 2345
# Default-Stop: 90
# Short-Description: Run vmware tools daemon
### END INIT INFO
PATH=/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/bin/vmtoolsd
NAME=vmtoolsd
DESC="vmware tools daemon"
VMTOOLSDARGS=" -b /var/run/vmtoolsd.pid "
RETVAL="1"
# source function library
. /etc/init.d/functions
test -f $DAEMON || exit 0
case "$1" in
start)
echo -n "Starting vmware tools daemon: "
start-stop-daemon --start --quiet --exec $DAEMON -- $VMTOOLSDARGS
RETVAL=$?
if [ $RETVAL -eq 0 ] ; then
echo "OK"
else
echo "FAIL"
fi
;;
stop)
echo -n "Stopping vmware tools daemon: "
start-stop-daemon --stop --quiet --pidfile /var/run/vmtoolsd.pid
RETVAL=$?
if [ $RETVAL -eq 0 ] ; then
echo "OK"
else
echo "FAIL"
fi
;;
status)
status vmtoolsd
exit $?
;;
restart)
$0 stop && sleep 1 && $0 start
;;
*)
echo "Usage: /etc/init.d/vmtoolsd {start|stop|status|restart}"
exit 1
esac
exit $RETVAL

View File

@@ -0,0 +1,11 @@
[Unit]
Description=Open Virtual Machine Tools (VMware Tools)
ConditionVirtualization=vmware
[Service]
ExecStart=/usr/bin/vmtoolsd
Restart=on-failure
KillSignal=SIGKILL
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,121 @@
# This recipe is modified from the recipe originally found in the Open-Switch
# repository:
#
# https://github.com/open-switch/ops-build
# yocto/openswitch/meta-foss-openswitch/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.0.5.bb
# Commit 9008de2d8e100f3f868c66765742bca9fa98f3f9
#
# The recipe packaging has been relicensed under the MIT license for inclusion
# in meta-openembedded by agreement of the author (Diego Dompe).
#
SUMMARY = "Tools to enhance VMWare guest integration and performance"
HOMEPAGE = "https://github.com/vmware/open-vm-tools"
DESCRIPTION = "\
open-vm-tools is a set of services and modules that enable several features in VMware products \
for better management of and seamless user interactions with guests.\
"
SECTION = "vmware-tools"
LICENSE = "LGPL-2.0-only & GPL-2.0-only & BSD-2-Clause & CDDL-1.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=559317809c5444fb39ceaf6ac45c43ac"
LICENSE:modules/freebsd/vmblock = "BSD-2-Clause"
LICENSE:modules/freebsd/vmmemctl = "GPL-2.0-only"
LICENSE:modules/freebsd/vmxnet = "GPL-2.0-only"
LICENSE:modules/linux = "GPL-2.0-only"
LICENSE:modules/solaris = "CDDL-1.0"
SRC_URI = "git://github.com/vmware/open-vm-tools.git;protocol=https;branch=stable-12.1.x \
file://tools.conf \
file://vmtoolsd.service \
file://vmtoolsd.init \
file://0001-configure.ac-don-t-use-dnet-config.patch;patchdir=.. \
file://0002-Use-configure-test-for-struct-timespec.patch;patchdir=.. \
file://0003-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch;patchdir=.. \
file://0004-Use-configure-to-test-for-feature-instead-of-platfor.patch;patchdir=.. \
file://0005-Use-configure-test-for-sys-stat.h-include.patch;patchdir=.. \
file://0006-Fix-subdir-objects-configure-error.patch;patchdir=.. \
file://0007-include-poll.h-instead-of-sys-poll.h.patch;patchdir=.. \
file://0008-Rename-poll.h-to-vm_poll.h.patch;patchdir=.. \
file://0009-use-posix-strerror_r-unless-on-gnu-libc-system.patch;patchdir=.. \
file://0010-Use-uintmax_t-for-handling-rlim_t.patch;patchdir=.. \
file://0011-Use-off64_t-instead-of-__off64_t.patch;patchdir=.. \
file://0012-hgfsServerLinux-Consider-64bit-time_t-possibility.patch;patchdir=.. \
file://0013-open-vm-tools-Correct-include-path-for-poll.h.patch;patchdir=.. \
file://0001-timeSync-Portable-way-to-print-64bit-time_t.patch;patchdir=.. \
file://CVE-2023-20867.patch;patchdir=.. \
"
UPSTREAM_CHECK_GITTAGREGEX = "stable-(?P<pver>\d+(\.\d+)+)"
SRC_URI:append:libc-musl = " file://0001-Add-resolv_compat.h-for-musl-builds.patch;patchdir=.. \
"
SRCREV = "30339ef6ded308f0147fe80f89b9bca3ace1aef9"
S = "${WORKDIR}/git/open-vm-tools"
DEPENDS = "glib-2.0 glib-2.0-native util-linux libdnet procps libtirpc"
# open-vm-tools is supported only on x86.
COMPATIBLE_HOST = '(x86_64.*|i.86.*)-linux'
inherit autotools pkgconfig systemd update-rc.d
SYSTEMD_SERVICE:${PN} = "vmtoolsd.service"
EXTRA_OECONF = "--without-icu --disable-multimon --disable-docs \
--disable-tests --without-gtkmm --without-xerces --without-pam \
--disable-vgauth --disable-deploypkg --disable-containerinfo \
--without-root-privileges --without-kernel-modules --with-tirpc \
--with-udev-rules-dir=${nonarch_base_libdir}/udev/rules.d"
NO_X11_FLAGS = "--without-x --without-gtk2 --without-gtk3"
X11_DEPENDS = "libxext libxi libxrender libxrandr libxtst gtk+ gdk-pixbuf"
PACKAGECONFIG[x11] = ",${NO_X11_FLAGS},${X11_DEPENDS}"
# fuse gets implicitly detected; there is no --without-fuse option.
PACKAGECONFIG[fuse] = ",,fuse"
CFLAGS:append:toolchain-clang = " -Wno-address-of-packed-member"
FILES:${PN} += "\
${libdir}/open-vm-tools/plugins/vmsvc/lib*.so \
${libdir}/open-vm-tools/plugins/common/lib*.so \
${sysconfdir}/vmware-tools/tools.conf \
"
FILES:${PN}-locale += "${datadir}/open-vm-tools/messages"
FILES:${PN}-dev += "${libdir}/open-vm-tools/plugins/common/lib*.la"
CONFFILES:${PN} += "${sysconfdir}/vmware-tools/tools.conf"
RDEPENDS:${PN} = "util-linux libdnet fuse"
do_install:append() {
if ! ${@bb.utils.contains('DISTRO_FEATURES','usrmerge','true','false',d)}; then
install -d ${D}/sbin
ln -sf ${sbindir}/mount.vmhgfs ${D}/sbin/mount.vmhgfs
fi
install -d ${D}${sysconfdir}/vmware-tools
if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
install -d ${D}${systemd_unitdir}/system
install -m 644 ${WORKDIR}/*.service ${D}${systemd_unitdir}/system
else
install -d ${D}${sysconfdir}/init.d
install -m 0755 ${WORKDIR}/vmtoolsd.init ${D}${sysconfdir}/init.d/vmtoolsd
fi
install -m 0644 ${WORKDIR}/tools.conf ${D}${sysconfdir}/vmware-tools/tools.conf
}
do_configure:prepend() {
export CUSTOM_DNET_NAME=dnet
export CUSTOM_DNET_LIBS=-L${STAGING_LIBDIR}/libdnet.so
}
INITSCRIPT_PACKAGES = "${PN}"
INITSCRIPT_NAME:${PN} = "vmtoolsd"
INITSCRIPT_PARAMS:${PN} = "start 90 2 3 4 5 . stop 60 0 1 6 ."
python() {
if 'filesystems-layer' not in d.getVar('BBFILE_COLLECTIONS').split():
raise bb.parse.SkipRecipe('Requires meta-filesystems to be present to provide fuse.')
}