python3Packages.monosat: Fix Python 3.8 build
This commit is contained in:
parent
3fe7a65e23
commit
2148a154c6
@ -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
|
# 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
|
# annoying and break the python library, so let's not bother for now
|
||||||
includeJava ? !stdenv.hostPlatform.isDarwin, includeGplCode ? true }:
|
includeJava ? !stdenv.hostPlatform.isDarwin, includeGplCode ? true }:
|
||||||
@ -20,9 +20,17 @@ let
|
|||||||
inherit rev sha256;
|
inherit rev sha256;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
# Python 3.8 compatibility
|
||||||
|
(fetchpatch {
|
||||||
|
url = https://github.com/sambayless/monosat/commit/a5079711d0df0451f9840f3a41248e56dbb03967.patch;
|
||||||
|
sha256 = "0fwsk67798dns7izdry19r7r3nmym4cbgxfpbjbnx4b4mlak65j8";
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
core = stdenv.mkDerivation {
|
core = stdenv.mkDerivation {
|
||||||
name = "${pname}-${version}";
|
name = "${pname}-${version}";
|
||||||
inherit src;
|
inherit src patches;
|
||||||
buildInputs = [ cmake zlib gmp jdk8 ];
|
buildInputs = [ cmake zlib gmp jdk8 ];
|
||||||
|
|
||||||
cmakeFlags = [
|
cmakeFlags = [
|
||||||
@ -48,20 +56,22 @@ let
|
|||||||
};
|
};
|
||||||
|
|
||||||
python = { buildPythonPackage, cython }: buildPythonPackage {
|
python = { buildPythonPackage, cython }: buildPythonPackage {
|
||||||
inherit pname version src;
|
inherit pname version src patches;
|
||||||
|
|
||||||
# The top-level "source" is what fetchFromGitHub gives us. The rest is inside the repo
|
|
||||||
sourceRoot = "source/src/monosat/api/python/";
|
|
||||||
|
|
||||||
propagatedBuildInputs = [ core cython ];
|
propagatedBuildInputs = [ core cython ];
|
||||||
|
|
||||||
# This tells setup.py to use cython, which should produce faster bindings
|
# This tells setup.py to use cython, which should produce faster bindings
|
||||||
MONOSAT_CYTHON = true;
|
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
|
# 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
|
# 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...
|
# shared lib? The current setup.py copies the .dylib/.so...
|
||||||
postPatch = ''
|
''
|
||||||
substituteInPlace setup.py \
|
substituteInPlace setup.py \
|
||||||
--replace 'library_dir = "../../../../"' 'library_dir = "${core}/lib/"'
|
--replace 'library_dir = "../../../../"' 'library_dir = "${core}/lib/"'
|
||||||
'';
|
'';
|
||||||
|
Loading…
x
Reference in New Issue
Block a user