diff mbox series

[meta-networking] open-vm-tools: backport patch to build with glibc 2.43

Message ID 20260319114742.4066574-1-skandigraun@gmail.com
State Under Review
Headers show
Series [meta-networking] open-vm-tools: backport patch to build with glibc 2.43 | expand

Commit Message

Gyorgy Sarvari March 19, 2026, 11:47 a.m. UTC
As the subject says.

Fixes error:
| ../../../sources/open-vm-tools-13.0.10/open-vm-tools/lib/hgfs/hgfsEscape.c: In function 'HgfsAddEscapeCharacter':
| ../../../sources/open-vm-tools-13.0.10/open-vm-tools/lib/hgfs/hgfsEscape.c:201:15: error: assignment discards 'const' qualifier from pointer target type [-Werror=discarded-qualifiers]
|   201 |       illegal = strchr(HGFS_ILLEGAL_CHARS, bufIn[escapeContext->processedOffset]);

Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
---
 ...on-discards-const-qualifier-from-poi.patch | 144 ++++++++++++++++++
 .../open-vm-tools/open-vm-tools_13.0.10.bb    |   1 +
 2 files changed, 145 insertions(+)
 create mode 100644 meta-networking/recipes-support/open-vm-tools/open-vm-tools/0001-fix-initialization-discards-const-qualifier-from-poi.patch
diff mbox series

Patch

