commit:     3b72be859ea5380720ebf8303c0996a9fc6286bd
Author:     Ben Kohler <bkohler <AT> gentoo <DOT> org>
AuthorDate: Wed Apr 17 15:54:45 2024 +0000
Commit:     Ben Kohler <bkohler <AT> gentoo <DOT> org>
CommitDate: Wed Apr 17 16:03:58 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3b72be85

sys-libs/ldb: add 2.9.0

Signed-off-by: Ben Kohler <bkohler <AT> gentoo.org>

 sys-libs/ldb/Manifest                              |   1 +
 .../ldb/files/ldb-2.9.0-optional_packages.patch    |  41 +++++
 sys-libs/ldb/ldb-2.9.0.ebuild                      | 173 +++++++++++++++++++++
 3 files changed, 215 insertions(+)

diff --git a/sys-libs/ldb/Manifest b/sys-libs/ldb/Manifest
index ff8e25103f79..08b7fcf23d6d 100644
--- a/sys-libs/ldb/Manifest
+++ b/sys-libs/ldb/Manifest
@@ -4,3 +4,4 @@ DIST ldb-2.5.3.tar.gz 1736354 BLAKE2B 
dcd4d33f7a0ce3583bc96762b274d195c20e868337
 DIST ldb-2.6.2.tar.gz 1738908 BLAKE2B 
44998efdff46486f94deb115225119cb3f6f23e15192672a5ac59c27e06c074fbcf2e1dba7d89d5ce273748cf08bc2261a10f7818cc2d02c4b25fd5403b158a9
 SHA512 
091111b8cf6cd93d662737890dacb64439e930b287d29299d2fc2cb18709f61d1e8a8c17d44f7224d8370dda6dc89af91e4ce8959816903ad5363388d8e37d8f
 DIST ldb-2.7.2.tar.gz 1737849 BLAKE2B 
0aa70d8a4827448e41874db97130f18d17683c800b8f03f9940b4852e24fd6092052f6e70aae845c587939b9be16c80d7a920f6b874a746f923c4513b73d2afc
 SHA512 
beb2cd83a8f128713e0b43ec6e80d0f87ab0883c6c8f0cefbbf5bf49e29dfa327b245b78467d1906917cb5f3f11e01cb76cc6bcca58a47c5deac4f05c2e9dfbd
 DIST ldb-2.8.0.tar.gz 1747616 BLAKE2B 
19fd4cc0893ca36e7aa65eb605b050e3faeb7add6c00a2dfd8415334c58b7dc644ffaad41c24fe358b39292aaa581e3231e6b8161b03c073e903cdae16050ac5
 SHA512 
b6f289af3137e02a8e3ee0588bc300d1756b8980558e0b3a3a9eee4449100ccd42ed873187dbdb334e7e7834a8bff8478cd4f20588d4ca834d9ea14c0ee2c2f9
+DIST ldb-2.9.0.tar.gz 1757213 BLAKE2B 
6d24ced193a64e723da65f26a055b97e5c5645b0ce17263073db997e9310509c788e7739136b70d099d171d1d0cbbe43bb43ea50746d876d74a1be06fa2fc36f
 SHA512 
b5cfbbcb2c35d6830bf1a7c85e1d4363728ae474504441add54c4c8569316b26aedbf6fb9f561ec4f187eb5a847ac76af07396e38d00e6f7632b63e02d7b64a1

