1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 fetchpatch,
6 cmake,
7 pkg-config,
8 perl,
9 gettext,
10 fuse,
11 openssl,
12 tinyxml2,
13}:
14
15stdenv.mkDerivation rec {
16 pname = "encfs";
17 version = "1.9.5";
18
19 src = fetchFromGitHub {
20 sha256 = "099rjb02knr6yz7przlnyj62ic0ag5ncs7vvcc36ikyqrmpqsdch";
21 rev = "v${version}";
22 repo = "encfs";
23 owner = "vgough";
24 };
25
26 patches = lib.optionals stdenv.cc.isClang [
27 # Fixes a build failure when building with newer versions of clang.
28 # https://github.com/vgough/encfs/pull/650
29 (fetchpatch {
30 url = "https://github.com/vgough/encfs/commit/406b63bfe234864710d1d23329bf41d48001fbfa.patch";
31 hash = "sha256-VunC5ICRJBgCXqkr7ad7DPzweRJr1bdOpo1LKNCs4zY=";
32 })
33 ];
34
35 buildInputs = [
36 fuse
37 openssl
38 tinyxml2
39 ];
40 nativeBuildInputs = [
41 cmake
42 pkg-config
43 perl
44 gettext
45 ];
46 strictDeps = true;
47
48 cmakeFlags = [
49 "-DUSE_INTERNAL_TINYXML=OFF"
50 "-DBUILD_SHARED_LIBS=ON"
51 "-DINSTALL_LIBENCFS=ON"
52 ];
53
54 meta = with lib; {
55 description = "Encrypted filesystem in user-space via FUSE";
56 homepage = "https://vgough.github.io/encfs";
57 license = with licenses; [
58 gpl3Plus
59 lgpl3Plus
60 ];
61 platforms = platforms.unix;
62 };
63}