Compare commits

...

No commits in common. "imports/c10s/libldb-2.9.1-4.el10" and "c8" have entirely different histories.

13 changed files with 487 additions and 5002 deletions

89
.gitignore vendored
View File

@ -1,87 +1,2 @@
/ldb-0.9.22.tar.gz
/ldb-1.0.0.tar.gz
/ldb-1.0.2.tar.gz
/ldb-1.1.0.tar.gz
/ldb-1.1.3.tar.gz
/ldb-1.1.4.tar.gz
/ldb-1.1.6.tar.gz
/ldb-1.1.8.tar.gz
/ldb-1.1.9.tar.gz
/ldb-1.1.10.tar.gz
/ldb-1.1.11.tar.gz
/ldb-1.1.12.tar.gz
/ldb-1.1.13.tar.gz
/ldb-1.1.14.tar.gz
/ldb-1.1.15.tar.gz
/ldb-1.1.16.tar.gz
/ldb-1.1.17.tar.gz
/ldb-1.1.18.tar.gz
/ldb-1.1.19.tar.gz
/ldb-1.1.20.tar.gz
/ldb-1.1.21.tar.gz
/ldb-1.1.23.tar.gz
/ldb-1.1.24.tar.gz
/ldb-1.1.25.tar.gz
/ldb-1.1.26.tar.gz
/ldb-1.1.27.tar.gz
/ldb-1.1.28.tar.gz
/ldb-1.1.29.tar.gz
/ldb-1.1.30.tar.gz
/ldb-1.1.31.tar.gz
/ldb-1.2.0.tar.gz
/ldb-1.2.1.tar.gz
/ldb-1.2.2.tar.gz
/ldb-1.3.0.tar.gz
/ldb-1.3.1.tar.gz
/ldb-1.3.2.tar.gz
/ldb-1.3.3.tar.gz
/ldb-1.4.0.tar.gz
/ldb-1.4.1.tar.gz
/ldb-1.4.2.tar.gz
/ldb-1.4.3.tar.gz
/ldb-1.5.2.tar.gz
/ldb-1.5.3.tar.gz
/ldb-1.5.4.tar.gz
/ldb-1.5.5.tar.gz
/ldb-2.0.5.tar.gz
/ldb-2.0.6.tar.gz
/ldb-2.0.7.tar.gz
/ldb-2.0.8.tar.gz
/ldb-2.1.0.tar.gz
/ldb-2.1.0.tar.asc
/ldb-2.1.1.tar.gz
/ldb-2.1.1.tar.asc
/ldb-2.1.2.tar.asc
/ldb-2.1.2.tar.gz
/ldb-2.1.3.tar.asc
/ldb-2.1.3.tar.gz
/ldb-2.1.4.tar.asc
/ldb-2.1.4.tar.gz
/ldb-2.2.0.tar.asc
/ldb-2.2.0.tar.gz
/ldb-2.3.0.tar.asc
/ldb-2.3.0.tar.gz
/ldb-2.4.0.tar.gz
/ldb-2.4.0.tar.asc
/ldb-2.4.1.tar.gz
/ldb-2.4.1.tar.asc
/ldb-2.5.0.tar.asc
/ldb-2.5.0.tar.gz
/ldb-2.5.1.tar.gz
/ldb-2.5.1.tar.asc
/ldb-2.5.2.tar.gz
/ldb-2.5.2.tar.asc
/ldb-2.6.1.tar.gz
/ldb-2.6.1.tar.asc
/ldb-2.7.0.tar.gz
/ldb-2.7.0.tar.asc
/ldb-2.7.1.tar.gz
/ldb-2.7.1.tar.asc
/ldb-2.7.2.tar.gz
/ldb-2.7.2.tar.asc
/ldb-2.8.0.tar.gz
/ldb-2.8.0.tar.asc
/ldb-2.9.0.tar.gz
/ldb-2.9.0.tar.asc
/ldb-2.9.1.tar.gz
/ldb-2.9.1.tar.asc
SOURCES/ldb-2.8.0.tar.gz
SOURCES/ldb.keyring

2
.libldb.metadata Normal file
View File

@ -0,0 +1,2 @@
cf5c3d8a15c0666cc980a8cf7227ae711664f5a3 SOURCES/ldb-2.8.0.tar.gz
5d2957f5d63a72a6fc196af3e45242f3d321f6cf SOURCES/ldb.keyring

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

