repos: strip dot from layer name

when importing nested layer in combination with the top level layer like

meta-security
meta-security/meta-tpm

one can use

layers:
    .:
    meta-tpm:

in the spec file to import the parent layer.
This leads to the effect that

.
meta-tpm             = "HEAD:<hash>"

is shown in the build console and in /etc/build
when using image-buildinfo.bbclass.
To fix that just strip the trailing dot from each layer name.

Add test to avoid future regressions

Signed-off-by: Konrad Weihmann <kweihmann@outlook.com>
[Jan: use only a single rstrip call, fix style]
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
This commit is contained in:
Konrad Weihmann 2021-05-05 14:26:15 +02:00 committed by Jan Kiszka
parent eb63b1873b
commit b250c341fb
3 changed files with 15 additions and 1 deletions

View File

@ -52,7 +52,7 @@ class Repo:
def __getattr__(self, item):
if item == 'layers':
return [os.path.join(self.path, layer).rstrip(os.sep)
return [os.path.join(self.path, layer).rstrip(os.sep + '.')
for layer in self._layers]
elif item == 'qualified_name':
url = urlparse(self.url)

View File

@ -60,3 +60,10 @@ def test_layers_exclude(dokas):
with open('build/conf/bblayers.conf', 'r') as f:
for line in f:
assert('test_layers/kas2' not in line)
def test_layers_strip_dot(dokas):
with open('build/conf/bblayers.conf', 'r') as f:
lines = f.readlines()
assert(any('test_layers/kas3 ' in x for x in lines))
assert(any('test_layers/kas3/meta-bar' in x for x in lines))

View File

@ -20,3 +20,10 @@ repos:
refspec: master
layers:
.: excluded
kas3:
url: https://github.com/siemens/kas.git
refspec: master
layers:
.:
meta-bar: