summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJürg Billeter <j@bitron.ch>2020-01-21 10:00:38 +0100
committerJürg Billeter <j@bitron.ch>2020-02-03 18:44:30 +0000
commitf7239fe2c8d51f85412443c8ca00870626696090 (patch)
treefcaec9cfb59b5e7380c908cf7c8384ff33abba9d
parent020b20cdd2b46f79d34cb6e178e58570a426bbca (diff)
downloadbuildstream-f7239fe2c8d51f85412443c8ca00870626696090.tar.gz
_sandboxbuildboxrun.py: Check buildbox-run capabilities
-rw-r--r--src/buildstream/sandbox/_sandboxbuildboxrun.py10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/buildstream/sandbox/_sandboxbuildboxrun.py b/src/buildstream/sandbox/_sandboxbuildboxrun.py
index d542d39f8..dd70f944b 100644
--- a/src/buildstream/sandbox/_sandboxbuildboxrun.py
+++ b/src/buildstream/sandbox/_sandboxbuildboxrun.py
@@ -40,11 +40,19 @@ class SandboxBuildBoxRun(SandboxREAPI):
@classmethod
def check_available(cls):
try:
- utils.get_host_tool("buildbox-run")
+ path = utils.get_host_tool("buildbox-run")
except utils.ProgramNotFoundError as Error:
cls._dummy_reasons += ["buildbox-run not found"]
raise SandboxError(" and ".join(cls._dummy_reasons), reason="unavailable-local-sandbox") from Error
+ exit_code, output = utils._call([path, "--capabilities"])
+ if exit_code == 0:
+ # buildbox-run --capabilities prints one capability per line
+ cls._capabilities = set(output.split("\n"))
+ else:
+ # buildbox-run is too old to support extra capabilities
+ cls._capabilities = set()
+
@classmethod
def check_sandbox_config(cls, platform, config):
# Report error for elements requiring non-0 UID/GID