diff options
-rw-r--r-- | sys-auth/nss-pam-ldapd/nss-pam-ldapd-0.9.12-r2.ebuild (renamed from sys-auth/nss-pam-ldapd/nss-pam-ldapd-0.9.12-r1.ebuild) | 100 |
1 files changed, 45 insertions, 55 deletions
diff --git a/sys-auth/nss-pam-ldapd/nss-pam-ldapd-0.9.12-r1.ebuild b/sys-auth/nss-pam-ldapd/nss-pam-ldapd-0.9.12-r2.ebuild index 88f0e013b023..187613b5f998 100644 --- a/sys-auth/nss-pam-ldapd/nss-pam-ldapd-0.9.12-r1.ebuild +++ b/sys-auth/nss-pam-ldapd/nss-pam-ldapd-0.9.12-r2.ebuild @@ -1,10 +1,10 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 -PYTHON_COMPAT=( python3_{8..10} ) -inherit prefix python-r1 autotools multilib multilib-minimal systemd s6 tmpfiles +PYTHON_COMPAT=( python3_{8..11} ) +inherit autotools python-r1 s6 systemd tmpfiles multilib-minimal DESCRIPTION="NSS module for name lookups using LDAP" HOMEPAGE="https://arthurdejong.org/nss-pam-ldapd/" @@ -14,9 +14,13 @@ LICENSE="LGPL-2.1" SLOT="0" KEYWORDS="amd64 x86" IUSE="debug kerberos +pam pynslcd sasl test +utils" +REQUIRED_USE=" + utils? ( ${PYTHON_REQUIRED_USE} ) + test? ( ${PYTHON_REQUIRED_USE} pynslcd ) +" RESTRICT="!test? ( test )" -COMMON_DEP=" +RDEPEND=" acct-group/nslcd acct-user/nslcd net-nds/openldap:=[${MULTILIB_USEDEP}] @@ -31,34 +35,27 @@ COMMON_DEP=" !sys-auth/nss_ldap !sys-auth/pam_ldap " -RDEPEND="${COMMON_DEP}" -DEPEND="${COMMON_DEP} - test? ( - ${PYTHON_DEPS} - dev-python/pylint[${PYTHON_USEDEP}] - ) -" +DEPEND="${RDEPEND}" BDEPEND=" ${PYTHON_DEPS} - sys-devel/automake -" - -REQUIRED_USE=" - utils? ( ${PYTHON_REQUIRED_USE} ) - test? ( ${PYTHON_REQUIRED_USE} pynslcd ) + test? ( dev-python/pylint[${PYTHON_USEDEP}] ) " PATCHES=( - "${FILESDIR}/nss-pam-ldapd-0.9.4-disable-py3-only-linters.patch" - "${FILESDIR}/nss-pam-ldapd-0.9.11-use-mkstemp.patch" - "${FILESDIR}/nss-pam-ldapd-0.9.11-relative-imports.patch" - "${FILESDIR}/nss-pam-ldapd-0.9.11-tests.patch" - "${FILESDIR}/nss-pam-ldapd-0.9.11-tests-py39.patch" + "${FILESDIR}"/nss-pam-ldapd-0.9.4-disable-py3-only-linters.patch + "${FILESDIR}"/nss-pam-ldapd-0.9.11-use-mkstemp.patch + "${FILESDIR}"/nss-pam-ldapd-0.9.11-relative-imports.patch + "${FILESDIR}"/nss-pam-ldapd-0.9.11-tests.patch + "${FILESDIR}"/nss-pam-ldapd-0.9.11-tests-py39.patch ) +pkg_setup() { + [[ ${MERGE_TYPE} != binary ]] && python_setup +} + src_prepare() { default - use utils && python_setup + touch pynslcd/__init__.py || die "Could not create __init__.py for pynslcd" mv pynslcd/pynslcd.py pynslcd/main.py || die @@ -66,11 +63,11 @@ src_prepare() { } multilib_src_configure() { - local -a myconf=( + local myconf=( --disable-utils --enable-warnings --with-ldap-lib=openldap - --with-ldap-conf-file=/etc/nslcd.conf + --with-ldap-conf-file="${EPREFIX}"/etc/nslcd.conf --with-nslcd-pidfile=/run/nslcd/nslcd.pid --with-nslcd-socket=/run/nslcd/socket --with-nss-flavour=glibc @@ -79,40 +76,43 @@ multilib_src_configure() { $(use_enable kerberos) $(use_enable pam) $(use_enable sasl) - ) - - # nss libraries always go in /lib on Gentoo - if multilib_is_native_abi ; then - myconf+=("--with-pam-seclib-dir=${EPREFIX}/$(get_libdir)/security") - myconf+=("--libdir=${EPREFIX}/$(get_libdir)") - else - myconf+=("--with-pam-seclib-dir=/$(get_libdir)/security") - myconf+=("--libdir=/$(get_libdir)") - fi + # nss libraries always go in /lib on Gentoo + --with-pam-seclib-dir="${EPREFIX}"/$(get_libdir)/security + --libdir="${EPREFIX}"/$(get_libdir) + ) ECONF_SOURCE="${S}" econf "${myconf[@]}" } multilib_src_test() { + python_test() { + cp -l "${S}"/pynslcd/*.py pynslcd/ || die "Could not copy python files for tests" + nonfatal emake check || die "tests failed with ${EPYTHON}" + } + pushd "${BUILD_DIR}" >/dev/null || die ln -s ../pynslcd/constants.py utils/constants.py || die python_foreach_impl python_test popd >/dev/null || die } -python_test() { - cp -l "${S}"/pynslcd/*.py pynslcd/ || die "Could not copy python files for tests" - nonfatal emake check || die "tests failed with ${EPYTHON}" +multilib_src_install() { + emake DESTDIR="${D}" install + + if use pynslcd; then + python_moduleinto pynslcd + python_foreach_impl python_domodule pynslcd/*.py + fi } multilib_src_install_all() { - local script + einstalldocs newinitd "${FILESDIR}"/nslcd.init nslcd s6_install_service nslcd "${FILESDIR}"/nslcd.s6 insinto /usr/share/nss-pam-ldapd - doins "${WORKDIR}/${P}/nslcd.conf" + doins "${WORKDIR}"/${P}/nslcd.conf fperms o-r /etc/nslcd.conf @@ -120,12 +120,13 @@ multilib_src_install_all() { python_moduleinto nslcd python_foreach_impl python_domodule utils/*.py + local script for script in chsh getent; do python_foreach_impl python_newscript utils/${script}.py ${script}.ldap done fi if use pynslcd; then - rm -rf "${D}"/usr/share/pynslcd + rm -rf "${ED}"/usr/share/pynslcd || die python_moduleinto pynslcd python_foreach_impl python_domodule pynslcd/*.py python_scriptinto /usr/sbin @@ -137,26 +138,16 @@ multilib_src_install_all() { systemd_newunit "${FILESDIR}"/nslcd.service nslcd.service } -multilib_src_install() { - emake DESTDIR="${D}" install - - if use pynslcd; then - python_moduleinto pynslcd - python_foreach_impl python_domodule pynslcd/*.py - fi -} - pkg_postinst() { tmpfiles_process nslcd.conf - echo elog "For this to work you must configure /etc/nslcd.conf" elog "This configuration is similar to pam_ldap's /etc/ldap.conf" - echo + elog elog "In order to use nss-pam-ldapd, nslcd needs to be running. You can" elog "start it like this:" elog " # /etc/init.d/nslcd start" - echo + elog elog "You can add it to the default runlevel like so:" elog " # rc-update add nslcd default" elog @@ -167,5 +158,4 @@ pkg_postinst() { elog elog "If you are upgrading, keep in mind that /etc/nss-ldapd.conf" elog " is now named /etc/nslcd.conf" - echo } |