flatcam: pin shapely at 1.8.4

This commit is contained in:
Robert Schütz 2023-02-12 19:35:50 -08:00 committed by Robert Schütz
parent 6f2e446ea7
commit 0d2542fa9d
2 changed files with 60 additions and 3 deletions

View file

@ -1,10 +1,36 @@
{ lib
, python3Packages
, stdenv
, python3
, fetchFromBitbucket
, fetchpatch
, substituteAll
, geos
}:
python3Packages.buildPythonApplication rec {
let
python = python3.override {
packageOverrides = self: super: {
shapely = super.shapely.overridePythonAttrs (old: rec {
version = "1.8.4";
src = self.fetchPypi {
pname = "Shapely";
inherit version;
hash = "sha256-oZXlHKr6IYKR8suqP+9p/TNTyT7EtlsqRyLEz0DDGYw=";
};
# Environment variable used in shapely/_buildcfg.py
GEOS_LIBRARY_PATH = "${geos}/lib/libgeos_c${stdenv.hostPlatform.extensions.sharedLibrary}";
patches = [
# Patch to search form GOES .so/.dylib files in a Nix-aware way
(substituteAll {
src = ./shapely-library-paths.patch;
libgeos_c = GEOS_LIBRARY_PATH;
libc = lib.optionalString (!stdenv.isDarwin) "${stdenv.cc.libc}/lib/libc${stdenv.hostPlatform.extensions.sharedLibrary}.6";
})
];
});
};
};
in python.pkgs.buildPythonApplication rec {
pname = "flatcam";
version = "8.5";
@ -15,7 +41,7 @@ python3Packages.buildPythonApplication rec {
sha256 = "199kiiml18k34z1zhk2hbhibphmnv0kb11kxiajq52alps0mjb3m";
};
propagatedBuildInputs = with python3Packages; [
propagatedBuildInputs = with python.pkgs; [
matplotlib
numpy
packaging

View file

@ -0,0 +1,31 @@
diff --git a/shapely/geos.py b/shapely/geos.py
index 88c5f53..1ccd6e4 100644
--- a/shapely/geos.py
+++ b/shapely/geos.py
@@ -96,6 +96,7 @@ if sys.platform.startswith('linux'):
alt_paths = [
'libgeos_c.so.1',
'libgeos_c.so',
+ '@libgeos_c@',
]
_lgeos = load_dll('geos_c', fallbacks=alt_paths)
@@ -160,6 +161,7 @@ elif sys.platform == 'darwin':
"/usr/local/lib/libgeos_c.dylib",
# homebrew Apple Silicon
"/opt/homebrew/lib/libgeos_c.dylib",
+ "@libgeos_c@",
]
_lgeos = load_dll('geos_c', fallbacks=alt_paths)
diff --git a/tests/test_dlls.py b/tests/test_dlls.py
index c71da8e..c36262c 100644
--- a/tests/test_dlls.py
+++ b/tests/test_dlls.py
@@ -18,4 +18,5 @@ class LoadingTestCase(unittest.TestCase):
'/opt/homebrew/lib/libgeos_c.dylib', # homebrew (macOS)
os.path.join(sys.prefix, "lib", "libgeos_c.so"), # anaconda (Linux)
'libgeos_c.so.1',
- 'libgeos_c.so'])
+ 'libgeos_c.so',
+ '@libgeos_c@'])