diff options
author | Sam James <sam@gentoo.org> | 2022-09-30 05:13:13 +0100 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2022-09-30 05:18:41 +0100 |
commit | 73e739c37f444c45aa549bc5688ca58c693dc505 (patch) | |
tree | cadd1211c535f3a16ea63bb9c154b6e7c21bd28a | |
parent | media-fonts/x11fonts-jmk: force gcc -E for imake's generation (diff) | |
download | gentoo-73e739c37f444c45aa549bc5688ca58c693dc505.tar.gz gentoo-73e739c37f444c45aa549bc5688ca58c693dc505.tar.bz2 gentoo-73e739c37f444c45aa549bc5688ca58c693dc505.zip |
sys-libs/ldb: add 2.6.1, conditionally depend on cmocka, add version checker
- Conditionally depend on cmocka by "using" the bundled copy
when we're not running tests (just to satisfy configure).
- Add talloc/tdb/tevent version checker.
Nabbed Ionen's sed from wine-proton etc.
Closes: https://bugs.gentoo.org/802531
Signed-off-by: Sam James <sam@gentoo.org>
-rw-r--r-- | sys-libs/ldb/Manifest | 1 | ||||
-rw-r--r-- | sys-libs/ldb/ldb-2.6.1.ebuild | 167 |
2 files changed, 168 insertions, 0 deletions
diff --git a/sys-libs/ldb/Manifest b/sys-libs/ldb/Manifest index e5de992c6235..615777d82a36 100644 --- a/sys-libs/ldb/Manifest +++ b/sys-libs/ldb/Manifest @@ -3,3 +3,4 @@ DIST ldb-2.3.4.tar.gz 1721000 BLAKE2B be54c0bffdc910029b5e324578ed2f1e0350dfd192 DIST ldb-2.4.2.tar.gz 1720169 BLAKE2B d144218bf62dde57560df8b8a641e9f58bee001fdfa7b1527d9eb9a1a55e428662db81912173cbcdb9f993c0b316faab7d758a4878beeff1daadd487e9aa44a9 SHA512 77705ad284eed9105c9aba0459d2e48cd66ca19b657a55f7513e10281dd2e96540d24d1c8df53adc84109a918900687dc75b635cda05c4e788424ed71b5ff989 DIST ldb-2.4.4.tar.gz 1726595 BLAKE2B c01440e7032dbd3f7b735cb8d2078d7e1dbb56370bd1defe5f170eff006d3979daa654698e6e046c0583288dacd2cda9a5cde249fd6382db52c4aadb83f55e34 SHA512 2e4c762525eee9db40083b21e2a23f9cdfad5d2969cc628b3ea5414f9ec1be2c12d0aa65137cd8d8a5395c0414166ba14fc3dd57d53c533596762d80b9c561f4 DIST ldb-2.5.2.tar.gz 1730347 BLAKE2B a0d3a9ae02f79c27b396314b804195ecd37b8bcd843fb94f9813a69fb15773db94ed2210f4102e395333562c2dccebabde1c2dcc0c2fceac97dfa31b2ad97e3d SHA512 02ae1246f99d9b6d6b33c5030488aa46c6abb535b4da4b13799a62b49d32c490b7c088ef41c0bc5a1b2f7263c680faceb8033827834cb6f66916adcdb5be421c +DIST ldb-2.6.1.tar.gz 1740497 BLAKE2B 3e831e4689297f3415928507c4c498cba937df104f1e94792a66691a2c0fefa641989badc1d89b0030d164eff5fdb0b3c75646f12961808e37c54d741f745a76 SHA512 7b920c5ec1252446584caeedf9ec18aeb5c1b689c2ecc8ae65c0d5b64bf0bca0cbaa887c07fca90b36b16904e3a08534fc513fec6bac288e80f94d2980c36211 diff --git a/sys-libs/ldb/ldb-2.6.1.ebuild b/sys-libs/ldb/ldb-2.6.1.ebuild new file mode 100644 index 000000000000..78ec93f70bf1 --- /dev/null +++ b/sys-libs/ldb/ldb-2.6.1.ebuild @@ -0,0 +1,167 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{8..10} ) +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 python )" + +RESTRICT="!test? ( test )" + +TALLOC_VERSION="2.3.4" +TDB_VERSION="1.4.7" +TEVENT_VERSION="0.13.0" + +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-doc/doxygen ) +" + +WAF_BINARY="${S}/buildtools/bin/waf" + +MULTILIB_WRAPPED_HEADERS=( /usr/include/pyldb.h ) + +PATCHES=( + "${FILESDIR}"/${PN}-1.5.2-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 + + 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 +} |