From 413dcfbcf9e78b184578e26d4f49afc518d7e657ee4566d20311b6e02dfca484 Mon Sep 17 00:00:00 2001 From: Michael Vetter Date: Sun, 10 Mar 2024 07:16:34 +0000 Subject: [PATCH 1/2] - Update to 4.15.0 * libshadow: + Use utmpx instead of utmp. This fixes a regression introduced in 4.14.0. + Fix build error (parameter name omitted). * Build system: + Link correctly with libdl. + Install pam configs for chpasswd(8) and newusers(8) when using ./configure --with-libpam --disable-account-tools-setuid. + Merge libshadow and libmisc into a single libshadow. This fixes problems in the linker, which were reported at least in Gentoo. + Fix build with musl libc. + Support out of tree builds * useradd(8): + Set proper SELinux labels for def_usrtemplate - Update Serge Hallyns GPG key - Update shadow-login_defs-unused-by-pam.patch OBS-URL: https://build.opensuse.org/package/show/Base:System/shadow?expand=0&rev=171 --- shadow-4.14.6.tar.xz | 3 - shadow-4.14.6.tar.xz.asc | 16 - shadow-4.15.0.tar.xz | 3 + shadow-4.15.0.tar.xz.asc | 16 + shadow-login_defs-unused-by-pam.patch | 15 +- shadow.changes | 21 + shadow.keyring | 644 +++++--------------------- shadow.spec | 2 +- 8 files changed, 154 insertions(+), 566 deletions(-) delete mode 100644 shadow-4.14.6.tar.xz delete mode 100644 shadow-4.14.6.tar.xz.asc create mode 100644 shadow-4.15.0.tar.xz create mode 100644 shadow-4.15.0.tar.xz.asc diff --git a/shadow-4.14.6.tar.xz b/shadow-4.14.6.tar.xz deleted file mode 100644 index 8b0ecc8..0000000 --- a/shadow-4.14.6.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:17bdd568e7683e5df4e2de6cf69b0905d8a3a028c1689eb189005fea268e0ad6 -size 1805900 diff --git a/shadow-4.14.6.tar.xz.asc b/shadow-4.14.6.tar.xz.asc deleted file mode 100644 index 4d08a6f..0000000 --- a/shadow-4.14.6.tar.xz.asc +++ /dev/null @@ -1,16 +0,0 @@ ------BEGIN PGP SIGNATURE----- - -iQIzBAABCgAdFiEE6jqH8KTroDDkXfJAnowa+77/2zIFAmXibkEACgkQnowa+77/ -2zJoEA/8CHUvIsY+3qS4/eJQ953pEGc5++xK7fahMj7Y7QQ8Rmt9Mj5uaegSqkhj -sX/3P9QljGIWraqoSv0hdkck8U8VCgc4kFkS2ZQCXaOdCM6GnYThWlyPEK069gPl -HUjHYkq33s+CNQbZufVCClxwXuJ17qq9rCydwhAkrO693jTtHQVhNWOB303/0l4H -SitQd4CL4IYjlxjXk9q4/GvxZ+7q9/DoE+HBlGYVVnnLPRzBk6c4hu9G8Ce79Yxn -k5xe/k9kQShz4c3woZbq1sWXUx17IG15Yyd6HRCuf9asQpu58SH3KxtdrsCswAPP -rKmZxW9Vi41HgA09idGRRLxZTTVOr6JEHhn5Oi4oU4F8N5Gw47KzuXqsWk+3UBeC -JCMclfK4rXungvoqmjTRSaznn2wD44WxERY+uaFkQmwYUxqcwQ0hlETeH0ih99FM -QuIeGmq7B3AjcRhiX8JhJlL9IOjAW/M7rcu6b06iZlDO30zd7+nJl6eyA+NV686U -JY8riwvT8U9gNH+3q+fRVcgfaM27PaDxc0ztwM/MaY95hcBx4yXahCk0A2s7CcIb -R8n68tLVJYLS0eJCyV/+5IN8/+hl5spx5mSuNu+HqpbhwgOjNoAtGygHU8v4j5yr -LdBIQFUkfmoNJNT4+eVCaLy1rn1lt3sePyY7QhZjoeVJL56ario= -=7JYP ------END PGP SIGNATURE----- diff --git a/shadow-4.15.0.tar.xz b/shadow-4.15.0.tar.xz new file mode 100644 index 0000000..26688aa --- /dev/null +++ b/shadow-4.15.0.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e2e22c1b2a6241c9ed828387f1065b7eaa2e87c3d221550d1575cf6a35247c0d +size 1784564 diff --git a/shadow-4.15.0.tar.xz.asc b/shadow-4.15.0.tar.xz.asc new file mode 100644 index 0000000..49391d0 --- /dev/null +++ b/shadow-4.15.0.tar.xz.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEEflbiwT+nfOMVWa3JfcJMNsM0HSAFAmXrjOcACgkQfcJMNsM0 +HSC+Xg/8DIzBlPlkuvgmKSQbTV2AsRDrGxRSSks36hAsi/uBNhpIi5RI5OftN9S2 +PuuY+nfja8K1zbOt8IyUx8dLmBFbN5U3u53mb0W0hI2RQFn3G18Pg4CurzBktA6P +tQ23wr2YnWfjbq6k7ed8keAKh0CTxe+hy7IYpYww+RImxAuYOYgSoRn7qBbcFMkI +WUbg5dku4ijy+2N1llxjOX7hIKaYN+BlKBIxAiku4IBmxdRyVrKi5njmiFEQh8PG +53ZLW6lIy8Q2GJxZA+A/xEm+sZnaMuVTIKlQJouHTEYwhQ882PPm1lnFBFvoMPsk +mAXoUj4otJcXWnJbMgkFYv0BFWKKUpMdhT61miwGywOY8d60D9V85AnUjwRk8EOD +7pSGiVECZGEQsSaFXWDboYhNZZ7VlvpTUkMEphNfj7xENnGbr7BlgQEEPNpFwkUL +zNwIV30bP1qLwZD/MowjKfB5uc9MYt8Q7dP5IZNwqJv+WIRBQjr9LA3iGLxc3YfH +DlYLP8pLjmd0+4HuHdtlc2b8QSY5kLQKYy12MnvGL77EGUq76bjGVtgrE9AWy9V4 +PRlS91lAdRqCCqAvWQ5wQx5lJwAED5uxAl64GEdyvHzGTkbFaH5DqTJBLd6v7Jyj +UTP+RxIAVrV+lCYy5TWwemeSlZkO/F0T/Lkk2wU/9S4rSltOkT4= +=fkei +-----END PGP SIGNATURE----- diff --git a/shadow-login_defs-unused-by-pam.patch b/shadow-login_defs-unused-by-pam.patch index 2599774..62e6b57 100644 --- a/shadow-login_defs-unused-by-pam.patch +++ b/shadow-login_defs-unused-by-pam.patch @@ -152,7 +152,7 @@ Index: etc/login.defs # Default initial "umask" value used by login(1) on non-PAM enabled systems. # Default "umask" value for pam_umask(8) on PAM enabled systems. -@@ -211,28 +125,13 @@ UMASK 022 +@@ -211,23 +125,13 @@ UMASK 022 # # PASS_MAX_DAYS Maximum number of days a password may be used. # PASS_MIN_DAYS Minimum number of days allowed between password changes. @@ -172,16 +172,11 @@ Index: etc/login.defs -# -SU_WHEEL_ONLY no - --# --# If compiled with cracklib support, sets the path to the dictionaries --# --CRACKLIB_DICTPATH /var/cache/cracklib/cracklib_dict -- -# # Min/max values for automatic uid selection in useradd(8) # UID_MIN 1000 -@@ -269,28 +168,6 @@ LOGIN_RETRIES 5 +@@ -264,28 +168,6 @@ LOGIN_RETRIES 5 LOGIN_TIMEOUT 60 # @@ -210,7 +205,7 @@ Index: etc/login.defs # Which fields may be changed by regular users using chfn(1) - use # any combination of letters "frwh" (full name, room number, work # phone, home phone). If not defined, no changes are allowed. -@@ -299,13 +176,6 @@ CHFN_AUTH yes +@@ -294,13 +176,6 @@ CHFN_AUTH yes CHFN_RESTRICT rwh # @@ -224,7 +219,7 @@ Index: etc/login.defs # Only works if compiled with MD5_CRYPT defined: # If set to "yes", new passwords will be encrypted using the MD5-based # algorithm compatible with the one used by recent releases of FreeBSD. -@@ -354,45 +224,6 @@ CHFN_RESTRICT rwh +@@ -349,45 +224,6 @@ CHFN_RESTRICT rwh #SHA_CRYPT_MAX_ROUNDS 5000 # @@ -270,7 +265,7 @@ Index: etc/login.defs # Should login be allowed if we can't cd to the home directory? # Default is no. # -@@ -407,12 +238,6 @@ DEFAULT_HOME yes +@@ -402,12 +238,6 @@ DEFAULT_HOME yes NONEXISTENT /nonexistent # diff --git a/shadow.changes b/shadow.changes index 28a2333..779e433 100644 --- a/shadow.changes +++ b/shadow.changes @@ -1,3 +1,24 @@ +------------------------------------------------------------------- +Sun Mar 10 07:02:35 UTC 2024 - Michael Vetter + +- Update to 4.15.0 + * libshadow: + + Use utmpx instead of utmp. This fixes a regression introduced + in 4.14.0. + + Fix build error (parameter name omitted). + * Build system: + + Link correctly with libdl. + + Install pam configs for chpasswd(8) and newusers(8) when using + ./configure --with-libpam --disable-account-tools-setuid. + + Merge libshadow and libmisc into a single libshadow. This fixes + problems in the linker, which were reported at least in Gentoo. + + Fix build with musl libc. + + Support out of tree builds + * useradd(8): + + Set proper SELinux labels for def_usrtemplate +- Update Serge Hallyns GPG key +- Update shadow-login_defs-unused-by-pam.patch + ------------------------------------------------------------------- Sun Mar 3 06:03:25 UTC 2024 - Michael Vetter diff --git a/shadow.keyring b/shadow.keyring index 581feb9..669b83e 100644 --- a/shadow.keyring +++ b/shadow.keyring @@ -1,545 +1,117 @@ +Serge Hallyn Serge Hallyn -----BEGIN PGP PUBLIC KEY BLOCK----- -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 -=M8RS +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 +=/+gu -----END PGP PUBLIC KEY BLOCK----- + Alejandro Colomar -----BEGIN PGP PUBLIC KEY BLOCK----- diff --git a/shadow.spec b/shadow.spec index 50009e9..dc538bb 100644 --- a/shadow.spec +++ b/shadow.spec @@ -22,7 +22,7 @@ %define no_config 1 %endif Name: shadow -Version: 4.14.6 +Version: 4.15.0 Release: 0 Summary: Utilities to Manage User and Group Accounts License: BSD-3-Clause AND GPL-2.0-or-later From 0f42921987f155c5f458d3dbc04463a4a6e2dadce54e8c048bbed9444f6f3b46 Mon Sep 17 00:00:00 2001 From: Michael Vetter Date: Thu, 21 Mar 2024 06:39:57 +0000 Subject: [PATCH 2/2] - Add shadow-4.15.0-fix-definition.patch: Fix error messages about config options. See gh/shadow-maint/shadow#967 OBS-URL: https://build.opensuse.org/package/show/Base:System/shadow?expand=0&rev=172 --- shadow-4.15.0-fix-definition.patch | 134 +++++++++++++++++++++++++++++ shadow.changes | 7 ++ shadow.spec | 3 + 3 files changed, 144 insertions(+) create mode 100644 shadow-4.15.0-fix-definition.patch diff --git a/shadow-4.15.0-fix-definition.patch b/shadow-4.15.0-fix-definition.patch new file mode 100644 index 0000000..563ba58 --- /dev/null +++ b/shadow-4.15.0-fix-definition.patch @@ -0,0 +1,134 @@ +From ead55e9ba8958504e23e29545f90c4dd925c7462 Mon Sep 17 00:00:00 2001 +From: Serge Hallyn +Date: Wed, 20 Mar 2024 17:39:46 -0500 +Subject: [PATCH] getdef: avoid spurious error messages about unknown + configuration options + +def_find can return NULL for unset, not just unknown, config options. So +move the decision of whether to log an error message about an unknown config +option back into def_find, which knows the difference. Only putdef_str() +will pass a char* srcfile to def_find, so only calls from putdef_str will +cause the message, which was the original intent of fa68441bc4be8. + +closes #967 + +fixes: fa68441bc4be8 ("Improve the login.defs unknown item error message") +Signed-off-by: Serge Hallyn +--- + lib/getdef.c | 30 ++++++++++++++++-------------- + 1 file changed, 16 insertions(+), 14 deletions(-) + +diff --git a/lib/getdef.c b/lib/getdef.c +index 4d4d4e194..ef2ae1f08 100644 +--- a/lib/getdef.c ++++ b/lib/getdef.c +@@ -176,7 +176,7 @@ static const char* def_fname = LOGINDEFS; /* login config defs file */ + static bool def_loaded = false; /* are defs already loaded? */ + + /* local function prototypes */ +-static /*@observer@*/ /*@null@*/struct itemdef *def_find (const char *); ++static /*@observer@*/ /*@null@*/struct itemdef *def_find (const char *, const char *); + static void def_load (void); + + +@@ -195,7 +195,7 @@ static void def_load (void); + def_load (); + } + +- d = def_find (item); ++ d = def_find (item, NULL); + return (NULL == d) ? NULL : d->value; + } + +@@ -214,7 +214,7 @@ bool getdef_bool (const char *item) + def_load (); + } + +- d = def_find (item); ++ d = def_find (item, NULL); + if ((NULL == d) || (NULL == d->value)) { + return false; + } +@@ -240,7 +240,7 @@ int getdef_num (const char *item, int dflt) + def_load (); + } + +- d = def_find (item); ++ d = def_find (item, NULL); + if ((NULL == d) || (NULL == d->value)) { + return dflt; + } +@@ -275,7 +275,7 @@ unsigned int getdef_unum (const char *item, unsigned int dflt) + def_load (); + } + +- d = def_find (item); ++ d = def_find (item, NULL); + if ((NULL == d) || (NULL == d->value)) { + return dflt; + } +@@ -310,7 +310,7 @@ long getdef_long (const char *item, long dflt) + def_load (); + } + +- d = def_find (item); ++ d = def_find (item, NULL); + if ((NULL == d) || (NULL == d->value)) { + return dflt; + } +@@ -342,7 +342,7 @@ unsigned long getdef_ulong (const char *item, unsigned long dflt) + def_load (); + } + +- d = def_find (item); ++ d = def_find (item, NULL); + if ((NULL == d) || (NULL == d->value)) { + return dflt; + } +@@ -375,12 +375,9 @@ int putdef_str (const char *name, const char *value, const char *srcfile) + * Locate the slot to save the value. If this parameter + * is unknown then "def_find" will print an err message. + */ +- d = def_find (name); +- if (NULL == d) { +- if (NULL != srcfile) +- SYSLOG ((LOG_CRIT, "shadow: unknown configuration item '%s' in '%s'", name, srcfile)); ++ d = def_find (name, srcfile); ++ if (NULL == d) + return -1; +- } + + /* + * Save off the value. +@@ -404,9 +401,12 @@ int putdef_str (const char *name, const char *value, const char *srcfile) + * + * Search through a table of configurable items to locate the + * specified configuration option. ++ * ++ * If srcfile is not NULL, and the item is not found, then report an error saying ++ * the unknown item was used in this file. + */ + +-static /*@observer@*/ /*@null@*/struct itemdef *def_find (const char *name) ++static /*@observer@*/ /*@null@*/struct itemdef *def_find (const char *name, const char *srcfile) + { + struct itemdef *ptr; + +@@ -432,6 +432,8 @@ static /*@observer@*/ /*@null@*/struct itemdef *def_find (const char *name) + fprintf (shadow_logfd, + _("configuration error - unknown item '%s' (notify administrator)\n"), + name); ++ if (srcfile != NULL) ++ SYSLOG ((LOG_CRIT, "shadow: unknown configuration item '%s' in '%s'", name, srcfile)); + + out: + return NULL; +@@ -610,7 +612,7 @@ int main (int argc, char **argv) + def_load (); + + for (i = 0; i < NUMDEFS; ++i) { +- d = def_find (def_table[i].name); ++ d = def_find (def_table[i].name, NULL); + if (NULL == d) { + printf ("error - lookup '%s' failed\n", + def_table[i].name); diff --git a/shadow.changes b/shadow.changes index 779e433..8a3b7a8 100644 --- a/shadow.changes +++ b/shadow.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Thu Mar 21 06:37:27 UTC 2024 - Michael Vetter + +- Add shadow-4.15.0-fix-definition.patch: + Fix error messages about config options. + See gh/shadow-maint/shadow#967 + ------------------------------------------------------------------- Sun Mar 10 07:02:35 UTC 2024 - Michael Vetter diff --git a/shadow.spec b/shadow.spec index dc538bb..d5acf8e 100644 --- a/shadow.spec +++ b/shadow.spec @@ -48,6 +48,8 @@ Patch3: shadow-login_defs-comments.patch Patch4: shadow-login_defs-suse.patch # PATCH-FIX-SUSE disable_new_audit_function.patch adam.majer@suse.de -- Disable newer libaudit functionality for older distributions. Patch5: disable_new_audit_function.patch +# PATCH-FIX-UPSTREAM mvetter@suse.com -- Fix config options gh/shadow-maint/shadow#967 +Patch6: shadow-4.15.0-fix-definition.patch BuildRequires: audit-devel > 2.3 BuildRequires: autoconf BuildRequires: automake @@ -116,6 +118,7 @@ Development files for libsubid4. %if 0%{?suse_version} < 1330 %patch -P 5 -p1 %endif +%patch -P 6 -p1 iconv -f ISO88591 -t utf-8 doc/HOWTO > doc/HOWTO.utf8 mv -v doc/HOWTO.utf8 doc/HOWTO