import libldb-2.2.0-2.el8

This commit is contained in:
CentOS Sources 2021-05-18 02:38:34 -04:00 committed by Andrew Lukoshko
parent c2e1053bc7
commit 895d4920ae
8 changed files with 340 additions and 98 deletions

3
.gitignore vendored
View File

@ -1 +1,2 @@
SOURCES/ldb-2.1.3.tar.gz SOURCES/ldb-2.2.0.tar.gz
SOURCES/ldb.keyring

View File

@ -1 +1,2 @@
06d1c8457e56b2df26cec16253a62acc789aa6fb SOURCES/ldb-2.1.3.tar.gz 7c6d0827a20195636fcd84d713eea278d39064d4 SOURCES/ldb-2.2.0.tar.gz
8ac6d09878c4218fb8e365fcf5a877a621dd40f9 SOURCES/ldb.keyring

View File

@ -0,0 +1,195 @@
From d4e0a07a24c16b38de58c14a38b418c63106ad09 Mon Sep 17 00:00:00 2001
From: Lukas Slebodnik <lslebodn@fedoraproject.org>
Date: Sat, 24 Aug 2019 16:46:30 +0200
Subject: [PATCH] [PATCH] wafsamba: Fix few SyntaxWarnings caused by regular
expressions
./buildtools/wafsamba/samba_utils.py:258: SyntaxWarning: invalid escape sequence \$
lst = re.split('(\$\{\w+\})', string)
./buildtools/wafsamba/samba_utils.py:261: SyntaxWarning: invalid escape sequence \$
if re.match('\$\{\w+\}', v):
./buildtools/wafsamba/samba_cross.py:80: SyntaxWarning: invalid escape sequence \(
m = re.match('\(\s*(-?\d+)\s*,\s*\"(.*)\"\s*\)', ans)
./buildtools/wafsamba/samba_conftests.py:400: SyntaxWarning: invalid escape sequence \s
m = re.search('MAN%sEXT\s+=\s+(\w+)' % section, man)
./buildtools/wafsamba/samba_abi.py:24: SyntaxWarning: invalid escape sequence \$
sig = re.sub('^\$[0-9]+\s=\s\{(.+)\}$', r'\1', sig)
./buildtools/wafsamba/samba_abi.py:25: SyntaxWarning: invalid escape sequence \$
sig = re.sub('^\$[0-9]+\s=\s\{(.+)\}(\s0x[0-9a-f]+\s<\w+>)+$', r'\1', sig)
./buildtools/wafsamba/samba_abi.py:26: SyntaxWarning: invalid escape sequence \$
sig = re.sub('^\$[0-9]+\s=\s(0x[0-9a-f]+)\s?(<\w+>)?$', r'\1', sig)
./buildtools/wafsamba/samba_abi.py:33: SyntaxWarning: invalid escape sequence \*
m = m.replace('*', '\*')
./buildtools/wafsamba/samba_abi.py:44: SyntaxWarning: invalid escape sequence \s
sig = re.sub(',\s\.\.\.', '', sig)
./buildtools/wafsamba/samba_headers.py:22: SyntaxWarning: invalid escape sequence \s
re_header = re.compile('^\s*#\s*include[ \t]*"([^"]+)"', re.I | re.M)
./buildtools/wafsamba/symbols.py:122: SyntaxWarning: invalid escape sequence \[
re_sharedlib = re.compile(b'Shared library: \[(.*)\]')
./buildtools/wafsamba/symbols.py:124: SyntaxWarning: invalid escape sequence \[
re_rpath = re.compile(b'Library (rpath|runpath): \[(.*)\]')
./buildtools/wafsamba/pkgconfig.py:12: SyntaxWarning: invalid escape sequence \w
a = re.split('(@\w+@)', s)
./buildtools/wafsamba/pkgconfig.py:17: SyntaxWarning: invalid escape sequence \w
if re.match('@\w+@', v):
./buildtools/wafsamba/configure_file.py:16: SyntaxWarning: invalid escape sequence \w
a = re.split('(@\w+@)', s)
./buildtools/wafsamba/configure_file.py:19: SyntaxWarning: invalid escape sequence \w
if re.match('@\w+@', v):
---
buildtools/wafsamba/configure_file.py | 4 ++--
buildtools/wafsamba/pkgconfig.py | 4 ++--
buildtools/wafsamba/samba_abi.py | 12 ++++++------
buildtools/wafsamba/samba_conftests.py | 2 +-
buildtools/wafsamba/samba_cross.py | 2 +-
buildtools/wafsamba/samba_headers.py | 2 +-
buildtools/wafsamba/samba_utils.py | 4 ++--
buildtools/wafsamba/symbols.py | 4 ++--
8 files changed, 17 insertions(+), 17 deletions(-)
diff --git a/buildtools/wafsamba/configure_file.py b/buildtools/wafsamba/configure_file.py
index 6ad43546249fba7b4c0a037035e8574e7a9d2753..98a58a4604513e3633317e73299c1c9280c250d2 100644
--- a/buildtools/wafsamba/configure_file.py
+++ b/buildtools/wafsamba/configure_file.py
@@ -13,10 +13,10 @@ def subst_at_vars(task):
s = task.inputs[0].read()
# split on the vars
- a = re.split('(@\w+@)', s)
+ a = re.split(r'(@\w+@)', s)
out = []
for v in a:
- if re.match('@\w+@', v):
+ if re.match(r'@\w+@', v):
vname = v[1:-1]
if not vname in task.env and vname.upper() in task.env:
vname = vname.upper()
diff --git a/buildtools/wafsamba/pkgconfig.py b/buildtools/wafsamba/pkgconfig.py
index b83d5f382a58352bb3318b594aa2b45fc02d87d5..b77bd618c8903789c7ba9e64a6972a4e080f1821 100644
--- a/buildtools/wafsamba/pkgconfig.py
+++ b/buildtools/wafsamba/pkgconfig.py
@@ -9,12 +9,12 @@ def subst_at_vars(task):
s = task.inputs[0].read()
# split on the vars
- a = re.split('(@\w+@)', s)
+ a = re.split(r'(@\w+@)', s)
out = []
done_var = {}
back_sub = [ ('PREFIX', '${prefix}'), ('EXEC_PREFIX', '${exec_prefix}')]
for v in a:
- if re.match('@\w+@', v):
+ if re.match(r'@\w+@', v):
vname = v[1:-1]
if not vname in task.env and vname.upper() in task.env:
vname = vname.upper()
diff --git a/buildtools/wafsamba/samba_abi.py b/buildtools/wafsamba/samba_abi.py
index 5e7686da3d68b1ebcd842b8a319a5997fa9cf600..761667fcfe1f3937be22c8261b45dcb3979ae4cd 100644
--- a/buildtools/wafsamba/samba_abi.py
+++ b/buildtools/wafsamba/samba_abi.py
@@ -21,16 +21,16 @@ version_key = lambda x: list(map(int, x.split(".")))
def normalise_signature(sig):
'''normalise a signature from gdb'''
sig = sig.strip()
- sig = re.sub('^\$[0-9]+\s=\s\{(.+)\}$', r'\1', sig)
- sig = re.sub('^\$[0-9]+\s=\s\{(.+)\}(\s0x[0-9a-f]+\s<\w+>)+$', r'\1', sig)
- sig = re.sub('^\$[0-9]+\s=\s(0x[0-9a-f]+)\s?(<\w+>)?$', r'\1', sig)
- sig = re.sub('0x[0-9a-f]+', '0xXXXX', sig)
+ sig = re.sub(r'^\$[0-9]+\s=\s\{(.+)\}$', r'\1', sig)
+ sig = re.sub(r'^\$[0-9]+\s=\s\{(.+)\}(\s0x[0-9a-f]+\s<\w+>)+$', r'\1', sig)
+ sig = re.sub(r'^\$[0-9]+\s=\s(0x[0-9a-f]+)\s?(<\w+>)?$', r'\1', sig)
+ sig = re.sub(r'0x[0-9a-f]+', '0xXXXX', sig)
sig = re.sub('", <incomplete sequence (\\\\[a-z0-9]+)>', r'\1"', sig)
for t in abi_type_maps:
# we need to cope with non-word characters in mapped types
m = t
- m = m.replace('*', '\*')
+ m = m.replace('*', r'\*')
if m[-1].isalnum() or m[-1] == '_':
m += '\\b'
if m[0].isalnum() or m[0] == '_':
@@ -41,7 +41,7 @@ def normalise_signature(sig):
def normalise_varargs(sig):
'''cope with older versions of gdb'''
- sig = re.sub(',\s\.\.\.', '', sig)
+ sig = re.sub(r',\s\.\.\.', '', sig)
return sig
diff --git a/buildtools/wafsamba/samba_conftests.py b/buildtools/wafsamba/samba_conftests.py
index ef632ba903369e4211991f17a3b204bcd96c3a2f..63e50567860ff890b00b0ce6c7607c917b7329d1 100644
--- a/buildtools/wafsamba/samba_conftests.py
+++ b/buildtools/wafsamba/samba_conftests.py
@@ -397,7 +397,7 @@ WriteMakefile(
if section:
man = Utils.readf(os.path.join(bdir,'Makefile'))
- m = re.search('MAN%sEXT\s+=\s+(\w+)' % section, man)
+ m = re.search(r'MAN%sEXT\s+=\s+(\w+)' % section, man)
if not m:
conf.end_msg('not found', color='YELLOW')
return
diff --git a/buildtools/wafsamba/samba_cross.py b/buildtools/wafsamba/samba_cross.py
index 8863c2c53e7d7dd9317c9233f0085ffd0eea6b2f..34793902fba884cf2d8358bf4315dc98027266b6 100644
--- a/buildtools/wafsamba/samba_cross.py
+++ b/buildtools/wafsamba/samba_cross.py
@@ -77,7 +77,7 @@ def cross_answer(ca_file, msg):
f.close()
return (0, ans.strip("'"))
else:
- m = re.match('\(\s*(-?\d+)\s*,\s*\"(.*)\"\s*\)', ans)
+ m = re.match(r'\(\s*(-?\d+)\s*,\s*\"(.*)\"\s*\)', ans)
if m:
f.close()
return (int(m.group(1)), m.group(2))
diff --git a/buildtools/wafsamba/samba_headers.py b/buildtools/wafsamba/samba_headers.py
index a268c011c5d8e406e0d763554c55668cfb5388bc..c8bee19010978a04460b0637fcc8fd484a699ea8 100644
--- a/buildtools/wafsamba/samba_headers.py
+++ b/buildtools/wafsamba/samba_headers.py
@@ -19,7 +19,7 @@ def header_install_path(header, header_path):
return ''
-re_header = re.compile('^\s*#\s*include[ \t]*"([^"]+)"', re.I | re.M)
+re_header = re.compile(r'^\s*#\s*include[ \t]*"([^"]+)"', re.I | re.M)
# a dictionary mapping source header paths to public header paths
header_map = {}
diff --git a/buildtools/wafsamba/samba_utils.py b/buildtools/wafsamba/samba_utils.py
index ad97de1859ba24c4afd5106b4f9694b0dc855643..75c9794ec40f327ef8ccf9aa33fafd6ed6181e3b 100644
--- a/buildtools/wafsamba/samba_utils.py
+++ b/buildtools/wafsamba/samba_utils.py
@@ -255,10 +255,10 @@ def TO_LIST(str, delimiter=None):
def subst_vars_error(string, env):
'''substitute vars, throw an error if a variable is not defined'''
- lst = re.split('(\$\{\w+\})', string)
+ lst = re.split(r'(\$\{\w+\})', string)
out = []
for v in lst:
- if re.match('\$\{\w+\}', v):
+ if re.match(r'\$\{\w+\}', v):
vname = v[2:-1]
if not vname in env:
raise KeyError("Failed to find variable %s in %s in env %s <%s>" % (vname, string, env.__class__, str(env)))
diff --git a/buildtools/wafsamba/symbols.py b/buildtools/wafsamba/symbols.py
index 3eca3d46bd71cf0780b3c8e36a26b96bd3aa3b83..73e8ca8ce53ef5d956ac58e14a2403dd49f01109 100644
--- a/buildtools/wafsamba/symbols.py
+++ b/buildtools/wafsamba/symbols.py
@@ -119,9 +119,9 @@ def find_ldd_path(bld, libname, binary):
# some regular expressions for parsing readelf output
-re_sharedlib = re.compile(b'Shared library: \[(.*)\]')
+re_sharedlib = re.compile(r'Shared library: \[(.*)\]')
# output from readelf could be `Library rpath` or `Libray runpath`
-re_rpath = re.compile(b'Library (rpath|runpath): \[(.*)\]')
+re_rpath = re.compile(r'Library (rpath|runpath): \[(.*)\]')
def get_libs(bld, binname):
'''find the list of linked libraries for any binary or library
--
2.23.0.rc2

44
SOURCES/1420.patch Normal file
View File

@ -0,0 +1,44 @@
From 0e4fd77c1e03fe6351d129f2161b0b3313f5fa3d Mon Sep 17 00:00:00 2001
From: Mathieu Parent <math.parent@gmail.com>
Date: Thu, 25 Jun 2020 09:48:04 +0200
Subject: [PATCH] Fix FTBFS / Increase the over-estimation for sparse files
BUG: https://bugzilla.samba.org/show_bug.cgi?id=14418
Signed-off-by: Mathieu Parent <math.parent@gmail.com>
---
tests/ldb_kv_ops_test.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/lib/ldb/tests/ldb_kv_ops_test.c b/lib/ldb/tests/ldb_kv_ops_test.c
index 30adebf1952..9db2212895f 100644
--- a/tests/ldb_kv_ops_test.c
+++ b/tests/ldb_kv_ops_test.c
@@ -1717,8 +1717,11 @@ static void test_get_size(void **state)
/*
* The tdb implementation of get_size over estimates for sparse files
* which is perfectly acceptable for it's intended use.
+ * mipsel, ia64: 9994
+ * ppc64el, powerpc, ppc64: 13369
+ * sparc64: 5046
*/
- assert_in_range(size, 2500, 5000);
+ assert_in_range(size, 2500, 15000);
#endif
/*
@@ -1746,8 +1749,11 @@ static void test_get_size(void **state)
/*
* The tdb implementation of get_size over estimates for sparse files
* which is perfectly acceptable for it's intended use.
+ * mipsel, ia64: 9994
+ * ppc64el, powerpc, ppc64: 13369
+ * sparc64: 5046
*/
- assert_in_range(size, 2500, 5000);
+ assert_in_range(size, 2500, 15000);
#endif
talloc_free(tmp_ctx);
}
--
GitLab

View File

@ -1,48 +0,0 @@
From 3bdc110e167d7e0f20022dea48ec51b1f46369cb Mon Sep 17 00:00:00 2001
From: Gary Lockyer <gary@catalyst.net.nz>
Date: Wed, 13 May 2020 10:56:56 +1200
Subject: [PATCH 10/11] CVE-2020-10730: lib ldb: Check if
ldb_lock_backend_callback called twice
Prevent use after free issues if ldb_lock_backend_callback is called
twice, usually due to ldb_module_done being called twice. This can happen if a
module ignores the return value from function a function that calls
ldb_module_done as part of it's error handling.
BUG: https://bugzilla.samba.org/show_bug.cgi?id=14364
Signed-off-by: Gary Lockyer <gary@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
---
lib/ldb/common/ldb.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/lib/ldb/common/ldb.c b/lib/ldb/common/ldb.c
index 44a487ba987..090d41dde69 100644
--- a/lib/ldb/common/ldb.c
+++ b/lib/ldb/common/ldb.c
@@ -1009,6 +1009,13 @@ static int ldb_lock_backend_callback(struct ldb_request *req,
struct ldb_db_lock_context *lock_context;
int ret;
+ if (req->context == NULL) {
+ /*
+ * The usual way to get here is to ignore the return codes
+ * and continuing processing after an error.
+ */
+ abort();
+ }
lock_context = talloc_get_type(req->context,
struct ldb_db_lock_context);
@@ -1023,7 +1030,7 @@ static int ldb_lock_backend_callback(struct ldb_request *req,
* If this is a LDB_REPLY_DONE or an error, unlock the
* DB by calling the destructor on this context
*/
- talloc_free(lock_context);
+ TALLOC_FREE(req->context);
return ret;
}
--
2.17.1

View File

@ -17,10 +17,10 @@ Reviewed-by: Andrew Bartlett <abartlet@samba.org>
lib/ldb/tests/ldb_match_test.c | 134 ++++++++++++++++++++++++++++++--- lib/ldb/tests/ldb_match_test.c | 134 ++++++++++++++++++++++++++++++---
1 file changed, 124 insertions(+), 10 deletions(-) 1 file changed, 124 insertions(+), 10 deletions(-)
diff --git a/lib/ldb/tests/ldb_match_test.c b/lib/ldb/tests/ldb_match_test.c diff --git a/tests/ldb_match_test.c b/tests/ldb_match_test.c
index e09f50c86ba..3028aed072c 100644 index e09f50c86ba..3028aed072c 100644
--- a/lib/ldb/tests/ldb_match_test.c --- a/tests/ldb_match_test.c
+++ b/lib/ldb/tests/ldb_match_test.c +++ b/tests/ldb_match_test.c
@@ -91,6 +91,33 @@ static int teardown(void **state) @@ -91,6 +91,33 @@ static int teardown(void **state)
return 0; return 0;
} }
@ -195,10 +195,10 @@ Reviewed-by: Andrew Bartlett <abartlet@samba.org>
lib/ldb/tests/ldb_match_test.c | 8 +++++++- lib/ldb/tests/ldb_match_test.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-) 1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/lib/ldb/tests/ldb_match_test.c b/lib/ldb/tests/ldb_match_test.c diff --git a/tests/ldb_match_test.c b/tests/ldb_match_test.c
index 3028aed072c..ba6ea56be15 100644 index 3028aed072c..ba6ea56be15 100644
--- a/lib/ldb/tests/ldb_match_test.c --- a/tests/ldb_match_test.c
+++ b/lib/ldb/tests/ldb_match_test.c +++ b/tests/ldb_match_test.c
@@ -181,6 +181,8 @@ static void test_wildcard_match(void **state) @@ -181,6 +181,8 @@ static void test_wildcard_match(void **state)
size_t failed = 0; size_t failed = 0;
size_t i; size_t i;
@ -246,10 +246,10 @@ Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
lib/ldb/tests/ldb_match_test.c | 2 -- lib/ldb/tests/ldb_match_test.c | 2 --
1 file changed, 2 deletions(-) 1 file changed, 2 deletions(-)
diff --git a/lib/ldb/tests/ldb_match_test.c b/lib/ldb/tests/ldb_match_test.c diff --git a/tests/ldb_match_test.c b/tests/ldb_match_test.c
index ba6ea56be15..fbf4106fa78 100644 index ba6ea56be15..fbf4106fa78 100644
--- a/lib/ldb/tests/ldb_match_test.c --- a/tests/ldb_match_test.c
+++ b/lib/ldb/tests/ldb_match_test.c +++ b/tests/ldb_match_test.c
@@ -191,11 +191,9 @@ static void test_wildcard_match(void **state) @@ -191,11 +191,9 @@ static void test_wildcard_match(void **state)
TEST_ENTRY("The value.......end", "*e*d*", true, true), TEST_ENTRY("The value.......end", "*e*d*", true, true),
TEST_ENTRY("end", "*e*d*", true, true), TEST_ENTRY("end", "*e*d*", true, true),
@ -285,10 +285,10 @@ Reviewed-by: Andrew Bartlett <abartlet@samba.org>
lib/ldb/common/attrib_handlers.c | 2 +- lib/ldb/common/attrib_handlers.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-) 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/ldb/common/attrib_handlers.c b/lib/ldb/common/attrib_handlers.c diff --git a/common/attrib_handlers.c b/common/attrib_handlers.c
index b5212b73159..c6ef5ad477b 100644 index b5212b73159..c6ef5ad477b 100644
--- a/lib/ldb/common/attrib_handlers.c --- a/common/attrib_handlers.c
+++ b/lib/ldb/common/attrib_handlers.c +++ b/common/attrib_handlers.c
@@ -76,7 +76,7 @@ int ldb_handler_fold(struct ldb_context *ldb, void *mem_ctx, @@ -76,7 +76,7 @@ int ldb_handler_fold(struct ldb_context *ldb, void *mem_ctx,
/* remove leading spaces if any */ /* remove leading spaces if any */

11
SOURCES/ldb-2.2.0.tar.asc Normal file
View File

@ -0,0 +1,11 @@
-----BEGIN PGP SIGNATURE-----
iQFJBAABCgAzFiEEkUejOXGVGO6QEby1R5ORYRMIQCUFAl8HCQwVHHNhbWJhLWJ1
Z3NAc2FtYmEub3JnAAoJEEeTkWETCEAlrwkH/A/MJM5E0Pyz6HNdctHSrA97FB6Q
JI1MnsyXerZXfDulcUFmyrNPp66gLGeNGG2X9eoxvWrZk3hPnYe9YPE6UiwCKxZu
1CSp2JuwaVB6EoUxUIuh63DFlF9Th/ZEhPsBrP3tQHvZyGpTDOQq3qhV7FLsrIwO
RstK5CJIqmgwy84oJmKanWLWfTqdp/HBvVsZw0/kZ0Kr+3DUcM9MaY7hifMpcSOV
8HTMgIpEoPbKkNOMj2lkDiYcx3tLWtdMYQdN31Cng3X9n5XmLX0GQlfCjfediSkT
vK2RGlIp/hlEXOSyIG2mJync+u4NCOv7r8EEcVhjHDYOflIvfOiwbITtWMg=
=/f7o
-----END PGP SIGNATURE-----

View File

@ -1,50 +1,77 @@
%if ((0%{?fedora} || 0%{?rhel} > 7 || 0%{?epel} > 6))
# lmdb is not supported on 32 bit architectures
# also disabled on aarch64 for now, due to #1897082
%ifarch s390x x86_64
%bcond_without lmdb
%else
%bcond_with lmdb
#endif arch
%endif
%else
%bcond_with lmdb
#endif fedora || rhel || epel
%endif
%if 0%{?fedora} || 0%{?rhel} > 7
%bcond_without python3
%else
%bcond_with python3
%endif
%global talloc_version 2.3.1 %global talloc_version 2.3.1
%global tdb_version 1.4.3 %global tdb_version 1.4.3
%global tevent_version 0.10.2 %global tevent_version 0.10.2
Name: libldb Name: libldb
Version: 2.1.3 Version: 2.2.0
Release: 3%{?dist} Release: 2%{?dist}
Summary: A schema-less, ldap like, API and database Summary: A schema-less, ldap like, API and database
Requires: libtalloc%{?_isa} >= %{talloc_version} Requires: libtalloc%{?_isa} >= %{talloc_version}
Requires: libtdb%{?_isa} >= %{tdb_version} Requires: libtdb%{?_isa} >= %{tdb_version}
Requires: libtevent%{?_isa} >= %{tevent_version} Requires: libtevent%{?_isa} >= %{tevent_version}
License: LGPLv3+ License: LGPLv3+
URL: http://ldb.samba.org/ URL: http://ldb.samba.org/
Source: http://samba.org/ftp/ldb/ldb-%{version}.tar.gz Source0: https://www.samba.org/ftp/ldb/ldb-%{version}.tar.gz
Source1: https://www.samba.org/ftp/ldb/ldb-%{version}.tar.asc
# gpg2 --no-default-keyring --keyring ./ldb.keyring --recv-keys 9147A339719518EE9011BCB54793916113084025
Source2: ldb.keyring
# Patches
Patch0001: 0001-PATCH-wafsamba-Fix-few-SyntaxWarnings-caused-by-regu.patch
# Fix FTBFS / Increase the over-estimation for sparse files
Patch0002: 1420.patch
Patch0003: CVE-2021-20277.patch
BuildRequires: gcc BuildRequires: gcc
BuildRequires: libtalloc-devel >= %{talloc_version} BuildRequires: libtalloc-devel >= %{talloc_version}
BuildRequires: libtdb-devel >= %{tdb_version} BuildRequires: libtdb-devel >= %{tdb_version}
BuildRequires: libtevent-devel >= %{tevent_version} BuildRequires: libtevent-devel >= %{tevent_version}
%if %{with lmdb}
%if ! 0%{?rhel}
BuildRequires: lmdb-devel >= 0.9.16 BuildRequires: lmdb-devel >= 0.9.16
%endif %endif
BuildRequires: popt-devel BuildRequires: popt-devel
BuildRequires: libxslt BuildRequires: libxslt
BuildRequires: docbook-style-xsl BuildRequires: docbook-style-xsl
BuildRequires: doxygen %if %{with python3}
BuildRequires: openldap-devel
BuildRequires: libcmocka-devel
Provides: bundled(libreplace)
BuildRequires: python3-devel BuildRequires: python3-devel
BuildRequires: python3-tdb BuildRequires: python3-tdb
BuildRequires: python3-talloc-devel BuildRequires: python3-talloc-devel
BuildRequires: python3-tevent BuildRequires: python3-tevent
#endif with python
%endif
BuildRequires: doxygen
BuildRequires: openldap-devel
BuildRequires: libcmocka-devel
BuildRequires: gnupg2
Provides: bundled(libreplace)
Obsoletes: python2-ldb < %{version}-%{release} Obsoletes: python2-ldb < %{version}-%{release}
Obsoletes: python2-ldb-devel < %{version}-%{release} Obsoletes: python2-ldb-devel < %{version}-%{release}
Obsoletes: python2-ldb-debuginfo < %{version}-%{release} Obsoletes: python2-ldb-debuginfo < %{version}-%{release}
# Patches
Patch0001: CVE-2020-10730.patch
Patch0002: CVE-2021-20277.patch
%description %description
An extensible library that implements an LDAP like API to access remote LDAP An extensible library that implements an LDAP like API to access remote LDAP
servers, or use local tdb databases. servers, or use local tdb databases.
@ -67,6 +94,7 @@ Requires: pkgconfig
%description devel %description devel
Header files needed to develop programs that link against the LDB library. Header files needed to develop programs that link against the LDB library.
%if %{with python3}
%package -n python3-ldb %package -n python3-ldb
Summary: Python bindings for the LDB library Summary: Python bindings for the LDB library
Requires: libldb%{?_isa} = %{version}-%{release} Requires: libldb%{?_isa} = %{version}-%{release}
@ -86,41 +114,45 @@ Obsoletes: python-ldb-devel-common < %{version}-%{release}
%description -n python3-ldb-devel %description -n python3-ldb-devel
Development files for the Python bindings for the LDB library Development files for the Python bindings for the LDB library
#endif with python
%endif
%prep %prep
%autosetup -n ldb-%{version} -p3 %autosetup -n ldb-%{version} -p1
%build %build
zcat %{SOURCE0} | gpgv2 --quiet --keyring %{SOURCE2} %{SOURCE1} -
# workaround for https://bugzilla.redhat.com/show_bug.cgi?id=1217376
export python_LDFLAGS=""
%configure --disable-rpath \ %configure --disable-rpath \
--disable-rpath-install \ --disable-rpath-install \
--bundled-libraries=NONE \ --bundled-libraries=NONE \
--builtin-libraries=replace \ --builtin-libraries=replace \
--with-modulesdir=%{_libdir}/ldb/modules \ --with-modulesdir=%{_libdir}/ldb/modules \
%if %{without lmdb}
--without-ldb-lmdb \ --without-ldb-lmdb \
%endif
--with-privatelibdir=%{_libdir}/ldb --with-privatelibdir=%{_libdir}/ldb
make %{?_smp_mflags} V=1 %make_build
doxygen Doxyfile doxygen Doxyfile
%if %{with lmdb}
%check %check
# jhrozek 2019-05-03: Looks like ldb test suite does not work make %{?_smp_mflags} check
# when ldb is compiled --without-ldb-lmdb #endif with lmdb
# make %{?_smp_mflags} check %endif
%install %install
make install DESTDIR=$RPM_BUILD_ROOT %make_install
rm -f $RPM_BUILD_ROOT%{_libdir}/libldb.a
# Shared libraries need to be marked executable for
# rpmbuild to strip them and include them in debuginfo
find $RPM_BUILD_ROOT -name "*.so*" -exec chmod -c +x {} \;
# Install API docs # Install API docs
cp -a apidocs/man/* $RPM_BUILD_ROOT/%{_mandir} cp -a apidocs/man/* $RPM_BUILD_ROOT/%{_mandir}
# LDB 1.1.8+ bug: remove manpage named after full # bug: remove manpage named after full file path
# file path # not needed with el8+ and fc28+
rm -f $RPM_BUILD_ROOT/%{_mandir}/man3/_* rm -f $RPM_BUILD_ROOT/%{_mandir}/man3/_*
%ldconfig_scriptlets %ldconfig_scriptlets
@ -131,8 +163,7 @@ rm -f $RPM_BUILD_ROOT/%{_mandir}/man3/_*
%{_libdir}/ldb/libldb-key-value.so %{_libdir}/ldb/libldb-key-value.so
%{_libdir}/ldb/libldb-tdb-err-map.so %{_libdir}/ldb/libldb-tdb-err-map.so
%{_libdir}/ldb/libldb-tdb-int.so %{_libdir}/ldb/libldb-tdb-int.so
# lmdb is not supported on 32 bit architectures %if %{with lmdb}
%if 0%{?__isa_bits} == 64 && ! 0%{?rhel}
%{_libdir}/ldb/libldb-mdb-int.so %{_libdir}/ldb/libldb-mdb-int.so
%endif %endif
%dir %{_libdir}/ldb/modules %dir %{_libdir}/ldb/modules
@ -166,9 +197,10 @@ rm -f $RPM_BUILD_ROOT/%{_mandir}/man3/_*
%{_mandir}/man3/ldb*.gz %{_mandir}/man3/ldb*.gz
%{_mandir}/man3/ldif*.gz %{_mandir}/man3/ldif*.gz
%if %{with python3}
%files -n python3-ldb %files -n python3-ldb
%{python3_sitearch}/ldb.cpython-*.so %{python3_sitearch}/ldb.cpython-*.so
%{_libdir}/libpyldb-util.cpython-*.so.* %{_libdir}/libpyldb-util.cpython-*.so.2*
%{python3_sitearch}/_ldb_text.py %{python3_sitearch}/_ldb_text.py
%{python3_sitearch}/__pycache__/_ldb_text.cpython-*.py* %{python3_sitearch}/__pycache__/_ldb_text.cpython-*.py*
@ -179,10 +211,16 @@ rm -f $RPM_BUILD_ROOT/%{_mandir}/man3/_*
%{_mandir}/man*/Py*.gz %{_mandir}/man*/Py*.gz
%ldconfig_scriptlets -n python3-ldb %ldconfig_scriptlets -n python3-ldb
#endif with python
%endif
%changelog %changelog
* Wed Mar 24 2021 Andreas Schneider <asn@redhat.com> - 2.1.3-3 * Wed Mar 24 2021 Andreas Schneider <asn@redhat.com> - 2.2.0-2
- resolves: rhbz#1941514 - Fix CVE-2021-20277 * resolves: rhbz#1941515 - Fixed CVE-2021-20277
* Mon Nov 9 2020 Isaac Boukris <iboukris@redhat.com> - 2.2.0-1
- Resolves: rhbz#1878114 - Rebase libldb to the version required by Samba
- Resolves: rhbz#1794349 - Build libldb with lmdb support
* Wed Jun 24 2020 Isaac Boukris <iboukris@redhat.com> - 2.1.3-2 * Wed Jun 24 2020 Isaac Boukris <iboukris@redhat.com> - 2.1.3-2
- Resolves: rhbz#1849615 - Fix CVE-2020-10730 use-after-free - Resolves: rhbz#1849615 - Fix CVE-2020-10730 use-after-free