libldb: upgrade 1.4.1 -> 1.5.4

1. switch to python3
2. add cross-answer for lmdb check, so remove patch 0001-libldb-fix-config-error
3. fix cross-compile problem caused by waf
4. refresh patch

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
Changqing Li 2019-07-02 09:58:07 +08:00 committed by Khem Raj
parent 517f7ba99c
commit 6207331f37
19 changed files with 144 additions and 166 deletions

View File

@ -37,3 +37,4 @@ Checking for small off_t: NO
Checking whether blkcnt_t is 32 bit: NO Checking whether blkcnt_t is 32 bit: NO
Checking whether blkcnt_t is 64 bit: OK Checking whether blkcnt_t is 64 bit: OK
Checking whether fcntl lock supports open file description locks: OK Checking whether fcntl lock supports open file description locks: OK
Checking for a 64-bit host to support lmdb: OK

View File

@ -37,3 +37,4 @@ Checking for small off_t: NO
Checking whether blkcnt_t is 32 bit: NO Checking whether blkcnt_t is 32 bit: NO
Checking whether blkcnt_t is 64 bit: OK Checking whether blkcnt_t is 64 bit: OK
Checking whether fcntl lock supports open file description locks: OK Checking whether fcntl lock supports open file description locks: OK
Checking for a 64-bit host to support lmdb: OK

View File

@ -38,3 +38,4 @@ Checking for small off_t: NO
Checking whether blkcnt_t is 32 bit: NO Checking whether blkcnt_t is 32 bit: NO
Checking whether blkcnt_t is 64 bit: OK Checking whether blkcnt_t is 64 bit: OK
Checking whether fcntl lock supports open file description locks: OK Checking whether fcntl lock supports open file description locks: OK
Checking for a 64-bit host to support lmdb: NO

View File

@ -38,3 +38,4 @@ Checking for small off_t: NO
Checking whether blkcnt_t is 32 bit: NO Checking whether blkcnt_t is 32 bit: NO
Checking whether blkcnt_t is 64 bit: OK Checking whether blkcnt_t is 64 bit: OK
Checking whether fcntl lock supports open file description locks: OK Checking whether fcntl lock supports open file description locks: OK
Checking for a 64-bit host to support lmdb: NO

View File

@ -38,3 +38,4 @@ Checking for small off_t: NO
Checking whether blkcnt_t is 32 bit: NO Checking whether blkcnt_t is 32 bit: NO
Checking whether blkcnt_t is 64 bit: OK Checking whether blkcnt_t is 64 bit: OK
Checking whether fcntl lock supports open file description locks: OK Checking whether fcntl lock supports open file description locks: OK
Checking for a 64-bit host to support lmdb: NO

View File

@ -38,3 +38,4 @@ Checking for small off_t: NO
Checking whether blkcnt_t is 32 bit: NO Checking whether blkcnt_t is 32 bit: NO
Checking whether blkcnt_t is 64 bit: OK Checking whether blkcnt_t is 64 bit: OK
Checking whether fcntl lock supports open file description locks: OK Checking whether fcntl lock supports open file description locks: OK
Checking for a 64-bit host to support lmdb: NO

View File

@ -38,3 +38,4 @@ Checking for small off_t: NO
Checking whether blkcnt_t is 32 bit: NO Checking whether blkcnt_t is 32 bit: NO
Checking whether blkcnt_t is 64 bit: OK Checking whether blkcnt_t is 64 bit: OK
Checking whether fcntl lock supports open file description locks: OK Checking whether fcntl lock supports open file description locks: OK
Checking for a 64-bit host to support lmdb: NO

View File

@ -37,3 +37,4 @@ Checking for small off_t: NO
Checking whether blkcnt_t is 32 bit: NO Checking whether blkcnt_t is 32 bit: NO
Checking whether blkcnt_t is 64 bit: OK Checking whether blkcnt_t is 64 bit: OK
Checking whether fcntl lock supports open file description locks: OK Checking whether fcntl lock supports open file description locks: OK
Checking for a 64-bit host to support lmdb: OK

View File

