Compare commits
10 Commits
0f14f4be16
...
b4f43402e0
Author | SHA1 | Date |
---|---|---|
Simon Pichugin | b4f43402e0 | |
Simon Pichugin | 549231d853 | |
Simon Pichugin | 1650b7fc19 | |
Simon Pichugin | de919402cb | |
Mohan Boddu | 105bbdd581 | |
Christian Heimes | 8d95115e75 | |
Christian Heimes | 018486b98a | |
Mohan Boddu | 668211d9ed | |
Kaleemullah Siddiqui | 964c7f70c2 | |
Mohan Boddu | 128b758ce0 |
|
@ -11,3 +11,4 @@ python-ldap-2.3.10.tar.gz
|
|||
/python-ldap-3.0.0.tar.gz
|
||||
/python-ldap-3.1.0.tar.gz
|
||||
/python-ldap-3.3.1.tar.gz
|
||||
/python-ldap-3.4.3.tar.gz
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
f1e73d6dfcd97aabf379c8a77b697cbec70bec80 python-ldap-3.4.3.tar.gz
|
|
@ -0,0 +1,136 @@
|
|||
From eba004c1992ca7e21abb8af55ecd913f5ae0bdc6 Mon Sep 17 00:00:00 2001
|
||||
From: Simon Pichugin <spichugi@redhat.com>
|
||||
Date: Wed, 4 Jan 2023 15:30:15 -0800
|
||||
Subject: [PATCH] Disable openldap-servers tests
|
||||
|
||||
---
|
||||
Tests/t_bind.py | 1 +
|
||||
Tests/t_cext.py | 1 +
|
||||
Tests/t_edit.py | 1 +
|
||||
Tests/t_ldap_options.py | 1 +
|
||||
Tests/t_ldap_sasl.py | 1 +
|
||||
Tests/t_ldap_schema_subentry.py | 1 +
|
||||
Tests/t_ldap_syncrepl.py | 2 ++
|
||||
Tests/t_ldapobject.py | 1 +
|
||||
Tests/t_slapdobject.py | 1 +
|
||||
9 files changed, 10 insertions(+)
|
||||
|
||||
diff --git a/Tests/t_bind.py b/Tests/t_bind.py
|
||||
index ba90c4c..653b871 100644
|
||||
--- a/Tests/t_bind.py
|
||||
+++ b/Tests/t_bind.py
|
||||
@@ -9,6 +9,7 @@ from ldap.ldapobject import LDAPObject
|
||||
from slapdtest import SlapdTestCase
|
||||
|
||||
|
||||
+@unittest.skip("openldap-server package is absent")
|
||||
class TestBinds(SlapdTestCase):
|
||||
unicode_val = "abc\U0001f498def"
|
||||
unicode_val_bytes = unicode_val.encode('utf-8')
|
||||
diff --git a/Tests/t_cext.py b/Tests/t_cext.py
|
||||
index 33fbf29..8035354 100644
|
||||
--- a/Tests/t_cext.py
|
||||
+++ b/Tests/t_cext.py
|
||||
@@ -17,6 +17,7 @@ import _ldap
|
||||
from slapdtest import SlapdTestCase, requires_tls, requires_init_fd
|
||||
|
||||
|
||||
+@unittest.skip("openldap-server package is absent")
|
||||
class TestLdapCExtension(SlapdTestCase):
|
||||
"""
|
||||
These tests apply only to the _ldap module and therefore bypass the
|
||||
diff --git a/Tests/t_edit.py b/Tests/t_edit.py
|
||||
index 5d8b3f0..757de9d 100644
|
||||
--- a/Tests/t_edit.py
|
||||
+++ b/Tests/t_edit.py
|
||||
@@ -9,6 +9,7 @@ from ldap.ldapobject import LDAPObject
|
||||
from slapdtest import SlapdTestCase
|
||||
|
||||
|
||||
+@unittest.skip("openldap-server package is absent")
|
||||
class EditionTests(SlapdTestCase):
|
||||
|
||||
@classmethod
|
||||
diff --git a/Tests/t_ldap_options.py b/Tests/t_ldap_options.py
|
||||
index e9bef59..2fea7a3 100644
|
||||
--- a/Tests/t_ldap_options.py
|
||||
+++ b/Tests/t_ldap_options.py
|
||||
@@ -135,6 +135,7 @@ class TestGlobalOptions(BaseTestOptions, unittest.TestCase):
|
||||
return ldap.set_option(option, value)
|
||||
|
||||
|
||||
+@unittest.skip("openldap-server package is absent")
|
||||
class TestLDAPObjectOptions(BaseTestOptions, SlapdTestCase):
|
||||
"""Test setting/getting connection-specific options
|
||||
"""
|
||||
diff --git a/Tests/t_ldap_sasl.py b/Tests/t_ldap_sasl.py
|
||||
index 40ab27e..ef6aec0 100644
|
||||
--- a/Tests/t_ldap_sasl.py
|
||||
+++ b/Tests/t_ldap_sasl.py
|
||||
@@ -37,6 +37,7 @@ cn: {certuser}
|
||||
"""
|
||||
|
||||
|
||||
+@unittest.skip("openldap-server package is absent")
|
||||
@requires_sasl()
|
||||
class TestSasl(SlapdTestCase):
|
||||
ldap_object_class = SimpleLDAPObject
|
||||
diff --git a/Tests/t_ldap_schema_subentry.py b/Tests/t_ldap_schema_subentry.py
|
||||
index 60a584d..691fc5b 100644
|
||||
--- a/Tests/t_ldap_schema_subentry.py
|
||||
+++ b/Tests/t_ldap_schema_subentry.py
|
||||
@@ -236,6 +236,7 @@ class TestAttributes(unittest.TestCase):
|
||||
self.assertEqual(cls.x_origin, ('RFC 4519',))
|
||||
|
||||
|
||||
+@unittest.skip("openldap-server package is absent")
|
||||
class TestSubschemaUrlfetchSlapd(SlapdTestCase):
|
||||
ldap_object_class = SimpleLDAPObject
|
||||
|
||||
diff --git a/Tests/t_ldap_syncrepl.py b/Tests/t_ldap_syncrepl.py
|
||||
index 6acc82c..7e54830 100644
|
||||
--- a/Tests/t_ldap_syncrepl.py
|
||||
+++ b/Tests/t_ldap_syncrepl.py
|
||||
@@ -265,6 +265,7 @@ class SyncreplClient(SimpleLDAPObject, SyncreplConsumer):
|
||||
pass
|
||||
|
||||
|
||||
+@unittest.skip("openldap-server package is absent")
|
||||
class BaseSyncreplTests:
|
||||
"""
|
||||
This is a test of all the basic Syncrepl operations. It covers starting a
|
||||
@@ -430,6 +431,7 @@ class BaseSyncreplTests:
|
||||
# should pick it up during the persist phase.
|
||||
|
||||
|
||||
+@unittest.skip("openldap-server package is absent")
|
||||
class TestSyncrepl(BaseSyncreplTests, SlapdTestCase):
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
diff --git a/Tests/t_ldapobject.py b/Tests/t_ldapobject.py
|
||||
index ccc7d21..dc7a4b8 100644
|
||||
--- a/Tests/t_ldapobject.py
|
||||
+++ b/Tests/t_ldapobject.py
|
||||
@@ -88,6 +88,7 @@ olcObjectClasses: ( 1.3.6.1.4.1.56207.1.2.2 NAME 'myClass'
|
||||
X-ORIGIN 'foobar' )"""
|
||||
|
||||
|
||||
+@unittest.skip("openldap-server package is absent")
|
||||
class Test00_SimpleLDAPObject(SlapdTestCase):
|
||||
"""
|
||||
test LDAP search operations
|
||||
diff --git a/Tests/t_slapdobject.py b/Tests/t_slapdobject.py
|
||||
index e1cc971..c9b693d 100644
|
||||
--- a/Tests/t_slapdobject.py
|
||||
+++ b/Tests/t_slapdobject.py
|
||||
@@ -3,6 +3,7 @@ import unittest
|
||||
import slapdtest
|
||||
|
||||
|
||||
+@unittest.skip("openldap-server package is absent")
|
||||
class TestSlapdObject(unittest.TestCase):
|
||||
def test_context_manager(self):
|
||||
with slapdtest.SlapdObject() as server:
|
||||
--
|
||||
2.38.1
|
||||
|
|
@ -0,0 +1,169 @@
|
|||
From 30fb0a8bda8fbedc22de87b21b8b1b64de310a6b Mon Sep 17 00:00:00 2001
|
||||
From: Christian Heimes <cheimes@redhat.com>
|
||||
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 <cheimes@redhat.com>
|
||||
---
|
||||
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
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
# recipients: abokovoy, frenaud, kaleem, ftrivino, cheimes
|
||||
--- !Policy
|
||||
product_versions:
|
||||
- rhel-9
|
||||
decision_context: osci_compose_gate
|
||||
rules:
|
||||
- !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional}
|
|
@ -4,13 +4,15 @@
|
|||
%global openldap_version 2.4.45-4
|
||||
|
||||
Name: python-ldap
|
||||
Version: 3.3.1
|
||||
Release: 4%{?dist}
|
||||
Version: 3.4.3
|
||||
Release: 2%{?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-Disable-openldap-servers-tests.patch
|
||||
|
||||
### Build Dependencies ###
|
||||
BuildRequires: gcc
|
||||
BuildRequires: openldap-devel >= %{openldap_version}
|
||||
|
@ -19,7 +21,6 @@ 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
|
||||
|
@ -49,7 +50,7 @@ Provides: python3-pyldap%{?_isa} = %{version}-%{release}
|
|||
|
||||
|
||||
%prep
|
||||
%setup -q -n %{name}-%{version}%{?prerelease}
|
||||
%autosetup -p1 -n %{name}-%{version}%{?prerelease}
|
||||
# Fix interpreter
|
||||
find . -name '*.py' | xargs sed -i '1s|^#!/usr/bin/env python|#!%{__python3}|'
|
||||
|
||||
|
@ -77,6 +78,33 @@ PYTHONPATH=%{buildroot}%{python3_sitearch} %{__python3} -m unittest discover -v
|
|||
%{python3_sitearch}/python_ldap-%{version}%{?prerelease}-py%{python3_version}.egg-info/
|
||||
|
||||
%changelog
|
||||
* Thu Jan 12 2023 Simon Pichugin <spichugi@redhat.com> - 3.4.3-2
|
||||
- Fix changelog date typo
|
||||
Related: rhbz#2158289
|
||||
|
||||
* Wed Jan 11 2023 Simon Pichugin <spichugi@redhat.com> - 3.4.3-1
|
||||
- New upstream release 3.4.3
|
||||
Resolves: rhbz#2158289
|
||||
|
||||
* Fri Jul 29 2022 Simon Pichugin <spichugi@redhat.com> - 3.3.1-9
|
||||
- Disable openldap-servers tests as the package is fully deprecated
|
||||
Resolves: rhbz#2102940
|
||||
|
||||
* Tue Aug 10 2021 Mohan Boddu <mboddu@redhat.com> - 3.3.1-8
|
||||
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
|
||||
Related: rhbz#1991688
|
||||
|
||||
* Mon Jun 28 2021 Christian Heimes <cheimes@redhat.com> - 3.3.1-7
|
||||
- Fix SASL get/set options on big endian platforms
|
||||
- Resolves: rhbz#1976827
|
||||
|
||||
* Tue Jun 22 2021 Mohan Boddu <mboddu@redhat.com> - 3.3.1-6
|
||||
- Rebuilt for RHEL 9 BETA for openssl 3.0
|
||||
Related: rhbz#1971065
|
||||
|
||||
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 3.3.1-5
|
||||
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
|
||||
|
||||
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.3.1-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||
|
||||
|
|
2
sources
2
sources
|
@ -1 +1 @@
|
|||
SHA512 (python-ldap-3.3.1.tar.gz) = 2a1222bf5bbc1d885611fc4f2a25d0b1b64b49ae379f1212f1b3b70fc12fdc547eb6c4af4060a20bf082547b7df8f1824bb1fdfafa37ab21acf2f1e231c4d2d1
|
||||
SHA512 (python-ldap-3.4.3.tar.gz) = af12ab49c7ad3c0c009509b12eea3d6a43c24ae146ad20b1bbd86fcdb85803dcea338b047eeadd0c79cd2829c09c760951811f1cba21d04fd73d5f7475b493b2
|
||||
|
|
|
@ -0,0 +1,31 @@
|
|||
---
|
||||
# Run python-ldap's unit test suite as gating tests.
|
||||
#
|
||||
# Note: Requires openldap-server from RHEL build root.
|
||||
#
|
||||
# 1minutetip --buildroot rhel9
|
||||
|
||||
- hosts: localhost
|
||||
tags:
|
||||
- classic
|
||||
pre_tasks:
|
||||
- name: Enable rhel-buildroot-latest for openldap-servers on 1minutetip
|
||||
ini_file:
|
||||
path: /etc/yum.repos.d/rhel.repo
|
||||
section: rhel-buildroot
|
||||
option: enabled
|
||||
value: "1"
|
||||
create: no
|
||||
ignore_errors: yes
|
||||
roles:
|
||||
- role: standard-test-source
|
||||
- role: standard-test-basic
|
||||
required_packages:
|
||||
- python3-ldap
|
||||
- openldap-servers
|
||||
- openldap-clients
|
||||
tests:
|
||||
- unittests:
|
||||
dir: "source"
|
||||
run: >-
|
||||
python3 -m unittest discover -s Tests -p 't_*.py' -v
|
Loading…
Reference in New Issue