Date: Sunday, November 6, 2022 @ 13:07:49
  Author: dvzrv
Revision: 460775

upgpkg: shadow 4.11.1-4: Rebuild to apply distribution patches.

Use distribution patches from
https://gitlab.archlinux.org/archlinux/packaging/upstream/shadow/-/commits/v4.11.1.arch2
to
- not manually remove or move files in package()
- install files to the correct bin location
- modify login.defs to not include unsupported options (due to PAM and 
util-linux)
- add distribution specific PAM integration
- add distribution specific login.defs overrides

Remove unused PAM files and patch for login.defs.
Generically apply patches from the source array in prepare().
Use an array in build() to provide options to configure for ease of use.

Added:
  shadow/trunk/0001-Disable-replaced-tools-and-man-pages.patch
  shadow/trunk/0002-Adapt-login.defs-for-PAM-and-util-linux.patch
  shadow/trunk/0003-Add-Arch-Linux-defaults-for-login.defs.patch
  shadow/trunk/0004-Add-Arch-Linux-defaults-for-etc-pam.d.patch
Modified:
  shadow/trunk/PKGBUILD
Deleted:
  shadow/trunk/chgpasswd
  shadow/trunk/chpasswd
  shadow/trunk/defaults.pam
  shadow/trunk/newusers
  shadow/trunk/passwd
  shadow/trunk/shadow-4.11.1-login.defs.patch

----------------------------------------------------+
 0001-Disable-replaced-tools-and-man-pages.patch    |  658 ++++++++++++++++++
 0002-Adapt-login.defs-for-PAM-and-util-linux.patch |  692 +++++++++++++++++++
 0003-Add-Arch-Linux-defaults-for-login.defs.patch  |   73 ++
 0004-Add-Arch-Linux-defaults-for-etc-pam.d.patch   |  201 +++++
 PKGBUILD                                           |  129 +--
 chgpasswd                                          |    4 
 chpasswd                                           |    6 
 defaults.pam                                       |    6 
 newusers                                           |    6 
 passwd                                             |    4 
 shadow-4.11.1-login.defs.patch                     |  308 --------
 11 files changed, 1673 insertions(+), 414 deletions(-)

