Added nss-pam-ldapd-0.9.11-r2 with support for Python 3.7.

This commit is contained in:
László Valkó 2020-05-24 15:03:43 +02:00
parent bd5e457a61
commit 34b7e55118
10 changed files with 312 additions and 0 deletions

View file

@ -0,0 +1,10 @@
AUX nslcd-tmpfiles.conf 32 BLAKE2B 082266c3fd69fe866b9698283911e166e48e416b3fd35ab8940ad8d20a40992adf2ed25fd15efc98d6c1922f081ed37ca72ebeaa2a800ce70adc7092a0aaa106 SHA512 ccffd327cfa015ec746f4e1506c02beb514763625b0e5818455491b911d9328b19f17620926c15aaf18f5cd9268ea71f5ef35ce7a427aefab950579d5629ee5d
AUX nslcd.init 513 BLAKE2B 163a960a9d42b13023064e3adebf1aa8a8d4566d4bb472a224d0cbf58ec5c3f03fabd99917931ce7d36ec24490329986f4525e1a982b3e15c1632a534f1935f8 SHA512 7637cd4751fabb9f645820a7935e71606df95d4ddfbe2f21cb447d6b3bd67d087e61ff71fa88832edecaa306ae37252eb4cef60d11fb982aee7fbc5db24ac995
AUX nslcd.s6 44 BLAKE2B af69fd0202732721739501a65f608fb9fadfdd7e8a58052103a347bd3cfabecc84e5d5478fe689f565ee47f839c4f280d6ad8e88846339995f05fba8942dc8ac SHA512 190cd1440ab30dc32d09d7de9dee783d5d149547e491930d5f514b4bd53197e45a307906762d0e650ef802aa18ba266b40f61483569208c57709b2cbd74d3ae9
AUX nslcd.service 320 BLAKE2B 18a675fcc821d2c5f7766c0739c3bada8550e5e55f7b589fd9806bd961e9d4149be4a145ac51b9aeabad49293d70c726c1a8dd6a78ff724114e3b34e2270c32b SHA512 f04b66e05bfaefd485a4251c46d2b172a193be77554595086241dcd66a7787cf7678c8e5f6be954192a85a69fd2426965e4ca82c00e610ead8c6dd93a9aa21b1
AUX nss-pam-ldapd-0.9.11-pynslcd-module-paths.patch 537 BLAKE2B 40167724748124428393c2cc0d70c2fa88abd5fc9c2b12739d79f6dbd9f39e7b53351a68fb6db0e4f11bc0f40b960d1ab4ea256ab1f8aa8c75fe9601fc5674c3 SHA512 2fd21d4851f255264cd0e95f88f45fbca62ad8124c1326569c18bea769c205d4992f88a5fff7ca4bf19cd07c9123a39ecd3df2d5221a0430fb1d25d7b4668a30
AUX nss-pam-ldapd-0.9.4-disable-py3-only-linters.patch 403 BLAKE2B 2e17a92b3650ce4e6627be7ddb2f656cd9ab53e49d7e2b11d078dac0d7a00015d88d861bfdc1378eb25c1b9750ed3811023cc95b04ccf9d028ffc5899dc01cd5 SHA512 c8cccb044a641f673f12db9717bda4c0c4d91bd1933342595d8f3f540449459c5cf14263133487195b223670d450873f608e3ce5b6f1ca775ca7fe0180a9f962
AUX pynslcd.init 515 BLAKE2B 711ba152ea9cc52198171e451889ab42a224581bae7e4378846f480063ed9a672fdb38b153d6941364d3d06e325d9feb95f6fd17885b4e6181d99393cb54de0a SHA512 56334d86cc027e538d8a0bf9a8b87308e3ae6e91be608a4a630f21c57cc41b6cb5dc6fb3220fed1ca555dd4da6a5c7c10b2776f9e49a7b71a96ece21fc65fed7
DIST nss-pam-ldapd-0.9.11.tar.gz 777878 BLAKE2B c2b442786dd788dcf4373939ed52b4585d1821a7168fdd342ded3c99ef9ac8f3e4af0ac360f842b61885c1f2bc2ef85a0ce9ce0c1027bc974d0ba5242505657f SHA512 2b307805667526b85c724e113fe38899eee397e5c8673e89090d4836ce6d0ffcf18dd022d6c20a5e11d4138e736451b841a0f16ba379d524de4faaaf02906645
EBUILD nss-pam-ldapd-0.9.11-r2.ebuild 4170 BLAKE2B 77c2f2ca4a784bcc4669bf21d738083f516dcdd283142dfc702f990755a35cd1926d4c38dce90ff7aca2503db5e45b8ab88f889b9d1fac4db7d2b8277dd0f5e1 SHA512 b57ef85237ff4bfd96f289896d68dc5ecf0227b252bbf7d45d4a87edbb08b8f94e8377cc559733d488bbc024c62c77845515d82f8ae9a0307b93c4b77603f90d
MISC metadata.xml 1169 BLAKE2B 22b5c9adcafb123a6af088ddfcaa1962eaf250ed153020e65afe36a0e6473b1f8c624f770634a91c3a983c74ded1d43535bb4930f13c6470fad681f5a77fcd51 SHA512 ab658f7d791db370920a4eb57da8ead2713b1cabda6f2dccd24478855043802e7c70a07c3aeaa33829b19dc94a4317d8b5ebec07d1caebe07b4fb3bc59b27b4c

