diff options
author | Benjamin Barenblat <bbaren@mit.edu> | 2016-06-05 17:09:34 -0400 |
---|---|---|
committer | Benjamin Barenblat <bbaren@mit.edu> | 2016-06-05 17:09:34 -0400 |
commit | ba34f803a3cb4a7988c76d09c3da6d78e7ba103f (patch) | |
tree | 9cdc13342656fdd2aa07d5a592637e33528203e0 /debian | |
parent | 89e9db8fe6eb0e32207f2abc93e36ddb0ef00e89 (diff) |
Patch Dafny to use the system Z3
In previous versions, it was sufficient to just pass /z3exe:/usr/bin/z3
in the dafny launcher script, but now, Dafny looks for its vendored
Z3 (which we don’t install) at runtime and prints a warning if it’s
gone. Patch that behaviour away, hardcoding /usr/bin/z3 as the Z3
binary location.
Diffstat (limited to 'debian')
-rwxr-xr-x | debian/bin/dafny | 2 | ||||
-rw-r--r-- | debian/patches/series | 1 | ||||
-rw-r--r-- | debian/patches/use_system_z3.diff | 38 |
3 files changed, 40 insertions, 1 deletions
diff --git a/debian/bin/dafny b/debian/bin/dafny index 8950cf84..b4173036 100755 --- a/debian/bin/dafny +++ b/debian/bin/dafny @@ -1,2 +1,2 @@ #!/bin/sh -exec /usr/bin/cli /usr/lib/dafny/Dafny.exe /z3exe:/usr/bin/z3 "$@" +exec /usr/bin/cli /usr/lib/dafny/Dafny.exe "$@" diff --git a/debian/patches/series b/debian/patches/series new file mode 100644 index 00000000..8dec5b79 --- /dev/null +++ b/debian/patches/series @@ -0,0 +1 @@ +use_system_z3.diff diff --git a/debian/patches/use_system_z3.diff b/debian/patches/use_system_z3.diff new file mode 100644 index 00000000..1e08c80c --- /dev/null +++ b/debian/patches/use_system_z3.diff @@ -0,0 +1,38 @@ +Description: Use system Z3 + Dafny by default looks for its vendored Z3. Modify it to look for the system + Z3 installation instead. +Forwarded: not-needed +Author: Benjamin Barenblat <bbaren@mit.edu> +--- a/Source/Dafny/DafnyOptions.cs ++++ b/Source/Dafny/DafnyOptions.cs +@@ -283,29 +283,7 @@ namespace Microsoft.Dafny + /// so we vendor a Windows version.
+ /// </summary>
+ private void SetZ3ExecutableName() {
+- var platform = (int)System.Environment.OSVersion.Platform;
+-
+- // http://www.mono-project.com/docs/faq/technical/
+- var isUnix = platform == 4 || platform == 128;
+-
+- var z3binName = isUnix ? "z3" : "z3.exe";
+- var dafnyBinDir = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
+- var z3BinDir = System.IO.Path.Combine(dafnyBinDir, "z3", "bin");
+- var z3BinPath = System.IO.Path.Combine(z3BinDir, z3binName);
+-
+- if (!System.IO.File.Exists(z3BinPath) && !isUnix) {
+- // This is most likely a Windows user running from source without downloading z3
+- // separately; this is ok, since we vendor z3.exe.
+- z3BinPath = System.IO.Path.Combine(dafnyBinDir, z3binName);
+- }
+-
+- if (!System.IO.File.Exists(z3BinPath) && errorReporter != null) {
+- var tok = new Bpl.Token(1, 1) { filename = "*** " };
+- errorReporter.Warning(MessageSource.Other, tok, "Could not find '{0}' in '{1}'.{2}Downloading and extracting a Z3 distribution to Dafny's 'Binaries' folder would solve this issue; for now, we'll rely on Boogie to find Z3.",
+- z3binName, z3BinDir, System.Environment.NewLine);
+- } else {
+- Z3ExecutablePath = z3BinPath;
+- }
++ Z3ExecutablePath = "/usr/bin/z3";
+ }
+
+ public override void Usage() {
|