#!/usr/bin/bash # JOBoRun : Jwm OpenBox Obarun RUNit # Maintainer : Joe Bo Run # PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobcore/$pkgname" # Website : https://pozol.eu #-----------------------------------------| DESCRIPTION |--------------------------------------- pkgname=shadow pkgver=4.14.0 pkgrel=04 pkgdesc="Password and account management tool suite with support for shadow files and PAM w/o systemd" url='https://github.com/shadow-maint/shadow' depends=( acl libacl.so attr libattr.so audit libaudit.so glibc libxcrypt libcrypt.so pam libpam.so libpam_misc.so ) makedepends=(docbook-xsl itstool libcap libxslt) backup=( etc/default/useradd etc/login.defs etc/pam.d/chpasswd etc/pam.d/groupmems etc/pam.d/newusers etc/pam.d/passwd # {chage,{,ch,chg}passwd,group{add,del,mems,mod},newusers,shadow,user{add,del,mod}} ) #options=(debug !emptydirs) options=('!emptydirs') # NOTE: distribution patches are taken from https://gitlab.archlinux.org/archlinux/packaging/upstream/shadow/-/commits/v4.13.0.arch1 source=( https://github.com/shadow-maint/shadow/releases/download/$pkgver/shadow-$pkgver.tar.xz{,.asc} 0001-Disable-replaced-tools-and-their-man-pages-and-PAM-i.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 # chgpasswd # chpasswd # defaults.pam # login.defs # newusers # passwd shadow.{sysusers,tmpfiles} useradd.defaults ) # install=shadow.install prepare() { 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 --disable-account-tools-setuid # no setuid for chgpasswd, chpasswd, groupadd, groupdel, groupmod, newusers, useradd, userdel, usermod --enable-man --libdir=/usr/lib --mandir=/usr/share/man --sysconfdir=/etc --with-audit --with-fcaps # use capabilities instead of setuid for setuidmap and setgidmap --with-group-name-max-length=32 --with-libpam # PAM integration for chpasswd, groupmems, newusers, passwd --without-libbsd # shadow can use internal implementation for getting passphrase --without-nscd # we do not ship nscd anymore --without-selinux --without-su --without-systemd ) cd $pkgname-$pkgver # add extra check, preventing accidental deletion of other user's home dirs when using `userdel -r ` export CFLAGS="$CFLAGS -DEXTRA_CHECK_HOME_DIR" ./configure "${configure_options[@]}" # prevent excessive overlinking due to libtool sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool make } package() { cd $pkgname-$pkgver make DESTDIR="$pkgdir" install make DESTDIR="$pkgdir" -C man install # license install -vDm 644 COPYING -t "$pkgdir/usr/share/licenses/$pkgname/" # custom useradd(8) defaults (not provided by upstream) install -vDm 600 ../useradd.defaults "$pkgdir/etc/default/useradd" install -vDm 644 ../$pkgname.sysusers "$pkgdir/usr/lib/sysusers.d/$pkgname.conf" install -vDm 644 ../$pkgname.tmpfiles "$pkgdir/usr/lib/tmpfiles.d/$pkgname.conf" # adapt executables to match the modes used by tmpfiles.d, so that pacman does not complain: chmod 750 "$pkgdir/usr/bin/groupmems" # manually add PAM config for chpasswd and newusers: https://github.com/shadow-maint/shadow/issues/810 install -vDm 644 etc/pam.d/{chpasswd,newusers} -t "$pkgdir/etc/pam.d/" } #---- arch license gpg-key & sha256sums ---- arch=(x86_64) license=(BSD-3-Clause) validpgpkeys=(66D0387DB85D320F8408166DB175CFA98F192AF2) # Serge Hallyn sha256sums=(87e1c5cc10109536132f1b4e29b6df6edc99b70f36f71ff042c2783f2fa01d4f # shadow-4.14.0.tar.xz 2c5c21deaa2852ade2f96703779ba2980e45d08948899644b24e6fc986519aa6 # shadow-4.14.0.tar.xz.asc 7598d70f8fc71ff2a07a78b501fcc94d371b273f0cf47123a82807cca11be245 # 0001-Disable-replaced-tools-and-their-man-pages-and-PAM-i.patch 986562e197f1efef60b4ebab5316c388d630d171fdca74237bff864db0bf4970 # 0002-Adapt-login.defs-for-PAM-and-util-linux.patch 5cf3e9c0313f6b0c9f1d56e69ec51522f64f002fc0843fc6172fbfa97b8495e2 # 0003-Add-Arch-Linux-defaults-for-login.defs.patch 29448220f2ecfeab0a1a7aae296f07ca522d0a75a5b20df30f83950f9d54531f # shadow.sysusers c2faa81b894de452e6cd23660ad7e30a4e03d6a4eacb94ff209c6e578df05e61 # shadow.tmpfiles 2d4b7b85ea1d5cddf93c2d636a11b0e76c1f484474449bdb018e3af0fcbd93c3) # useradd.defaults ## 4ba54cd13c99736d4651ba0a12680e0037c6abad95940511b80c6491a6f586e6 shadow-4.14.0-04-x86_64.pkg.tar.lz