summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDiego Elio Pettenò <flameeyes@gentoo.org>2006-04-21 11:58:17 +0000
committerDiego Elio Pettenò <flameeyes@gentoo.org>2006-04-21 11:58:17 +0000
commit737e667745ef7171537199cce63c3b1d97a55fa8 (patch)
treeeea981caf7379d1e49f8c9a39c5ebc774504e668 /sys-libs/pam
parentUpdate local useflags for dev-libs/pam_pkcs11 -> sys-auth/pam_pkcs11. (diff)
downloadgentoo-2-737e667745ef7171537199cce63c3b1d97a55fa8.tar.gz
gentoo-2-737e667745ef7171537199cce63c3b1d97a55fa8.tar.bz2
gentoo-2-737e667745ef7171537199cce63c3b1d97a55fa8.zip
Drop old versions.
(Portage version: 2.1_pre7-r5)
Diffstat (limited to 'sys-libs/pam')
-rw-r--r--sys-libs/pam/ChangeLog7
-rw-r--r--sys-libs/pam/files/digest-pam-0.77-r63
-rw-r--r--sys-libs/pam/files/digest-pam-0.77-r83
-rw-r--r--sys-libs/pam/files/digest-pam-0.78-r24
-rw-r--r--sys-libs/pam/files/digest-pam-0.78-r44
-rw-r--r--sys-libs/pam/files/pam-0.77-console-reset.patch54
-rw-r--r--sys-libs/pam/pam-0.77-r6.ebuild306
-rw-r--r--sys-libs/pam/pam-0.77-r8.ebuild310
-rw-r--r--sys-libs/pam/pam-0.78-r2.ebuild387
-rw-r--r--sys-libs/pam/pam-0.78-r4.ebuild391
10 files changed, 6 insertions, 1463 deletions
diff --git a/sys-libs/pam/ChangeLog b/sys-libs/pam/ChangeLog
index b3776fe758f5..509ce09a018b 100644
--- a/sys-libs/pam/ChangeLog
+++ b/sys-libs/pam/ChangeLog
@@ -1,6 +1,11 @@
# ChangeLog for sys-libs/pam
# Copyright 2002-2006 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-libs/pam/ChangeLog,v 1.100 2006/04/21 11:31:11 flameeyes Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/pam/ChangeLog,v 1.101 2006/04/21 11:58:16 flameeyes Exp $
+
+ 21 Apr 2006; Diego Pettenò <flameeyes@gentoo.org>
+ -files/pam-0.77-console-reset.patch, -pam-0.77-r6.ebuild,
+ -pam-0.77-r8.ebuild, -pam-0.78-r2.ebuild, -pam-0.78-r4.ebuild:
+ Drop old versions.
21 Apr 2006; Diego Pettenò <flameeyes@gentoo.org> pam-0.99.3.0.ebuild:
Tweak dependencies a bit.
diff --git a/sys-libs/pam/files/digest-pam-0.77-r6 b/sys-libs/pam/files/digest-pam-0.77-r6
deleted file mode 100644
index ad777f5643c8..000000000000
--- a/sys-libs/pam/files/digest-pam-0.77-r6
+++ /dev/null
@@ -1,3 +0,0 @@
-MD5 be5a470e553ba71c20e9bbc7665f3754 Linux-PAM-0.77.tar.gz 442569
-MD5 f626acfce1f602df0f592b716c0e12f9 pam-0.77-patches-1.7.tar.bz2 115022
-MD5 df71961002b552c0e72c6e4e358f27e1 db-4.1.25.tar.gz 3080234
diff --git a/sys-libs/pam/files/digest-pam-0.77-r8 b/sys-libs/pam/files/digest-pam-0.77-r8
deleted file mode 100644
index 222ac5b0c5c9..000000000000
--- a/sys-libs/pam/files/digest-pam-0.77-r8
+++ /dev/null
@@ -1,3 +0,0 @@
-MD5 be5a470e553ba71c20e9bbc7665f3754 Linux-PAM-0.77.tar.gz 442569
-MD5 5e9a2cb5730dfe5ded7fd20b49af2f07 pam-0.77-patches-1.9.tar.bz2 115014
-MD5 df71961002b552c0e72c6e4e358f27e1 db-4.1.25.tar.gz 3080234
diff --git a/sys-libs/pam/files/digest-pam-0.78-r2 b/sys-libs/pam/files/digest-pam-0.78-r2
deleted file mode 100644
index 04e882013f62..000000000000
--- a/sys-libs/pam/files/digest-pam-0.78-r2
+++ /dev/null
@@ -1,4 +0,0 @@
-MD5 58cd055892e97648651d5a318888f3a0 Linux-PAM-0.78.tar.gz 488936
-MD5 ee1a1ab60f9868ea2e0bddf8492df009 pam-0.78-patches-1.2.tar.bz2 86593
-MD5 fcc481d52c3b80e20a328f8c0cb042bd db-4.3.27.tar.gz 5921872
-MD5 777d2e34a60edad28319207b576cda91 glib-2.6.5.tar.bz2 2357089
diff --git a/sys-libs/pam/files/digest-pam-0.78-r4 b/sys-libs/pam/files/digest-pam-0.78-r4
deleted file mode 100644
index be3a66827628..000000000000
--- a/sys-libs/pam/files/digest-pam-0.78-r4
+++ /dev/null
@@ -1,4 +0,0 @@
-MD5 58cd055892e97648651d5a318888f3a0 Linux-PAM-0.78.tar.gz 488936
-MD5 fcc481d52c3b80e20a328f8c0cb042bd db-4.3.27.tar.gz 5921872
-MD5 777d2e34a60edad28319207b576cda91 glib-2.6.5.tar.bz2 2357089
-MD5 c7b9d6d52902ead5f4c10c277e441f30 pam-0.78-patches-1.3.tar.bz2 87223
diff --git a/sys-libs/pam/files/pam-0.77-console-reset.patch b/sys-libs/pam/files/pam-0.77-console-reset.patch
deleted file mode 100644
index ff45659366bd..000000000000
--- a/sys-libs/pam/files/pam-0.77-console-reset.patch
+++ /dev/null
@@ -1,54 +0,0 @@
---- Linux-PAM-0.77/modules/pam_console/pam_console_apply.c.console-reset 2003-07-08 05:16:28.000000000 +0200
-+++ Linux-PAM-0.77/modules/pam_console/pam_console_apply.c 2003-07-10 22:50:26.000000000 +0200
-@@ -41,8 +41,9 @@
- va_list args;
- if (debug_p && !debug) return;
- va_start(args, format);
-- fprintf(stderr, format, args);
-+ vfprintf(stderr, format, args);
- va_end(args);
-+ fprintf(stderr, "\n");
- }
-
- int
---- Linux-PAM-0.77/modules/pam_console/config.y.az 2004-10-31 14:39:41.519539120 +0200
-+++ Linux-PAM-0.77/modules/pam_console/config.y 2004-10-31 14:42:44.110781032 +0200
-@@ -425,6 +425,8 @@
- reset_permissions(pam_handle_t *pamh, const char *consolename, int nonroot_ok) {
- struct passwd *pwd;
- struct group *grp;
-+ uid_t pw_uid;
-+ gid_t gr_gid;
- config *c;
- GSList *cl;
-
-@@ -439,20 +441,24 @@
- if (pwd == NULL) {
- _pam_log(LOG_ERR, FALSE, "getpwnam failed for %s",
- c->revert_owner ? c->revert_owner : "root");
-- return -1;
-+ pw_uid = 0;
-+ } else {
-+ pw_uid = pwd->pw_uid;
- }
- grp = _pammodutil_getgrnam(pamh, c->revert_group ? c->revert_group : "root");
- if (grp == NULL) {
- _pam_log(LOG_ERR, FALSE, "getgrnam failed for %s",
- c->revert_group ? c->revert_group : "root");
-- return -1;
-- }
-+ gr_gid = 0;
-+ } else {
-+ gr_gid = pwd->pw_uid;
-+ }
- if (c->device_class->list)
- chmod_files(c->revert_mode ? c->revert_mode : "0600",
-- pwd->pw_uid, grp->gr_gid, NULL, c->device_class->list);
-+ pw_uid, gr_gid, NULL, c->device_class->list);
- else
- chmod_files(c->revert_mode ? c->revert_mode : "0600",
-- pwd->pw_uid, grp->gr_gid, c->device_class->name, NULL);
-+ pw_uid, gr_gid, c->device_class->name, NULL);
- }
- }
- return 0;
diff --git a/sys-libs/pam/pam-0.77-r6.ebuild b/sys-libs/pam/pam-0.77-r6.ebuild
deleted file mode 100644
index 738ccdf1bd25..000000000000
--- a/sys-libs/pam/pam-0.77-r6.ebuild
+++ /dev/null
@@ -1,306 +0,0 @@
-# Copyright 1999-2005 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-libs/pam/pam-0.77-r6.ebuild,v 1.6 2005/06/30 10:29:47 flameeyes Exp $
-
-PATCH_LEVEL="1.7"
-BDB_VER="4.1.25"
-PAM_REDHAT_VER="0.77-4"
-
-RDEPEND=">=sys-libs/cracklib-2.7-r8
- selinux? ( sys-libs/libselinux )
- berkdb? ( >=sys-libs/db-${BDB_VER} )"
-
-DEPEND="$RDEPEND
- dev-lang/perl
- =dev-libs/glib-1.2*
- >=sys-devel/autoconf-2.59
- >=sys-devel/automake-1.6
- >=sys-devel/flex-2.5.4a-r5
- pwdb? ( >=sys-libs/pwdb-0.62 )"
-
-# Have python sandbox issues currently ...
-# doc? ( app-text/sgmltools-lite )
-
-# BDB is internalized to get a non-threaded lib for pam_userdb.so to
-# be built with. The runtime-only dependency on BDB suggests the user
-# will use the system-installed db_load to create pam_userdb databases.
-# PWDB is internalized because it is specifically designed to work
-# with Linux-PAM. I'm not really certain how pervasive the Radius
-# and NIS services of PWDB are at this point.
-#
-# With all the arch's we support, I rather use external pwdb, and then
-# link statically to it - <azarah@gentoo.org> (09 Nov 2003).
-
-#inherit needs to be after DEPEND definition to protect RDEPEND
-inherit toolchain-funcs eutils flag-o-matic gnuconfig
-
-# Note that we link to static versions of glib (pam_console.so)
-# and pwdb (pam_pwdb.so) ...
-
-HOMEPAGE="http://www.kernel.org/pub/linux/libs/pam/"
-DESCRIPTION="Pluggable Authentication Modules"
-
-S="${WORKDIR}/Linux-PAM-${PV}"
-S2="${WORKDIR}/pam-${PV}-patches"
-SRC_URI="http://www.kernel.org/pub/linux/libs/pam/pre/library/Linux-PAM-${PV}.tar.gz
- mirror://gentoo/pam-${PV}-patches-${PATCH_LEVEL}.tar.bz2
- berkdb? ( http://www.sleepycat.com/update/snapshot/db-${BDB_VER}.tar.gz )"
-
-LICENSE="PAM"
-SLOT="0"
-KEYWORDS="alpha amd64 arm hppa ia64 mips ppc ppc64 s390 sh sparc x86"
-IUSE="berkdb pwdb selinux"
-
-apply_pam_patches() {
- local x=
- local patch=
-
- for x in redhat gentoo
- do
- cat ${S2}/list.${x}-patches | grep -v '^#' | grep -v '^$' | while read X
- do
- patch="$(echo $X | sed -e 's|^Patch.*: \(.*\)|\1|')"
- epatch ${S2}/${x}-patches/${patch} || die "Failed to apply ${patch}!"
- done
- done
-}
-
-pkg_setup() {
- local x=
-
- if use pwdb; then
- for x in libpwdb.a libcrack.a; do
- if [ ! -f "${ROOT}/usr/$(get_libdir)/${x}" ]; then
- eerror "Could not find /usr/$(get_libdir)/${x} needed to build Linux-PAM!"
- die "Could not find /usr/$(get_libdir)/${x} needed to build Linux-PAM!"
- fi
- done
- fi
-
- return 0
-}
-
-src_unpack() {
- unpack ${A} || die "Couldn't unpack ${A}"
-
- cd ${S} || die
- tar -zxf ${S2}/pam-redhat-${PAM_REDHAT_VER}.tar.gz \
- || die "Couldn't unpack pam-redhat-${PAM_REDHAT_VER}.tar.gz"
-
- apply_pam_patches
-
- use selinux && epatch ${S2}/gentoo-patches/pam-selinux.patch
-
- for readme in modules/pam_*/README ; do
- cp -f "${readme}" doc/txts/README.$(dirname "${readme}" | \
- sed -e 's|^modules/||')
- done
-
- # Fix building of sys-libs/pam for no-symlink amd64 profiles
- # BUG #96385
- sed -i \
- -e "s|^\(MODULE_SIMPLE_EXTRALIBS=.*\/usr\/\)lib\/|\1$(get_libdir)\/|" \
- ${S}/modules/pam_cracklib/Makefile || die sed failed
-
- cp /usr/share/automake/install-sh . || die
- export WANT_AUTOCONF=2.5
- autoconf || die
-}
-
-src_compile() {
- export CFLAGS="${CFLAGS} -fPIC"
-
- if use berkdb
- then
- einfo "Building Berkley DB ${BDB_VER}..."
- cd ${WORKDIR}
- cd db-${BDB_VER}/dist || die
-
- # Pam uses berkdb, which db-4.1.x series can't detect mips64, so we fix it
- if use mips; then
- einfo "Updating berkdb config.{guess,sub} for mips"
- local OLDS="${S}"
- S="${WORKDIR}/db-${BDB_VER}/dist"
- gnuconfig_update
- S="${OLDS}"
- fi
-
- echo db_cv_mutex=UNIX/fcntl > config.cache
- ./s_config
- ./configure \
- --cache-file=config.cache \
- --disable-compat185 \
- --disable-cxx \
- --disable-diagnostic \
- --disable-dump185 \
- --disable-java \
- --disable-rpc \
- --disable-tcl \
- --disable-shared \
- --with-pic \
- --with-uniquename=_pam \
- --prefix=${S} \
- --includedir=${S}/include \
- --libdir=${S}/lib || die "Bad BDB ./configure"
-
- # XXX hack out O_DIRECT support in db4 for now.
- perl -pi -e 's/#define HAVE_O_DIRECT 1/#undef HAVE_O_DIRECT/' \
- db_config.h
-
- make || die "BDB build failed"
- make install || die
-
- export CPPFLAGS="-I${S}/include"
- export LDFLAGS="-L${S}/lib"
- export LIBNAME="lib"
- fi
-
- if [ "${ARCH}" = "alpha" ]
- then
- if [ ! -z "$(strings -a /usr/lib/libglib.a | grep -i 'Compaq Computer Corp.')" ]
- then
- # should be LDFLAGS, but this configure is screwy.
- echo
- einfo "It looks like you compiled glib with ccc, this is okay, but"
- einfo "I'll need to force gcc to link with libots...."
- echo
- append-flags -lots
- sed -i -e 's/$(CC) -o/$(CC) -lots -o/g' ${S}/modules/pam_pwdb/Makefile
- fi
- fi
-
- einfo "Building Linux-PAM ${PV}..."
- cd ${S}
- ./configure \
- --libdir=/$(get_libdir) \
- --enable-static-libpam \
- --enable-fakeroot=${D} \
- --enable-isadir=/$(get_libdir)/security \
- --host=${CHOST} || die
-
- # Python stuff in docs gives sandbox problems
- sed -i -e 's|modules doc examples|modules|' Makefile
-
- # Fix warnings for gcc-2.95.3
- if [ "$(gcc-version)" = "2.95" ]
- then
- sed -i -e "s:-Wpointer-arith::" Make.Rules
- fi
-
- if ! use berkdb
- then
- # Do not build pam_userdb.so ...
- sed -i -e "s:^HAVE_NDBM_H=yes:HAVE_NDBM_H=no:" \
- -e "s:^HAVE_LIBNDBM=yes:HAVE_LIBNDBM=no:" \
- -e "s:^HAVE_LIBDB=yes:HAVE_LIBDB=no:" \
- Make.Rules
-
- # Also edit the configuration file else the wrong include files
- # get used
- sed -i -e "s:^#define HAVE_NDBM_H.*$:/* #undef HAVE_NDBM_H */:" \
- -e "s:^#define HAVE_DB_H.*$:/* #undef HAVE_DB_H */:" \
- _pam_aconf.h
-
- else
- # Do not link pam_userdb.so to db-1.85 ...
- sed -i -e "s:^HAVE_NDBM_H=yes:HAVE_NDBM_H=no:" \
- -e "s:^HAVE_LIBNDBM=yes:HAVE_LIBNDBM=no:" \
- Make.Rules
-
- # Also edit the configuration file else the wrong include files
- # get used
- sed -i -e "s:^#define HAVE_NDBM_H.*$:/* #undef HAVE_NDBM_H */:" _pam_aconf.h
- fi
-
- make || die "PAM build failed"
-}
-
-src_install() {
- local x=
-
- einfo "Installing Linux-PAM ${PV}..."
- make FAKEROOT=${D} \
- LDCONFIG="" \
- install || die
-
- # Make sure every module built.
- # Do not remove this, as some module can fail to build
- # and effectively lock the user out of his system.
- einfo "Checking if all modules were built..."
- for x in ${S}/modules/pam_*
- do
- if [ -d ${x} ]
- then
- # Its OK if the module failed when we didnt ask for it anyway
- if ! ls -1 ${D}/$(get_libdir)/security/$(basename ${x})*.so &> /dev/null
- then
- if ! use berkdb && [ "$(basename ${x})" = "pam_userdb" ]
- then
- continue
- fi
- if ! use pwdb && [ "$(basename ${x})" = "pam_pwdb" ]
- then
- continue
- fi
- if ! use pwdb && [ "$(basename ${x})" = "pam_radius" ]
- then
- continue
- fi
- eerror "ERROR: $(basename ${x}) module did not build."
- exit 1
- else
- # Remove the ones we didnt want if it ended up building ok anyways
- if ! use berkdb && [ "$(basename ${x})" = "pam_userdb" ]
- then
- rm -f ${D}/$(get_libdir)/security/pam_userdb*
- fi
- if ! use pwdb && [ "$(basename ${x})" = "pam_pwdb" ]
- then
- rm -f ${D}/$(get_libdir)/security/pam_pwdb*
- fi
- if ! use pwdb && [ "$(basename ${x})" = "pam_radius" ]
- then
- rm -f ${D}/$(get_libdir)/security/pam_radius*
- fi
- fi
- fi
- done
-
- dodir /usr/$(get_libdir)
- cd ${D}/$(get_libdir)
- for x in pam pamc pam_misc
- do
- rm lib${x}.so
- ln -s lib${x}.so.${PV} lib${x}.so
- ln -s lib${x}.so.${PV} lib${x}.so.0
- mv lib${x}.a ${D}/usr/$(get_libdir)
- # See bug #4411
- gen_usr_ldscript lib${x}.so
- done
-
- cd ${S}
- doman doc/man/*.[0-9]
-
- dodoc CHANGELOG Copyright README
- docinto modules ; dodoc modules/README ; dodoc doc/txts/README.*
- docinto txt ; dodoc doc/specs/*.txt #doc/txts/*.txt
-# docinto print ; dodoc doc/ps/*.ps
-
-# docinto html
-# dohtml -r doc/html/
-
- # need this for pam_console
- keepdir /var/run/console
-
- insinto /etc/pam.d
- for x in ${FILESDIR}/pam.d/*
- do
- if [ -f ${x} ]
- then
- doins ${x}
- fi
- done
-
- insinto /etc/security
- doins ${FILESDIR}/pam_env.conf
-}
diff --git a/sys-libs/pam/pam-0.77-r8.ebuild b/sys-libs/pam/pam-0.77-r8.ebuild
deleted file mode 100644
index e70a12181d34..000000000000
--- a/sys-libs/pam/pam-0.77-r8.ebuild
+++ /dev/null
@@ -1,310 +0,0 @@
-# Copyright 1999-2005 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-libs/pam/pam-0.77-r8.ebuild,v 1.7 2005/07/28 14:46:40 seemant Exp $
-
-PATCH_LEVEL="1.9"
-BDB_VER="4.1.25"
-PAM_REDHAT_VER="0.77-4"
-
-RDEPEND=">=sys-libs/cracklib-2.7-r8
- selinux? ( sys-libs/libselinux )
- berkdb? ( >=sys-libs/db-${BDB_VER} )"
-
-DEPEND="${RDEPEND}
- dev-lang/perl
- =dev-libs/glib-1.2*
- >=sys-devel/autoconf-2.59
- >=sys-devel/automake-1.6
- >=sys-devel/flex-2.5.4a-r5
- pwdb? ( >=sys-libs/pwdb-0.62 )"
-
-# Have python sandbox issues currently ...
-# doc? ( app-text/sgmltools-lite )
-
-# BDB is internalized to get a non-threaded lib for pam_userdb.so to
-# be built with. The runtime-only dependency on BDB suggests the user
-# will use the system-installed db_load to create pam_userdb databases.
-# PWDB is internalized because it is specifically designed to work
-# with Linux-PAM. I'm not really certain how pervasive the Radius
-# and NIS services of PWDB are at this point.
-#
-# With all the arch's we support, I rather use external pwdb, and then
-# link statically to it - <azarah@gentoo.org> (09 Nov 2003).
-
-#inherit needs to be after DEPEND definition to protect RDEPEND
-inherit toolchain-funcs eutils flag-o-matic gnuconfig
-
-# Note that we link to static versions of glib (pam_console.so)
-# and pwdb (pam_pwdb.so) ...
-
-HOMEPAGE="http://www.kernel.org/pub/linux/libs/pam/"
-DESCRIPTION="Pluggable Authentication Modules"
-
-S="${WORKDIR}/Linux-PAM-${PV}"
-S2="${WORKDIR}/pam-${PV}-patches"
-SRC_URI="http://www.kernel.org/pub/linux/libs/pam/pre/library/Linux-PAM-${PV}.tar.gz
- mirror://gentoo/pam-${PV}-patches-${PATCH_LEVEL}.tar.bz2
- berkdb? ( http://www.sleepycat.com/update/snapshot/db-${BDB_VER}.tar.gz )"
-
-LICENSE="PAM"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
-IUSE="berkdb pwdb selinux"
-
-apply_pam_patches() {
- local x=
- local y=
- local patches="${T}/patches.$$"
-
- for x in redhat gentoo
- do
- rm -f "${patches}"
-
- # Need to be a '| while read x', as some lines may have spaces ...
- cat "${S2}/list.${x}-patches" | grep -v '^#' | grep -v '^$' | while read y
- do
- # Remove the 'Patch[0-9]*: ' from the redhat list
- echo "${y}" | sed -e 's|^Patch.*: \(.*\)|\1|' >> "${patches}"
- done
- for y in $(cat "${patches}")
- do
- epatch "${S2}/${x}-patches/${y}"
- done
- done
-}
-
-pkg_setup() {
- local x=
-
- if use pwdb; then
- for x in libpwdb.a libcrack.a; do
- if [ ! -f "${ROOT}/usr/$(get_libdir)/${x}" ]; then
- eerror "Could not find /usr/$(get_libdir)/${x} needed to build Linux-PAM!"
- die "Could not find /usr/$(get_libdir)/${x} needed to build Linux-PAM!"
- fi
- done
- fi
-
- return 0
-}
-
-src_unpack() {
- unpack ${A} || die "Couldn't unpack ${A}"
-
- cd ${S} || die
- tar -zxf ${S2}/pam-redhat-${PAM_REDHAT_VER}.tar.gz \
- || die "Couldn't unpack pam-redhat-${PAM_REDHAT_VER}.tar.gz"
-
- apply_pam_patches
-
- use selinux && epatch ${S2}/gentoo-patches/pam-selinux.patch
-
- for readme in modules/pam_*/README ; do
- cp -f "${readme}" doc/txts/README.$(dirname "${readme}" | \
- sed -e 's|^modules/||')
- done
-
- cp /usr/share/automake/install-sh . || die
- export WANT_AUTOCONF=2.5
- autoconf || die
-}
-
-src_compile() {
- export CFLAGS="${CFLAGS} -fPIC"
-
- if use berkdb
- then
- einfo "Building Berkley DB ${BDB_VER}..."
- cd ${WORKDIR}
- cd db-${BDB_VER}/dist || die
-
- # Pam uses berkdb, which db-4.1.x series can't detect mips64, so we fix it
- if use mips; then
- einfo "Updating berkdb config.{guess,sub} for mips"
- local OLDS="${S}"
- S="${WORKDIR}/db-${BDB_VER}/dist"
- gnuconfig_update
- S="${OLDS}"
- fi
-
- echo db_cv_mutex=UNIX/fcntl > config.cache
- ./s_config
- ./configure \
- --cache-file=config.cache \
- --disable-compat185 \
- --disable-cxx \
- --disable-diagnostic \
- --disable-dump185 \
- --disable-java \
- --disable-rpc \
- --disable-tcl \
- --disable-shared \
- --with-pic \
- --with-uniquename=_pam \
- --prefix=${S} \
- --includedir=${S}/include \
- --libdir=${S}/lib || die "Bad BDB ./configure"
-
- # XXX hack out O_DIRECT support in db4 for now.
- perl -pi -e 's/#define HAVE_O_DIRECT 1/#undef HAVE_O_DIRECT/' \
- db_config.h
-
- make || die "BDB build failed"
- make install || die
-
- export CPPFLAGS="-I${S}/include"
- export LDFLAGS="-L${S}/lib"
- export LIBNAME="lib"
- fi
-
- if [ "${ARCH}" = "alpha" ]
- then
- if [ ! -z "$(strings -a /usr/lib/libglib.a | grep -i 'Compaq Computer Corp.')" ]
- then
- # should be LDFLAGS, but this configure is screwy.
- echo
- einfo "It looks like you compiled glib with ccc, this is okay, but"
- einfo "I'll need to force gcc to link with libots...."
- echo
- append-flags -lots
- sed -i -e 's/$(CC) -o/$(CC) -lots -o/g' ${S}/modules/pam_pwdb/Makefile
- fi
- fi
-
- einfo "Building Linux-PAM ${PV}..."
- cd ${S}
- ./configure \
- --libdir=/$(get_libdir) \
- --enable-static-libpam \
- --enable-fakeroot=${D} \
- --enable-isadir=/$(get_libdir)/security \
- --host=${CHOST} || die
-
- # Python stuff in docs gives sandbox problems
- sed -i -e 's|modules doc examples|modules|' Makefile
-
- # Fix warnings for gcc-2.95.3
- if [ "$(gcc-version)" = "2.95" ]
- then
- sed -i -e "s:-Wpointer-arith::" Make.Rules
- fi
-
- if ! use berkdb
- then
- # Do not build pam_userdb.so ...
- sed -i -e "s:^HAVE_NDBM_H=yes:HAVE_NDBM_H=no:" \
- -e "s:^HAVE_LIBNDBM=yes:HAVE_LIBNDBM=no:" \
- -e "s:^HAVE_LIBDB=yes:HAVE_LIBDB=no:" \
- Make.Rules
-
- # Also edit the configuration file else the wrong include files
- # get used
- sed -i -e "s:^#define HAVE_NDBM_H.*$:/* #undef HAVE_NDBM_H */:" \
- -e "s:^#define HAVE_DB_H.*$:/* #undef HAVE_DB_H */:" \
- _pam_aconf.h
-
- else
- # Do not link pam_userdb.so to db-1.85 ...
- sed -i -e "s:^HAVE_NDBM_H=yes:HAVE_NDBM_H=no:" \
- -e "s:^HAVE_LIBNDBM=yes:HAVE_LIBNDBM=no:" \
- Make.Rules
-
- # Also edit the configuration file else the wrong include files
- # get used
- sed -i -e "s:^#define HAVE_NDBM_H.*$:/* #undef HAVE_NDBM_H */:" _pam_aconf.h
- fi
-
- make || die "PAM build failed"
-}
-
-src_install() {
- local x=
-
- einfo "Installing Linux-PAM ${PV}..."
- make FAKEROOT=${D} \
- LDCONFIG="" \
- install || die
-
- # Make sure every module built.
- # Do not remove this, as some module can fail to build
- # and effectively lock the user out of his system.
- einfo "Checking if all modules were built..."
- for x in ${S}/modules/pam_*
- do
- if [ -d ${x} ]
- then
- # Its OK if the module failed when we didnt ask for it anyway
- if ! ls -1 ${D}/$(get_libdir)/security/$(basename ${x})*.so &> /dev/null
- then
- if ! use berkdb && [ "$(basename ${x})" = "pam_userdb" ]
- then
- continue
- fi
- if ! use pwdb && [ "$(basename ${x})" = "pam_pwdb" ]
- then
- continue
- fi
- if ! use pwdb && [ "$(basename ${x})" = "pam_radius" ]
- then
- continue
- fi
- eerror "ERROR: $(basename ${x}) module did not build."
- exit 1
- else
- # Remove the ones we didnt want if it ended up building ok anyways
- if ! use berkdb && [ "$(basename ${x})" = "pam_userdb" ]
- then
- rm -f ${D}/$(get_libdir)/security/pam_userdb*
- fi
- if ! use pwdb && [ "$(basename ${x})" = "pam_pwdb" ]
- then
- rm -f ${D}/$(get_libdir)/security/pam_pwdb*
- fi
- if ! use pwdb && [ "$(basename ${x})" = "pam_radius" ]
- then
- rm -f ${D}/$(get_libdir)/security/pam_radius*
- fi
- fi
- fi
- done
-
- dodir /usr/$(get_libdir)
- cd ${D}/$(get_libdir)
- for x in pam pamc pam_misc
- do
- rm lib${x}.so
- ln -s lib${x}.so.${PV} lib${x}.so
- ln -s lib${x}.so.${PV} lib${x}.so.0
- mv lib${x}.a ${D}/usr/$(get_libdir)
- # See bug #4411
- gen_usr_ldscript lib${x}.so
- done
-
- cd ${S}
- doman doc/man/*.[0-9]
-
- dodoc CHANGELOG Copyright README
- docinto modules ; dodoc modules/README ; dodoc doc/txts/README.*
- # Install our own README.pam_console
- docinto ; dodoc ${FILESDIR}/README.pam_console
- docinto txt ; dodoc doc/specs/*.txt #doc/txts/*.txt
-# docinto print ; dodoc doc/ps/*.ps
-
-# docinto html
-# dohtml -r doc/html/
-
- # need this for pam_console
- keepdir /var/run/console
-
- insinto /etc/pam.d
- for x in ${FILESDIR}/pam.d/*
- do
- if [ -f ${x} ]
- then
- doins ${x}
- fi
- done
-
- insinto /etc/security
- doins ${FILESDIR}/pam_env.conf
-}
diff --git a/sys-libs/pam/pam-0.78-r2.ebuild b/sys-libs/pam/pam-0.78-r2.ebuild
deleted file mode 100644
index 7ab1a8ea233e..000000000000
--- a/sys-libs/pam/pam-0.78-r2.ebuild
+++ /dev/null
@@ -1,387 +0,0 @@
-# Copyright 1999-2005 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-libs/pam/pam-0.78-r2.ebuild,v 1.28 2005/08/23 17:28:09 flameeyes Exp $
-
-FORCE_SYSTEMAUTH_UPDATE="no"
-
-# BDB is internalized to get a non-threaded lib for pam_userdb.so to
-# be built with. The runtime-only dependency on BDB suggests the user
-# will use the system-installed db_load to create pam_userdb databases.
-# PWDB is internalized because it is specifically designed to work
-# with Linux-PAM. I'm not really certain how pervasive the Radius
-# and NIS services of PWDB are at this point.
-
-PATCH_LEVEL="1.2"
-BDB_VER="4.3.27"
-BDB_VER2="4.1.25"
-GLIB_VER="2.6.5"
-PAM_REDHAT_VER="0.78-3"
-
-HOMEPAGE="http://www.kernel.org/pub/linux/libs/pam/"
-DESCRIPTION="Pluggable Authentication Modules"
-
-S="${WORKDIR}/Linux-PAM-${PV}"
-S2="${WORKDIR}/pam-${PV}-patches"
-SRC_URI="http://www.kernel.org/pub/linux/libs/pam/pre/library/Linux-PAM-${PV}.tar.gz
- mirror://gentoo/pam-${PV}-patches-${PATCH_LEVEL}.tar.bz2
- berkdb? ( http://downloads.sleepycat.com/db-${BDB_VER}.tar.gz )
- pam_console? ( ftp://ftp.gtk.org/pub/gtk/v2.6/glib-${GLIB_VER}.tar.bz2 )"
-
-LICENSE="PAM"
-SLOT="0"
-KEYWORDS="alpha amd64 arm hppa ia64 m68k mips ppc ppc64 s390 sh sparc x86"
-IUSE="berkdb pwdb selinux pam_chroot pam_console pam_timestamp nis"
-
-RDEPEND=">=sys-libs/cracklib-2.8.3
- selinux? ( sys-libs/libselinux )
- berkdb? ( >=sys-libs/db-${BDB_VER2} )
- pwdb? ( >=sys-libs/pwdb-0.62 )"
-
-# Note that we link to static versions of glib (pam_console.so)
-# and pwdb (pam_pwdb.so), so we need glib-2.6.2-r1 or later ...
-DEPEND="${RDEPEND}
- dev-lang/perl
- dev-util/pkgconfig
- >=sys-devel/autoconf-2.59
- >=sys-devel/automake-1.6
- >=sys-devel/flex-2.5.4a-r5
- pwdb? ( >=sys-libs/pwdb-0.62 )"
-
-# Have python sandbox issues currently ...
-# doc? ( app-text/sgmltools-lite )
-
-PROVIDE="virtual/pam"
-
-#inherit needs to be after DEPEND definition to protect RDEPEND
-inherit toolchain-funcs eutils flag-o-matic gnuconfig pam
-
-apply_pam_patches() {
- local x=
- local y=
- local patches="${T}/patches.$$"
-
- for x in redhat gentoo; do
- rm -f "${patches}"
-
- # Need to be a '| while read x', as some lines may have spaces ...
- grep -v '^#' "${S2}/list.${x}-patches" | grep -v '^$' | while read y; do
- # Remove the 'Patch[0-9]*: ' from the redhat list
- echo "${y}" | sed -e 's|^Patch.*: \(.*\)|\1|' >> "${patches}"
- done
- for y in $(cat "${patches}"); do
- epatch "${S2}/${x}-patches/${y}"
- done
- done
-}
-
-pkg_setup() {
- local x=
-
- #if use pwdb; then
- # for x in libpwdb.a libcrack.a; do
- # if [ ! -f "${ROOT}/usr/$(get_libdir)/${x}" ]; then
- # eerror "Could not find /usr/$(get_libdir)/${x} needed to build Linux-PAM!"
- # die "Could not find /usr/$(get_libdir)/${x} needed to build Linux-PAM!"
- # fi
- # done
- #fi
- #if use pam_console; then
- # x="libglib-2.0.a"
- # if [ ! -f "${ROOT}/usr/$(get_libdir)/${x}" ]; then
- # eerror "Could not find /usr/$(get_libdir)/${x} needed to build Linux-PAM!"
- # eerror "Please remerge glib-2.6.* to make sure you have static changes."
- # die "Could not find /usr/$(get_libdir)/${x} needed to build Linux-PAM!"
- # fi
- #fi
-
- return 0
-}
-
-src_unpack() {
- local x=
-
- unpack ${A} || die "Couldn't unpack ${A}"
-
- cd ${S} || die
- tar --no-same-owner -zxf ${S2}/pam-redhat-${PAM_REDHAT_VER}.tar.gz \
- || die "Couldn't unpack pam-redhat-${PAM_REDHAT_VER}.tar.gz"
- # These ones we do not want, or do not work with non RH
- rm -rf ${S}/modules/{pam_rps,pam_postgresok}
-
- apply_pam_patches
-
- if use selinux; then
- epatch ${S2}/gentoo-patches/pam-0.78-selinux.patch
- fi
-
- # Check which extra modules should be built
- # (Do this after apply_pam_patches(), else some may fail)
- for x in pam_chroot pam_console pam_timestamp; do
- use "${x}" || rm -rf "${S}/modules/${x}"
- done
- use berkdb || rm -rf "${S}/modules/pam_userdb"
- use pwdb || rm -rf "${S}/modules/pam_pwdb"
- use pwdb || rm -rf "${S}/modules/pam_radius"
-
- for x in $(find ${S} -type f -name 'Makefile*'); do
- use nis || sed -i -e 's: -DNIS::g' "${x}"
- done
- # NIS patch is broken for now
- use nis && echo 'NIS=yes' >> "${S}/Make.Rules.in"
-
- # Fixup libdir for 64bit arches
- sed -ie "s:@get_libdir:$(get_libdir):" ${S}/configure.in
-
- for readme in modules/pam_*/README; do
- cp -f "${readme}" doc/txts/README.$(dirname "${readme}" | \
- sed -e 's|^modules/||')
- done
-
- # Bug #80604 (If install-sh do not exist, touch it)
- cp /usr/share/automake/install-sh ${S}/ 2>/dev/null || touch install-sh
- export WANT_AUTOCONF=2.5
- autoconf || die
-}
-
-src_compile() {
- local BDB_DIR="${WORKDIR}/db-${BDB_VER}"
- local GLIB_DIR="${WORKDIR}/glib-${GLIB_VER}"
-
- # Bug #70471 (Compile issues with other locales)
- export LANG=C LC_ALL=C
-
- if use berkdb ; then
- einfo "Building Berkley DB ${BDB_VER}..."
- cd "${BDB_DIR}/build_unix" || die
-
- # Pam uses berkdb, which db-4.1.x series can't detect mips64, so we fix it
- if use mips ; then
- einfo "Updating BDB config.{guess,sub} for mips"
- S="${BDB_DIR}/dist" \
- gnuconfig_update
- fi
-
- #echo db_cv_mutex=UNIX/fcntl > config.cache
- #./s_config
- CFLAGS="${CFLAGS} -fPIC" \
- ../dist/configure \
- --host=${CHOST} \
- --cache-file=config.cache \
- --disable-compat185 \
- --disable-cxx \
- --disable-diagnostic \
- --disable-dump185 \
- --disable-java \
- --disable-rpc \
- --disable-tcl \
- --disable-shared \
- --disable-o_direct \
- --with-pic \
- --with-uniquename=_pam \
- --with-mutex="UNIX/fcntl" \
- --prefix="${S}" \
- --includedir="${S}/include" \
- --libdir="${S}/lib" || die "Bad BDB ./configure"
-
- # XXX: hack out O_DIRECT support in db4 for now.
- # (Done above now with --disable-o_direct now)
-
- make CC="$(tc-getCC)" || die "BDB build failed"
- make install || die
- fi
-
- if use pam_console ; then
- einfo "Building GLIB ${GLIB_VER}..."
- cd "${GLIB_DIR}" || die
-
- # The __attribute__((visibility("hidden"))) causes TEXTREL issues
- sed -i -s 's:G_GNUC_INTERNAL::g' "${GLIB_DIR}/glib"/*.c
-
- CFLAGS="${CFLAGS} -fPIC" \
- ./configure \
- --host=${CHOST} \
- --enable-static \
- --disable-shared \
- --with-pic \
- --disable-threads \
- --with-threads=none \
- --prefix="${S}" \
- --includedir="${S}/include" \
- --libdir="${S}/lib" || die "Bad GLIB ./configure"
-
- # Do not need to build the whole shebang
- cd "${GLIB_DIR}/glib" || die
- make CC="$(tc-getCC)" || die "GLIB build failed"
- make install || die
- # Install pkg-config stuff and needed headers
- cd "${GLIB_DIR}" || die
- make install-pkgconfigDATA install-exec-local || die
- fi
-
- if use berkdb || use pam_console ; then
- # Make sure out static libs are used
- export CFLAGS="-I${S}/include -Wl,-L${S}/lib ${CFLAGS}"
- export LDFLAGS="-L${S}/lib ${LDFLAGS}"
- export LIBNAME="lib"
- # Make sure pkg-config can find glib even if not installed in system
- export PKG_CONFIG_PATH="${S}/lib/pkgconfig:${PKG_CONFIG_PATH}"
- fi
-
- einfo "Building Linux-PAM ${PV}..."
- cd ${S}
- econf --enable-static-libpam \
- --enable-fakeroot="${D}" \
- --libdir="/$(get_libdir)" \
- --enable-isadir="../../$(get_libdir)/security" \
- || die
-
- # Python stuff in docs gives sandbox problems
- sed -i -e 's|modules doc examples|modules|' Makefile
-
- # Fix warnings for gcc-2.95.3
- if [[ $(gcc-version) = "2.95" ]] ; then
- sed -i -e "s:-Wpointer-arith::" Make.Rules
- fi
-
- if ! use berkdb ; then
- # Do not build pam_userdb.so ...
- sed -i -e "s:^HAVE_NDBM_H=yes:HAVE_NDBM_H=no:" \
- -e "s:^HAVE_LIBNDBM=yes:HAVE_LIBNDBM=no:" \
- -e "s:^HAVE_LIBDB=yes:HAVE_LIBDB=no:" \
- Make.Rules
-
- # Also edit the configuration file else the wrong include files
- # get used
- sed -i -e "s:^#define HAVE_NDBM_H.*$:/* #undef HAVE_NDBM_H */:" \
- -e "s:^#define HAVE_DB_H.*$:/* #undef HAVE_DB_H */:" \
- _pam_aconf.h
-
- else
- # Do not link pam_userdb.so to db-1.85 ...
- sed -i -e "s:^HAVE_NDBM_H=yes:HAVE_NDBM_H=no:" \
- -e "s:^HAVE_LIBNDBM=yes:HAVE_LIBNDBM=no:" \
- Make.Rules
-
- # Also edit the configuration file else the wrong include files
- # get used
- sed -i -e "s:^#define HAVE_NDBM_H.*$:/* #undef HAVE_NDBM_H */:" \
- _pam_aconf.h
- fi
-
- make CC="$(tc-getCC)" || die "PAM build failed"
-}
-
-src_install() {
- local x=
-
- einfo "Installing Linux-PAM ${PV}..."
- make FAKEROOT=${D} \
- LDCONFIG="" \
- install || die
-
- # Make sure every module built.
- # Do not remove this, as some module can fail to build
- # and effectively lock the user out of his system.
- einfo "Checking if all modules were built..."
- for x in ${S}/modules/pam_*; do
- if [[ -d ${x} ]] ; then
- local mod_name=$(basename "${x}")
- local sec_dir="${D}/$(get_libdir)/security"
-
- if ! ls -1 "${sec_dir}/${mod_name}"*.so &> /dev/null ; then
- echo
- eerror "ERROR: ${mod_name} module did not build."
- echo
- die "${mod_name} module did not build."
- fi
- if [[ -n $(ldd "${sec_dir}/${mod_name}"*.so 2>&1 | \
- grep "/usr/lib/" | \
- grep "/usr/$(get_libdir)/" | \
- grep -v "/usr/lib/gcc" | \
- grep -v "/usr/$(get_libdir)/gcc" | \
- grep -v "libsandbox") ]] ; then
- echo
- eerror "ERROR: ${mod_name} have dependencies in /usr."
- echo
- die "${mod_name} have dependencies in /usr."
- fi
- fi
- done
-
- dodir /usr/$(get_libdir)
- cd ${D}/$(get_libdir)
- for x in pam pamc pam_misc; do
- rm lib${x}.so
- ln -s lib${x}.so.${PV} lib${x}.so
- ln -s lib${x}.so.${PV} lib${x}.so.0
- mv lib${x}.a ${D}/usr/$(get_libdir)
- # See bug #4411
- gen_usr_ldscript lib${x}.so
- done
-
- cd ${S}
-
- # need this for pam_console
- keepdir /var/run/console
-
- for x in ${FILESDIR}/pam.d/*; do
- [[ -f ${x} ]] && dopamd ${x}
- done
-
- # Only add this one if needed.
- if [[ ${FORCE_SYSTEMAUTH_UPDATE} = "yes" ]] ; then
- newpamd ${FILESDIR}/pam.d/system-auth system-auth.new || \
- die "Failed to install system-auth.new!"
- fi
-
- insinto /etc/security
- doins ${FILESDIR}/pam_env.conf
- doman doc/man/*.[0-9]
-
- dodoc CHANGELOG Copyright README
- docinto modules ; dodoc modules/README ; dodoc doc/txts/README.*
- # Install our own README.pam_console
- docinto ; dodoc ${FILESDIR}/README.pam_console
- docinto txt ; dodoc doc/specs/*.txt #doc/txts/*.txt
-# docinto print ; dodoc doc/ps/*.ps
-
-# docinto html
-# dohtml -r doc/html/
-}
-
-pkg_postinst() {
- echo
- einfo "If you have sshd running, please restart it to avoid possible login issues."
- echo
- ebeep
- sleep 3
-
- if [[ ${FORCE_SYSTEMAUTH_UPDATE} = "yes" ]] ; then
- local CHECK1=$(md5sum ${ROOT}/etc/pam.d/system-auth | cut -d ' ' -f 1)
- local CHECK2=$(md5sum ${ROOT}/etc/pam.d/system-auth.new | cut -d ' ' -f 1)
-
- if [[ ${CHECK1} != "${CHECK2}" ]] ; then
- ewarn "Due to a security issue, ${ROOT}etc/pam.d/system-auth "
- ewarn "is being updated automatically. Your old "
- ewarn "system-auth will be backed up as:"
- ewarn
- ewarn " ${ROOT}etc/pam.d/system-auth.bak"
- echo
-
- cp -pPR ${ROOT}/etc/pam.d/system-auth \
- ${ROOT}/etc/pam.d/system-auth.bak;
- mv -f ${ROOT}/etc/pam.d/system-auth.new \
- ${ROOT}/etc/pam.d/system-auth
- rm -f ${ROOT}/etc/pam.d/._cfg????_system-auth
- else
- rm -f ${ROOT}/etc/pam.d/system-auth.new
- fi
- fi
-
- if use pam_console; then
- echo
- einfo "If you want to enable the pam_console module, please follow"
- einfo "the instructions in /usr/share/doc/${PF}/README.pam_console."
- echo
- fi
-}
diff --git a/sys-libs/pam/pam-0.78-r4.ebuild b/sys-libs/pam/pam-0.78-r4.ebuild
deleted file mode 100644
index b0ba25055558..000000000000
--- a/sys-libs/pam/pam-0.78-r4.ebuild
+++ /dev/null
@@ -1,391 +0,0 @@
-# Copyright 1999-2006 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-libs/pam/pam-0.78-r4.ebuild,v 1.1 2006/01/25 13:55:38 flameeyes Exp $
-
-FORCE_SYSTEMAUTH_UPDATE="no"
-
-# BDB is internalized to get a non-threaded lib for pam_userdb.so to
-# be built with. The runtime-only dependency on BDB suggests the user
-# will use the system-installed db_load to create pam_userdb databases.
-# PWDB is internalized because it is specifically designed to work
-# with Linux-PAM. I'm not really certain how pervasive the Radius
-# and NIS services of PWDB are at this point.
-
-PATCH_LEVEL="1.3"
-BDB_VER="4.3.27"
-BDB_VER2="4.1.25"
-GLIB_VER="2.6.5"
-PAM_REDHAT_VER="0.78-3"
-
-HOMEPAGE="http://www.kernel.org/pub/linux/libs/pam/"
-DESCRIPTION="Pluggable Authentication Modules"
-
-S="${WORKDIR}/Linux-PAM-${PV}"
-S2="${WORKDIR}/pam-${PV}-patches"
-SRC_URI="http://www.kernel.org/pub/linux/libs/pam/pre/library/Linux-PAM-${PV}.tar.gz
- mirror://gentoo/pam-${PV}-patches-${PATCH_LEVEL}.tar.bz2
- berkdb? ( http://downloads.sleepycat.com/db-${BDB_VER}.tar.gz )
- pam_console? ( ftp://ftp.gtk.org/pub/gtk/v2.6/glib-${GLIB_VER}.tar.bz2 )"
-
-LICENSE="PAM"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
-IUSE="berkdb pwdb selinux pam_chroot pam_console pam_timestamp nis"
-
-RDEPEND=">=sys-libs/cracklib-2.8.3
- selinux? ( sys-libs/libselinux )
- berkdb? ( >=sys-libs/db-${BDB_VER2} )
- pwdb? ( >=sys-libs/pwdb-0.62 )"
-
-# Note that we link to static versions of glib (pam_console.so)
-# and pwdb (pam_pwdb.so), so we need glib-2.6.2-r1 or later ...
-DEPEND="${RDEPEND}
- dev-lang/perl
- dev-util/pkgconfig
- >=sys-devel/autoconf-2.59
- >=sys-devel/automake-1.6
- >=sys-devel/flex-2.5.4a-r5
- pwdb? ( >=sys-libs/pwdb-0.62 )"
-
-# Have python sandbox issues currently ...
-# doc? ( app-text/sgmltools-lite )
-
-PROVIDE="virtual/pam"
-
-#inherit needs to be after DEPEND definition to protect RDEPEND
-inherit toolchain-funcs eutils flag-o-matic gnuconfig pam
-
-apply_pam_patches() {
- local x=
- local y=
- local patches="${T}/patches.$$"
-
- for x in redhat gentoo; do
- rm -f "${patches}"
-
- # Need to be a '| while read x', as some lines may have spaces ...
- grep -v '^#' "${S2}/list.${x}-patches" | grep -v '^$' | while read y; do
- # Remove the 'Patch[0-9]*: ' from the redhat list
- echo "${y}" | sed -e 's|^Patch.*: \(.*\)|\1|' >> "${patches}"
- done
- for y in $(cat "${patches}"); do
- epatch "${S2}/${x}-patches/${y}"
- done
- done
-}
-
-pkg_setup() {
- local x=
-
- #if use pwdb; then
- # for x in libpwdb.a libcrack.a; do
- # if [ ! -f "${ROOT}/usr/$(get_libdir)/${x}" ]; then
- # eerror "Could not find /usr/$(get_libdir)/${x} needed to build Linux-PAM!"
- # die "Could not find /usr/$(get_libdir)/${x} needed to build Linux-PAM!"
- # fi
- # done
- #fi
- #if use pam_console; then
- # x="libglib-2.0.a"
- # if [ ! -f "${ROOT}/usr/$(get_libdir)/${x}" ]; then
- # eerror "Could not find /usr/$(get_libdir)/${x} needed to build Linux-PAM!"
- # eerror "Please remerge glib-2.6.* to make sure you have static changes."
- # die "Could not find /usr/$(get_libdir)/${x} needed to build Linux-PAM!"
- # fi
- #fi
-
- return 0
-}
-
-src_unpack() {
- local x=
-
- unpack ${A} || die "Couldn't unpack ${A}"
-
- cd ${S} || die
- tar --no-same-owner -zxf ${S2}/pam-redhat-${PAM_REDHAT_VER}.tar.gz \
- || die "Couldn't unpack pam-redhat-${PAM_REDHAT_VER}.tar.gz"
- # These ones we do not want, or do not work with non RH
- rm -rf ${S}/modules/{pam_rps,pam_postgresok}
-
- apply_pam_patches
-
- if use selinux; then
- epatch ${S2}/gentoo-patches/pam-0.78-selinux.patch
- epatch ${S2}/gentoo-patches/pam-0.77-selinux-CAN-2005-2977.patch
- fi
-
- # Check which extra modules should be built
- # (Do this after apply_pam_patches(), else some may fail)
- for x in pam_chroot pam_console pam_timestamp; do
- use "${x}" || rm -rf "${S}/modules/${x}"
- done
- use berkdb || rm -rf "${S}/modules/pam_userdb"
- use pwdb || rm -rf "${S}/modules/pam_pwdb"
- use pwdb || rm -rf "${S}/modules/pam_radius"
-
- for x in $(find ${S} -type f -name 'Makefile*'); do
- use nis || sed -i -e 's: -DNIS::g' "${x}"
- done
- # NIS patch is broken for now
- use nis && echo 'NIS=yes' >> "${S}/Make.Rules.in"
-
- # Fixup libdir for 64bit arches
- sed -ie "s:@get_libdir:$(get_libdir):" ${S}/configure.in
-
- for readme in modules/pam_*/README; do
- cp -f "${readme}" doc/txts/README.$(dirname "${readme}" | \
- sed -e 's|^modules/||')
- done
-
- # Bug #80604 (If install-sh do not exist, touch it)
- cp /usr/share/automake/install-sh ${S}/ 2>/dev/null || touch install-sh
- export WANT_AUTOCONF=2.5
- autoconf || die
-
- epatch "${FILESDIR}/${P}-inttypes.patch"
- epatch "${FILESDIR}/${P}-xauth-path.patch"
-}
-
-src_compile() {
- local BDB_DIR="${WORKDIR}/db-${BDB_VER}"
- local GLIB_DIR="${WORKDIR}/glib-${GLIB_VER}"
-
- # Bug #70471 (Compile issues with other locales)
- export LANG=C LC_ALL=C
-
- if use berkdb ; then
- einfo "Building Berkley DB ${BDB_VER}..."
- cd "${BDB_DIR}/build_unix" || die
-
- # Pam uses berkdb, which db-4.1.x series can't detect mips64, so we fix it
- if use mips ; then
- einfo "Updating BDB config.{guess,sub} for mips"
- S="${BDB_DIR}/dist" \
- gnuconfig_update
- fi
-
- #echo db_cv_mutex=UNIX/fcntl > config.cache
- #./s_config
- CFLAGS="${CFLAGS} -fPIC" \
- ../dist/configure \
- --host=${CHOST} \
- --cache-file=config.cache \
- --disable-compat185 \
- --disable-cxx \
- --disable-diagnostic \
- --disable-dump185 \
- --disable-java \
- --disable-rpc \
- --disable-tcl \
- --disable-shared \
- --disable-o_direct \
- --with-pic \
- --with-uniquename=_pam \
- --with-mutex="UNIX/fcntl" \
- --prefix="${S}" \
- --includedir="${S}/include" \
- --libdir="${S}/lib" || die "Bad BDB ./configure"
-
- # XXX: hack out O_DIRECT support in db4 for now.
- # (Done above now with --disable-o_direct now)
-
- make CC="$(tc-getCC)" || die "BDB build failed"
- make install || die
- fi
-
- if use pam_console ; then
- einfo "Building GLIB ${GLIB_VER}..."
- cd "${GLIB_DIR}" || die
-
- # The __attribute__((visibility("hidden"))) causes TEXTREL issues
- sed -i -s 's:G_GNUC_INTERNAL::g' "${GLIB_DIR}/glib"/*.c
-
- CFLAGS="${CFLAGS} -fPIC" \
- ./configure \
- --host=${CHOST} \
- --enable-static \
- --disable-shared \
- --with-pic \
- --disable-threads \
- --with-threads=none \
- --prefix="${S}" \
- --includedir="${S}/include" \
- --libdir="${S}/lib" || die "Bad GLIB ./configure"
-
- # Do not need to build the whole shebang
- cd "${GLIB_DIR}/glib" || die
- make CC="$(tc-getCC)" || die "GLIB build failed"
- make install || die
- # Install pkg-config stuff and needed headers
- cd "${GLIB_DIR}" || die
- make install-pkgconfigDATA install-exec-local || die
- fi
-
- if use berkdb || use pam_console ; then
- # Make sure out static libs are used
- export CFLAGS="-I${S}/include -Wl,-L${S}/lib ${CFLAGS}"
- export LDFLAGS="-L${S}/lib ${LDFLAGS}"
- export LIBNAME="lib"
- # Make sure pkg-config can find glib even if not installed in system
- export PKG_CONFIG_PATH="${S}/lib/pkgconfig:${PKG_CONFIG_PATH}"
- fi
-
- einfo "Building Linux-PAM ${PV}..."
- cd ${S}
- econf --enable-static-libpam \
- --enable-fakeroot="${D}" \
- --libdir="/$(get_libdir)" \
- --enable-isadir="../../$(get_libdir)/security" \
- || die
-
- # Python stuff in docs gives sandbox problems
- sed -i -e 's|modules doc examples|modules|' Makefile
-
- # Fix warnings for gcc-2.95.3
- if [[ $(gcc-version) = "2.95" ]] ; then
- sed -i -e "s:-Wpointer-arith::" Make.Rules
- fi
-
- if ! use berkdb ; then
- # Do not build pam_userdb.so ...
- sed -i -e "s:^HAVE_NDBM_H=yes:HAVE_NDBM_H=no:" \
- -e "s:^HAVE_LIBNDBM=yes:HAVE_LIBNDBM=no:" \
- -e "s:^HAVE_LIBDB=yes:HAVE_LIBDB=no:" \
- Make.Rules
-
- # Also edit the configuration file else the wrong include files
- # get used
- sed -i -e "s:^#define HAVE_NDBM_H.*$:/* #undef HAVE_NDBM_H */:" \
- -e "s:^#define HAVE_DB_H.*$:/* #undef HAVE_DB_H */:" \
- _pam_aconf.h
-
- else
- # Do not link pam_userdb.so to db-1.85 ...
- sed -i -e "s:^HAVE_NDBM_H=yes:HAVE_NDBM_H=no:" \
- -e "s:^HAVE_LIBNDBM=yes:HAVE_LIBNDBM=no:" \
- Make.Rules
-
- # Also edit the configuration file else the wrong include files
- # get used
- sed -i -e "s:^#define HAVE_NDBM_H.*$:/* #undef HAVE_NDBM_H */:" \
- _pam_aconf.h
- fi
-
- make CC="$(tc-getCC)" || die "PAM build failed"
-}
-
-src_install() {
- local x=
-
- einfo "Installing Linux-PAM ${PV}..."
- make FAKEROOT=${D} \
- LDCONFIG="" \
- install || die
-
- # Make sure every module built.
- # Do not remove this, as some module can fail to build
- # and effectively lock the user out of his system.
- einfo "Checking if all modules were built..."
- for x in ${S}/modules/pam_*; do
- if [[ -d ${x} ]] ; then
- local mod_name=$(basename "${x}")
- local sec_dir="${D}/$(get_libdir)/security"
-
- if ! ls -1 "${sec_dir}/${mod_name}"*.so &> /dev/null ; then
- echo
- eerror "ERROR: ${mod_name} module did not build."
- echo
- die "${mod_name} module did not build."
- fi
- if [[ -n $(ldd "${sec_dir}/${mod_name}"*.so 2>&1 | \
- grep "/usr/lib/" | \
- grep "/usr/$(get_libdir)/" | \
- grep -v "/usr/lib/gcc" | \
- grep -v "/usr/$(get_libdir)/gcc" | \
- grep -v "libsandbox") ]] ; then
- echo
- eerror "ERROR: ${mod_name} have dependencies in /usr."
- echo
- die "${mod_name} have dependencies in /usr."
- fi
- fi
- done
-
- dodir /usr/$(get_libdir)
- cd ${D}/$(get_libdir)
- for x in pam pamc pam_misc; do
- rm lib${x}.so
- ln -s lib${x}.so.${PV} lib${x}.so
- ln -s lib${x}.so.${PV} lib${x}.so.0
- mv lib${x}.a ${D}/usr/$(get_libdir)
- # See bug #4411
- gen_usr_ldscript lib${x}.so
- done
-
- cd ${S}
-
- # need this for pam_console
- keepdir /var/run/console
-
- for x in ${FILESDIR}/pam.d/*; do
- [[ -f ${x} ]] && dopamd ${x}
- done
-
- # Only add this one if needed.
- if [[ ${FORCE_SYSTEMAUTH_UPDATE} = "yes" ]] ; then
- newpamd ${FILESDIR}/pam.d/system-auth system-auth.new || \
- die "Failed to install system-auth.new!"
- fi
-
- insinto /etc/security
- doins ${FILESDIR}/pam_env.conf
- doman doc/man/*.[0-9]
-
- dodoc CHANGELOG Copyright README
- docinto modules ; dodoc modules/README ; dodoc doc/txts/README.*
- # Install our own README.pam_console
- docinto ; dodoc ${FILESDIR}/README.pam_console
- docinto txt ; dodoc doc/specs/*.txt #doc/txts/*.txt
-# docinto print ; dodoc doc/ps/*.ps
-
-# docinto html
-# dohtml -r doc/html/
-}
-
-pkg_postinst() {
- echo
- einfo "If you have sshd running, please restart it to avoid possible login issues."
- echo
- ebeep
- sleep 3
-
- if [[ ${FORCE_SYSTEMAUTH_UPDATE} = "yes" ]] ; then
- local CHECK1=$(md5sum ${ROOT}/etc/pam.d/system-auth | cut -d ' ' -f 1)
- local CHECK2=$(md5sum ${ROOT}/etc/pam.d/system-auth.new | cut -d ' ' -f 1)
-
- if [[ ${CHECK1} != "${CHECK2}" ]] ; then
- ewarn "Due to a security issue, ${ROOT}etc/pam.d/system-auth "
- ewarn "is being updated automatically. Your old "
- ewarn "system-auth will be backed up as:"
- ewarn
- ewarn " ${ROOT}etc/pam.d/system-auth.bak"
- echo
-
- cp -pPR ${ROOT}/etc/pam.d/system-auth \
- ${ROOT}/etc/pam.d/system-auth.bak;
- mv -f ${ROOT}/etc/pam.d/system-auth.new \
- ${ROOT}/etc/pam.d/system-auth
- rm -f ${ROOT}/etc/pam.d/._cfg????_system-auth
- else
- rm -f ${ROOT}/etc/pam.d/system-auth.new
- fi
- fi
-
- if use pam_console; then
- echo
- einfo "If you want to enable the pam_console module, please follow"
- einfo "the instructions in /usr/share/doc/${PF}/README.pam_console."
- echo
- fi
-}