Commit 0d2542fa authored by Robert Schütz's avatar Robert Schütz Committed by Robert Schütz
Browse files

flatcam: pin shapely at 1.8.4

parent 6f2e446e
Loading
Loading
Loading
Loading
+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";

@@ -15,7 +41,7 @@ python3Packages.buildPythonApplication rec {
    sha256 = "199kiiml18k34z1zhk2hbhibphmnv0kb11kxiajq52alps0mjb3m";
  };

  propagatedBuildInputs = with python3Packages; [
  propagatedBuildInputs = with python.pkgs; [
    matplotlib
    numpy
    packaging
+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@'])