about summary refs log tree commit diff
path: root/pkgs/by-name/ca/cargo-raze/package.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/by-name/ca/cargo-raze/package.nix')
-rw-r--r--pkgs/by-name/ca/cargo-raze/package.nix55
1 files changed, 55 insertions, 0 deletions
diff --git a/pkgs/by-name/ca/cargo-raze/package.nix b/pkgs/by-name/ca/cargo-raze/package.nix
new file mode 100644
index 0000000000000..a0b4fd0ace7b0
--- /dev/null
+++ b/pkgs/by-name/ca/cargo-raze/package.nix
@@ -0,0 +1,55 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  rustPlatform,
+  pkg-config,
+  curl,
+  libgit2,
+  openssl,
+  darwin,
+}:
+let
+  version = "0.16.1";
+  src = fetchFromGitHub {
+    owner = "google";
+    repo = "cargo-raze";
+    rev = "v${version}";
+    hash = "sha256-dn1MrF+FYBG+vD5AfXCwmzskmKK/TXArnMWW2BAfFFQ=";
+  };
+in
+rustPlatform.buildRustPackage {
+  pname = "cargo-raze";
+  inherit src version;
+
+  sourceRoot = "${src.name}/impl";
+
+  # Make it build on Rust >1.76. Since upstream is unmaintained,
+  # there's no counting on them to fix this any time soon...
+  # See #310673 and #310125 for similar fixes
+  cargoPatches = [ ./rustc-serialize-fix.patch ];
+
+  cargoHash = "sha256-V8FkkWcXrYcDmhbdJztpbd4gBVbtbPY0NHS4pb/z8HM=";
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [
+    libgit2
+    openssl
+    curl
+  ] ++ lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Security;
+
+  preCheck = lib.optionalString stdenv.isDarwin ''
+    # Darwin issue: Os { code: 24, kind: Uncategorized, message: "Too many open files" }
+    # https://github.com/google/cargo-raze/issues/544
+    ulimit -n 1024
+  '';
+
+  __darwinAllowLocalNetworking = true;
+
+  meta = {
+    description = "Generate Bazel BUILD files from Cargo dependencies";
+    homepage = "https://github.com/google/cargo-raze";
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ elasticdog ];
+  };
+}