From ca517256fa4afe5b579e64e267ebbc7beb8a888f Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Tue, 19 Sep 2023 05:07:58 +0100 Subject: gentoo auto-resync : 19:09:2023 - 05:07:58 --- sys-apps/shadow/Manifest | 3 +- .../shadow/files/shadow-4.14.0-bug912446.patch | 1305 ++++++++++++++++++++ sys-apps/shadow/shadow-4.14.0-r2.ebuild | 271 ---- sys-apps/shadow/shadow-4.14.0-r3.ebuild | 277 +++++ 4 files changed, 1584 insertions(+), 272 deletions(-) create mode 100644 sys-apps/shadow/files/shadow-4.14.0-bug912446.patch delete mode 100644 sys-apps/shadow/shadow-4.14.0-r2.ebuild create mode 100644 sys-apps/shadow/shadow-4.14.0-r3.ebuild (limited to 'sys-apps/shadow') diff --git a/sys-apps/shadow/Manifest b/sys-apps/shadow/Manifest index aefae8c250d7..f23c7bd180e4 100644 --- a/sys-apps/shadow/Manifest +++ b/sys-apps/shadow/Manifest @@ -7,11 +7,12 @@ AUX shadow-4.13-CVE-2023-29383.patch 3022 BLAKE2B 7ad4eeef9bbaf49b8388b7bbcfd2b8 AUX shadow-4.13-configure-clang16.patch 1129 BLAKE2B 701c7e417c57265d9a7a2ee8eb6620ef6846018de24edacc04d0d4f63ff2e7e0a67382c459003d2bfa11e4dd3a49a227464315a4ef115da58c27889d7bdd7226 SHA512 057ea8a546953bea88ecb0b787b37d24113ea4881a9f86e55318647f85f8b56e204dbf3815811897d0cad2a8e50427c9fa84b6389e332e26c8cacc690835a942 AUX shadow-4.13-password-leak.patch 5271 BLAKE2B 9f47502e0463e7c00d29c0a42071c49a23e82364d244a9fd61358c605f68bc30beb22fe501f9db19cadfa0c658bd46ddd777cdae058b500d70e9443263ca5f0b SHA512 40a7259467bd63d691e46f59e53348150d4b0f806375144cff9c51a28c95c9bc8c43da76245afb7f4cbfa292e7e19d43458290fe14bd32c985f844de64c76e61 AUX shadow-4.13-usermod-prefix-gid.patch 1206 BLAKE2B 8efa85ab6c4eee199b5cd21f706d39910393ae9f2bd8af9a2e49d058be6ec41bd37d1624ec85a94b6adb24597bc599f3b0e624286c10aa8b1e0022795cd1b89a SHA512 e38332b073497f53ccafff1d8c31910b3d9b692ac267758536585499f6ce68bed45097558689f3dbda6ddeaf762bf20072de6124ef053fbe807aa3543553142f +AUX shadow-4.14.0-bug912446.patch 35069 BLAKE2B 7c9ba6cc174553def2e28b251946e8795a591d807f8c1a684249a859a1fc7ef718f9ac406697eb94fe09b2e180c63a91767e2cb87dc996c068b3b6a93a521966 SHA512 91acf61fcd8dccbec3ad3914edb9e2a4d3b8db814c1d8f391801aaa1216711f0e211d3eac048fc919be13ec2d60ef6812586c6d363b62e491ffcfb727d85823d DIST shadow-4.13.tar.xz 1762908 BLAKE2B 315ab8a7e598aeefb50c11293e20cfa0982c3c3ae21c35ae243d09a4facf97a13c1d672990876e74ef94f5284402acf14997663743e2aaefa6cfc4369b7d24dc SHA512 2949a728c3312bef13d23138d6b79caf402781b1cb179e33b5be546c1790971ec20778d0e9cd3dbe09691d928ffcbe88e60da42fab58c69a90d5ebe5e3e2ab8e DIST shadow-4.13.tar.xz.asc 488 BLAKE2B de1f8285c5713a772343a2a7c638d1d13429dd4fa867d4f91d4922aa0d083b4a3110d38e8a8ab82137fdf4fecb12ba3677f3fb235401fc6438ae663fbd9bfbd2 SHA512 f8549c4e699c65721d53946d61b6127712572f7ad9ee13018ef3a25307002992aa727471c948d1bb22dcddf112715bed387d28f436123f30e153ae6bc0cd3648 DIST shadow-4.14.0.tar.xz 1787892 BLAKE2B 6e9a6108f856953ec91c597e46ad4f912101a829c7b3ff3389510be43f56f0a70425bd562119282d73df269df45af354e626741ad748f9c1e6f27b74a462a62c SHA512 ff960481d576f9db5a9f10becc4e1a74c03de484ecfdcd7f1ea735fded683d7ba0f9cd895dc6a431b77e5a633752273178b1bcda4cefaa5adbf0f143c9a0c86f DIST shadow-4.14.0.tar.xz.asc 488 BLAKE2B e9ccdb38f130088ba2193e40a4ef7ccce3a592972bc7cb4e50cd8ad768c152b9bbb61432abbfe6ccc0cbed3979b4f54b8da68d1c58cb25bdb668bf5427b5a628 SHA512 d011a732d73b4b066ca8d204c0420303f925c87efc7655feb5c5f60b619d67da450e220ee44f6c86929ae79cbd4343136fe9c20d25b39fa0a228a48e57636309 EBUILD shadow-4.13-r3.ebuild 6691 BLAKE2B d0c7fc3f67abff01e1d4e837e48070f7e2ffb9d1c207ddfa0473fce913f5696dad249392a86d4c0e7f4d2d549544b2496707d5070138eee3a2921c102b385197 SHA512 933cf33c7134e40bd1d3f8802590605a2df5c0c6943358098b9e7cb62a97e7f89e4aa8a903a92c64182f92aca888dbbd2c326b8ea4eb5501f2805c36f70c74ef EBUILD shadow-4.13-r4.ebuild 6774 BLAKE2B e43e76ca053076eae533bad9fbeca0e40e386383c924c2fe99f93741f7c6c27a8d5daebd7a95849a4c4dc8c9183b8d565ccc8d420bd07eeed46ac24d94fe44bf SHA512 206084e1875222e99c683c17e76aca9b246169d12ce3294b6da507d85b1708b0e1b32522ea277c0d72427c66d148244b3f3807330f8a052beb9fe50a1abb0754 -EBUILD shadow-4.14.0-r2.ebuild 6969 BLAKE2B 034a6eb0efc534a7abaad2d430a2bdf993665fa8b8e7e605dbd8a9d58dd9941c7e65ff0707fe86c6eb340954ade988cda0fa2f6ec355646558ef32688360889f SHA512 91268d18de2d6a69ee19ee49dbc1d42b982e1dc62142785a4a1972bc693db6c0b9ce3ec8e003d4f34bfdbf879bf202263ae29a6cac37ea04a4d2ad2d1c3a6b6b +EBUILD shadow-4.14.0-r3.ebuild 7163 BLAKE2B 35b2872844ffc73bbecc85b6eaae379558b240f5f896d274b087c146b9fecadf6c36e8b2f361ad5a1f889484f869a9b40c2da01e21170057b495fe7a572666a8 SHA512 e21c2e0f06e4d544707755f1e0416819aada49373129662739fe3dc6ef7b70510d756ec2ffa353d121e60c8dc271328089576263bb69375fdc5b6bc44023c493 MISC metadata.xml 606 BLAKE2B 2b14042f4702a908f8250c3fb6499ea33d8a8c44072707aa44881a36e3cc710256a821f8cd82c5214b32e9f5632745db4fdf00dd722f6fb7401e2f6b0bfbb4fd SHA512 694e039ae781982e8cbe6670b4e9c93b43455715ce4b9830a5fa61e6bf3eb91abcc284bf29c64fab055ba9754edaeab5d2da8140dbb2794fc1f534e2ccbb2b16 diff --git a/sys-apps/shadow/files/shadow-4.14.0-bug912446.patch b/sys-apps/shadow/files/shadow-4.14.0-bug912446.patch new file mode 100644 index 000000000000..881c8f7f4ad4 --- /dev/null +++ b/sys-apps/shadow/files/shadow-4.14.0-bug912446.patch @@ -0,0 +1,1305 @@ +https://bugs.gentoo.org/912446 + +From c34c2606cf8f0a52113156d9e22b7a35b391a17e Mon Sep 17 00:00:00 2001 +From: Alejandro Colomar +Date: Fri, 25 Aug 2023 11:29:00 +0200 +Subject: [PATCH] lib, libmisc: Move source files to lib (where their headers + were) +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Scripted change: + +$ find lib/ -type f \ +| grep '\.h$' \ +| sed 's,lib/,libmisc/,' \ +| sed 's,\.h$,.c,' \ +| xargs find 2>/dev/null \ +| xargs mv -t lib/; + +Plus updating the Makefiles. + +Closes: +Closes: +Link: +Link: +Link: +Reported-by: Christian Bricart +Reported-by: Robert Marmorstein +Cc: Sam James +[ jubalh tested the openSUSE package ] +Tested-by: Michael Vetter +Acked-by: Michael Vetter +[ Robert F. tested the Gentoo package ] +Tested-by: Robert Förster +Cc: David Seifert +Signed-off-by: Alejandro Colomar +--- + lib/Makefile.am | 10 ++++++++++ + {libmisc => lib}/alloc.c | 0 + {libmisc => lib}/bit.c | 0 + {libmisc => lib}/mempcpy.c | 0 + {libmisc => lib}/stpecpy.c | 0 + {libmisc => lib}/stpeprintf.c | 0 + libmisc/Makefile.am | 9 --------- + 7 files changed, 10 insertions(+), 9 deletions(-) + rename {libmisc => lib}/alloc.c (100%) + rename {libmisc => lib}/bit.c (100%) + rename {libmisc => lib}/mempcpy.c (100%) + rename {libmisc => lib}/stpecpy.c (100%) + rename {libmisc => lib}/stpeprintf.c (100%) + +diff --git a/lib/Makefile.am b/lib/Makefile.am +index c8d6dd5fb..7f3f7f639 100644 +--- a/lib/Makefile.am ++++ b/lib/Makefile.am +@@ -14,6 +14,10 @@ libshadow_la_CPPFLAGS += -I$(top_srcdir) + libshadow_la_CFLAGS = $(LIBBSD_CFLAGS) + + libshadow_la_SOURCES = \ ++ alloc.c \ ++ alloc.h \ ++ bit.c \ ++ bit.h \ + commonio.c \ + commonio.h \ + defines.h \ +@@ -34,6 +38,8 @@ libshadow_la_SOURCES = \ + groupio.h \ + gshadow.c \ + lockpw.c \ ++ mempcpy.c \ ++ mempcpy.h \ + nss.c \ + nscd.c \ + nscd.h \ +@@ -67,6 +73,10 @@ libshadow_la_SOURCES = \ + shadowio.h \ + shadowmem.c \ + spawn.c \ ++ stpecpy.c \ ++ stpecpy.h \ ++ stpeprintf.c \ ++ stpeprintf.h \ + write_full.c + + if WITH_TCB +diff --git a/libmisc/alloc.c b/lib/alloc.c +similarity index 100% +rename from libmisc/alloc.c +rename to lib/alloc.c +diff --git a/libmisc/bit.c b/lib/bit.c +similarity index 100% +rename from libmisc/bit.c +rename to lib/bit.c +diff --git a/libmisc/mempcpy.c b/lib/mempcpy.c +similarity index 100% +rename from libmisc/mempcpy.c +rename to lib/mempcpy.c +diff --git a/libmisc/stpecpy.c b/lib/stpecpy.c +similarity index 100% +rename from libmisc/stpecpy.c +rename to lib/stpecpy.c +diff --git a/libmisc/stpeprintf.c b/lib/stpeprintf.c +similarity index 100% +rename from libmisc/stpeprintf.c +rename to lib/stpeprintf.c +diff --git a/libmisc/Makefile.am b/libmisc/Makefile.am +index 10bf1537f..5eba4650a 100644 +--- a/libmisc/Makefile.am ++++ b/libmisc/Makefile.am +@@ -16,12 +16,8 @@ libmisc_la_SOURCES = \ + addgrps.c \ + age.c \ + agetpass.c \ +- alloc.c \ +- ../lib/alloc.h \ + audit_help.c \ + basename.c \ +- bit.c \ +- ../lib/bit.h \ + chkname.c \ + chkname.h \ + chowndir.c \ +@@ -53,7 +49,6 @@ libmisc_la_SOURCES = \ + list.c \ + loginprompt.c \ + mail.c \ +- mempcpy.c \ + motd.c \ + myname.c \ + obscure.c \ +@@ -71,10 +66,6 @@ libmisc_la_SOURCES = \ + setugid.c \ + setupenv.c \ + shell.c \ +- stpecpy.c \ +- ../lib/stpecpy.h \ +- stpeprintf.c \ +- ../lib/stpeprintf.h \ + strtoday.c \ + sub.c \ + sulog.c \ +From 093fb605f9ca0df8310210377b12c0cf2ea5110c Mon Sep 17 00:00:00 2001 +From: Alejandro Colomar +Date: Mon, 28 Aug 2023 12:54:22 +0200 +Subject: [PATCH] lib: Merge libmisc into libshadow +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The separation was unnecessary, and caused build problems. Let's go +wild and obliterate the library. The files are moved to libshadow. + +Scripted change: + +$ find libmisc/ -type f \ +| grep '\.[chy]$' \ +| xargs mv -t lib; + +Plus updating the Makefile and other references. While at it, I've +sorted the sources lists. + +Link: +Reported-by: David Seifert +Cc: Sam James +Cc: Christian Bricart +Cc: Michael Vetter +Cc: Robert Förster +[ soap tested the Gentoo package ] +Tested-by: David Seifert +Acked-by: David Seifert +Acked-by: Serge Hallyn +Acked-by: Iker Pedrosa +Acked-by: +Signed-off-by: Alejandro Colomar +--- + .gitignore | 2 +- + Makefile.am | 2 +- + TODO | 4 +- + configure.ac | 1 - + lib/Makefile.am | 125 ++++++++++++++++++-- + {libmisc => lib}/addgrps.c | 0 + {libmisc => lib}/age.c | 0 + {libmisc => lib}/agetpass.c | 0 + {libmisc => lib}/audit_help.c | 0 + {libmisc => lib}/basename.c | 0 + {libmisc => lib}/btrfs.c | 0 + {libmisc => lib}/chkname.c | 0 + {libmisc => lib}/chkname.h | 0 + {libmisc => lib}/chowndir.c | 0 + {libmisc => lib}/chowntty.c | 0 + {libmisc => lib}/cleanup.c | 0 + {libmisc => lib}/cleanup_group.c | 0 + {libmisc => lib}/cleanup_user.c | 0 + {libmisc => lib}/console.c | 0 + {libmisc => lib}/copydir.c | 0 + {libmisc => lib}/csrand.c | 0 + {libmisc => lib}/date_to_str.c | 0 + {libmisc => lib}/entry.c | 0 + {libmisc => lib}/env.c | 0 + {libmisc => lib}/failure.c | 0 + {libmisc => lib}/failure.h | 0 + {libmisc => lib}/find_new_gid.c | 0 + {libmisc => lib}/find_new_sub_gids.c | 0 + {libmisc => lib}/find_new_sub_uids.c | 0 + {libmisc => lib}/find_new_uid.c | 0 + {libmisc => lib}/freezero.c | 0 + {libmisc => lib}/freezero.h | 0 + {libmisc => lib}/getdate.h | 0 + {libmisc => lib}/getdate.y | 0 + {libmisc => lib}/getgr_nam_gid.c | 0 + {libmisc => lib}/getrange.c | 0 + {libmisc => lib}/gettime.c | 0 + {libmisc => lib}/hushed.c | 0 + {libmisc => lib}/idmapping.c | 0 + {libmisc => lib}/idmapping.h | 0 + {libmisc => lib}/isexpired.c | 0 + {libmisc => lib}/limits.c | 0 + {libmisc => lib}/list.c | 0 + {libmisc => lib}/log.c | 0 + {libmisc => lib}/logind.c | 0 + {libmisc => lib}/loginprompt.c | 0 + {libmisc => lib}/mail.c | 0 + {libmisc => lib}/motd.c | 0 + {libmisc => lib}/myname.c | 0 + {libmisc => lib}/obscure.c | 0 + {libmisc => lib}/pam_pass.c | 0 + {libmisc => lib}/pam_pass_non_interactive.c | 0 + {libmisc => lib}/prefix_flag.c | 0 + lib/prototypes.h | 2 +- + {libmisc => lib}/pwd2spwd.c | 0 + {libmisc => lib}/pwd_init.c | 0 + {libmisc => lib}/pwdcheck.c | 0 + {libmisc => lib}/readpassphrase.c | 0 + {libmisc => lib}/readpassphrase.h | 0 + {libmisc => lib}/remove_tree.c | 0 + {libmisc => lib}/rlogin.c | 0 + {libmisc => lib}/root_flag.c | 0 + {libmisc => lib}/salt.c | 0 + {libmisc => lib}/setugid.c | 0 + {libmisc => lib}/setupenv.c | 0 + {libmisc => lib}/shell.c | 0 + {libmisc => lib}/strtoday.c | 0 + {libmisc => lib}/sub.c | 0 + {libmisc => lib}/sulog.c | 0 + {libmisc => lib}/ttytype.c | 0 + {libmisc => lib}/tz.c | 0 + {libmisc => lib}/ulimit.c | 0 + {libmisc => lib}/user_busy.c | 0 + {libmisc => lib}/utmp.c | 0 + {libmisc => lib}/valid.c | 0 + {libmisc => lib}/xgetXXbyYY.c | 0 + {libmisc => lib}/xgetgrgid.c | 0 + {libmisc => lib}/xgetgrnam.c | 0 + {libmisc => lib}/xgetpwnam.c | 0 + {libmisc => lib}/xgetpwuid.c | 0 + {libmisc => lib}/xgetspnam.c | 0 + {libmisc => lib}/xprefix_getpwnam.c | 0 + {libmisc => lib}/yesno.c | 0 + libmisc/.indent.pro | 5 - + libmisc/Makefile.am | 105 ---------------- + libsubid/Makefile.am | 2 - + po/POTFILES.in | 116 +++++++++--------- + src/Makefile.am | 14 +-- + src/su.c | 4 +- + tests/common/config.sh | 2 - + tests/libsubid/04_nss/Makefile | 4 +- + 91 files changed, 180 insertions(+), 208 deletions(-) + rename {libmisc => lib}/addgrps.c (100%) + rename {libmisc => lib}/age.c (100%) + rename {libmisc => lib}/agetpass.c (100%) + rename {libmisc => lib}/audit_help.c (100%) + rename {libmisc => lib}/basename.c (100%) + rename {libmisc => lib}/btrfs.c (100%) + rename {libmisc => lib}/chkname.c (100%) + rename {libmisc => lib}/chkname.h (100%) + rename {libmisc => lib}/chowndir.c (100%) + rename {libmisc => lib}/chowntty.c (100%) + rename {libmisc => lib}/cleanup.c (100%) + rename {libmisc => lib}/cleanup_group.c (100%) + rename {libmisc => lib}/cleanup_user.c (100%) + rename {libmisc => lib}/console.c (100%) + rename {libmisc => lib}/copydir.c (100%) + rename {libmisc => lib}/csrand.c (100%) + rename {libmisc => lib}/date_to_str.c (100%) + rename {libmisc => lib}/entry.c (100%) + rename {libmisc => lib}/env.c (100%) + rename {libmisc => lib}/failure.c (100%) + rename {libmisc => lib}/failure.h (100%) + rename {libmisc => lib}/find_new_gid.c (100%) + rename {libmisc => lib}/find_new_sub_gids.c (100%) + rename {libmisc => lib}/find_new_sub_uids.c (100%) + rename {libmisc => lib}/find_new_uid.c (100%) + rename {libmisc => lib}/freezero.c (100%) + rename {libmisc => lib}/freezero.h (100%) + rename {libmisc => lib}/getdate.h (100%) + rename {libmisc => lib}/getdate.y (100%) + rename {libmisc => lib}/getgr_nam_gid.c (100%) + rename {libmisc => lib}/getrange.c (100%) + rename {libmisc => lib}/gettime.c (100%) + rename {libmisc => lib}/hushed.c (100%) + rename {libmisc => lib}/idmapping.c (100%) + rename {libmisc => lib}/idmapping.h (100%) + rename {libmisc => lib}/isexpired.c (100%) + rename {libmisc => lib}/limits.c (100%) + rename {libmisc => lib}/list.c (100%) + rename {libmisc => lib}/log.c (100%) + rename {libmisc => lib}/logind.c (100%) + rename {libmisc => lib}/loginprompt.c (100%) + rename {libmisc => lib}/mail.c (100%) + rename {libmisc => lib}/motd.c (100%) + rename {libmisc => lib}/myname.c (100%) + rename {libmisc => lib}/obscure.c (100%) + rename {libmisc => lib}/pam_pass.c (100%) + rename {libmisc => lib}/pam_pass_non_interactive.c (100%) + rename {libmisc => lib}/prefix_flag.c (100%) + rename {libmisc => lib}/pwd2spwd.c (100%) + rename {libmisc => lib}/pwd_init.c (100%) + rename {libmisc => lib}/pwdcheck.c (100%) + rename {libmisc => lib}/readpassphrase.c (100%) + rename {libmisc => lib}/readpassphrase.h (100%) + rename {libmisc => lib}/remove_tree.c (100%) + rename {libmisc => lib}/rlogin.c (100%) + rename {libmisc => lib}/root_flag.c (100%) + rename {libmisc => lib}/salt.c (100%) + rename {libmisc => lib}/setugid.c (100%) + rename {libmisc => lib}/setupenv.c (100%) + rename {libmisc => lib}/shell.c (100%) + rename {libmisc => lib}/strtoday.c (100%) + rename {libmisc => lib}/sub.c (100%) + rename {libmisc => lib}/sulog.c (100%) + rename {libmisc => lib}/ttytype.c (100%) + rename {libmisc => lib}/tz.c (100%) + rename {libmisc => lib}/ulimit.c (100%) + rename {libmisc => lib}/user_busy.c (100%) + rename {libmisc => lib}/utmp.c (100%) + rename {libmisc => lib}/valid.c (100%) + rename {libmisc => lib}/xgetXXbyYY.c (100%) + rename {libmisc => lib}/xgetgrgid.c (100%) + rename {libmisc => lib}/xgetgrnam.c (100%) + rename {libmisc => lib}/xgetpwnam.c (100%) + rename {libmisc => lib}/xgetpwuid.c (100%) + rename {libmisc => lib}/xgetspnam.c (100%) + rename {libmisc => lib}/xprefix_getpwnam.c (100%) + rename {libmisc => lib}/yesno.c (100%) + delete mode 100644 libmisc/.indent.pro + delete mode 100644 libmisc/Makefile.am + +diff --git a/Makefile.am b/Makefile.am +index 630e2aa9c..d8dfc3bf7 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -2,7 +2,7 @@ + + EXTRA_DIST = NEWS README TODO shadow.spec.in + +-SUBDIRS = libmisc lib ++SUBDIRS = lib + + if ENABLE_SUBIDS + SUBDIRS += libsubid +diff --git a/TODO b/TODO +index 8783ccd13..62571f5fd 100644 +--- a/TODO ++++ b/TODO +@@ -10,13 +10,13 @@ + + Check when RLOGIN is enabled if ruserok() exists + +-Move selinux_file_context out of libmisc/copydir.c ++Move selinux_file_context out of lib/copydir.c + + Review hardcoded root account? + + review all call to strto + +-libmisc/cleanup_user.c ++lib/cleanup_user.c + cleanup needed (cleanup_report_add_user* not used) + + +diff --git a/configure.ac b/configure.ac +index f4fadc52b..b3bbf57d8 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -753,7 +753,6 @@ AC_CONFIG_FILES([ + man/uk/Makefile + man/zh_CN/Makefile + man/zh_TW/Makefile +- libmisc/Makefile + lib/Makefile + libsubid/Makefile + libsubid/subid.h +diff --git a/lib/Makefile.am b/lib/Makefile.am +index 7f3f7f639..ca73313dc 100644 +--- a/lib/Makefile.am ++++ b/lib/Makefile.am +@@ -5,64 +5,117 @@ DEFS = + + noinst_LTLIBRARIES = libshadow.la + ++if USE_PAM ++LIBCRYPT_PAM = $(LIBCRYPT) ++else ++LIBCRYPT_PAM = ++endif ++ ++AM_CPPFLAGS = -I$(top_srcdir)/lib -I$(top_srcdir) $(ECONF_CPPFLAGS) ++ + libshadow_la_CPPFLAGS = $(ECONF_CPPFLAGS) + if HAVE_VENDORDIR + libshadow_la_CPPFLAGS += -DVENDORDIR=\"$(VENDORDIR)\" + endif + + libshadow_la_CPPFLAGS += -I$(top_srcdir) +-libshadow_la_CFLAGS = $(LIBBSD_CFLAGS) ++libshadow_la_CFLAGS = $(LIBBSD_CFLAGS) $(LIBCRYPT_PAM) $(LIBSYSTEMD) + + libshadow_la_SOURCES = \ ++ addgrps.c \ ++ age.c \ ++ agetpass.c \ + alloc.c \ + alloc.h \ ++ audit_help.c \ ++ basename.c \ + bit.c \ + bit.h \ ++ chkname.c \ ++ chkname.h \ ++ chowndir.c \ ++ chowntty.c \ ++ cleanup.c \ ++ cleanup_group.c \ ++ cleanup_user.c \ + commonio.c \ + commonio.h \ ++ console.c \ ++ copydir.c \ ++ csrand.c \ ++ date_to_str.c \ + defines.h \ + encrypt.c \ ++ entry.c \ ++ env.c \ + exitcodes.h \ + faillog.h \ ++ failure.c \ ++ failure.h \ + fields.c \ ++ find_new_gid.c \ ++ find_new_uid.c \ ++ find_new_sub_gids.c \ ++ find_new_sub_uids.c \ + fputsx.c \ +- getdef.c \ +- getdef.h \ + get_gid.c \ +- getlong.c \ + get_pid.c \ + get_uid.c \ ++ getdate.h \ ++ getdate.y \ ++ getdef.c \ ++ getdef.h \ ++ getlong.c \ ++ getgr_nam_gid.c \ ++ getrange.c \ ++ gettime.c \ + getulong.c \ + groupio.c \ + groupmem.c \ + groupio.h \ + gshadow.c \ ++ hushed.c \ ++ idmapping.h \ ++ idmapping.c \ ++ isexpired.c \ ++ limits.c \ ++ list.c \ + lockpw.c \ ++ loginprompt.c \ ++ mail.c \ + mempcpy.c \ + mempcpy.h \ ++ motd.c \ ++ myname.c \ + nss.c \ + nscd.c \ + nscd.h \ +- shadowlog.c \ +- shadowlog.h \ +- shadowlog_internal.h \ +- sssd.c \ +- sssd.h \ ++ obscure.c \ + pam_defs.h \ ++ pam_pass.c \ ++ pam_pass_non_interactive.c \ + port.c \ + port.h \ ++ prefix_flag.c \ + prototypes.h \ + pwauth.c \ + pwauth.h \ + pwio.c \ + pwio.h \ ++ pwd_init.c \ ++ pwd2spwd.c \ ++ pwdcheck.c \ + pwmem.c \ ++ remove_tree.c \ ++ rlogin.c \ ++ root_flag.c \ + run_part.h \ + run_part.c \ +- subordinateio.h \ +- subordinateio.c \ ++ salt.c \ + selinux.c \ + semanage.c \ ++ setugid.c \ ++ setupenv.c \ + sgetgrent.c \ + sgetpwent.c \ + sgetspent.c \ +@@ -71,18 +124,63 @@ libshadow_la_SOURCES = \ + shadow.c \ + shadowio.c \ + shadowio.h \ ++ shadowlog.c \ ++ shadowlog.h \ ++ shadowlog_internal.h \ + shadowmem.c \ ++ shell.c \ + spawn.c \ ++ sssd.c \ ++ sssd.h \ + stpecpy.c \ + stpecpy.h \ + stpeprintf.c \ + stpeprintf.h \ +- write_full.c ++ strtoday.c \ ++ sub.c \ ++ subordinateio.h \ ++ subordinateio.c \ ++ sulog.c \ ++ ttytype.c \ ++ tz.c \ ++ ulimit.c \ ++ user_busy.c \ ++ valid.c \ ++ write_full.c \ ++ xgetpwnam.c \ ++ xprefix_getpwnam.c \ ++ xgetpwuid.c \ ++ xgetgrnam.c \ ++ xgetgrgid.c \ ++ xgetspnam.c \ ++ yesno.c + + if WITH_TCB + libshadow_la_SOURCES += tcbfuncs.c tcbfuncs.h + endif + ++if WITH_BTRFS ++libshadow_la_SOURCES += btrfs.c ++endif ++ ++if ENABLE_LASTLOG ++libshadow_la_SOURCES += log.c ++endif ++ ++if ENABLE_LOGIND ++libshadow_la_SOURCES += logind.c ++else ++libshadow_la_SOURCES += utmp.c ++endif ++ ++if !WITH_LIBBSD ++libshadow_la_SOURCES += \ ++ freezero.h \ ++ freezero.c \ ++ readpassphrase.h \ ++ readpassphrase.c ++endif ++ + # These files are unneeded for some reason, listed in + # order of appearance: + # +@@ -90,4 +188,5 @@ endif + + EXTRA_DIST = \ + .indent.pro \ +- gshadow_.h ++ gshadow_.h \ ++ xgetXXbyYY.c +diff --git a/libmisc/addgrps.c b/lib/addgrps.c +similarity index 100% +rename from libmisc/addgrps.c +rename to lib/addgrps.c +diff --git a/libmisc/age.c b/lib/age.c +similarity index 100% +rename from libmisc/age.c +rename to lib/age.c +diff --git a/libmisc/agetpass.c b/lib/agetpass.c +similarity index 100% +rename from libmisc/agetpass.c +rename to lib/agetpass.c +diff --git a/libmisc/audit_help.c b/lib/audit_help.c +similarity index 100% +rename from libmisc/audit_help.c +rename to lib/audit_help.c +diff --git a/libmisc/basename.c b/lib/basename.c +similarity index 100% +rename from libmisc/basename.c +rename to lib/basename.c +diff --git a/libmisc/btrfs.c b/lib/btrfs.c +similarity index 100% +rename from libmisc/btrfs.c +rename to lib/btrfs.c +diff --git a/libmisc/chkname.c b/lib/chkname.c +similarity index 100% +rename from libmisc/chkname.c +rename to lib/chkname.c +diff --git a/libmisc/chkname.h b/lib/chkname.h +similarity index 100% +rename from libmisc/chkname.h +rename to lib/chkname.h +diff --git a/libmisc/chowndir.c b/lib/chowndir.c +similarity index 100% +rename from libmisc/chowndir.c +rename to lib/chowndir.c +diff --git a/libmisc/chowntty.c b/lib/chowntty.c +similarity index 100% +rename from libmisc/chowntty.c +rename to lib/chowntty.c +diff --git a/libmisc/cleanup.c b/lib/cleanup.c +similarity index 100% +rename from libmisc/cleanup.c +rename to lib/cleanup.c +diff --git a/libmisc/cleanup_group.c b/lib/cleanup_group.c +similarity index 100% +rename from libmisc/cleanup_group.c +rename to lib/cleanup_group.c +diff --git a/libmisc/cleanup_user.c b/lib/cleanup_user.c +similarity index 100% +rename from libmisc/cleanup_user.c +rename to lib/cleanup_user.c +diff --git a/libmisc/console.c b/lib/console.c +similarity index 100% +rename from libmisc/console.c +rename to lib/console.c +diff --git a/libmisc/copydir.c b/lib/copydir.c +similarity index 100% +rename from libmisc/copydir.c +rename to lib/copydir.c +diff --git a/libmisc/csrand.c b/lib/csrand.c +similarity index 100% +rename from libmisc/csrand.c +rename to lib/csrand.c +diff --git a/libmisc/date_to_str.c b/lib/date_to_str.c +similarity index 100% +rename from libmisc/date_to_str.c +rename to lib/date_to_str.c +diff --git a/libmisc/entry.c b/lib/entry.c +similarity index 100% +rename from libmisc/entry.c +rename to lib/entry.c +diff --git a/libmisc/env.c b/lib/env.c +similarity index 100% +rename from libmisc/env.c +rename to lib/env.c +diff --git a/libmisc/failure.c b/lib/failure.c +similarity index 100% +rename from libmisc/failure.c +rename to lib/failure.c +diff --git a/libmisc/failure.h b/lib/failure.h +similarity index 100% +rename from libmisc/failure.h +rename to lib/failure.h +diff --git a/libmisc/find_new_gid.c b/lib/find_new_gid.c +similarity index 100% +rename from libmisc/find_new_gid.c +rename to lib/find_new_gid.c +diff --git a/libmisc/find_new_sub_gids.c b/lib/find_new_sub_gids.c +similarity index 100% +rename from libmisc/find_new_sub_gids.c +rename to lib/find_new_sub_gids.c +diff --git a/libmisc/find_new_sub_uids.c b/lib/find_new_sub_uids.c +similarity index 100% +rename from libmisc/find_new_sub_uids.c +rename to lib/find_new_sub_uids.c +diff --git a/libmisc/find_new_uid.c b/lib/find_new_uid.c +similarity index 100% +rename from libmisc/find_new_uid.c +rename to lib/find_new_uid.c +diff --git a/libmisc/freezero.c b/lib/freezero.c +similarity index 100% +rename from libmisc/freezero.c +rename to lib/freezero.c +diff --git a/libmisc/freezero.h b/lib/freezero.h +similarity index 100% +rename from libmisc/freezero.h +rename to lib/freezero.h +diff --git a/libmisc/getdate.h b/lib/getdate.h +similarity index 100% +rename from libmisc/getdate.h +rename to lib/getdate.h +diff --git a/libmisc/getdate.y b/lib/getdate.y +similarity index 100% +rename from libmisc/getdate.y +rename to lib/getdate.y +diff --git a/libmisc/getgr_nam_gid.c b/lib/getgr_nam_gid.c +similarity index 100% +rename from libmisc/getgr_nam_gid.c +rename to lib/getgr_nam_gid.c +diff --git a/libmisc/getrange.c b/lib/getrange.c +similarity index 100% +rename from libmisc/getrange.c +rename to lib/getrange.c +diff --git a/libmisc/gettime.c b/lib/gettime.c +similarity index 100% +rename from libmisc/gettime.c +rename to lib/gettime.c +diff --git a/libmisc/hushed.c b/lib/hushed.c +similarity index 100% +rename from libmisc/hushed.c +rename to lib/hushed.c +diff --git a/libmisc/idmapping.c b/lib/idmapping.c +similarity index 100% +rename from libmisc/idmapping.c +rename to lib/idmapping.c +diff --git a/libmisc/idmapping.h b/lib/idmapping.h +similarity index 100% +rename from libmisc/idmapping.h +rename to lib/idmapping.h +diff --git a/libmisc/isexpired.c b/lib/isexpired.c +similarity index 100% +rename from libmisc/isexpired.c +rename to lib/isexpired.c +diff --git a/libmisc/limits.c b/lib/limits.c +similarity index 100% +rename from libmisc/limits.c +rename to lib/limits.c +diff --git a/libmisc/list.c b/lib/list.c +similarity index 100% +rename from libmisc/list.c +rename to lib/list.c +diff --git a/libmisc/log.c b/lib/log.c +similarity index 100% +rename from libmisc/log.c +rename to lib/log.c +diff --git a/libmisc/logind.c b/lib/logind.c +similarity index 100% +rename from libmisc/logind.c +rename to lib/logind.c +diff --git a/libmisc/loginprompt.c b/lib/loginprompt.c +similarity index 100% +rename from libmisc/loginprompt.c +rename to lib/loginprompt.c +diff --git a/libmisc/mail.c b/lib/mail.c +similarity index 100% +rename from libmisc/mail.c +rename to lib/mail.c +diff --git a/libmisc/motd.c b/lib/motd.c +similarity index 100% +rename from libmisc/motd.c +rename to lib/motd.c +diff --git a/libmisc/myname.c b/lib/myname.c +similarity index 100% +rename from libmisc/myname.c +rename to lib/myname.c +diff --git a/libmisc/obscure.c b/lib/obscure.c +similarity index 100% +rename from libmisc/obscure.c +rename to lib/obscure.c +diff --git a/libmisc/pam_pass.c b/lib/pam_pass.c +similarity index 100% +rename from libmisc/pam_pass.c +rename to lib/pam_pass.c +diff --git a/libmisc/pam_pass_non_interactive.c b/lib/pam_pass_non_interactive.c +similarity index 100% +rename from libmisc/pam_pass_non_interactive.c +rename to lib/pam_pass_non_interactive.c +diff --git a/libmisc/prefix_flag.c b/lib/prefix_flag.c +similarity index 100% +rename from libmisc/prefix_flag.c +rename to lib/prefix_flag.c +diff --git a/lib/prototypes.h b/lib/prototypes.h +index 47ed2ca1c..25ee3a093 100644 +--- a/lib/prototypes.h ++++ b/lib/prototypes.h +@@ -10,7 +10,7 @@ + /* + * prototypes.h + * +- * prototypes of libmisc functions, and private lib functions. ++ * prototypes of some lib functions, and private lib functions. + * + * $Id$ + * +diff --git a/libmisc/pwd2spwd.c b/lib/pwd2spwd.c +similarity index 100% +rename from libmisc/pwd2spwd.c +rename to lib/pwd2spwd.c +diff --git a/libmisc/pwd_init.c b/lib/pwd_init.c +similarity index 100% +rename from libmisc/pwd_init.c +rename to lib/pwd_init.c +diff --git a/libmisc/pwdcheck.c b/lib/pwdcheck.c +similarity index 100% +rename from libmisc/pwdcheck.c +rename to lib/pwdcheck.c +diff --git a/libmisc/readpassphrase.c b/lib/readpassphrase.c +similarity index 100% +rename from libmisc/readpassphrase.c +rename to lib/readpassphrase.c +diff --git a/libmisc/readpassphrase.h b/lib/readpassphrase.h +similarity index 100% +rename from libmisc/readpassphrase.h +rename to lib/readpassphrase.h +diff --git a/libmisc/remove_tree.c b/lib/remove_tree.c +similarity index 100% +rename from libmisc/remove_tree.c +rename to lib/remove_tree.c +diff --git a/libmisc/rlogin.c b/lib/rlogin.c +similarity index 100% +rename from libmisc/rlogin.c +rename to lib/rlogin.c +diff --git a/libmisc/root_flag.c b/lib/root_flag.c +similarity index 100% +rename from libmisc/root_flag.c +rename to lib/root_flag.c +diff --git a/libmisc/salt.c b/lib/salt.c +similarity index 100% +rename from libmisc/salt.c +rename to lib/salt.c +diff --git a/libmisc/setugid.c b/lib/setugid.c +similarity index 100% +rename from libmisc/setugid.c +rename to lib/setugid.c +diff --git a/libmisc/setupenv.c b/lib/setupenv.c +similarity index 100% +rename from libmisc/setupenv.c +rename to lib/setupenv.c +diff --git a/libmisc/shell.c b/lib/shell.c +similarity index 100% +rename from libmisc/shell.c +rename to lib/shell.c +diff --git a/libmisc/strtoday.c b/lib/strtoday.c +similarity index 100% +rename from libmisc/strtoday.c +rename to lib/strtoday.c +diff --git a/libmisc/sub.c b/lib/sub.c +similarity index 100% +rename from libmisc/sub.c +rename to lib/sub.c +diff --git a/libmisc/sulog.c b/lib/sulog.c +similarity index 100% +rename from libmisc/sulog.c +rename to lib/sulog.c +diff --git a/libmisc/ttytype.c b/lib/ttytype.c +similarity index 100% +rename from libmisc/ttytype.c +rename to lib/ttytype.c +diff --git a/libmisc/tz.c b/lib/tz.c +similarity index 100% +rename from libmisc/tz.c +rename to lib/tz.c +diff --git a/libmisc/ulimit.c b/lib/ulimit.c +similarity index 100% +rename from libmisc/ulimit.c +rename to lib/ulimit.c +diff --git a/libmisc/user_busy.c b/lib/user_busy.c +similarity index 100% +rename from libmisc/user_busy.c +rename to lib/user_busy.c +diff --git a/libmisc/utmp.c b/lib/utmp.c +similarity index 100% +rename from libmisc/utmp.c +rename to lib/utmp.c +diff --git a/libmisc/valid.c b/lib/valid.c +similarity index 100% +rename from libmisc/valid.c +rename to lib/valid.c +diff --git a/libmisc/xgetXXbyYY.c b/lib/xgetXXbyYY.c +similarity index 100% +rename from libmisc/xgetXXbyYY.c +rename to lib/xgetXXbyYY.c +diff --git a/libmisc/xgetgrgid.c b/lib/xgetgrgid.c +similarity index 100% +rename from libmisc/xgetgrgid.c +rename to lib/xgetgrgid.c +diff --git a/libmisc/xgetgrnam.c b/lib/xgetgrnam.c +similarity index 100% +rename from libmisc/xgetgrnam.c +rename to lib/xgetgrnam.c +diff --git a/libmisc/xgetpwnam.c b/lib/xgetpwnam.c +similarity index 100% +rename from libmisc/xgetpwnam.c +rename to lib/xgetpwnam.c +diff --git a/libmisc/xgetpwuid.c b/lib/xgetpwuid.c +similarity index 100% +rename from libmisc/xgetpwuid.c +rename to lib/xgetpwuid.c +diff --git a/libmisc/xgetspnam.c b/lib/xgetspnam.c +similarity index 100% +rename from libmisc/xgetspnam.c +rename to lib/xgetspnam.c +diff --git a/libmisc/xprefix_getpwnam.c b/lib/xprefix_getpwnam.c +similarity index 100% +rename from libmisc/xprefix_getpwnam.c +rename to lib/xprefix_getpwnam.c +diff --git a/libmisc/yesno.c b/lib/yesno.c +similarity index 100% +rename from libmisc/yesno.c +rename to lib/yesno.c +diff --git a/libmisc/.indent.pro b/libmisc/.indent.pro +deleted file mode 100644 +index fe572bb76..000000000 +--- a/libmisc/.indent.pro ++++ /dev/null +@@ -1,5 +0,0 @@ +--kr +--i8 +--bad +--pcs +--l80 +diff --git a/libmisc/Makefile.am b/libmisc/Makefile.am +deleted file mode 100644 +index 5eba4650a..000000000 +--- a/libmisc/Makefile.am ++++ /dev/null +@@ -1,105 +0,0 @@ +- +-EXTRA_DIST = .indent.pro xgetXXbyYY.c +- +-AM_CPPFLAGS = -I$(top_srcdir)/lib -I$(top_srcdir) $(ECONF_CPPFLAGS) +- +-noinst_LTLIBRARIES = libmisc.la +- +-if USE_PAM +-LIBCRYPT_PAM = $(LIBCRYPT) +-else +-LIBCRYPT_PAM = +-endif +- +-libmisc_la_CFLAGS = $(LIBBSD_CFLAGS) $(LIBCRYPT_PAM) $(LIBSYSTEMD) +-libmisc_la_SOURCES = \ +- addgrps.c \ +- age.c \ +- agetpass.c \ +- audit_help.c \ +- basename.c \ +- chkname.c \ +- chkname.h \ +- chowndir.c \ +- chowntty.c \ +- cleanup.c \ +- cleanup_group.c \ +- cleanup_user.c \ +- console.c \ +- copydir.c \ +- date_to_str.c \ +- entry.c \ +- env.c \ +- failure.c \ +- failure.h \ +- find_new_gid.c \ +- find_new_uid.c \ +- find_new_sub_gids.c \ +- find_new_sub_uids.c \ +- getdate.h \ +- getdate.y \ +- getgr_nam_gid.c \ +- getrange.c \ +- gettime.c \ +- hushed.c \ +- idmapping.h \ +- idmapping.c \ +- isexpired.c \ +- limits.c \ +- list.c \ +- loginprompt.c \ +- mail.c \ +- motd.c \ +- myname.c \ +- obscure.c \ +- pam_pass.c \ +- pam_pass_non_interactive.c \ +- prefix_flag.c \ +- pwd2spwd.c \ +- pwdcheck.c \ +- pwd_init.c \ +- csrand.c \ +- remove_tree.c \ +- rlogin.c \ +- root_flag.c \ +- salt.c \ +- setugid.c \ +- setupenv.c \ +- shell.c \ +- strtoday.c \ +- sub.c \ +- sulog.c \ +- ttytype.c \ +- tz.c \ +- ulimit.c \ +- user_busy.c \ +- valid.c \ +- xgetpwnam.c \ +- xprefix_getpwnam.c \ +- xgetpwuid.c \ +- xgetgrnam.c \ +- xgetgrgid.c \ +- xgetspnam.c \ +- yesno.c +- +-if WITH_BTRFS +-libmisc_la_SOURCES += btrfs.c +-endif +- +-if ENABLE_LASTLOG +-libmisc_la_SOURCES += log.c +-endif +- +-if ENABLE_LOGIND +-libmisc_la_SOURCES += logind.c +-else +-libmisc_la_SOURCES += utmp.c +-endif +- +-if !WITH_LIBBSD +-libmisc_la_SOURCES += \ +- freezero.h \ +- freezero.c \ +- readpassphrase.h \ +- readpassphrase.c +-endif +diff --git a/libsubid/Makefile.am b/libsubid/Makefile.am +index 09ec3416d..5ba0ab357 100644 +--- a/libsubid/Makefile.am ++++ b/libsubid/Makefile.am +@@ -21,10 +21,8 @@ MISCLIBS = \ + + libsubid_la_LIBADD = \ + $(top_builddir)/lib/libshadow.la \ +- $(top_builddir)/libmisc/libmisc.la \ + $(MISCLIBS) -ldl + + AM_CPPFLAGS = \ + -I${top_srcdir}/lib \ +- -I${top_srcdir}/libmisc \ + -DLOCALEDIR=\"$(datadir)/locale\" +diff --git a/po/POTFILES.in b/po/POTFILES.in +index 0b318a5fe..d6c877519 100644 +--- a/po/POTFILES.in ++++ b/po/POTFILES.in +@@ -1,24 +1,68 @@ + # List of files which contain translatable strings. + ++lib/addgrps.c ++lib/age.c ++lib/audit_help.c ++lib/basename.c ++lib/chkname.c ++lib/chowndir.c ++lib/chowntty.c ++lib/cleanup.c ++lib/cleanup_group.c ++lib/cleanup_user.c + lib/commonio.c ++lib/console.c ++lib/copydir.c ++lib/date_to_str.c + lib/encrypt.c ++lib/entry.c ++lib/env.c ++lib/failure.c + lib/fields.c ++lib/find_new_gid.c ++lib/find_new_sub_gids.c ++lib/find_new_sub_uids.c ++lib/find_new_uid.c + lib/fputsx.c +-lib/getdef.c + lib/get_gid.c +-lib/getlong.c + lib/get_uid.c ++lib/getdef.c ++lib/getlong.c ++lib/getgr_nam_gid.c ++lib/getrange.c + lib/groupio.c + lib/groupmem.c + lib/gshadow.c ++lib/hushed.c ++lib/idmapping.c ++lib/isexpired.c ++lib/limits.c ++lib/list.c + lib/lockpw.c ++lib/log.c ++lib/loginprompt.c ++lib/mail.c ++lib/motd.c ++lib/myname.c + lib/nscd.c ++lib/obscure.c ++lib/pam_pass.c ++lib/pam_pass_non_interactive.c + lib/port.c + lib/pwauth.c ++lib/pwd_init.c ++lib/pwd2spwd.c ++lib/pwdcheck.c + lib/pwio.c + lib/pwmem.c ++lib/remove_tree.c ++lib/rlogin.c ++lib/root_flag.c ++lib/salt.c + lib/selinux.c + lib/semanage.c ++lib/setugid.c ++lib/setupenv.c + lib/sgetgrent.c + lib/sgetpwent.c + lib/sgetspent.c +@@ -26,64 +70,20 @@ lib/sgroupio.c + lib/shadow.c + lib/shadowio.c + lib/shadowmem.c ++lib/shell.c + lib/spawn.c ++lib/strtoday.c ++lib/sub.c ++lib/sulog.c + lib/tcbfuncs.c +-libmisc/addgrps.c +-libmisc/age.c +-libmisc/audit_help.c +-libmisc/basename.c +-libmisc/chkname.c +-libmisc/chowndir.c +-libmisc/chowntty.c +-libmisc/cleanup.c +-libmisc/cleanup_group.c +-libmisc/cleanup_user.c +-libmisc/console.c +-libmisc/copydir.c +-libmisc/date_to_str.c +-libmisc/entry.c +-libmisc/env.c +-libmisc/failure.c +-libmisc/find_new_gid.c +-libmisc/find_new_sub_gids.c +-libmisc/find_new_sub_uids.c +-libmisc/find_new_uid.c +-libmisc/getgr_nam_gid.c +-libmisc/getrange.c +-libmisc/hushed.c +-libmisc/idmapping.c +-libmisc/isexpired.c +-libmisc/limits.c +-libmisc/list.c +-libmisc/log.c +-libmisc/loginprompt.c +-libmisc/mail.c +-libmisc/motd.c +-libmisc/myname.c +-libmisc/obscure.c +-libmisc/pam_pass.c +-libmisc/pam_pass_non_interactive.c +-libmisc/pwd2spwd.c +-libmisc/pwdcheck.c +-libmisc/pwd_init.c +-libmisc/remove_tree.c +-libmisc/rlogin.c +-libmisc/root_flag.c +-libmisc/salt.c +-libmisc/setugid.c +-libmisc/setupenv.c +-libmisc/shell.c +-libmisc/strtoday.c +-libmisc/sub.c +-libmisc/sulog.c +-libmisc/ttytype.c +-libmisc/tz.c +-libmisc/ulimit.c +-libmisc/user_busy.c +-libmisc/utmp.c +-libmisc/valid.c +-libmisc/xgetXXbyYY.c +-libmisc/yesno.c ++lib/ttytype.c ++lib/tz.c ++lib/ulimit.c ++lib/user_busy.c ++lib/utmp.c ++lib/valid.c ++lib/xgetXXbyYY.c ++lib/yesno.c + src/chage.c + src/chfn.c + src/chgpasswd.c +diff --git a/src/Makefile.am b/src/Makefile.am +index 585a0b7e9..fcfee9d2c 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -9,7 +9,6 @@ sgidperms = 2755 + + AM_CPPFLAGS = \ + -I${top_srcdir}/lib \ +- -I$(top_srcdir)/libmisc \ + -I$(top_srcdir) \ + -DLOCALEDIR=\"$(datadir)/locale\" \ + $(ECONF_CPPFLAGS) +@@ -85,7 +84,6 @@ shadowsgidubins = passwd + endif + + LDADD = $(INTLLIBS) \ +- $(top_builddir)/libmisc/libmisc.la \ + $(top_builddir)/lib/libshadow.la \ + $(LIBTCB) + +@@ -183,59 +181,49 @@ MISCLIBS = \ + + getsubids_LDADD = \ + $(top_builddir)/lib/libshadow.la \ +- $(top_builddir)/libmisc/libmisc.la \ + $(top_builddir)/libsubid/libsubid.la \ + $(MISCLIBS) -ldl + + getsubids_CPPFLAGS = \ + -I$(top_srcdir)/lib \ +- -I$(top_srcdir)/libmisc \ + -I$(top_srcdir) \ + -I$(top_builddir)/libsubid + + get_subid_owners_LDADD = \ + $(top_builddir)/lib/libshadow.la \ +- $(top_builddir)/libmisc/libmisc.la \ + $(top_builddir)/libsubid/libsubid.la \ + $(MISCLIBS) -ldl + + get_subid_owners_CPPFLAGS = \ + -I$(top_srcdir)/lib \ +- -I$(top_srcdir)/libmisc \ + -I$(top_srcdir) \ + -I$(top_builddir)/libsubid + + new_subid_range_CPPFLAGS = \ + -I$(top_srcdir)/lib \ +- -I$(top_srcdir)/libmisc \ + -I$(top_srcdir) \ + -I$(top_builddir)/libsubid + + new_subid_range_LDADD = \ + $(top_builddir)/lib/libshadow.la \ +- $(top_builddir)/libmisc/libmisc.la \ + $(top_builddir)/libsubid/libsubid.la \ + $(MISCLIBS) -ldl + + free_subid_range_CPPFLAGS = \ + -I$(top_srcdir)/lib \ +- -I$(top_srcdir)/libmisc \ + -I$(top_srcdir) \ + -I$(top_builddir)/libsubid + + free_subid_range_LDADD = \ + $(top_builddir)/lib/libshadow.la \ +- $(top_builddir)/libmisc/libmisc.la \ + $(top_builddir)/libsubid/libsubid.la \ + $(MISCLIBS) -ldl + + check_subid_range_CPPFLAGS = \ + -I$(top_srcdir)/lib \ +- -I$(top_srcdir) \ +- -I$(top_srcdir)/libmisc ++ -I$(top_srcdir) + + check_subid_range_LDADD = \ + $(top_builddir)/lib/libshadow.la \ +- $(top_builddir)/libmisc/libmisc.la \ + $(MISCLIBS) -ldl + endif +diff --git a/src/su.c b/src/su.c +index d8a208572..28445a300 100644 +--- a/src/su.c ++++ b/src/su.c +@@ -97,8 +97,8 @@ static pid_t pid_child = 0; + * External identifiers + */ + +-extern char **newenvp; /* libmisc/env.c */ +-extern size_t newenvc; /* libmisc/env.c */ ++extern char **newenvp; /* lib/env.c */ ++extern size_t newenvc; /* lib/env.c */ + + /* local function prototypes */ + diff --git a/sys-apps/shadow/shadow-4.14.0-r2.ebuild b/sys-apps/shadow/shadow-4.14.0-r2.ebuild deleted file mode 100644 index b56af87c4778..000000000000 --- a/sys-apps/shadow/shadow-4.14.0-r2.ebuild +++ /dev/null @@ -1,271 +0,0 @@ -# Copyright 1999-2023 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Upstream sometimes pushes releases as pre-releases before marking them -# official. Don't keyword the pre-releases! -# Check https://github.com/shadow-maint/shadow/releases. - -VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/sergehallyn.asc -inherit libtool pam verify-sig - -DESCRIPTION="Utilities to deal with user accounts" -HOMEPAGE="https://github.com/shadow-maint/shadow" -SRC_URI="https://github.com/shadow-maint/shadow/releases/download/${PV}/${P}.tar.xz" -SRC_URI+=" verify-sig? ( https://github.com/shadow-maint/shadow/releases/download/${PV}/${P}.tar.xz.asc )" - -LICENSE="BSD GPL-2" -# Subslot is for libsubid's SONAME. -SLOT="0/4" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" -IUSE="acl audit cracklib nls pam selinux skey split-usr su systemd xattr" -# Taken from the man/Makefile.am file. -LANGS=( cs da de es fi fr hu id it ja ko pl pt_BR ru sv tr zh_CN zh_TW ) - -REQUIRED_USE="?? ( cracklib pam )" - -# TODO: Revisit libbsd dep once glibc-2.28 is stable as it provides strlcpy. -COMMON_DEPEND=" - dev-libs/libbsd - virtual/libcrypt:= - acl? ( sys-apps/acl:= ) - audit? ( >=sys-process/audit-2.6:= ) - cracklib? ( >=sys-libs/cracklib-2.7-r3:= ) - nls? ( virtual/libintl ) - pam? ( sys-libs/pam:= ) - skey? ( sys-auth/skey:= ) - selinux? ( - >=sys-libs/libselinux-1.28:= - sys-libs/libsemanage:= - ) - systemd? ( sys-apps/systemd:= ) - xattr? ( sys-apps/attr:= ) -" -DEPEND=" - ${COMMON_DEPEND} - >=sys-kernel/linux-headers-4.14 -" -RDEPEND=" - ${COMMON_DEPEND} - !=sys-auth/pambase-20150213 ) - su? ( !sys-apps/util-linux[su(-)] ) -" -BDEPEND=" - app-arch/xz-utils - sys-devel/gettext - verify-sig? ( sec-keys/openpgp-keys-sergehallyn ) -" - -src_prepare() { - default - - elibtoolize -} - -src_configure() { - local myeconfargs=( - # Negate new upstream default of disabling for now - --enable-lastlog - --disable-account-tools-setuid - --disable-static - --with-btrfs - # shadow uses a bundled copy of readpassphrase if --without-libbsd - --with-libbsd - --without-group-name-max-length - --without-tcb - --with-bcrypt - --with-yescrypt - $(use_enable nls) - # TODO: wire up upstream for elogind too - $(use_enable systemd logind) - $(use_with acl) - $(use_with audit) - $(use_with cracklib libcrack) - $(use_with elibc_glibc nscd) - $(use_with pam libpam) - $(use_with selinux) - $(use_with skey) - $(use_with su) - $(use_with xattr attr) - ) - - econf "${myeconfargs[@]}" - - if use nls ; then - local l langs="po" # These are the pot files. - for l in ${LANGS[*]} ; do - has ${l} ${LINGUAS-${l}} && langs+=" ${l}" - done - sed -i "/^SUBDIRS = /s:=.*:= ${langs}:" man/Makefile || die - fi -} - -set_login_opt() { - local comment="" opt=${1} val=${2} - if [[ -z ${val} ]]; then - comment="#" - sed -i \ - -e "/^${opt}\>/s:^:#:" \ - "${ED}"/etc/login.defs || die - else - sed -i -r \ - -e "/^#?${opt}\>/s:.*:${opt} ${val}:" \ - "${ED}"/etc/login.defs - fi - local res=$(grep "^${comment}${opt}\>" "${ED}"/etc/login.defs) - einfo "${res:-Unable to find ${opt} in /etc/login.defs}" -} - -src_install() { - emake DESTDIR="${D}" suidperms=4711 install - - # 4.9 regression: https://github.com/shadow-maint/shadow/issues/389 - emake DESTDIR="${D}" -C man install - - find "${ED}" -name '*.la' -type f -delete || die - - insinto /etc - if ! use pam ; then - insopts -m0600 - doins etc/login.access etc/limits - fi - - # needed for 'useradd -D' - insinto /etc/default - insopts -m0600 - doins "${FILESDIR}"/default/useradd - - if use split-usr ; then - # move passwd to / to help recover broke systems #64441 - # We cannot simply remove this or else net-misc/scponly - # and other tools will break because of hardcoded passwd - # location - dodir /bin - mv "${ED}"/usr/bin/passwd "${ED}"/bin/ || die - dosym ../../bin/passwd /usr/bin/passwd - fi - - cd "${S}" || die - insinto /etc - insopts -m0644 - newins etc/login.defs login.defs - - set_login_opt CREATE_HOME yes - if ! use pam ; then - set_login_opt MAIL_CHECK_ENAB no - set_login_opt SU_WHEEL_ONLY yes - set_login_opt CRACKLIB_DICTPATH /usr/lib/cracklib_dict - set_login_opt LOGIN_RETRIES 3 - set_login_opt ENCRYPT_METHOD SHA512 - set_login_opt CONSOLE - else - dopamd "${FILESDIR}"/pam.d-include/shadow - - for x in chsh chfn ; do - newpamd "${FILESDIR}"/pam.d-include/passwd ${x} - done - - for x in chpasswd newusers ; do - newpamd "${FILESDIR}"/pam.d-include/chpasswd ${x} - done - - newpamd "${FILESDIR}"/pam.d-include/shadow-r1 groupmems - - # Comment out login.defs options that pam hates - local opt sed_args=() - for opt in \ - CHFN_AUTH \ - CONSOLE \ - CRACKLIB_DICTPATH \ - ENV_HZ \ - ENVIRON_FILE \ - FAILLOG_ENAB \ - FTMP_FILE \ - LASTLOG_ENAB \ - MAIL_CHECK_ENAB \ - MOTD_FILE \ - NOLOGINS_FILE \ - OBSCURE_CHECKS_ENAB \ - PASS_ALWAYS_WARN \ - PASS_CHANGE_TRIES \ - PASS_MIN_LEN \ - PORTTIME_CHECKS_ENAB \ - QUOTAS_ENAB \ - SU_WHEEL_ONLY - do - set_login_opt ${opt} - sed_args+=( -e "/^#${opt}\>/b pamnote" ) - done - sed -i "${sed_args[@]}" \ - -e 'b exit' \ - -e ': pamnote; i# NOTE: This setting should be configured via /etc/pam.d/ and not in this file.' \ - -e ': exit' \ - "${ED}"/etc/login.defs || die - - # Remove manpages that pam will install for us - # and/or don't apply when using pam - find "${ED}"/usr/share/man -type f \ - '(' -name 'limits.5*' -o -name 'suauth.5*' ')' \ - -delete - - # Remove pam.d files provided by pambase. - rm "${ED}"/etc/pam.d/{login,passwd} || die - if use su ; then - rm "${ED}"/etc/pam.d/su || die - fi - fi - - # Remove manpages that are handled by other packages - find "${ED}"/usr/share/man -type f \ - '(' -name id.1 -o -name getspnam.3 ')' \ - -delete || die - - if ! use su ; then - find "${ED}"/usr/share/man -type f -name su.1 -delete || die - fi - - cd "${S}" || die - dodoc ChangeLog NEWS TODO - newdoc README README.download - cd doc || die - dodoc HOWTO README* WISHLIST *.txt -} - -pkg_preinst() { - rm -f "${EROOT}"/etc/pam.d/system-auth.new \ - "${EROOT}/etc/login.defs.new" -} - -pkg_postinst() { - # Missing entries from /etc/passwd can cause odd system blips. - # See bug #829872. - if ! pwck -r -q -R "${EROOT:-/}" &>/dev/null ; then - ewarn "Running 'pwck' returned errors. Please run it manually to fix any errors." - fi - - # Enable shadow groups. - if [[ ! -f "${EROOT}"/etc/gshadow ]] ; then - if grpck -r -R "${EROOT:-/}" 2>/dev/null ; then - grpconv -R "${EROOT:-/}" - else - ewarn "Running 'grpck' returned errors. Please run it by hand, and then" - ewarn "run 'grpconv' afterwards!" - fi - fi - - [[ ! -f "${EROOT}"/etc/subgid ]] && - touch "${EROOT}"/etc/subgid - [[ ! -f "${EROOT}"/etc/subuid ]] && - touch "${EROOT}"/etc/subuid - - einfo "The 'adduser' symlink to 'useradd' has been dropped." -} diff --git a/sys-apps/shadow/shadow-4.14.0-r3.ebuild b/sys-apps/shadow/shadow-4.14.0-r3.ebuild new file mode 100644 index 000000000000..f968474c789e --- /dev/null +++ b/sys-apps/shadow/shadow-4.14.0-r3.ebuild @@ -0,0 +1,277 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +if [[ ${PV} != 4.14.0 ]]; then + die "Please replace eautoreconf with elibtoolize and drop autotools when bumping!" +fi + +# Upstream sometimes pushes releases as pre-releases before marking them +# official. Don't keyword the pre-releases! +# Check https://github.com/shadow-maint/shadow/releases. + +VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/sergehallyn.asc +inherit autotools libtool pam verify-sig + +DESCRIPTION="Utilities to deal with user accounts" +HOMEPAGE="https://github.com/shadow-maint/shadow" +SRC_URI="https://github.com/shadow-maint/shadow/releases/download/${PV}/${P}.tar.xz" +SRC_URI+=" verify-sig? ( https://github.com/shadow-maint/shadow/releases/download/${PV}/${P}.tar.xz.asc )" + +LICENSE="BSD GPL-2" +# Subslot is for libsubid's SONAME. +SLOT="0/4" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="acl audit cracklib nls pam selinux skey split-usr su systemd xattr" +# Taken from the man/Makefile.am file. +LANGS=( cs da de es fi fr hu id it ja ko pl pt_BR ru sv tr zh_CN zh_TW ) + +REQUIRED_USE="?? ( cracklib pam )" + +# TODO: Revisit libbsd dep once glibc-2.28 is stable as it provides strlcpy. +COMMON_DEPEND=" + dev-libs/libbsd + virtual/libcrypt:= + acl? ( sys-apps/acl:= ) + audit? ( >=sys-process/audit-2.6:= ) + cracklib? ( >=sys-libs/cracklib-2.7-r3:= ) + nls? ( virtual/libintl ) + pam? ( sys-libs/pam:= ) + skey? ( sys-auth/skey:= ) + selinux? ( + >=sys-libs/libselinux-1.28:= + sys-libs/libsemanage:= + ) + systemd? ( sys-apps/systemd:= ) + xattr? ( sys-apps/attr:= ) +" +DEPEND=" + ${COMMON_DEPEND} + >=sys-kernel/linux-headers-4.14 +" +RDEPEND=" + ${COMMON_DEPEND} + !=sys-auth/pambase-20150213 ) + su? ( !sys-apps/util-linux[su(-)] ) +" +BDEPEND=" + app-arch/xz-utils + sys-devel/gettext + verify-sig? ( sec-keys/openpgp-keys-sergehallyn ) +" + +src_prepare() { + local PATCHES=( + "${FILESDIR}"/shadow-4.14.0-bug912446.patch + ) + default + eautoreconf +} + +src_configure() { + local myeconfargs=( + # Negate new upstream default of disabling for now + --enable-lastlog + --disable-account-tools-setuid + --disable-static + --with-btrfs + # shadow uses a bundled copy of readpassphrase if --without-libbsd + --with-libbsd + --without-group-name-max-length + --without-tcb + --with-bcrypt + --with-yescrypt + $(use_enable nls) + # TODO: wire up upstream for elogind too + $(use_enable systemd logind) + $(use_with acl) + $(use_with audit) + $(use_with cracklib libcrack) + $(use_with elibc_glibc nscd) + $(use_with pam libpam) + $(use_with selinux) + $(use_with skey) + $(use_with su) + $(use_with xattr attr) + ) + + econf "${myeconfargs[@]}" + + if use nls ; then + local l langs="po" # These are the pot files. + for l in ${LANGS[*]} ; do + has ${l} ${LINGUAS-${l}} && langs+=" ${l}" + done + sed -i "/^SUBDIRS = /s:=.*:= ${langs}:" man/Makefile || die + fi +} + +set_login_opt() { + local comment="" opt=${1} val=${2} + if [[ -z ${val} ]]; then + comment="#" + sed -i \ + -e "/^${opt}\>/s:^:#:" \ + "${ED}"/etc/login.defs || die + else + sed -i -r \ + -e "/^#?${opt}\>/s:.*:${opt} ${val}:" \ + "${ED}"/etc/login.defs + fi + local res=$(grep "^${comment}${opt}\>" "${ED}"/etc/login.defs) + einfo "${res:-Unable to find ${opt} in /etc/login.defs}" +} + +src_install() { + emake DESTDIR="${D}" suidperms=4711 install + + # 4.9 regression: https://github.com/shadow-maint/shadow/issues/389 + emake DESTDIR="${D}" -C man install + + find "${ED}" -name '*.la' -type f -delete || die + + insinto /etc + if ! use pam ; then + insopts -m0600 + doins etc/login.access etc/limits + fi + + # needed for 'useradd -D' + insinto /etc/default + insopts -m0600 + doins "${FILESDIR}"/default/useradd + + if use split-usr ; then + # move passwd to / to help recover broke systems #64441 + # We cannot simply remove this or else net-misc/scponly + # and other tools will break because of hardcoded passwd + # location + dodir /bin + mv "${ED}"/usr/bin/passwd "${ED}"/bin/ || die + dosym ../../bin/passwd /usr/bin/passwd + fi + + cd "${S}" || die + insinto /etc + insopts -m0644 + newins etc/login.defs login.defs + + set_login_opt CREATE_HOME yes + if ! use pam ; then + set_login_opt MAIL_CHECK_ENAB no + set_login_opt SU_WHEEL_ONLY yes + set_login_opt CRACKLIB_DICTPATH /usr/lib/cracklib_dict + set_login_opt LOGIN_RETRIES 3 + set_login_opt ENCRYPT_METHOD SHA512 + set_login_opt CONSOLE + else + dopamd "${FILESDIR}"/pam.d-include/shadow + + for x in chsh chfn ; do + newpamd "${FILESDIR}"/pam.d-include/passwd ${x} + done + + for x in chpasswd newusers ; do + newpamd "${FILESDIR}"/pam.d-include/chpasswd ${x} + done + + newpamd "${FILESDIR}"/pam.d-include/shadow-r1 groupmems + + # Comment out login.defs options that pam hates + local opt sed_args=() + for opt in \ + CHFN_AUTH \ + CONSOLE \ + CRACKLIB_DICTPATH \ + ENV_HZ \ + ENVIRON_FILE \ + FAILLOG_ENAB \ + FTMP_FILE \ + LASTLOG_ENAB \ + MAIL_CHECK_ENAB \ + MOTD_FILE \ + NOLOGINS_FILE \ + OBSCURE_CHECKS_ENAB \ + PASS_ALWAYS_WARN \ + PASS_CHANGE_TRIES \ + PASS_MIN_LEN \ + PORTTIME_CHECKS_ENAB \ + QUOTAS_ENAB \ + SU_WHEEL_ONLY + do + set_login_opt ${opt} + sed_args+=( -e "/^#${opt}\>/b pamnote" ) + done + sed -i "${sed_args[@]}" \ + -e 'b exit' \ + -e ': pamnote; i# NOTE: This setting should be configured via /etc/pam.d/ and not in this file.' \ + -e ': exit' \ + "${ED}"/etc/login.defs || die + + # Remove manpages that pam will install for us + # and/or don't apply when using pam + find "${ED}"/usr/share/man -type f \ + '(' -name 'limits.5*' -o -name 'suauth.5*' ')' \ + -delete + + # Remove pam.d files provided by pambase. + rm "${ED}"/etc/pam.d/{login,passwd} || die + if use su ; then + rm "${ED}"/etc/pam.d/su || die + fi + fi + + # Remove manpages that are handled by other packages + find "${ED}"/usr/share/man -type f \ + '(' -name id.1 -o -name getspnam.3 ')' \ + -delete || die + + if ! use su ; then + find "${ED}"/usr/share/man -type f -name su.1 -delete || die + fi + + cd "${S}" || die + dodoc ChangeLog NEWS TODO + newdoc README README.download + cd doc || die + dodoc HOWTO README* WISHLIST *.txt +} + +pkg_preinst() { + rm -f "${EROOT}"/etc/pam.d/system-auth.new \ + "${EROOT}/etc/login.defs.new" +} + +pkg_postinst() { + # Missing entries from /etc/passwd can cause odd system blips. + # See bug #829872. + if ! pwck -r -q -R "${EROOT:-/}" &>/dev/null ; then + ewarn "Running 'pwck' returned errors. Please run it manually to fix any errors." + fi + + # Enable shadow groups. + if [[ ! -f "${EROOT}"/etc/gshadow ]] ; then + if grpck -r -R "${EROOT:-/}" 2>/dev/null ; then + grpconv -R "${EROOT:-/}" + else + ewarn "Running 'grpck' returned errors. Please run it by hand, and then" + ewarn "run 'grpconv' afterwards!" + fi + fi + + [[ ! -f "${EROOT}"/etc/subgid ]] && + touch "${EROOT}"/etc/subgid + [[ ! -f "${EROOT}"/etc/subuid ]] && + touch "${EROOT}"/etc/subuid + + einfo "The 'adduser' symlink to 'useradd' has been dropped." +} -- cgit v1.2.3