... |
... |
@@ -54,12 +54,13 @@ REQUIRED_BWRAP_MINOR = 1 |
54
|
54
|
REQUIRED_BWRAP_PATCH = 2
|
55
|
55
|
|
56
|
56
|
|
57
|
|
-def exit_bwrap(reason):
|
|
57
|
+def warn_bwrap(reason):
|
58
|
58
|
print(reason +
|
59
|
|
- "\nBuildStream requires Bubblewrap (bwrap) for"
|
60
|
|
- " sandboxing the build environment. Install it using your package manager"
|
61
|
|
- " (usually bwrap or bubblewrap)")
|
62
|
|
- sys.exit(1)
|
|
59
|
+ "\nBuildStream requires Bubblewrap (bwrap {}.{}.{} or better),"
|
|
60
|
+ " during local builds, for"
|
|
61
|
+ " sandboxing the build environment.\nInstall it using your package manager"
|
|
62
|
+ " (usually bwrap or bubblewrap) otherwise you will be limited to"
|
|
63
|
+ " remote builds only.".format(REQUIRED_BWRAP_MAJOR, REQUIRED_BWRAP_MINOR, REQUIRED_BWRAP_PATCH))
|
63
|
64
|
|
64
|
65
|
|
65
|
66
|
def bwrap_too_old(major, minor, patch):
|
... |
... |
@@ -76,18 +77,19 @@ def bwrap_too_old(major, minor, patch): |
76
|
77
|
return False
|
77
|
78
|
|
78
|
79
|
|
79
|
|
-def assert_bwrap():
|
|
80
|
+def check_for_bwrap():
|
80
|
81
|
platform = os.environ.get('BST_FORCE_BACKEND', '') or sys.platform
|
81
|
82
|
if platform.startswith('linux'):
|
82
|
83
|
bwrap_path = shutil.which('bwrap')
|
83
|
84
|
if not bwrap_path:
|
84
|
|
- exit_bwrap("Bubblewrap not found")
|
|
85
|
+ warn_bwrap("Bubblewrap not found")
|
|
86
|
+ return
|
85
|
87
|
|
86
|
88
|
version_bytes = subprocess.check_output([bwrap_path, "--version"]).split()[1]
|
87
|
89
|
version_string = str(version_bytes, "utf-8")
|
88
|
90
|
major, minor, patch = map(int, version_string.split("."))
|
89
|
91
|
if bwrap_too_old(major, minor, patch):
|
90
|
|
- exit_bwrap("Bubblewrap too old")
|
|
92
|
+ warn_bwrap("Bubblewrap too old")
|
91
|
93
|
|
92
|
94
|
|
93
|
95
|
###########################################
|
... |
... |
@@ -126,7 +128,7 @@ bst_install_entry_points = { |
126
|
128
|
}
|
127
|
129
|
|
128
|
130
|
if not os.environ.get('BST_ARTIFACTS_ONLY', ''):
|
129
|
|
- assert_bwrap()
|
|
131
|
+ check_for_bwrap()
|
130
|
132
|
bst_install_entry_points['console_scripts'] += [
|
131
|
133
|
'bst = buildstream._frontend:cli'
|
132
|
134
|
]
|