Make python-ldap optional for PyPI packages

python-ldap is a Python package with heavy C extensions. In order to
build python-ldap, not only OpenLDAP development headers are necessary,
but also OpenSSL, Cyrus SASL, and MIT KRB5 development headers.

A fully functional ipaclient doesn't need an LDAP driver. It talks JSON
RPC over HTTPS to a server. python-ldap is only used by ipapython.dn.DN
to convert a string to a DN with ldap_str2dn(). The function is simple
and can be wrapped with ctypes in a bunch of lines.

Related: https://pagure.io/freeipa/issue/6468
Signed-off-by: Christian Heimes <cheimes@redhat.com>
Reviewed-By: Alexander Bokovoy <abokovoy@redhat.com>
This commit is contained in:
Christian Heimes
2019-04-08 08:05:52 +02:00
parent c314411130
commit 2a459ce0f2
8 changed files with 243 additions and 12 deletions

View File

@@ -64,6 +64,7 @@ if __name__ == '__main__':
"install": ["ipaplatform"],
"otptoken_yubikey": ["python-yubico", "pyusb"],
"csrgen": ["cffi", "jinja2"],
"ldap": ["python-ldap"], # ipapython.ipaldap
},
zip_safe=False,
)