about summary refs log tree commit diff
path: root/pkgs/applications/version-management/pijul
diff options
context:
space:
mode:
authorVladyslav M <dywedir@gra.red>2020-11-09 14:03:31 +0200
committerVladyslav M <dywedir@gra.red>2020-11-09 21:05:03 +0200
commit2e1400173b9d8a551986d19c7fe5c2137ac10d19 (patch)
tree7e4a2b31107eea8760e8c44995c4c032a4e6a850 /pkgs/applications/version-management/pijul
parent72c424a968c189245470c0aec69b781e90a0c04d (diff)
pijul: 0.12.0 -> 1.0.0-alpha
Diffstat (limited to 'pkgs/applications/version-management/pijul')
-rw-r--r--pkgs/applications/version-management/pijul/default.nix80
-rw-r--r--pkgs/applications/version-management/pijul/thrussh-build-fix.patch12
2 files changed, 30 insertions, 62 deletions
diff --git a/pkgs/applications/version-management/pijul/default.nix b/pkgs/applications/version-management/pijul/default.nix
index b17e759c6573c..0eadb51fd1a84 100644
--- a/pkgs/applications/version-management/pijul/default.nix
+++ b/pkgs/applications/version-management/pijul/default.nix
@@ -1,64 +1,44 @@
-{ stdenv, fetchurl, rustPlatform, darwin, openssl, libsodium, nettle, clang, libclang, pkgconfig }:
-
-let
-  # nettle-sys=1.0.1 requires the des-compat.h header, but it was removed in
-  # nettle 3.5.  See https://nest.pijul.com/pijul_org/pijul/discussions/416
-  # Remove with the next release
-  nettle_34 = nettle.overrideAttrs (_oldAttrs: rec {
-    version = "3.4.1";
-    src = fetchurl {
-      url = "mirror://gnu/nettle/nettle-${version}.tar.gz";
-      sha256 = "1bcji95n1iz9p9vsgdgr26v6s7zhpsxfbjjwpqcihpfd6lawyhgr";
-    };
-  });
-in rustPlatform.buildRustPackage rec {
+{ stdenv
+, fetchCrate
+, rustPlatform
+, pkg-config
+, clang
+, libclang
+, libsodium
+, openssl
+, xxHash
+, zstd
+, darwin
+, gitImportSupport ? true
+, libgit2 ? null
+}:
+
+rustPlatform.buildRustPackage rec {
   pname = "pijul";
-  version = "0.12.0";
+  version = "1.0.0-alpha";
 
-  src = fetchurl {
-    url = "https://pijul.org/releases/${pname}-${version}.tar.gz";
-    sha256 = "1rm787kkh3ya8ix0rjvj7sbrg9armm0rnpkga6gjmsbg5bx20y4q";
+  src = fetchCrate {
+    inherit version pname;
+    sha256 = "0dnw2cxsxb20my81szyqjsmmnkakxawvsk6cnd1fi88k4lr0z2xh";
   };
 
-  cargoSha256 = "0rf8qmgzgyl718yznbskzafyg963ygibjmqncd93zdandgl9nj5v";
-
-  # N.B. The cargo depfile checker expects us to have unpacked the src tarball
-  # into the standard dirname "source".
-  cargoDepsHook = ''
-    ln -s ${pname}-${version} source
-  '';
-
-  # TODO: Delete once pijul fixes upstream:
-  # https://nest.pijul.com/pijul_org/pijul/discussions/447
-  postPatch = ''
-    pushd ../${pname}-${version}-vendor.tar.gz/thrussh/
-    patch -p1 < ${./thrussh-build-fix.patch}
-    substituteInPlace .cargo-checksum.json --replace \
-      9696ed2422a483cd8de48ac241178a0441be6636909c76174c536b8b1cba9d45 \
-      a199f2bba520d56e11607b77be4dde0cfae576c90badb9fbd39af4784e8120d1
-    popd
-  '';
-
-  nativeBuildInputs = [ pkgconfig clang ];
-
-  postInstall = ''
-    mkdir -p $out/share/{bash-completion/completions,zsh/site-functions,fish/vendor_completions.d}
-    $out/bin/pijul generate-completions --bash > $out/share/bash-completion/completions/pijul
-    $out/bin/pijul generate-completions --zsh > $out/share/zsh/site-functions/_pijul
-    $out/bin/pijul generate-completions --fish > $out/share/fish/vendor_completions.d/pijul.fish
-  '';
-
-  LIBCLANG_PATH = libclang + "/lib";
+  cargoSha256 = "130vryqs0g4a0328ivqafdylwqs64g4mp8vgmz6nz4c9l3h9wgcx";
 
-  buildInputs = [ openssl libsodium nettle_34 libclang ] ++ stdenv.lib.optionals stdenv.isDarwin
-    (with darwin.apple_sdk.frameworks; [ CoreServices Security ]);
+  cargoBuildFlags = stdenv.lib.optional gitImportSupport "--features=git";
+  LIBCLANG_PATH = "${libclang}/lib";
 
   doCheck = false;
+  nativeBuildInputs = [ pkg-config clang ];
+  buildInputs = [ openssl libclang libsodium xxHash zstd ]
+    ++ (stdenv.lib.optionals gitImportSupport [ libgit2 ])
+    ++ (stdenv.lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
+      CoreServices Security SystemConfiguration
+    ]));
 
   meta = with stdenv.lib; {
     description = "A distributed version control system";
     homepage = "https://pijul.org";
     license = with licenses; [ gpl2Plus ];
-    maintainers = [ maintainers.gal_bolle ];
+    maintainers = with maintainers; [ gal_bolle dywedir ];
   };
 }
diff --git a/pkgs/applications/version-management/pijul/thrussh-build-fix.patch b/pkgs/applications/version-management/pijul/thrussh-build-fix.patch
deleted file mode 100644
index 3989639620bfd..0000000000000
--- a/pkgs/applications/version-management/pijul/thrussh-build-fix.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- a/src/client/connection.rs	2020-02-04 12:48:43.845299096 +0100
-+++ b/src/client/connection.rs	2020-02-04 12:50:00.140329310 +0100
-@@ -546,8 +546,8 @@
-                 &[msg::NEWKEYS],
-                 &mut session.0.write_buffer,
-             );
--            session.0.kex = Some(Kex::NewKeys(newkeys));
-             newkeys.sent = true;
-+            session.0.kex = Some(Kex::NewKeys(newkeys));
-         }
-         Ok(())
-     }