summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/tools/nix/gridlock/default.nix45
-rw-r--r--pkgs/top-level/all-packages.nix2
2 files changed, 47 insertions, 0 deletions
diff --git a/pkgs/tools/nix/gridlock/default.nix b/pkgs/tools/nix/gridlock/default.nix
new file mode 100644
index 00000000000..7e3bee28ebb
--- /dev/null
+++ b/pkgs/tools/nix/gridlock/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, pkg-config
+, openssl
+, stdenv
+, darwin
+}:
+
+rustPlatform.buildRustPackage {
+  pname = "gridlock";
+  version = "unstable-2023-03-03";
+
+  outputs = [ "out" "nyarr" ];
+
+  src = fetchFromGitHub {
+    owner = "lf-";
+    repo = "gridlock";
+    rev = "15261abdb179e1d7e752772bf9db132b3ee343ea";
+    hash = "sha256-rnPAEJH3TebBH6lqgVo7B+nNiArDIkGDnIZWcteFNEw=";
+  };
+
+  cargoHash = "sha256-EPs5vJ2RkVXKxrTRtbT/1FbvCT0KJtNuW2WKIUq7G0U=";
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    openssl
+  ] ++ lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.Security
+  ];
+
+  postInstall = ''
+    moveToOutput bin/nyarr $nyarr
+  '';
+
+  meta = with lib; {
+    description = "Nix compatible lockfile manager, without Nix";
+    homepage = "https://github.com/lf-/gridlock";
+    license = licenses.mit;
+    maintainers = with maintainers; [ figsoda ];
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index ac3acd1fd63..7daee7599b9 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -587,6 +587,8 @@ with pkgs;
 
   gpick = callPackage ../tools/misc/gpick { };
 
+  gridlock = callPackage ../tools/nix/gridlock { };
+
   hwatch = callPackage ../tools/misc/hwatch { };
 
   hobbes = callPackage ../development/tools/hobbes { stdenv = gcc10StdenvCompat; };