@ -37,3 +37,4 @@ Checking for small off_t: NO
Checking whether blkcnt_t is 32 bit: NO Checking whether blkcnt_t is 32 bit: NO
Checking whether blkcnt_t is 64 bit: OK Checking whether blkcnt_t is 64 bit: OK
Checking whether fcntl lock supports open file description locks: OK Checking whether fcntl lock supports open file description locks: OK
Checking for a 64-bit host to support lmdb: OK

View File

@ -38,3 +38,4 @@ Checking for small off_t: NO
Checking whether blkcnt_t is 32 bit: NO Checking whether blkcnt_t is 32 bit: NO
Checking whether blkcnt_t is 64 bit: OK Checking whether blkcnt_t is 64 bit: OK
Checking whether fcntl lock supports open file description locks: OK Checking whether fcntl lock supports open file description locks: OK
Checking for a 64-bit host to support lmdb: NO

View File

@ -38,3 +38,4 @@ Checking for small off_t: NO
Checking whether blkcnt_t is 32 bit: NO Checking whether blkcnt_t is 32 bit: NO
Checking whether blkcnt_t is 64 bit: OK Checking whether blkcnt_t is 64 bit: OK
Checking whether fcntl lock supports open file description locks: OK Checking whether fcntl lock supports open file description locks: OK
Checking for a 64-bit host to support lmdb: NO

View File

@ -38,3 +38,4 @@ Checking for small off_t: NO
Checking whether blkcnt_t is 32 bit: NO Checking whether blkcnt_t is 32 bit: NO
Checking whether blkcnt_t is 64 bit: OK Checking whether blkcnt_t is 64 bit: OK
Checking whether fcntl lock supports open file description locks: OK Checking whether fcntl lock supports open file description locks: OK
Checking for a 64-bit host to support lmdb: OK

View File

@ -37,3 +37,4 @@ Checking for small off_t: NO
Checking whether blkcnt_t is 32 bit: NO Checking whether blkcnt_t is 32 bit: NO
Checking whether blkcnt_t is 64 bit: OK Checking whether blkcnt_t is 64 bit: OK
Checking whether fcntl lock supports open file description locks: OK Checking whether fcntl lock supports open file description locks: OK
Checking for a 64-bit host to support lmdb: OK

View File

@ -37,3 +37,4 @@ Checking for small off_t: NO
Checking whether blkcnt_t is 32 bit: NO Checking whether blkcnt_t is 32 bit: NO
Checking whether blkcnt_t is 64 bit: OK Checking whether blkcnt_t is 64 bit: OK
Checking whether fcntl lock supports open file description locks: OK Checking whether fcntl lock supports open file description locks: OK
Checking for a 64-bit host to support lmdb: OK

View File

