diff --git a/source-builder/sb/options.py b/source-builder/sb/options.py index 4ce83b7..2eddd24 100644 --- a/source-builder/sb/options.py +++ b/source-builder/sb/options.py @@ -260,9 +260,6 @@ class command_line: raise error.general('macro file not found: %s' % (um[checked.index(False)])) for m in um: self.defaults.load(m) - # Check the prefix permission - if not self.no_install() and not path.ispathwritable(self.defaults['_prefix']): - raise error.general('prefix is not writable: %s' % (path.host(self.defaults['_prefix']))) def command(self): return path.join(self.command_path, self.command_name) diff --git a/source-builder/sb/setbuilder.py b/source-builder/sb/setbuilder.py index e0e942d..701e201 100644 --- a/source-builder/sb/setbuilder.py +++ b/source-builder/sb/setbuilder.py @@ -367,6 +367,10 @@ def run(): else: deps = None if not list_bset_cfg_files(opts, configs): + prefix = opts.defaults.expand('%{_prefix}') + if not opts.dry_run() and not opts.no_install() and \ + not path.ispathwritable(prefix): + raise error.general('prefix is not writable: %s' % (path.host(prefix))) for bset in opts.params(): b = buildset(bset, configs, opts) b.build(deps)