aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Yue Gan <yueg@google.com>2016-09-08 17:23:19 +0000
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2016-09-09 09:02:51 +0000
commit934d42dc93442063a3e42be09e2aa4f5eb54409a (patch)
tree5f452ab77bbe03c7ba5d45a6ceb07e079c167581
parentbfa369fa8eb19bc18a570cfc7733ffa90c3671fe (diff)
Check OS X version to decide if sandbox is supported.
-- MOS_MIGRATED_REVID=132570504
-rw-r--r--src/main/java/com/google/devtools/build/lib/sandbox/DarwinSandboxRunner.java19
-rw-r--r--src/main/java/com/google/devtools/build/lib/util/OS.java6
2 files changed, 24 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/sandbox/DarwinSandboxRunner.java b/src/main/java/com/google/devtools/build/lib/sandbox/DarwinSandboxRunner.java
index 3f559babff..40d9623db2 100644
--- a/src/main/java/com/google/devtools/build/lib/sandbox/DarwinSandboxRunner.java
+++ b/src/main/java/com/google/devtools/build/lib/sandbox/DarwinSandboxRunner.java
@@ -20,6 +20,7 @@ import com.google.devtools.build.lib.shell.Command;
import com.google.devtools.build.lib.shell.CommandException;
import com.google.devtools.build.lib.shell.KillableObserver;
import com.google.devtools.build.lib.shell.TimeoutKillableObserver;
+import com.google.devtools.build.lib.util.OS;
import com.google.devtools.build.lib.vfs.Path;
import java.io.File;
import java.io.IOException;
@@ -58,6 +59,24 @@ final class DarwinSandboxRunner extends SandboxRunner {
}
static boolean isSupported() {
+ // Check osx version, only >=10.11 is supported.
+ // And we should check if sandbox still work when it gets 11.x
+ String osxVersion = OS.getVersion();
+ String[] parts = osxVersion.split("\\.");
+ if (parts.length != 3) {
+ // Currently the format is 10.11.x
+ return false;
+ }
+ try {
+ int v0 = Integer.parseInt(parts[0]);
+ int v1 = Integer.parseInt(parts[1]);
+ if (v0 != 10 || v1 < 11) {
+ return false;
+ }
+ } catch (NumberFormatException e) {
+ return false;
+ }
+
List<String> args = new ArrayList<>();
args.add(SANDBOX_EXEC);
args.add("-p");
diff --git a/src/main/java/com/google/devtools/build/lib/util/OS.java b/src/main/java/com/google/devtools/build/lib/util/OS.java
index b05eb2124f..fb6596f8f8 100644
--- a/src/main/java/com/google/devtools/build/lib/util/OS.java
+++ b/src/main/java/com/google/devtools/build/lib/util/OS.java
@@ -42,6 +42,10 @@ public enum OS {
return canonicalName;
}
+ public static String getVersion() {
+ return System.getProperty("os.version");
+ }
+
@Override
public String toString() {
return getCanonicalName();
@@ -55,7 +59,7 @@ public enum OS {
osName = System.getProperty("os.name");
}
- if (osName == null) {
+ if (osName == null) {
return OS.UNKNOWN;
}