@ -1,87 +0,0 @@
From bc4ff7e37ce120c257e52a81fe3475499dfd2573 Mon Sep 17 00:00:00 2001
From: Changqing Li <changqing.li@windriver.com>
Date: Tue, 24 Jul 2018 10:10:24 +0800
Subject: [PATCH] libldb: fix config error
Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
wscript | 58 +++++++++++++++++++++++++++++-----------------------------
1 file changed, 29 insertions(+), 29 deletions(-)
diff --git a/wscript b/wscript
index b0af7b6..8ad9f96 100644
--- a/wscript
+++ b/wscript
@@ -115,40 +115,40 @@ def configure(conf):
onlyif='talloc tdb tevent pyldb-util',
implied_deps='replace talloc tdb tevent'):
conf.define('USING_SYSTEM_LDB', 1)
+ if not Options.options.without_ldb_lmdb:
+ if not conf.CHECK_CODE('return !(sizeof(size_t) >= 8)',
+ "HAVE_64_BIT_SIZE_T_FOR_LMDB",
+ execute=True,
+ msg='Checking for a 64-bit host to '
+ 'support lmdb'):
+ Logs.warn("--without-ldb-lmdb implied as this "
+ "host is not 64-bit")
+
+ if not conf.env.standalone_ldb and \
+ not Options.options.without_ad_dc and \
+ conf.CONFIG_GET('ENABLE_SELFTEST'):
+ Logs.warn("NOTE: Some AD DC parts of selftest will fail")
- if not conf.CHECK_CODE('return !(sizeof(size_t) >= 8)',
- "HAVE_64_BIT_SIZE_T_FOR_LMDB",
- execute=True,
- msg='Checking for a 64-bit host to '
- 'support lmdb'):
- Logs.warn("--without-ldb-lmdb implied as this "
- "host is not 64-bit")
-
- if not conf.env.standalone_ldb and \
- not Options.options.without_ad_dc and \
- conf.CONFIG_GET('ENABLE_SELFTEST'):
- Logs.warn("NOTE: Some AD DC parts of selftest will fail")
-
- conf.env.REQUIRE_LMDB = False
- else:
- if conf.env.standalone_ldb:
- if Options.options.without_ldb_lmdb:
- conf.env.REQUIRE_LMDB = False
- else:
- conf.env.REQUIRE_LMDB = True
- elif Options.options.without_ad_dc:
conf.env.REQUIRE_LMDB = False
else:
- if Options.options.without_ldb_lmdb:
- if not Options.options.without_ad_dc and \
- conf.CONFIG_GET('ENABLE_SELFTEST'):
- raise Utils.WafError('--without-ldb-lmdb conflicts '
- 'with --enable-selftest while '
- 'building the AD DC')
-
+ if conf.env.standalone_ldb:
+ if Options.options.without_ldb_lmdb:
+ conf.env.REQUIRE_LMDB = False
+ else:
+ conf.env.REQUIRE_LMDB = True
+ elif Options.options.without_ad_dc:
conf.env.REQUIRE_LMDB = False
else:
- conf.env.REQUIRE_LMDB = True
+ if Options.options.without_ldb_lmdb:
+ if not Options.options.without_ad_dc and \
+ conf.CONFIG_GET('ENABLE_SELFTEST'):
+ raise Utils.WafError('--without-ldb-lmdb conflicts '
+ 'with --enable-selftest while '
+ 'building the AD DC')
+
+ conf.env.REQUIRE_LMDB = False
+ else:
+ conf.env.REQUIRE_LMDB = True
if conf.CONFIG_SET('USING_SYSTEM_LDB'):
--
2.7.4

View File

