Only return parsed configuration files
cover Only return parsed configuration files
This is an updated change to findConfigFilePath which includes review feedback.
The following changes since commit c3827690b9ba3625d1df32d9517efbe13d7d9a1e:
bb/ui/hob: Restore toolchain relevant preference settings for build (2011-08-09 15:19:51 +0100)
are available in the git repository at:
git://github.com/incandescant/bitbake hob
https://github.com/incandescant/bitbake/tree/hob
Joshua Lock (1):
bb/cooker: only emit ConfigFilePathFound for files which were parsed
lib/bb/cooker.py | 28 ++++++++++++++++++++++++++-- 1 files changed, 26 insertions(+), 2 deletions(-)
Signature · 1 line
1.7.6
PATCH 1/1 bb/cooker: only emit ConfigFilePathFound for files which were parsed
When the requested configuration file is found on disk check the against the configuration files in __depends/__base_depends to ensure the file was parsed before emitting the ConfigFilePathFound event. If the requested file wasn't parsed just return (and don't emit).
Fixes [YOCTO #1246]
--- lib/bb/cooker.py | 28 ++++++++++++++++++++++++++-- 1 files changed, 26 insertions(+), 2 deletions(-)
lib/bb/cooker.py +26 -2
@@ -609,9 +609,33 @@ class BBCooker: collectlog.warn("No bb files matched BBFILE_PATTERN_%s '%s'" % (collection, pattern)) def findConfigFilePath(self, configfile): + """ + Find the location on disk of configfile and if it exists and was parsed by BitBake + emit the ConfigFilePathFound event with the path to the file. + """ path = self._findConfigFile(configfile) - if path: - bb.event.fire(bb.event.ConfigFilePathFound(path), self.configuration.data) + if not path: + return + + # Generate a list of parsed configuration files by searching the files + # listed in the __depends and __base_depends variables with a .conf suffix. + conffiles = [] + dep_files = bb.data.getVar('__depends', self.configuration.data) or set() + dep_files.union(bb.data.getVar('__base_depends', self.configuration.data) or set()) + + for f in dep_files: + if f[0].endswith(".conf"): + conffiles.append(f[0]) + + _, conf, conffile = path.rpartition("conf/") + match = os.path.join(conf, conffile) + # Try and find matches for conf/conffilename.conf as we don't always + # have the full path to the file. + for cfg in conffiles: + if cfg.endswith(match): + bb.event.fire(bb.event.ConfigFilePathFound(path), + self.configuration.data) + break def findFilesMatchingInDir(self, filepattern, directory): """
Signature · 1 line
1.7.6
Richard Purdie
AppliedRe: [PATCH 1/1] bb/cooker: only emit ConfigFilePathFound for files which were parsed
Quoted 11 lines · Joshua Lock
When the requested configuration file is found on disk check the against the configuration files in __depends/__base_depends to ensure the file was parsed before emitting the ConfigFilePathFound event. If the requested file wasn't parsed just return (and don't emit).
Fixes [YOCTO #1246]
Signed-off-by Joshua Lock <[email protected]>--- lib/bb/cooker.py | 28 ++++++++++++++++++++++++++-- 1 files changed, 26 insertions(+), 2 deletions(-)
Merged to master, thanks.
Richard