sys-libs/ldb: convert to multilib

multilib is needed to support samba-4

Package-Manager: portage-2.2.26
This commit is contained in:
Ian Stakenvicius
2016-01-11 12:03:26 -05:00
parent 1236680f7c
commit 3c4ccac1fa
2 changed files with 166 additions and 0 deletions

View File

@@ -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)

View File

@@ -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-3.6.0[ldb]
!!>=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
}