View file

@ -0,0 +1 @@
d /run/nslcd 0755 nslcd nslcd -

View file

@ -0,0 +1,28 @@
#!/sbin/openrc-run
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
command=/usr/sbin/nslcd
pidfile=/run/nslcd/nslcd.pid
extra_commands="checkconfig"
cfg="/etc/nslcd.conf"
depend() {
need net
use dns logger
}
checkconfig() {
if [ ! -f "$cfg" ] ; then
eerror "Please create $cfg"
eerror "Example config: /usr/share/nss-ldapd/nslcd.conf"
return 1
fi
return 0
}
start_pre() {
checkpath -q -d /run/nslcd -o nslcd:nslcd
checkconfig
return $?
}

View file

@ -0,0 +1,3 @@
#!/bin/sh
exec 2>&1
exec /usr/sbin/nslcd -n

View file

@ -0,0 +1,14 @@
[Unit]
Description=NSS and PAM LDAP client daemon
After=network-online.target
Wants=network-online.target nss-lookup.target syslog.service
Before=nss-user-lookup.target
[Service]
Type=forking
PIDFile=/run/nslcd/nslcd.pid
ExecStart=/usr/sbin/nslcd
[Install]
WantedBy=multi-user.target
RequiredBy=nss-user-lookup.target

View file

@ -0,0 +1,25 @@
diff --git a/pynslcd/pynslcd.py b/pynslcd/pynslcd.py
index 0691b61..df2ca4a 100755
--- a/pynslcd/pynslcd.py
+++ b/pynslcd/pynslcd.py
@@ -30,13 +30,13 @@ import threading
import daemon
import ldap
-import cfg
-import common
-import constants
-import invalidator
-import mypidfile
-import search
-from tio import TIOStream
+import pynslcd.cfg
+import pynslcd.common
+import pynslcd.constants
+import pynslcd.invalidator
+import pynslcd.mypidfile
+import pynslcd.search
+from pynslcd.tio import TIOStream
# the name of the program

View file

@ -0,0 +1,13 @@
diff --git a/tests/pylint.rc b/tests/pylint.rc
index 7f0bc13..b66d018 100644
--- a/tests/pylint.rc
+++ b/tests/pylint.rc
@@ -19,7 +19,7 @@ enable=
# can either give multiple identifier separated by comma (,) or put this option
# multiple time (only on the command line, not in the configuration file where
# it should appear only once).
-disable=E1101
+disable=E1101,E1608,E1606,E1601
[REPORTS]

View file

@ -0,0 +1,28 @@
#!/sbin/openrc-run
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
command=/usr/sbin/pynslcd
pidfile=/run/nslcd/nslcd.pid
extra_commands="checkconfig"
cfg="/etc/nslcd.conf"
depend() {
need net
use dns logger
}
checkconfig() {
if [ ! -f "$cfg" ] ; then
eerror "Please create $cfg"
eerror "Example config: /usr/share/nss-ldapd/nslcd.conf"
return 1
fi
return 0
}
start_pre() {
checkpath -q -d /run/nslcd -o nslcd:nslcd
checkconfig
return $?
}

View file

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>prometheanfire@gentoo.org</email>
<name>Matthew Thode</name>
</maintainer>
<maintainer type="person">
<email>chutzpah@gentoo.org</email>
<name>Patrick McLean</name>
</maintainer>
<use>
<flag name="utils">Install the command-line utilities</flag>
<flag name="pynslcd">Install the python implementation along with the standard implementation</flag>
</use>
<longdescription lang="en">
Provides a Name Service Switch (NSS) module that allows your LDAP
server to provide user account, group, host name, alias, netgroup, and
basically any other information that you would normally get from /etc
flat files or NIS. It also provides a Pluggable Authentication Module
(PAM) to do authentication to an LDAP server.
This is implemented using thin NSS and PAM modules which delegate to a
dedicated service (nslcd) that queries the LDAP server with persistent
connections, authentication, attribute translation, etc.
</longdescription>
</pkgmetadata>

