[oe] [meta-networking][PATCH 2/6 V2] libldb: upgrade 1.4.1 -> 1.5.4

Khem Raj raj.khem at gmail.com
Tue Jul 9 18:16:04 UTC 2019


there is another patch to upgrade to 1.6.3 I will take that

On Mon, Jul 1, 2019 at 6:58 PM <changqing.li at windriver.com> wrote:
>
> From: Changqing Li <changqing.li at windriver.com>
>
> 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 at windriver.com>
> ---
>  .../waf-cross-answers/cross-answers-aarch64.txt    |  1 +
>  .../waf-cross-answers/cross-answers-aarch64_be.txt |  1 +
>  .../files/waf-cross-answers/cross-answers-arm.txt  |  1 +
>  .../waf-cross-answers/cross-answers-armeb.txt      |  1 +
>  .../files/waf-cross-answers/cross-answers-i586.txt |  1 +
>  .../files/waf-cross-answers/cross-answers-i686.txt |  1 +
>  .../files/waf-cross-answers/cross-answers-mips.txt |  1 +
>  .../waf-cross-answers/cross-answers-mips64.txt     |  1 +
>  .../waf-cross-answers/cross-answers-mips64el.txt   |  1 +
>  .../waf-cross-answers/cross-answers-mipsel.txt     |  1 +
>  .../waf-cross-answers/cross-answers-powerpc.txt    |  1 +
>  .../waf-cross-answers/cross-answers-powerpc64.txt  |  1 +
>  .../waf-cross-answers/cross-answers-riscv64.txt    |  1 +
>  .../waf-cross-answers/cross-answers-x86_64.txt     |  1 +
>  .../libldb/0001-libldb-fix-config-error.patch      | 87 ----------------------
>  .../0001-waf-add-support-of-cross_compile.patch    | 62 +++++++++++++++
>  ...-import-target-module-while-cross-compile.patch | 56 +++++++-------
>  .../{options-1.4.1.patch => options-1.5.4.patch}   | 67 +++++++----------
>  .../libldb/{libldb_1.4.1.bb => libldb_1.5.4.bb}    | 24 +++---
>  19 files changed, 144 insertions(+), 166 deletions(-)
>  delete mode 100644 meta-networking/recipes-support/libldb/libldb/0001-libldb-fix-config-error.patch
>  create mode 100644 meta-networking/recipes-support/libldb/libldb/0001-waf-add-support-of-cross_compile.patch
>  rename meta-networking/recipes-support/libldb/libldb/{options-1.4.1.patch => options-1.5.4.patch} (79%)
>  rename meta-networking/recipes-support/libldb/{libldb_1.4.1.bb => libldb_1.5.4.bb} (79%)
>
> diff --git a/meta-networking/files/waf-cross-answers/cross-answers-aarch64.txt b/meta-networking/files/waf-cross-answers/cross-answers-aarch64.txt
> index 1023f6a..fc0400d 100644
> --- a/meta-networking/files/waf-cross-answers/cross-answers-aarch64.txt
> +++ b/meta-networking/files/waf-cross-answers/cross-answers-aarch64.txt
> @@ -37,3 +37,4 @@ Checking for small off_t: NO
>  Checking whether blkcnt_t is 32 bit: NO
>  Checking whether blkcnt_t is 64 bit: OK
>  Checking whether fcntl lock supports open file description locks: OK
> +Checking for a 64-bit host to support lmdb: OK
> diff --git a/meta-networking/files/waf-cross-answers/cross-answers-aarch64_be.txt b/meta-networking/files/waf-cross-answers/cross-answers-aarch64_be.txt
> index 1023f6a..fc0400d 100644
> --- a/meta-networking/files/waf-cross-answers/cross-answers-aarch64_be.txt
> +++ b/meta-networking/files/waf-cross-answers/cross-answers-aarch64_be.txt
> @@ -37,3 +37,4 @@ Checking for small off_t: NO
>  Checking whether blkcnt_t is 32 bit: NO
>  Checking whether blkcnt_t is 64 bit: OK
>  Checking whether fcntl lock supports open file description locks: OK
> +Checking for a 64-bit host to support lmdb: OK
> diff --git a/meta-networking/files/waf-cross-answers/cross-answers-arm.txt b/meta-networking/files/waf-cross-answers/cross-answers-arm.txt
> index a5cd998..759afe8 100644
> --- a/meta-networking/files/waf-cross-answers/cross-answers-arm.txt
> +++ b/meta-networking/files/waf-cross-answers/cross-answers-arm.txt
> @@ -38,3 +38,4 @@ Checking for small off_t: NO
>  Checking whether blkcnt_t is 32 bit: NO
>  Checking whether blkcnt_t is 64 bit: OK
>  Checking whether fcntl lock supports open file description locks: OK
> +Checking for a 64-bit host to support lmdb: NO
> diff --git a/meta-networking/files/waf-cross-answers/cross-answers-armeb.txt b/meta-networking/files/waf-cross-answers/cross-answers-armeb.txt
> index a5cd998..759afe8 100644
> --- a/meta-networking/files/waf-cross-answers/cross-answers-armeb.txt
> +++ b/meta-networking/files/waf-cross-answers/cross-answers-armeb.txt
> @@ -38,3 +38,4 @@ Checking for small off_t: NO
>  Checking whether blkcnt_t is 32 bit: NO
>  Checking whether blkcnt_t is 64 bit: OK
>  Checking whether fcntl lock supports open file description locks: OK
> +Checking for a 64-bit host to support lmdb: NO
> diff --git a/meta-networking/files/waf-cross-answers/cross-answers-i586.txt b/meta-networking/files/waf-cross-answers/cross-answers-i586.txt
> index a5cd998..759afe8 100644
> --- a/meta-networking/files/waf-cross-answers/cross-answers-i586.txt
> +++ b/meta-networking/files/waf-cross-answers/cross-answers-i586.txt
> @@ -38,3 +38,4 @@ Checking for small off_t: NO
>  Checking whether blkcnt_t is 32 bit: NO
>  Checking whether blkcnt_t is 64 bit: OK
>  Checking whether fcntl lock supports open file description locks: OK
> +Checking for a 64-bit host to support lmdb: NO
> diff --git a/meta-networking/files/waf-cross-answers/cross-answers-i686.txt b/meta-networking/files/waf-cross-answers/cross-answers-i686.txt
> index a5cd998..759afe8 100644
> --- a/meta-networking/files/waf-cross-answers/cross-answers-i686.txt
> +++ b/meta-networking/files/waf-cross-answers/cross-answers-i686.txt
> @@ -38,3 +38,4 @@ Checking for small off_t: NO
>  Checking whether blkcnt_t is 32 bit: NO
>  Checking whether blkcnt_t is 64 bit: OK
>  Checking whether fcntl lock supports open file description locks: OK
> +Checking for a 64-bit host to support lmdb: NO
> diff --git a/meta-networking/files/waf-cross-answers/cross-answers-mips.txt b/meta-networking/files/waf-cross-answers/cross-answers-mips.txt
> index 3e239e7..c989f27 100644
> --- a/meta-networking/files/waf-cross-answers/cross-answers-mips.txt
> +++ b/meta-networking/files/waf-cross-answers/cross-answers-mips.txt
> @@ -38,3 +38,4 @@ Checking for small off_t: NO
>  Checking whether blkcnt_t is 32 bit: NO
>  Checking whether blkcnt_t is 64 bit: OK
>  Checking whether fcntl lock supports open file description locks: OK
> +Checking for a 64-bit host to support lmdb: NO
> diff --git a/meta-networking/files/waf-cross-answers/cross-answers-mips64.txt b/meta-networking/files/waf-cross-answers/cross-answers-mips64.txt
> index 82e694f..215f574 100644
> --- a/meta-networking/files/waf-cross-answers/cross-answers-mips64.txt
> +++ b/meta-networking/files/waf-cross-answers/cross-answers-mips64.txt
> @@ -37,3 +37,4 @@ Checking for small off_t: NO
>  Checking whether blkcnt_t is 32 bit: NO
>  Checking whether blkcnt_t is 64 bit: OK
>  Checking whether fcntl lock supports open file description locks: OK
> +Checking for a 64-bit host to support lmdb: OK
> diff --git a/meta-networking/files/waf-cross-answers/cross-answers-mips64el.txt b/meta-networking/files/waf-cross-answers/cross-answers-mips64el.txt
> index 82e694f..215f574 100644
> --- a/meta-networking/files/waf-cross-answers/cross-answers-mips64el.txt
> +++ b/meta-networking/files/waf-cross-answers/cross-answers-mips64el.txt
> @@ -37,3 +37,4 @@ Checking for small off_t: NO
>  Checking whether blkcnt_t is 32 bit: NO
>  Checking whether blkcnt_t is 64 bit: OK
>  Checking whether fcntl lock supports open file description locks: OK
> +Checking for a 64-bit host to support lmdb: OK
> diff --git a/meta-networking/files/waf-cross-answers/cross-answers-mipsel.txt b/meta-networking/files/waf-cross-answers/cross-answers-mipsel.txt
> index 3e239e7..c989f27 100644
> --- a/meta-networking/files/waf-cross-answers/cross-answers-mipsel.txt
> +++ b/meta-networking/files/waf-cross-answers/cross-answers-mipsel.txt
> @@ -38,3 +38,4 @@ Checking for small off_t: NO
>  Checking whether blkcnt_t is 32 bit: NO
>  Checking whether blkcnt_t is 64 bit: OK
>  Checking whether fcntl lock supports open file description locks: OK
> +Checking for a 64-bit host to support lmdb: NO
> diff --git a/meta-networking/files/waf-cross-answers/cross-answers-powerpc.txt b/meta-networking/files/waf-cross-answers/cross-answers-powerpc.txt
> index 27b9378..f107974 100644
> --- a/meta-networking/files/waf-cross-answers/cross-answers-powerpc.txt
> +++ b/meta-networking/files/waf-cross-answers/cross-answers-powerpc.txt
> @@ -38,3 +38,4 @@ Checking for small off_t: NO
>  Checking whether blkcnt_t is 32 bit: NO
>  Checking whether blkcnt_t is 64 bit: OK
>  Checking whether fcntl lock supports open file description locks: OK
> +Checking for a 64-bit host to support lmdb: NO
> diff --git a/meta-networking/files/waf-cross-answers/cross-answers-powerpc64.txt b/meta-networking/files/waf-cross-answers/cross-answers-powerpc64.txt
> index 7fd3092..7a443cc 100644
> --- a/meta-networking/files/waf-cross-answers/cross-answers-powerpc64.txt
> +++ b/meta-networking/files/waf-cross-answers/cross-answers-powerpc64.txt
> @@ -38,3 +38,4 @@ Checking for small off_t: NO
>  Checking whether blkcnt_t is 32 bit: NO
>  Checking whether blkcnt_t is 64 bit: OK
>  Checking whether fcntl lock supports open file description locks: OK
> +Checking for a 64-bit host to support lmdb: OK
> diff --git a/meta-networking/files/waf-cross-answers/cross-answers-riscv64.txt b/meta-networking/files/waf-cross-answers/cross-answers-riscv64.txt
> index 1023f6a..fc0400d 100644
> --- a/meta-networking/files/waf-cross-answers/cross-answers-riscv64.txt
> +++ b/meta-networking/files/waf-cross-answers/cross-answers-riscv64.txt
> @@ -37,3 +37,4 @@ Checking for small off_t: NO
>  Checking whether blkcnt_t is 32 bit: NO
>  Checking whether blkcnt_t is 64 bit: OK
>  Checking whether fcntl lock supports open file description locks: OK
> +Checking for a 64-bit host to support lmdb: OK
> diff --git a/meta-networking/files/waf-cross-answers/cross-answers-x86_64.txt b/meta-networking/files/waf-cross-answers/cross-answers-x86_64.txt
> index 1023f6a..fc0400d 100644
> --- a/meta-networking/files/waf-cross-answers/cross-answers-x86_64.txt
> +++ b/meta-networking/files/waf-cross-answers/cross-answers-x86_64.txt
> @@ -37,3 +37,4 @@ Checking for small off_t: NO
>  Checking whether blkcnt_t is 32 bit: NO
>  Checking whether blkcnt_t is 64 bit: OK
>  Checking whether fcntl lock supports open file description locks: OK
> +Checking for a 64-bit host to support lmdb: OK
> diff --git a/meta-networking/recipes-support/libldb/libldb/0001-libldb-fix-config-error.patch b/meta-networking/recipes-support/libldb/libldb/0001-libldb-fix-config-error.patch
> deleted file mode 100644
> index 5818d57..0000000
> --- a/meta-networking/recipes-support/libldb/libldb/0001-libldb-fix-config-error.patch
> +++ /dev/null
> @@ -1,87 +0,0 @@
> -From bc4ff7e37ce120c257e52a81fe3475499dfd2573 Mon Sep 17 00:00:00 2001
> -From: Changqing Li <changqing.li at windriver.com>
> -Date: Tue, 24 Jul 2018 10:10:24 +0800
> -Subject: [PATCH] libldb: fix config error
> -
> -Signed-off-by: Changqing Li <changqing.li at 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
> -
> diff --git a/meta-networking/recipes-support/libldb/libldb/0001-waf-add-support-of-cross_compile.patch b/meta-networking/recipes-support/libldb/libldb/0001-waf-add-support-of-cross_compile.patch
> new file mode 100644
> index 0000000..45c5aca
> --- /dev/null
> +++ b/meta-networking/recipes-support/libldb/libldb/0001-waf-add-support-of-cross_compile.patch
> @@ -0,0 +1,62 @@
> +From 4b8463ff43f8983a706b181c5292491f9f954be1 Mon Sep 17 00:00:00 2001
> +From: Changqing Li <changqing.li at 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 at 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
> +
> diff --git a/meta-networking/recipes-support/libldb/libldb/do-not-import-target-module-while-cross-compile.patch b/meta-networking/recipes-support/libldb/libldb/do-not-import-target-module-while-cross-compile.patch
> index ee4936a..3f2921e 100644
> --- a/meta-networking/recipes-support/libldb/libldb/do-not-import-target-module-while-cross-compile.patch
> +++ b/meta-networking/recipes-support/libldb/libldb/do-not-import-target-module-while-cross-compile.patch
> @@ -1,30 +1,32 @@
> -From f4cda3a71311e4496b725bc5f46af93413ec7a1c Mon Sep 17 00:00:00 2001
> -From: Bian Naimeng <biannm at cn.fujitsu.com>
> -Date: Fri, 17 Jul 2015 11:58:49 +0800
> -Subject: [PATCH] libldb: add new recipe
> +From cc0576405803bcae45ee353c4333c449cead9207 Mon Sep 17 00:00:00 2001
> +From: Changqing Li <changqing.li at windriver.com>
> +Date: Tue, 25 Jun 2019 14:25:08 +0800
> +Subject: [PATCH] do not import target module while cross compile
>
> -Some modules such as dynamic library maybe cann't be imported while cross compile,
> -we just check whether does the module exist.
> +Some modules such as dynamic library maybe cann't be imported
> +while cross compile, we just check whether does the module exist.
>
>  Signed-off-by: Bian Naimeng <biannm at cn.fujitsu.com>
>
> +update to version 4.10.5, and switch to python3
> +Signed-off-by: Changqing Li <changqing.li at windriver.com>
>  ---
> - buildtools/wafsamba/samba_bundled.py | 32 ++++++++++++++++++++++++--------
> - 1 file changed, 24 insertions(+), 8 deletions(-)
> + buildtools/wafsamba/samba_bundled.py | 27 +++++++++++++++++++--------
> + 1 file changed, 18 insertions(+), 8 deletions(-)
>
>  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
>  +++ 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
> - import Build, Options, Logs
> -+import imp, os
> - 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'):
> + def PRIVATE_NAME(bld, name, private_extension, private_library):
> +     '''possibly rename a library to include a bundled extension'''
> +@@ -249,17 +250,27 @@ def CHECK_BUNDLED_SYSTEM_PYTHON(conf, libname, modulename, minversion='0.0.0'):
>       # versions
>       minversion = minimum_library_version(conf, libname, minversion)
>
> @@ -34,34 +36,32 @@ index 253d604..398cc6a 100644
>  -        found = False
>  -    else:
>  +    # Find module in PYTHONPATH
> -+    stuff = imp.find_module(modulename, [os.environ["PYTHONPATH"]])
> -+    if stuff:
> ++    spec = importlib.util._find_spec_from_path(modulename, [os.environ["PYTHONPATH"]])
> ++    if spec:
>           try:
>  -            version = m.__version__
>  -        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:
>               found = False
>  +
>  +            if conf.env.CROSS_COMPILE:
>  +                # Some modules such as dynamic library maybe cann't be imported
>  +                # 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
>           else:
>  -            found = tuplize_version(version) >= tuplize_version(minversion)
>  +            try:
> -+                version = m.__version__
> ++                version = module.__version__
>  +            except AttributeError:
>  +                found = False
>  +            else:
>  +                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):
>           Logs.error('ERROR: Python module %s of version %s not found, and bundling disabled' % (libname, minversion))
>           sys.exit(1)
> +--
> +2.7.4
> +
> diff --git a/meta-networking/recipes-support/libldb/libldb/options-1.4.1.patch b/meta-networking/recipes-support/libldb/libldb/options-1.5.4.patch
> similarity index 79%
> rename from meta-networking/recipes-support/libldb/libldb/options-1.4.1.patch
> rename to meta-networking/recipes-support/libldb/libldb/options-1.5.4.patch
> index 357afbe..bffd065 100644
> --- a/meta-networking/recipes-support/libldb/libldb/options-1.4.1.patch
> +++ b/meta-networking/recipes-support/libldb/libldb/options-1.5.4.patch
> @@ -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 at 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
>
>  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 at windriver.com>
>
> -Update to version 1.4.1, and fix one configure error
> -
> -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
> -
> +upgrade to version 1.5.4
>  Signed-off-by: Changqing Li <changqing.li at windriver.com>
>  ---
> - lib/replace/wscript | 94 ++++++++++++++++++++++++++++++++++++++++-------------
> - wscript             |  6 ++++
> - 2 files changed, 77 insertions(+), 23 deletions(-)
> + lib/replace/wscript | 92 +++++++++++++++++++++++++++++++++++++++++------------
> + wscript             |  8 +++++
> + 2 files changed, 79 insertions(+), 21 deletions(-)
>
>  diff --git a/lib/replace/wscript b/lib/replace/wscript
> -index fd00a42..434192e 100644
> +index a7fd25d..ad26041 100644
>  --- a/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.RECURSE('buildtools/wafsamba')
> -
> ++
>  +    opt.add_option('--with-acl',
>  +                   help=("Enable use of acl"),
>  +                   action="store_true", dest='enable_acl')
> @@ -70,11 +65,10 @@ index fd00a42..434192e 100644
>  +    opt.add_option('--without-libcap',
>  +                   help=("Disable use of libcap"),
>  +                   action="store_false", dest='enable_libcap', default=False)
> -+
> +
>   @Utils.run_once
>   def configure(conf):
> -     conf.RECURSE('buildtools/wafsamba')
> -@@ -32,12 +67,25 @@ def configure(conf):
> +@@ -34,12 +69,25 @@ def configure(conf):
>       conf.DEFINE('HAVE_LIBREPLACE', 1)
>       conf.DEFINE('LIBREPLACE_NETWORK_CHECKS', 1)
>
> @@ -105,23 +99,22 @@ index fd00a42..434192e 100644
>       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/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('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:
> -+        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('sys/extattr.h sys/ea.h sys/proplist.h sys/cdefs.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
>  -    if not conf.CHECK_FUNCS('strlcpy strlcat'):
>  -        if conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h',
> @@ -136,11 +129,12 @@ index fd00a42..434192e 100644
>  -
>  -    if not conf.CHECK_FUNCS('closefrom'):
>  -        conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h')
> -+    if Options.options.enable_libbsd:
> ++    if Options.options.enable_libbsd:
>  +        # libbsd on some platforms provides strlcpy and strlcat
>  +        if not conf.CHECK_FUNCS('strlcpy strlcat'):
> -+            conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h',
> -+                    checklibc=True)
> ++            if conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h',
> ++                                   checklibc=True):
> ++                strlcpy_in_bsd = True
>  +        if not conf.CHECK_FUNCS('getpeereid'):
>  +            conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h')
>  +        if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h'):
> @@ -153,20 +147,11 @@ index fd00a42..434192e 100644
>
>       conf.CHECK_CODE('''
>                   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
> -index ad91bc6..2d20fee 100644
> +index d3402a7..d4e0ce1 100644
>  --- a/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',
>                      action='store_true', dest='without_ldb_lmdb', default=False)
>
> @@ -176,6 +161,8 @@ index ad91bc6..2d20fee 100644
>  +    opt.add_option('--without-valgrind',
>  +                   help=("disable use of valgrind"),
>  +                   action="store_false", dest='enable_valgrind', default=False)
> ++
> ++
>
>   def configure(conf):
>       conf.RECURSE('lib/tdb')
> diff --git a/meta-networking/recipes-support/libldb/libldb_1.4.1.bb b/meta-networking/recipes-support/libldb/libldb_1.5.4.bb
> similarity index 79%
> rename from meta-networking/recipes-support/libldb/libldb_1.4.1.bb
> rename to meta-networking/recipes-support/libldb/libldb_1.5.4.bb
> index f3608c6..65a6431 100644
> --- a/meta-networking/recipes-support/libldb/libldb_1.4.1.bb
> +++ b/meta-networking/recipes-support/libldb/libldb_1.5.4.bb
> @@ -4,16 +4,14 @@ SECTION = "libs"
>  LICENSE = "LGPL-3.0+ & LGPL-2.1+ & GPL-3.0+"
>
>  DEPENDS += "libtdb libtalloc libtevent popt"
> -RDEPENDS_pyldb += "python samba"
> -RCONFLICTS_${PN} = "samba"
> -RCONFLICTS_pyldb = "samba-python"
> +RDEPENDS_pyldb += "python3"
>
>  SRC_URI = "http://samba.org/ftp/ldb/ldb-${PV}.tar.gz \
>             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-conflict-type-error.patch \
> +           file://0001-waf-add-support-of-cross_compile.patch \
> +           file://options-1.5.4.patch \
>            "
>
>  PACKAGECONFIG ??= "\
> @@ -27,6 +25,7 @@ PACKAGECONFIG[libaio] = "--with-libaio,--without-libaio,libaio"
>  PACKAGECONFIG[libbsd] = "--with-libbsd,--without-libbsd,libbsd"
>  PACKAGECONFIG[libcap] = "--with-libcap,--without-libcap,libcap"
>  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)}"
>
> @@ -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://tools/ldbdump.c;endline=19;md5=a7d4fc5d1f75676b49df491575a86a42"
>
> -SRC_URI[md5sum] = "159a1b1a56dcccf410d1bba911be6076"
> -SRC_URI[sha256sum] = "2df13aa25b376b314ce24182c37691959019523de3cc5356c40c1a333b0890a2"
> +SRC_URI[md5sum] = "24d9f18b085ba27f96d4dec643abea39"
> +SRC_URI[sha256sum] = "db5beea64e305ef002a28fc6b6ca8e42b5fbee268bd713ff41e76c56a0a071d3"
>
>  inherit waf-samba distro_features_check
>  REQUIRED_DISTRO_FEATURES = "pam"
>
>  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 \
>                   --disable-rpath-install \
>                   --bundled-libraries=cmocka \
> @@ -49,7 +52,6 @@ EXTRA_OECONF += "--disable-rpath \
>                   --with-modulesdir=${libdir}/ldb/modules \
>                   --with-privatelibdir=${libdir}/ldb \
>                   --with-libiconv=${STAGING_DIR_HOST}${prefix}\
> -                 --without-ldb-lmdb \
>                  "
>
>  PACKAGES =+ "pyldb pyldb-dbg pyldb-dev"
> @@ -63,8 +65,8 @@ FILES_${PN}-dbg += "${bindir}/.debug/* \
>                      ${libdir}/ldb/modules/ldb/.debug/*"
>
>  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 \
> -                   ${libdir}/.debug/libpyldb-util.so.*"
> -FILES_pyldb-dev = "${libdir}/libpyldb-util.so"
> +                   ${libdir}/.debug/libpyldb-util.*.so.*"
> +FILES_pyldb-dev = "${libdir}/libpyldb-util.*.so"
> --
> 2.7.4
>
> --
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-devel


More information about the Openembedded-devel mailing list