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.4";
8
9 src = fetchFromGitHub {
10 owner = "google";
11 repo = "fscrypt";
12 rev = "v${version}";
13 hash = "sha256-4Im3YWhLs5Q+o4DtpSuSMuKtKqXaICL9/EB0q5um6mQ=";
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-APW0XM6fTQOCw4tE1NA5VNN3fBUmsvn99NqqJnB3Q0s=";
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 longDescription = ''
45 This tool manages metadata, key generation, key wrapping, PAM integration,
46 and provides a uniform interface for creating and modifying encrypted
47 directories.
48 '';
49 inherit (src.meta) homepage;
50 changelog = "https://github.com/google/fscrypt/releases/tag/v${version}";
51 license = licenses.asl20;
52 platforms = platforms.linux;
53 maintainers = with maintainers; [ primeos ];
54 };
55}