metadata_scm.bbclass: Do not assume ${COREBASE} is a Git repo

The functions base_detect_revision() and base_detect_branch() try to
extract SCM meta information from the path returned by
base_get_scmbasepath(), which currently returns ${COREBASE}. However,
making the assumption that ${COREBASE} contains SCM meta information
can be false. It is true for Poky, but not necessarily other
environments. A better option is to look for the SCM meta information
based on the meta layer.

Since this works as expected for Git but not SVN, the call to
base_get_metadata_svn_revision() from base_detect_revision() was also
removed. This is not expected to affect anyone (partly based on the
comment in base_get_metadata_svn_revision()).

(From OE-Core rev: 53fd0a4a37023642a770a9fbf3cd5511d3c82af7)

(From OE-Core rev: 59b7a5b64c19afc342ca72ccee99cdcfb818e341)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Peter Kjellerstedt
2016-04-29 19:03:45 +02:00
committed by Richard Purdie
parent 9f0741a613
commit 3674b577f6

View File

@@ -4,8 +4,7 @@ METADATA_REVISION ?= "${@base_detect_revision(d)}"
def base_detect_revision(d):
path = base_get_scmbasepath(d)
scms = [base_get_metadata_git_revision, \
base_get_metadata_svn_revision]
scms = [base_get_metadata_git_revision]
for scm in scms:
rev = scm(path, d)
@@ -27,7 +26,7 @@ def base_detect_branch(d):
return "<unknown>"
def base_get_scmbasepath(d):
return d.getVar( 'COREBASE', True)
return os.path.join(d.getVar('COREBASE', True), 'meta')
def base_get_metadata_monotone_branch(path, d):
monotone_branch = "<unknown>"