From 3c4ccac1fada80508c1f365874ee925af8be37b8 Mon Sep 17 00:00:00 2001 From: Ian Stakenvicius Date: Mon, 11 Jan 2016 12:03:26 -0500 Subject: sys-libs/ldb: convert to multilib multilib is needed to support samba-4 Package-Manager: portage-2.2.26 --- .../ldb/files/ldb-1.1.24-optional-python.patch | 72 +++++++++++++++++ sys-libs/ldb/ldb-1.1.24-r1.ebuild | 94 ++++++++++++++++++++++ 2 files changed, 166 insertions(+) create mode 100644 sys-libs/ldb/files/ldb-1.1.24-optional-python.patch create mode 100644 sys-libs/ldb/ldb-1.1.24-r1.ebuild (limited to 'sys-libs/ldb') diff --git a/sys-libs/ldb/files/ldb-1.1.24-optional-python.patch b/sys-libs/ldb/files/ldb-1.1.24-optional-python.patch new file mode 100644 index 000000000000..d8dda63d44b7 --- /dev/null +++ b/sys-libs/ldb/files/ldb-1.1.24-optional-python.patch @@ -0,0 +1,72 @@ +--- a/wscript 2015-12-10 06:01:40.000000000 -0500 ++++ b/wscript 2016-01-06 15:05:57.013617848 -0500 +@@ -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,17 @@ + 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) ++ + + def configure(conf): ++ conf.env.standalone_ldb = conf.IN_LAUNCH_DIR() ++ ++ conf.env.disable_python = getattr(Options.options, 'disable_python', False) ++ + conf.RECURSE('lib/tdb') + conf.RECURSE('lib/tevent') + +@@ -44,16 +54,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', +--- a/lib/talloc/wscript 2015-11-06 08:28:25.000000000 -0500 ++++ b/lib/talloc/wscript 2016-01-06 15:07:43.673478788 -0500 +@@ -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) + diff --git a/sys-libs/ldb/ldb-1.1.24-r1.ebuild b/sys-libs/ldb/ldb-1.1.24-r1.ebuild new file mode 100644 index 000000000000..9633389c559c --- /dev/null +++ b/sys-libs/ldb/ldb-1.1.24-r1.ebuild @@ -0,0 +1,94 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 +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" + +RDEPEND="dev-libs/popt[${MULTILIB_USEDEP}] + >=sys-libs/talloc-2.1.5[python,${MULTILIB_USEDEP}] + >=sys-libs/tevent-0.9.26[python(+),${MULTILIB_USEDEP}] + >=sys-libs/tdb-1.3.8[python,${MULTILIB_USEDEP}] + net-nds/openldap + !!=net-fs/samba-4.0.0[ldb] + ${PYTHON_DEPS} + " + +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 ) + +pkg_setup() { + python-single-r1_pkg_setup +} + +src_prepare() { + epatch "${FILESDIR}"/${P}-optional-python.patch + epatch_user + multilib_copy_sources +} + +multilib_src_configure() { + local myconf=( + --disable-rpath \ + --disable-rpath-install --bundled-libraries=NONE \ + --with-modulesdir="${EPREFIX}"/usr/$(get_libdir)/samba \ + --builtin-libraries=NONE \ + --blddir="${BUILD_DIR}" + ) + 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 + dohtml -r apidocs/html/* + doman apidocs/man/man3/*.3 + 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 +} -- cgit v1.2.3-65-gdbad