@ -0,0 +1,62 @@
From 4b8463ff43f8983a706b181c5292491f9f954be1 Mon Sep 17 00:00:00 2001
From: Changqing Li <changqing.li@windriver.com>
Date: Fri, 25 Jan 2019 15:00:59 +0800
Subject: [PATCH] waf: add support of cross_compile
After upgrade, waf build system also upgraded.
on 1.5.19, for cross_compile, subprocess.Popen is set to be
samba_cross.cross_Popen, which will not execute testprog on
host, but only read result from cross-answers.txt which is
passed by option --cross-answer
part of old code:
args = Utils.to_list(kw.get('exec_args', []))
proc = Utils.pproc.Popen([lastprog] + args, stdout=Utils.pproc.PIPE, stderr=Utils.pproc.PIPE)
but on new version, exec_args is not used and cause do_configure
failed with Exec format error
fixed by append cross anser related args to cmd
Upstream-Status: Submitted [https://gitlab.com/samba-team/samba/merge_requests/211]
Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
third_party/waf/waflib/Tools/c_config.py | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/third_party/waf/waflib/Tools/c_config.py b/third_party/waf/waflib/Tools/c_config.py
index 7608215..767cf33 100644
--- a/third_party/waf/waflib/Tools/c_config.py
+++ b/third_party/waf/waflib/Tools/c_config.py
@@ -660,20 +660,21 @@ class test_exec(Task.Task):
"""
color = 'PINK'
def run(self):
+ args = self.generator.bld.kw.get('exec_args', [])
if getattr(self.generator, 'rpath', None):
if getattr(self.generator, 'define_ret', False):
- self.generator.bld.retval = self.generator.bld.cmd_and_log([self.inputs[0].abspath()])
- else:
- self.generator.bld.retval = self.generator.bld.exec_command([self.inputs[0].abspath()])
+ self.generator.bld.retval = self.generator.bld.cmd_and_log([self.inputs[0].abspath()] + args)
+ else:
+ self.generator.bld.retval = self.generator.bld.exec_command([self.inputs[0].abspath()] + args)
else:
env = self.env.env or {}
env.update(dict(os.environ))
for var in ('LD_LIBRARY_PATH', 'DYLD_LIBRARY_PATH', 'PATH'):
env[var] = self.inputs[0].parent.abspath() + os.path.pathsep + env.get(var, '')
if getattr(self.generator, 'define_ret', False):
- self.generator.bld.retval = self.generator.bld.cmd_and_log([self.inputs[0].abspath()], env=env)
+ self.generator.bld.retval = self.generator.bld.cmd_and_log([self.inputs[0].abspath()] + args, env=env)
else:
- self.generator.bld.retval = self.generator.bld.exec_command([self.inputs[0].abspath()], env=env)
+ self.generator.bld.retval = self.generator.bld.exec_command([self.inputs[0].abspath()] + args, env=env)
@feature('test_exec')
@after_method('apply_link')
--
2.7.4

View File

@ -1,30 +1,32 @@
From f4cda3a71311e4496b725bc5f46af93413ec7a1c Mon Sep 17 00:00:00 2001 From cc0576405803bcae45ee353c4333c449cead9207 Mon Sep 17 00:00:00 2001
From: Bian Naimeng <biannm@cn.fujitsu.com> From: Changqing Li <changqing.li@windriver.com>
Date: Fri, 17 Jul 2015 11:58:49 +0800 Date: Tue, 25 Jun 2019 14:25:08 +0800
Subject: [PATCH] libldb: add new recipe Subject: [PATCH] do not import target module while cross compile
Some modules such as dynamic library maybe cann't be imported while cross compile, Some modules such as dynamic library maybe cann't be imported
we just check whether does the module exist. while cross compile, we just check whether does the module exist.
Signed-off-by: Bian Naimeng <biannm@cn.fujitsu.com> Signed-off-by: Bian Naimeng <biannm@cn.fujitsu.com>
update to version 4.10.5, and switch to python3
Signed-off-by: Changqing Li <changqing.li@windriver.com>
--- ---
buildtools/wafsamba/samba_bundled.py | 32 ++++++++++++++++++++++++-------- buildtools/wafsamba/samba_bundled.py | 27 +++++++++++++++++++--------
1 file changed, 24 insertions(+), 8 deletions(-) 1 file changed, 18 insertions(+), 8 deletions(-)
diff --git a/buildtools/wafsamba/samba_bundled.py b/buildtools/wafsamba/samba_bundled.py diff --git a/buildtools/wafsamba/samba_bundled.py b/buildtools/wafsamba/samba_bundled.py
index 253d604..398cc6a 100644 index 60ce7da..5468a36 100644
--- a/buildtools/wafsamba/samba_bundled.py --- a/buildtools/wafsamba/samba_bundled.py
+++ b/buildtools/wafsamba/samba_bundled.py +++ b/buildtools/wafsamba/samba_bundled.py
@@ -2,6 +2,7 @@ @@ -4,6 +4,7 @@ import sys
from waflib import Build, Options, Logs
from waflib.Configure import conf
from wafsamba import samba_utils
+import importlib.util, os
import sys def PRIVATE_NAME(bld, name, private_extension, private_library):
import Build, Options, Logs '''possibly rename a library to include a bundled extension'''
+import imp, os @@ -249,17 +250,27 @@ def CHECK_BUNDLED_SYSTEM_PYTHON(conf, libname, modulename, minversion='0.0.0'):
from Configure import conf
from samba_utils import TO_LIST
@@ -249,17 +250,32 @@ def CHECK_BUNDLED_SYSTEM_PYTHON(conf, libname, modulename, minversion='0.0.0'):
# versions # versions
minversion = minimum_library_version(conf, libname, minversion) minversion = minimum_library_version(conf, libname, minversion)
@ -34,34 +36,32 @@ index 253d604..398cc6a 100644
- found = False - found = False
- else: - else:
+ # Find module in PYTHONPATH + # Find module in PYTHONPATH
+ stuff = imp.find_module(modulename, [os.environ["PYTHONPATH"]]) + spec = importlib.util._find_spec_from_path(modulename, [os.environ["PYTHONPATH"]])
+ if stuff: + if spec:
try: try:
- version = m.__version__ - version = m.__version__
- except AttributeError: - except AttributeError:
+ m = imp.load_module(modulename, stuff[0], stuff[1], stuff[2]) + module = importlib.util.module_from_spec(spec)
+ spec.loader.load_module(module)
+ except ImportError: + except ImportError:
found = False found = False
+ +
+ if conf.env.CROSS_COMPILE: + if conf.env.CROSS_COMPILE:
+ # Some modules such as dynamic library maybe cann't be imported + # Some modules such as dynamic library maybe cann't be imported
+ # while cross compile, we just check whether the module exist + # while cross compile, we just check whether the module exist
+ Logs.warn('Cross module[%s] has been found, but can not be loaded.' % (stuff[1])) + Logs.warn('Cross module[%s] has been found, but can not be loaded.' % (spec.name))
+ found = True + found = True
else: else:
- found = tuplize_version(version) >= tuplize_version(minversion) - found = tuplize_version(version) >= tuplize_version(minversion)
+ try: + try:
+ version = m.__version__ + version = module.__version__
+ except AttributeError: + except AttributeError:
+ found = False + found = False
+ else: + else:
+ found = tuplize_version(version) >= tuplize_version(minversion) + found = tuplize_version(version) >= tuplize_version(minversion)
+ finally:
+ if stuff[0]:
+ stuff[0].close()
+ else:
+ found = False
+
if not found and not conf.LIB_MAY_BE_BUNDLED(libname): if not found and not conf.LIB_MAY_BE_BUNDLED(libname):
Logs.error('ERROR: Python module %s of version %s not found, and bundling disabled' % (libname, minversion)) Logs.error('ERROR: Python module %s of version %s not found, and bundling disabled' % (libname, minversion))
sys.exit(1) sys.exit(1)
--
2.7.4

View File

@ -1,6 +1,6 @@
From ffffd29bc6303d60b3d77048fbbf6776f6fbbe01 Mon Sep 17 00:00:00 2001 From 0841c3ed69c388251c1aeae63f2c3813555a54f6 Mon Sep 17 00:00:00 2001
From: Changqing Li <changqing.li@windriver.com> From: Changqing Li <changqing.li@windriver.com>
Date: Thu, 19 Jul 2018 16:40:31 +0800 Date: Mon, 1 Jul 2019 16:14:16 +0800
Subject: [PATCH] ldb: Add configure options for packages Subject: [PATCH] ldb: Add configure options for packages
Add configure options for the following packages: Add configure options for the following packages:
@ -15,27 +15,22 @@ Upstream-Status: Inappropriate [oe deterministic build specific]
Signed-off-by: Jackie Huang <jackie.huang@windriver.com> Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
Update to version 1.4.1, and fix one configure error upgrade to version 1.5.4
Cross answers file cross-answers-i586.txt is incomplete with
"Checking for a 64-bit host to support lmdb: UNKNOWN"
we don't support lmdb, so only check when lmdb is support
Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Changqing Li <changqing.li@windriver.com>
--- ---
lib/replace/wscript | 94 ++++++++++++++++++++++++++++++++++++++++------------- lib/replace/wscript | 92 +++++++++++++++++++++++++++++++++++++++++------------
wscript | 6 ++++ wscript | 8 +++++
2 files changed, 77 insertions(+), 23 deletions(-) 2 files changed, 79 insertions(+), 21 deletions(-)
diff --git a/lib/replace/wscript b/lib/replace/wscript diff --git a/lib/replace/wscript b/lib/replace/wscript
index fd00a42..434192e 100644 index a7fd25d..ad26041 100644
--- a/lib/replace/wscript --- a/lib/replace/wscript
+++ b/lib/replace/wscript +++ b/lib/replace/wscript
@@ -23,6 +23,41 @@ def set_options(opt): @@ -24,6 +24,41 @@ def options(opt):
opt.BUILTIN_DEFAULT('NONE')
opt.PRIVATE_EXTENSION_DEFAULT('') opt.PRIVATE_EXTENSION_DEFAULT('')
opt.RECURSE('buildtools/wafsamba') opt.RECURSE('buildtools/wafsamba')
+
+ opt.add_option('--with-acl', + opt.add_option('--with-acl',
+ help=("Enable use of acl"), + help=("Enable use of acl"),
+ action="store_true", dest='enable_acl') + action="store_true", dest='enable_acl')
@ -70,11 +65,10 @@ index fd00a42..434192e 100644
+ opt.add_option('--without-libcap', + opt.add_option('--without-libcap',
+ help=("Disable use of libcap"), + help=("Disable use of libcap"),
+ action="store_false", dest='enable_libcap', default=False) + action="store_false", dest='enable_libcap', default=False)
+
@Utils.run_once @Utils.run_once
def configure(conf): def configure(conf):
conf.RECURSE('buildtools/wafsamba') @@ -34,12 +69,25 @@ def configure(conf):
@@ -32,12 +67,25 @@ def configure(conf):
conf.DEFINE('HAVE_LIBREPLACE', 1) conf.DEFINE('HAVE_LIBREPLACE', 1)
conf.DEFINE('LIBREPLACE_NETWORK_CHECKS', 1) conf.DEFINE('LIBREPLACE_NETWORK_CHECKS', 1)
@ -105,23 +99,22 @@ index fd00a42..434192e 100644
conf.CHECK_HEADERS('port.h') conf.CHECK_HEADERS('port.h')
conf.CHECK_HEADERS('sys/fcntl.h sys/filio.h sys/filsys.h sys/fs/s5param.h sys/fs/vx/quota.h') conf.CHECK_HEADERS('sys/fcntl.h sys/filio.h sys/filsys.h sys/fs/s5param.h sys/fs/vx/quota.h')
conf.CHECK_HEADERS('sys/id.h sys/ioctl.h sys/ipc.h sys/mman.h sys/mode.h sys/ndir.h sys/priv.h') conf.CHECK_HEADERS('sys/id.h sys/ioctl.h sys/ipc.h sys/mman.h sys/mode.h sys/ndir.h sys/priv.h')
@@ -108,7 +156,9 @@ def configure(conf): @@ -110,8 +158,9 @@ def configure(conf):
conf.CHECK_HEADERS('sys/fileio.h sys/filesys.h sys/dustat.h sys/sysmacros.h') conf.CHECK_HEADERS('sys/fileio.h sys/filesys.h sys/dustat.h sys/sysmacros.h')
conf.CHECK_HEADERS('xfs/libxfs.h netgroup.h') conf.CHECK_HEADERS('xfs/libxfs.h netgroup.h')
- conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h valgrind/memcheck.h') - conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h')
- conf.CHECK_HEADERS('valgrind/memcheck.h valgrind/helgrind.h')
+ if Options.options.enable_valgrind: + if Options.options.enable_valgrind:
+ conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h valgrind/memcheck.h') + conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h')
+ + conf.CHECK_HEADERS('valgrind/memcheck.h valgrind/helgrind.h')
conf.CHECK_HEADERS('nss_common.h nsswitch.h ns_api.h') conf.CHECK_HEADERS('nss_common.h nsswitch.h ns_api.h')
conf.CHECK_HEADERS('sys/extattr.h sys/ea.h sys/proplist.h sys/cdefs.h') conf.CHECK_HEADERS('sys/extattr.h sys/ea.h sys/proplist.h sys/cdefs.h')
conf.CHECK_HEADERS('utmp.h utmpx.h lastlog.h') conf.CHECK_HEADERS('utmp.h utmpx.h lastlog.h')
@@ -340,22 +390,20 @@ def configure(conf): @@ -380,20 +429,21 @@ def configure(conf):
conf.CHECK_FUNCS('prctl dirname basename') strlcpy_in_bsd = False
- strlcpy_in_bsd = False
-
- # libbsd on some platforms provides strlcpy and strlcat - # libbsd on some platforms provides strlcpy and strlcat
- if not conf.CHECK_FUNCS('strlcpy strlcat'): - if not conf.CHECK_FUNCS('strlcpy strlcat'):
- if conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h', - if conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h',
@ -139,8 +132,9 @@ index fd00a42..434192e 100644
+ if Options.options.enable_libbsd: + if Options.options.enable_libbsd:
+ # libbsd on some platforms provides strlcpy and strlcat + # libbsd on some platforms provides strlcpy and strlcat
+ if not conf.CHECK_FUNCS('strlcpy strlcat'): + if not conf.CHECK_FUNCS('strlcpy strlcat'):
+ conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h', + if conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h',
+ checklibc=True) + checklibc=True):
+ strlcpy_in_bsd = True
+ if not conf.CHECK_FUNCS('getpeereid'): + if not conf.CHECK_FUNCS('getpeereid'):
+ conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h') + conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h')
+ if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h'): + if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h'):
@ -153,20 +147,11 @@ index fd00a42..434192e 100644
conf.CHECK_CODE(''' conf.CHECK_CODE('''
struct ucred cred; struct ucred cred;
@@ -699,7 +747,7 @@ def configure(conf):
# look for a method of finding the list of network interfaces
for method in ['HAVE_IFACE_GETIFADDRS', 'HAVE_IFACE_AIX', 'HAVE_IFACE_IFCONF', 'HAVE_IFACE_IFREQ']:
bsd_for_strlcpy = ''
- if strlcpy_in_bsd:
+ if Options.options.enable_libbsd:
bsd_for_strlcpy = ' bsd'
if conf.CHECK_CODE('''
#define %s 1
diff --git a/wscript b/wscript diff --git a/wscript b/wscript
index ad91bc6..2d20fee 100644 index d3402a7..d4e0ce1 100644
--- a/wscript --- a/wscript
+++ b/wscript +++ b/wscript
@@ -36,6 +36,12 @@ def set_options(opt): @@ -38,6 +38,14 @@ def options(opt):
help='disable new LMDB backend for LDB', help='disable new LMDB backend for LDB',
action='store_true', dest='without_ldb_lmdb', default=False) action='store_true', dest='without_ldb_lmdb', default=False)
@ -176,6 +161,8 @@ index ad91bc6..2d20fee 100644
+ opt.add_option('--without-valgrind', + opt.add_option('--without-valgrind',
+ help=("disable use of valgrind"), + help=("disable use of valgrind"),
+ action="store_false", dest='enable_valgrind', default=False) + action="store_false", dest='enable_valgrind', default=False)
+
+
def configure(conf): def configure(conf):
conf.RECURSE('lib/tdb') conf.RECURSE('lib/tdb')

View File

@ -4,16 +4,14 @@ SECTION = "libs"
LICENSE = "LGPL-3.0+ & LGPL-2.1+ & GPL-3.0+" LICENSE = "LGPL-3.0+ & LGPL-2.1+ & GPL-3.0+"
DEPENDS += "libtdb libtalloc libtevent popt" DEPENDS += "libtdb libtalloc libtevent popt"
RDEPENDS_pyldb += "python samba" RDEPENDS_pyldb += "python3"
RCONFLICTS_${PN} = "samba"
RCONFLICTS_pyldb = "samba-python"
SRC_URI = "http://samba.org/ftp/ldb/ldb-${PV}.tar.gz \ SRC_URI = "http://samba.org/ftp/ldb/ldb-${PV}.tar.gz \
file://do-not-import-target-module-while-cross-compile.patch \ file://do-not-import-target-module-while-cross-compile.patch \
file://options-1.4.1.patch \
file://0001-libldb-fix-config-error.patch \
file://libldb-fix-musl-libc-unkown-type-error.patch \ file://libldb-fix-musl-libc-unkown-type-error.patch \
file://libldb-fix-musl-libc-conflict-type-error.patch \ file://libldb-fix-musl-libc-conflict-type-error.patch \
file://0001-waf-add-support-of-cross_compile.patch \
file://options-1.5.4.patch \
" "
PACKAGECONFIG ??= "\ PACKAGECONFIG ??= "\
@ -27,6 +25,7 @@ PACKAGECONFIG[libaio] = "--with-libaio,--without-libaio,libaio"
PACKAGECONFIG[libbsd] = "--with-libbsd,--without-libbsd,libbsd" PACKAGECONFIG[libbsd] = "--with-libbsd,--without-libbsd,libbsd"
PACKAGECONFIG[libcap] = "--with-libcap,--without-libcap,libcap" PACKAGECONFIG[libcap] = "--with-libcap,--without-libcap,libcap"
PACKAGECONFIG[valgrind] = "--with-valgrind,--without-valgrind,valgrind" PACKAGECONFIG[valgrind] = "--with-valgrind,--without-valgrind,valgrind"
PACKAGECONFIG[lmdb] = ",--without-ldb-lmdb,lmdb,"
SRC_URI += "${@bb.utils.contains('PACKAGECONFIG', 'ldap', '', 'file://avoid-openldap-unless-wanted.patch', d)}" SRC_URI += "${@bb.utils.contains('PACKAGECONFIG', 'ldap', '', 'file://avoid-openldap-unless-wanted.patch', d)}"
@ -34,14 +33,18 @@ LIC_FILES_CHKSUM = "file://pyldb.h;endline=24;md5=dfbd238cecad76957f7f860fbe9ada
file://man/ldb.3.xml;beginline=261;endline=262;md5=137f9fd61040c1505d1aa1019663fd08 \ file://man/ldb.3.xml;beginline=261;endline=262;md5=137f9fd61040c1505d1aa1019663fd08 \
file://tools/ldbdump.c;endline=19;md5=a7d4fc5d1f75676b49df491575a86a42" file://tools/ldbdump.c;endline=19;md5=a7d4fc5d1f75676b49df491575a86a42"
SRC_URI[md5sum] = "159a1b1a56dcccf410d1bba911be6076" SRC_URI[md5sum] = "24d9f18b085ba27f96d4dec643abea39"
SRC_URI[sha256sum] = "2df13aa25b376b314ce24182c37691959019523de3cc5356c40c1a333b0890a2" SRC_URI[sha256sum] = "db5beea64e305ef002a28fc6b6ca8e42b5fbee268bd713ff41e76c56a0a071d3"
inherit waf-samba distro_features_check inherit waf-samba distro_features_check
REQUIRED_DISTRO_FEATURES = "pam" REQUIRED_DISTRO_FEATURES = "pam"
S = "${WORKDIR}/ldb-${PV}" S = "${WORKDIR}/ldb-${PV}"
#cross_compile cannot use preforked process, since fork process earlier than point subproces.popen
#to cross Popen
export WAF_NO_PREFORK="yes"
EXTRA_OECONF += "--disable-rpath \ EXTRA_OECONF += "--disable-rpath \
--disable-rpath-install \ --disable-rpath-install \
--bundled-libraries=cmocka \ --bundled-libraries=cmocka \
@ -49,7 +52,6 @@ EXTRA_OECONF += "--disable-rpath \
--with-modulesdir=${libdir}/ldb/modules \ --with-modulesdir=${libdir}/ldb/modules \
--with-privatelibdir=${libdir}/ldb \ --with-privatelibdir=${libdir}/ldb \
--with-libiconv=${STAGING_DIR_HOST}${prefix}\ --with-libiconv=${STAGING_DIR_HOST}${prefix}\
--without-ldb-lmdb \
" "
PACKAGES =+ "pyldb pyldb-dbg pyldb-dev" PACKAGES =+ "pyldb pyldb-dbg pyldb-dev"
@ -63,8 +65,8 @@ FILES_${PN}-dbg += "${bindir}/.debug/* \
${libdir}/ldb/modules/ldb/.debug/*" ${libdir}/ldb/modules/ldb/.debug/*"
FILES_pyldb = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/* \ FILES_pyldb = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/* \
${libdir}/libpyldb-util.so.* \ ${libdir}/libpyldb-util.*.so.* \
" "
FILES_pyldb-dbg = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/.debug \ FILES_pyldb-dbg = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/.debug \
${libdir}/.debug/libpyldb-util.so.*" ${libdir}/.debug/libpyldb-util.*.so.*"
FILES_pyldb-dev = "${libdir}/libpyldb-util.so" FILES_pyldb-dev = "${libdir}/libpyldb-util.*.so"