Skip to contentSkip to conversation

populate_sdk_ext.bbclass: add ESDK_MANIFEST_EXCLUDES

PATCH In review Chen Qi 1 participant 3 messages Nov 15, 2017 – Dec 19, 2017

lore
Share & tools
lore

Chen Qi

author
#0 lore raw

cover populate_sdk_ext.bbclass: add ESDK_MANIFEST_EXCLUDES

The following changes since commit 4ed19ac8c19afd56d445d84e02b622cb056b8359:

poky: Switch to post release name/version (2017-11-14 17:26:58 +0000)

are available in the git repository at:

git://git.pokylinux.org/poky-contrib ChenQi/esdk_manifest_excludes
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=ChenQi/esdk_manifest_excludes

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

 meta/classes/populate_sdk_ext.bbclass | 6 ++++++
 1 file changed, 6 insertions(+)
Signature · 1 line
1.9.1
author
#1 lore raw

PATCH 1/1 populate_sdk_ext.bbclass: add ESDK_MANIFEST_EXCLUDES

Add ESDK_MANIFEST_EXCLUDES to enable excluding items from 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 ESDK_MANIFEST_EXCLUDES to enable users to do this.

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

---
 meta/classes/populate_sdk_ext.bbclass | 6 ++++++
 1 file changed, 6 insertions(+)
meta/classes/populate_sdk_ext.bbclass +6 -0
index 3620995..9ced3fc 100644
@@ -485,12 +485,18 @@ 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('ESDK_MANIFEST_EXCLUDES') 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:
+                    continue
                 chksum = bb.utils.sha256_file(fn)
                 f.write('%s\t%s\n' % (chksum, os.path.relpath(fn, baseoutpath)))
 }
Signature · 1 line
1.9.1
author
#2 lore raw

ping

Could someone help review this patch?

Thanks,
Chen Qi

Quoted 43 lines · Chen Qi

Add ESDK_MANIFEST_EXCLUDES to enable excluding items from 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 ESDK_MANIFEST_EXCLUDES to enable users to do this.

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

---
  meta/classes/populate_sdk_ext.bbclass | 6 ++++++
  1 file changed, 6 insertions(+)
meta/classes/populate_sdk_ext.bbclass +6 -0
index 3620995..9ced3fc 100644
@@ -485,12 +485,18 @@ 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('ESDK_MANIFEST_EXCLUDES') 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:
+                    continue
                  chksum = bb.utils.sha256_file(fn)
                  f.write('%s\t%s\n' % (chksum, os.path.relpath(fn, baseoutpath)))
  }