diff options
authorJoshua Watt <jpewhacker@gmail.com>2018-06-28 12:53:41 -0500
committerRichard Purdie <richard.purdie@linuxfoundation.org>2018-06-28 23:33:55 +0100
commit01071c5d524a878d9de4814196cba2f15739796e (patch)
parent177f4782e1ffca1eed3c9b102d910239a3dceea4 (diff)
bitbake-bblayers/create: Fix layer name generation
The path to where the layer was being created was taken verbatim as the name of the layer when generating the layer.conf and README files from templates. This causes problems in the layer.conf file because it would result in strangely named variables like BBFILE_PATTERN_../my-layer = "..." Instead of blindly taking the path, use the name of the last component of the path as the layer name. Additionally, rework the template files to use python format strings with named parameters so that the same argument doesn't have to be repeated multiple times. [YOCTO #12808] Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
3 files changed, 19 insertions, 16 deletions
diff --git a/meta/lib/bblayers/create.py b/meta/lib/bblayers/create.py
index e06949c92b..2ebf151ad1 100644
--- a/meta/lib/bblayers/create.py
+++ b/meta/lib/bblayers/create.py
@@ -30,8 +30,10 @@ class CreatePlugin(LayerPlugin):
conf = os.path.join(layerdir, 'conf')
+ layername = os.path.basename(os.path.normpath(args.layerdir))
# Create the README from templates/README
- readme_template = read_template('README') % (args.layerdir, args.layerdir, args.layerdir, args.layerdir, args.layerdir, args.layerdir)
+ readme_template = read_template('README').format(layername=layername)
readme = os.path.join(layerdir, 'README')
with open(readme, 'w') as fd:
@@ -47,7 +49,8 @@ class CreatePlugin(LayerPlugin):
compat = self.tinfoil.config_data.getVar('LAYERSERIES_COMPAT_core') or ""
# Create the layer.conf from templates/layer.conf
- layerconf_template = read_template('layer.conf') % (args.layerdir, args.layerdir, args.layerdir, args.priority, args.layerdir, args.layerdir, compat)
+ layerconf_template = read_template('layer.conf').format(
+ layername=layername, priority=args.priority, compat=compat)
layerconf = os.path.join(conf, 'layer.conf')
with open(layerconf, 'w') as fd:
diff --git a/meta/lib/bblayers/templates/README b/meta/lib/bblayers/templates/README
index 5a77f8d347..fb2d28e177 100644
--- a/meta/lib/bblayers/templates/README
+++ b/meta/lib/bblayers/templates/README
@@ -1,4 +1,4 @@
-This README file contains information on the contents of the %s layer.
+This README file contains information on the contents of the {layername} layer.
Please see the corresponding sections below for details.
@@ -18,7 +18,7 @@ Dependencies
-Please submit any patches against the %s layer to the xxxx mailing list (xxxx@zzzz.org)
+Please submit any patches against the {layername} layer to the xxxx mailing list (xxxx@zzzz.org)
and cc: the maintainer:
Maintainer: XXX YYYYYY <xxx.yyyyyy@zzzzz.com>
@@ -26,16 +26,16 @@ Maintainer: XXX YYYYYY <xxx.yyyyyy@zzzzz.com>
Table of Contents
- I. Adding the %s layer to your build
+ I. Adding the {layername} layer to your build
II. Misc
-I. Adding the %s layer to your build
+I. Adding the {layername} layer to your build
-Run 'bitbake-layers add-layer %s'
+Run 'bitbake-layers add-layer {layername}'
II. Misc
---- replace with specific information about the %s layer ---
+--- replace with specific information about the {layername} layer ---
diff --git a/meta/lib/bblayers/templates/layer.conf b/meta/lib/bblayers/templates/layer.conf
index 49f95cafc8..e2eaff4346 100644
--- a/meta/lib/bblayers/templates/layer.conf
+++ b/meta/lib/bblayers/templates/layer.conf
@@ -1,13 +1,13 @@
# We have a conf and classes directory, add to BBPATH
# We have recipes-* directories, add to BBFILES
-BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
- ${LAYERDIR}/recipes-*/*/*.bbappend"
+BBFILES += "${{LAYERDIR}}/recipes-*/*/*.bb \
+ ${{LAYERDIR}}/recipes-*/*/*.bbappend"
+BBFILE_COLLECTIONS += "{layername}"
+BBFILE_PATTERN_{layername} = "^${{LAYERDIR}}/"
+BBFILE_PRIORITY_{layername} = "{priority}"
-LAYERDEPENDS_%s = "core"
+LAYERDEPENDS_{layername} = "core"
+LAYERSERIES_COMPAT_{layername} = "{compat}"