Added: 0001-Disable-replaced-tools-and-man-pages.patch
===================================================================
--- 0001-Disable-replaced-tools-and-man-pages.patch                             
(rev 0)
+++ 0001-Disable-replaced-tools-and-man-pages.patch     2022-11-06 13:07:49 UTC 
(rev 460775)
@@ -0,0 +1,658 @@
+From e0394dfa98a4b4a1b86a19f39a1a982adc1bb7fa Mon Sep 17 00:00:00 2001
+From: David Runge <[email protected]>
+Date: Sat, 5 Nov 2022 23:40:18 +0100
+Subject: [PATCH 1/4] Disable replaced tools and man pages
+
+man/Makefile.am, man/*/Makefile.am:
+Disable man pages for chfn, chsh, login, logoutd, newgrp, nologin, vigr,
+vipw and su as they are either no longer used or replaced by util-linux.
+
+src/Makefile.am:
+Set usbindir to use bin instead of sbin, as Arch Linux is a /usr and bin
+merge distribution.
+Remove the use of login, nologin, chfn, chsh, logoutd, vipw and vigr, as
+they are either not used or replaced by util-linux.
+Move newgrp to replace sg (instead of it being a symlink).
+---
+ man/Makefile.am       | 19 ++-----------------
+ man/cs/Makefile.am    |  8 ++------
+ man/da/Makefile.am    |  8 +-------
+ man/de/Makefile.am    | 11 +----------
+ man/fi/Makefile.am    |  5 +----
+ man/fr/Makefile.am    | 11 +----------
+ man/hu/Makefile.am    |  6 +-----
+ man/id/Makefile.am    |  2 --
+ man/it/Makefile.am    | 11 +----------
+ man/ja/Makefile.am    | 10 +---------
+ man/ko/Makefile.am    |  8 +-------
+ man/pl/Makefile.am    |  7 +------
+ man/ru/Makefile.am    | 11 +----------
+ man/sv/Makefile.am    |  8 +-------
+ man/tr/Makefile.am    |  3 ---
+ man/zh_CN/Makefile.am | 11 +----------
+ man/zh_TW/Makefile.am |  4 ----
+ src/Makefile.am       | 18 +++++++-----------
+ 18 files changed, 23 insertions(+), 138 deletions(-)
+
+diff --git a/man/Makefile.am b/man/Makefile.am
+index e9cab28a..7168625c 100644
+--- a/man/Makefile.am
++++ b/man/Makefile.am
+@@ -8,10 +8,8 @@ endif
+ 
+ man_MANS = \
+       man1/chage.1 \
+-      man1/chfn.1 \
+       man8/chgpasswd.8 \
+       man8/chpasswd.8 \
+-      man1/chsh.1 \
+       man1/expiry.1 \
+       man5/faillog.5 \
+       man8/faillog.8 \
+@@ -27,12 +25,8 @@ man_MANS = \
+       man8/grpunconv.8 \
+       man5/gshadow.5 \
+       man8/lastlog.8 \
+-      man1/login.1 \
+       man5/login.defs.5 \
+-      man8/logoutd.8 \
+-      man1/newgrp.1 \
+       man8/newusers.8 \
+-      man8/nologin.8 \
+       man1/passwd.1 \
+       man5/passwd.5 \
+       man8/pwck.8 \
+@@ -44,9 +38,7 @@ man_MANS = \
+       man5/suauth.5 \
+       man8/useradd.8 \
+       man8/userdel.8 \
+-      man8/usermod.8 \
+-      man8/vigr.8 \
+-      man8/vipw.8
++      man8/usermod.8
+ 
+ man_nopam = \
+       man5/limits.5 \
+@@ -74,10 +66,8 @@ endif
+ 
+ man_XMANS = \
+       chage.1.xml \
+-      chfn.1.xml \
+       chgpasswd.8.xml \
+       chpasswd.8.xml \
+-      chsh.1.xml \
+       expiry.1.xml \
+       faillog.5.xml \
+       faillog.8.xml \
+@@ -92,12 +82,9 @@ man_XMANS = \
+       gshadow.5.xml \
+       lastlog.8.xml \
+       limits.5.xml \
+-      login.1.xml \
+       login.access.5.xml \
+       login.defs.5.xml \
+-      logoutd.8.xml \
+       newgidmap.1.xml \
+-      newgrp.1.xml \
+       newuidmap.1.xml \
+       newusers.8.xml \
+       nologin.8.xml \
+@@ -109,14 +96,12 @@ man_XMANS = \
+       shadow.3.xml \
+       shadow.5.xml \
+       sg.1.xml \
+-      su.1.xml \
+       suauth.5.xml \
+       subgid.5.xml \
+       subuid.5.xml \
+       useradd.8.xml \
+       userdel.8.xml \
+-      usermod.8.xml \
+-      vipw.8.xml
++      usermod.8.xml
+ 
+ login_defs_v = \
+       CHFN_AUTH.xml \
+diff --git a/man/cs/Makefile.am b/man/cs/Makefile.am
+index 3b2be0ce..50290f4a 100644
+--- a/man/cs/Makefile.am
++++ b/man/cs/Makefile.am
+@@ -13,14 +13,10 @@ man_MANS = \
+       man8/grpck.8 \
+       man5/gshadow.5 \
+       man8/lastlog.8 \
+-      man8/nologin.8 \
+       man5/passwd.5 \
+-      man5/shadow.5 \
+-      man1/su.1 \
+-      man8/vipw.8
++      man5/shadow.5
+ 
+ EXTRA_DIST = $(man_MANS) \
+       man1/id.1 \
+-      man8/groupmems.8 \
+-      man8/logoutd.8
++      man8/groupmems.8
+ 
+diff --git a/man/da/Makefile.am b/man/da/Makefile.am
+index a3b09224..e45bef66 100644
+--- a/man/da/Makefile.am
++++ b/man/da/Makefile.am
+@@ -3,16 +3,10 @@ mandir = @mandir@/da
+ 
+ # 2012.01.28 - activate manpages with more than 50% translated messages
+ man_MANS = \
+-      man1/chfn.1 \
+       man8/groupdel.8 \
+       man1/groups.1 \
+       man5/gshadow.5 \
+-      man8/logoutd.8 \
+-      man1/newgrp.1 \
+-      man8/nologin.8 \
+-      man1/sg.1 \
+-      man8/vigr.8 \
+-      man8/vipw.8
++      man1/sg.1
+ 
+ man_nopam = 
+ 
+diff --git a/man/de/Makefile.am b/man/de/Makefile.am
+index 3cd302ee..dee3e2a1 100644
+--- a/man/de/Makefile.am
++++ b/man/de/Makefile.am
+@@ -3,10 +3,8 @@ mandir = @mandir@/de
+ 
+ man_MANS = \
+       man1/chage.1 \
+-      man1/chfn.1 \
+       man8/chgpasswd.8 \
+       man8/chpasswd.8 \
+-      man1/chsh.1 \
+       man1/expiry.1 \
+       man5/faillog.5 \
+       man8/faillog.8 \
+@@ -22,12 +20,8 @@ man_MANS = \
+       man8/grpunconv.8 \
+       man5/gshadow.5 \
+       man8/lastlog.8 \
+-      man1/login.1 \
+       man5/login.defs.5 \
+-      man8/logoutd.8 \
+-      man1/newgrp.1 \
+       man8/newusers.8 \
+-      man8/nologin.8 \
+       man1/passwd.1 \
+       man5/passwd.5 \
+       man8/pwck.8 \
+@@ -36,13 +30,10 @@ man_MANS = \
+       man1/sg.1 \
+       man3/shadow.3 \
+       man5/shadow.5 \
+-      man1/su.1 \
+       man5/suauth.5 \
+       man8/useradd.8 \
+       man8/userdel.8 \
+-      man8/usermod.8 \
+-      man8/vigr.8 \
+-      man8/vipw.8
++      man8/usermod.8
+ 
+ man_nopam = \
+       man5/limits.5 \
+diff --git a/man/fi/Makefile.am b/man/fi/Makefile.am
+index 26a1a848..f02b92f3 100644
+--- a/man/fi/Makefile.am
++++ b/man/fi/Makefile.am
+@@ -1,10 +1,7 @@
+ 
+ mandir = @mandir@/fi
+ 
+-man_MANS = \
+-      man1/chfn.1 \
+-      man1/chsh.1 \
+-      man1/su.1
++man_MANS =
+ 
+ # Outdated manpages
+ #     passwd.1 (https://bugs.launchpad.net/ubuntu/+bug/384024)
+diff --git a/man/fr/Makefile.am b/man/fr/Makefile.am
+index 230d2126..1955e94a 100644
+--- a/man/fr/Makefile.am
++++ b/man/fr/Makefile.am
+@@ -3,10 +3,8 @@ mandir = @mandir@/fr
+ 
+ man_MANS = \
+       man1/chage.1 \
+-      man1/chfn.1 \
+       man8/chgpasswd.8 \
+       man8/chpasswd.8 \
+-      man1/chsh.1 \
+       man1/expiry.1 \
+       man5/faillog.5 \
+       man8/faillog.8 \
+@@ -22,12 +20,8 @@ man_MANS = \
+       man8/grpunconv.8 \
+       man5/gshadow.5 \
+       man8/lastlog.8 \
+-      man1/login.1 \
+       man5/login.defs.5 \
+-      man8/logoutd.8 \
+-      man1/newgrp.1 \
+       man8/newusers.8 \
+-      man8/nologin.8 \
+       man1/passwd.1 \
+       man5/passwd.5 \
+       man8/pwck.8 \
+@@ -36,13 +30,10 @@ man_MANS = \
+       man1/sg.1 \
+       man3/shadow.3 \
+       man5/shadow.5 \
+-      man1/su.1 \
+       man5/suauth.5 \
+       man8/useradd.8 \
+       man8/userdel.8 \
+-      man8/usermod.8 \
+-      man8/vigr.8 \
+-      man8/vipw.8
++      man8/usermod.8
+ 
+ man_nopam = \
+       man5/limits.5 \
+diff --git a/man/hu/Makefile.am b/man/hu/Makefile.am
+index e659aef1..ae80da49 100644
+--- a/man/hu/Makefile.am
++++ b/man/hu/Makefile.am
+@@ -2,16 +2,12 @@
+ mandir = @mandir@/hu
+ 
+ man_MANS = \
+-      man1/chsh.1 \
+       man1/gpasswd.1 \
+       man1/groups.1 \
+       man8/lastlog.8 \
+-      man1/login.1 \
+-      man1/newgrp.1 \
+       man1/passwd.1 \
+       man5/passwd.5 \
+-      man1/sg.1 \
+-      man1/su.1
++      man1/sg.1
+ 
+ EXTRA_DIST = $(man_MANS)
+  
+diff --git a/man/id/Makefile.am b/man/id/Makefile.am
+index 21f3dbe9..6d10b930 100644
+--- a/man/id/Makefile.am
++++ b/man/id/Makefile.am
+@@ -2,8 +2,6 @@
+ mandir = @mandir@/id
+ 
+ man_MANS = \
+-      man1/chsh.1 \
+-      man1/login.1 \
+       man8/useradd.8
+ 
+ EXTRA_DIST = $(man_MANS)
+diff --git a/man/it/Makefile.am b/man/it/Makefile.am
+index 94460aac..ecf5bd18 100644
+--- a/man/it/Makefile.am
++++ b/man/it/Makefile.am
+@@ -3,10 +3,8 @@ mandir = @mandir@/it
+ 
+ man_MANS = \
+       man1/chage.1 \
+-      man1/chfn.1 \
+       man8/chgpasswd.8 \
+       man8/chpasswd.8 \
+-      man1/chsh.1 \
+       man1/expiry.1 \
+       man5/faillog.5 \
+       man8/faillog.8 \
+@@ -22,12 +20,8 @@ man_MANS = \
+       man8/grpunconv.8 \
+       man5/gshadow.5 \
+       man8/lastlog.8 \
+-      man1/login.1 \
+       man5/login.defs.5 \
+-      man8/logoutd.8 \
+-      man1/newgrp.1 \
+       man8/newusers.8 \
+-      man8/nologin.8 \
+       man1/passwd.1 \
+       man5/passwd.5 \
+       man8/pwck.8 \
+@@ -36,13 +30,10 @@ man_MANS = \
+       man1/sg.1 \
+       man3/shadow.3 \
+       man5/shadow.5 \
+-      man1/su.1 \
+       man5/suauth.5 \
+       man8/useradd.8 \
+       man8/userdel.8 \
+-      man8/usermod.8 \
+-      man8/vigr.8 \
+-      man8/vipw.8
++      man8/usermod.8
+ 
+ man_nopam = \
+       man5/limits.5 \
+diff --git a/man/ja/Makefile.am b/man/ja/Makefile.am
+index ffb75a98..b88c490a 100644
+--- a/man/ja/Makefile.am
++++ b/man/ja/Makefile.am
+@@ -3,9 +3,7 @@ mandir = @mandir@/ja
+ 
+ man_MANS = \
+       man1/chage.1 \
+-      man1/chfn.1 \
+       man8/chpasswd.8 \
+-      man1/chsh.1 \
+       man1/expiry.1 \
+       man5/faillog.5 \
+       man8/faillog.8 \
+@@ -18,10 +16,7 @@ man_MANS = \
+       man8/grpconv.8 \
+       man8/grpunconv.8 \
+       man8/lastlog.8 \
+-      man1/login.1 \
+       man5/login.defs.5 \
+-      man8/logoutd.8 \
+-      man1/newgrp.1 \
+       man8/newusers.8 \
+       man1/passwd.1 \
+       man5/passwd.5 \
+@@ -30,13 +25,10 @@ man_MANS = \
+       man8/pwunconv.8 \
+       man1/sg.1 \
+       man5/shadow.5 \
+-      man1/su.1 \
+       man5/suauth.5 \
+       man8/useradd.8 \
+       man8/userdel.8 \
+-      man8/usermod.8 \
+-      man8/vigr.8 \
+-      man8/vipw.8
++      man8/usermod.8
+ 
+ man_nopam = \
+       man5/limits.5 \
+diff --git a/man/ko/Makefile.am b/man/ko/Makefile.am
+index c269f0bb..9616cb3e 100644
+--- a/man/ko/Makefile.am
++++ b/man/ko/Makefile.am
+@@ -2,14 +2,8 @@
+ mandir = @mandir@/ko
+ 
+ man_MANS = \
+-      man1/chfn.1 \
+-      man1/chsh.1 \
+       man1/groups.1 \
+-      man1/login.1 \
+-      man5/passwd.5 \
+-      man1/su.1 \
+-      man8/vigr.8 \
+-      man8/vipw.8
++      man5/passwd.5
+ # newgrp.1 must be updated
+ #     newgrp.1
+ 
+diff --git a/man/pl/Makefile.am b/man/pl/Makefile.am
+index 724d25f3..fa6675b9 100644
+--- a/man/pl/Makefile.am
++++ b/man/pl/Makefile.am
+@@ -4,7 +4,6 @@ mandir = @mandir@/pl
+ # 2012.01.28 - activate manpages with more than 50% translated messages
+ man_MANS = \
+       man1/chage.1 \
+-      man1/chsh.1 \
+       man1/expiry.1 \
+       man5/faillog.5 \
+       man8/faillog.8 \
+@@ -16,14 +15,10 @@ man_MANS = \
+       man1/groups.1 \
+       man8/grpck.8 \
+       man8/lastlog.8 \
+-      man8/logoutd.8 \
+-      man1/newgrp.1 \
+       man1/sg.1 \
+       man3/shadow.3 \
+       man8/userdel.8 \
+-      man8/usermod.8 \
+-      man8/vigr.8 \
+-      man8/vipw.8
++      man8/usermod.8
+ 
+ man_nopam = \
+       man5/porttime.5
+diff --git a/man/ru/Makefile.am b/man/ru/Makefile.am
+index 8a776a87..29e1b843 100644
+--- a/man/ru/Makefile.am
++++ b/man/ru/Makefile.am
+@@ -3,10 +3,8 @@ mandir = @mandir@/ru
+ 
+ man_MANS = \
+       man1/chage.1 \
+-      man1/chfn.1 \
+       man8/chgpasswd.8 \
+       man8/chpasswd.8 \
+-      man1/chsh.1 \
+       man1/expiry.1 \
+       man5/faillog.5 \
+       man8/faillog.8 \
+@@ -22,12 +20,8 @@ man_MANS = \
+       man8/grpunconv.8 \
+       man5/gshadow.5 \
+       man8/lastlog.8 \
+-      man1/login.1 \
+       man5/login.defs.5 \
+-      man8/logoutd.8 \
+-      man1/newgrp.1 \
+       man8/newusers.8 \
+-      man8/nologin.8 \
+       man1/passwd.1 \
+       man5/passwd.5 \
+       man8/pwck.8 \
+@@ -36,13 +30,10 @@ man_MANS = \
+       man1/sg.1 \
+       man3/shadow.3 \
+       man5/shadow.5 \
+-      man1/su.1 \
+       man5/suauth.5 \
+       man8/useradd.8 \
+       man8/userdel.8 \
+-      man8/usermod.8 \
+-      man8/vigr.8 \
+-      man8/vipw.8
++      man8/usermod.8
+ 
+ man_nopam = \
+       man5/limits.5 \
+diff --git a/man/sv/Makefile.am b/man/sv/Makefile.am
+index e64b7bc8..fbb2a716 100644
+--- a/man/sv/Makefile.am
++++ b/man/sv/Makefile.am
+@@ -3,7 +3,6 @@ mandir = @mandir@/sv
+ # 2012.01.28 - activate manpages with more than 50% translated messages
+ man_MANS = \
+       man1/chage.1 \
+-      man1/chsh.1 \
+       man1/expiry.1 \
+       man5/faillog.5 \
+       man8/faillog.8 \
+@@ -16,18 +15,13 @@ man_MANS = \
+       man8/grpck.8 \
+       man5/gshadow.5 \
+       man8/lastlog.8 \
+-      man8/logoutd.8 \
+-      man1/newgrp.1 \
+-      man8/nologin.8 \
+       man1/passwd.1 \
+       man5/passwd.5 \
+       man8/pwck.8 \
+       man1/sg.1 \
+       man3/shadow.3 \
+       man5/suauth.5 \
+-      man8/userdel.8 \
+-      man8/vigr.8 \
+-      man8/vipw.8
++      man8/userdel.8
+ 
+ man_nopam = \
+       man5/limits.5 \
+diff --git a/man/tr/Makefile.am b/man/tr/Makefile.am
+index 8d8b9166..4fe3632a 100644
+--- a/man/tr/Makefile.am
++++ b/man/tr/Makefile.am
+@@ -2,15 +2,12 @@ mandir = @mandir@/tr
+ 
+ man_MANS = \
+       man1/chage.1 \
+-      man1/chfn.1 \
+       man8/groupadd.8 \
+       man8/groupdel.8 \
+       man8/groupmod.8 \
+-      man1/login.1 \
+       man1/passwd.1 \
+       man5/passwd.5 \
+       man5/shadow.5 \
+-      man1/su.1 \
+       man8/useradd.8 \
+       man8/userdel.8 \
+       man8/usermod.8
+diff --git a/man/zh_CN/Makefile.am b/man/zh_CN/Makefile.am
+index e9d8f2c2..c2e6cdfd 100644
+--- a/man/zh_CN/Makefile.am
++++ b/man/zh_CN/Makefile.am
+@@ -3,10 +3,8 @@ mandir = @mandir@/zh_CN
+ 
+ man_MANS = \
+       man1/chage.1 \
+-      man1/chfn.1 \
+       man8/chgpasswd.8 \
+       man8/chpasswd.8 \
+-      man1/chsh.1 \
+       man1/expiry.1 \
+       man5/faillog.5 \
+       man8/faillog.8 \
+@@ -22,12 +20,8 @@ man_MANS = \
+       man8/grpunconv.8 \
+       man5/gshadow.5 \
+       man8/lastlog.8 \
+-      man1/login.1 \
+       man5/login.defs.5 \
+-      man8/logoutd.8 \
+-      man1/newgrp.1 \
+       man8/newusers.8 \
+-      man8/nologin.8 \
+       man1/passwd.1 \
+       man5/passwd.5 \
+       man8/pwck.8 \
+@@ -36,13 +30,10 @@ man_MANS = \
+       man1/sg.1 \
+       man3/shadow.3 \
+       man5/shadow.5 \
+-      man1/su.1 \
+       man5/suauth.5 \
+       man8/useradd.8 \
+       man8/userdel.8 \
+-      man8/usermod.8 \
+-      man8/vigr.8 \
+-      man8/vipw.8
++      man8/usermod.8
+ 
+ man_nopam = \
+       man5/limits.5 \
+diff --git a/man/zh_TW/Makefile.am b/man/zh_TW/Makefile.am
+index c36ed2c7..26696b67 100644
+--- a/man/zh_TW/Makefile.am
++++ b/man/zh_TW/Makefile.am
+@@ -2,15 +2,11 @@
+ mandir = @mandir@/zh_TW
+ 
+ man_MANS = \
+-      man1/chfn.1 \
+-      man1/chsh.1 \
+       man8/chpasswd.8 \
+-      man1/newgrp.1 \
+       man8/groupadd.8 \
+       man8/groupdel.8 \
+       man8/groupmod.8 \
+       man5/passwd.5 \
+-      man1/su.1 \
+       man8/useradd.8 \
+       man8/userdel.8 \
+       man8/usermod.8
+diff --git a/src/Makefile.am b/src/Makefile.am
+index a1a2e4e3..53cd7953 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -3,7 +3,7 @@ EXTRA_DIST = \
+       .indent.pro
+ 
+ ubindir = ${prefix}/bin
+-usbindir = ${prefix}/sbin
++usbindir = ${prefix}/bin
+ suidperms = 4755
+ sgidperms = 2755
+ 
+@@ -24,9 +24,9 @@ AM_CPPFLAGS = \
+ # and installation would be much simpler (just two directories,
+ # $prefix/bin and $prefix/sbin, no install-data hacks...)
+ 
+-bin_PROGRAMS   = groups login
+-sbin_PROGRAMS  = nologin
+-ubin_PROGRAMS  = faillog lastlog chage chfn chsh expiry gpasswd newgrp passwd
++bin_PROGRAMS   = groups
++sbin_PROGRAMS  =
++ubin_PROGRAMS  = faillog lastlog chage expiry gpasswd newgrp passwd
+ if ENABLE_SUBIDS
+ ubin_PROGRAMS += newgidmap newuidmap
+ endif
+@@ -43,22 +43,20 @@ usbin_PROGRAMS = \
+       grpck \
+       grpconv \
+       grpunconv \
+-      logoutd \
+       newusers \
+       pwck \
+       pwconv \
+       pwunconv \
+       useradd \
+       userdel \
+-      usermod \
+-      vipw
++      usermod
+ 
+ # id and groups are from gnu, sulogin from sysvinit
+ noinst_PROGRAMS = id sulogin
+ 
+ suidusbins     =
+ suidbins       =
+-suidubins      = chage chfn chsh expiry gpasswd newgrp
++suidubins      = chage expiry gpasswd newgrp
+ if WITH_SU
+ suidbins      += su
+ endif
+@@ -131,18 +129,16 @@ sulogin_LDADD  = $(LDADD) $(LIBCRYPT) $(LIBECONF)
+ useradd_LDADD  = $(LDADD) $(LIBPAM_SUID) $(LIBAUDIT) $(LIBSELINUX) 
$(LIBSEMANAGE) $(LIBACL) $(LIBATTR) $(LIBECONF) -ldl
+ userdel_LDADD  = $(LDADD) $(LIBPAM_SUID) $(LIBAUDIT) $(LIBSELINUX) 
$(LIBSEMANAGE) $(LIBECONF) -ldl
+ usermod_LDADD  = $(LDADD) $(LIBPAM_SUID) $(LIBAUDIT) $(LIBSELINUX) 
$(LIBSEMANAGE) $(LIBACL) $(LIBATTR) $(LIBECONF) -ldl
+-vipw_LDADD     = $(LDADD) $(LIBAUDIT) $(LIBSELINUX) $(LIBECONF)
+ 
+ install-am: all-am
+       $(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+-      ln -sf newgrp   $(DESTDIR)$(ubindir)/sg
+-      ln -sf vipw     $(DESTDIR)$(usbindir)/vigr
+       set -e; for i in $(suidbins); do \
+               chmod $(suidperms) $(DESTDIR)$(bindir)/$$i; \
+       done
+       set -e; for i in $(suidubins); do \
+               chmod $(suidperms) $(DESTDIR)$(ubindir)/$$i; \
+       done
++      mv -v $(DESTDIR)$(ubindir)/newgrp       $(DESTDIR)$(ubindir)/sg
+       set -e; for i in $(suidusbins); do \
+               chmod $(suidperms) $(DESTDIR)$(usbindir)/$$i; \
+       done
+-- 
+2.38.1
+

Added: 0002-Adapt-login.defs-for-PAM-and-util-linux.patch
===================================================================
--- 0002-Adapt-login.defs-for-PAM-and-util-linux.patch                          
(rev 0)
+++ 0002-Adapt-login.defs-for-PAM-and-util-linux.patch  2022-11-06 13:07:49 UTC 
(rev 460775)
@@ -0,0 +1,692 @@
+From 07fba2b985f29e49643cb1e543e625f02f218db9 Mon Sep 17 00:00:00 2001
+From: David Runge <[email protected]>
+Date: Mon, 31 Oct 2022 09:45:13 +0100
+Subject: [PATCH 2/4] Adapt login.defs for PAM and util-linux
+
+etc/login.defs:
+Remove unused login.defs options, that are either irrelevant due to the
+use of PAM or because the util-linux version of a binary does not
+support them.
+Modify all options that are ignored when using PAM, but are supported by
+util-linux.
+
+Removed options because they are part of PAMDEFS (options in PAMDEFS are
+options silently ignored by shadow when built with PAM enabled):
+* CHFN_AUTH
+* CRACKLIB_DICTPATH
+* ENV_HZ
+* ENVIRON_FILE
+* ENV_TZ
+* FAILLOG_ENAB
+* FTMP_FILE
+* ISSUE_FILE
+* LASTLOG_ENAB
+* LOGIN_STRING
+* MAIL_CHECK_ENAB
+* NOLOGINS_FILE
+* OBSCURE_CHECKS_ENAB
+* PASS_ALWAYS_WARN
+* PASS_CHANGE_TRIES
+* PASS_MAX_LEN
+* PASS_MIN_LEN
+* PORTTIME_CHECKS_ENAB
+* QUOTAS_ENAB
+* SU_WHEEL_ONLY
+* SYSLOG_SU_ENAB
+* ULIMIT
+
+Removed options because they are not availablbe with PAM enabled:
+* CONSOLE_GROUPS
+* CONSOLE
+* MD5_CRYPT_ENAB
+* PREVENT_NO_AUTH
+
+Removed options because they are not supported by login from util-linux:
+* ERASECHAR
+* KILLCHAR
+* LOG_OK_LOGINS
+* TTYTYPE_FILE
+
+Removed options because they are not supported by su from util-linux:
+* SULOG_FILE
+* SU_NAME
+
+Adapted options because they are in PAMDEFS but are supported by login
+from util-linux:
+* MOTD_FILE
+
+man/login.defs.5.xml:
+Remove unavailable options from man 5 login.defs.
+---
+ etc/login.defs       | 212 +------------------------------------------
+ man/login.defs.5.xml | 150 +-----------------------------
+ 2 files changed, 8 insertions(+), 354 deletions(-)
+
+diff --git a/etc/login.defs b/etc/login.defs
+index 114dbcd9..7c633a57 100644
+--- a/etc/login.defs
++++ b/etc/login.defs
+@@ -3,6 +3,8 @@
+ #
+ #     $Id$
+ #
++# NOTE: This file is adapted for the use on Arch Linux!
++#       Unsupported options due to the use of util-linux or PAM are removed.
+ 
+ #
+ # Delay in seconds before being allowed another attempt after a login failure
+@@ -11,26 +13,11 @@
+ #
+ FAIL_DELAY            3
+ 
+-#
+-# Enable logging and display of /var/log/faillog login(1) failure info.
+-#
+-FAILLOG_ENAB          yes
+-
+ #
+ # Enable display of unknown usernames when login(1) failures are recorded.
+ #
+ LOG_UNKFAIL_ENAB      no
+ 
+-#
+-# Enable logging of successful logins
+-#
+-LOG_OK_LOGINS         no
+-
+-#
+-# Enable logging and display of /var/log/lastlog login(1) time info.
+-#
+-LASTLOG_ENAB          yes
+-
+ #
+ # Limit the highest user ID number for which the lastlog entries should
+ # be updated.
+@@ -40,88 +27,13 @@ LASTLOG_ENAB               yes
+ #
+ #LASTLOG_UID_MAX
+ 
+-#
+-# Enable checking and display of mailbox status upon login.
+-#
+-# Disable if the shell startup files already check for mail
+-# ("mailx -e" or equivalent).
+-#
+-MAIL_CHECK_ENAB               yes
+-
+-#
+-# Enable additional checks upon password changes.
+-#
+-OBSCURE_CHECKS_ENAB   yes
+-
+-#
+-# Enable checking of time restrictions specified in /etc/porttime.
+-#
+-PORTTIME_CHECKS_ENAB  yes
+-
+-#
+-# Enable setting of ulimit, umask, and niceness from passwd(5) gecos field.
+-#
+-QUOTAS_ENAB           yes
+-
+-#
+-# Enable "syslog" logging of su(1) activity - in addition to sulog file 
logging.
+-# SYSLOG_SG_ENAB does the same for newgrp(1) and sg(1).
+-#
+-SYSLOG_SU_ENAB                yes
+-SYSLOG_SG_ENAB                yes
+-
+-#
+-# If defined, either full pathname of a file containing device names or
+-# a ":" delimited list of device names.  Root logins will be allowed only
+-# from these devices.
+-#
+-CONSOLE               /etc/securetty
+-#CONSOLE      console:tty01:tty02:tty03:tty04
+-
+-#
+-# If defined, all su(1) activity is logged to this file.
+-#
+-#SULOG_FILE   /var/log/sulog
+-
+ #
+ # If defined, ":" delimited list of "message of the day" files to
+ # be displayed upon login.
+ #
+-MOTD_FILE     /etc/motd
++MOTD_FILE
+ #MOTD_FILE    /etc/motd:/usr/lib/news/news-motd
+ 
+-#
+-# If defined, this file will be output before each login(1) prompt.
+-#
+-#ISSUE_FILE   /etc/issue
+-
+-#
+-# If defined, file which maps tty line to TERM environment parameter.
+-# Each line of the file is in a format similar to "vt100  tty01".
+-#
+-#TTYTYPE_FILE /etc/ttytype
+-
+-#
+-# If defined, login(1) failures will be logged here in a utmp format.
+-# last(1), when invoked as lastb(1), will read /var/log/btmp, so...
+-#
+-FTMP_FILE     /var/log/btmp
+-
+-#
+-# If defined, name of file whose presence will inhibit non-root
+-# logins.  The content of this file should be a message indicating
+-# why logins are inhibited.
+-#
+-NOLOGINS_FILE /etc/nologin
+-
+-#
+-# If defined, the command name to display when running "su -".  For
+-# example, if this is defined as "su" then ps(1) will display the
+-# command as "-su".  If not defined, then ps(1) will display the
+-# name of the shell actually being run, e.g. something like "-sh".
+-#
+-SU_NAME               su
+-
+ #
+ # *REQUIRED*
+ #   Directory where mailboxes reside, _or_ name of file, relative to the
+@@ -139,21 +51,6 @@ MAIL_DIR   /var/spool/mail
+ HUSHLOGIN_FILE        .hushlogin
+ #HUSHLOGIN_FILE       /etc/hushlogins
+ 
+-#
+-# If defined, either a TZ environment parameter spec or the
+-# fully-rooted pathname of a file containing such a spec.
+-#
+-#ENV_TZ               TZ=CST6CDT
+-#ENV_TZ               /etc/tzname
+-
+-#
+-# If defined, an HZ environment parameter spec.
+-#
+-# for Linux/x86
+-ENV_HZ                HZ=100
+-# For Linux/Alpha...
+-#ENV_HZ               HZ=1024
+-
+ #
+ # *REQUIRED*  The default PATH settings, for superuser and normal users.
+ #
+@@ -175,23 +72,6 @@ ENV_PATH   PATH=/bin:/usr/bin
+ TTYGROUP      tty
+ TTYPERM               0600
+ 
+-#
+-# Login configuration initializations:
+-#
+-#     ERASECHAR       Terminal ERASE character ('\010' = backspace).
+-#     KILLCHAR        Terminal KILL character ('\025' = CTRL/U).
+-#     ULIMIT          Default "ulimit" value.
+-#
+-# The ERASECHAR and KILLCHAR are used only on System V machines.
+-# The ULIMIT is used only if the system supports it.
+-# (now it works with setrlimit too; ulimit is in 512-byte units)
+-#
+-# Prefix these values with "0" to get octal, "0x" to get hexadecimal.
+-#
+-ERASECHAR     0177
+-KILLCHAR      025
+-#ULIMIT               2097152
+-
+ # Default initial "umask" value used by login(1) on non-PAM enabled systems.
+ # Default "umask" value for pam_umask(8) on PAM enabled systems.
+ # UMASK is also used by useradd(8) and newusers(8) to set the mode for new
+@@ -211,27 +91,12 @@ 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.
+-#     PASS_MIN_LEN    Minimum acceptable password length.
+ #     PASS_WARN_AGE   Number of days warning given before a password expires.
+ #
+ PASS_MAX_DAYS 99999
+ PASS_MIN_DAYS 0
+-PASS_MIN_LEN  5
+ PASS_WARN_AGE 7
+ 
+-#
+-# If "yes", the user must be listed as a member of the first gid 0 group
+-# in /etc/group (called "root" on most Linux systems) to be able to "su"
+-# to uid 0 accounts.  If the group doesn't exist or is empty, no one
+-# will be able to "su" to uid 0.
+-#
+-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)
+ #
+@@ -268,28 +133,6 @@ LOGIN_RETRIES             5
+ #
+ LOGIN_TIMEOUT         60
+ 
+-#
+-# Maximum number of attempts to change password if rejected (too easy)
+-#
+-PASS_CHANGE_TRIES     5
+-
+-#
+-# Warn about weak passwords (but still allow them) if you are root.
+-#
+-PASS_ALWAYS_WARN      yes
+-
+-#
+-# Number of significant characters in the password for crypt().
+-# Default is 8, don't change unless your crypt() is better.
+-# Ignored if MD5_CRYPT_ENAB set to "yes".
+-#
+-#PASS_MAX_LEN         8
+-
+-#
+-# Require password before chfn(1)/chsh(1) can make any changes.
+-#
+-CHFN_AUTH             yes
+-
+ #
+ # Which fields may be changed by regular users using chfn(1) - use
+ # any combination of letters "frwh" (full name, room number, work
+@@ -298,38 +141,14 @@ CHFN_AUTH                yes
+ #
+ CHFN_RESTRICT         rwh
+ 
+-#
+-# Password prompt (%s will be replaced by user name).
+-#
+-# XXX - it doesn't work correctly yet, for now leave it commented out
+-# to use the default which is just "Password: ".
+-#LOGIN_STRING         "%s's Password: "
+-
+-#
+-# 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.
+-# It supports passwords of unlimited length and longer salt strings.
+-# Set to "no" if you need to copy encrypted passwords to other systems
+-# which don't understand the new algorithm.  Default is "no".
+-#
+-# Note: If you use PAM, it is recommended to use a value consistent with
+-# the PAM modules configuration.
+-#
+-# This variable is deprecated. You should use ENCRYPT_METHOD instead.
+-#
+-#MD5_CRYPT_ENAB       no
+-
+ #
+ # Only works if compiled with ENCRYPTMETHOD_SELECT defined:
+-# If set to MD5, MD5-based algorithm will be used for encrypting password
+ # If set to SHA256, SHA256-based algorithm will be used for encrypting 
password
+ # If set to SHA512, SHA512-based algorithm will be used for encrypting 
password
+ # If set to BCRYPT, BCRYPT-based algorithm will be used for encrypting 
password
+ # If set to YESCRYPT, YESCRYPT-based algorithm will be used for encrypting 
password
+ # If set to DES, DES-based algorithm will be used for encrypting password 
(default)
+ # MD5 and DES should not be used for new hashes, see crypt(5) for 
recommendations.
+-# Overrides the MD5_CRYPT_ENAB option
+ #
+ # Note: If you use PAM, it is recommended to use a value consistent with
+ # the PAM modules configuration.
+@@ -381,17 +200,6 @@ CHFN_RESTRICT             rwh
+ #
+ #YESCRYPT_COST_FACTOR 5
+ 
+-#
+-# List of groups to add to the user's supplementary group set
+-# when logging in from the console (as determined by the CONSOLE
+-# setting).  Default is none.
+-#
+-# Use with caution - it is possible for users to gain permanent
+-# access to these groups, even when not logged in from the console.
+-# How to do it is left as an exercise for the reader...
+-#
+-#CONSOLE_GROUPS               floppy:audio:cdrom
+-
+ #
+ # Should login be allowed if we can't cd to the home directory?
+ # Default is no.
+@@ -406,12 +214,6 @@ DEFAULT_HOME      yes
+ #
+ NONEXISTENT   /nonexistent
+ 
+-#
+-# If this file exists and is readable, login environment will be
+-# read from it.  Every line should be in the form name=value.
+-#
+-ENVIRON_FILE  /etc/environment
+-
+ #
+ # If defined, this command is run when removing a user.
+ # It should remove any at/cron/print jobs etc. owned by
+@@ -459,14 +261,6 @@ USERGROUPS_ENAB yes
+ #
+ #GRANT_AUX_GROUP_SUBIDS yes
+ 
+-#
+-# Prevents an empty password field to be interpreted as "no authentication
+-# required".
+-# Set to "yes" to prevent for all accounts
+-# Set to "superuser" to prevent for UID 0 / root (default)
+-# Set to "no" to not prevent for any account (dangerous, historical default)
+-PREVENT_NO_AUTH superuser
+-
+ #
+ # Select the HMAC cryptography algorithm.
+ # Used in pam_timestamp module to calculate the keyed-hash message
+diff --git a/man/login.defs.5.xml b/man/login.defs.5.xml
+index ab62fa86..d82c47f1 100644
+--- a/man/login.defs.5.xml
++++ b/man/login.defs.5.xml
+@@ -7,69 +7,38 @@
+ -->
+ <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.5//EN" 
+   "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"; [
+-<!ENTITY CHFN_AUTH             SYSTEM "login.defs.d/CHFN_AUTH.xml">
+ <!ENTITY CHFN_RESTRICT         SYSTEM "login.defs.d/CHFN_RESTRICT.xml">
+-<!ENTITY CHSH_AUTH             SYSTEM "login.defs.d/CHSH_AUTH.xml">
+-<!ENTITY CONSOLE               SYSTEM "login.defs.d/CONSOLE.xml">
+-<!ENTITY CONSOLE_GROUPS        SYSTEM "login.defs.d/CONSOLE_GROUPS.xml">
+ <!ENTITY CREATE_HOME           SYSTEM "login.defs.d/CREATE_HOME.xml">
+ <!ENTITY DEFAULT_HOME          SYSTEM "login.defs.d/DEFAULT_HOME.xml">
+ <!ENTITY ENCRYPT_METHOD        SYSTEM "login.defs.d/ENCRYPT_METHOD.xml">
+-<!ENTITY ENV_HZ                SYSTEM "login.defs.d/ENV_HZ.xml">
+ <!ENTITY ENV_PATH              SYSTEM "login.defs.d/ENV_PATH.xml">
+ <!ENTITY ENV_SUPATH            SYSTEM "login.defs.d/ENV_SUPATH.xml">
+-<!ENTITY ENV_TZ                SYSTEM "login.defs.d/ENV_TZ.xml">
+-<!ENTITY ENVIRON_FILE          SYSTEM "login.defs.d/ENVIRON_FILE.xml">
+-<!ENTITY ERASECHAR             SYSTEM "login.defs.d/ERASECHAR.xml">
+ <!ENTITY FAIL_DELAY            SYSTEM "login.defs.d/FAIL_DELAY.xml">
+-<!ENTITY FAILLOG_ENAB          SYSTEM "login.defs.d/FAILLOG_ENAB.xml">
+-<!ENTITY FAKE_SHELL            SYSTEM "login.defs.d/FAKE_SHELL.xml">
+-<!ENTITY FTMP_FILE             SYSTEM "login.defs.d/FTMP_FILE.xml">
+ <!ENTITY GID_MAX               SYSTEM "login.defs.d/GID_MAX.xml">
+ <!ENTITY HMAC_CRYPTO_ALGO      SYSTEM "login.defs.d/HMAC_CRYPTO_ALGO.xml">
+ <!ENTITY HOME_MODE             SYSTEM "login.defs.d/HOME_MODE.xml">
+ <!ENTITY HUSHLOGIN_FILE        SYSTEM "login.defs.d/HUSHLOGIN_FILE.xml">
+-<!ENTITY ISSUE_FILE            SYSTEM "login.defs.d/ISSUE_FILE.xml">
+-<!ENTITY KILLCHAR              SYSTEM "login.defs.d/KILLCHAR.xml">
+-<!ENTITY LASTLOG_ENAB          SYSTEM "login.defs.d/LASTLOG_ENAB.xml">
+ <!ENTITY LASTLOG_UID_MAX       SYSTEM "login.defs.d/LASTLOG_UID_MAX.xml">
+-<!ENTITY LOG_OK_LOGINS         SYSTEM "login.defs.d/LOG_OK_LOGINS.xml">
+ <!ENTITY LOG_UNKFAIL_ENAB      SYSTEM "login.defs.d/LOG_UNKFAIL_ENAB.xml">
+ <!ENTITY LOGIN_RETRIES         SYSTEM "login.defs.d/LOGIN_RETRIES.xml">
+-<!ENTITY LOGIN_STRING          SYSTEM "login.defs.d/LOGIN_STRING.xml">
+ <!ENTITY LOGIN_TIMEOUT         SYSTEM "login.defs.d/LOGIN_TIMEOUT.xml">
+-<!ENTITY MAIL_CHECK_ENAB       SYSTEM "login.defs.d/MAIL_CHECK_ENAB.xml">
+ <!ENTITY MAIL_DIR              SYSTEM "login.defs.d/MAIL_DIR.xml">
+ <!ENTITY MAX_MEMBERS_PER_GROUP SYSTEM 
"login.defs.d/MAX_MEMBERS_PER_GROUP.xml">
+-<!ENTITY MD5_CRYPT_ENAB        SYSTEM "login.defs.d/MD5_CRYPT_ENAB.xml">
+ <!ENTITY MOTD_FILE             SYSTEM "login.defs.d/MOTD_FILE.xml">
+-<!ENTITY NOLOGINS_FILE         SYSTEM "login.defs.d/NOLOGINS_FILE.xml">
+ <!ENTITY NONEXISTENT           SYSTEM "login.defs.d/NONEXISTENT.xml">
+-<!ENTITY OBSCURE_CHECKS_ENAB   SYSTEM "login.defs.d/OBSCURE_CHECKS_ENAB.xml">
+-<!ENTITY PASS_ALWAYS_WARN      SYSTEM "login.defs.d/PASS_ALWAYS_WARN.xml">
+-<!ENTITY PASS_CHANGE_TRIES     SYSTEM "login.defs.d/PASS_CHANGE_TRIES.xml">
+-<!ENTITY PASS_MAX_LEN          SYSTEM "login.defs.d/PASS_MAX_LEN.xml">
+ <!ENTITY PASS_MAX_DAYS         SYSTEM "login.defs.d/PASS_MAX_DAYS.xml">
+ <!ENTITY PASS_MIN_DAYS         SYSTEM "login.defs.d/PASS_MIN_DAYS.xml">
+ <!ENTITY PASS_WARN_AGE         SYSTEM "login.defs.d/PASS_WARN_AGE.xml">
+-<!ENTITY PORTTIME_CHECKS_ENAB  SYSTEM "login.defs.d/PORTTIME_CHECKS_ENAB.xml">
+-<!ENTITY QUOTAS_ENAB           SYSTEM "login.defs.d/QUOTAS_ENAB.xml">
+ <!ENTITY SHA_CRYPT_MIN_ROUNDS  SYSTEM "login.defs.d/SHA_CRYPT_MIN_ROUNDS.xml">
+-<!ENTITY SULOG_FILE            SYSTEM "login.defs.d/SULOG_FILE.xml">
+-<!ENTITY SU_NAME               SYSTEM "login.defs.d/SU_NAME.xml">
+-<!ENTITY SU_WHEEL_ONLY         SYSTEM "login.defs.d/SU_WHEEL_ONLY.xml">
+ <!ENTITY SUB_GID_COUNT         SYSTEM "login.defs.d/SUB_GID_COUNT.xml">
+ <!ENTITY SUB_UID_COUNT         SYSTEM "login.defs.d/SUB_UID_COUNT.xml">
+ <!ENTITY SYS_GID_MAX           SYSTEM "login.defs.d/SYS_GID_MAX.xml">
+ <!ENTITY SYSLOG_SG_ENAB        SYSTEM "login.defs.d/SYSLOG_SG_ENAB.xml">
+-<!ENTITY SYSLOG_SU_ENAB        SYSTEM "login.defs.d/SYSLOG_SU_ENAB.xml">
+ <!ENTITY SYS_UID_MAX           SYSTEM "login.defs.d/SYS_UID_MAX.xml">
+ <!ENTITY TCB_AUTH_GROUP        SYSTEM "login.defs.d/TCB_AUTH_GROUP.xml">
+ <!ENTITY TCB_SYMLINKS          SYSTEM "login.defs.d/TCB_SYMLINKS.xml">
+ <!ENTITY TTYGROUP              SYSTEM "login.defs.d/TTYGROUP.xml">
+-<!ENTITY TTYTYPE_FILE          SYSTEM "login.defs.d/TTYTYPE_FILE.xml">
+ <!ENTITY UID_MAX               SYSTEM "login.defs.d/UID_MAX.xml">
+-<!ENTITY ULIMIT                SYSTEM "login.defs.d/ULIMIT.xml">
+ <!ENTITY UMASK                 SYSTEM "login.defs.d/UMASK.xml">
+ <!ENTITY USERDEL_CMD           SYSTEM "login.defs.d/USERDEL_CMD.xml">
+ <!ENTITY USERGROUPS_ENAB       SYSTEM "login.defs.d/USERGROUPS_ENAB.xml">
+@@ -145,47 +114,25 @@
+     <para>The following configuration items are provided:</para>
+ 
+     <variablelist remap='IP'>
+-      &CHFN_AUTH;
+       &CHFN_RESTRICT;
+-      &CHSH_AUTH;
+-      &CONSOLE;
+-      &CONSOLE_GROUPS;
+       &CREATE_HOME;
+       &DEFAULT_HOME;
+       &ENCRYPT_METHOD;
+-      &ENV_HZ;
+       &ENV_PATH;
+       &ENV_SUPATH;
+-      &ENV_TZ;
+-      &ENVIRON_FILE;
+-      &ERASECHAR;
+       &FAIL_DELAY;
+-      &FAILLOG_ENAB;
+-      &FAKE_SHELL;
+-      &FTMP_FILE;
+       &GID_MAX; <!-- documents also GID_MIN -->
+       &HMAC_CRYPTO_ALGO;
+       &HOME_MODE;
+       &HUSHLOGIN_FILE;
+-      &ISSUE_FILE;
+-      &KILLCHAR;
+-      &LASTLOG_ENAB;
+       &LASTLOG_UID_MAX;
+-      &LOG_OK_LOGINS;
+       &LOG_UNKFAIL_ENAB;
+       &LOGIN_RETRIES;
+-      &LOGIN_STRING;
+       &LOGIN_TIMEOUT;
+-      &MAIL_CHECK_ENAB;
+       &MAIL_DIR;
+       &MAX_MEMBERS_PER_GROUP;
+-      &MD5_CRYPT_ENAB;
+       &MOTD_FILE;
+-      &NOLOGINS_FILE;
+       &NONEXISTENT;
+-      &OBSCURE_CHECKS_ENAB;
+-      &PASS_ALWAYS_WARN;
+-      &PASS_CHANGE_TRIES;
+       &PASS_MAX_DAYS;
+       &PASS_MIN_DAYS;
+       &PASS_WARN_AGE;
+@@ -195,25 +142,16 @@
+         time of account creation. Any changes to these settings won't affect
+         existing accounts.
+       </para>
+-      &PASS_MAX_LEN; <!-- documents also PASS_MIN_LEN -->
+-      &PORTTIME_CHECKS_ENAB;
+-      &QUOTAS_ENAB;
+       &SHA_CRYPT_MIN_ROUNDS; <!-- documents also SHA_CRYPT_MAX_ROUNDS -->
+-      &SULOG_FILE;
+-      &SU_NAME;
+-      &SU_WHEEL_ONLY;
+       &SUB_GID_COUNT; <!-- documents also SUB_GID_MIN SUB_GID_MAX -->
+       &SUB_UID_COUNT; <!-- documents also SUB_UID_MIN SUB_UID_MAX -->
+       &SYS_GID_MAX; <!-- documents also SYS_GID_MIN -->
+       &SYS_UID_MAX; <!-- documents also SYS_UID_MIN -->
+       &SYSLOG_SG_ENAB;
+-      &SYSLOG_SU_ENAB;
+       &TCB_AUTH_GROUP;
+       &TCB_SYMLINKS;
+       &TTYGROUP;
+-      &TTYTYPE_FILE;
+       &UID_MAX; <!-- documents also UID_MIN -->
+-      &ULIMIT;
+       &UMASK;
+       &USERDEL_CMD;
+       &USERGROUPS_ENAB;
+@@ -239,9 +177,7 @@
+       <term>chfn</term>
+       <listitem>
+         <para>
+-          <phrase condition="no_pam">CHFN_AUTH</phrase>
+           CHFN_RESTRICT
+-          <phrase condition="no_pam">LOGIN_STRING</phrase>
+         </para>
+       </listitem>
+       </varlistentry>
+@@ -249,7 +185,7 @@
+       <term>chgpasswd</term>
+       <listitem>
+         <para>
+-          ENCRYPT_METHOD MAX_MEMBERS_PER_GROUP MD5_CRYPT_ENAB
++          ENCRYPT_METHOD MAX_MEMBERS_PER_GROUP
+           <phrase condition="sha_crypt">SHA_CRYPT_MAX_ROUNDS
+           SHA_CRYPT_MIN_ROUNDS</phrase>
+         </para>
+@@ -259,8 +195,6 @@
+       <term>chpasswd</term>
+       <listitem>
+         <para>
+-          <phrase condition="no_pam">ENCRYPT_METHOD
+-          MD5_CRYPT_ENAB </phrase>
+           <phrase condition="sha_crypt">SHA_CRYPT_MAX_ROUNDS
+           SHA_CRYPT_MIN_ROUNDS</phrase>
+         </para>
+@@ -270,7 +204,7 @@
+       <term>chsh</term>
+       <listitem>
+         <para>
+-          CHSH_AUTH LOGIN_STRING
++          CHSH_AUTH
+         </para>
+       </listitem>
+       </varlistentry>
+@@ -280,7 +214,7 @@
+       <term>gpasswd</term>
+       <listitem>
+         <para>
+-          ENCRYPT_METHOD MAX_MEMBERS_PER_GROUP MD5_CRYPT_ENAB
++          ENCRYPT_METHOD MAX_MEMBERS_PER_GROUP
+           <phrase condition="sha_crypt">SHA_CRYPT_MAX_ROUNDS
+           SHA_CRYPT_MIN_ROUNDS</phrase>
+         </para>
+@@ -339,35 +273,6 @@
+         <para>LASTLOG_UID_MAX</para>
+       </listitem>
+       </varlistentry>
+-      <varlistentry>
+-      <term>login</term>
+-      <listitem>
+-        <para>
+-          <phrase condition="no_pam">CONSOLE</phrase>
+-          CONSOLE_GROUPS DEFAULT_HOME
+-          <phrase condition="no_pam">ENV_HZ ENV_PATH ENV_SUPATH
+-          ENV_TZ ENVIRON_FILE</phrase>
+-          ERASECHAR FAIL_DELAY
+-          <phrase condition="no_pam">FAILLOG_ENAB</phrase>
+-          FAKE_SHELL
+-          <phrase condition="no_pam">FTMP_FILE</phrase>
+-          HUSHLOGIN_FILE
+-          <phrase condition="no_pam">ISSUE_FILE</phrase>
+-          KILLCHAR
+-          <phrase condition="no_pam">LASTLOG_ENAB LASTLOG_UID_MAX</phrase>
+-          LOGIN_RETRIES
+-          <phrase condition="no_pam">LOGIN_STRING</phrase>
+-          LOGIN_TIMEOUT LOG_OK_LOGINS LOG_UNKFAIL_ENAB
+-          <phrase condition="no_pam">MAIL_CHECK_ENAB MAIL_DIR MAIL_FILE
+-          MOTD_FILE NOLOGINS_FILE PORTTIME_CHECKS_ENAB
+-          QUOTAS_ENAB</phrase>
+-          TTYGROUP TTYPERM TTYTYPE_FILE
+-          <phrase condition="no_pam">ULIMIT UMASK</phrase>
+-          USERGROUPS_ENAB
+-        </para>
+-      </listitem>
+-      </varlistentry>
+-      <!-- logoutd: no variables -->
+       <varlistentry>
+       <term>newgrp / sg</term>
+       <listitem>
+@@ -382,7 +287,7 @@
+         <para>
+           ENCRYPT_METHOD
+           GID_MAX GID_MIN
+-          MAX_MEMBERS_PER_GROUP MD5_CRYPT_ENAB
++          MAX_MEMBERS_PER_GROUP
+           HOME_MODE
+           PASS_MAX_DAYS PASS_MIN_DAYS PASS_WARN_AGE
+           <phrase condition="sha_crypt">SHA_CRYPT_MAX_ROUNDS
+@@ -399,8 +304,7 @@
+       <term>passwd</term>
+       <listitem>
+         <para>
+-          ENCRYPT_METHOD MD5_CRYPT_ENAB OBSCURE_CHECKS_ENAB
+-          PASS_ALWAYS_WARN PASS_CHANGE_TRIES PASS_MAX_LEN PASS_MIN_LEN
++          ENCRYPT_METHOD
+           <phrase condition="sha_crypt">SHA_CRYPT_MAX_ROUNDS
+           SHA_CRYPT_MIN_ROUNDS</phrase>
+         </para>
+@@ -432,32 +336,6 @@
+         </para>
+       </listitem>
+       </varlistentry>
+-      <varlistentry>
+-      <term>su</term>
+-      <listitem>
+-        <para>
+-          <phrase condition="no_pam">CONSOLE</phrase>
+-          CONSOLE_GROUPS DEFAULT_HOME
+-          <phrase condition="no_pam">ENV_HZ ENVIRON_FILE</phrase>
+-          ENV_PATH ENV_SUPATH
+-          <phrase condition="no_pam">ENV_TZ LOGIN_STRING MAIL_CHECK_ENAB
+-          MAIL_DIR MAIL_FILE QUOTAS_ENAB</phrase>
+-          SULOG_FILE SU_NAME
+-          <phrase condition="no_pam">SU_WHEEL_ONLY</phrase>
+-          SYSLOG_SU_ENAB
+-          <phrase condition="no_pam">USERGROUPS_ENAB</phrase>
+-        </para>
+-      </listitem>
+-      </varlistentry>
+-      <varlistentry>
+-      <term>sulogin</term>
+-      <listitem>
+-        <para>
+-          ENV_HZ
+-          <phrase condition="no_pam">ENV_TZ</phrase>
+-        </para>
+-      </listitem>
+-      </varlistentry>
+       <varlistentry>
+       <term>useradd</term>
+       <listitem>
+@@ -486,24 +364,6 @@
+         </para>
+       </listitem>
+       </varlistentry>
+-      <varlistentry>
+-      <term>usermod</term>
+-      <listitem>
+-        <para>
+-          LASTLOG_UID_MAX
+-          MAIL_DIR MAIL_FILE MAX_MEMBERS_PER_GROUP
+-          <phrase condition="tcb">TCB_SYMLINKS USE_TCB</phrase>
+-        </para>
+-      </listitem>
+-      </varlistentry>
+-      <varlistentry condition="tcb">
+-      <term>vipw</term>
+-      <listitem>
+-        <para>
+-          <phrase condition="tcb">USE_TCB</phrase>
+-        </para>
+-      </listitem>
+-      </varlistentry>
+     </variablelist>
+   </refsect1>
+ 
+-- 
+2.38.1
+

Added: 0003-Add-Arch-Linux-defaults-for-login.defs.patch
===================================================================
--- 0003-Add-Arch-Linux-defaults-for-login.defs.patch                           
(rev 0)
+++ 0003-Add-Arch-Linux-defaults-for-login.defs.patch   2022-11-06 13:07:49 UTC 
(rev 460775)
@@ -0,0 +1,73 @@
+From ea4efaa94e473474b9cba0d38de414c9e4cbca69 Mon Sep 17 00:00:00 2001
+From: David Runge <[email protected]>
+Date: Mon, 31 Oct 2022 10:10:22 +0100
+Subject: [PATCH 3/4] Add Arch Linux defaults for login.defs
+
+etc/login.defs:
+Change ENV_SUPATH and ENV_SUPATH to only use
+/usr/local/sbin:/usr/local/bin:/usr/bin as Arch Linux is a /usr merge
+and bin merge distribution.
+Change UMASK to 077 as it is considered a more privacy conserving
+default than 022.
+Change SYS_UID_MIN and SYS_GID_MIN to 500 which gives more space for
+distribution added UIDs and GIDs.
+Change ENCRYPT_METHOD to SHA512 as it is a safer hashing algorithm than
+DES.
+---
+ etc/login.defs | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/etc/login.defs b/etc/login.defs
+index 7c633a57..ea841257 100644
+--- a/etc/login.defs
++++ b/etc/login.defs
+@@ -55,8 +55,8 @@ HUSHLOGIN_FILE       .hushlogin
+ # *REQUIRED*  The default PATH settings, for superuser and normal users.
+ #
+ # (they are minimal, add the rest in the shell startup files)
+-ENV_SUPATH    PATH=/sbin:/bin:/usr/sbin:/usr/bin
+-ENV_PATH      PATH=/bin:/usr/bin
++ENV_SUPATH    PATH=/usr/local/sbin:/usr/local/bin:/usr/bin
++ENV_PATH      PATH=/usr/local/sbin:/usr/local/bin:/usr/bin
+ 
+ #
+ # Terminal permissions
+@@ -79,7 +79,7 @@ TTYPERM              0600
+ # 022 is the default value, but 027, or even 077, could be considered
+ # for increased privacy. There is no One True Answer here: each sysadmin
+ # must make up their mind.
+-UMASK         022
++UMASK         077
+ 
+ # HOME_MODE is used by useradd(8) and newusers(8) to set the mode for new
+ # home directories.
+@@ -103,7 +103,7 @@ PASS_WARN_AGE      7
+ UID_MIN                        1000
+ UID_MAX                       60000
+ # System accounts
+-SYS_UID_MIN             101
++SYS_UID_MIN             500
+ SYS_UID_MAX             999
+ # Extra per user uids
+ SUB_UID_MIN              100000
+@@ -116,7 +116,7 @@ SUB_UID_COUNT                  65536
+ GID_MIN                        1000
+ GID_MAX                       60000
+ # System accounts
+-SYS_GID_MIN             101
++SYS_GID_MIN             500
+ SYS_GID_MAX             999
+ # Extra per user group ids
+ SUB_GID_MIN              100000
+@@ -153,7 +153,7 @@ CHFN_RESTRICT              rwh
+ # Note: If you use PAM, it is recommended to use a value consistent with
+ # the PAM modules configuration.
+ #
+-#ENCRYPT_METHOD DES
++ENCRYPT_METHOD SHA512
+ 
+ #
+ # Only works if ENCRYPT_METHOD is set to SHA256 or SHA512.
+-- 
+2.38.1
+

Added: 0004-Add-Arch-Linux-defaults-for-etc-pam.d.patch
===================================================================
--- 0004-Add-Arch-Linux-defaults-for-etc-pam.d.patch                            
(rev 0)
+++ 0004-Add-Arch-Linux-defaults-for-etc-pam.d.patch    2022-11-06 13:07:49 UTC 
(rev 460775)
@@ -0,0 +1,201 @@
+From 440f7bcaad147729629640ddb06bc9e82f173efc Mon Sep 17 00:00:00 2001
+From: David Runge <[email protected]>
+Date: Sat, 5 Nov 2022 22:52:58 +0100
+Subject: [PATCH 4/4] Add Arch Linux defaults for /etc/pam.d/
+
+etc/pam.d/Makefile.am:
+Disable chfn, chsh and login.
+Enable shadow.
+Always install the PAM integration for the account tools (even if they
+are not setuid).
+
+etc/pam.d/{chage,chpasswd,group{add,del,mod},newusers,passwd,shadow,user{add,del,mod}}:
+Add distribution defaults for Arch Linux.
+
+s
+---
+ etc/pam.d/Makefile.am | 7 ++-----
+ etc/pam.d/chage       | 6 ++++--
+ etc/pam.d/chpasswd    | 6 ++++--
+ etc/pam.d/groupadd    | 6 ++++--
+ etc/pam.d/groupdel    | 6 ++++--
+ etc/pam.d/groupmod    | 6 ++++--
+ etc/pam.d/newusers    | 6 ++++--
+ etc/pam.d/passwd      | 4 +---
+ etc/pam.d/shadow      | 6 ++++++
+ etc/pam.d/useradd     | 6 ++++--
+ etc/pam.d/userdel     | 6 ++++--
+ etc/pam.d/usermod     | 6 ++++--
+ 12 files changed, 45 insertions(+), 26 deletions(-)
+ create mode 100644 etc/pam.d/shadow
+
+diff --git a/etc/pam.d/Makefile.am b/etc/pam.d/Makefile.am
+index 38ff26ae..41e43e01 100644
+--- a/etc/pam.d/Makefile.am
++++ b/etc/pam.d/Makefile.am
+@@ -2,10 +2,8 @@
+ # and also cooperate to make a distribution for `make dist'
+ 
+ pamd_files = \
+-      chfn \
+-      chsh \
+       groupmems \
+-      login \
++      shadow \
+       passwd
+ 
+ pamd_acct_tools_files = \
+@@ -23,10 +21,9 @@ pamd_acct_tools_files = \
+ if USE_PAM
+ pamddir = $(sysconfdir)/pam.d
+ pamd_DATA = $(pamd_files)
+-if ACCT_TOOLS_SETUID
++# NOTE: we are always installing the PAM integration for the account tools
+ pamd_DATA += $(pamd_acct_tools_files)
+ endif
+-endif
+ 
+ if WITH_SU
+ pamd_files += su
+diff --git a/etc/pam.d/chage b/etc/pam.d/chage
+index 8f49f5cc..a7bf8a4a 100644
+--- a/etc/pam.d/chage
++++ b/etc/pam.d/chage
+@@ -1,4 +1,6 @@
+ #%PAM-1.0
+ auth          sufficient      pam_rootok.so
+-account               required        pam_permit.so
+-password      include         system-auth
++auth          required        pam_unix.so
++account               required        pam_unix.so
++session               required        pam_unix.so
++password      required        pam_permit.so
+diff --git a/etc/pam.d/chpasswd b/etc/pam.d/chpasswd
+index 8f49f5cc..5d447985 100644
+--- a/etc/pam.d/chpasswd
++++ b/etc/pam.d/chpasswd
+@@ -1,4 +1,6 @@
+ #%PAM-1.0
+ auth          sufficient      pam_rootok.so
+-account               required        pam_permit.so
+-password      include         system-auth
++auth          required        pam_unix.so
++account               required        pam_unix.so
++session               required        pam_unix.so
++password      required        pam_unix.so sha512 shadow
+diff --git a/etc/pam.d/groupadd b/etc/pam.d/groupadd
+index 8f49f5cc..a7bf8a4a 100644
+--- a/etc/pam.d/groupadd
++++ b/etc/pam.d/groupadd
+@@ -1,4 +1,6 @@
+ #%PAM-1.0
+ auth          sufficient      pam_rootok.so
+-account               required        pam_permit.so
+-password      include         system-auth
++auth          required        pam_unix.so
++account               required        pam_unix.so
++session               required        pam_unix.so
++password      required        pam_permit.so
+diff --git a/etc/pam.d/groupdel b/etc/pam.d/groupdel
+index 8f49f5cc..a7bf8a4a 100644
+--- a/etc/pam.d/groupdel
++++ b/etc/pam.d/groupdel
+@@ -1,4 +1,6 @@
+ #%PAM-1.0
+ auth          sufficient      pam_rootok.so
+-account               required        pam_permit.so
+-password      include         system-auth
++auth          required        pam_unix.so
++account               required        pam_unix.so
++session               required        pam_unix.so
++password      required        pam_permit.so
+diff --git a/etc/pam.d/groupmod b/etc/pam.d/groupmod
+index 8f49f5cc..a7bf8a4a 100644
+--- a/etc/pam.d/groupmod
++++ b/etc/pam.d/groupmod
+@@ -1,4 +1,6 @@
+ #%PAM-1.0
+ auth          sufficient      pam_rootok.so
+-account               required        pam_permit.so
+-password      include         system-auth
++auth          required        pam_unix.so
++account               required        pam_unix.so
++session               required        pam_unix.so
++password      required        pam_permit.so
+diff --git a/etc/pam.d/newusers b/etc/pam.d/newusers
+index 8f49f5cc..5d447985 100644
+--- a/etc/pam.d/newusers
++++ b/etc/pam.d/newusers
+@@ -1,4 +1,6 @@
+ #%PAM-1.0
+ auth          sufficient      pam_rootok.so
+-account               required        pam_permit.so
+-password      include         system-auth
++auth          required        pam_unix.so
++account               required        pam_unix.so
++session               required        pam_unix.so
++password      required        pam_unix.so sha512 shadow
+diff --git a/etc/pam.d/passwd b/etc/pam.d/passwd
+index 731c0d36..08d819b2 100644
+--- a/etc/pam.d/passwd
++++ b/etc/pam.d/passwd
+@@ -1,4 +1,2 @@
+ #%PAM-1.0
+-auth          include         system-auth
+-account               include         system-auth
+-password      include         system-auth
++password      required        pam_unix.so sha512 shadow nullok
+diff --git a/etc/pam.d/shadow b/etc/pam.d/shadow
+new file mode 100644
+index 00000000..a7bf8a4a
+--- /dev/null
++++ b/etc/pam.d/shadow
+@@ -0,0 +1,6 @@
++#%PAM-1.0
++auth          sufficient      pam_rootok.so
++auth          required        pam_unix.so
++account               required        pam_unix.so
++session               required        pam_unix.so
++password      required        pam_permit.so
+diff --git a/etc/pam.d/useradd b/etc/pam.d/useradd
+index 8f49f5cc..a7bf8a4a 100644
+--- a/etc/pam.d/useradd
++++ b/etc/pam.d/useradd
+@@ -1,4 +1,6 @@
+ #%PAM-1.0
+ auth          sufficient      pam_rootok.so
+-account               required        pam_permit.so
+-password      include         system-auth
++auth          required        pam_unix.so
++account               required        pam_unix.so
++session               required        pam_unix.so
++password      required        pam_permit.so
+diff --git a/etc/pam.d/userdel b/etc/pam.d/userdel
+index 8f49f5cc..a7bf8a4a 100644
+--- a/etc/pam.d/userdel
++++ b/etc/pam.d/userdel
+@@ -1,4 +1,6 @@
+ #%PAM-1.0
+ auth          sufficient      pam_rootok.so
+-account               required        pam_permit.so
+-password      include         system-auth
++auth          required        pam_unix.so
++account               required        pam_unix.so
++session               required        pam_unix.so
++password      required        pam_permit.so
+diff --git a/etc/pam.d/usermod b/etc/pam.d/usermod
+index 8f49f5cc..a7bf8a4a 100644
+--- a/etc/pam.d/usermod
++++ b/etc/pam.d/usermod
+@@ -1,4 +1,6 @@
+ #%PAM-1.0
+ auth          sufficient      pam_rootok.so
+-account               required        pam_permit.so
+-password      include         system-auth
++auth          required        pam_unix.so
++account               required        pam_unix.so
++session               required        pam_unix.so
++password      required        pam_permit.so
+-- 
+2.38.1
+

Modified: PKGBUILD
===================================================================
--- PKGBUILD    2022-11-06 12:16:41 UTC (rev 460774)
+++ PKGBUILD    2022-11-06 13:07:49 UTC (rev 460775)
@@ -4,7 +4,7 @@
 
 pkgname=shadow
 pkgver=4.11.1
-pkgrel=3
+pkgrel=4
 pkgdesc="Password and account management tool suite with support for shadow 
files and PAM"
 arch=(x86_64)
 url="https://github.com/shadow-maint/shadow";
@@ -17,7 +17,7 @@
   libxcrypt libcrypt.so
   pam libpam.so libpam_misc.so
 )
-makedepends=(libcap)
+makedepends=(docbook-xsl git itstool libcap libxslt)
 backup=(
   etc/default/useradd
   etc/login.defs
@@ -24,66 +24,73 @@
   
etc/pam.d/{chage,{,ch,chg}passwd,group{add,del,mems,mod},newusers,shadow,user{add,del,mod}}
 )
 options=(debug !emptydirs)
+# NOTE: distribution patches are taken from 
https://gitlab.archlinux.org/archlinux/packaging/upstream/shadow/-/commits/v4.11.1.arch2
 source=(
   
https://github.com/shadow-maint/shadow/releases/download/v$pkgver/shadow-$pkgver.tar.xz{,.asc}
-  chgpasswd
-  chpasswd
-  defaults.pam
-  newusers
-  passwd
+  0001-Disable-replaced-tools-and-man-pages.patch
+  0002-Adapt-login.defs-for-PAM-and-util-linux.patch
+  0003-Add-Arch-Linux-defaults-for-login.defs.patch
+  0004-Add-Arch-Linux-defaults-for-etc-pam.d.patch
   shadow.{timer,service}
   useradd.defaults
-  $pkgname-4.11.1-login.defs.patch
 )
 
sha512sums=('12fbe4d6ac929ad3c21525ed0f1026b5b678ccec9762f2ec7e611d9c180934def506325f2835fb750dd30af035b592f827ff151cd6e4c805aaaf8e01425c279f'
             'SKIP'
-            
'aef316f283a0ba0387afd5bd049b20d748dcfe8aebc5f5ea1ce1308167d6a578ae7d0007a5ed4d9862de7d377851edd2c8771e1fb1076262468078c2c76e42fc'
-            
'dc75dfeafa901f9988176b82ef9db5d927dfe687a72ca36ca13ba3e7ac1b0c8055db1104373f2a7ac463e156f079cbc1f0a9f5e6e16b9f74153eb63dcb8f96df'
-            
'41c856d893c4157b158d79341fe2b1892be463e17f7a007f1c17397b5625c1d2d5671bc0b37879064ae715a918fb9b05c32d18d1aaa64284cddd8ecbda9b2434'
-            
'dc75dfeafa901f9988176b82ef9db5d927dfe687a72ca36ca13ba3e7ac1b0c8055db1104373f2a7ac463e156f079cbc1f0a9f5e6e16b9f74153eb63dcb8f96df'
-            
'4fb7474ea9dedf86e4c65bf18f503a6d8c00d477a7c32be3cfdfd026bd62ef866d009c50e5a2dc2101bea332c5697bc1e0d55225f39c83252860f5b9b7461aeb'
+            
'495edd2eb2c6ed36121fd5a73e112e5a7c7c15b10c00fc5cf31c8c8671a2317581f9d4468871b69d8302e18decf91e0ed4c37ea875e00a83a3bc14e7edcdd168'
+            
'f6c6ecf958714df3dd74cfef3e33f6d8def82645fdccbed034e330eeffe87a54491e774a237b18fb097695ed9314bb29f7ca39d8d93e642557f558daa0d0e9c3'
+            
'9aaddc6919b513adff5e07ba9f4cfefe294aa98ba60274d90cf56ba4bb0df8f4205e04aa7752bcd830d48d96bd30e4640a10cdaf1bb8472e87e1d4b67a313eb9'
+            
'a3d39d452a8ad51e8801be09f54b11ee18c1d8b1625c78e190b649923429c98ad6f06237a1fbfb2ccabbd8656dd46419444bf2b51bf433e3d89f14d9e2723270'
             
'e4edf705dd04e088c6b561713eaa1afeb92f42ac13722bff037aede6ac5ad7d4d00828cfb677f7b1ff048db8b6788238c1ab6a71dfcfd3e02ef6cb78ae09a621'
             
'67a49415f676a443f81021bfa29d198462008da1224086f8c549b19c2fd21514ca3302d5ac23edec28b9c724fef921596586423ebe41e852ebfbe7216af727e6'
-            
'e9ffea021ee4031b9ad3a534bfb94dbf9d0dfd45a55ecac5dedb2453ea0c17fb80bbb9ad039686bc1f3349dc371977eb548e3a665c56531469c22f29fc4eced8'
-            
'f5f1fad77363db46ca513c76f22654924dd732cdf2e596fcfccb0a47a70d6099b6705e90adb661cd45af076959ef1f9f6bba66942500e603df9421caa9ed2f80')
+            
'e9ffea021ee4031b9ad3a534bfb94dbf9d0dfd45a55ecac5dedb2453ea0c17fb80bbb9ad039686bc1f3349dc371977eb548e3a665c56531469c22f29fc4eced8')
 
b2sums=('d459a1e0ffb342b6b455caf65e6af60b32eee72d4a9b1ab126485fb4632503a42061d3f0b960554c8155af6dc0564c585335b27aecca6538b394a0d58d927588'
         'SKIP'
-        
'31e74eebedf8cb6e5ade36096b4399892d7091b9dce4645fde591f64802dc8befd73ae8019e78f8d326a605b224c7828694d21788bd6073db43c41cf5a9c2805'
-        
'1518839dbfe12f2f55190976de808515f93eb8c06f1570f02780a5ce8c237e0be43aa7cd0fbbe4c88af1f641586e4d3cf122896d97c7594ef72991e1801ee666'
-        
'5fde901d7d29995523cf261de973cc053265f37cf8fecc5511ccfff35a6ef4308f8cf36dc94e37c8b7604694ffa6ab87331c9b533b3538c6f7d7d911c9f94d19'
-        
'1518839dbfe12f2f55190976de808515f93eb8c06f1570f02780a5ce8c237e0be43aa7cd0fbbe4c88af1f641586e4d3cf122896d97c7594ef72991e1801ee666'
-        
'5b4e20609d38dcec82eae66acdfb7d45288574e7bf9684fa0f66bc0fb1c45cd78ee503d04a5084e28755fb7a1c6cea95854c93b33d76ab20964f45420c68403c'
+        
'1df7f3b7a7637f2977ee581fefa4a56f92ad57585d140bdd4aeef90e51a36568d7624657fdb81aa53b8114ca9d0bd8ba1eb67110c4bc8d36a4c26229b5170c0a'
+        
'2e17e67bd9671aeb6897c116b8ecf69acd0da073515ecc14fb42a83bafded0ad3532ddafcbed3e303d3f8511f7c5430bd50a9b8b808f578952eab476bdc46dfb'
+        
'c3145b63e42d2e25d702c59787889ebd13acdb1e97416119dd8dd5a6035f6c5f52c32f46c282f0ba4401c43c92bcc5fdb237c7b1d04c3a53da63e9774bf42a61'
+        
'85009831f3e2ad74801393b7d6351f0a553517706b2bd0a72daf379b903768ffcaa9696340abcbc489f3364e50ca5d287430b72cef0cf504d5e25728fe0dc8a4'
         
'5cfc936555aa2b2e15f8830ff83764dad6e11a80e2a102c5f2bd3b7c83db22a5457a3afdd182e3648c9d7d5bca90fa550f59576d0ac47a11a31dfb636cb18f2b'
         
'4a9cb6fe6658f2182655d42761d9d669654c6f0e891610e1b7fd256ce32a561f05e71daf8e473d98f16f5ee9d16d46a097a2d0de42eac58b4ce3be1525a74856'
-        
'd5bea0cfc2e6d3d1749c65440ca911533d41b6f8117fe09e9efec23524637cfa823d230303a7fbb45d3cd251bf8036d48b9b21049ced208f7ed191fcbd75e879'
-        
'ecc517a22ba12bd7afa3a0eefb68febf27b164cfac6502e66930bd12c62947ae362b4113472544fddc2f39e9c64d78cc662605a359c9988baaba8613d4c0f468')
-validpgpkeys=('66D0387DB85D320F8408166DB175CFA98F192AF2')  # Serge Hallyn 
<[email protected]>
+        
'd5bea0cfc2e6d3d1749c65440ca911533d41b6f8117fe09e9efec23524637cfa823d230303a7fbb45d3cd251bf8036d48b9b21049ced208f7ed191fcbd75e879')
+validpgpkeys=(66D0387DB85D320F8408166DB175CFA98F192AF2)  # Serge Hallyn 
<[email protected]>
 
 prepare() {
-  # comment options that are taken over by util-linux and apply defaults
-  patch -Np1 -d $pkgname-$pkgver -i ../$pkgname-4.11.1-login.defs.patch
+  local filename
+
+  cd $pkgname-$pkgver
+  for filename in "${source[@]}"; do
+    if [[ "$filename" =~ \.patch$ ]]; then
+      printf "Applying patch %s\n" "${filename##*/}"
+      patch -Np1 -i "$srcdir/${filename##*/}"
+    fi
+  done
+
+  autoreconf -fiv
 }
 
 build() {
+  local configure_options=(
+    --prefix=/usr
+    --bindir=/usr/bin
+    --sbindir=/usr/bin
+    --libdir=/usr/lib
+    --mandir=/usr/share/man
+    --sysconfdir=/etc
+    --disable-account-tools-setuid
+    --enable-man
+    --with-fcaps
+    --with-libpam
+    --with-group-name-max-length=32
+    --with-audit
+    --with-bcrypt
+    --with-yescrypt
+    --without-selinux
+    --without-su
+  )
+
   cd $pkgname-$pkgver
+  ./configure "${configure_options[@]}"
 
-  ./configure \
-    --prefix=/usr \
-    --bindir=/usr/bin \
-    --sbindir=/usr/bin \
-    --libdir=/usr/lib \
-    --mandir=/usr/share/man \
-    --sysconfdir=/etc \
-    --disable-account-tools-setuid \
-    --with-fcaps \
-    --with-libpam \
-    --with-group-name-max-length=32 \
-    --with-audit \
-    --with-bcrypt \
-    --with-yescrypt \
-    --without-selinux \
-    --without-su
-
   # prevent excessive overlinking due to libtool
   sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
   make
@@ -106,42 +113,4 @@
   install -vDm 644 ../shadow.service -t "$pkgdir/usr/lib/systemd/system/"
   install -vdm 755 "$pkgdir/usr/lib/systemd/system/timers.target.wants"
   ln -s ../shadow.timer 
"$pkgdir/usr/lib/systemd/system/timers.target.wants/shadow.timer"
-
-  # PAM config - custom
-  rm "$pkgdir/etc/pam.d"/*
-  install -vDm 644 ../{passwd,chgpasswd,chpasswd,newusers} -t 
"$pkgdir/etc/pam.d/"
-
-  # PAM config - from tarball
-  install -vDm 644 etc/pam.d/groupmems -t "$pkgdir/etc/pam.d/"
-
-  # we use the 'useradd' PAM file for other similar utilities
-  for file in chage group{add,del,mod} shadow user{add,del,mod}; do
-    install -vDm 644 ../defaults.pam "$pkgdir/etc/pam.d/$file"
-  done
-
-  # Remove evil/broken tools
-  rm -v "$pkgdir"/usr/sbin/logoutd
-
-  # Remove utilities provided by util-linux
-  rm -v "$pkgdir"/usr/{bin/{login,chsh,chfn,sg,nologin},sbin/{vipw,vigr}}
-
-  # but we keep newgrp, as sg is really an alias to it
-  mv -v "$pkgdir"/usr/bin/{newgrp,sg}
-
-  # ...and their many man pages
-  find "$pkgdir"/usr/share/man \
-      '(' -name 'chsh.1'    -o \
-          -name 'chfn.1'    -o \
-          -name 'su.1'      -o \
-          -name 'logoutd.8' -o \
-          -name 'login.1'   -o \
-          -name 'nologin.8' -o \
-          -name 'vipw.8'    -o \
-          -name 'vigr.8'    -o \
-          -name 'newgrp.1' ')' \
-      -delete
-
-  # move everything else to /usr/bin, because this isn't handled by ./configure
-  mv -v "$pkgdir"/usr/sbin/* "$pkgdir"/usr/bin
-  rmdir -v "$pkgdir/usr/sbin"
 }

Deleted: chgpasswd
===================================================================
--- chgpasswd   2022-11-06 12:16:41 UTC (rev 460774)
+++ chgpasswd   2022-11-06 13:07:49 UTC (rev 460775)
@@ -1,4 +0,0 @@
-#%PAM-1.0
-auth           sufficient      pam_rootok.so
-account                required        pam_permit.so
-password       include         system-auth

Deleted: chpasswd
===================================================================
--- chpasswd    2022-11-06 12:16:41 UTC (rev 460774)
+++ chpasswd    2022-11-06 13:07:49 UTC (rev 460775)
@@ -1,6 +0,0 @@
-#%PAM-1.0
-auth           sufficient      pam_rootok.so
-auth           required        pam_unix.so
-account                required        pam_unix.so
-session                required        pam_unix.so
-password       required        pam_unix.so sha512 shadow

Deleted: defaults.pam
===================================================================
--- defaults.pam        2022-11-06 12:16:41 UTC (rev 460774)
+++ defaults.pam        2022-11-06 13:07:49 UTC (rev 460775)
@@ -1,6 +0,0 @@
-#%PAM-1.0
-auth           sufficient      pam_rootok.so
-auth           required        pam_unix.so
-account                required        pam_unix.so
-session                required        pam_unix.so
-password       required        pam_permit.so

Deleted: newusers
===================================================================
--- newusers    2022-11-06 12:16:41 UTC (rev 460774)
+++ newusers    2022-11-06 13:07:49 UTC (rev 460775)
@@ -1,6 +0,0 @@
-#%PAM-1.0
-auth           sufficient      pam_rootok.so
-auth           required        pam_unix.so
-account                required        pam_unix.so
-session                required        pam_unix.so
-password       required        pam_unix.so sha512 shadow

Deleted: passwd
===================================================================
--- passwd      2022-11-06 12:16:41 UTC (rev 460774)
+++ passwd      2022-11-06 13:07:49 UTC (rev 460775)
@@ -1,4 +0,0 @@
-#%PAM-1.0
-#password      required        pam_cracklib.so difok=2 minlen=8 dcredit=2 
ocredit=2 retry=3
-#password      required        pam_unix.so sha512 shadow use_authtok
-password       required        pam_unix.so sha512 shadow nullok

Deleted: shadow-4.11.1-login.defs.patch
===================================================================
--- shadow-4.11.1-login.defs.patch      2022-11-06 12:16:41 UTC (rev 460774)
+++ shadow-4.11.1-login.defs.patch      2022-11-06 13:07:49 UTC (rev 460775)
@@ -1,308 +0,0 @@
-diff --git i/etc/login.defs w/etc/login.defs
-index 114dbcd9..4cb8cdf5 100644
---- i/etc/login.defs
-+++ w/etc/login.defs
-@@ -3,6 +3,8 @@
- #
- #     $Id$
- #
-+# This file is adapted for the use on Arch Linux.
-+# Options unsupported due to the use of util-linux or PAM are commented.
- 
- #
- # Delay in seconds before being allowed another attempt after a login failure
-@@ -14,7 +16,7 @@ FAIL_DELAY           3
- #
- # Enable logging and display of /var/log/faillog login(1) failure info.
- #
--FAILLOG_ENAB          yes
-+# FAILLOG_ENAB is currently not supported
- 
- #
- # Enable display of unknown usernames when login(1) failures are recorded.
-@@ -24,12 +26,12 @@ LOG_UNKFAIL_ENAB   no
- #
- # Enable logging of successful logins
- #
--LOG_OK_LOGINS         no
-+# LOG_OK_LOGINS is currently not supported
- 
- #
- # Enable logging and display of /var/log/lastlog login(1) time info.
- #
--LASTLOG_ENAB          yes
-+# LASTLOG_ENAB is currently not supported
- 
- #
- # Limit the highest user ID number for which the lastlog entries should
-@@ -46,28 +48,28 @@ LASTLOG_ENAB               yes
- # Disable if the shell startup files already check for mail
- # ("mailx -e" or equivalent).
- #
--MAIL_CHECK_ENAB               yes
-+# MAIL_CHECK_ENAB is currently not supported
- 
- #
- # Enable additional checks upon password changes.
- #
--OBSCURE_CHECKS_ENAB   yes
-+# OBSCURE_CHECKS_ENAB is currently not supported
- 
- #
- # Enable checking of time restrictions specified in /etc/porttime.
- #
--PORTTIME_CHECKS_ENAB  yes
-+# PORTTIME_CHECKS_ENAB is currently not supported
- 
- #
- # Enable setting of ulimit, umask, and niceness from passwd(5) gecos field.
- #
--QUOTAS_ENAB           yes
-+# QUOTAS_ENAB is currently not supported
- 
- #
- # Enable "syslog" logging of su(1) activity - in addition to sulog file 
logging.
- # SYSLOG_SG_ENAB does the same for newgrp(1) and sg(1).
- #
--SYSLOG_SU_ENAB                yes
-+# SYSLOG_SU_ENAB is currently not supported
- SYSLOG_SG_ENAB                yes
- 
- #
-@@ -75,44 +77,43 @@ SYSLOG_SG_ENAB             yes
- # a ":" delimited list of device names.  Root logins will be allowed only
- # from these devices.
- #
--CONSOLE               /etc/securetty
--#CONSOLE      console:tty01:tty02:tty03:tty04
-+# CONSOLE is currently not supported
- 
- #
- # If defined, all su(1) activity is logged to this file.
- #
--#SULOG_FILE   /var/log/sulog
-+# SULOG_FILE is currently not supported
- 
- #
- # If defined, ":" delimited list of "message of the day" files to
- # be displayed upon login.
- #
--MOTD_FILE     /etc/motd
-+MOTD_FILE
- #MOTD_FILE    /etc/motd:/usr/lib/news/news-motd
- 
- #
- # If defined, this file will be output before each login(1) prompt.
- #
--#ISSUE_FILE   /etc/issue
-+# ISSUE_FILE is currently not supported
- 
- #
- # If defined, file which maps tty line to TERM environment parameter.
- # Each line of the file is in a format similar to "vt100  tty01".
- #
--#TTYTYPE_FILE /etc/ttytype
-+# TTYTYPE_FILE is currently not supported
- 
- #
- # If defined, login(1) failures will be logged here in a utmp format.
- # last(1), when invoked as lastb(1), will read /var/log/btmp, so...
- #
--FTMP_FILE     /var/log/btmp
-+# FTMP_FILE is currently not supported
- 
- #
- # If defined, name of file whose presence will inhibit non-root
- # logins.  The content of this file should be a message indicating
- # why logins are inhibited.
- #
--NOLOGINS_FILE /etc/nologin
-+# NOLOGINS_FILE is currently not supported
- 
- #
- # If defined, the command name to display when running "su -".  For
-@@ -120,7 +121,7 @@ NOLOGINS_FILE      /etc/nologin
- # command as "-su".  If not defined, then ps(1) will display the
- # name of the shell actually being run, e.g. something like "-sh".
- #
--SU_NAME               su
-+# SU_NAME is currently not supported
- 
- #
- # *REQUIRED*
-@@ -143,23 +144,22 @@ HUSHLOGIN_FILE   .hushlogin
- # If defined, either a TZ environment parameter spec or the
- # fully-rooted pathname of a file containing such a spec.
- #
--#ENV_TZ               TZ=CST6CDT
--#ENV_TZ               /etc/tzname
-+# ENV_TZ is currently not supported
- 
- #
- # If defined, an HZ environment parameter spec.
- #
- # for Linux/x86
--ENV_HZ                HZ=100
-+# ENV_HZ              HZ=100
- # For Linux/Alpha...
--#ENV_HZ               HZ=1024
-+# ENV_HZ is currently not supported
- 
- #
- # *REQUIRED*  The default PATH settings, for superuser and normal users.
- #
- # (they are minimal, add the rest in the shell startup files)
--ENV_SUPATH    PATH=/sbin:/bin:/usr/sbin:/usr/bin
--ENV_PATH      PATH=/bin:/usr/bin
-+ENV_SUPATH    PATH=/usr/local/sbin:/usr/local/bin:/usr/bin
-+ENV_PATH      PATH=/usr/local/sbin:/usr/local/bin:/usr/bin
- 
- #
- # Terminal permissions
-@@ -188,9 +188,9 @@ TTYPERM            0600
- #
- # Prefix these values with "0" to get octal, "0x" to get hexadecimal.
- #
--ERASECHAR     0177
--KILLCHAR      025
--#ULIMIT               2097152
-+# ERASECHAR is currently not supported
-+# KILLCHAR is currently not supported
-+# ULIMIT is currently not supported
- 
- # Default initial "umask" value used by login(1) on non-PAM enabled systems.
- # Default "umask" value for pam_umask(8) on PAM enabled systems.
-@@ -199,7 +199,7 @@ KILLCHAR   025
- # 022 is the default value, but 027, or even 077, could be considered
- # for increased privacy. There is no One True Answer here: each sysadmin
- # must make up their mind.
--UMASK         022
-+UMASK         077
- 
- # HOME_MODE is used by useradd(8) and newusers(8) to set the mode for new
- # home directories.
-@@ -216,7 +216,7 @@ UMASK              022
- #
- PASS_MAX_DAYS 99999
- PASS_MIN_DAYS 0
--PASS_MIN_LEN  5
-+# PASS_MIN_LEN is currently not supported
- PASS_WARN_AGE 7
- 
- #
-@@ -225,12 +225,12 @@ PASS_WARN_AGE    7
- # to uid 0 accounts.  If the group doesn't exist or is empty, no one
- # will be able to "su" to uid 0.
- #
--SU_WHEEL_ONLY no
-+# SU_WHEEL_ONLY is currently not supported
- 
- #
- # If compiled with cracklib support, sets the path to the dictionaries
- #
--CRACKLIB_DICTPATH     /var/cache/cracklib/cracklib_dict
-+# CRACKLIB_DICTPATH is currently not supported
- 
- #
- # Min/max values for automatic uid selection in useradd(8)
-@@ -238,7 +238,7 @@ CRACKLIB_DICTPATH  /var/cache/cracklib/cracklib_dict
- UID_MIN                        1000
- UID_MAX                       60000
- # System accounts
--SYS_UID_MIN             101
-+SYS_UID_MIN             500
- SYS_UID_MAX             999
- # Extra per user uids
- SUB_UID_MIN              100000
-@@ -251,7 +251,7 @@ SUB_UID_COUNT                  65536
- GID_MIN                        1000
- GID_MAX                       60000
- # System accounts
--SYS_GID_MIN             101
-+SYS_GID_MIN             500
- SYS_GID_MAX             999
- # Extra per user group ids
- SUB_GID_MIN              100000
-@@ -271,24 +271,24 @@ LOGIN_TIMEOUT            60
- #
- # Maximum number of attempts to change password if rejected (too easy)
- #
--PASS_CHANGE_TRIES     5
-+# PASS_CHANGE_TRIES is currently not supported
- 
- #
- # Warn about weak passwords (but still allow them) if you are root.
- #
--PASS_ALWAYS_WARN      yes
-+# PASS_ALWAYS_WARN is currently not supported
- 
- #
- # Number of significant characters in the password for crypt().
- # Default is 8, don't change unless your crypt() is better.
- # Ignored if MD5_CRYPT_ENAB set to "yes".
- #
--#PASS_MAX_LEN         8
-+# PASS_MAX_LEN is currently not supported
- 
- #
- # Require password before chfn(1)/chsh(1) can make any changes.
- #
--CHFN_AUTH             yes
-+# CHFN_AUTH is currently not supported
- 
- #
- # Which fields may be changed by regular users using chfn(1) - use
-@@ -303,7 +303,7 @@ CHFN_RESTRICT              rwh
- #
- # XXX - it doesn't work correctly yet, for now leave it commented out
- # to use the default which is just "Password: ".
--#LOGIN_STRING         "%s's Password: "
-+# LOGIN_STRING is currently not supported
- 
- #
- # Only works if compiled with MD5_CRYPT defined:
-@@ -318,7 +318,7 @@ CHFN_RESTRICT              rwh
- #
- # This variable is deprecated. You should use ENCRYPT_METHOD instead.
- #
--#MD5_CRYPT_ENAB       no
-+# MD5_CRYPT_ENAB is currently not supported
- 
- #
- # Only works if compiled with ENCRYPTMETHOD_SELECT defined:
-@@ -334,7 +334,7 @@ CHFN_RESTRICT              rwh
- # Note: If you use PAM, it is recommended to use a value consistent with
- # the PAM modules configuration.
- #
--#ENCRYPT_METHOD DES
-+ENCRYPT_METHOD SHA512
- 
- #
- # Only works if ENCRYPT_METHOD is set to SHA256 or SHA512.
-@@ -390,7 +390,7 @@ CHFN_RESTRICT              rwh
- # access to these groups, even when not logged in from the console.
- # How to do it is left as an exercise for the reader...
- #
--#CONSOLE_GROUPS               floppy:audio:cdrom
-+# CONSOLE_GROUPS is currently not supported
- 
- #
- # Should login be allowed if we can't cd to the home directory?
-@@ -410,7 +410,7 @@ NONEXISTENT        /nonexistent
- # If this file exists and is readable, login environment will be
- # read from it.  Every line should be in the form name=value.
- #
--ENVIRON_FILE  /etc/environment
-+# ENVIRON_FILE is currently not supported
- 
- #
- # If defined, this command is run when removing a user.
-@@ -465,7 +465,7 @@ USERGROUPS_ENAB yes
- # Set to "yes" to prevent for all accounts
- # Set to "superuser" to prevent for UID 0 / root (default)
- # Set to "no" to not prevent for any account (dangerous, historical default)
--PREVENT_NO_AUTH superuser
-+# PREVENT_NO_AUTH is currently not supported
- 
- #
- # Select the HMAC cryptography algorithm.

Reply via email to