dev-python/python-ldap: added openldap 2.6 support

Bug: https://bugs.gentoo.org/835637
Signed-off-by: Dennis Lamm <expeditioneer@gentoo.org>
Package-Manager: Portage-3.0.30, Repoman-3.0.3
Closes: https://github.com/gentoo/gentoo/pull/24721
Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
Dennis Lamm
2022-03-23 08:20:32 +01:00
committed by Sam James
parent ae8c47de64
commit 8790accf92
2 changed files with 130 additions and 0 deletions

View File

@@ -0,0 +1,33 @@
From 536a7671151e3070481736e5d6159987df920d8b Mon Sep 17 00:00:00 2001
From: Simon Pichugin <spichugi@redhat.com>
Date: Wed, 9 Feb 2022 16:06:14 -0800
Subject: [PATCH] Always use 'ldap' library
---
setup.py | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/setup.py b/setup.py
index 119b571..851223e 100644
--- a/setup.py
+++ b/setup.py
@@ -37,6 +37,8 @@ if cfg.has_section('_ldap'):
for name in dir(LDAP_CLASS):
if cfg.has_option('_ldap', name):
setattr(LDAP_CLASS, name, cfg.get('_ldap', name).split())
+#-- Overwrite it as 'ldap' is the always correct library we have in Fedora 34+
+LDAP_CLASS.libs = ['ldap', 'lber']
for i in range(len(LDAP_CLASS.defines)):
LDAP_CLASS.defines[i]=((LDAP_CLASS.defines[i],None))
@@ -132,7 +134,7 @@ setup(
extra_objects = LDAP_CLASS.extra_objects,
runtime_library_dirs = (not sys.platform.startswith("win"))*LDAP_CLASS.library_dirs,
define_macros = LDAP_CLASS.defines + \
- ('ldap_r' in LDAP_CLASS.libs or 'oldap_r' in LDAP_CLASS.libs)*[('HAVE_LIBLDAP_R',None)] + \
+ ('ldap' in LDAP_CLASS.libs or 'oldap' in LDAP_CLASS.libs)*[('HAVE_LIBLDAP_R',None)] + \
('sasl' in LDAP_CLASS.libs or 'sasl2' in LDAP_CLASS.libs or 'libsasl' in LDAP_CLASS.libs)*[('HAVE_SASL',None)] + \
('ssl' in LDAP_CLASS.libs and 'crypto' in LDAP_CLASS.libs)*[('HAVE_TLS',None)] + \
[
--
2.31.1

View File

@@ -0,0 +1,97 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( pypy3 python3_{8..10} )
inherit distutils-r1
DESCRIPTION="Various LDAP-related Python modules"
HOMEPAGE="
https://www.python-ldap.org/en/latest/
https://pypi.org/project/python-ldap/
https://github.com/python-ldap/python-ldap"
if [[ ${PV} == *9999* ]]; then
EGIT_REPO_URI="https://github.com/python-ldap/python-ldap.git"
inherit git-r3
else
SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-solaris"
fi
LICENSE="MIT PSF-2"
SLOT="0"
IUSE="examples sasl ssl"
# < dep on openldap for bug #835637, ldap_r is gone
RDEPEND="
>=dev-python/pyasn1-0.3.7[${PYTHON_USEDEP}]
>=dev-python/pyasn1-modules-0.1.5[${PYTHON_USEDEP}]
>=net-nds/openldap-2.6:=[sasl?,ssl?]
"
# We do not link against cyrus-sasl but we use some
# of its headers during the build.
DEPEND="
>=net-nds/openldap-2.6:=[sasl?,ssl?]
sasl? ( >=dev-libs/cyrus-sasl-2.1 )
"
distutils_enable_tests pytest
distutils_enable_sphinx Doc
# Commit with this Patch from Fedora Rawhide
# https://src.fedoraproject.org/rpms/python-ldap/c/a237d9b212bd1581e07f4f1a8f54c26a7190843c?branch=rawhide
# Workaround till this PR is merged upstream
# https://github.com/python-ldap/python-ldap/pull/458
PATCHES=( "${FILESDIR}"/${P}-openldap-2.6.patch )
python_prepare_all() {
# The live ebuild won't compile if setuptools_scm < 1.16.2 is installed
# https://github.com/pypa/setuptools_scm/issues/228
if [[ ${PV} == *9999* ]]; then
rm -r .git || die
fi
if ! use sasl; then
sed -i 's/HAVE_SASL//g' setup.cfg || die
fi
if ! use ssl; then
sed -i 's/HAVE_TLS//g' setup.cfg || die
fi
distutils-r1_python_prepare_all
}
python_test() {
# Run all tests which don't require slapd
local EPYTEST_IGNORE=(
t_bind.py
t_cext.py
t_edit.py
t_ldapobject.py
t_ldap_options.py
t_ldap_sasl.py
t_ldap_schema_subentry.py
t_ldap_syncrepl.py
t_slapdobject.py
)
pushd Tests >/dev/null || die
epytest
popd > /dev/null || die
}
python_install() {
distutils-r1_python_install
python_optimize
}
python_install_all() {
if use examples; then
docinto examples
dodoc -r Demo/.
docompress -x /usr/share/doc/${PF}/examples
fi
distutils-r1_python_install_all
}