diff options
Diffstat (limited to 'pkgs/applications/science/logic')
-rw-r--r-- | pkgs/applications/science/logic/monosat/default.nix | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/pkgs/applications/science/logic/monosat/default.nix b/pkgs/applications/science/logic/monosat/default.nix index c0512b744884..ba0e787af721 100644 --- a/pkgs/applications/science/logic/monosat/default.nix +++ b/pkgs/applications/science/logic/monosat/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, cmake, zlib, gmp, jdk8, +{ stdenv, fetchpatch, fetchFromGitHub, cmake, zlib, gmp, jdk8, # The JDK we use on Darwin currenly makes extensive use of rpaths which are # annoying and break the python library, so let's not bother for now includeJava ? !stdenv.hostPlatform.isDarwin, includeGplCode ? true }: @@ -20,9 +20,17 @@ let inherit rev sha256; }; + patches = [ + # Python 3.8 compatibility + (fetchpatch { + url = https://github.com/sambayless/monosat/commit/a5079711d0df0451f9840f3a41248e56dbb03967.patch; + sha256 = "1p2y0jw8hb9c90nbffhn86k1dxd6f6hk5v70dfmpzka3y6g1ksal"; + }) + ]; + core = stdenv.mkDerivation { name = "${pname}-${version}"; - inherit src; + inherit src patches; buildInputs = [ cmake zlib gmp jdk8 ]; cmakeFlags = [ @@ -48,20 +56,22 @@ let }; python = { buildPythonPackage, cython }: buildPythonPackage { - inherit pname version src; - - # The top-level "source" is what fetchFromGitHub gives us. The rest is inside the repo - sourceRoot = "source/src/monosat/api/python/"; + inherit pname version src patches; propagatedBuildInputs = [ core cython ]; # This tells setup.py to use cython, which should produce faster bindings MONOSAT_CYTHON = true; + # After patching src, move to where the actually relevant source is. This could just be made + # the sourceRoot if it weren't for the patch. + postPatch = '' + cd src/monosat/api/python + '' + # The relative paths here don't make sense for our Nix build # TODO: do we want to just reference the core monosat library rather than copying the # shared lib? The current setup.py copies the .dylib/.so... - postPatch = '' + '' substituteInPlace setup.py \ --replace 'library_dir = "../../../../"' 'library_dir = "${core}/lib/"' ''; |