nixpkgs/pkgs/tools/security/mpw/default.nix
2016-10-30 04:15:41 -07:00

50 lines
1.3 KiB
Nix

{ stdenv, fetchzip, autoconf, automake, openssl, libxml2, fetchFromGitHub, ncurses }:
let
scrypt_src = fetchzip {
url = "http://www.tarsnap.com/scrypt/scrypt-1.2.0.tgz";
sha256 = "0ahylib2pimlhjcm566kpim6n16jci5v749xwdkr9ivgfjrv3xn4";
};
in stdenv.mkDerivation {
name = "mpw-2.1-6834f36";
src = fetchFromGitHub {
owner = "Lyndir";
repo = "MasterPassword";
rev = "6834f3689f5dfd4e59ad6959961d349c224977ee";
sha256 = "0zlpx3hb1y2l60hg961h05lb9yf3xb5phnyycvazah2674gkwb2p";
};
postUnpack = ''
sourceRoot+=/MasterPassword/C
'';
prePatch = ''
patchShebangs .
mkdir lib/scrypt/src
cp -R --no-preserve=ownership ${scrypt_src}/* lib/scrypt/src
chmod +w -R lib/scrypt/src
substituteInPlace lib/scrypt/src/libcperciva/cpusupport/Build/cpusupport.sh \
--replace dirname "$(type -P dirname)"
substituteInPlace lib/scrypt/src/Makefile.in --replace "command -p mv" "mv"
'';
NIX_CFLAGS_COMPILE = "-I${libxml2.dev}/include/libxml2";
buildInputs = [ autoconf automake openssl libxml2 ncurses ];
buildPhase = ''
substituteInPlace build --replace '"curses"' '"ncurses"'
targets="mpw mpw-tests" ./build
'';
installPhase = ''
mkdir -p $out/bin
mv mpw $out/bin/mpw
'';
meta = {
platforms = stdenv.lib.platforms.unix;
};
}