Skip to contentSkip to conversation

meta: various fixes

PATCH In review Robert Yang 2 participants 6 messages Jul 13, 2018 – Sep 25, 2020

lore
Share & tools
lore
#0 lore raw

v4 cover meta: various fixes

* V4:
- Fix Paul's comments on populate_sdk_ext.bbclass patch
- Remove the ones which are already merged.

* V3:
- Fix RP's comments
Fix comments for "lsof: fix LSOF_CCV in version.h"
Fix "rootfs-postcommands: split ssh_allow_empty_password" since it caused a oe-selftest case failed.

- Drop already merge commits

- Drop unneeded commit:
gcc-sanitizers: Fix libtool .la files

- Drop an incorrect commit which caused oe-selftest failed:
glibc: re-package for libnss-db
This one needs rework.

- Ran "oe-selftest -a" to test it.

* V2:
Rebase to up-to-date master branch and drop already merged patches.

* V1: Initial version

// Robert

The following changes since commit f9324af88a99eca28b160fa31aa4516fd397e44b:

distutils3: pass build arguments when doing a clean (2018-07-10 11:10:14 +0100)

are available in the git repository at:

git://git.openembedded.org/openembedded-core-contrib rbt/fix_from_wr
http://cgit.openembedded.org/openembedded-core-contrib/log/?h=rbt/fix_from_wr

Chen Qi (1):
populate_sdk_ext.bbclass: add SDK_CONF_MANIFEST_EXCLUDE

Kai Kang (1):
toolchain-scripts.bbclass: do not extend dependency if extended
already

Mark Hatle (1):
base.bbclass: Add buildcfg multilib values

Shan Hai (1):
xinetd: add Init Script Actions to xinetd script

 meta/classes/base.bbclass                       | 13 ++++++++++++-
 meta/classes/populate_sdk_ext.bbclass           |  7 +++++++
 meta/classes/toolchain-scripts.bbclass          | 13 ++++++++++++-
 meta/conf/bitbake.conf                          |  2 +-
 meta/recipes-extended/xinetd/xinetd/xinetd.init | 12 +++++++++++-
 5 files changed, 43 insertions(+), 4 deletions(-)
Signature · 1 line
2.7.4
#1 lore raw

PATCH v4 1/4 base.bbclass: Add buildcfg multilib values

From: Mark Hatle <[email protected]>

When displaying the buildcfg for the end user, add in processing of the multilib variants. Only the items that are not the same as the DEFAULTTUNE are displayed.

I.e.:
Build Configuration:

BB_VERSION        = "1.19.0"
BUILD_SYS         = "x86_64-linux"
NATIVELSBSTRING   = "CentOS-6.4"
DISTRO_VERSION    = "oe-core.0"
MACHINE           = "qemux86-64"
DEFAULTTUNE       = "x86-64"
TARGET_SYS        = "x86_64-oe-linux"
TUNE_FEATURES     = "m64"
TARGET_FPU        = ""
lib32:  DEFAULTTUNE       = "x86"
lib32:  TARGET_SYS        = "i586-oe-linux"
lib32:  TUNE_FEATURES     = "m32"

meta = "master:1975f3d7bbeb184489a5d0a2e0de231f317d3e1b"

The order of the displayed elements was changed slightly to group the host information together, as well as group the target information together.

---
 meta/classes/base.bbclass | 13 ++++++++++++-
 meta/conf/bitbake.conf    |  2 +-
 2 files changed, 13 insertions(+), 2 deletions(-)
meta/classes/base.bbclass +12 -1
index 1a359a0..47ecff4 100644
@@ -188,7 +188,7 @@ def get_layers_branch_rev(d):
     return layers_branch_rev
 
 
-BUILDCFG_FUNCS ??= "buildcfg_vars get_layers_branch_rev buildcfg_neededvars"
+BUILDCFG_FUNCS ??= "buildcfg_vars buildcfg_multilibs get_layers_branch_rev buildcfg_neededvars"
 BUILDCFG_FUNCS[type] = "list"
 
 def buildcfg_vars(d):
@@ -198,6 +198,17 @@ def buildcfg_vars(d):
         if value is not None:
             yield '%-20s = "%s"' % (var, value)
 
+def buildcfg_multilibs(d):
+    variants = d.getVar("MULTILIB_VARIANTS", True) or ""
+    for variant in variants.split():
+        localdata = get_multilib_datastore(variant, d)
+        statusvars = oe.data.typed_value('BUILDCFG_VARS', d)
+        for var in statusvars:
+            origvalue = d.getVar(var, True)
+            variantvalue = localdata.getVar(var, True)
+            if origvalue and variantvalue and origvalue != variantvalue:
+                yield '%-7s %-17s = "%s"' % (variant + ":", var, variantvalue)
+
 def buildcfg_neededvars(d):
     needed_vars = oe.data.typed_value("BUILDCFG_NEEDEDVARS", d)
     pesteruser = []
