SHA256
1
0
forked from pool/ldb
ldb/ldb.spec

313 lines
8.4 KiB
RPMSpec
Raw Normal View History

#
# spec file for package ldb
#
# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")}
%{!?py3_soflags: %global py3_soflags cpython-%{python3_version_nodots}m}
%{!?py3_soflags_dash: %global py3_soflags_dash %(echo %{py3_soflags} | sed "s/_/-/g")}
%if 0%{?suse_version} > 1310 || 0%{?fedora_version} > 20
%define with_python3 1
%else
%define with_python3 0
%endif
%global with_lmdb 0
%if 0%{?suse_version} > 1320
%ifarch x86_64
%global with_lmdb 1
%endif
%endif
%define lmdb_version 0.9.16
%define talloc_version 2.1.14
%define tdb_version 1.3.15
%define tevent_version 0.9.36
Name: ldb
BuildRequires: docbook-xsl-stylesheets
BuildRequires: doxygen
%if 0%{?suse_version} > 1320
%ifnarch ppc
BuildRequires: libcmocka-devel >= 1.1.1
%endif
%endif
BuildRequires: libtalloc-devel >= %{talloc_version}
BuildRequires: libtdb-devel >= %{tdb_version}
BuildRequires: libtevent-devel >= %{tevent_version}
BuildRequires: libxslt
BuildRequires: popt-devel
BuildRequires: python-devel
BuildRequires: python-tdb >= %{tdb_version}
BuildRequires: python-tevent >= %{tevent_version}
%if %{with_python3}
BuildRequires: python3-devel
BuildRequires: python3-talloc >= %{talloc_version}
BuildRequires: python3-talloc-devel >= %{talloc_version}
%endif
BuildRequires: python-talloc-devel >= %{talloc_version}
%if 0%{?suse_version} >= 1330
BuildRequires: libtirpc-devel
%endif
%if %{with_lmdb}
BuildRequires: lmdb-devel >= %{lmdb_version}
%endif
Url: https://ldb.samba.org/
Accepting request 648923 from home:scabrero:branches:network:samba:STABLE - Update to 1.4.3 + Python: Ensure ldb.Dn can accept utf8 encoded unicode (bug 13616) - Update license to LGPL-3.0 - Update to 1.4.2 + Security fix for CVE-2018-1140 (NULL pointer de-reference, bug 13374) + Fix memory leaks and missing error checks (bug 13459, 13471, 13475) - 1.4.1 + add some missing return value checks + Fix several mem leaks in ldb_index ldb_search ldb_tdb (bug#13475) + ldb_tdb: Use mem_ctx and so avoid leak onto long-term memory on duplicated add. (bug#13471) + ldb: Fix memory leak on module context (bug#13459) + Refused build of Samba 4.8 with ldb 1.4 (bug #13519) + Prevent similar issues in the future at configure time (bug #13519) - 1.4.0 + New LMDB backend (experimental) + Comprehensive tests for index behaviour + Enforce transactions for writes + Enforce read lock use for all reads + Fix memory leak in paged_results module. We hold at most 10 outstanding paged result cookies (bug #13362) + Fix compiler warnings + Python3 improvements + Restore --disable-python build + Fix for performance regression on one-level searches (bug #13448) + Samba's subtree_rename could fail to rename some entries (bug #13452) - Add fix_ldb_mod_op_test.patch: Fix missing NULL terminator in ldb_mod_op_test testsuite - Update to 1.3.5 + Security fix for CVE-2018-1140 (NULL pointer de-reference, bug #13374). - 1.3.4 + Fix memory leaks and missing error checks (bug #13459, #13471, #13475). + Fix fallback to full scan (performance regression) on one-level search (bug #13448). + Fix read corruption (missing results) during writes, particularly during a Samba subtree rename (bug #13452). - Update to 1.3.3 + Fix failure to upgrade to the GUID index DB format; (bso#13306). - Update to 1.3.2; + Expose the SHOW_BINARY, ENABLE_TRACING and DONT_CREATE_DB flag constants in the python api. + Don't load LDB_MODULESDIR as a module file. + Fix binary data in debug log (bug #13185). + Intersect the index from SCOPE_ONELEVEL with the index for the search expression (bso#13191) + GUID Index support. - Update to 1.2.3; (bsc#1080545); + Performance regression in DNS server with introduction of DNS wildcard; (bso#13191); - Remove %if guards for blocks that do not affect the build result. Fix RPM groups and summaries. Drop very old SUSE support. Replace old RPM macros by new constructs. - Update to 1.2.2 + Bug #13017: Add ldb_ldif_message_redacted_string() to allow debug of redacted log messages, avoiding showing secret values + Bug #13015: Allow re-index of newer databases with binary GUID TDB keys (this officially removes support for re-index of the original pack format 0, rather than simply segfaulting). + Avoid memory allocation and so make modify of records in ldb_tdb faster - Update to 1.2.1 + Bug #12882: Do not install _ldb_text.py if we have system libldb + Use libraries from build dir for testsuite + Bug #12900: Fix index out of bound in ldb_msg_find_common_values - Update to 1.2.0 + handle one more LDB_FLAG_INTERNAL_DISABLE_SINGLE_VALUE_CHECK case in ldb_tdb + fix ldb_tdb locking (performance) problems + fix ldb_tdb search inconsistencies by adding read_[un]lock() hooks to the module stack (bug #12858) + add cmocka based tests for the locking issues + ldb_version.h provides LDB_VERSION_{MAJOR,MINOR,RELEASE} defines + protect ldb_modules.h from being used by Samba < 4.7 Note: that this release (as well as 1.1.30 and 1.1.31) may cause problems for older applications, e.g. Samba See https://bugzilla.samba.org/show_bug.cgi?id=12859 - Update to 1.1.31 + let ldbdump parse the -i option + don't allow the reveal_internals control for ldbedit + only allow --show-binary for ldbsearch + don't let ldbsearch create non-existing files + fix ldb_tdb search inconsistencies + add cmocka based tests + provide an interface for improved indexing for callers like Samba, which will allow much better performance. + Makes ldb access to tdb:// databases use a private event context rather than the global event context passed in by the caller. This is because running other operations while locks are held or a search is being conducted is not safe. + Add efficient function to find duplicate values in ldb messages (this makes large multi-valued attributes in ldb_tdb more efficient) - Add ldb-tests-do-not-override-lib-path.patch: Check if LD_LIBRARY_PATH and LDB_MODULES_PATH environment variables are set before overriding them. - Update to 1.1.29; (bsc#1032915). + add support for LDB_CONTROL_RECALCULATE_RDN_OID on ldb_modify() + Performance and memory consumption improvements - Update to 1.1.27 + performance improvements + VLV control improvements - Require talloc 2.1.6 at build-time; (bsc#954658). - Add ldb-python3.5-fix-soabi_name.patch: Do not change x86_64 to x86-64 when building with python 3.5. - Avoid a file collision for non SUSE build targets; (bsc#966174). - Update to 1.1.26; (bsc#954658). + let a timeout of -1 indicate no timeout for a given request + fix memory leaks in pyldb ldb.search() + build fixes + improve pyldb ldb.search() help message + add pyldb ldb.search_iterator() api + add LDB_ATTR_FLAG_FORCE_BASE64_LDIF as optional argument to ldb_schema_attribute_add() + add client support for LDB_CONTROL_DIRSYNC_EX - Provide python-ldb and python-ldb-devel; (bsc#966523). - Update to 1.1.25; (bsc#954658). + torture: test ldb_unpack_data_only_attr_list + increment version due to added ldb_unpack_data_only_attr_list + introduce ldb_unpack_data_withlist to unpack partial list of attributes - Update to 1.1.24. + fix LDAP \00 search expression attack DoS; CVE-2015-3223; (bso#11325) + fix remote read memory exploit in LDB; CVE-2015-5330; (bso#11599) + move ldb_(un)pack_data into ldb_module.h for testing + fix installation of _ldb_text.py + fix propagation of LDB errors through TDB + fix bug triggered by having an empty message in database during search - Update to 1.1.23; (bsc#954658). + Test improvements + Improved python3 bindings; (bsc#951911) + Minor build fixes - Add doxygen at build time to add the development documentation. - Disable rpath-install and silent-rules while configure. - Rename pyldb to python-ldb. - Move the ldb-cmdline library to the ldb-tools package as the packaged binaries depend on it. - Update the Samba Library Distribution Key file 'ldb.keyring'; (bso#945116). - Update to 1.1.21; (bsc#939050). + build fixes + improved python bindings - Update to 1.1.20. + validate_ldb of String(Generalized-Time) does not accept millisecond format ".000Z"; (bso#9810) + fix logic in ldb_val_to_time() - Update to 1.1.19. + Allow to register extended match rules - Update to 1.1.18. + fixes for segfaults in pyldb + documentation fixes + build system improvements + fix a typo in the comment, LDB_FLAGS_MOD_xxx -> LDB_FLAG_MOD_xxx + Fix check for third_party + make the successful ldb_transaction_start() message clearer + ldb-samba: fix a memory leak in ldif_canonicalise_objectCategory() + ldb-samba: Move pyldb-utils dependency to python_samba__ldb + build: improve detection of srcdir - Use the upstream tar ball, as signature verification is now able to handle compressed archives. - Remove dependency on gpg-offline as signature checking is implemented in the source validator. - BuildRequire docbook-xsl-stylesheets and libxslt to process the man pages. - Require pkg-config from the devel sub packages and do not BuildRequire it from libldb. - Update to 1.1.17. + pyldb: add some more helper functions for LdbDn + pyldb: fix doc string for set_extended_component() + pyldb: add some const to PyObject_FromLdbValue() + Add a env variable to disable RTLD_DEEPBIND. + ldb_ildap: Map some wrong username/password errors on to LDB_ERR_INVALID_CREDENTIALS + pass module init errors back to the caller + Return LDB_ERR_INSUFFICIENT_ACCESS_RIGHTS rather than OPERATIONS_ERROR on EACCES and EPERM + Fix 1138330 Dereference null return value + bad if test in ldb_comparison_fold() + use of NULL pointer bugfix + Fix CID 241329 Array compared against 0 + Fix CID 240798 Uninitialized pointer read + rdn_name: reject 'distinguishedName' depending of the MOD flags + Show the type of failing operation in default error message + Do not build libldb-cmdline when using system ldb. + ldb_map: Fix CID 1034791 Dereference null return value + Fix a const warning - Verify source tar ball gpg signature. - Consolidate python files in independent pyldb subpackages. - Add pyldb to baselibs.conf. - Update to 1.1.16. + Bump version to allow a depencency on the substring crash fix. + Cope with substring match with no chunks in ldb_filter_from_tree(). + Ensure not to segfault on a filter such as (mail=). + Add missing dependency on replace for ldb. + Add more data test data for one level test cases. + Add tests for the python api. + Add more tests related to onelevel search. + Use strncmp instead of strcmp when comparing the val part. + Make test output more readable. - Update to 1.1.15. + Ensure to decrement the transaction_active whenever we delete a transaction. + Move doxygen comments for ldb_connect to the right place. - Update to 1.1.14. + fixed callers for ldb_pack_data() and ldb_unpack_data() + move ldb_pack.c into common + Add ldbdump, based on tdbdump + Remove no-longer-existing ltdb_unpack_data_free from ldb_tdb.h + Change ltdb_unpack_data to take an ldb_context - Update to 1.1.13. + Don't use "isprint" in ldb_binary_encode(); (bso#9147). - Update to 1.1.12. + Avoid printing secret attributes in ldb trace logs - Update to 1.1.11. + LDB:ldb_tdb.c - deny multi-valued attributes manipulation with doublets + LDB:ldbsearch - add search filter tests + LDB:ldbsearch - search filters do not only contain "=" + lib/ldb: Use tdb_parse_record and a callback rather than tdb_fetch() - BuildRequire tevent version >= 0.9.17. - Remove superfluous ldb-tools rpmlintrc file. - Update to 1.1.10. + Enhancements and fixes to the s3 read, sesssetup, and server functions + s3: Fix a crash in reply_lockingX_error + s3:libsmb, smbd, and s4:libcli: add EXTENDED_SIGNATURE support in tcon + s3:rpc_server: make usage of session_extract_session_key() + s3:smb2_*: make use of SMBD_SMB2_*() + s4 and libcli: enahncements and fixes - Update to 1.1.9. + Ensure rename target does not exist before deleting old record. + Add parameter to avoid NULL format string flagged by -Werror=format. - Update to 1.1.8. + Fixes for pyldb. + Drop support for tdb_compat. - BuildRequire pytalloc-devel. - Disable rpath while configure. - Tag GPL-3.0+ based on tdb license; (bnc#765270). - Define library name and use it instead of libldb1. - Add missing post, postun, and files part to the libldb1 package. - Rename package to ldb and add an independent libldb1 subpackage. - Enhance and polish the package descriptions and summaries. - BuildIgnore libtalloc to prevent a package conflict on Fedora systems. - BuildRequire popt-devel. - Define and use talloc, tdb, and tevent version macros. - Define python_sitearch if undefined. - BuildRequire libtalloc-devel, libtdb-devel, and libtevent-devel. - Configure with bundled tdb2 library. - Cleanup BuildRequires and spec file in general. - BuildRequire libtalloc2-devel >= 2.0.7. - BuildRequire libtalloc2-devel, libtdb1-devel, and libtevent0-devel. - Adjust license string. - Require libldb1 = %{version} from the devel package. - Initial independent libldb1 package. OBS-URL: https://build.opensuse.org/request/show/648923 OBS-URL: https://build.opensuse.org/package/show/network:samba:STABLE/ldb?expand=0&rev=130
2018-11-26 18:25:20 +01:00
Version: 1.4.3
Release: 0
Summary: An LDAP-like embedded database
License: LGPL-3.0-or-later
Group: Development/Libraries/C and C++
Source: https://download.samba.org/pub/ldb/ldb-%{version}.tar.gz
Source1: https://download.samba.org/pub/ldb/ldb-%{version}.tar.asc
Source2: ldb.keyring
Source4: baselibs.conf
Patch0: ldb-python3.5-fix-soabi_name.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
LDB is an LDAP-like embedded database.
%package -n libldb1
Summary: An LDAP-like embedded database
Group: System/Libraries
%description -n libldb1
LDB is an LDAP-like embedded database.
This package includes the ldb1 library.
%package -n libldb-devel
Summary: Libraries and Header Files to Develop Programs with ldb1 Support
Group: Development/Libraries/C and C++
Requires: libldb1 = %{version}
Requires: pkg-config
%description -n libldb-devel
LDB is an LDAP-like embedded database.
Libraries and Header Files to Develop Programs with ldb1 Support.
%package -n ldb-tools
Summary: Tools to manipulate LDB files
Group: Development/Libraries/C and C++
%description -n ldb-tools
Tools to manipulate LDB files.
%package -n python-ldb
Summary: Python bindings for the LDB library
Group: Development/Libraries/Python
Requires: libldb1 = %{version}
Provides: pyldb = %{version}
Obsoletes: pyldb < %{version}
%description -n python-ldb
This package contains the Python bindings for the LDB library.
%package -n python-ldb-devel
Summary: Development files for the Python bindings for the LDB library
Group: Development/Libraries/Python
Requires: pkg-config
Requires: python-ldb = %{version}
Provides: pyldb-devel = %{version}
Obsoletes: pyldb-devel < %{version}
%description -n python-ldb-devel
This package contains the development files for the Python bindings for the
LDB library.
%package -n python3-ldb
Summary: Python3 bindings for the LDB library
Group: Development/Libraries/Python
Requires: libldb1 = %{version}
%description -n python3-ldb
This package contains the python3 bindings for the LDB library.
%package -n python3-ldb-devel
Summary: Development files for the Python3 bindings for the LDB library
Group: Development/Libraries/Python
Requires: pkg-config
Requires: python3-ldb = %{version}
%description -n python3-ldb-devel
This package contains the development files for the Python bindings for the
LDB library.
%prep
%setup -n ldb-%{version} -q
%patch0 -p1
%build
%if 0%{?suse_version} > 1110
export SUSE_ASNEEDED=0
%endif
export CFLAGS="%{optflags} -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -DIDMAP_RID_SUPPORT_TRUSTED_DOMAINS"
%define bundled_libs cmocka
%if 0%{?suse_version} > 1320
%ifnarch ppc
%define bundled_libs NONE
%endif
%endif
export CFLAGS="%{optflags} -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -DIDMAP_RID_SUPPORT_TRUSTED_DOMAINS"
CONFIGURE_OPTIONS="\
--prefix=%{_prefix} \
--libdir=%{_libdir} \
--disable-rpath \
--disable-rpath-install \
--disable-silent-rules \
--with-modulesdir=%{_libdir} \
--bundled-libraries=%{bundled_libs} \
--builtin-libraries=replace \
%if %{with_python3}
--extra-python=/usr/bin/python3 \
%endif
%if !%{with_lmdb}
--without-ldb-lmdb \
%endif
"
./configure ${CONFIGURE_OPTIONS}
make %{?_smp_mflags} \
all
doxygen Doxyfile
# remove man page with bogus full build dir in path
rm -f apidocs/man/man3/_*_ldb-%{version}_include_.3
%check
%if %{with_lmdb}
LD_LIBRARY_PATH="bin/shared:bin/shared/private" \
LDB_MODULES_PATH="bin/modules" \
make test
%endif
%install
%make_install
# Install API documentation
cp -a apidocs/man/* %{buildroot}/%{_mandir}
%if %{with_python3}
sed -i 's;-lpyldb-util.%{py3_soflags_dash};-lpyldb-util.%{py3_soflags};g' %{buildroot}/%{_libdir}/pkgconfig/pyldb-util.%{py3_soflags}.pc
%endif
%post -n libldb1 -p /sbin/ldconfig
%postun -n libldb1 -p /sbin/ldconfig
%post -n python-ldb -p /sbin/ldconfig
%postun -n python-ldb -p /sbin/ldconfig
%post -n python3-ldb -p /sbin/ldconfig
%postun -n python3-ldb -p /sbin/ldconfig
%files -n libldb1
%defattr(-,root,root)
%{_libdir}/libldb.so.*
%dir %{_libdir}/ldb
%{_libdir}/ldb/asq.so
%{_libdir}/ldb/paged_results.so
%{_libdir}/ldb/paged_searches.so
%{_libdir}/ldb/rdn_name.so
%{_libdir}/ldb/sample.so
%{_libdir}/ldb/server_sort.so
%{_libdir}/ldb/skel.so
%{_libdir}/ldb/tdb.so
%if 0%{?suse_version} <= 1320
%{_libdir}/ldb/libcmocka-ldb.so
%endif
%ifarch ppc
%{_libdir}/ldb/libcmocka-ldb.so
%endif
%{_libdir}/ldb/ldb.so
%{_libdir}/ldb/libldb-key-value.so
%if %{with_lmdb}
%{_libdir}/ldb/libldb-mdb-int.so
%{_libdir}/ldb/mdb.so
%endif
%files -n libldb-devel
%defattr(-,root,root)
%{_includedir}/ldb.h
%{_includedir}/ldb_errors.h
%{_includedir}/ldb_handlers.h
%{_includedir}/ldb_module.h
%{_includedir}/ldb_version.h
%{_libdir}/libldb.so
%dir %{_libdir}/ldb
%{_libdir}/pkgconfig/ldb.pc
%{_mandir}/man3/ldb*.3.*
%if 0%{?suse_version} != 1110 || %{_arch} != i386
%{_mandir}/man3/ldif*.3.*
%endif
%files -n ldb-tools
%defattr(-,root,root)
%{_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 -n python-ldb
%defattr(-,root,root)
%{python_sitearch}/ldb.so
%{python_sitearch}/_ldb_text.py*
%{_libdir}/libpyldb-util.so.*
%files -n python-ldb-devel
%defattr(-,root,root)
%{_includedir}/pyldb.h
%{_libdir}/libpyldb-util.so
%{_libdir}/pkgconfig/pyldb-util.pc
%if 0%{?suse_version} != 1110 || %{_arch} != i386
%{_mandir}/man3/PyLdb*.3.*
%endif
%if %{with_python3}
%files -n python3-ldb
%defattr(-,root,root)
%{_libdir}/libpyldb-util.%{py3_soflags}.so.*
%{python3_sitearch}/_ldb_text.py
%if 0%{?centos_version} > 599 || 0%{?fedora_version} > 11 || 0%{?rhel_version} > 599
%{python3_sitearch}/__pycache__/_ldb_text.cpython-*.py[co]
%endif
%{python3_sitearch}/ldb.%{py3_soflags}.so
%files -n python3-ldb-devel
%defattr(-,root,root)
%{_libdir}/libpyldb-util.%{py3_soflags}.so
%{_libdir}/pkgconfig/pyldb-util.%{py3_soflags}.pc
%endif
%changelog