summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTristan Van Berkom <tristan.vanberkom@codethink.co.uk>2018-05-10 20:52:15 +0900
committerTristan Van Berkom <tristan.vanberkom@codethink.co.uk>2018-05-10 21:28:44 +0900
commit5034957ebbd4248be352b7b6be118f09f7d3cd4e (patch)
tree69fab5ff7990b802d8fa5171fb5e98f41f5b8554
parentedf3e029976ba0c605f5ff41bbb5568868c8f699 (diff)
downloadbuildstream-5034957ebbd4248be352b7b6be118f09f7d3cd4e.tar.gz
Revert "Replace bwrap checks with calls to check_bwrap_version"
This reverts commit f8952d6b8a775026d8a566969dd2570badf838fe. For some reason, the changes introduced here cause issue #395 to occur, without these changes we are not hitting the spurrious errors described in #395.
-rw-r--r--buildstream/_platform/linux.py20
1 files changed, 18 insertions, 2 deletions
diff --git a/buildstream/_platform/linux.py b/buildstream/_platform/linux.py
index 26dafb995..c4e87de1d 100644
--- a/buildstream/_platform/linux.py
+++ b/buildstream/_platform/linux.py
@@ -20,7 +20,6 @@
import subprocess
-from .. import _site
from .. import utils
from .._artifactcache.ostreecache import OSTreeCache
from .._message import Message, MessageType
@@ -35,8 +34,8 @@ class Linux(Platform):
super().__init__(context, project)
- self._die_with_parent_available = _site.check_bwrap_version(0, 1, 8)
self._user_ns_available = self._check_user_ns_available(context)
+ self._die_with_parent_available = self._check_die_with_parent_available(context)
self._artifact_cache = OSTreeCache(context, enable_push=self._user_ns_available)
@property
@@ -82,3 +81,20 @@ class Linux(Platform):
detail="Some builds may not function due to lack of uid / gid 0, " +
"artifacts created will not be trusted for push purposes."))
return False
+
+ def _check_die_with_parent_available(self, context):
+
+ # bwrap supports --die-with-parent since 0.1.8.
+ # Let's check whether the host bwrap supports it.
+ bwrap = utils.get_host_tool('bwrap')
+
+ try:
+ subprocess.check_call([
+ bwrap,
+ '--ro-bind', '/', '/',
+ '--die-with-parent',
+ 'true'
+ ], stdin=subprocess.DEVNULL, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
+ return True
+ except subprocess.CalledProcessError:
+ return False