diff options
author | Chris Johns <chrisj@rtems.org> | 2022-09-30 17:07:10 +1000 |
---|---|---|
committer | Chris Johns <chrisj@rtems.org> | 2022-10-01 06:32:24 +1000 |
commit | 953b8391c0dc7298005347429912856d4e08517e (patch) | |
tree | 7eeb24e456961f10d83251550d6b3ae12bcb7d61 /source-builder/sb/setbuilder.py | |
parent | sb/execute: Fix incremental decoder with --dry-run (diff) | |
download | rtems-source-builder-953b8391c0dc7298005347429912856d4e08517e.tar.bz2 |
sb/set-bulder: Fix installing builds when a single buildset
- Always stage a build
- Install if installable and outter most buildset instance
Closes #4730
Diffstat (limited to 'source-builder/sb/setbuilder.py')
-rw-r--r-- | source-builder/sb/setbuilder.py | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/source-builder/sb/setbuilder.py b/source-builder/sb/setbuilder.py index 5921eed..46d7fe7 100644 --- a/source-builder/sb/setbuilder.py +++ b/source-builder/sb/setbuilder.py @@ -227,7 +227,7 @@ class buildset: return self.install_mode() == 'installing' def installable(self): - return not self.opts.no_install() or self.staging() + return not self.opts.no_install() and self.installing() def staging(self): return not self.installing() @@ -436,7 +436,7 @@ class buildset: # If installing switch to staging. Not sure if this is still # needed. # - if self.installing(): + if nesting_count > 1 and self.installing(): self.macros['install_mode'] = 'staging' try: @@ -538,10 +538,10 @@ class buildset: # # Installing or staging ... # - log.trace('_bset: %2d: %s: deps:%r no-install:%r' % \ + log.trace('_bset: %2d: mode: %s: deps:%r no-install:%r' % \ (nesting_count, self.install_mode(), deps is None, self.opts.no_install())) - log.trace('_bset: %2d: %s: builds: %s' % \ + log.trace('_bset: %2d: mode: %s: builds: %s' % \ (nesting_count, self.install_mode(), ', '.join([b.name() for b in builds]))) if deps is None and not have_errors: @@ -551,10 +551,9 @@ class buildset: if b.installable(): prefix = b.config.expand('%{_prefix}') buildroot = path.join(b.config.expand('%{buildroot}'), prefix) - if self.staging(): - prefix = b.config.expand('%{stagingroot}') + self.install('staging', b.name(), buildroot, b.config.expand('%{stagingroot}')) if self.installable(): - self.install(self.install_mode(), b.name(), buildroot, prefix) + self.install('installing', b.name(), buildroot, prefix) # # Sizes ... # @@ -610,7 +609,7 @@ class buildset: # # If builds have been staged install into the final prefix. # - if not have_errors: + if self.installing() and not have_errors: stagingroot = macro_expand(self.macros, '%{stagingroot}') have_stagingroot = path.exists(stagingroot) do_install = not self.opts.no_install() |