python3Packages.shapely: keep version 1.8
Keep old version of package due to requirements of following packages: * kikit
This commit is contained in:
parent
8a9d435c4a
commit
18437fb33d
3 changed files with 122 additions and 0 deletions
89
pkgs/development/python-modules/shapely/1.8.nix
Normal file
89
pkgs/development/python-modules/shapely/1.8.nix
Normal file
|
@ -0,0 +1,89 @@
|
||||||
|
{ lib
|
||||||
|
, stdenv
|
||||||
|
, buildPythonPackage
|
||||||
|
, fetchPypi
|
||||||
|
, pytestCheckHook
|
||||||
|
, pythonOlder
|
||||||
|
, substituteAll
|
||||||
|
|
||||||
|
, cython
|
||||||
|
, geos311
|
||||||
|
, numpy
|
||||||
|
, oldest-supported-numpy
|
||||||
|
, setuptools
|
||||||
|
, wheel
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildPythonPackage rec {
|
||||||
|
pname = "Shapely";
|
||||||
|
version = "1.8.5";
|
||||||
|
format = "pyproject";
|
||||||
|
|
||||||
|
disabled = pythonOlder "3.7";
|
||||||
|
|
||||||
|
src = fetchPypi {
|
||||||
|
inherit pname version;
|
||||||
|
hash = "sha256-6CttYOz7EkEgyI/hBqR4WWu+qxQhFtfn9ko2TayQKpI=";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Environment variable used in shapely/_buildcfg.py
|
||||||
|
GEOS_LIBRARY_PATH = "${geos311}/lib/libgeos_c${stdenv.hostPlatform.extensions.sharedLibrary}";
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
# Patch to search form GOES .so/.dylib files in a Nix-aware way
|
||||||
|
(substituteAll {
|
||||||
|
src = ./library-paths.patch;
|
||||||
|
libgeos_c = GEOS_LIBRARY_PATH;
|
||||||
|
libc = lib.optionalString (!stdenv.isDarwin) "${stdenv.cc.libc}/lib/libc${stdenv.hostPlatform.extensions.sharedLibrary}.6";
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
substituteInPlace pyproject.toml --replace "setuptools<64" "setuptools"
|
||||||
|
'';
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
cython
|
||||||
|
geos311 # for geos-config
|
||||||
|
oldest-supported-numpy
|
||||||
|
setuptools
|
||||||
|
wheel
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
geos311
|
||||||
|
];
|
||||||
|
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
numpy
|
||||||
|
];
|
||||||
|
|
||||||
|
nativeCheckInputs = [
|
||||||
|
pytestCheckHook
|
||||||
|
];
|
||||||
|
|
||||||
|
preCheck = ''
|
||||||
|
rm -r shapely # prevent import of local shapely
|
||||||
|
'';
|
||||||
|
|
||||||
|
disabledTests = lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [
|
||||||
|
# FIXME(lf-): these logging tests are broken, which is definitely our
|
||||||
|
# fault. I've tried figuring out the cause and failed.
|
||||||
|
#
|
||||||
|
# It is apparently some sandbox or no-sandbox related thing on macOS only
|
||||||
|
# though.
|
||||||
|
"test_error_handler_exception"
|
||||||
|
"test_error_handler"
|
||||||
|
"test_info_handler"
|
||||||
|
];
|
||||||
|
|
||||||
|
pythonImportsCheck = [ "shapely" ];
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
changelog = "https://github.com/shapely/shapely/blob/${version}/CHANGES.txt";
|
||||||
|
description = "Manipulation and analysis of geometric objects";
|
||||||
|
homepage = "https://github.com/shapely/shapely";
|
||||||
|
license = licenses.bsd3;
|
||||||
|
maintainers = teams.geospatial.members;
|
||||||
|
};
|
||||||
|
}
|
31
pkgs/development/python-modules/shapely/library-paths.patch
Normal file
31
pkgs/development/python-modules/shapely/library-paths.patch
Normal 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@'])
|
|
@ -12933,6 +12933,8 @@ self: super: with self; {
|
||||||
|
|
||||||
shapely = callPackage ../development/python-modules/shapely { };
|
shapely = callPackage ../development/python-modules/shapely { };
|
||||||
|
|
||||||
|
shapely18 = callPackage ../development/python-modules/shapely/1.8.nix { };
|
||||||
|
|
||||||
shaperglot = callPackage ../development/python-modules/shaperglot { };
|
shaperglot = callPackage ../development/python-modules/shaperglot { };
|
||||||
|
|
||||||
sharedmem = callPackage ../development/python-modules/sharedmem { };
|
sharedmem = callPackage ../development/python-modules/sharedmem { };
|
||||||
|
|
Loading…
Reference in a new issue