libspatialindex: fix on Darwin

Recent bump to 2.1.0 changed the soversion from 7 to 8. It broke
python3-rtree as follows:

OSError: Could not load libspatialindex_c library

Instead of bumping the version in postFixup, disable rpath in cmake
instructions.

Co-Authored-By: Reno Dakota <paparodeo@proton.me>
This commit is contained in:
Ihar Hrachyshka 2025-01-15 19:20:56 -05:00
parent c7f73ed1ad
commit 17c76b0312
2 changed files with 16 additions and 6 deletions

View File

@ -0,0 +1,11 @@
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -248,7 +248,7 @@ if(HAVE_BCOPY)
endif()
-if(APPLE)
+if(FALSE)
set(MACOSX_RPATH ON)
set_target_properties(spatialindex spatialindex_c
PROPERTIES INSTALL_NAME_DIR "@rpath")

View File

@ -3,7 +3,6 @@
stdenv,
fetchFromGitHub,
cmake,
fixDarwinDylibNames,
}:
stdenv.mkDerivation (finalAttrs: {
@ -17,11 +16,15 @@ stdenv.mkDerivation (finalAttrs: {
hash = "sha256-a2CzRLHdQMnVhHZhwYsye4X644r8gp1m6vU2CJpSRpU=";
};
patches = [
./no-rpath-for-darwin.diff
];
postPatch = ''
patchShebangs test/
'';
nativeBuildInputs = [ cmake ] ++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
nativeBuildInputs = [ cmake ];
cmakeFlags = [
(lib.cmakeBool "BUILD_TESTING" finalAttrs.finalPackage.doCheck)
@ -37,10 +40,6 @@ stdenv.mkDerivation (finalAttrs: {
doCheck = true;
postFixup = lib.optionalString stdenv.hostPlatform.isDarwin ''
install_name_tool -change "@rpath/libspatialindex.7.dylib" "$out/lib/libspatialindex.7.dylib" $out/lib/libspatialindex_c.dylib
'';
meta = {
description = "Extensible spatial index library in C++";
homepage = "https://libspatialindex.org";