summaryrefslogtreecommitdiff
path: root/repo/system/shadow/shadow.xibuild
diff options
context:
space:
mode:
Diffstat (limited to 'repo/system/shadow/shadow.xibuild')
-rw-r--r--repo/system/shadow/shadow.xibuild136
1 files changed, 136 insertions, 0 deletions
diff --git a/repo/system/shadow/shadow.xibuild b/repo/system/shadow/shadow.xibuild
new file mode 100644
index 0000000..22bd2f1
--- /dev/null
+++ b/repo/system/shadow/shadow.xibuild
@@ -0,0 +1,136 @@
+#!/bin/sh
+
+MAKEDEPS="make "
+DEPS="acl libcap libxcrypt"
+
+PKG_VER=4.11.1
+
+SOURCE=https://github.com/shadow-maint/shadow/releases/download/v$PKG_VER/shadow-$PKG_VER.tar.xz
+DESC="Password and account management tool suite with support for shadow files and PAM"
+ADDITIONAL="
+ chage.pamd
+ chpasswd.pamd
+ login.pamd
+ newusers.pamd
+ passwd.pamd
+ su.pamd
+"
+
+prepare () {
+
+ sed -i 's/groups$(EXEEXT) //' src/Makefile.in
+ find man -name Makefile.in -exec sed -i 's/groups\.1 / /' {} \;
+ find man -name Makefile.in -exec sed -i 's/getspnam\.3 / /' {} \;
+ find man -name Makefile.in -exec sed -i 's/passwd\.5 / /' {} \;
+
+ sed -e 's:#ENCRYPT_METHOD DES:ENCRYPT_METHOD SHA512:' \
+ -e 's:/var/spool/mail:/var/mail:' \
+ -e '/PATH=/{s@/sbin:@@;s@/bin:@@}' \
+ -i etc/login.defs
+
+ mkdir -p $PKG_DEST/usr/bin
+ touch $PKG_DEST/usr/bin/passwd
+
+}
+
+build () {
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var \
+ --disable-account-tools-setuid \
+ --disable-nls \
+ --without-audit \
+ --with-libpam \
+ --without-selinux \
+ --without-acl \
+ --without-attr \
+ --without-tcb \
+ --with-yescrypt \
+ --without-nscd \
+ --without-group-name-max-length \
+ --with-fcaps
+
+ make
+}
+
+package () {
+ make exec_prefix=/usr DESTDIR=$PKG_DEST install
+ make DESTDIR=$PKG_DEST -C man install-man
+ mkdir -p $PKG_DEST/etc/default
+
+ [ -d $PKG_DEST/etc/pam.d ] && rm -rf $PKG_DEST/etc/pam.d/*
+
+
+ install -m644 $PKG_DEST/etc/login.defs $PKG_DEST/etc/login.defs.orig &&
+ echo "USERGROUPS_ENAB yes"> $PKG_DEST/etc/login.defs
+
+ for f in $ADDITIONAL; do
+ case $f in
+ *.pamd)
+ cp $f $PKG_DEST/etc/pam.d/${f%.pamd}
+ ;;
+ esac
+ done
+ cp $PKG_DEST/etc/pam.d/su $PKG_DEST/etc/pam.d/su-l
+
+ for PROGRAM in chfn chgpasswd chsh groupadd groupdel \
+ groupmems groupmod useradd userdel usermod
+ do
+ install -m644 chage.pamd $PKG_DEST/etc/pam.d/${PROGRAM}
+ sed -i "s/chage/$PROGRAM/" $PKG_DEST/etc/pam.d/${PROGRAM}
+ done
+
+ [ -f $PKG_DEST/etc/login.access ] && mv $PKG_DEST/etc/login.access $PKG_DEST/etc/login.access.NOUSE || true
+ [ -f $PKG_DEST/etc/limits ] && mv $PKG_DEST/etc/limits $PKG_DEST/etc/limits.NOUSE || true
+
+ rm $PKG_DEST/usr/bin/su
+}
+
+postinstall () {
+
+ [ ! -f /etc/passwd ] &&
+ cat > /etc/passwd << "EOF"
+root:x:0:0:root:/root:/bin/bash
+bin:x:1:1:bin:/dev/null:/usr/bin/false
+daemon:x:6:6:Daemon User:/dev/null:/usr/bin/false
+messagebus:x:18:18:D-Bus Message Daemon User:/run/dbus:/usr/bin/false
+uuidd:x:80:80:UUID Generation Daemon User:/dev/null:/usr/bin/false
+nobody:x:99:99:Unprivileged User:/dev/null:/usr/bin/false
+EOF
+
+ [ ! -f /etc/group ] &&
+ cat > /etc/group << "EOF"
+root:x:0:root
+bin:x:1:daemon
+sys:x:2:
+kmem:x:3:
+tape:x:4:
+tty:x:5:
+daemon:x:6:
+floppy:x:7:
+disk:x:8:
+lp:x:9:
+dialout:x:10:
+audio:x:11:
+video:x:12:
+utmp:x:13:
+usb:x:14:
+cdrom:x:15:
+adm:x:16:
+messagebus:x:18:
+input:x:24:
+mail:x:34:
+kvm:x:61:
+uuidd:x:80:
+wheel:x:97:
+nogroup:x:99:
+users:x:999:
+EOF
+ /usr/sbin/pwconv
+ /usr/sbin/grpconv
+ chmod 0640 /etc/shadow
+ mkdir -p /etc/default
+ /usr/sbin/useradd -D --gid 999
+}