public inbox for openembedded-core@lists.openembedded.org
 help / color / mirror / Atom feed
* [OE-core][PATCH V2] shadow: upgrade from 4.18.0 to 4.19.3
@ 2026-02-11  6:26 Qi.Chen
  0 siblings, 0 replies; 2+ messages in thread
From: Qi.Chen @ 2026-02-11  6:26 UTC (permalink / raw)
  To: openembedded-core

From: Chen Qi <Qi.Chen@windriver.com>

The major changes in 4.19.x:
https://github.com/shadow-maint/shadow/releases/tag/4.19.0

Note that there is change in 4.19 that breaks build with gcc <= 10.
It removed unused parameter names from function declarations and
definitions.

This is not a problem for target shadow. But for shadow-native,
the build fails on hosts that has gcc <= 10. So add 4 extra patches
for native only. The upstream issue and the PR are as below:
https://github.com/shadow-maint/shadow/pull/1531
https://github.com/shadow-maint/shadow/issues/1530

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
---
 ...ests-Unname-unused-parameters-in-cal.patch | 278 ++++++++++++++++++
 ...-avoid-parameter-name-ommitted-error.patch |  39 +++
 ...-src-Unname-unused-parameter-of-main.patch |  62 ++++
 ...c-avoid-parameter-name-omitted-error.patch |  28 ++
 .../{shadow_4.18.0.bb => shadow_4.19.3.bb}    |   6 +-
 5 files changed, 412 insertions(+), 1 deletion(-)
 create mode 100644 meta/recipes-extended/shadow/files/0001-Revert-lib-src-tests-Unname-unused-parameters-in-cal.patch
 create mode 100644 meta/recipes-extended/shadow/files/0002-lib-sssd.h-avoid-parameter-name-ommitted-error.patch
 create mode 100644 meta/recipes-extended/shadow/files/0003-Revert-src-Unname-unused-parameter-of-main.patch
 create mode 100644 meta/recipes-extended/shadow/files/0004-src-chsh.c-avoid-parameter-name-omitted-error.patch
 rename meta/recipes-extended/shadow/{shadow_4.18.0.bb => shadow_4.19.3.bb} (95%)

