cargo-geiger: fix darwin build

Changed files
+14 -4
pkgs
development
tools
rust
cargo-geiger
top-level
+12 -3
pkgs/development/tools/rust/cargo-geiger/default.nix
···
{ stdenv, lib, fetchFromGitHub
-
, rustPlatform, pkgconfig
-
, openssl, Security }:
+
, rustPlatform, pkgconfig, openssl
+
# darwin dependencies
+
, Security, CoreFoundation, libiconv
+
}:
rustPlatform.buildRustPackage rec {
pname = "cargo-geiger";
···
--skip test_package::case_6
'';
-
buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security ];
+
buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security libiconv ];
nativeBuildInputs = [ pkgconfig ];
+
+
# FIXME: Use impure version of CoreFoundation because of missing symbols.
+
# CFURLSetResourcePropertyForKey is defined in the headers but there's no
+
# corresponding implementation in the sources from opensource.apple.com.
+
preConfigure = stdenv.lib.optionalString stdenv.isDarwin ''
+
export NIX_CFLAGS_COMPILE="-F${CoreFoundation}/Library/Frameworks $NIX_CFLAGS_COMPILE"
+
'';
meta = with lib; {
description = "Detects usage of unsafe Rust in a Rust crate and its dependencies.";
+2 -1
pkgs/top-level/all-packages.nix
···
cargo-expand = callPackage ../development/tools/rust/cargo-expand { };
cargo-fuzz = callPackage ../development/tools/rust/cargo-fuzz { };
cargo-geiger = callPackage ../development/tools/rust/cargo-geiger {
-
inherit (darwin.apple_sdk.frameworks) Security;
+
inherit (darwin) libiconv;
+
inherit (darwin.apple_sdk.frameworks) Security CoreFoundation;
};
cargo-inspect = callPackage ../development/tools/rust/cargo-inspect {
inherit (darwin.apple_sdk.frameworks) Security;