1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
|
# $Id: PKGBUILD 151546 2012-02-27 16:22:05Z dreisner $
# Maintainer: Dave Reisner <dreisner@archlinux.org>
# Maintainer: Aaron Griffin <aaron@archlinux.org>
pkgname=shadow
pkgver=4.1.5
pkgrel=4
pkgdesc="Password and account management tool suite with support for shadow files and PAM"
arch=('i686' 'x86_64')
url='http://pkg-shadow.alioth.debian.org/'
license=('BSD')
groups=('base')
depends=('bash' 'pam' 'acl')
backup=(etc/login.defs
etc/pam.d/{chage,login,passwd,shadow,useradd,usermod,userdel}
etc/pam.d/{chpasswd,newusers,groupadd,groupdel,groupmod}
etc/pam.d/{chfn,chgpasswd,groupmems,chsh}
etc/default/useradd)
options=('!libtool')
install='shadow.install'
source=("http://pkg-shadow.alioth.debian.org/releases/$pkgname-$pkgver.tar.bz2"{,.sig}
LICENSE
adduser
chgpasswd
chpasswd
defaults.pam
login
login.defs
newusers
passwd
shadow.cron.daily
useradd.defaults
nscd-error-reporting.patch
xstrdup.patch
shadow-strncpy-usage.patch
shadow-add-missing-include.patch
userdel-avoid-bad-mem-access.patch
write-utmp-wtmp-entries.patch)
sha1sums=('3ab1ae0e30af36d04445314fcb5a079bdf05de41'
'0a31aafceb948a91fe7370a6378cafd6fd883145'
'33a6cf1e44a1410e5c9726c89e5de68b78f5f922'
'78ec184a499f9708adcfcf0b7a3b22a60bf39f91'
'4ad0e059406a305c8640ed30d93c2a1f62c2f4ad'
'12427b1ca92a9b85ca8202239f0d9f50198b818f'
'0e56fed7fc93572c6bf0d8f3b099166558bb46f1'
'895aad07c192b288b457e19dd7b8c55841b4ad22'
'e5cab2118ecb1e61874cde842d7d04d1003f35cb'
'12427b1ca92a9b85ca8202239f0d9f50198b818f'
'611be25d91c3f8f307c7fe2485d5f781e5dee75f'
'5d83ba7e11c765c951867cbe00b0ae7ff57148fa'
'9ae93de5987dd0ae428f0cc1a5a5a5cd53583f19'
'ae6eebb842c433ac4022c493294a13ed68e06acc'
'6010fffeed1fc6673ad9875492e1193b1a847b53'
'21e12966a6befb25ec123b403cd9b5c492fe5b16'
'0697a21f7519de30821da7772677035652df4ad2'
'e1dd93d82c6eba76b5f17a9fefad4bbc513cff5b'
'bcef8558c9123b396d2d4df26c815a951f97a91a')
build() {
cd "$pkgname-$pkgver"
# avoid transitive linking issues with binutils 2.22
sed -i '/^user\(mod\|add\)_LDADD/s|$| -lattr|' src/Makefile.am
# link to glibc's crypt(3)
LDFLAGS+=" -lcrypt"
# need to offer these upstream
patch -Np1 <"$srcdir/xstrdup.patch"
patch -Np1 <"$srcdir/shadow-strncpy-usage.patch"
# backports queued for 4.1.5.1
patch -Np1 <"$srcdir/shadow-add-missing-include.patch"
patch -Np1 <"$srcdir/nscd-error-reporting.patch"
# sent to ML
patch -Np0 <"$srcdir/userdel-avoid-bad-mem-access.patch"
# revert to fix FS#28543
patch -RNp1 <"$srcdir/write-utmp-wtmp-entries.patch"
# supress etc/pam.d/*, we provide our own
sed -i '/^SUBDIRS/s/pam.d//' etc/Makefile.in
./configure \
--prefix=/usr \
--libdir=/lib \
--mandir=/usr/share/man \
--sysconfdir=/etc \
--with-libpam \
--without-selinux
make
}
package() {
cd "$pkgname-$pkgver"
make DESTDIR="$pkgdir" install
# license
install -Dm644 "$srcdir/LICENSE" "$pkgdir/usr/share/licenses/shadow/LICENSE"
# interactive useradd
install -Dm755 "$srcdir/adduser" "$pkgdir/usr/sbin/adduser"
# useradd defaults
install -Dm644 "$srcdir/useradd.defaults" "$pkgdir/etc/default/useradd"
# cron job
install -Dm744 "$srcdir/shadow.cron.daily" "$pkgdir/etc/cron.daily/shadow"
# login.defs
install -Dm644 "$srcdir/login.defs" "$pkgdir/etc/login.defs"
# PAM config - custom
install -dm755 "$pkgdir/etc/pam.d"
install -t "$pkgdir/etc/pam.d" -m644 "$srcdir"/{login,passwd,chgpasswd,chpasswd,newusers}
# PAM config - from tarball
install -Dm644 etc/pam.d/groupmems "$pkgdir/etc/pam.d/groupmems"
# we use the 'useradd' PAM file for other similar utilities
for file in chage chfn chsh groupadd groupdel groupmod shadow \
useradd usermod userdel; do
install -Dm644 "$srcdir/defaults.pam" "$pkgdir/etc/pam.d/$file"
done
# Remove su - using su from coreutils instead
rm "$pkgdir/bin/su"
find "$pkgdir/usr/share/man" -name 'su.1' -delete
}
|