buildroot/package/openvmtools/0007-Use-configure-to-test-for-feature-instead-of-platfor.patch
Dario Binacchi 3907da674c package/openvmtools: update the patches to be applied with fuzz 0
Commit 8f88a644ed ("support/scripts/apply-patches.sh: set the maximum
fuzz factor to 0") reduced the fuzz factor.

Due to this change, openvmtools fails to build with output:

    Applying 0007-Use-configure-to-test-for-feature-instead-of-platfor.patch using patch:
    patching file configure.ac
    Hunk #1 succeeded at 940 (offset 142 lines).
    Hunk #2 succeeded at 1150 (offset 86 lines).
    patching file lib/misc/idLinux.c
    Hunk #2 succeeded at 1022 (offset 28 lines).
    patching file lib/nicInfo/nicInfoPosix.c
    Hunk #1 FAILED at 34.
    1 out of 1 hunk FAILED -- saving rejects to file lib/nicInfo/nicInfoPosix.c.rej

This commit refreshes the package patch on the current package version.

Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-08 22:14:25 +02:00

153 lines
4.8 KiB
Diff

From 6cc1c22cc30320f56da552a76bd956db8f255b6a 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.
Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
[Retrieved (and slightly updated) from:
http://cgit.openembedded.org/meta-openembedded/tree/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0007-Use-configure-to-test-for-feature-instead-of-platfor.patch?h=sumo]
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
[Dario: make the patch to be applied with fuzz factor 0]
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
---
open-vm-tools/configure.ac | 4 ++++
open-vm-tools/lib/misc/idLinux.c | 30 ++++++++++++++----------------
open-vm-tools/lib/nicInfo/nicInfoPosix.c | 8 ++++++--
3 files changed, 24 insertions(+), 18 deletions(-)
Index: open-vm-tools/configure.ac
===================================================================
--- open-vm-tools.orig/configure.ac
+++ open-vm-tools/configure.ac
@@ -940,6 +940,7 @@
AC_CHECK_FUNCS([ecvt])
AC_CHECK_FUNCS([fcvt])
+AC_CHECK_FUNCS([getifaddrs getauxval issetugid __secure_getenv])
AC_CHECK_FUNC([mkdtemp], [have_mkdtemp=yes])
@@ -1149,10 +1150,13 @@
###
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
Index: open-vm-tools/lib/misc/idLinux.c
===================================================================
--- open-vm-tools.orig/lib/misc/idLinux.c
+++ 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 @@
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
Index: open-vm-tools/lib/nicInfo/nicInfoPosix.c
===================================================================
--- open-vm-tools.orig/lib/nicInfo/nicInfoPosix.c
+++ 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
@@ -499,10 +503,7 @@
*
******************************************************************************
*/
-#if defined(__FreeBSD__) || \
- defined(__APPLE__) || \
- defined(USERWORLD) || \
- (defined(__linux__) && defined(NO_DNET))
+#if defined(NO_DNET) && defined(HAVE_GETIFADDRS)
char *
GuestInfoGetPrimaryIP(void)