diff --git a/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0001-fix-initialization-discards-const-qualifier-from-poi.patch b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0001-fix-initialization-discards-const-qualifier-from-poi.patch
new file mode 100644
index 0000000000..c06a88f27e
--- /dev/null
+++ b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0001-fix-initialization-discards-const-qualifier-from-poi.patch
@@ -0,0 +1,144 @@ 
+From 070500fd0e97abb07585882ae448ac35b1c4396c Mon Sep 17 00:00:00 2001
+From: Rudi Heitbaum <rudi@heitbaum.com>
+Date: Mon, 26 Jan 2026 11:55:03 +0000
+Subject: [PATCH] fix initialization discards 'const' qualifier from pointer
+ target type
+
+Since glibc-2.43:
+
+For ISO C23, the functions bsearch, memchr, strchr, strpbrk, strrchr,
+strstr, wcschr, wcspbrk, wcsrchr, wcsstr and wmemchr that return
+pointers into their input arrays now have definitions as macros that
+return a pointer to a const-qualified type when the input argument is
+a pointer to a const-qualified type.
+
+https://lists.gnu.org/archive/html/info-gnu/2026-01/msg00005.html
+
+Signed-off-by: Rudi Heitbaum <rudi@heitbaum.com>
+
+Upstream-Status: Submitted [https://github.com/vmware/open-vm-tools/pull/783]
+Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
+---
+ open-vm-tools/lib/hgfs/hgfsEscape.c            | 6 +++---
+ open-vm-tools/lib/hgfsServer/hgfsServerLinux.c | 2 +-
+ open-vm-tools/lib/misc/strutil.c               | 7 ++++---
+ open-vm-tools/lib/nicInfo/nicInfoPosix.c       | 2 +-
+ open-vm-tools/libvmtools/i18n.c                | 2 +-
+ open-vm-tools/services/plugins/vix/vixTools.c  | 2 +-
+ 6 files changed, 11 insertions(+), 10 deletions(-)
+
+diff --git a/open-vm-tools/lib/hgfs/hgfsEscape.c b/open-vm-tools/lib/hgfs/hgfsEscape.c
+index c4d39b12d..212ea1c79 100644
+--- a/open-vm-tools/lib/hgfs/hgfsEscape.c
++++ b/open-vm-tools/lib/hgfs/hgfsEscape.c
+@@ -175,7 +175,7 @@ HgfsAddEscapeCharacter(char const * bufIn,      // IN: input name
+    HgfsEscapeContext *escapeContext = (HgfsEscapeContext *)context;
+    uint32 charactersToCopy;
+    uint32 outputSpace;
+-   char* illegal;
++   const char* illegal;
+    Bool result = TRUE;
+ 
+    ASSERT(offset >= escapeContext->processedOffset); // Scanning forward
+@@ -573,7 +573,7 @@ HgfsIsEscapeSequence(char const *bufIn,   // IN: input name
+                      uint32 length)       // IN: length of the name in characters
+ {
+    if (bufIn[offset] == HGFS_ESCAPE_CHAR && offset > 0) {
+-      char *substitute;
++      const char *substitute;
+       if (bufIn[offset - 1] == HGFS_ESCAPE_SUBSTITUE_CHAR && offset > 1) {
+          /*
+           * Possibly a valid sequence, check it must be preceded with a substitute
+@@ -887,7 +887,7 @@ HgfsEscapeUndoComponent(char   *bufIn,             // IN: Characters to be unesc
+       size_t offset = escapePointer - bufIn;
+ 
+       if (HgfsIsEscapeSequence(bufIn, offset, sizeIn)) {
+-         char* substitute = strchr(HGFS_SUBSTITUTE_CHARS, bufIn[offset - 1]);
++         const char* substitute = strchr(HGFS_SUBSTITUTE_CHARS, bufIn[offset - 1]);
+          if (substitute != NULL) {
+             bufIn[offset - 1] = HGFS_ILLEGAL_CHARS[substitute - HGFS_SUBSTITUTE_CHARS];
+          } else if (bufIn[offset - 1] == HGFS_ESCAPE_SUBSTITUE_CHAR) {
+diff --git a/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c b/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
+index 445a53881..eeabcadd4 100644
+--- a/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
++++ b/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
+@@ -1366,7 +1366,7 @@ static void
+ HgfsGetHiddenAttr(char const *fileName,         // IN:  Input filename
+                   HgfsFileAttrInfo *attr)       // OUT: Struct to copy into
+ {
+-   char *baseName;
++   const char *baseName;
+ 
+    ASSERT(fileName);
+    ASSERT(attr);
+diff --git a/open-vm-tools/lib/misc/strutil.c b/open-vm-tools/lib/misc/strutil.c
+index 4fc6502e4..4be63b7b8 100644
+--- a/open-vm-tools/lib/misc/strutil.c
++++ b/open-vm-tools/lib/misc/strutil.c
+@@ -1454,6 +1454,7 @@ StrUtil_ReplaceAll(const char *orig, // IN
+     char *result;
+     const char *current;
+     char *tmp;
++    const char *tmp2;
+     size_t lenWhat;
+     size_t lenWith;
+     size_t occurrences = 0;
+@@ -1467,8 +1468,8 @@ StrUtil_ReplaceAll(const char *orig, // IN
+     lenWith = strlen(with);
+ 
+     current = orig;
+-    while ((tmp = strstr(current, what)) != NULL) {
+-       current = tmp + lenWhat;
++    while ((tmp2 = strstr(current, what)) != NULL) {
++       current = tmp2 + lenWhat;
+        ++occurrences;
+     }
+ 
+@@ -1695,7 +1696,7 @@ StrUtilHasListItem(char const *list,                               // IN:
+                    char const *item,                               // IN:
+                    int (*ncmp)(char const *, char const*, size_t)) // IN:
+ {
+-   char *foundDelim;
++   const char *foundDelim;
+    int itemLen = strlen(item);
+ 
+    if (list == NULL) {
+diff --git a/open-vm-tools/lib/nicInfo/nicInfoPosix.c b/open-vm-tools/lib/nicInfo/nicInfoPosix.c
+index 6f20547b2..a387e377b 100644
+--- a/open-vm-tools/lib/nicInfo/nicInfoPosix.c
++++ b/open-vm-tools/lib/nicInfo/nicInfoPosix.c
+@@ -267,7 +267,7 @@ static Bool
+ IpEntryMatchesDevice(const char *devName,
+                      const char *label)
+ {
+-   char *p;
++   const char *p;
+    size_t n;
+ 
+    if ((p = strchr(label, ':')) != NULL) {
+diff --git a/open-vm-tools/libvmtools/i18n.c b/open-vm-tools/libvmtools/i18n.c
+index 3085f72d7..f61406d14 100644
+--- a/open-vm-tools/libvmtools/i18n.c
++++ b/open-vm-tools/libvmtools/i18n.c
+@@ -698,7 +698,7 @@ VMTools_BindTextDomain(const char *domain,
+        * If we couldn't find the catalog file for the user's language, see if
+        * we can find a more generic language (e.g., for "en_US", also try "en").
+        */
+-      char *sep = Str_Strrchr(lang, '_');
++      const char *sep = Str_Strrchr(lang, '_');
+       if (sep != NULL) {
+          if (usrlang == NULL) {
+             usrlang = Util_SafeStrdup(lang);
+diff --git a/open-vm-tools/services/plugins/vix/vixTools.c b/open-vm-tools/services/plugins/vix/vixTools.c
+index b2079a10d..6a8498ffb 100644
+--- a/open-vm-tools/services/plugins/vix/vixTools.c
++++ b/open-vm-tools/services/plugins/vix/vixTools.c
+@@ -925,7 +925,7 @@ VixToolsBuildUserEnvironmentTable(const char * const *envp)   // IN: optional
+    for (; NULL != *envp; envp++) {
+       char *name;
+       char *value;
+-      char *whereToSplit;
++      const char *whereToSplit;
+       size_t nameLen;
+ 
+       whereToSplit = strchr(*envp, '=');
diff --git a/meta-networking/recipes-support/open-vm-tools/open-vm-tools_13.0.10.bb b/meta-networking/recipes-support/open-vm-tools/open-vm-tools_13.0.10.bb
index 4ec6d5aa86..a48d1ce88d 100644
--- a/meta-networking/recipes-support/open-vm-tools/open-vm-tools_13.0.10.bb
+++ b/meta-networking/recipes-support/open-vm-tools/open-vm-tools_13.0.10.bb
@@ -44,6 +44,7 @@  SRC_URI = "git://github.com/vmware/open-vm-tools.git;protocol=https;branch=maste
            file://0013-open-vm-tools-Correct-include-path-for-poll.h.patch;patchdir=.. \
            file://0014-timeSync-Portable-way-to-print-64bit-time_t.patch;patchdir=.. \
            file://0001-glib_stubs-avoid-GLib-g_free-macro-redefinition-erro.patch;patchdir=.. \
+           file://0001-fix-initialization-discards-const-qualifier-from-poi.patch;patchdir=.. \
            "
 
 UPSTREAM_CHECK_GITTAGREGEX = "stable-(?P<pver>\d+(\.\d+)+)"