@ -0,0 +1,11 @@
-----BEGIN PGP SIGNATURE-----
iQEzBAABCgAdFiEEkUejOXGVGO6QEby1R5ORYRMIQCUFAmTDr+oACgkQR5ORYRMI
QCXfwgf/cAqWCgnnKIT3hvUdL2i2F9edDXTOkBDZ1vxQ8hLO+T8JtWO9F40hEZjH
F5R5B2pxBP6T2Nd9NHVbHUqlIpjqqesweTXtabuW60oz5PZ13owpGDWWQKortH5/
j49v/ZKHD0NBjVN09AylRgoKQ4kRDtd0rMOAS951aRUcRTFRjK86hnaHPgvQeexy
SizGRtHlifnwM/lbgJlLkTDUDNA+7RwXRAv0pvLwYReGFoS8vyUbMOYt1lnoiNas
6cz+6yTKknGO7KSE6bjviDahv7Xg04Qy02eI/HYEZ8NG3aJqNsOqPchP4y/JgVv+
90FZR2cdZNpTdlZ5TPfihL2/zldXKQ==
=H6+4
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,221 @@
From 1944fcf4b7e5ab4cf580e17031918ba5f441902b Mon Sep 17 00:00:00 2001
From: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Date: Wed, 26 Jun 2024 11:05:49 +1200
Subject: [PATCH 1/2] ldb_kv_index: dn_list load sub transaction can re-use
keys
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
We don't want to modify the original list, but we can reuse the keys
if we treat them as immutable and don't free them. That makes it a lot
quicker if there are many keys (i.e. where an index is useful) and may
sub-transactions. In particular, it avoids O(n²) talloc_memdups.
A removed comment that says "We have to free the top level index
memory otherwise we would leak", and this will be addressed in the
next commit.
BUG: https://bugzilla.samba.org/show_bug.cgi?id=15590
Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
(cherry picked from commit 5f0198d69843c864f2b98a7c0c6305ad789a68a0)
---
lib/ldb/ldb_key_value/ldb_kv_index.c | 96 +++++++++++++++++-----------
1 file changed, 57 insertions(+), 39 deletions(-)
diff --git a/lib/ldb/ldb_key_value/ldb_kv_index.c b/lib/ldb/ldb_key_value/ldb_kv_index.c
index 3f1a847f2b6..fed1033f492 100644
--- a/lib/ldb/ldb_key_value/ldb_kv_index.c
+++ b/lib/ldb/ldb_key_value/ldb_kv_index.c
@@ -446,34 +446,39 @@ static int ldb_kv_dn_list_load(struct ldb_module *module,
* There is an active index sub transaction, and the record was
* found in the primary index transaction cache. A copy of the
* record needs be taken to prevent the original entry being
- * altered, until the index sub transaction is committed.
+ * altered, until the index sub transaction is committed, but we
+ * don't copy the actual values, just the array of struct ldb_val
+ * that points to the values (which are offsets into a GUID array).
+ *
+ * As a reminder, our primary cache is an in-memory tdb that
+ * maps attributes to struct dn_list objects, which point to
+ * the actual index, which is an array of struct ldb_val, the
+ * contents of which are {.data = <binary GUID>, .length =
+ * 16}. The array is sorted by GUID data, and these GUIDs are
+ * used to look up index entries in the main database. There
+ * are more layers of indirection than necessary, but what
+ * makes the index useful is we can use a binary search to
+ * find if the array contains a GUID.
+ *
+ * What we do in a sub-transaction is make a copy of the struct
+ * dn_list and the array of struct ldb_val, but *not* of the
+ * .data that they point to. This copy is put into a new
+ * in-memory tdb which masks the primary cache for the duration
+ * of the sub-transaction.
+ *
+ * In an add operation in a sub-transaction, the new ldb_val
+ * is a child of the sub-transaction dn_list, which will
+ * become the main dn_list if the transaction succeeds.
+ *
+ * These acrobatics do not affect read-only operations.
*/
-
- {
- struct ldb_val *dns = NULL;
- size_t x = 0;
-
- dns = talloc_array(
- list,
- struct ldb_val,
- list2->count);
- if (dns == NULL) {
- return LDB_ERR_OPERATIONS_ERROR;
- }
- for (x = 0; x < list2->count; x++) {
- dns[x].length = list2->dn[x].length;
- dns[x].data = talloc_memdup(
- dns,
- list2->dn[x].data,
- list2->dn[x].length);
- if (dns[x].data == NULL) {
- TALLOC_FREE(dns);
- return LDB_ERR_OPERATIONS_ERROR;
- }
- }
- list->dn = dns;
- list->count = list2->count;
+ list->dn = talloc_memdup(list,
+ list2->dn,
+ talloc_get_size(list2->dn));
+ if (list->dn == NULL) {
+ return LDB_ERR_OPERATIONS_ERROR;
}
+ list->count = list2->count;
return LDB_SUCCESS;
/*
@@ -3852,9 +3857,7 @@ int ldb_kv_reindex(struct ldb_module *module)
* Copy the contents of the nested transaction index cache record to the
* transaction index cache.
*
- * During this 'commit' of the subtransaction to the main transaction
- * (cache), care must be taken to free any existing index at the top
- * level because otherwise we would leak memory.
+ * This is a 'commit' of the subtransaction to the main transaction cache.
*/
static int ldb_kv_sub_transaction_traverse(
struct tdb_context *tdb,
@@ -3883,8 +3886,7 @@ static int ldb_kv_sub_transaction_traverse(
/*
* Do we already have an entry in the primary transaction cache
- * If so free it's dn_list and replace it with the dn_list from
- * the secondary cache
+ * If so replace dn_list with the one from the subtransaction.
*
* The TDB and so the fetched rec contains NO DATA, just a
* pointer to data held in memory.
@@ -3897,21 +3899,37 @@ static int ldb_kv_sub_transaction_traverse(
abort();
}
/*
- * We had this key at the top level. However we made a copy
- * at the sub-transaction level so that we could possibly
- * roll back. We have to free the top level index memory
- * otherwise we would leak
+ * We had this key at the top level, and made a copy
+ * of the dn list for this sub-transaction level that
+ * borrowed the top level GUID data. We can't free the
+ * original dn list just yet.
+ *
+ * In this diagram, ... is the C pointer structure
+ * and --- is the talloc structure (::: is both).
+ *
+ * index_in_top_level ::: dn orig ..............
+ * | | :
+ * | `--GUID array :
+ * | |----- val1 data
+ * ldb_kv `----- val2 data
+ * | :
+ * index_in_subtransaction :: dn copy ..........:
+ * | :
+ * `------------ new val3 data
+ *
+ * So we don't free the index_in_top_level dn list yet,
+ * because we are (probably) borrowing most of its
+ * children.
*/
- if (index_in_top_level->count > 0) {
- TALLOC_FREE(index_in_top_level->dn);
- }
index_in_top_level->dn
= talloc_steal(index_in_top_level,
index_in_subtransaction->dn);
index_in_top_level->count = index_in_subtransaction->count;
return 0;
}
-
+ /*
+ * We found no top level index in the cache, so we put one in.
+ */
index_in_top_level = talloc(ldb_kv->idxptr, struct dn_list);
if (index_in_top_level == NULL) {
ldb_kv->idxptr->error = LDB_ERR_OPERATIONS_ERROR;
--
2.46.0
From 70d8b1b2f87cbb16b671d334e46244ba001fbd31 Mon Sep 17 00:00:00 2001
From: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Date: Mon, 22 Jul 2024 22:22:15 +1200
Subject: [PATCH 2/2] ldb:kv_index: realloc away old dn list
We can't just free it, because has the GUID index list as a child, and
these are shared by the new dn list (from the subtransaction we are
committing). But if the dn list is long and the main transaction is
long-lived, we can save a lot of memory by turning this dn list into
an almost empty node in the talloc tree. This returns us to roughly
the situation we had prior to the last commit.
For example, with the repro.sh script on bug 15590 in indexes mode
with 10000 rules, The last 3 commits use this much memory at the end
of an unusually large transaction:
full talloc report on 'struct ldb_context' (total 4012222 bytes in 90058 blocks)
full talloc report on 'struct ldb_context' (total 2405482219 bytes in 90058 blocks)
full talloc report on 'struct ldb_context' (total 4282195 bytes in 90058 blocks)
That is, the last commit increased usage 500 fold, and this commit
brings it back to normal.
BUG: https://bugzilla.samba.org/show_bug.cgi?id=15590
Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
(cherry picked from commit 1bf9ede94f0a6b41fb18e880e59a8e390f8c21d3)
---
lib/ldb/ldb_key_value/ldb_kv_index.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/lib/ldb/ldb_key_value/ldb_kv_index.c b/lib/ldb/ldb_key_value/ldb_kv_index.c
index fed1033f492..11bdf00dc08 100644
--- a/lib/ldb/ldb_key_value/ldb_kv_index.c
+++ b/lib/ldb/ldb_key_value/ldb_kv_index.c
@@ -3919,8 +3919,12 @@ static int ldb_kv_sub_transaction_traverse(
*
* So we don't free the index_in_top_level dn list yet,
* because we are (probably) borrowing most of its
- * children.
+ * children. But we can save memory by discarding the
+ * values and keeping it as an almost empty talloc
+ * node.
*/
+ talloc_realloc(index_in_top_level,
+ index_in_top_level->dn, struct ldb_val *, 1);
index_in_top_level->dn
= talloc_steal(index_in_top_level,
index_in_subtransaction->dn);
--
2.46.0

View File

@ -1,180 +1,309 @@
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 2.9.0-2
- Bump release for June 2024 mass rebuild
%if ((0%{?fedora} || 0%{?rhel} > 7 || 0%{?epel} > 6))
* Mon Jan 29 2024 Guenther Deschner <gdeschner@redhat.com> - 2.9.0-1
- rhbz#2260898 - libldb-2.9.0 is available
# lmdb is not supported on 32 bit architectures
%ifarch aarch64 ppc64le s390x x86_64
%bcond_without lmdb
%else
%bcond_with lmdb
#endif arch
%endif
* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.8.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
%else
%bcond_with lmdb
#endif fedora || rhel || epel
%endif
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.8.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
%if 0%{?fedora} || 0%{?rhel} > 7
%bcond_without python3
%else
%bcond_with python3
%endif
* Mon Aug 07 2023 Guenther Deschner <gdeschner@redhat.com> - 2.8.0-1
- rhbz#2227229 - libldb-2.8.0 is available
%global talloc_version 2.4.1
%global tdb_version 1.4.9
%global tevent_version 0.15.0
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.7.2-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Name: libldb
Version: 2.8.0
Release: 1%{?dist}
Summary: A schema-less, ldap like, API and database
Requires: libtalloc%{?_isa} >= %{talloc_version}
Requires: libtdb%{?_isa} >= %{tdb_version}
Requires: libtevent%{?_isa} >= %{tevent_version}
License: LGPL-3.0-or-later
URL: http://ldb.samba.org/
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
* Tue Jun 13 2023 Python Maint <python-maint@redhat.com> - 2.7.2-2
- Rebuilt for Python 3.12
# Patches
Patch0: libldb-fix-indexes-performance.patch
* Wed Mar 29 2023 Guenther Deschner <gdeschner@redhat.com> - 2.7.2-1
- rhbz#2182738 - libldb-2.7.2 is available
BuildRequires: gcc
BuildRequires: libtalloc-devel >= %{talloc_version}
BuildRequires: libtdb-devel >= %{tdb_version}
BuildRequires: libtevent-devel >= %{tevent_version}
%if %{with lmdb}
BuildRequires: lmdb-devel >= 0.9.16
%endif
BuildRequires: popt-devel
BuildRequires: libxslt
BuildRequires: docbook-style-xsl
%if %{with python3}
BuildRequires: python3-devel
BuildRequires: python3-tdb
BuildRequires: python3-talloc-devel
BuildRequires: python3-tevent
#endif with python
%endif
BuildRequires: doxygen
BuildRequires: openldap-devel
BuildRequires: libcmocka-devel
BuildRequires: gnupg2
BuildRequires: make
* Thu Feb 23 2023 Pavel Filipenský <pfilipen@redhat.com> - 2.7.1-1
- SPDX migration
Provides: bundled(libreplace)
Obsoletes: python2-ldb < 2.0.5-1
Obsoletes: python2-ldb-devel < 2.0.5-1
Obsoletes: pyldb < 1.1.26-2
* Thu Feb 16 2023 Guenther Deschner <gdeschner@redhat.com> - 2.7.1-1
- rhbz#2167440 - libldb-2.7.1 is available
* Fri Jan 20 2023 Andreas Schneider <asn@redhat.com> - 2.7.0-1
- Update to version 2.7.0
- resolves: rhbz#1965818 - Fix ldb on systems with dotted language locale
%description
An extensible library that implements an LDAP like API to access remote LDAP
servers, or use local tdb databases.
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.6.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
%package -n ldb-tools
Summary: Tools to manage LDB files
Requires: libldb%{?_isa} = %{version}-%{release}
* Mon Aug 08 2022 Guenther Deschner <gdeschner@redhat.com> - 2.6.1-1
- rhbz#2114621 - libldb-2.6.1 is available
%description -n ldb-tools
Tools to manage LDB files
* Wed Jul 27 2022 Andreas Schneider <asn@redhat.com> - 2.5.2-2
- Update to version 2.5.2
- related: rhbz#2111734 - Fixes CVE-2022-32746
%package devel
Summary: Developer tools for the LDB library
Requires: libldb%{?_isa} = %{version}-%{release}
Requires: libtdb-devel%{?_isa} >= %{tdb_version}
Requires: libtalloc-devel%{?_isa} >= %{talloc_version}
Requires: libtevent-devel%{?_isa} >= %{tevent_version}
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.5.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
%description devel
Header files needed to develop programs that link against the LDB library.
* Mon Jun 13 2022 Python Maint <python-maint@redhat.com> - 2.5.1-2
- Rebuilt for Python 3.11
%package -n python-ldb-devel-common
Summary: Common development files for the Python bindings for the LDB library
* Fri Jun 10 2022 Andreas Schneider <asn@redhat.com> - 2.5.1
- Update to version 2.5.1
Provides: pyldb-devel%{?_isa} = %{version}-%{release}
%{?python_provide:%python_provide python2-ldb-devel}
* Tue Jan 25 2022 Pavel Filipenský <pfilipen@redhat.com> - 2.5.0-1
- rhbz#2044382 - libldb-2.5.0 is available
%description -n python-ldb-devel-common
Development files for the Python bindings for the LDB library.
This package includes files that aren't specific to a Python version.
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
%if %{with python3}
%package -n python3-ldb
Summary: Python bindings for the LDB library
Requires: libldb%{?_isa} = %{version}-%{release}
Requires: python3-tdb%{?_isa} >= %{tdb_version}
* Thu Oct 28 2021 Guenther Deschner <gdeschne@redhat.com> - 2.4.1-1
- rhbz#2017790 - libldb-2.4.1 is available
%{?python_provide:%python_provide python3-ldb}
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
%description -n python3-ldb
Python bindings for the LDB library
* Thu Jul 15 2021 Guenther Deschner <gdeschne@redhat.com> - 2.4.0-1
- rhbz#1837364 - libldb-2.4.0 is available
%package -n python3-ldb-devel
Summary: Development files for the Python bindings for the LDB library
Requires: python3-ldb%{?_isa} = %{version}-%{release}
Requires: python-ldb-devel-common%{?_isa} = %{version}-%{release}
* Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 2.3.0-3
- Rebuilt for Python 3.10
%{?python_provide:%python_provide python3-ldb-devel}
* Thu May 20 2021 Andreas Schneider <asn@redhat.com> - 2.3.0-2
- Fix tests on aarch64
- Verify signature in prep state
- resolves: rhbz#1794307 - Build with lmbd support on ppc64le again
%description -n python3-ldb-devel
Development files for the Python bindings for the LDB library
#endif with python
%endif
* Wed Mar 24 2021 Lukas Slebodnik <lslebodn@fedoraproject.org> - 2.3.0-1
- libldb-2.3.0 is required for new samba
%prep
zcat %{SOURCE0} | gpgv2 --quiet --keyring %{SOURCE2} %{SOURCE1} -
%autosetup -n ldb-%{version} -p3
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.2.0-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
%build
# workaround for https://bugzilla.redhat.com/show_bug.cgi?id=1217376
export python_LDFLAGS=""
* Thu Oct 29 2020 Andreas Schneider <asn@redhat.com> - 2.2.0-7
- Fix FTBFS / Increase the over-estimation for sparse files in tests
%configure --disable-rpath \
--disable-rpath-install \
--bundled-libraries=NONE \
--builtin-libraries=replace \
--with-modulesdir=%{_libdir}/ldb/modules \
%if %{without lmdb}
--without-ldb-lmdb \
%endif
--with-privatelibdir=%{_libdir}/ldb
* Tue Oct 27 2020 Andreas Schneider <asn@redhat.com> - 2.2.0-6
- Spec file cleanup and improvements
%make_build
doxygen Doxyfile
* Thu Oct 22 2020 Alexander Bokovoy <abokovoy@redhat.com> - 2.2.0-5
- Rebuild for Python 3.9
%if %{with lmdb}
%check
make %{?_smp_mflags} check
#endif with lmdb
%endif
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.2.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
%install
%make_install
* Mon Jul 13 2020 Tom Stellard <tstellar@redhat.com> - 2.2.0-3
- Use make macros
- https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro
# Install API docs
cp -a apidocs/man/* $RPM_BUILD_ROOT/%{_mandir}
* Thu Jul 09 2020 Lukas Slebodnik <lslebodn@fedoraproject.org> - 2.2.0-2
- libldb-2.2.0 is required for samba 4.13rc1
# bug: remove manpage named after full file path
# not needed with el8+ and fc28+
rm -f $RPM_BUILD_ROOT/%{_mandir}/man3/_*
* Thu Jul 02 2020 Lukas Slebodnik <lslebodn@fedoraproject.org> - 2.1.4-1
- rhbz#1837364 - libldb-2.1.4 is available
%ldconfig_scriptlets
* Tue May 26 2020 Miro Hrončok <mhroncok@redhat.com> - 2.1.3-2
- Rebuilt for Python 3.9
%files
%dir %{_libdir}/ldb
%{_libdir}/libldb.so.*
%{_libdir}/ldb/libldb-key-value.so
%{_libdir}/ldb/libldb-tdb-err-map.so
%{_libdir}/ldb/libldb-tdb-int.so
%if %{with lmdb}
%{_libdir}/ldb/libldb-mdb-int.so
%endif
%dir %{_libdir}/ldb/modules
%dir %{_libdir}/ldb/modules/ldb
%{_libdir}/ldb/modules/ldb/*.so
* Wed May 20 2020 Lukas Slebodnik <lslebodn@fedoraproject.org> - 2.1.3-1
- rhbz#1837364 New: libldb-2.1.3 is available
%files -n ldb-tools
%{_bindir}/ldbadd
%{_bindir}/ldbdel
%{_bindir}/ldbedit
%{_bindir}/ldbmodify
%{_bindir}/ldbrename
%{_bindir}/ldbsearch
%{_libdir}/ldb/libldb-cmdline.so
%{_mandir}/man1/ldbadd.1.*
%{_mandir}/man1/ldbdel.1.*
%{_mandir}/man1/ldbedit.1.*
%{_mandir}/man1/ldbmodify.1.*
%{_mandir}/man1/ldbrename.1.*
%{_mandir}/man1/ldbsearch.1.*
* Tue Apr 28 2020 Lukas Slebodnik <lslebodn@fedoraproject.org> - 2.1.2-1
- rhbz#1828721 New: libldb-2.1.2 is available
%files devel
%{_includedir}/ldb_module.h
%{_includedir}/ldb_handlers.h
%{_includedir}/ldb_errors.h
%{_includedir}/ldb_version.h
%{_includedir}/ldb.h
%{_libdir}/libldb.so
* Wed Feb 26 2020 Lukas Slebodnik <lslebodn@fedoraproject.org> - 2.1.1-1
- rhbz#1807066 - libldb-2.1.1 is available
%{_libdir}/pkgconfig/ldb.pc
%{_mandir}/man3/ldb*.gz
%{_mandir}/man3/ldif*.gz
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.1.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
%files -n python-ldb-devel-common
%{_includedir}/pyldb.h
%{_mandir}/man*/Py*.gz
* Wed Jan 22 2020 Lukas Slebodnik <lslebodn@fedoraproject.org> - 2.1.0-1
- rhbz#1748422 - libldb-2.1.0 is available
%if %{with python3}
%files -n python3-ldb
%{python3_sitearch}/ldb.cpython-*.so
%{_libdir}/libpyldb-util.cpython-*.so.2*
%{python3_sitearch}/_ldb_text.py
%{python3_sitearch}/__pycache__/_ldb_text.cpython-*.py*
* Mon Dec 16 2019 Lukas Slebodnik <lslebodn@fedoraproject.org> - 2.0.8-1
- rhbz#1748422 - libldb-2.0.8 is available
%files -n python3-ldb-devel
%{_libdir}/libpyldb-util.cpython-*.so
%{_libdir}/pkgconfig/pyldb-util.cpython-*.pc
* Wed Sep 11 2019 Lukas Slebodnik <lslebodn@fedoraproject.org> - 2.0.7-1
- rhbz#1748422 - libldb-2.0.7 is available
%ldconfig_scriptlets -n python3-ldb
#endif with python
%endif
* Tue Sep 03 2019 Lukas Slebodnik <lslebodn@fedoraproject.org> - 2.0.6-1
- rhbz#1748422 - New upstream release 2.0.6
%changelog
* Tue Aug 13 2024 Andreas Schneider <asn@redhat.com> - 2.8.0-1
- resolves: RHEL-12109 - Fix performance regression with indexes
* Mon Aug 26 2019 Guenther Deschner <gdeschner@redhat.com> - 2.0.5-1
- rhbz#1683147 - libldb-2.0.5 is available
- rhbz#1737644 - libldb, libtalloc, libtevent, libtdb: Remove Python 2 subpackages from Fedora 31+
* Fri Nov 17 2023 Pavel Filipenský <pfilipen@redhat.com> - 2.8.0-0
- resolves: RHEL-16509 - Update to libldb-2.8.0
* Mon Aug 19 2019 Miro Hrončok <mhroncok@redhat.com> - 1.5.5-3
- Rebuilt for Python 3.8
* Tue Jun 06 2023 Pavel Filipenský <pfilipen@redhat.com> - 2.7.2-3
- resolves: rhbz#2190427 - Rebuild to trigger distrobaker sync
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.5.5-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Wed May 24 2023 Pavel Filipenský <pfilipen@redhat.com> - 2.7.2-2
- resolves: rhbz#2190427 - Add missing tests to fix osci.brew-build.tier0.functional
* Sat Jul 13 2019 Guenther Deschner <gdeschner@redhat.com> - 1.5.5-1
- New upstream release 1.5.5
* Thu May 18 2023 Pavel Filipenský <pfilipen@redhat.com> - 2.7.2-1
- resolves: rhbz#2190427 - Update to version 2.7.2
* Fri Jun 14 2019 Lukas Slebodnik <lslebodn@fedoraproject.org> - 1.5.4-3
- rhbz#1718113 - samba fail to build with Python 3.8
AttributeError: module 'time' has no attribute 'clock'
* Mon Oct 24 2022 Andreas Schneider <asn@redhat.com> - 2.6.1-1
- resolves: rhbz#2132052 - Update to version 2.6.1
* Mon Jun 03 2019 Lukas Slebodnik <lslebodn@fedoraproject.org> - 1.5.4-2
- rhbz#1711638 - fails to build with Python 3.8.0a4
* Thu Aug 11 2022 Andreas Schneider <asn@redhat.com> - 2.5.2-2
- resolves: rhbz#2108998 - Rebuild to include python3-ldb-devel in CRB
* Wed Mar 06 2019 Lukas Slebodnik <lslebodn@fedoraproject.org> - 1.5.4-1
- New upstream release 1.5.4
* Wed Jul 27 2022 Andreas Schneider <asn@redhat.com> - 2.5.2-1
- Rebase to version 2.5.2
- resolves: rhbz#2109016 - Fix CVE-2022-32746
* Thu Feb 14 2019 Lukas Slebodnik <lslebodn@fedoraproject.org> - 1.5.3-1
- New upstream release 1.5.3
* Mon Jun 13 2022 Pavel Filipenský <pfilipen@redhat.com> - 2.5.1-1
- related: rhbz#2077484 - Rebase to version 2.5.1
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.5.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Mon May 02 2022 Pavel Filipenský <pfilipen@redhat.com> - 2.5.0-1
- resolves: rhbz#2077484 - Rebase to version 2.5.0
* Thu Jan 17 2019 Lukas Slebodnik <lslebodn@fedoraproject.org> - 1.5.2-1
- New upstream release 1.5.2
* Thu Nov 25 2021 Pavel Filipenský <pfilipen@redhat.com> - 2.4.1-1
- resolves: rhbz#2013605 - Rebase to version 2.4.1
* Thu Nov 8 2018 Lukas Slebodnik <lslebodn@fedoraproject.org> - 1.4.3-1
- New upstream release 1.4.3
* Tue May 25 2021 Andreas Schneider <asn@redhat.com> - 2.3.0-2
- related: rhbz#1897082 - Fix libldb tests on ppc64le
* Thu Aug 16 2018 Lukas Slebodnik <lslebodn@fedoraproject.org> - 1.4.2-1
* Tue May 11 2021 Andreas Schneider <asn@redhat.com> - 2.3.0-1
- resolves: rhbz#1945021 - Update to version 2.3.0
- resolves: rhbz#1897082 - Fix libldb tests on aarch64
* Wed Mar 24 2021 Andreas Schneider <asn@redhat.com> - 2.2.0-2
* resolves: rhbz#1941516 - 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
- Resolves: rhbz#1849615 - Fix CVE-2020-10730 use-after-free
* Tue Jun 2 2020 Isaac Boukris <iboukris@redhat.com> - 2.1.3-1
- Resolves: rhbz#1817567 - Rebase libldb to 2.1.3 for samba
* Tue Nov 26 2019 Isaac Boukris <iboukris@redhat.com> - 2.0.7-3
- Resolves: rhbz#1754423 - Rebase libldb to 2.0.7 version for samba
- Related: rhbz#1754423 - Fix sssd tests (ldb)
* Tue May 7 2019 Jakub Hrozek <jhrozek@redhat.com> - 1.5.4-2
- Fix some python2-related upgrade issues
- Related: rhbz#1567115 - libldb: Drop Python 2 subpackages from RHEL 8
* Wed Apr 24 2019 Jakub Hrozek <jhrozek@redhat.com> - 1.5.4-1
- Resolves: rhbz#1684582 - Rebase libldb to version 1.5.4 for Samba
- Resolves: rhbz#1567115 - libldb: Drop Python 2 subpackages from RHEL 8
- Resolves: rhbz#1597243 - libldb uses Python 2 to build.
* Thu Sep 20 2018 Jakub Hrozek <jhrozek@redhat.com> - 1.4.2-2
- Resolves: rhbz#1624132 - Review annocheck distro flag failures in libldb
* Fri Aug 17 2018 Alexander Bokovoy <abokovoy@redhat.com> - 1.4.2-1
- New upstream release 1.4.2
- Resolves: rhbz#1615989
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.4.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Thu Jul 12 2018 Jakub Hrozek <jhrozek@redhat.com> - 1.4.1-1
* Fri Jul 13 2018 Jakub Hrozek <jhrozek@redhat.com> - 1.4.1-1
- New upstream release 1.4.1
- Apply a patch to hide local ABI symbols to avoid issues with new binutils
- Patch the waf script to explicitly call python2 as "env python" doesn't
yield py2 anymore
- Obsoletes 0001-ldb-Fix-memory-leak-on-module-context.patch
* Mon Jul 02 2018 Petr Viktorin <pviktori@redhat.com> - 1.4.0-3
- Use %%{__python2}, not "python", as the Python2 interpreter
- Add workaround to allow building with Python 2
- Remove the lmdb dependency in RHEL
* Tue Jun 19 2018 Miro Hrončok <mhroncok@redhat.com> - 1.4.0-2
- Rebuilt for Python 3.7
@ -461,3 +590,4 @@
* Mon Jan 17 2011 Stephen Gallagher <sgallagh@redhat.com> - 0.9.22-7
- Update to 0.9.22 (first independent release of libldb upstream)

View File

@ -1,7 +0,0 @@
--- !Policy
product_versions:
- rhel-9
- rhel-10
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional}

Binary file not shown.

View File

@ -1,196 +0,0 @@
# lmdb is not supported on 32 bit architectures
%ifarch aarch64 ppc64le s390x x86_64
%bcond_without lmdb
%else
%bcond_with lmdb
#endif arch
%endif
%global talloc_version 2.4.2
%global tdb_version 1.4.10
%global tevent_version 0.16.1
Name: libldb
Version: 2.9.1
Release: %autorelease
Summary: A schema-less, ldap like, API and database
Requires: libtalloc%{?_isa} >= %{talloc_version}
Requires: libtdb%{?_isa} >= %{tdb_version}
Requires: libtevent%{?_isa} >= %{tevent_version}
License: LGPL-3.0-or-later
URL: http://ldb.samba.org/
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
BuildRequires: docbook-style-xsl
BuildRequires: doxygen
BuildRequires: gcc
BuildRequires: gnupg2
BuildRequires: libcmocka-devel
BuildRequires: libtalloc-devel >= %{talloc_version}
BuildRequires: libtdb-devel >= %{tdb_version}
BuildRequires: libtevent-devel >= %{tevent_version}
BuildRequires: libxslt
BuildRequires: make
BuildRequires: openldap-devel
BuildRequires: popt-devel
BuildRequires: python3-devel
BuildRequires: python3-talloc-devel
BuildRequires: python3-tdb
BuildRequires: python3-tevent
%if %{with lmdb}
BuildRequires: lmdb-devel >= 0.9.16
%endif
Provides: bundled(libreplace)
Obsoletes: python2-ldb < 2.0.5-1
Obsoletes: python2-ldb-devel < 2.0.5-1
Obsoletes: pyldb < 1.1.26-2
%description
An extensible library that implements an LDAP like API to access remote LDAP
servers, or use local tdb databases.
%package -n ldb-tools
Summary: Tools to manage LDB files
Requires: libldb%{?_isa} = %{version}-%{release}
%description -n ldb-tools
Tools to manage LDB files
%package devel
Summary: Developer tools for the LDB library
Requires: libldb%{?_isa} = %{version}-%{release}
Requires: libtdb-devel%{?_isa} >= %{tdb_version}
Requires: libtalloc-devel%{?_isa} >= %{talloc_version}
Requires: libtevent-devel%{?_isa} >= %{tevent_version}
%description devel
Header files needed to develop programs that link against the LDB library.
%package -n python-ldb-devel-common
Summary: Common development files for the Python bindings for the LDB library
Provides: pyldb-devel%{?_isa} = %{version}-%{release}
%{?python_provide:%python_provide python2-ldb-devel}
%description -n python-ldb-devel-common
Development files for the Python bindings for the LDB library.
This package includes files that aren't specific to a Python version.
%package -n python3-ldb
Summary: Python bindings for the LDB library
Requires: libldb%{?_isa} = %{version}-%{release}
Requires: python3-tdb%{?_isa} >= %{tdb_version}
%{?python_provide:%python_provide python3-ldb}
%description -n python3-ldb
Python bindings for the LDB library
%package -n python3-ldb-devel
Summary: Development files for the Python bindings for the LDB library
Requires: python3-ldb%{?_isa} = %{version}-%{release}
Requires: python-ldb-devel-common%{?_isa} = %{version}-%{release}
%{?python_provide:%python_provide python3-ldb-devel}
%description -n python3-ldb-devel
Development files for the Python bindings for the LDB library
%prep
zcat %{SOURCE0} | gpgv2 --quiet --keyring %{SOURCE2} %{SOURCE1} -
%autosetup -n ldb-%{version} -p1
%build
%configure --disable-rpath \
--disable-rpath-install \
--bundled-libraries=NONE \
--builtin-libraries=replace \
--with-modulesdir=%{_libdir}/ldb/modules \
%if %{without lmdb}
--without-ldb-lmdb \
%endif
--with-privatelibdir=%{_libdir}/ldb
%make_build
doxygen Doxyfile
%if %{with lmdb}
%check
make %{?_smp_mflags} check
#endif with lmdb
%endif
%install
%make_install
# Install API docs
cp -a apidocs/man/* %{buildroot}%{_mandir}
# bug: remove manpage named after full file path
# not needed with el8+ and fc28+
rm -f %{buildroot}%{_mandir}/man3/_*
%files
%dir %{_libdir}/ldb
%{_libdir}/libldb.so.*
%{_libdir}/ldb/libldb-key-value.so
%{_libdir}/ldb/libldb-tdb-err-map.so
%{_libdir}/ldb/libldb-tdb-int.so
%if %{with lmdb}
%{_libdir}/ldb/libldb-mdb-int.so
%endif
%dir %{_libdir}/ldb/modules
%dir %{_libdir}/ldb/modules/ldb
%{_libdir}/ldb/modules/ldb/*.so
%files -n ldb-tools
%{_bindir}/ldbadd
%{_bindir}/ldbdel
%{_bindir}/ldbedit
%{_bindir}/ldbmodify
%{_bindir}/ldbrename
%{_bindir}/ldbsearch
%{_libdir}/ldb/libldb-cmdline.so
%{_mandir}/man1/ldbadd.1.*
%{_mandir}/man1/ldbdel.1.*
%{_mandir}/man1/ldbedit.1.*
%{_mandir}/man1/ldbmodify.1.*
%{_mandir}/man1/ldbrename.1.*
%{_mandir}/man1/ldbsearch.1.*
%files devel
%{_includedir}/ldb_module.h
%{_includedir}/ldb_handlers.h
%{_includedir}/ldb_errors.h
%{_includedir}/ldb_version.h
%{_includedir}/ldb.h
%{_libdir}/libldb.so
%{_libdir}/pkgconfig/ldb.pc
%{_mandir}/man3/ldb*.gz
%{_mandir}/man3/ldif*.gz
%files -n python-ldb-devel-common
%{_includedir}/pyldb.h
%{_mandir}/man*/Py*.gz
%files -n python3-ldb
%{python3_sitearch}/ldb.cpython-*.so
%{_libdir}/libpyldb-util.cpython-*.so.2*
%{python3_sitearch}/_ldb_text.py
%{python3_sitearch}/__pycache__/_ldb_text.cpython-*.py*
%files -n python3-ldb-devel
%{_libdir}/libpyldb-util.cpython-*.so
%{_libdir}/pkgconfig/pyldb-util.cpython-*.pc
%ldconfig_scriptlets
%ldconfig_scriptlets -n python3-ldb
%changelog
%autochangelog

View File

@ -1,2 +0,0 @@
SHA512 (ldb-2.9.1.tar.gz) = a7384d5b88b1b2edc1ac40f38f74b8b2eb403610d158c579a862007801586a4ad1ba11019737ecad8a83e8f2d1ae7ae16ec7e92c58f60feb2d6fed84c4212265
SHA512 (ldb-2.9.1.tar.asc) = 72ba8ca064805f566f45945ac9d4bee16ca6b04f666d15a0108e7bdd01874752dd8cb2512497a797876a391d45e8ef54db4d51cb6e01da38d02c04082d567641

View File

@ -1,10 +0,0 @@
ldb_mod_op-test: ldb_mod_op_test.c
gcc ldb_mod_op_test.c -lldb -ltevent -ltalloc -lcmocka -o ldb_mod_op-test
run: ldb_mod_op-test
@echo "Running ldb_mod_op-test"
./ldb_mod_op-test
clean:
rm -f ldb_mod_op-test

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +0,0 @@
#/bin/bash
make run || exit 1
make clean || exit 2

View File

@ -1,20 +0,0 @@
- hosts: localhost
roles:
- role: standard-test-basic
tags:
- classic
tests:
- sanity:
dir: sanity
run: ./ldbtest.sh
required_packages:
- make
- gcc
- libldb
- libldb-devel
- libtevent
- libtevent-devel
- libtalloc
- libtalloc-devel
- libcmocka
- libcmocka-devel