commit:     896306c12642c3343ef6f3f1375c15858246f2e9
Author:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
AuthorDate: Tue Sep  6 09:23:17 2016 +0000
Commit:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
CommitDate: Tue Sep  6 09:25:29 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=896306c1

sys-libs/ldb: Revbump to make ldap support optional (bug #506448).

Package-Manager: portage-2.3.0
Signed-off-by: Lars Wendler <polynomial-c <AT> gentoo.org>

 .../ldb/files/ldb-1.1.27-optional_packages.patch   | 92 ++++++++++++++++++++
 sys-libs/ldb/ldb-1.1.27-r1.ebuild                  | 99 ++++++++++++++++++++++
 2 files changed, 191 insertions(+)

diff --git a/sys-libs/ldb/files/ldb-1.1.27-optional_packages.patch 
b/sys-libs/ldb/files/ldb-1.1.27-optional_packages.patch
new file mode 100644
index 00000000..92e14c6
--- /dev/null
+++ b/sys-libs/ldb/files/ldb-1.1.27-optional_packages.patch
@@ -0,0 +1,92 @@
+--- ldb-1.1.27/lib/talloc/wscript
++++ ldb-1.1.27/lib/talloc/wscript
+@@ -48,7 +48,7 @@
+         if conf.CHECK_BUNDLED_SYSTEM_PKG('talloc', minversion=VERSION,
+                                      implied_deps='replace'):
+             conf.define('USING_SYSTEM_TALLOC', 1)
+-        if conf.CHECK_BUNDLED_SYSTEM_PKG('pytalloc-util', minversion=VERSION,
++        if not conf.env.disable_python and 
conf.CHECK_BUNDLED_SYSTEM_PKG('pytalloc-util', minversion=VERSION,
+                                      implied_deps='talloc replace'):
+             conf.define('USING_SYSTEM_PYTALLOC_UTIL', 1)
+ 
+--- ldb-1.1.27/wscript
++++ ldb-1.1.27/wscript
+@@ -5,6 +5,7 @@
+ 
+ blddir = 'bin'
+ 
++import Logs
+ import sys, os
+ 
+ # find the buildtools directory
+@@ -13,7 +14,7 @@
+     srcdir = srcdir + '/..'
+ sys.path.insert(0, srcdir + '/buildtools/wafsamba')
+ 
+-import wafsamba, samba_dist, Utils
++import wafsamba, samba_dist, Utils, Options
+ 
+ samba_dist.DIST_DIRS('''lib/ldb:. lib/replace:lib/replace 
lib/talloc:lib/talloc
+                         lib/tdb:lib/tdb lib/tdb:lib/tdb lib/tevent:lib/tevent
+@@ -28,8 +29,21 @@
+     opt.RECURSE('lib/tevent')
+     opt.RECURSE('lib/replace')
+     opt.tool_options('python') # options for disabling pyc or pyo compilation
++    if opt.IN_LAUNCH_DIR():
++        opt.add_option('--disable-python',
++        help=("disable the pyldb modules"),
++        action="store_true", dest='disable_python', default=False)
++    if opt.IN_LAUNCH_DIR():
++        opt.add_option('--disable-ldap',
++        help=("disable ldap support"),
++        action="store_true", dest='disable_ldap', default=False)
+ 
+ def configure(conf):
++    conf.env.standalone_ldb = conf.IN_LAUNCH_DIR()
++
++    conf.env.disable_python = getattr(Options.options, 'disable_python', 
False)
++    conf.env.disable_ldap = getattr(Options.options, 'disable_ldap', False)
++
+     conf.RECURSE('lib/tdb')
+     conf.RECURSE('lib/tevent')
+ 
+@@ -44,16 +58,18 @@
+     conf.RECURSE('lib/replace')
+     conf.find_program('python', var='PYTHON')
+     conf.find_program('xsltproc', var='XSLTPROC')
+-    conf.check_tool('python')
+-    conf.check_python_version((2,4,2))
+-    conf.SAMBA_CHECK_PYTHON_HEADERS(mandatory=True)
++
++    if not conf.env.disable_python:
++      conf.SAMBA_CHECK_PYTHON(mandatory=False, version=(2,4,2))
++      conf.SAMBA_CHECK_PYTHON_HEADERS(mandatory=False)
++      if not conf.env.HAVE_PYTHON_H:
++        Logs.warn('Disabling pyldb-util as python devel libs not found')
++        conf.env.disable_python = True
+ 
+     # where does the default LIBDIR end up? in conf.env somewhere?
+     #
+     conf.CONFIG_PATH('LDB_MODULESDIR', conf.SUBST_ENV_VAR('MODULESDIR') + 
'/ldb')
+ 
+-    conf.env.standalone_ldb = conf.IN_LAUNCH_DIR()
+-
+     if not conf.env.standalone_ldb:
+         if conf.CHECK_BUNDLED_SYSTEM_PKG('pyldb-util', minversion=VERSION,
+                                      onlyif='talloc tdb tevent',
+@@ -67,9 +83,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-1.1.27-r1.ebuild 
b/sys-libs/ldb/ldb-1.1.27-r1.ebuild
new file mode 100644
index 00000000..e3f70e5
--- /dev/null
+++ b/sys-libs/ldb/ldb-1.1.27-r1.ebuild
@@ -0,0 +1,99 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE="threads"
+
+inherit python-single-r1 waf-utils multilib-minimal eutils
+
+DESCRIPTION="An LDAP-like embedded database"
+HOMEPAGE="http://ldb.samba.org";
+SRC_URI="http://www.samba.org/ftp/pub/${PN}/${P}.tar.gz";
+
+LICENSE="LGPL-3"
+SLOT="0/${PV}"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh 
~sparc ~x86 ~amd64-fbsd ~x86-fbsd"
+IUSE="doc +ldap"
+
+RDEPEND="!elibc_FreeBSD? ( dev-libs/libbsd[${MULTILIB_USEDEP}] )
+       dev-libs/popt[${MULTILIB_USEDEP}]
+       >=sys-libs/talloc-2.1.8[python,${MULTILIB_USEDEP}]
+       >=sys-libs/tevent-0.9.29[python(+),${MULTILIB_USEDEP}]
+       >=sys-libs/tdb-1.3.10[python,${MULTILIB_USEDEP}]
+       !!<net-fs/samba-3.6.0[ldb]
+       !!>=net-fs/samba-4.0.0[ldb]
+       ${PYTHON_DEPS}
+       ldap? ( net-nds/openldap )
+       "
+
+DEPEND="dev-libs/libxslt
+       doc? ( app-doc/doxygen )
+       virtual/pkgconfig
+       ${RDEPEND}"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+WAF_BINARY="${S}/buildtools/bin/waf"
+
+MULTILIB_WRAPPED_HEADERS=( /usr/include/pyldb.h )
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-1.1.27-optional_packages.patch
+)
+
+pkg_setup() {
+       python-single-r1_pkg_setup
+}
+
+src_prepare() {
+       default
+       multilib_copy_sources
+}
+
+multilib_src_configure() {
+       local myconf=(
+               $(use_enable ldap) \
+               --disable-rpath \
+               --disable-rpath-install --bundled-libraries=NONE \
+               --with-modulesdir="${EPREFIX}"/usr/$(get_libdir)/samba \
+               --builtin-libraries=NONE
+       )
+       if ! 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
+}
+
+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