tools/gnulib: update to branch stable-202407

Bump to the next stable branch with the May 2025 update.

Add a patch to compensate for gnulib-tool being further split up
into independent shell and python implementations
by using a non-hidden version of the main.py file.

Add a patch for the python implementation of gnulib-tool
in order to ignore the required version of autoconf in configure.ac
being lower than the required version of autoconf for gnulib
if the version that is being run exceeds the required version for both,
and adjust existing autoconf version shell script patch to new filename.

Backport a patch for a change in function naming convention
for forward compatibility with tool releases after this stable branch.

Added:
 - 020-python-version.patch
 - 021-python-main.patch
 - 500-acl-function-name.patch

Manually Adjusted:
 - 010-autoconf-version.patch
 - 160-flag-reallocarray.patch

Existing patches are automatically refreshed.

Signed-off-by: Michael Pratt <mcpratt@pm.me>
Link: https://github.com/openwrt/openwrt/pull/16522
Signed-off-by: Robert Marko <robimarko@gmail.com>
This commit is contained in:
Michael Pratt 2025-05-06 13:57:24 -04:00 committed by Robert Marko
parent 03b9b7e894
commit b07b8c8b43
10 changed files with 207 additions and 26 deletions

View File

@ -2,11 +2,11 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=gnulib
PKG_CPE_ID:=cpe:/a:gnu:$(PKG_NAME)
PKG_VERSION:=c99c8d491850dc3a6e0b8604a2729d8bc5c0eff1# # stable-202401
PKG_VERSION:=320db6ee7a3cd44ee77f09d30c8a9002159beb4b# # stable-202407
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://git.savannah.gnu.org/cgit/$(PKG_NAME).git/snapshot
PKG_HASH:=8e6f4a907d9677b55fd452e1340a3e030a6f530b138d420c11975da33f086b1e
PKG_HASH:=0be734e8c5f88e259bd593d63da2be275b93aedb551ccdcd78db9825bddeb94e
include $(INCLUDE_DIR)/host-build.mk

View File

@ -43,7 +43,7 @@
if [ ! "$inst_ver" ]; then
warn_ "Error: '$app' not found"
ret=1
@@ -1157,7 +1157,7 @@ autogen()
@@ -1178,7 +1178,7 @@ autogen()
# two just-pre-run programs.
# Import from gettext.

View File

@ -1,6 +1,6 @@
--- a/gnulib-tool
+++ b/gnulib-tool
@@ -346,6 +346,34 @@ Options for --import, --add/remove-impor
--- a/gnulib-tool.sh
+++ b/gnulib-tool.sh
@@ -343,6 +343,34 @@ Options for --import, --add/remove-impor
Report bugs to <bug-gnulib@gnu.org>."
}
@ -35,7 +35,7 @@
# func_version
# outputs to stdout the --version message.
func_version ()
@@ -1620,6 +1648,9 @@ func_determine_path_separator
@@ -1665,6 +1693,9 @@ func_determine_path_separator
fi
case "$autoconf_minversion" in
1.* | 2.[0-5]* | 2.6[0-3]*)

View File

@ -0,0 +1,47 @@
--- a/pygnulib/functions.py
+++ b/pygnulib/functions.py
@@ -16,6 +16,8 @@
from __future__ import annotations
import os.path
+import re
+import subprocess as sp
from .constants import substart
from .GLConfig import GLConfig
@@ -50,3 +52,15 @@ def rewrite_file_name(file_name: str, co
else: # file is not a special file
result = file_name
return os.path.normpath(result)
+
+def get_version(app: str) -> str:
+ result = sp.run([app, '--version'], capture_output=True, text=True)
+ version = re.sub(r".*[v ]([0-9])", r"\1", result.stdout)
+ version_lines = [line for line in version.splitlines() if re.search(r"^[0-9]", line)]
+ version = '\n'.join(version_lines) + "\n"
+ version = re.sub(r"[^.a-z0-9-\n].*", r"", version)
+ version = re.sub(r"^([0-9]*)[a-z-].*", r"\1", version, 1)
+ version = re.sub(r"\.0*([1-9])", r".\1", version)
+ version_lines = [line for line in version.splitlines() if line.strip()]
+ version = ''.join(version_lines[0]) + "\n"
+ return version.strip()
--- a/pygnulib/GLImport.py
+++ b/pygnulib/GLImport.py
@@ -40,6 +40,7 @@ from .constants import (
rmtree,
)
from .functions import rewrite_file_name
+from .functions import get_version
from .GLError import GLError
from .GLConfig import GLConfig
from .GLModuleSystem import GLModuleTable
@@ -125,7 +126,8 @@ class GLImport:
for version in versions })
self.config.setAutoconfVersion(version)
if version < 2.64:
- raise GLError(4, version)
+ # If the version of autoconf in use is high enough, do not error.
+ if float(get_version('autoconf')) < 2.64: raise GLError(4, version)
# Get other cached variables.
path = joinpath(self.config['m4base'], 'gnulib-cache.m4')