meta/conf/bitbake.conf +1 -1
index 8f73854..3e0c36e 100644
@@ -698,7 +698,7 @@ PREFERRED_PROVIDER_virtual/fakeroot-native ?= "pseudo-native"
 
 # Pre-build configuration output
 BUILDCFG_HEADER = "Build Configuration:"
-BUILDCFG_VARS = "BB_VERSION BUILD_SYS NATIVELSBSTRING TARGET_SYS MACHINE DISTRO DISTRO_VERSION TUNE_FEATURES TARGET_FPU"
+BUILDCFG_VARS = "BB_VERSION BUILD_SYS NATIVELSBSTRING DISTRO DISTRO_VERSION MACHINE DEFAULTTUNE TARGET_SYS TUNE_FEATURES TARGET_FPU"
 BUILDCFG_VARS[type] = "list"
 BUILDCFG_NEEDEDVARS = "TARGET_ARCH TARGET_OS"
 BUILDCFG_NEEDEDVARS[type] = "list"
Signature · 1 line
2.7.4
#2 lore raw

Re: [OE-core] [PATCH V4 1/4] base.bbclass: Add buildcfg multilib values

Ping.

Thanks,

Quoted 79 lines · Robert Yang

From: Mark Hatle <[email protected]>

When displaying the buildcfg for the end user, add in processing of the multilib variants. Only the items that are not the same as the DEFAULTTUNE are displayed.

I.e.:
Build Configuration:

BB_VERSION        = "1.19.0"
BUILD_SYS         = "x86_64-linux"
NATIVELSBSTRING   = "CentOS-6.4"
DISTRO_VERSION    = "oe-core.0"
MACHINE           = "qemux86-64"
DEFAULTTUNE       = "x86-64"
TARGET_SYS        = "x86_64-oe-linux"
TUNE_FEATURES     = "m64"
TARGET_FPU        = ""
lib32:  DEFAULTTUNE       = "x86"
lib32:  TARGET_SYS        = "i586-oe-linux"
lib32:  TUNE_FEATURES     = "m32"

meta = "master:1975f3d7bbeb184489a5d0a2e0de231f317d3e1b"

The order of the displayed elements was changed slightly to group the host information together, as well as group the target information together.

---
  meta/classes/base.bbclass | 13 ++++++++++++-
  meta/conf/bitbake.conf    |  2 +-
  2 files changed, 13 insertions(+), 2 deletions(-)
meta/classes/base.bbclass +12 -1
index 1a359a0..47ecff4 100644
@@ -188,7 +188,7 @@ def get_layers_branch_rev(d):
      return layers_branch_rev
 
 
-BUILDCFG_FUNCS ??= "buildcfg_vars get_layers_branch_rev buildcfg_neededvars"
+BUILDCFG_FUNCS ??= "buildcfg_vars buildcfg_multilibs get_layers_branch_rev buildcfg_neededvars"
  BUILDCFG_FUNCS[type] = "list"
 
  def buildcfg_vars(d):
@@ -198,6 +198,17 @@ def buildcfg_vars(d):
          if value is not None:
              yield '%-20s = "%s"' % (var, value)
 
+def buildcfg_multilibs(d):
+    variants = d.getVar("MULTILIB_VARIANTS", True) or ""
+    for variant in variants.split():
+        localdata = get_multilib_datastore(variant, d)
+        statusvars = oe.data.typed_value('BUILDCFG_VARS', d)
+        for var in statusvars:
+            origvalue = d.getVar(var, True)
+            variantvalue = localdata.getVar(var, True)
+            if origvalue and variantvalue and origvalue != variantvalue:
+                yield '%-7s %-17s = "%s"' % (variant + ":", var, variantvalue)
+
  def buildcfg_neededvars(d):
      needed_vars = oe.data.typed_value("BUILDCFG_NEEDEDVARS", d)
      pesteruser = []
meta/conf/bitbake.conf +1 -1
index 8f73854..3e0c36e 100644
@@ -698,7 +698,7 @@ PREFERRED_PROVIDER_virtual/fakeroot-native ?= "pseudo-native"
 
  # Pre-build configuration output
  BUILDCFG_HEADER = "Build Configuration:"
-BUILDCFG_VARS = "BB_VERSION BUILD_SYS NATIVELSBSTRING TARGET_SYS MACHINE DISTRO DISTRO_VERSION TUNE_FEATURES TARGET_FPU"
+BUILDCFG_VARS = "BB_VERSION BUILD_SYS NATIVELSBSTRING DISTRO DISTRO_VERSION MACHINE DEFAULTTUNE TARGET_SYS TUNE_FEATURES TARGET_FPU"
  BUILDCFG_VARS[type] = "list"
  BUILDCFG_NEEDEDVARS = "TARGET_ARCH TARGET_OS"
  BUILDCFG_NEEDEDVARS[type] = "list"
#3 lore raw

PATCH v4 2/4 xinetd: add Init Script Actions to xinetd script

In reply to Robert Yang

From: Shan Hai <[email protected]>

The chkconfig fails to list the xinetd service because the xinetd lacks Init Script Actions in it, add the actions to fix it.