View file

@ -0,0 +1,163 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
PYTHON_COMPAT=(python3_{6,7})
inherit eutils prefix user python-r1 multilib multilib-minimal systemd s6
DESCRIPTION="NSS module for name lookups using LDAP"
HOMEPAGE="https://arthurdejong.org/nss-pam-ldapd/"
SRC_URI="https://arthurdejong.org/${PN}/${P}.tar.gz"
LICENSE="LGPL-2.1"
SLOT="0"
KEYWORDS="amd64 x86"
IUSE="debug kerberos +pam pynslcd sasl test +utils"
RESTRICT="!test? ( test )"
COMMON_DEP="
net-nds/openldap[${MULTILIB_USEDEP}]
sasl? ( dev-libs/cyrus-sasl[${MULTILIB_USEDEP}] )
kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] )
sys-libs/pam[${MULTILIB_USEDEP}]
utils? ( ${PYTHON_DEPS} )
pynslcd? (
dev-python/python-ldap[${PYTHON_USEDEP}]
dev-python/python-daemon[${PYTHON_USEDEP}]
)
!sys-auth/nss_ldap
!sys-auth/pam_ldap"
RDEPEND="${COMMON_DEP}"
DEPEND="${COMMON_DEP}
test? (
${PYTHON_DEPS}
dev-python/pylint[${PYTHON_USEDEP}]
)
sys-devel/automake"
REQUIRED_USE="
utils? ( ${PYTHON_REQUIRED_USE} )
test? ( ${PYTHON_REQUIRED_USE} pynslcd )"
PATCHES=(
"${FILESDIR}"/${PN}-0.9.4-disable-py3-only-linters.patch
"${FILESDIR}"/${PN}-0.9.11-pynslcd-module-paths.patch
)
pkg_setup() {
enewgroup nslcd
enewuser nslcd -1 -1 -1 nslcd
}
src_prepare() {
cp pynslcd/pynslcd.py "${S}" || die "Copying pynslcd failed"
default
use utils && python_setup
touch pynslcd/__init__.py || die "Could not create __init__.py for pynslcd"
}
multilib_src_configure() {
local -a myconf
myconf=(
--disable-utils
--enable-warnings
--with-ldap-lib=openldap
--with-ldap-conf-file=/etc/nslcd.conf
--with-nslcd-pidfile=/run/nslcd/nslcd.pid
--with-nslcd-socket=/run/nslcd/socket
$(usex x86-fbsd '--with-nss-flavour=' '--with-nss-flavour=' 'freebsd' 'glibc')
$(use_enable pynslcd)
$(use_enable debug)
$(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
ECONF_SOURCE="${S}" econf "${myconf[@]}"
}
multilib_src_install_all() {
local script
newinitd "${FILESDIR}"/nslcd.init nslcd
s6_install_service nslcd "${FILESDIR}"/nslcd.s6
insinto /usr/share/nss-pam-ldapd
doins "${WORKDIR}/${P}/nslcd.conf"
fperms o-r /etc/nslcd.conf
if use utils; then
python_moduleinto nslcd
python_foreach_impl python_domodule utils/*.py
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
python_moduleinto pynslcd
python_foreach_impl python_domodule pynslcd/*.py
python_scriptinto /usr/sbin
python_newscript pynslcd.py pynslcd
newinitd "${FILESDIR}"/pynslcd.init pynslcd
fi
systemd_newtmpfilesd "${FILESDIR}"/nslcd-tmpfiles.conf nslcd.conf
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
}
python_test() {
PYTHONPATH="${S}" emake check
}
multilib_src_test() {
pushd "${BUILD_DIR}"
ln -s ../pynslcd/constants.py utils/constants.py
python_foreach_impl python_test
popd
}
pkg_postinst() {
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 "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 "You can add it to the default runlevel like so:"
elog " # rc-update add nslcd default"
elog
elog "If you have >=sys-apps/openrc-0.16.3, you can also use s6"
elog "to supervise this service."
elog "To do this, emerge sys-apps/s6 then add nslcd-s6"
elog "default runlevel instead of nslcd."
elog
elog "If you are upgrading, keep in mind that /etc/nss-ldapd.conf"
elog " is now named /etc/nslcd.conf"
echo
}