commit: 8790accf926841f422f9cbe95a1e27e6c67457c6 Author: Dennis Lamm <expeditioneer <AT> gentoo <DOT> org> AuthorDate: Wed Mar 23 07:20:32 2022 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Sat May 14 02:32:45 2022 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8790accf
dev-python/python-ldap: added openldap 2.6 support Bug: https://bugs.gentoo.org/835637 Signed-off-by: Dennis Lamm <expeditioneer <AT> 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 <AT> gentoo.org> .../files/python-ldap-3.4.0-openldap-2.6.patch | 33 ++++++++ dev-python/python-ldap/python-ldap-3.4.0-r1.ebuild | 97 ++++++++++++++++++++++ 2 files changed, 130 insertions(+) diff --git a/dev-python/python-ldap/files/python-ldap-3.4.0-openldap-2.6.patch b/dev-python/python-ldap/files/python-ldap-3.4.0-openldap-2.6.patch new file mode 100644 index 000000000000..0af86698f4bf --- /dev/null +++ b/dev-python/python-ldap/files/python-ldap-3.4.0-openldap-2.6.patch @@ -0,0 +1,33 @@ +From 536a7671151e3070481736e5d6159987df920d8b Mon Sep 17 00:00:00 2001 +From: Simon Pichugin <[email protected]> +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 diff --git a/dev-python/python-ldap/python-ldap-3.4.0-r1.ebuild b/dev-python/python-ldap/python-ldap-3.4.0-r1.ebuild new file mode 100644 index 000000000000..51eca9aab9f6 --- /dev/null +++ b/dev-python/python-ldap/python-ldap-3.4.0-r1.ebuild @@ -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 +}