---
 meta/recipes-extended/xinetd/xinetd/xinetd.init | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)
meta/recipes-extended/xinetd/xinetd/xinetd.init +11 -1
index 777c2c8..a021410 100644
@@ -1,5 +1,15 @@
 #!/bin/sh
-#
+### BEGIN INIT INFO
+# Provides:          inetd
+# Required-Start:    $local_fs $remote_fs
+# Required-Stop:     $local_fs $remote_fs
+# Should-Start:      $syslog
+# Should-Stop:       $syslog
+# Default-Start:     2 3 4 5
+# Default-Stop:      0 1 6
+# Short-Description: Start or stop the xinetd daemon.
+### END INIT INFO
+
 # /etc/init.d/xinetd  --  script to start and stop xinetd.
 
 # Source function library.
Signature · 1 line
2.7.4
#4 lore raw

PATCH v4 3/4 toolchain-scripts.bbclass: do not extend dependency if extended already

In reply to Robert Yang

From: Kai Kang <[email protected]>

When set MULTILIBS with two or more items, such as for mips64:

MULTILIBS ?= "multilib:lib32 multilib:libn32"

It expands dependency once in mutlib.bbclass, and expand again in toolchain-scripts.bbclass which causes error:

| ERROR: Nothing PROVIDES 'virtual/lib32-libn32-libc'. Close matches:
|   virtual/libn32-libc
|   virtual/lib32-libc
|   virtual/libn32-librpc
| ERROR: Required build target 'libn32-meta-ide-support' has no buildable providers.
| Missing or unbuildable dependency chain was: ['libn32-meta-ide-support', 'virtual/lib32-libn32-libc']
---
 meta/classes/toolchain-scripts.bbclass | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)
meta/classes/toolchain-scripts.bbclass +12 -1
index 0ff5301..926be8b 100644
@@ -190,7 +190,18 @@ python __anonymous () {
     deps = ""
     for dep in (d.getVar('TOOLCHAIN_NEED_CONFIGSITE_CACHE') or "").split():
         deps += " %s:do_populate_sysroot" % dep
-        for variant in (d.getVar('MULTILIB_VARIANTS') or "").split():
+        ml_variants = (d.getVar('MULTILIB_VARIANTS') or "").split()
+
+        # don't extend if dep has been extended already
+        extended = False
+        for variant in ml_variants:
+            if dep.startswith(variant) or dep.startswith('virtual/' + variant):
+                extended = True
+                break
+        if extended:
+            continue
+
+        for variant in ml_variants:
             clsextend = oe.classextend.ClassExtender(variant, d)
             newdep = clsextend.extend_name(dep)
             deps += " %s:do_populate_sysroot" % newdep
Signature · 1 line
2.7.4
#5 lore raw

PATCH v4 4/4 populate_sdk_ext.bbclass: add SDK_CONF_MANIFEST_EXCLUDE

In reply to Robert Yang

From: Chen Qi <[email protected]>

Add SDK_CONF_MANIFEST_EXCLUDE to enable excluding items in sdk-conf-manifest.

By default, files under conf/ are all added to sdk-conf-manifest, as the manifest file is set to 'conf/*'.

However, there are situations where some configuration files under conf/ directory are not intended to be added to sdk-conf-manifest, thus adding SDK_CONF_MANIFEST_EXCLUDE to enable users to do this.

This variable takes the form of glob matching.
e.g.
SDK_CONF_MANIFEST_EXCLUDE = "conf/autogen*"
This would exclude all files under conf/ starting with 'autogen' from sdk-conf-manifest.

---
 meta/classes/populate_sdk_ext.bbclass | 7 +++++++
 1 file changed, 7 insertions(+)
meta/classes/populate_sdk_ext.bbclass +7 -0
index 9c31d70..bbe6c59 100644
@@ -479,12 +479,19 @@ python copy_buildsystem () {
     # sdk_ext_postinst() below) thus the checksum we take here would always
     # be different.
     manifest_file_list = ['conf/*']
+    esdk_manifest_excludes = (d.getVar('SDK_CONF_MANIFEST_EXCLUDE') or '').split()
+    esdk_manifest_excludes_list = []
+    for exclude_item in esdk_manifest_excludes:
+        esdk_manifest_excludes_list += glob.glob(os.path.join(baseoutpath, exclude_item))
     manifest_file = os.path.join(baseoutpath, 'conf', 'sdk-conf-manifest')
     with open(manifest_file, 'w') as f:
         for item in manifest_file_list:
             for fn in glob.glob(os.path.join(baseoutpath, item)):
                 if fn == manifest_file:
                     continue
+                if fn in esdk_manifest_excludes_list:
+                    bb.note('Exclude %s since it is in SDK_CONF_MANIFEST_EXCLUDE' % fn)
+                    continue
                 chksum = bb.utils.sha256_file(fn)
                 f.write('%s\t%s\n' % (chksum, os.path.relpath(fn, baseoutpath)))
 }
Signature · 1 line
2.7.4