diff options
author | Robert Schütz <nix@dotlambda.de> | 2023-02-12 19:35:50 -0800 |
---|---|---|
committer | Robert Schütz <github@dotlambda.de> | 2023-02-22 17:39:49 -0800 |
commit | 0d2542fa9d67ee0486fb8133896de905b79525cb (patch) | |
tree | 34c7ba2709dabb2d2900730ffd39264ed24d8d73 /pkgs/applications/science/electronics | |
parent | 6f2e446ea7f0492e56337fa3044107e0d8866497 (diff) | |
download | nixlib-0d2542fa9d67ee0486fb8133896de905b79525cb.tar nixlib-0d2542fa9d67ee0486fb8133896de905b79525cb.tar.gz nixlib-0d2542fa9d67ee0486fb8133896de905b79525cb.tar.bz2 nixlib-0d2542fa9d67ee0486fb8133896de905b79525cb.tar.lz nixlib-0d2542fa9d67ee0486fb8133896de905b79525cb.tar.xz nixlib-0d2542fa9d67ee0486fb8133896de905b79525cb.tar.zst nixlib-0d2542fa9d67ee0486fb8133896de905b79525cb.zip |
flatcam: pin shapely at 1.8.4
Diffstat (limited to 'pkgs/applications/science/electronics')
-rw-r--r-- | pkgs/applications/science/electronics/flatcam/default.nix | 32 | ||||
-rw-r--r-- | pkgs/applications/science/electronics/flatcam/shapely-library-paths.patch | 31 |
2 files changed, 60 insertions, 3 deletions
diff --git a/pkgs/applications/science/electronics/flatcam/default.nix b/pkgs/applications/science/electronics/flatcam/default.nix index 1f6679625ec7..25efbd754b2a 100644 --- a/pkgs/applications/science/electronics/flatcam/default.nix +++ b/pkgs/applications/science/electronics/flatcam/default.nix @@ -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 diff --git a/pkgs/applications/science/electronics/flatcam/shapely-library-paths.patch b/pkgs/applications/science/electronics/flatcam/shapely-library-paths.patch new file mode 100644 index 000000000000..d095eada9d6e --- /dev/null +++ b/pkgs/applications/science/electronics/flatcam/shapely-library-paths.patch @@ -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@']) |