about summary refs log tree commit diff
path: root/pkgs/tools/security/mpw
diff options
context:
space:
mode:
authorPeter Hoeg <peter@hoeg.com>2019-02-01 15:05:03 +0800
committerPeter Hoeg <peter@hoeg.com>2019-03-18 11:56:58 +0800
commit31e4f1dbf6ea58f581287cb875673415b7389b1f (patch)
treedb6d2fb053d8ba648ae650082d3f0a25c553c3d2 /pkgs/tools/security/mpw
parentda1a2b1eeafa66b4419b4f275396d8a731eccb61 (diff)
mpw: point upgrade and minor cleanups
Diffstat (limited to 'pkgs/tools/security/mpw')
-rw-r--r--pkgs/tools/security/mpw/default.nix61
1 files changed, 42 insertions, 19 deletions
diff --git a/pkgs/tools/security/mpw/default.nix b/pkgs/tools/security/mpw/default.nix
index 0994c649c83e8..4cff17ef84954 100644
--- a/pkgs/tools/security/mpw/default.nix
+++ b/pkgs/tools/security/mpw/default.nix
@@ -1,38 +1,61 @@
-{ stdenv, cmake, fetchFromGitHub, ncurses, libsodium, json_c }:
+{ stdenv, cmake, fetchFromGitLab
+, json_c, libsodium, libxml2, ncurses }:
 
-stdenv.mkDerivation rec {
-  name = "mpw-2.6-f8043ae";
+let
+  rev = "22796663dcad81684ab24308d9db570f6781ba2c";
 
-  src = fetchFromGitHub {
-    owner = "Lyndir";
-    repo = "MasterPassword";
-    rev = "f8043ae16d73ddfb205aadd25c35cd9c5e95b228";
-    sha256 = "0hy02ri7y3sca85z3ff5i68crwav5cjd7rrdqj7jrnpp1bw4yapi";
+in stdenv.mkDerivation rec {
+  name = "mpw-${version}-${builtins.substring 0 8 rev}";
+  version = "2.6";
+
+  src = fetchFromGitLab {
+    owner  = "MasterPassword";
+    repo   = "MasterPassword";
+    sha256 = "1f2vqacgbyam1mazawrfim8zwp38gnwf5v3xkkficsfnv789g6fw";
+    inherit rev;
   };
 
-  postUnpack = ''
-    sourceRoot+=/platform-independent/cli-c
-  '';
+  sourceRoot = "./source/platform-independent/c/cli";
 
-  preConfigure = ''
-    substituteInPlace CMakeLists.txt --replace curses ncurses
-    echo ${name} > VERSION
+  postPatch = ''
+    rm build
+    substituteInPlace mpw-cli-tests \
+      --replace '/usr/bin/env bash' ${stdenv.shell} \
+      --replace ./mpw ./build/mpw
   '';
 
-  dontUseCmakeBuildDir = true;
+  cmakeFlags = [
+    "-Dmpw_version=${version}"
+    "-DBUILD_MPW_TESTS=ON"
+  ];
 
   nativeBuildInputs = [ cmake ];
 
-  buildInputs = [ ncurses libsodium json_c ];
+  buildInputs = [ json_c libxml2 libsodium ncurses ];
 
   installPhase = ''
-    mkdir -p $out/bin
-    mv mpw $out/bin/mpw
+    runHook preInstall
+
+    install -Dm755 mpw                    $out/bin/mpw
+    install -Dm644 ../mpw.completion.bash $out/share/bash-completion/completions/_mpw
+    install -Dm644 ../../../../README.md  $out/share/doc/mpw/README.md
+
+    runHook postInstall
+  '';
+
+  doCheck = true;
+
+  checkPhase = ''
+    runHook preCheck
+
+    ../mpw-cli-tests
+
+    runHook postCheck
   '';
 
   meta = with stdenv.lib; {
-    homepage = https://masterpasswordapp.com/;
     description = "A stateless password management solution";
+    homepage = https://masterpasswordapp.com/;
     license = licenses.gpl3;
     platforms = platforms.unix;
   };