Loading pkgs/applications/science/electronics/flatcam/default.nix +29 −3 Original line number Diff line number Diff line { 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"; Loading @@ -15,7 +41,7 @@ python3Packages.buildPythonApplication rec { sha256 = "199kiiml18k34z1zhk2hbhibphmnv0kb11kxiajq52alps0mjb3m"; }; propagatedBuildInputs = with python3Packages; [ propagatedBuildInputs = with python.pkgs; [ matplotlib numpy packaging Loading pkgs/applications/science/electronics/flatcam/shapely-library-paths.patch 0 → 100644 +31 −0 Original line number Diff line number Diff line 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@']) Loading
pkgs/applications/science/electronics/flatcam/default.nix +29 −3 Original line number Diff line number Diff line { 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"; Loading @@ -15,7 +41,7 @@ python3Packages.buildPythonApplication rec { sha256 = "199kiiml18k34z1zhk2hbhibphmnv0kb11kxiajq52alps0mjb3m"; }; propagatedBuildInputs = with python3Packages; [ propagatedBuildInputs = with python.pkgs; [ matplotlib numpy packaging Loading
pkgs/applications/science/electronics/flatcam/shapely-library-paths.patch 0 → 100644 +31 −0 Original line number Diff line number Diff line 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@'])