diff --git a/meta/recipes-extended/shadow/files/0001-Revert-lib-src-tests-Unname-unused-parameters-in-cal.patch b/meta/recipes-extended/shadow/files/0001-Revert-lib-src-tests-Unname-unused-parameters-in-cal.patch
new file mode 100644
index 0000000000..fcea5d7448
--- /dev/null
+++ b/meta/recipes-extended/shadow/files/0001-Revert-lib-src-tests-Unname-unused-parameters-in-cal.patch
@@ -0,0 +1,278 @@
+From 76cce1b4979b1406ac76f0e201e3db0424d1132b Mon Sep 17 00:00:00 2001
+From: Chen Qi <Qi.Chen@windriver.com>
+Date: Wed, 11 Feb 2026 05:23:32 +0000
+Subject: [PATCH 1/3] Revert "lib/, src/ tests/: Unname unused parameters in
+ callbacks"
+
+This reverts commit 9e711e2240c72017dacf088d2931fb26dc6e8fed.
+
+We cannot just uname these unused parameters because gcc 10
+need them. There will be error like below with gcc 10:
+
+  lib/copydir.c:103:11: error: parameter name omitted
+
+Fixes: https://github.com/shadow-maint/shadow/issues/1530
+
+Upstream-Status: Submitted [https://github.com/shadow-maint/shadow/pull/1531]
+
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+---
+ lib/cleanup_user.c             |  1 +
+ lib/copydir.c                  |  3 +--
+ lib/loginprompt.c              |  3 +--
+ lib/pam_pass_non_interactive.c |  4 ++--
+ lib/semanage.c                 |  2 +-
+ src/expiry.c                   |  5 ++---
+ src/gpasswd.c                  | 25 ++++++++++---------------
+ src/login.c                    |  6 ++----
+ src/su.c                       |  5 ++---
+ src/sulogin.c                  |  3 +--
+ tests/unit/test_logind.c       |  4 ++--
+ 11 files changed, 25 insertions(+), 36 deletions(-)
+
+diff --git a/lib/cleanup_user.c b/lib/cleanup_user.c
+index 0af0c67f..00554d89 100644
+--- a/lib/cleanup_user.c
++++ b/lib/cleanup_user.c
+@@ -9,6 +9,7 @@
+ #include <assert.h>
+ #include <stdio.h>
+ 
++#include "attr.h"
+ #include "defines.h"
+ #include "pwio.h"
+ #include "shadowio.h"
+diff --git a/lib/copydir.c b/lib/copydir.c
+index 796015af..f42d5d6d 100644
+--- a/lib/copydir.c
++++ b/lib/copydir.c
+@@ -99,8 +99,7 @@ static int fchown_if_needed (int fdst, const struct stat *statp,
+  * error_acl - format the error messages for the ACL and EQ libraries.
+  */
+ format_attr(printf, 2, 3)
+-static void
+-error_acl(struct error_context *, const char *fmt, ...)
++static void error_acl (MAYBE_UNUSED struct error_context *ctx, const char *fmt, ...)
+ {
+ 	va_list ap;
+ 	FILE *shadow_logfd = log_get_logfd();
+diff --git a/lib/loginprompt.c b/lib/loginprompt.c
+index 18b899f5..4798d1c6 100644
+--- a/lib/loginprompt.c
++++ b/lib/loginprompt.c
+@@ -26,8 +26,7 @@
+ #include "string/strtok/stpsep.h"
+ 
+ 
+-static void
+-login_exit(int)
++static void login_exit (MAYBE_UNUSED int sig)
+ {
+ 	_exit (EXIT_FAILURE);
+ }
+diff --git a/lib/pam_pass_non_interactive.c b/lib/pam_pass_non_interactive.c
+index 054077f3..8a5910b8 100644
+--- a/lib/pam_pass_non_interactive.c
++++ b/lib/pam_pass_non_interactive.c
+@@ -27,7 +27,7 @@
+ static int ni_conv (int num_msg,
+                     const struct pam_message **msg,
+                     struct pam_response **resp,
+-                    void *);
++                    MAYBE_UNUSED void *appdata_ptr);
+ static const struct pam_conv non_interactive_pam_conv = {
+ 	ni_conv,
+ 	NULL
+@@ -38,7 +38,7 @@ static const struct pam_conv non_interactive_pam_conv = {
+ static int ni_conv (int num_msg,
+                     const struct pam_message **msg,
+                     struct pam_response **resp,
+-                    void *)
++                    MAYBE_UNUSED void *appdata_ptr)
+ {
+ 	struct pam_response *responses;
+ 	int count;
+diff --git a/lib/semanage.c b/lib/semanage.c
+index e20fea6e..c9742f0c 100644
+--- a/lib/semanage.c
++++ b/lib/semanage.c
+@@ -28,7 +28,7 @@
+ 
+ 
+ format_attr(printf, 3, 4)
+-static void semanage_error_callback (void *,
++static void semanage_error_callback (MAYBE_UNUSED void *varg,
+                                      semanage_handle_t *handle,
+                                      const char *fmt, ...)
+ {
+diff --git a/src/expiry.c b/src/expiry.c
+index 8da89bdf..412e54d6 100644
+--- a/src/expiry.c
++++ b/src/expiry.c
+@@ -29,15 +29,14 @@ static const char Prog[] = "expiry";
+ static bool cflg = false;
+ 
+ /* local function prototypes */
+-static void catch_signals(int);
++static void catch_signals (MAYBE_UNUSED int sig);
+ NORETURN static void usage (int status);
+ static void process_flags (int argc, char **argv);
+ 
+ /*
+  * catch_signals - signal catcher
+  */
+-static void
+-catch_signals(int)
++static void catch_signals (MAYBE_UNUSED int sig)
+ {
+ 	_exit (10);
+ }
+diff --git a/src/gpasswd.c b/src/gpasswd.c
+index 14c8f4f6..d6a14426 100644
+--- a/src/gpasswd.c
++++ b/src/gpasswd.c
+@@ -109,14 +109,14 @@ static void update_group (struct group *gr);
+ static void change_passwd (struct group *gr);
+ #endif
+ static void log_gpasswd_failure (const char *suffix);
+-static void log_gpasswd_failure_system (/*@null@*/void *);
+-static void log_gpasswd_failure_group (/*@null@*/void *);
++static void log_gpasswd_failure_system (/*@null@*/MAYBE_UNUSED void *arg);
++static void log_gpasswd_failure_group (/*@null@*/MAYBE_UNUSED void *arg);
+ #ifdef SHADOWGRP
+-static void log_gpasswd_failure_gshadow (/*@null@*/void *);
++static void log_gpasswd_failure_gshadow (/*@null@*/MAYBE_UNUSED void *arg);
+ #endif
+ static void log_gpasswd_success (const char *suffix);
+-static void log_gpasswd_success_system (/*@null@*/void *);
+-static void log_gpasswd_success_group(/*@null@*/void *);
++static void log_gpasswd_success_system (/*@null@*/MAYBE_UNUSED void *arg);
++static void log_gpasswd_success_group (/*@null@*/MAYBE_UNUSED void *arg);
+ 
+ /*
+  * usage - display usage message
+@@ -471,14 +471,12 @@ static void log_gpasswd_failure (const char *suffix)
+ 	}
+ }
+ 
+-static void
+-log_gpasswd_failure_system(void *)
++static void log_gpasswd_failure_system (MAYBE_UNUSED void *arg)
+ {
+ 	log_gpasswd_failure ("");
+ }
+ 
+-static void
+-log_gpasswd_failure_group(void *)
++static void log_gpasswd_failure_group (MAYBE_UNUSED void *arg)
+ {
+ 	char  buf[1024];
+ 
+@@ -487,8 +485,7 @@ log_gpasswd_failure_group(void *)
+ }
+ 
+ #ifdef SHADOWGRP
+-static void
+-log_gpasswd_failure_gshadow(void *)
++static void log_gpasswd_failure_gshadow (MAYBE_UNUSED void *arg)
+ {
+ 	char  buf[1024];
+ 
+@@ -585,14 +582,12 @@ static void log_gpasswd_success (const char *suffix)
+ 	}
+ }
+ 
+-static void
+-log_gpasswd_success_system(void *)
++static void log_gpasswd_success_system (MAYBE_UNUSED void *arg)
+ {
+ 	log_gpasswd_success ("");
+ }
+ 
+-static void
+-log_gpasswd_success_group(void *)
++static void log_gpasswd_success_group (MAYBE_UNUSED void *arg)
+ {
+ 	char  buf[1024];
+ 
+diff --git a/src/login.c b/src/login.c
+index 2af11b47..1332d36d 100644
+--- a/src/login.c
++++ b/src/login.c
+@@ -366,14 +366,12 @@ static void init_env (void)
+ #endif				/* !USE_PAM */
+ }
+ 
+-static void
+-exit_handler(int)
++static void exit_handler (MAYBE_UNUSED int sig)
+ {
+ 	_exit (0);
+ }
+ 
+-static void
+-alarm_handler(int)
++static void alarm_handler (MAYBE_UNUSED int sig)
+ {
+ 	write_full(STDERR_FILENO, tmsg, strlen(tmsg));
+ 	signal(SIGALRM, exit_handler);
+diff --git a/src/su.c b/src/su.c
+index 583979c2..5b7b9b77 100644
+--- a/src/su.c
++++ b/src/su.c
+@@ -115,7 +115,7 @@ static void execve_shell (const char *shellname,
+                           char *args[],
+                           char *const envp[]);
+ #ifdef USE_PAM
+-static void kill_child(int);
++static void kill_child (MAYBE_UNUSED int s);
+ static void prepare_pam_close_session (void);
+ #else				/* !USE_PAM */
+ static void die (int);
+@@ -169,8 +169,7 @@ static bool iswheel (const char *username)
+ 	return is_on_list (grp->gr_mem, username);
+ }
+ #else				/* USE_PAM */
+-static void
+-kill_child(int)
++static void kill_child (MAYBE_UNUSED int s)
+ {
+ 	if (0 != pid_child) {
+ 		(void) kill (-pid_child, SIGKILL);
+diff --git a/src/sulogin.c b/src/sulogin.c
+index 3089c02d..74d2ff37 100644
+--- a/src/sulogin.c
++++ b/src/sulogin.c
+@@ -49,8 +49,7 @@ static void catch_signals (int);
+ static int pw_entry(const char *name, struct passwd *pwent);
+ 
+ 
+-static void
+-catch_signals(int)
++static void catch_signals (MAYBE_UNUSED int sig)
+ {
+ 	_exit (1);
+ }
+diff --git a/tests/unit/test_logind.c b/tests/unit/test_logind.c
+index 6cfc6d91..4f5cf757 100644
+--- a/tests/unit/test_logind.c
++++ b/tests/unit/test_logind.c
+@@ -19,13 +19,13 @@
+  * WRAPPERS
+  **********************/
+ struct passwd *
+-__wrap_prefix_getpwnam(uid_t)
++__wrap_prefix_getpwnam(uid_t uid)
+ {
+     return (struct passwd*) mock();
+ }
+ 
+ int
+-__wrap_sd_uid_get_sessions(uid_t, int, char ***)
++__wrap_sd_uid_get_sessions(uid_t uid, int require_active, char ***sessions)
+ {
+     return mock();
+ }
+-- 
+2.43.0
+
diff --git a/meta/recipes-extended/shadow/files/0002-lib-sssd.h-avoid-parameter-name-ommitted-error.patch b/meta/recipes-extended/shadow/files/0002-lib-sssd.h-avoid-parameter-name-ommitted-error.patch
new file mode 100644
index 0000000000..536a32f08b
--- /dev/null
+++ b/meta/recipes-extended/shadow/files/0002-lib-sssd.h-avoid-parameter-name-ommitted-error.patch
@@ -0,0 +1,39 @@
+From 4f197ed9feb28aedff34b5f4332f1117adcb58a6 Mon Sep 17 00:00:00 2001
+From: Chen Qi <Qi.Chen@windriver.com>
+Date: Wed, 11 Feb 2026 05:19:18 +0000
+Subject: [PATCH 2/3] lib/sssd.h: avoid parameter name ommitted error
+
+Fixes: https://github.com/shadow-maint/shadow/issues/1530
+
+Upstream-Status: Submitted [https://github.com/shadow-maint/shadow/pull/1531]
+
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+---
+ lib/sssd.h | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/lib/sssd.h b/lib/sssd.h
+index 1f7ff3cc..dc6dfffb 100644
+--- a/lib/sssd.h
++++ b/lib/sssd.h
+@@ -1,6 +1,8 @@
+ #ifndef _SSSD_H_
+ #define _SSSD_H_
+ 
++#include "attr.h"
++
+ #define SSSD_DB_PASSWD	0x001
+ #define SSSD_DB_GROUP	0x002
+ 
+@@ -11,7 +13,7 @@
+ extern int sssd_flush_cache (int dbflags);
+ #else
+ static inline int
+-sssd_flush_cache(int)
++sssd_flush_cache(MAYBE_UNUSED int unused)
+ {
+ 	return 0;
+ }
+-- 
+2.43.0
+
diff --git a/meta/recipes-extended/shadow/files/0003-Revert-src-Unname-unused-parameter-of-main.patch b/meta/recipes-extended/shadow/files/0003-Revert-src-Unname-unused-parameter-of-main.patch
new file mode 100644
index 0000000000..63c80c4d95
--- /dev/null
+++ b/meta/recipes-extended/shadow/files/0003-Revert-src-Unname-unused-parameter-of-main.patch
@@ -0,0 +1,62 @@
+From abbb2a1ecec04e50dd2f81a8ea2fcc4e28013a64 Mon Sep 17 00:00:00 2001
+From: Chen Qi <Qi.Chen@windriver.com>
+Date: Wed, 11 Feb 2026 05:27:32 +0000
+Subject: [PATCH 3/3] Revert "src/: Unname unused parameter of main()"
+
+This reverts commit 0663ba20951909d6bd5f5af5f16c39cef1595583.
+
+Fixes: https://github.com/shadow-maint/shadow/issues/1530
+
+Upstream-Status: Submitted [https://github.com/shadow-maint/shadow/pull/1531]
+
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+---
+ src/grpconv.c   | 3 +--
+ src/grpunconv.c | 3 +--
+ src/logoutd.c   | 2 +-
+ 3 files changed, 3 insertions(+), 5 deletions(-)
+
+diff --git a/src/grpconv.c b/src/grpconv.c
+index 4a0c308d..426fcfce 100644
+--- a/src/grpconv.c
++++ b/src/grpconv.c
+@@ -276,8 +276,7 @@ int main (int argc, char **argv)
+ 	return 0;
+ }
+ #else				/* !SHADOWGRP */
+-int
+-main(int, char **argv)
++int main (MAYBE_UNUSED int argc, char **argv)
+ {
+ 	fprintf (stderr,
+ 		 "%s: not configured for shadow group support.\n", argv[0]);
+diff --git a/src/grpunconv.c b/src/grpunconv.c
+index 5e76ede0..b59ad13d 100644
+--- a/src/grpunconv.c
++++ b/src/grpunconv.c
+@@ -238,8 +238,7 @@ int main (int argc, char **argv)
+ 	return 0;
+ }
+ #else				/* !SHADOWGRP */
+-int
+-main(int, char **argv)
++int main (MAYBE_UNUSED int argc, char **argv)
+ {
+ 	fprintf (stderr,
+ 		 "%s: not configured for shadow group support.\n", argv[0]);
+diff --git a/src/logoutd.c b/src/logoutd.c
+index c87b75cb..05404bba 100644
+--- a/src/logoutd.c
++++ b/src/logoutd.c
+@@ -116,7 +116,7 @@ static void send_mesg_to_tty (int tty_fd)
+  *	off from the system.
+  */
+ int
+-main(int argc, char *[])
++main(int argc, char **argv)
+ {
+ 	pid_t  pid;
+ 
+-- 
+2.43.0
+
diff --git a/meta/recipes-extended/shadow/files/0004-src-chsh.c-avoid-parameter-name-omitted-error.patch b/meta/recipes-extended/shadow/files/0004-src-chsh.c-avoid-parameter-name-omitted-error.patch
new file mode 100644
index 0000000000..12d562a98a
--- /dev/null
+++ b/meta/recipes-extended/shadow/files/0004-src-chsh.c-avoid-parameter-name-omitted-error.patch
@@ -0,0 +1,28 @@
+From cff48beeff644f6df60d8413f14fbb0e94aec23f Mon Sep 17 00:00:00 2001
+From: Chen Qi <Qi.Chen@windriver.com>
+Date: Wed, 11 Feb 2026 05:51:36 +0000
+Subject: [PATCH 4/4] src/chsh.c: avoid parameter name omitted error
+
+Upstream-Status: Submitted [https://github.com/shadow-maint/shadow/pull/1531]
+
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+---
+ src/chsh.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/chsh.c b/src/chsh.c
+index 0cfe26ee..68ec4d48 100644
+--- a/src/chsh.c
++++ b/src/chsh.c
+@@ -198,7 +198,7 @@ static bool shell_is_listed (const char *sh, bool process_selinux)
+ 
+ #else /* without HAVE_VENDORDIR */
+ 
+-static bool shell_is_listed (const char *sh, bool)
++static bool shell_is_listed (const char *sh, MAYBE_UNUSED bool unused)
+ {
+ 	bool found = false;
+ 	char *cp;
+-- 
+2.43.0
+
diff --git a/meta/recipes-extended/shadow/shadow_4.18.0.bb b/meta/recipes-extended/shadow/shadow_4.19.3.bb
similarity index 95%
rename from meta/recipes-extended/shadow/shadow_4.18.0.bb
rename to meta/recipes-extended/shadow/shadow_4.19.3.bb
index d9a49d8ccf..7ebda315e6 100644
--- a/meta/recipes-extended/shadow/shadow_4.18.0.bb
+++ b/meta/recipes-extended/shadow/shadow_4.19.3.bb
@@ -24,8 +24,12 @@ SRC_URI:append:class-target = " \
 SRC_URI:append:class-native = " \
            file://commonio.c-fix-unexpected-open-failure-in-chroot-env.patch \
            file://disable_syslog.patch \
+           file://0001-Revert-lib-src-tests-Unname-unused-parameters-in-cal.patch \
+           file://0002-lib-sssd.h-avoid-parameter-name-ommitted-error.patch \
+           file://0003-Revert-src-Unname-unused-parameter-of-main.patch \
+           file://0004-src-chsh.c-avoid-parameter-name-omitted-error.patch \
            "
-SRC_URI[sha256sum] = "ae486ce4c0bce55c42d76d8478e428c41586f1da2f89fbf5228243fb4d849db4"
+SRC_URI[sha256sum] = "3bd304a2f3936a7bd31a29aa59e61a1873d15fd4f3e041b0175d2b91e0b25c5d"
 UPSTREAM_CHECK_REGEX = "releases/tag/v?(?P<pver>\d+(\.\d+)+)$"
 
 # Additional Policy files for PAM
-- 
2.43.0



^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [OE-core][PATCH V2] shadow: upgrade from 4.18.0 to 4.19.3
       [not found] <18931D2FF28D0A2A.653184@lists.openembedded.org>
@ 2026-03-04  2:57 ` ChenQi
  0 siblings, 0 replies; 2+ messages in thread
From: ChenQi @ 2026-03-04  2:57 UTC (permalink / raw)
  To: openembedded-core; +Cc: andrej.kozemcak

Please drop this patch and take the 4.19.4 upgrade sent by 
andrej.kozemcak@siemens.com.

This is because the gcc10 regression has been fixed in 
https://github.com/shadow-maint/shadow/pull/1531
and 4.19.4 has been released with that fix: 
https://github.com/shadow-maint/shadow/issues/1561

Regards,
Qi

On 2/11/26 14:26, Chen Qi via lists.openembedded.org wrote:
> From: Chen Qi <Qi.Chen@windriver.com>
>
> The major changes in 4.19.x:
> https://github.com/shadow-maint/shadow/releases/tag/4.19.0
>
> Note that there is change in 4.19 that breaks build with gcc <= 10.
> It removed unused parameter names from function declarations and
> definitions.
>
> This is not a problem for target shadow. But for shadow-native,
> the build fails on hosts that has gcc <= 10. So add 4 extra patches
> for native only. The upstream issue and the PR are as below:
> https://github.com/shadow-maint/shadow/pull/1531
> https://github.com/shadow-maint/shadow/issues/1530
>
> Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
> ---
>   ...ests-Unname-unused-parameters-in-cal.patch | 278 ++++++++++++++++++
>   ...-avoid-parameter-name-ommitted-error.patch |  39 +++
>   ...-src-Unname-unused-parameter-of-main.patch |  62 ++++
>   ...c-avoid-parameter-name-omitted-error.patch |  28 ++
>   .../{shadow_4.18.0.bb => shadow_4.19.3.bb}    |   6 +-
>   5 files changed, 412 insertions(+), 1 deletion(-)
>   create mode 100644 meta/recipes-extended/shadow/files/0001-Revert-lib-src-tests-Unname-unused-parameters-in-cal.patch
>   create mode 100644 meta/recipes-extended/shadow/files/0002-lib-sssd.h-avoid-parameter-name-ommitted-error.patch
>   create mode 100644 meta/recipes-extended/shadow/files/0003-Revert-src-Unname-unused-parameter-of-main.patch
>   create mode 100644 meta/recipes-extended/shadow/files/0004-src-chsh.c-avoid-parameter-name-omitted-error.patch
>   rename meta/recipes-extended/shadow/{shadow_4.18.0.bb => shadow_4.19.3.bb} (95%)
>
> diff --git a/meta/recipes-extended/shadow/files/0001-Revert-lib-src-tests-Unname-unused-parameters-in-cal.patch b/meta/recipes-extended/shadow/files/0001-Revert-lib-src-tests-Unname-unused-parameters-in-cal.patch
> new file mode 100644
> index 0000000000..fcea5d7448
> --- /dev/null
> +++ b/meta/recipes-extended/shadow/files/0001-Revert-lib-src-tests-Unname-unused-parameters-in-cal.patch
> @@ -0,0 +1,278 @@
> +From 76cce1b4979b1406ac76f0e201e3db0424d1132b Mon Sep 17 00:00:00 2001
> +From: Chen Qi <Qi.Chen@windriver.com>
> +Date: Wed, 11 Feb 2026 05:23:32 +0000
> +Subject: [PATCH 1/3] Revert "lib/, src/ tests/: Unname unused parameters in
> + callbacks"
> +
> +This reverts commit 9e711e2240c72017dacf088d2931fb26dc6e8fed.
> +
> +We cannot just uname these unused parameters because gcc 10
> +need them. There will be error like below with gcc 10:
> +
> +  lib/copydir.c:103:11: error: parameter name omitted
> +
> +Fixes: https://github.com/shadow-maint/shadow/issues/1530
> +
> +Upstream-Status: Submitted [https://github.com/shadow-maint/shadow/pull/1531]
> +
> +Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
> +---
> + lib/cleanup_user.c             |  1 +
> + lib/copydir.c                  |  3 +--
> + lib/loginprompt.c              |  3 +--
> + lib/pam_pass_non_interactive.c |  4 ++--
> + lib/semanage.c                 |  2 +-
> + src/expiry.c                   |  5 ++---
> + src/gpasswd.c                  | 25 ++++++++++---------------
> + src/login.c                    |  6 ++----
> + src/su.c                       |  5 ++---
> + src/sulogin.c                  |  3 +--
> + tests/unit/test_logind.c       |  4 ++--
> + 11 files changed, 25 insertions(+), 36 deletions(-)
> +
> +diff --git a/lib/cleanup_user.c b/lib/cleanup_user.c
> +index 0af0c67f..00554d89 100644
> +--- a/lib/cleanup_user.c
> ++++ b/lib/cleanup_user.c
> +@@ -9,6 +9,7 @@
> + #include <assert.h>
> + #include <stdio.h>
> +
> ++#include "attr.h"
> + #include "defines.h"
> + #include "pwio.h"
> + #include "shadowio.h"
> +diff --git a/lib/copydir.c b/lib/copydir.c
> +index 796015af..f42d5d6d 100644
> +--- a/lib/copydir.c
> ++++ b/lib/copydir.c
> +@@ -99,8 +99,7 @@ static int fchown_if_needed (int fdst, const struct stat *statp,
> +  * error_acl - format the error messages for the ACL and EQ libraries.
> +  */
> + format_attr(printf, 2, 3)
> +-static void
> +-error_acl(struct error_context *, const char *fmt, ...)
> ++static void error_acl (MAYBE_UNUSED struct error_context *ctx, const char *fmt, ...)
> + {
> + 	va_list ap;
> + 	FILE *shadow_logfd = log_get_logfd();
> +diff --git a/lib/loginprompt.c b/lib/loginprompt.c
> +index 18b899f5..4798d1c6 100644
> +--- a/lib/loginprompt.c
> ++++ b/lib/loginprompt.c
> +@@ -26,8 +26,7 @@
> + #include "string/strtok/stpsep.h"
> +
> +
> +-static void
> +-login_exit(int)
> ++static void login_exit (MAYBE_UNUSED int sig)
> + {
> + 	_exit (EXIT_FAILURE);
> + }
> +diff --git a/lib/pam_pass_non_interactive.c b/lib/pam_pass_non_interactive.c
> +index 054077f3..8a5910b8 100644
> +--- a/lib/pam_pass_non_interactive.c
> ++++ b/lib/pam_pass_non_interactive.c
> +@@ -27,7 +27,7 @@
> + static int ni_conv (int num_msg,
> +                     const struct pam_message **msg,
> +                     struct pam_response **resp,
> +-                    void *);
> ++                    MAYBE_UNUSED void *appdata_ptr);
> + static const struct pam_conv non_interactive_pam_conv = {
> + 	ni_conv,
> + 	NULL
> +@@ -38,7 +38,7 @@ static const struct pam_conv non_interactive_pam_conv = {
> + static int ni_conv (int num_msg,
> +                     const struct pam_message **msg,
> +                     struct pam_response **resp,
> +-                    void *)
> ++                    MAYBE_UNUSED void *appdata_ptr)
> + {
> + 	struct pam_response *responses;
> + 	int count;
> +diff --git a/lib/semanage.c b/lib/semanage.c
> +index e20fea6e..c9742f0c 100644
> +--- a/lib/semanage.c
> ++++ b/lib/semanage.c
> +@@ -28,7 +28,7 @@
> +
> +
> + format_attr(printf, 3, 4)
> +-static void semanage_error_callback (void *,
> ++static void semanage_error_callback (MAYBE_UNUSED void *varg,
> +                                      semanage_handle_t *handle,
> +                                      const char *fmt, ...)
> + {
> +diff --git a/src/expiry.c b/src/expiry.c
> +index 8da89bdf..412e54d6 100644
> +--- a/src/expiry.c
> ++++ b/src/expiry.c
> +@@ -29,15 +29,14 @@ static const char Prog[] = "expiry";
> + static bool cflg = false;
> +
> + /* local function prototypes */
> +-static void catch_signals(int);
> ++static void catch_signals (MAYBE_UNUSED int sig);
> + NORETURN static void usage (int status);
> + static void process_flags (int argc, char **argv);
> +
> + /*
> +  * catch_signals - signal catcher
> +  */
> +-static void
> +-catch_signals(int)
> ++static void catch_signals (MAYBE_UNUSED int sig)
> + {
> + 	_exit (10);
> + }
> +diff --git a/src/gpasswd.c b/src/gpasswd.c
> +index 14c8f4f6..d6a14426 100644
> +--- a/src/gpasswd.c
> ++++ b/src/gpasswd.c
> +@@ -109,14 +109,14 @@ static void update_group (struct group *gr);
> + static void change_passwd (struct group *gr);
> + #endif
> + static void log_gpasswd_failure (const char *suffix);
> +-static void log_gpasswd_failure_system (/*@null@*/void *);
> +-static void log_gpasswd_failure_group (/*@null@*/void *);
> ++static void log_gpasswd_failure_system (/*@null@*/MAYBE_UNUSED void *arg);
> ++static void log_gpasswd_failure_group (/*@null@*/MAYBE_UNUSED void *arg);
> + #ifdef SHADOWGRP
> +-static void log_gpasswd_failure_gshadow (/*@null@*/void *);
> ++static void log_gpasswd_failure_gshadow (/*@null@*/MAYBE_UNUSED void *arg);
> + #endif
> + static void log_gpasswd_success (const char *suffix);
> +-static void log_gpasswd_success_system (/*@null@*/void *);
> +-static void log_gpasswd_success_group(/*@null@*/void *);
> ++static void log_gpasswd_success_system (/*@null@*/MAYBE_UNUSED void *arg);
> ++static void log_gpasswd_success_group (/*@null@*/MAYBE_UNUSED void *arg);
> +
> + /*
> +  * usage - display usage message
> +@@ -471,14 +471,12 @@ static void log_gpasswd_failure (const char *suffix)
> + 	}
> + }
> +
> +-static void
> +-log_gpasswd_failure_system(void *)
> ++static void log_gpasswd_failure_system (MAYBE_UNUSED void *arg)
> + {
> + 	log_gpasswd_failure ("");
> + }
> +
> +-static void
> +-log_gpasswd_failure_group(void *)
> ++static void log_gpasswd_failure_group (MAYBE_UNUSED void *arg)
> + {
> + 	char  buf[1024];
> +
> +@@ -487,8 +485,7 @@ log_gpasswd_failure_group(void *)
> + }
> +
> + #ifdef SHADOWGRP
> +-static void
> +-log_gpasswd_failure_gshadow(void *)
> ++static void log_gpasswd_failure_gshadow (MAYBE_UNUSED void *arg)
> + {
> + 	char  buf[1024];
> +
> +@@ -585,14 +582,12 @@ static void log_gpasswd_success (const char *suffix)
> + 	}
> + }
> +
> +-static void
> +-log_gpasswd_success_system(void *)
> ++static void log_gpasswd_success_system (MAYBE_UNUSED void *arg)
> + {
> + 	log_gpasswd_success ("");
> + }
> +
> +-static void
> +-log_gpasswd_success_group(void *)
> ++static void log_gpasswd_success_group (MAYBE_UNUSED void *arg)
> + {
> + 	char  buf[1024];
> +
> +diff --git a/src/login.c b/src/login.c
> +index 2af11b47..1332d36d 100644
> +--- a/src/login.c
> ++++ b/src/login.c
> +@@ -366,14 +366,12 @@ static void init_env (void)
> + #endif				/* !USE_PAM */
> + }
> +
> +-static void
> +-exit_handler(int)
> ++static void exit_handler (MAYBE_UNUSED int sig)
> + {
> + 	_exit (0);
> + }
> +
> +-static void
> +-alarm_handler(int)
> ++static void alarm_handler (MAYBE_UNUSED int sig)
> + {
> + 	write_full(STDERR_FILENO, tmsg, strlen(tmsg));
> + 	signal(SIGALRM, exit_handler);
> +diff --git a/src/su.c b/src/su.c
> +index 583979c2..5b7b9b77 100644
> +--- a/src/su.c
> ++++ b/src/su.c
> +@@ -115,7 +115,7 @@ static void execve_shell (const char *shellname,
> +                           char *args[],
> +                           char *const envp[]);
> + #ifdef USE_PAM
> +-static void kill_child(int);
> ++static void kill_child (MAYBE_UNUSED int s);
> + static void prepare_pam_close_session (void);
> + #else				/* !USE_PAM */
> + static void die (int);
> +@@ -169,8 +169,7 @@ static bool iswheel (const char *username)
> + 	return is_on_list (grp->gr_mem, username);
> + }
> + #else				/* USE_PAM */
> +-static void
> +-kill_child(int)
> ++static void kill_child (MAYBE_UNUSED int s)
> + {
> + 	if (0 != pid_child) {
> + 		(void) kill (-pid_child, SIGKILL);
> +diff --git a/src/sulogin.c b/src/sulogin.c
> +index 3089c02d..74d2ff37 100644
> +--- a/src/sulogin.c
> ++++ b/src/sulogin.c
> +@@ -49,8 +49,7 @@ static void catch_signals (int);
> + static int pw_entry(const char *name, struct passwd *pwent);
> +
> +
> +-static void
> +-catch_signals(int)
> ++static void catch_signals (MAYBE_UNUSED int sig)
> + {
> + 	_exit (1);
> + }
> +diff --git a/tests/unit/test_logind.c b/tests/unit/test_logind.c
> +index 6cfc6d91..4f5cf757 100644
> +--- a/tests/unit/test_logind.c
> ++++ b/tests/unit/test_logind.c
> +@@ -19,13 +19,13 @@
> +  * WRAPPERS
> +  **********************/
> + struct passwd *
> +-__wrap_prefix_getpwnam(uid_t)
> ++__wrap_prefix_getpwnam(uid_t uid)
> + {
> +     return (struct passwd*) mock();
> + }
> +
> + int
> +-__wrap_sd_uid_get_sessions(uid_t, int, char ***)
> ++__wrap_sd_uid_get_sessions(uid_t uid, int require_active, char ***sessions)
> + {
> +     return mock();
> + }
> +--
> +2.43.0
> +
> diff --git a/meta/recipes-extended/shadow/files/0002-lib-sssd.h-avoid-parameter-name-ommitted-error.patch b/meta/recipes-extended/shadow/files/0002-lib-sssd.h-avoid-parameter-name-ommitted-error.patch
> new file mode 100644
> index 0000000000..536a32f08b
> --- /dev/null
> +++ b/meta/recipes-extended/shadow/files/0002-lib-sssd.h-avoid-parameter-name-ommitted-error.patch
> @@ -0,0 +1,39 @@
> +From 4f197ed9feb28aedff34b5f4332f1117adcb58a6 Mon Sep 17 00:00:00 2001
> +From: Chen Qi <Qi.Chen@windriver.com>
> +Date: Wed, 11 Feb 2026 05:19:18 +0000
> +Subject: [PATCH 2/3] lib/sssd.h: avoid parameter name ommitted error
> +
> +Fixes: https://github.com/shadow-maint/shadow/issues/1530
> +
> +Upstream-Status: Submitted [https://github.com/shadow-maint/shadow/pull/1531]
> +
> +Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
> +---
> + lib/sssd.h | 4 +++-
> + 1 file changed, 3 insertions(+), 1 deletion(-)
> +
> +diff --git a/lib/sssd.h b/lib/sssd.h
> +index 1f7ff3cc..dc6dfffb 100644
> +--- a/lib/sssd.h
> ++++ b/lib/sssd.h
> +@@ -1,6 +1,8 @@
> + #ifndef _SSSD_H_
> + #define _SSSD_H_
> +
> ++#include "attr.h"
> ++
> + #define SSSD_DB_PASSWD	0x001
> + #define SSSD_DB_GROUP	0x002
> +
> +@@ -11,7 +13,7 @@
> + extern int sssd_flush_cache (int dbflags);
> + #else
> + static inline int
> +-sssd_flush_cache(int)
> ++sssd_flush_cache(MAYBE_UNUSED int unused)
> + {
> + 	return 0;
> + }
> +--
> +2.43.0
> +
> diff --git a/meta/recipes-extended/shadow/files/0003-Revert-src-Unname-unused-parameter-of-main.patch b/meta/recipes-extended/shadow/files/0003-Revert-src-Unname-unused-parameter-of-main.patch
> new file mode 100644
> index 0000000000..63c80c4d95
> --- /dev/null
> +++ b/meta/recipes-extended/shadow/files/0003-Revert-src-Unname-unused-parameter-of-main.patch
> @@ -0,0 +1,62 @@
> +From abbb2a1ecec04e50dd2f81a8ea2fcc4e28013a64 Mon Sep 17 00:00:00 2001
> +From: Chen Qi <Qi.Chen@windriver.com>
> +Date: Wed, 11 Feb 2026 05:27:32 +0000
> +Subject: [PATCH 3/3] Revert "src/: Unname unused parameter of main()"
> +
> +This reverts commit 0663ba20951909d6bd5f5af5f16c39cef1595583.
> +
> +Fixes: https://github.com/shadow-maint/shadow/issues/1530
> +
> +Upstream-Status: Submitted [https://github.com/shadow-maint/shadow/pull/1531]
> +
> +Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
> +---
> + src/grpconv.c   | 3 +--
> + src/grpunconv.c | 3 +--
> + src/logoutd.c   | 2 +-
> + 3 files changed, 3 insertions(+), 5 deletions(-)
> +
> +diff --git a/src/grpconv.c b/src/grpconv.c
> +index 4a0c308d..426fcfce 100644
> +--- a/src/grpconv.c
> ++++ b/src/grpconv.c
> +@@ -276,8 +276,7 @@ int main (int argc, char **argv)
> + 	return 0;
> + }
> + #else				/* !SHADOWGRP */
> +-int
> +-main(int, char **argv)
> ++int main (MAYBE_UNUSED int argc, char **argv)
> + {
> + 	fprintf (stderr,
> + 		 "%s: not configured for shadow group support.\n", argv[0]);
> +diff --git a/src/grpunconv.c b/src/grpunconv.c
> +index 5e76ede0..b59ad13d 100644
> +--- a/src/grpunconv.c
> ++++ b/src/grpunconv.c
> +@@ -238,8 +238,7 @@ int main (int argc, char **argv)
> + 	return 0;
> + }
> + #else				/* !SHADOWGRP */
> +-int
> +-main(int, char **argv)
> ++int main (MAYBE_UNUSED int argc, char **argv)
> + {
> + 	fprintf (stderr,
> + 		 "%s: not configured for shadow group support.\n", argv[0]);
> +diff --git a/src/logoutd.c b/src/logoutd.c
> +index c87b75cb..05404bba 100644
> +--- a/src/logoutd.c
> ++++ b/src/logoutd.c
> +@@ -116,7 +116,7 @@ static void send_mesg_to_tty (int tty_fd)
> +  *	off from the system.
> +  */
> + int
> +-main(int argc, char *[])
> ++main(int argc, char **argv)
> + {
> + 	pid_t  pid;
> +
> +--
> +2.43.0
> +
> diff --git a/meta/recipes-extended/shadow/files/0004-src-chsh.c-avoid-parameter-name-omitted-error.patch b/meta/recipes-extended/shadow/files/0004-src-chsh.c-avoid-parameter-name-omitted-error.patch
> new file mode 100644
> index 0000000000..12d562a98a
> --- /dev/null
> +++ b/meta/recipes-extended/shadow/files/0004-src-chsh.c-avoid-parameter-name-omitted-error.patch
> @@ -0,0 +1,28 @@
> +From cff48beeff644f6df60d8413f14fbb0e94aec23f Mon Sep 17 00:00:00 2001
> +From: Chen Qi <Qi.Chen@windriver.com>
> +Date: Wed, 11 Feb 2026 05:51:36 +0000
> +Subject: [PATCH 4/4] src/chsh.c: avoid parameter name omitted error
> +
> +Upstream-Status: Submitted [https://github.com/shadow-maint/shadow/pull/1531]
> +
> +Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
> +---
> + src/chsh.c | 2 +-
> + 1 file changed, 1 insertion(+), 1 deletion(-)
> +
> +diff --git a/src/chsh.c b/src/chsh.c
> +index 0cfe26ee..68ec4d48 100644
> +--- a/src/chsh.c
> ++++ b/src/chsh.c
> +@@ -198,7 +198,7 @@ static bool shell_is_listed (const char *sh, bool process_selinux)
> +
> + #else /* without HAVE_VENDORDIR */
> +
> +-static bool shell_is_listed (const char *sh, bool)
> ++static bool shell_is_listed (const char *sh, MAYBE_UNUSED bool unused)
> + {
> + 	bool found = false;
> + 	char *cp;
> +--
> +2.43.0
> +
> diff --git a/meta/recipes-extended/shadow/shadow_4.18.0.bb b/meta/recipes-extended/shadow/shadow_4.19.3.bb
> similarity index 95%
> rename from meta/recipes-extended/shadow/shadow_4.18.0.bb
> rename to meta/recipes-extended/shadow/shadow_4.19.3.bb
> index d9a49d8ccf..7ebda315e6 100644
> --- a/meta/recipes-extended/shadow/shadow_4.18.0.bb
> +++ b/meta/recipes-extended/shadow/shadow_4.19.3.bb
> @@ -24,8 +24,12 @@ SRC_URI:append:class-target = " \
>   SRC_URI:append:class-native = " \
>              file://commonio.c-fix-unexpected-open-failure-in-chroot-env.patch \
>              file://disable_syslog.patch \
> +           file://0001-Revert-lib-src-tests-Unname-unused-parameters-in-cal.patch \
> +           file://0002-lib-sssd.h-avoid-parameter-name-ommitted-error.patch \
> +           file://0003-Revert-src-Unname-unused-parameter-of-main.patch \
> +           file://0004-src-chsh.c-avoid-parameter-name-omitted-error.patch \
>              "
> -SRC_URI[sha256sum] = "ae486ce4c0bce55c42d76d8478e428c41586f1da2f89fbf5228243fb4d849db4"
> +SRC_URI[sha256sum] = "3bd304a2f3936a7bd31a29aa59e61a1873d15fd4f3e041b0175d2b91e0b25c5d"
>   UPSTREAM_CHECK_REGEX = "releases/tag/v?(?P<pver>\d+(\.\d+)+)$"
>   
>   # Additional Policy files for PAM
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#230964): https://lists.openembedded.org/g/openembedded-core/message/230964
> Mute This Topic: https://lists.openembedded.org/mt/117752770/3618072
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [Qi.Chen@windriver.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>



^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2026-03-04  2:57 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <18931D2FF28D0A2A.653184@lists.openembedded.org>
2026-03-04  2:57 ` [OE-core][PATCH V2] shadow: upgrade from 4.18.0 to 4.19.3 ChenQi
2026-02-11  6:26 Qi.Chen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox