Major infrastructure changes, part 2.

* Moved helpers, common and triggers dirs into xbps-src, where
  they belong.
* Renamed the templates dir to srcpkgs, it was so redundant before.
* Make it possible to add subpkgs with no restriction in names, for
  example udev now has a subpkgs called "libgudev". Previously
  subpkgs were named "${sourcepkg}-${pkgname}".
* xbps-src: changed to look for template files in current directory.
  That means that most arguments from the targets have been removed.
* xbps-src: added a reinstall target, to remove + install.
* xbps-src: do not overwrite binpkgs by default, skip them.

And more that I forgot because it's a mega-commit that I've been
working for some days already...

--HG--
extra : convert_revision : 0f466878584d1e6895d2a234f07ea1b2d1e61b3e
This commit is contained in:
Juan RP
2009-11-22 08:31:44 +01:00
parent 3c58e3ad40
commit 85cc462e1d
1305 changed files with 719 additions and 654 deletions

61
srcpkgs/shadow/INSTALL Normal file
View File

@@ -0,0 +1,61 @@
#
# This script creates default /etc/passwd and /etc/group
# files if they are unexistent.
#
# Also shadow passwords are enabled.
create_passwd()
{
cat > ./etc/passwd <<_EOF
root:x:0:0:root:/root:/bin/bash
nobody:x:99:99:Unprivileged User:/dev/null:/bin/false
_EOF
echo "Created default /etc/passwd file."
}
create_group()
{
# Default group list as specified by LFS.
cat > ./etc/group <<_EOF
root:x:0:
bin:x:1:
sys:x:2:
kmem:x:3:
wheel:x:4:
tty:x:5:
tape:x:6:
daemon:x:7:
floppy:x:8:
disk:x:9:
lp:x:10:
dialout:x:11:
audio:x:12:
video:x:13:
utmp:x:14:
usb:x:15:
cdrom:x:16:
optical:x:17:
mail:x:18:
storage:x:19:
scanner:x:20:
nogroup:x:99:
users:x:1000:
_EOF
echo "Created default /etc/group file."
}
case "${ACTION}" in
pre)
;;
post)
echo "Running ${PKGNAME}-${VERSION} post installation hooks..."
[ ! -f ./etc/passwd ] && create_passwd
[ ! -f ./etc/group ] && create_group
if [ ! -f ./etc/shadow ]; then
echo "Enabling shadowed (group) passwords..."
pwconv && grpconv
fi
;;
esac

View File

@@ -0,0 +1,5 @@
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

View File

@@ -0,0 +1,63 @@
# *REQUIRED*
# Directory where mailboxes reside, _or_ name of file, relative to the
# home directory. If you _do_ define both, MAIL_DIR takes precedence.
# QMAIL_DIR is for Qmail
#
#QMAIL_DIR Maildir
MAIL_DIR /var/mail
#MAIL_FILE .mail
# Password aging controls:
#
# 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_WARN_AGE 7
#
# Min/max values for automatic uid selection in useradd
#
UID_MIN 1000
UID_MAX 60000
# System accounts
SYS_UID_MIN 100
SYS_UID_MAX 999
#
# Min/max values for automatic gid selection in groupadd
#
GID_MIN 100
GID_MAX 60000
# System accounts
SYS_GID_MIN 100
SYS_GID_MAX 999
#
# If defined, this command is run when removing a user.
# It should remove any at/cron/print jobs etc. owned by
# the user to be removed (passed as the first argument).
#
#USERDEL_CMD /usr/sbin/userdel_local
#
# If useradd should create home directories for users by default
# On RH systems, we do. This option is overridden with the -m flag on
# useradd command line.
#
CREATE_HOME yes
# The permission mask is initialized to this value. If not specified,
# the permission mask will be initialized to 022.
UMASK 077
# This enables userdel to remove user groups if no members exist.
#
USERGROUPS_ENAB yes
# Disable MD5 and use SHA512 by default.
MD5_CRYPT_ENAB no
ENCRYPT_METHOD SHA512

View File

@@ -0,0 +1,14 @@
# /etc/pam.d/login service with cracklib.
auth requisite pam_nologin.so
auth required pam_securetty.so
auth required pam_unix.so
account required pam_access.so
account required pam_unix.so
session required pam_env.so
session required pam_motd.so
session required pam_limits.so
session optional pam_mail.so dir=/var/mail standard
session optional pam_lastlog.so
session required pam_unix.so
password required pam_cracklib.so try_first_pass retry=3
password required pam_unix.so sha512 shadow nullok try_first_pass use_authtok

View File

@@ -0,0 +1,8 @@
auth required pam_deny.so
auth required pam_warn.so
account required pam_deny.so
account required pam_warn.so
password required pam_deny.so
password required pam_warn.so
session required pam_deny.so
session required pam_warn.so

View File

@@ -0,0 +1,3 @@
password required pam_cracklib.so type=Linux retry=3 \
dictpath=/lib/cracklib/pw_dict
password required pam_unix.so sha512 shadow use_authtok

View File

@@ -0,0 +1,6 @@
#!/bin/sh
# Verify integrity of password and group files
/usr/sbin/pwck -r
/usr/sbin/grpck -r

View File

@@ -0,0 +1,7 @@
auth sufficient pam_rootok.so
auth required pam_unix.so
account required pam_unix.so
session optional pam_mail.so dir=/var/mail standard
session optional pam_xauth.so
session required pam_env.so
session required pam_unix.so

62
srcpkgs/shadow/template Normal file
View File

@@ -0,0 +1,62 @@
# Template file for 'shadow'
pkgname=shadow
version=4.1.4.2
revision=1
distfiles="ftp://pkg-shadow.alioth.debian.org/pub/pkg-shadow/$pkgname-$version.tar.bz2"
build_style=gnu_configure
configure_args="--libdir=/lib --enable-shared --disable-static
--with-libpam --without-selinux"
short_desc="Shadow password file utilities"
maintainer="Juan RP <xtraeme@gmail.com>"
checksum=97987f6a7967a85e6aa0dba2a1d52db8bd69af5a717391de5693db768fb78990
long_desc="
Shadow password file utilities for GNU/Linux."
conf_files="/etc/pam.d/usermod /etc/pam.d/userdel /etc/pam.d/useradd
/etc/pam.d/su /etc/pam.d/passwd /etc/pam.d/newusers /etc/pam.d/login
/etc/pam.d/groupmod /etc/pam.d/groupmems /etc/pam.d/groupdel
/etc/pam.d/groupadd /etc/pam.d/chsh /etc/pam.d/chpasswd
/etc/pam.d/chgpasswd /etc/pam.d/chfn /etc/pam.d/chage /etc/defaults/useradd
/etc/pam.d/other /etc/login.defs"
Add_dependency full glibc
Add_dependency full pam
Add_dependency build gettext
pre_build()
{
# Don't install the groups cmd, we use the one from coreutils.
cd $wrksrc || return 1
sed -i 's/groups$(EXEEXT) //' src/Makefile
for f in $(find man -name Makefile); do
sed -i 's/groups\.1 / /' $f
done
}
post_install()
{
# Install our pam files not the ones supplied with shadow.
rm -f ${DESTDIR}/etc/pam.d/*
for f in chage login passwd su other; do
install -m644 ${FILESDIR}/${f}.pam ${DESTDIR}/etc/pam.d/${f}
done
for f in chpasswd chgpasswd groupadd groupdel groupmems \
groupmod newusers useradd userdel usermod chsh chfn; do
install -m644 $DESTDIR/etc/pam.d/chage $DESTDIR/etc/pam.d/${f}
done
install -m644 ${FILESDIR}/login.defs ${DESTDIR}/etc
# Disable creating mailbox files by default.
sed -i -e 's/yes/no/' $DESTDIR/etc/default/useradd
# Install the cron daily job.
install -D -m744 ${FILESDIR}/shadow.cron-daily \
${DESTDIR}/etc/cron.daily/shadow
# Remove unused files due to PAM.
for f in login.access limits; do
[ -f ${DESTDIR}/etc/${f} ] && rm -f ${DESTDIR}/etc/${f}
done
# Remove groups.1 manpages that comes with coreutils.
rm -f ${DESTDIR}/usr/share/man/man1/groups.1
}