diff --git a/pkgs/by-name/se/sentry-cli/fix-swift-lib-path.patch b/pkgs/by-name/se/sentry-cli/fix-swift-lib-path.patch index 9d3b0dedd16d..04274f374a8f 100644 --- a/pkgs/by-name/se/sentry-cli/fix-swift-lib-path.patch +++ b/pkgs/by-name/se/sentry-cli/fix-swift-lib-path.patch @@ -1,8 +1,8 @@ diff --git a/apple-catalog-parsing/build.rs b/apple-catalog-parsing/build.rs -index 2ab4c71b..80301b1a 100644 +index 2ab4c71b59..6bcf003c0a 100644 --- a/apple-catalog-parsing/build.rs +++ b/apple-catalog-parsing/build.rs -@@ -30,7 +30,7 @@ fn main() { +@@ -30,7 +30,7 @@ // Add necessary libraries to the linker search path. Without this line, compiling fails // on systems without Xcode installed (xcode-select is still required). println!( @@ -11,3 +11,30 @@ index 2ab4c71b..80301b1a 100644 ); let out_dir = env::var("OUT_DIR").expect("OUT_DIR is set for build scripts"); +@@ -87,17 +87,14 @@ + println!("cargo:rustc-link-search=framework=/System/Library/PrivateFrameworks"); + println!("cargo:rustc-link-lib=framework=CoreUI"); + +- // Link to swift macOS support libraries for Swift runtime support on older macOS versions +- let developer_dir = Command::new("xcode-select") +- .args(["-p"]) +- .output() +- .expect("Failed to get developer directory, please ensure Xcode is installed."); +- let developer_dir_path = String::from_utf8(developer_dir.stdout) +- .expect("Failed to convert developer directory to UTF-8") +- .trim() +- .to_owned(); +- +- println!( +- "cargo:rustc-link-search={developer_dir_path}/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx" ++ // Link libobjc to avoid the following error: ld: can't find ordinal for imported symbol '___objc_personality_v0' ++ println!("cargo:rustc-link-lib=objc"); ++ ++ println!( ++ "cargo:rustc-link-search=/usr/lib/swift" ++ ); ++ ++ println!( ++ "cargo:rustc-link-search=@swiftLib@/lib/swift/macosx" + ); + } \ No newline at end of file diff --git a/pkgs/by-name/se/sentry-cli/package.nix b/pkgs/by-name/se/sentry-cli/package.nix index 16b0547b0ca1..084115cfe1a4 100644 --- a/pkgs/by-name/se/sentry-cli/package.nix +++ b/pkgs/by-name/se/sentry-cli/package.nix @@ -8,7 +8,7 @@ stdenv, swift, swiftpm, - writeShellScriptBin, + replaceVars, }: rustPlatform.buildRustPackage rec { pname = "sentry-cli"; @@ -26,7 +26,9 @@ rustPlatform.buildRustPackage rec { OPENSSL_NO_VENDOR = 1; patches = [ - ./fix-swift-lib-path.patch + (replaceVars ./fix-swift-lib-path.patch { + swiftLib = lib.getLib swift; + }) ]; buildInputs = [ openssl ]; @@ -36,9 +38,6 @@ rustPlatform.buildRustPackage rec { ] ++ (lib.optionals stdenv.hostPlatform.isDarwin [ swift swiftpm - (writeShellScriptBin "xcode-select" '' - echo $DEVELOPER_DIR - '') ]); # By default including `swiftpm` in `nativeBuildInputs` will take over `buildPhase`