blob: 8b0df2cef348b82003bcaf6c9d6df222b9609167 (
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
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
133
134
135
136
137
138
139
140
141
|
# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-apps/pam-login/pam-login-4.0.11.1-r2.ebuild,v 1.2 2005/08/23 17:26:29 flameeyes Exp $
inherit eutils libtool flag-o-matic pam
# Do we want to backup an old login.defs, and forcefully
# install a new version?
FORCE_LOGIN_DEFS="no"
MY_PN="shadow"
S="${WORKDIR}/${MY_PN}-${PV}"
DESCRIPTION="Login, lastlog and faillog for PAM based systems"
HOMEPAGE="http://shadow.pld.org.pl/"
SRC_URI="ftp://ftp.pld.org.pl/software/${MY_PN}/${MY_PN}-${PV}.tar.bz2"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
IUSE="livecd nls selinux"
DEPEND="virtual/libc
sys-libs/pam
>=sys-apps/shadow-4.0.11.1-r1
skey? ( app-admin/skey )
selinux? ( sys-libs/libselinux )"
# We need sys-apps/shadow-4.0.7-r1, as that no longer installs login.pamd
src_unpack() {
unpack ${A}
cd ${S}
# The new configure changes do not detect utmp/logdir properly
epatch "${FILESDIR}"/${PN}-4.0.10-fix-configure.patch
# skeychallenge call needs updating #69741
epatch "${FILESDIR}"/${PN}-4.0.5-skey.patch
# Checked with upstream .. SUPATH and PATH valid again for PAM (bug #101047)
epatch "${FILESDIR}"/${PN}-4.0.11.1-SUPATH.patch
# Some UCLIBC patches
epatch "${FILESDIR}"/${PN}-4.0.11.1-ngettext.patch
epatch "${FILESDIR}"/${PN}-4.0.11.1-uclibc-missing-l64a.patch
elibtoolize
epunt_cxx
# Needed by the UCLIBC patches
autoconf
}
src_compile() {
append-ldflags -Wl,-z,now
[[ ${CTARGET:-${CHOST}} != ${CHOST} ]] \
&& export ac_cv_func_setpgrp_void=yes
econf \
--disable-desrpc \
--with-libcrypt \
--with-libcrack \
--enable-shared=no \
--enable-static=yes \
--with-libpam \
$(use_with skey libskey) \
$(use_with selinux) \
$(use_enable nls) \
|| die "bad configure"
cd ${S}/man
emake SUBDIRS="" \
man_XMANS="faillog.5.xml faillog.8.xml lastlog.8.xml \
login.1.xml login.access.5.xml login.defs.5.xml" \
man_MANS="faillog.5 faillog.8 lastlog.8 \
login.1 login.access.5 login.defs.5" \
|| die "emake man failed"
cd ${S}/libmisc
emake || die "emake libmisc failed"
cd ${S}/lib
emake || die "emake lib failed"
cd ${S}/src
emake faillog lastlog login || die "emake faillog lastlog login failed"
}
src_install() {
cd ${S}/man
make SUBDIRS="" \
man_XMANS="faillog.5.xml faillog.8.xml lastlog.8.xml \
login.1.xml login.defs.5.xml" \
man_MANS="faillog.5 faillog.8 lastlog.8 \
login.1 login.defs.5" \
DESTDIR=${D} install || die "emake man failed"
cd ${S}/src
into /
dobin ${S}/src/login
into /usr
dobin ${S}/src/{last,fail}log
newpamd "${FILESDIR}/login.pamd-4.0" login
use selinux || dosed -e '/@selinux@/d' /etc/pam.d/login
use selinux && dosed -e 's:@selinux@::g' /etc/pam.d/login
insinto /etc
insopts -m0644
newins "${FILESDIR}/login.defs-4.0" login.defs
# Also install another one that we can use to check if
# we need to update it if FORCE_LOGIN_DEFS = "yes"
[ "${FORCE_LOGIN_DEFS}" = "yes" ] \
&& newins "${FILESDIR}/login.defs" login.defs.new
dodoc ChangeLog NEWS README TODO
}
pkg_preinst() {
rm -f "${ROOT}/etc/login.defs.new"
}
pkg_postinst() {
[ "${FORCE_LOGIN_DEFS}" != "yes" ] && return 0
ewarn "Due to a compatibility issue, ${ROOT}etc/login.defs "
ewarn "is being updated automatically. Your old login.defs"
ewarn "will be backed up as: ${ROOT}etc/login.defs.bak"
echo
local CHECK1="`md5sum ${ROOT}/etc/login.defs | cut -d ' ' -f 1`"
local CHECK2="`md5sum ${ROOT}/etc/login.defs.new | cut -d ' ' -f 1`"
if [ "${CHECK1}" != "${CHECK2}" ]
then
cp -pPR ${ROOT}/etc/login.defs ${ROOT}/etc/login.defs.bak
mv -f ${ROOT}/etc/login.defs.new ${ROOT}/etc/login.defs
elif [ ! -f ${ROOT}/etc/login.defs ]
then
mv -f ${ROOT}/etc/login.defs.new ${ROOT}/etc/login.defs
else
rm -f ${ROOT}/etc/login.defs.new
fi
}
|