summaryrefslogtreecommitdiff
blob: 6b055b1124fd5c3da410c00a47f3e891d2e95d0d (plain)
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
# Copyright 1999-2002 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License, v2 or later
# $Header: /var/cvsroot/gentoo-x86/sys-apps/shadow/shadow-20001016-r10.ebuild,v 1.2 2002/07/11 06:30:55 drobbins Exp $

S=${WORKDIR}/${P}
DESCRIPTION="Utilities to deal with user accounts"
SRC_URI="ftp://ftp.pld.org.pl/software/shadow/old/${P}.tar.gz"

DEPEND=">=sys-libs/pam-0.73 
		nls? ( sys-devel/gettext )"
RDEPEND=">=sys-libs/pam-0.73"

src_unpack() {
	unpack ${A}
	cd ${S}/src
	cp ${FILESDIR}/useradd.c ${S}/src
}

src_compile() {
	
	local myconf
	use nls || myconf="${myconf} --disable-nls"

	./configure \
		--disable-desrpc \
		--with-libcrypt \
		--with-libcrack \
		--with-libpam \
		--host=${CHOST} \
		${myconf} || die "bad configure"
		
	# Parallel make fails sometimes
	make LDFLAGS="" || die "compile problem"
}

src_install() {
	dodir /etc/default /etc/skel

	make prefix=${D}/usr \
		exec_prefix=${D} \
		mandir=${D}/usr/share/man \
		install || die "install problem"

	mv ${D}/lib ${D}/usr
	dosed -e "s:/lib:/usr/lib:" -e "s: libshadow.so':':" /usr/lib/libshadow.la
	dosym /usr/bin/newgrp /usr/bin/sg
	dosym /usr/sbin/useradd /usr/sbin/adduser
	dosym /usr/sbin/vipw /usr/sbin/vigr
	# remove dead links
	rm -f ${D}/bin/{sg,vipw}

	insinto /etc
	# Using a securetty with devfs device names added
	# (compat names kept for non-devfs compatibility)
	insopts -m0600 ; doins ${FILESDIR}/securetty
	insopts -m0600 ; doins ${S}/etc/login.access
	insopts -m0644 ; doins ${S}/etc/limits
	insopts -m0644 ; doins ${FILESDIR}/login.defs
	insinto /etc/pam.d ; insopts -m0644
	doins ${FILESDIR}/shadow
	newins ${FILESDIR}/shadow groupadd
	newins ${FILESDIR}/shadow useradd
	doins ${FILESDIR}/chage

	if [ -z "`use bootcd`" ]
	then
		# the manpage install is beyond my comprehension, and also broken.
		# just do it over.
		rm -rf ${D}/usr/share/man/*
		for q in man/*.[0-9]
		do
			local dir="${D}/usr/share/man/man${q##*.}"
			mkdir -p $dir
			cp $q $dir
		done
		
		cd ${S}/doc
		dodoc ANNOUNCE INSTALL LICENSE README WISHLIST
		docinto txt
		dodoc HOWTO LSM README.* *.txt
	else
		rm -rf ${D}/usr/share ${D}/usr/lib/lib*.{a,la}
	fi
}