1{ lib, buildGoModule, fetchFromGitHub, gnum4, pam, fscrypt-experimental }:
2
3# Don't use this for anything important yet!
4
5buildGoModule rec {
6 pname = "fscrypt";
7 version = "0.3.5";
8
9 src = fetchFromGitHub {
10 owner = "google";
11 repo = "fscrypt";
12 rev = "v${version}";
13 hash = "sha256-US1jw0XK1BcP037XPhttzBloDU62m4BVSIbsGs9LaJU=";
14 };
15
16 postPatch = ''
17 substituteInPlace Makefile \
18 --replace 'TAG_VERSION := $(shell git describe --tags)' "" \
19 --replace "/usr/local" "$out"
20 '';
21
22 vendorHash = "sha256-FuVWV3Rimhd+Pm9wrKGLWQWtbP1hWvoWa22pQT+m2go=";
23
24 doCheck = false;
25
26 nativeBuildInputs = [ gnum4 ];
27 buildInputs = [ pam ];
28
29 buildPhase = ''
30 runHook preBuild
31 make
32 runHook postBuild
33 '';
34
35 installPhase = ''
36 runHook preInstall
37 make install
38 runHook postInstall
39 '';
40
41 meta = with lib; {
42 description =
43 "A high-level tool for the management of Linux filesystem encryption";
44 mainProgram = "fscrypt";
45 longDescription = ''
46 This tool manages metadata, key generation, key wrapping, PAM integration,
47 and provides a uniform interface for creating and modifying encrypted
48 directories.
49 '';
50 inherit (src.meta) homepage;
51 changelog = "https://github.com/google/fscrypt/releases/tag/v${version}";
52 license = licenses.asl20;
53 platforms = platforms.linux;
54 maintainers = with maintainers; [ primeos ];
55 };
56}