From e55a70e61dd72feee96221d387963be4ef85275e Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Nov 02 2021 19:34:16 +0000 Subject: import python-ldap-3.3.1-8.el9 --- diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c4008df --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/python-ldap-3.3.1.tar.gz diff --git a/.python-ldap.metadata b/.python-ldap.metadata new file mode 100644 index 0000000..53966a7 --- /dev/null +++ b/.python-ldap.metadata @@ -0,0 +1 @@ +324f671225f10005b34e9cce2c0e307a96fa8ac3 SOURCES/python-ldap-3.3.1.tar.gz diff --git a/SOURCES/0001-Fix-SASL-get-set-options-on-big-endian-platforms.patch b/SOURCES/0001-Fix-SASL-get-set-options-on-big-endian-platforms.patch new file mode 100644 index 0000000..a3f215f --- /dev/null +++ b/SOURCES/0001-Fix-SASL-get-set-options-on-big-endian-platforms.patch @@ -0,0 +1,169 @@ +From 30fb0a8bda8fbedc22de87b21b8b1b64de310a6b Mon Sep 17 00:00:00 2001 +From: Christian Heimes +Date: Mon, 28 Jun 2021 11:03:02 +0200 +Subject: [PATCH] Fix SASL get/set options on big endian platforms + +The options OPT_X_SASL_SSF_MIN, OPT_X_SASL_SSF_MAX, and OPT_X_SASL_SSF +take *ber_len_t as input and output arguments. ber_len_t is defined as +unsigned long: + +``` + /* LBER lengths (32 bits or larger) */ + #define LBER_LEN_T long + + typedef unsigned LBER_LEN_T ber_len_t; +``` + +Wrong type handling is causing issues on big endian platforms. + +Signed-off-by: Christian Heimes +--- + Modules/options.c | 41 ++++++++++++++++++++++++++++++----------- + Tests/t_ldapobject.py | 23 ++++++++++++++++++++++- + 2 files changed, 52 insertions(+), 12 deletions(-) + +diff --git a/Modules/options.c b/Modules/options.c +index 549a672..67511e8 100644 +--- a/Modules/options.c ++++ b/Modules/options.c +@@ -43,6 +43,10 @@ LDAP_set_option(LDAPObject *self, int option, PyObject *value) + double doubleval; + char *strval; + struct timeval tv; ++#if HAVE_SASL ++ /* unsigned long */ ++ ber_len_t blen; ++#endif + void *ptr; + LDAP *ld; + LDAPControl **controls = NULL; +@@ -89,10 +93,6 @@ LDAP_set_option(LDAPObject *self, int option, PyObject *value) + case LDAP_OPT_X_TLS_PROTOCOL_MIN: + #endif + #endif +-#ifdef HAVE_SASL +- case LDAP_OPT_X_SASL_SSF_MIN: +- case LDAP_OPT_X_SASL_SSF_MAX: +-#endif + #ifdef LDAP_OPT_X_KEEPALIVE_IDLE + case LDAP_OPT_X_KEEPALIVE_IDLE: + #endif +@@ -108,6 +108,16 @@ LDAP_set_option(LDAPObject *self, int option, PyObject *value) + return 0; + ptr = &intval; + break; ++ ++#ifdef HAVE_SASL ++ case LDAP_OPT_X_SASL_SSF_MIN: ++ case LDAP_OPT_X_SASL_SSF_MAX: ++ if (!PyArg_Parse(value, "k:set_option", &blen)) ++ return 0; ++ ptr = &blen; ++ break; ++#endif ++ + case LDAP_OPT_HOST_NAME: + case LDAP_OPT_URI: + #ifdef LDAP_OPT_DEFBASE +@@ -135,6 +145,7 @@ LDAP_set_option(LDAPObject *self, int option, PyObject *value) + return 0; + ptr = strval; + break; ++ + case LDAP_OPT_TIMEOUT: + case LDAP_OPT_NETWORK_TIMEOUT: + /* Float valued timeval options */ +@@ -239,6 +250,10 @@ LDAP_get_option(LDAPObject *self, int option) + LDAPAPIInfo apiinfo; + LDAPControl **lcs; + char *strval; ++#if HAVE_SASL ++ /* unsigned long */ ++ ber_len_t blen; ++#endif + PyObject *extensions, *v; + Py_ssize_t i, num_extensions; + +@@ -277,9 +292,6 @@ LDAP_get_option(LDAPObject *self, int option) + + return v; + +-#ifdef HAVE_SASL +- case LDAP_OPT_X_SASL_SSF: +-#endif + case LDAP_OPT_REFERRALS: + case LDAP_OPT_RESTART: + case LDAP_OPT_DEREF: +@@ -299,10 +311,6 @@ LDAP_get_option(LDAPObject *self, int option) + case LDAP_OPT_X_TLS_PROTOCOL_MIN: + #endif + #endif +-#ifdef HAVE_SASL +- case LDAP_OPT_X_SASL_SSF_MIN: +- case LDAP_OPT_X_SASL_SSF_MAX: +-#endif + #ifdef LDAP_OPT_X_SASL_NOCANON + case LDAP_OPT_X_SASL_NOCANON: + #endif +@@ -324,6 +332,17 @@ LDAP_get_option(LDAPObject *self, int option) + return option_error(res, "ldap_get_option"); + return PyInt_FromLong(intval); + ++#ifdef HAVE_SASL ++ case LDAP_OPT_X_SASL_SSF: ++ case LDAP_OPT_X_SASL_SSF_MIN: ++ case LDAP_OPT_X_SASL_SSF_MAX: ++#endif ++ /* ber_len_t options (unsigned long)*/ ++ res = LDAP_int_get_option(self, option, &blen); ++ if (res != LDAP_OPT_SUCCESS) ++ return option_error(res, "ldap_get_option"); ++ return PyLong_FromUnsignedLong(blen); ++ + case LDAP_OPT_HOST_NAME: + case LDAP_OPT_URI: + #ifdef LDAP_OPT_DEFBASE +diff --git a/Tests/t_ldapobject.py b/Tests/t_ldapobject.py +index e54bbfd..0a089c9 100644 +--- a/Tests/t_ldapobject.py ++++ b/Tests/t_ldapobject.py +@@ -334,7 +334,7 @@ class Test00_SimpleLDAPObject(SlapdTestCase): + + @requires_sasl() + @requires_ldapi() +- def test006_sasl_extenal_bind_s(self): ++ def test006_sasl_external_bind_s(self): + l = self.ldap_object_class(self.server.ldapi_uri) + l.sasl_external_bind_s() + self.assertEqual(l.whoami_s(), 'dn:'+self.server.root_dn.lower()) +@@ -343,6 +343,27 @@ class Test00_SimpleLDAPObject(SlapdTestCase): + l.sasl_external_bind_s(authz_id=authz_id) + self.assertEqual(l.whoami_s(), authz_id.lower()) + ++ @requires_sasl() ++ @requires_ldapi() ++ def test006_sasl_options(self): ++ l = self.ldap_object_class(self.server.ldapi_uri) ++ ++ minssf = l.get_option(ldap.OPT_X_SASL_SSF_MIN) ++ self.assertGreaterEqual(minssf, 0) ++ self.assertLessEqual(minssf, 256) ++ maxssf = l.get_option(ldap.OPT_X_SASL_SSF_MAX) ++ self.assertGreaterEqual(maxssf, 0) ++ # libldap sets SSF_MAX to INT_MAX ++ self.assertLessEqual(maxssf, 2**31 - 1) ++ ++ l.set_option(ldap.OPT_X_SASL_SSF_MIN, 56) ++ l.set_option(ldap.OPT_X_SASL_SSF_MAX, 256) ++ self.assertEqual(l.get_option(ldap.OPT_X_SASL_SSF_MIN), 56) ++ self.assertEqual(l.get_option(ldap.OPT_X_SASL_SSF_MAX), 256) ++ ++ l.sasl_external_bind_s() ++ self.assertEqual(l.whoami_s(), 'dn:' + self.server.root_dn.lower()) ++ + def test007_timeout(self): + l = self.ldap_object_class(self.server.ldap_uri) + m = l.search_ext(self.server.suffix, ldap.SCOPE_SUBTREE, '(objectClass=*)') +-- +2.31.1 + diff --git a/SPECS/python-ldap.spec b/SPECS/python-ldap.spec new file mode 100644 index 0000000..8e2c6dc --- /dev/null +++ b/SPECS/python-ldap.spec @@ -0,0 +1,344 @@ +### Abstract ### +# global prerelease b4 + +%global openldap_version 2.4.45-4 + +Name: python-ldap +Version: 3.3.1 +Release: 8%{?dist} +License: Python +Summary: An object-oriented API to access LDAP directory servers +URL: https://python-ldap.org/ +Source0: https://files.pythonhosted.org/packages/source/p/%{name}/%{name}-%{version}%{?prerelease}.tar.gz + +Patch0001: 0001-Fix-SASL-get-set-options-on-big-endian-platforms.patch + +### Build Dependencies ### +BuildRequires: gcc +BuildRequires: openldap-devel >= %{openldap_version} +BuildRequires: openssl-devel +BuildRequires: cyrus-sasl-devel +BuildRequires: python3-devel +BuildRequires: python3-setuptools +# Test dependencies +BuildRequires: openldap-servers >= %{openldap_version} +BuildRequires: openldap-clients >= %{openldap_version} +BuildRequires: python3-pyasn1 >= 0.3.7 +BuildRequires: python3-pyasn1-modules >= 0.1.5 + +%global _description\ +python-ldap provides an object-oriented API for working with LDAP within\ +Python programs. It allows access to LDAP directory servers by wrapping the\ +OpenLDAP 2.x libraries, and contains modules for other LDAP-related tasks\ +(including processing LDIF, LDAPURLs, LDAPv3 schema, etc.). + +%description %_description + + +%package -n python3-ldap +Summary: %{summary} + +Requires: openldap >= %{openldap_version} +Requires: python3-pyasn1 >= 0.3.7 +Requires: python3-pyasn1-modules >= 0.1.5 +Requires: python3-setuptools +%{?python_provide:%python_provide python3-ldap} +Obsoletes: python3-pyldap < 3 +Provides: python3-pyldap = %{version}-%{release} +Provides: python3-pyldap%{?_isa} = %{version}-%{release} + +%description -n python3-ldap %_description + + +%prep +%autosetup -p1 -n %{name}-%{version}%{?prerelease} +# Fix interpreter +find . -name '*.py' | xargs sed -i '1s|^#!/usr/bin/env python|#!%{__python3}|' + + +%build +%py3_build + + +%check +PYTHONPATH=%{buildroot}%{python3_sitearch} %{__python3} -m unittest discover -v -s Tests -p 't_*' + + +%install +%py3_install + +%files -n python3-ldap +%license LICENCE +%doc CHANGES README TODO Demo +%{python3_sitearch}/_ldap.cpython-*.so +%{python3_sitearch}/ldapurl.py* +%{python3_sitearch}/ldif.py* +%{python3_sitearch}/__pycache__/* +%{python3_sitearch}/slapdtest/ +%{python3_sitearch}/ldap/ +%{python3_sitearch}/python_ldap-%{version}%{?prerelease}-py%{python3_version}.egg-info/ + +%changelog +* Tue Aug 10 2021 Mohan Boddu - 3.3.1-8 +- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags + Related: rhbz#1991688 + +* Mon Jun 28 2021 Christian Heimes - 3.3.1-7 +- Fix SASL get/set options on big endian platforms +- Resolves: rhbz#1976827 + +* Tue Jun 22 2021 Mohan Boddu - 3.3.1-6 +- Rebuilt for RHEL 9 BETA for openssl 3.0 + Related: rhbz#1971065 + +* Fri Apr 16 2021 Mohan Boddu - 3.3.1-5 +- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 + +* Wed Jan 27 2021 Fedora Release Engineering - 3.3.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Thu Jan 21 17:53:26 CET 2021 Christian Heimes - 3.3.1-3 +- Run test suite without tox (#1918913) + +* Fri Nov 13 2020 Miro Hrončok - 3.3.1-2 +- Use https in URL +- Drop build dependency on python3-coverage + +* Thu Oct 22 2020 Christian Heimes - 3.3.1-1 +- New upstream release 3.3.1 + +* Wed Jul 29 2020 Fedora Release Engineering - 3.1.0-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Sun May 24 2020 Miro Hrončok - 3.1.0-10 +- Rebuilt for Python 3.9 + +* Thu Jan 30 2020 Fedora Release Engineering - 3.1.0-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Wed Oct 23 2019 Miro Hrončok - 3.1.0-8 +- Subpackage python2-ldap has been removed + See https://fedoraproject.org/wiki/Changes/Mass_Python_2_Package_Removal + +* Thu Oct 03 2019 Miro Hrončok - 3.1.0-7 +- Rebuilt for Python 3.8.0rc1 (#1748018) + +* Fri Aug 16 2019 Miro Hrončok - 3.1.0-6 +- Rebuilt for Python 3.8 + +* Fri Jul 26 2019 Fedora Release Engineering - 3.1.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Sat Feb 02 2019 Fedora Release Engineering - 3.1.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Sat Jul 14 2018 Fedora Release Engineering - 3.1.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Mon Jun 18 2018 Miro Hrončok - 3.1.0-2 +- Rebuilt for Python 3.7 + +* Fri May 25 2018 Christian Heimes - 3.1.0-1 +- New upstream release 3.1.0 + +* Wed Mar 21 2018 Christian Heimes - 3.0.0-1 +- New upstream release 3.0.0 + +* Fri Feb 09 2018 Fedora Release Engineering - 3.0.0-0.5.b4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Wed Jan 10 2018 Christian Heimes - 3.0.0-0.4.b4 +- New upstream release 3.0.0b4 (RHBZ #1496470) + +* Wed Dec 20 2017 Christian Heimes - 3.0.0-0.3.b3 +- New upstream release 3.0.0b3 (RHBZ #1496470) + +* Mon Dec 11 2017 Christian Heimes - 3.0.0-0.2.b2 +- New upstream release 3.0.0b2 (RHBZ #1496470) +- Require OpenLDAP with fix for NSS issue (see #1520990) + +* Mon Dec 04 2017 Christian Heimes - 0:3.0.0-0.1.b1 +- New upstream release 3.0.0b1 (RHBZ #1496470) +- Resolves RHBZ #1489184 +- Enable unittests +- Remove dsml module +- Package python3-ldap, which obsoletes python3-pyldap + +* Wed Nov 08 2017 Christian Heimes - 0:2.4.25-9 +- Fix issue in pyasn1 patch + +* Tue Nov 07 2017 Christian Heimes - 0:2.4.25-8 +- Apply fix for pyasn1 >= 0.3 + +* Sat Aug 19 2017 Zbigniew Jędrzejewski-Szmek - 0:2.4.25-7 +- Python 2 binary package renamed to python2-ldap + See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3 + +* Thu Aug 03 2017 Fedora Release Engineering - 0:2.4.25-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Thu Jul 27 2017 Fedora Release Engineering - 0:2.4.25-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Fri Jul 07 2017 Igor Gnatenko - 0:2.4.25-4 +- Rebuild due to bug in RPM (RHBZ #1468476) + +* Sat Feb 11 2017 Fedora Release Engineering - 0:2.4.25-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Tue Jul 19 2016 Fedora Release Engineering - 0:2.4.25-2 +- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages + +* Wed Apr 20 2016 Petr Spacek - 2.4.25-1 +- New upstream release 2.4.25 + +* Thu Feb 04 2016 Fedora Release Engineering - 0:2.4.17-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Thu Jun 18 2015 Fedora Release Engineering - 0:2.4.17-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Mon Sep 29 2014 Petr Spacek - 0:2.4.17-1 +- New upstream release adds features required in bug 1122486 +- Dependency on pyasn1-modules was added to fix bug 995545 + +* Thu Sep 25 2014 Petr Spacek - 0:2.4.16-1 +- New upstream release fixes bug 1007820 +- Dependency on pyasn1 was added to fix bug 995545 + +* Sun Aug 17 2014 Fedora Release Engineering - 0:2.4.6-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Sat Jun 07 2014 Fedora Release Engineering - 0:2.4.6-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Sun Aug 04 2013 Fedora Release Engineering - 0:2.4.6-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Thu Feb 14 2013 Fedora Release Engineering - 0:2.4.6-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Sat Jul 21 2012 Fedora Release Engineering - 0:2.4.6-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Sat Jan 14 2012 Fedora Release Engineering - 0:2.4.6-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Mon Jan 02 2012 Jeroen van Meeuwen - 2.4.6-1 +- New upstream release + +* Wed Feb 09 2011 Fedora Release Engineering - 0:2.3.12-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Fri Sep 24 2010 Parag Nemade - 0:2.3.12-1 +- Merge-review cleanup (#226343) + +* Thu Jul 22 2010 David Malcolm - 0:2.3.10-2 +- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild + +* Thu Jan 14 2010 Matthew Barnes - 0:2.3.10-1 +- Update to 2.3.10 +- Change source URI to pypi.python.org. + +* Fri Aug 21 2009 Tomas Mraz - 0:2.3.6-3 +- rebuilt with new openssl + +* Sun Jul 26 2009 Fedora Release Engineering - 0:2.3.6-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Wed Apr 01 2009 Matthew Barnes - 0:2.3.6-1 +- Update to 2.3.6 + +* Fri Feb 27 2009 Matthew Barnes - 0:2.3.5-5 +- Fix a build error. + +* Thu Feb 26 2009 Fedora Release Engineering - 0:2.3.5-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Fri Jan 16 2009 Tomas Mraz - 0:2.3.5-3 +- rebuild with new openssl + +* Sat Nov 29 2008 Ignacio Vazquez-Abrams - 0:2.3.5-2 +- Rebuild for Python 2.6 + +* Wed Sep 3 2008 Tom "spot" Callaway - 0:2.3.5-1 +- fix license tag +- update to 2.3.5 + +* Sun Feb 17 2008 Matthew Barnes - 0:2.3.1-3.fc9 +- Rebuild with GCC 4.3 + +* Wed Dec 05 2007 Matthew Barnes - 0:2.3.1-2.fc9 +- Rebuild against new openssl. + +* Wed Oct 10 2007 Matthew Barnes - 0:2.3.1-1.fc8 +- Update to 2.3.1 + +* Fri Jun 08 2007 Matthew Barnes - 0:2.3.0-1.fc8 +- Update to 2.3 +- Spec file cleanups. + +* Thu Dec 7 2006 Jeremy Katz - 0:2.2.0-3 +- rebuild against python 2.5 + +* Wed Jul 12 2006 Jesse Keating +- rebuild + +* Wed May 17 2006 Matthew Barnes - 2.2.0-2 +- Put back the epoch line... happy beehive? + +* Mon May 15 2006 Matthew Barnes - 2.2.0-1 +- Update to 2.2.0 +- Update python-ldap-2.0.6-rpath.patch and rename it to + python-ldap-2.2.0-dirs.patch. + +* Fri Feb 10 2006 Jesse Keating - 0:2.0.6-5.2.1 +- bump again for double-long bug on ppc(64) + +* Tue Feb 07 2006 Jesse Keating - 0:2.0.6-5.2 +- rebuilt for new gcc4.1 snapshot and glibc changes + +* Fri Dec 09 2005 Jesse Keating +- rebuilt + +* Tue Nov 8 2005 Tomas Mraz - 2.0.6-5 +- rebuilt with new openssl + +* Tue Mar 22 2005 Warren Togami - 2.0.6-4 +- add LICENCE (#150842) +- simplify python reqs +- remove invalid rpath + +* Wed Mar 16 2005 Dan Williams - 0:2.0.6-2 +- rebuilt to pick up new libssl.so.5 + +* Tue Feb 8 2005 David Malcolm - 0:2.0.6-1 +- 2.0.6 + +* Tue Nov 16 2004 Nalin Dahyabhai - 0:2.0.1-3 +- rebuild (#139161) + +* Mon Aug 30 2004 David Malcolm - 0:2.0.1-2 +- Rewrote description; added requirement for openldap + +* Tue Aug 17 2004 David Malcolm - 0:2.0.1-1 +- imported into Red Hat's packaging system from Fedora.us; set release to 1 + +* Wed Jun 30 2004 Panu Matilainen 0:2.0.1-0.fdr.1 +- update to 2.0.1 + +* Sun Dec 07 2003 Panu Matilainen 0:2.0.0-0.fdr.0.4.pre16 +- fix spec permissions + release tag order (bug 1099) + +* Sat Dec 6 2003 Ville Skyttä 0:2.0.0-0.fdr.0.pre16.3 +- Stricter python version requirements. +- BuildRequire openssl-devel. +- Explicitly build *.pyo, install them as %%ghost. +- Own more installed dirs. +- Remove $RPM_BUILD_ROOT at start of %%install. + +* Wed Dec 03 2003 Panu Matilainen 0:2.0.0-0.fdr.0.pre16.2 +- duh, build requires python-devel, not just python... + +* Wed Dec 03 2003 Panu Matilainen 0:2.0.0-0.fdr.0.pre16.1 +- Initial Fedora packaging.