diff --git a/sys-libs/ldb/files/ldb-2.9.0-optional_packages.patch 
b/sys-libs/ldb/files/ldb-2.9.0-optional_packages.patch
new file mode 100644
index 000000000000..791f49c8de6c
--- /dev/null
+++ b/sys-libs/ldb/files/ldb-2.9.0-optional_packages.patch
@@ -0,0 +1,41 @@
+diff -ur ldb-2.9.0/wscript ldb-2.9.0.new/wscript
+--- ldb-2.9.0/wscript  2024-01-29 10:20:28.452400700 -0600
++++ ldb-2.9.0.new/wscript      2024-04-17 10:49:58.934921251 -0500
+@@ -34,6 +34,10 @@
+     opt.RECURSE('lib/tevent')
+     opt.RECURSE('lib/replace')
+     opt.load('python') # options for disabling pyc or pyo compilation
++    if opt.IN_LAUNCH_DIR():
++        opt.add_option('--disable-ldap',
++        help=("disable ldap support"),
++        action="store_true", dest='disable_ldap', default=False)
+ 
+     opt.add_option('--without-ldb-lmdb',
+                    help='disable new LMDB backend for LDB',
+@@ -41,6 +45,10 @@
+ 
+ 
+ def configure(conf):
++    conf.env.standalone_ldb = conf.IN_LAUNCH_DIR()
++
++    conf.env.disable_ldap = getattr(Options.options, 'disable_ldap', False)
++
+     conf.RECURSE('lib/tdb')
+     conf.RECURSE('lib/tevent')
+ 
+@@ -145,9 +153,12 @@
+     if conf.env.standalone_ldb:
+         conf.CHECK_XSLTPROC_MANPAGES()
+ 
+-        # we need this for the ldap backend
+-        if conf.CHECK_FUNCS_IN('ber_flush ldap_open ldap_initialize', 'lber 
ldap', headers='lber.h ldap.h'):
+-            conf.env.ENABLE_LDAP_BACKEND = True
++        if not conf.env.disable_ldap:
++           # we need this for the ldap backend
++            if conf.CHECK_FUNCS_IN('ber_flush ldap_open ldap_initialize', 
'lber ldap', headers='lber.h ldap.h'):
++                conf.env.ENABLE_LDAP_BACKEND = True
++        else:
++            conf.env.ENABLE_LDAP_BACKEND = False
+ 
+         # we don't want any libraries or modules to rely on runtime
+         # resolution of symbols

diff --git a/sys-libs/ldb/ldb-2.9.0.ebuild b/sys-libs/ldb/ldb-2.9.0.ebuild
new file mode 100644
index 000000000000..c0dac63c7137
--- /dev/null
+++ b/sys-libs/ldb/ldb-2.9.0.ebuild
@@ -0,0 +1,173 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..11} )
+PYTHON_REQ_USE="threads(+)"
+inherit python-single-r1 waf-utils multilib-minimal
+
+DESCRIPTION="LDAP-like embedded database"
+HOMEPAGE="https://ldb.samba.org";
+SRC_URI="https://samba.org/ftp/pub/${PN}/${P}.tar.gz";
+
+LICENSE="LGPL-3"
+SLOT="0/${PV}"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 
~riscv ~s390 ~sparc ~x86"
+IUSE="doc ldap +lmdb python test"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}
+       test? ( lmdb )"
+
+RESTRICT="!test? ( test )"
+
+TALLOC_VERSION="2.4.2"
+TDB_VERSION="1.4.10"
+TEVENT_VERSION="0.16.1"
+
+RDEPEND="
+       dev-libs/libbsd[${MULTILIB_USEDEP}]
+       dev-libs/popt[${MULTILIB_USEDEP}]
+       >=sys-libs/talloc-${TALLOC_VERSION}[${MULTILIB_USEDEP}]
+       >=sys-libs/tdb-${TDB_VERSION}[${MULTILIB_USEDEP}]
+       >=sys-libs/tevent-${TEVENT_VERSION}[${MULTILIB_USEDEP}]
+       ldap? ( net-nds/openldap:= )
+       lmdb? ( >=dev-db/lmdb-0.9.16:=[${MULTILIB_USEDEP}] )
+       python? (
+               ${PYTHON_DEPS}
+               sys-libs/talloc[python,${PYTHON_SINGLE_USEDEP}]
+               sys-libs/tdb[python,${PYTHON_SINGLE_USEDEP}]
+               sys-libs/tevent[python,${PYTHON_SINGLE_USEDEP}]
+       )
+"
+DEPEND="
+       ${RDEPEND}
+       virtual/libcrypt
+       test? ( >=dev-util/cmocka-1.1.3[${MULTILIB_USEDEP}] )
+"
+BDEPEND="${PYTHON_DEPS}
+       dev-libs/libxslt
+       virtual/pkgconfig
+       doc? ( app-text/doxygen )
+"
+
+WAF_BINARY="${S}/buildtools/bin/waf"
+
+MULTILIB_WRAPPED_HEADERS=( /usr/include/pyldb.h )
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-2.9.0-optional_packages.patch
+       "${FILESDIR}"/${PN}-1.1.31-fix_PKGCONFIGDIR-when-python-disabled.patch
+       "${FILESDIR}"/${PN}-2.4.2-skip-32bit-time_t-tests.patch
+       "${FILESDIR}"/${PN}-2.5.2-skip-waf-tevent-check.patch
+)
+
+pkg_setup() {
+       # Package fails to build with distcc
+       export DISTCC_DISABLE=1
+       export PYTHONHASHSEED=1
+
+       # waf requires a python interpreter
+       python-single-r1_pkg_setup
+}
+
+check_samba_dep_versions() {
+       actual_talloc_version=$(sed -En '/^VERSION =/{s/[^0-9.]//gp}' 
lib/talloc/wscript || die)
+       if [[ ${actual_talloc_version} != ${TALLOC_VERSION} ]] ; then
+               eerror "Source talloc version: ${TALLOC_VERSION}"
+               eerror "Ebuild talloc version: ${actual_talloc_version}"
+               die "Ebuild needs to fix TALLOC_VERSION!"
+       fi
+
+       actual_tdb_version=$(sed -En '/^VERSION =/{s/[^0-9.]//gp}' 
lib/tdb/wscript || die)
+       if [[ ${actual_tdb_version} != ${TDB_VERSION} ]] ; then
+               eerror "Source tdb version: ${TDB_VERSION}"
+               eerror "Ebuild tdb version: ${actual_tdb_version}"
+               die "Ebuild needs to fix TDB_VERSION!"
+       fi
+
+       actual_tevent_version=$(sed -En '/^VERSION =/{s/[^0-9.]//gp}' 
lib/tevent/wscript || die)
+       if [[ ${actual_tevent_version} != ${TEVENT_VERSION} ]] ; then
+               eerror "Source tevent version: ${TEVENT_VERSION}"
+               eerror "Ebuild tevent version: ${actual_tevent_version}"
+               die "Ebuild needs to fix TEVENT_VERSION!"
+       fi
+}
+
+src_prepare() {
+       default
+
+       check_samba_dep_versions
+
+       if use test && ! use python ; then
+               # We want to be able to run tests w/o Python as it makes
+               # automated testing much easier (as USE=python isn't 
default-enabled).
+               truncate -s0 tests/python/{repack,index,api,crash}.py || die
+       fi
+
+       multilib_copy_sources
+}
+
+multilib_src_configure() {
+       # When specifying libs for samba build you must append NONE to the end 
to
+       # stop it automatically including things
+       local bundled_libs="NONE"
+
+       # We "use" bundled cmocka when we're not running tests as we're
+       # not using it anyway. Means we avoid making users install it for
+       # no reason. bug #802531
+       if ! use test; then
+               bundled_libs="cmocka,${bundled_libs}"
+       fi
+
+       local myconf=(
+               $(usex ldap '' --disable-ldap)
+               $(usex lmdb '' --without-ldb-lmdb)
+               --disable-rpath
+               --disable-rpath-install
+               --with-modulesdir="${EPREFIX}"/usr/$(get_libdir)/samba
+               --bundled-libraries="${bundled_libs}"
+               --builtin-libraries=NONE
+       )
+
+       if ! use python || ! multilib_is_native_abi; then
+               myconf+=( --disable-python )
+       fi
+
+       waf-utils_src_configure "${myconf[@]}"
+}
+
+multilib_src_compile() {
+       waf-utils_src_compile
+       multilib_is_native_abi && use doc && doxygen Doxyfile
+}
+
+multilib_src_test() {
+       if multilib_is_native_abi; then
+               WAF_MAKE=1 \
+               
PATH=buildtools/bin:../../../buildtools/bin:${PATH}:"${BUILD_DIR}"/bin/shared/private/
 \
+               
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:"${BUILD_DIR}"/bin/shared/private/:"${BUILD_DIR}"/bin/shared
 \
+               waf test || die
+       fi
+}
+
+multilib_src_install() {
+       waf-utils_src_install
+
+       if multilib_is_native_abi && use doc; then
+               doman  apidocs/man/man3/*.3
+               docinto html
+               dodoc -r apidocs/html/.
+       fi
+
+       # bug #726454
+       use python && python_optimize
+}
+
+pkg_postinst() {
+       if has_version sys-auth/sssd; then
+               ewarn "You have sssd installed. It is known to break after ldb 
upgrades,"
+               ewarn "so please try to rebuild it before reporting bugs."
+               ewarn "See https://bugs.gentoo.org/404281";
+       fi
+}

Reply via email to