biome: 1.9.2 -> 1.9.3
[NixPkgs.git] / pkgs / applications / misc / pwsafe / default.nix
blobb2856cb7978e18142e6e44d135a2c8ceaf74ef2a
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , cmake
5 , pkg-config
6 , zip
7 , gettext
8 , perl
9 , wxGTK32
10 , libXext
11 , libXi
12 , libXt
13 , libXtst
14 , xercesc
15 , qrencode
16 , libuuid
17 , libyubikey
18 , yubikey-personalization
19 , curl
20 , openssl
21 , file
22 , darwin
23 , gitUpdater
26 let
27   inherit (darwin.apple_sdk.frameworks) Cocoa;
29 stdenv.mkDerivation rec {
30   pname = "pwsafe";
31   version = "1.18.0"; # do NOT update to 3.x Windows releases
33   src = fetchFromGitHub {
34     owner = pname;
35     repo = pname;
36     rev = version;
37     hash = "sha256-2n3JJ/DPhJpNOyviYpqQQl83IAZnmnH5w7b/pOGU8K8=";
38   };
40   strictDeps = true;
42   nativeBuildInputs = [
43     cmake
44     gettext
45     perl
46     pkg-config
47     wxGTK32
48     zip
49   ];
51   buildInputs = [
52     wxGTK32
53     curl
54     qrencode
55     openssl
56     xercesc
57     file
58   ] ++ lib.optionals stdenv.hostPlatform.isLinux [
59     libXext
60     libXi
61     libXt
62     libXtst
63     libuuid
64     libyubikey
65     yubikey-personalization
66   ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
67     Cocoa
68   ];
70   cmakeFlags = [
71     "-DNO_GTEST=ON"
72     "-DCMAKE_CXX_FLAGS=-I${yubikey-personalization}/include/ykpers-1"
73   ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
74     "-DNO_YUBI=ON"
75   ];
77   postPatch = ''
78     # Fix perl scripts used during the build.
79     for f in $(find . -type f -name '*.pl') ; do
80       patchShebangs $f
81     done
83     # Fix hard coded paths.
84     for f in $(grep -Rl /usr/share/ src install/desktop) ; do
85       substituteInPlace $f --replace /usr/share/ $out/share/
86     done
88     # Fix hard coded zip path.
89     substituteInPlace help/Makefile.linux --replace /usr/bin/zip ${zip}/bin/zip
91     for f in $(grep -Rl /usr/bin/ .) ; do
92       substituteInPlace $f --replace /usr/bin/ ""
93     done
94   '' + lib.optionalString stdenv.hostPlatform.isDarwin ''
95     substituteInPlace src/ui/cli/CMakeLists.txt --replace "uuid" ""
96   '';
98   installFlags = [ "PREFIX=${placeholder "out"}" ];
100   passthru.updateScript = gitUpdater {
101     allowedVersions = "^1\\.";
102     url = src.gitRepoUrl;
103   };
105   meta = with lib; {
106     description = "Password database utility";
107     longDescription = ''
108       Password Safe is a password database utility. Like many other
109       such products, commercial and otherwise, it stores your
110       passwords in an encrypted file, allowing you to remember only
111       one password (the "safe combination"), instead of all the
112       username/password combinations that you use.
113     '';
114     homepage = "https://pwsafe.org/";
115     maintainers = with maintainers; [ c0bw3b pjones ];
116     platforms = platforms.unix;
117     license = licenses.artistic2;
118   };