View File

@ -0,0 +1,15 @@
--- /dev/null
+++ b/gnulib-tool-main.py
@@ -0,0 +1,4 @@
+from pygnulib import main
+
+if __name__ == '__main__':
+ main.main_with_exception_handling()
--- a/gnulib-tool.py
+++ b/gnulib-tool.py
@@ -157,4 +157,4 @@ fi
profiler_args=
# For profiling, cf. <https://docs.python.org/3/library/profile.html>.
#profiler_args="-m cProfile -s tottime"
-exec python3 $profiler_args "$gnulib_dir/.gnulib-tool.py" "$@"
+exec python3 $profiler_args "$gnulib_dir/gnulib-tool-main.py" "$@"

View File

@ -107,7 +107,7 @@
+#endif /* defined(_LIBC) || GNULIB_defined_tdestroy */
--- a/m4/search_h.m4
+++ b/m4/search_h.m4
@@ -39,7 +39,7 @@ AC_DEFUN_ONCE([gl_SEARCH_H],
@@ -40,7 +40,7 @@ AC_DEFUN_ONCE([gl_SEARCH_H],
dnl Check for declarations of anything we want to poison if the
dnl corresponding gnulib module is not in use.
gl_WARN_ON_USE_PREPARE([[#include <search.h>
@ -116,7 +116,7 @@
AC_REQUIRE([AC_C_RESTRICT])
])
@@ -75,8 +75,10 @@ AC_DEFUN([gl_SEARCH_H_DEFAULTS],
@@ -76,8 +76,10 @@ AC_DEFUN([gl_SEARCH_H_DEFAULTS],
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_LFIND], [1])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_LSEARCH], [1])
dnl Assume proper GNU behavior unless another module says otherwise.
@ -133,7 +133,7 @@
])
--- a/m4/tsearch.m4
+++ b/m4/tsearch.m4
@@ -9,6 +9,7 @@ AC_DEFUN([gl_FUNC_TSEARCH],
@@ -10,6 +10,7 @@ AC_DEFUN([gl_FUNC_TSEARCH],
AC_REQUIRE([gl_SEARCH_H_DEFAULTS])
gl_CHECK_FUNCS_ANDROID([tsearch], [[#include <search.h>]])
gl_CHECK_FUNCS_ANDROID([twalk], [[#include <search.h>]])
@ -141,7 +141,7 @@
if test $ac_cv_func_tsearch = yes; then
dnl On OpenBSD 4.0, the return value of tdelete() is incorrect.
AC_REQUIRE([AC_PROG_CC])
@@ -50,6 +51,7 @@ main ()
@@ -51,6 +52,7 @@ main ()
*no)
REPLACE_TSEARCH=1
REPLACE_TWALK=1
@ -149,7 +149,7 @@
;;
esac
else
@@ -64,6 +66,12 @@ main ()
@@ -65,6 +67,12 @@ main ()
future*) REPLACE_TWALK=1 ;;
esac
fi

View File

@ -21,7 +21,7 @@
--- a/lib/xmalloc.c
+++ b/lib/xmalloc.c
@@ -51,12 +51,16 @@ ximalloc (idx_t s)
return nonnull (imalloc (s));
return check_nonnull (imalloc (s));
}
+#if GNULIB_REALLOCARRAY
@ -38,7 +38,7 @@
with error checking. */
@@ -75,6 +79,8 @@ xirealloc (void *p, idx_t s)
return nonnull (irealloc (p, s));
return check_nonnull (irealloc (p, s));
}
+#if GNULIB_REALLOCARRAY
@ -76,16 +76,15 @@
--- a/lib/safe-alloc.h
+++ b/lib/safe-alloc.h
@@ -36,6 +36,8 @@ _GL_INLINE_HEADER_BEGIN
# define SAFE_ALLOC_INLINE _GL_INLINE
@@ -40,6 +40,7 @@ _GL_INLINE_HEADER_BEGIN
extern "C" {
#endif
+#if GNULIB_REALLOCARRAY
+
/* Don't call these directly - use the macros below. */
SAFE_ALLOC_INLINE void *
safe_alloc_realloc_n (void *ptr, size_t count, size_t size)
@@ -51,6 +53,9 @@ safe_alloc_realloc_n (void *ptr, size_t
@@ -56,6 +57,9 @@ safe_alloc_realloc_n (void *ptr, size_t
#endif
return ptr;
}
@ -95,7 +94,7 @@
_GL_ATTRIBUTE_NODISCARD SAFE_ALLOC_INLINE int
safe_alloc_check (void *ptr)
{
@@ -84,6 +89,8 @@ safe_alloc_check (void *ptr)
@@ -89,6 +93,8 @@ safe_alloc_check (void *ptr)
#define ALLOC_N(ptr, count) \
safe_alloc_check ((ptr) = calloc (count, sizeof *(ptr)))
@ -104,7 +103,7 @@
/**
* ALLOC_N_UNINITIALIZED:
* @ptr: pointer to allocated memory
@@ -112,6 +119,8 @@ safe_alloc_check (void *ptr)
@@ -117,6 +123,8 @@ safe_alloc_check (void *ptr)
#define REALLOC_N(ptr, count) \
safe_alloc_check ((ptr) = safe_alloc_realloc_n (ptr, count, sizeof *(ptr)))

View File

@ -20,7 +20,7 @@
{
--- a/lib/stdlib.in.h
+++ b/lib/stdlib.in.h
@@ -1447,10 +1447,16 @@ _GL_FUNCDECL_RPL (reallocarray, void *,
@@ -1508,10 +1508,16 @@ _GL_FUNCDECL_RPL (reallocarray, void *,
(void *ptr, size_t nmemb, size_t size));
_GL_CXXALIAS_RPL (reallocarray, void *,
(void *ptr, size_t nmemb, size_t size));

View File

@ -69,7 +69,7 @@
+AC_DEFUN([gl_PREREQ_POSIX_FALLOCATE], [:])
--- a/m4/fcntl_h.m4
+++ b/m4/fcntl_h.m4
@@ -23,7 +23,7 @@ AC_DEFUN_ONCE([gl_FCNTL_H],
@@ -25,7 +25,7 @@ AC_DEFUN_ONCE([gl_FCNTL_H],
dnl corresponding gnulib module is not in use, if it is not common
dnl enough to be declared everywhere.
gl_WARN_ON_USE_PREPARE([[#include <fcntl.h>
@ -78,7 +78,7 @@
])
# gl_FCNTL_MODULE_INDICATOR([modulename])
@@ -50,6 +50,7 @@ AC_DEFUN([gl_FCNTL_H_REQUIRE_DEFAULTS],
@@ -52,6 +52,7 @@ AC_DEFUN([gl_FCNTL_H_REQUIRE_DEFAULTS],
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_NONBLOCKING])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_OPEN])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_OPENAT])
@ -86,7 +86,7 @@
dnl Support Microsoft deprecated alias function names by default.
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_CREAT], [1])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_OPEN], [1])
@@ -61,10 +62,12 @@ AC_DEFUN([gl_FCNTL_H_REQUIRE_DEFAULTS],
@@ -63,10 +64,12 @@ AC_DEFUN([gl_FCNTL_H_REQUIRE_DEFAULTS],
AC_DEFUN([gl_FCNTL_H_DEFAULTS],
[
dnl Assume proper GNU behavior unless another module says otherwise.
@ -127,7 +127,7 @@
-e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
--- a/lib/fcntl.in.h
+++ b/lib/fcntl.in.h
@@ -238,6 +238,33 @@ _GL_WARN_ON_USE (openat, "openat is not
@@ -239,6 +239,33 @@ _GL_WARN_ON_USE (openat, "openat is not
# endif
#endif

View File

@ -0,0 +1,120 @@
From 8a71833114c376212ecdd56495604905f6aa218d Mon Sep 17 00:00:00 2001
From: Bruno Haible <bruno@clisp.org>
Date: Sat, 24 Aug 2024 17:58:48 +0200
Subject: acl: First step towards more consistent function names.
* lib/acl.h (xset_acl): New declaration.
(set_acl): Mark deprecated.
(xcopy_acl): New declaration.
(copy_acl): Mark deprecated.
* lib/set-acl.c (xset_acl): Renamed from set_acl.
(set_acl): New function.
* lib/copy-acl.c (xcopy_acl): Renamed from copy_acl.
(copy_acl): New function.
* tests/test-set-mode-acl.c (main): Test xset_acl instead of set_acl.
* tests/test-copy-acl.c (main): Test xcopy_acl instead of copy_acl.
---
lib/acl.h | 14 +++++++++++---
lib/copy-acl.c | 11 +++++++++--
lib/set-acl.c | 8 +++++++-
tests/test-copy-acl.c | 2 +-
tests/test-set-mode-acl.c | 2 +-
--- a/lib/acl.h
+++ b/lib/acl.h
@@ -20,7 +20,7 @@
#ifndef _GL_ACL_H
#define _GL_ACL_H 1
-/* This file uses _GL_ATTRIBUTE_CONST. */
+/* This file uses _GL_ATTRIBUTE_CONST, _GL_ATTRIBUTE_DEPRECATED. */
#if !_GL_CONFIG_H_INCLUDED
#error "Please include config.h first."
#endif
@@ -35,10 +35,18 @@ extern "C" {
bool acl_errno_valid (int) _GL_ATTRIBUTE_CONST;
int file_has_acl (char const *, struct stat const *);
+
int qset_acl (char const *, int, mode_t);
-int set_acl (char const *, int, mode_t);
+int xset_acl (char const *, int, mode_t);
+/* Old name of xset_acl. */
+_GL_ATTRIBUTE_DEPRECATED int set_acl (char const *, int, mode_t);
+
int qcopy_acl (char const *, int, char const *, int, mode_t);
-int copy_acl (char const *, int, char const *, int, mode_t);
+int xcopy_acl (char const *, int, char const *, int, mode_t);
+/* Old name of xcopy_acl. */
+_GL_ATTRIBUTE_DEPRECATED int copy_acl (char const *, int, char const *, int,
+ mode_t);
+
int chmod_or_fchmod (char const *, int, mode_t);
--- a/lib/copy-acl.c
+++ b/lib/copy-acl.c
@@ -40,8 +40,8 @@
negative error code. */
int
-copy_acl (const char *src_name, int source_desc, const char *dst_name,
- int dest_desc, mode_t mode)
+xcopy_acl (const char *src_name, int source_desc, const char *dst_name,
+ int dest_desc, mode_t mode)
{
int ret = qcopy_acl (src_name, source_desc, dst_name, dest_desc, mode);
switch (ret)
@@ -59,3 +59,10 @@ copy_acl (const char *src_name, int sour
}
return ret;
}
+
+int
+copy_acl (const char *src_name, int source_desc, const char *dst_name,
+ int dest_desc, mode_t mode)
+{
+ return xcopy_acl (src_name, source_desc, dst_name, dest_desc, mode);
+}
--- a/lib/set-acl.c
+++ b/lib/set-acl.c
@@ -39,10 +39,16 @@
return -1. */
int
-set_acl (char const *name, int desc, mode_t mode)
+xset_acl (char const *name, int desc, mode_t mode)
{
int ret = qset_acl (name, desc, mode);
if (ret != 0)
error (0, errno, _("setting permissions for %s"), quote (name));
return ret;
}
+
+int
+set_acl (char const *name, int desc, mode_t mode)
+{
+ return xset_acl (name, desc, mode);
+}
--- a/tests/test-copy-acl.c
+++ b/tests/test-copy-acl.c
@@ -60,7 +60,7 @@ main (int argc, char *argv[])
}
#if USE_ACL
- if (copy_acl (file1, fd1, file2, fd2, mode))
+ if (xcopy_acl (file1, fd1, file2, fd2, mode))
exit (EXIT_FAILURE);
#else
chmod (file2, mode);
--- a/tests/test-set-mode-acl.c
+++ b/tests/test-set-mode-acl.c
@@ -35,7 +35,7 @@ main (int argc, char *argv[])
file = argv[1];
mode = strtol (argv[2], NULL, 8);
- set_acl (file, -1, mode);
+ xset_acl (file, -1, mode);
return test_exit_status;
}