This repository has no description
2.0 kB
81 lines
1{
2 lib,
3 fetchFromGitHub,
4 fetchNpmDeps,
5 buildGoModule,
6 nodejs,
7 npmHooks,
8}:
9
10# gomuks TUI with E2EE via pure-Go goolm (no insecure libolm needed)
11# Built from the new gomuks codebase which includes cmd/gomuks-terminal
12buildGoModule (
13 finalAttrs:
14 let
15 rev = "82abf26775d59c642fa7ea5274cf8631cd6942c6";
16 in
17 {
18 pname = "gomuks";
19 version = "0.2601.0";
20
21 proxyVendor = true;
22 vendorHash = "sha256-M493helHfjHyJCqHxyaC2wkhtsFNA937crdnfCWj9IQ=";
23
24 src = fetchFromGitHub {
25 owner = "gomuks";
26 repo = "gomuks";
27 hash = "sha256-0AqA1Fl6xIotmF1hYfEm2FEEiSBzBp7RDnaJjTBeTwU=";
28 inherit rev;
29 };
30
31 nativeBuildInputs = [
32 nodejs
33 npmHooks.npmConfigHook
34 ];
35
36 env = {
37 npmRoot = "web";
38 npmDeps = fetchNpmDeps {
39 src = "${finalAttrs.src}/web";
40 hash = "sha256-SUxE4SZOZI+GgLTecRf5rqYRv3koV85eCZ1TFKO4gTI=";
41 };
42 };
43
44 postPatch = ''
45 substituteInPlace ./web/build-wasm.sh \
46 --replace-fail 'go.mau.fi/gomuks/version.Tag=$(git describe --exact-match --tags 2>/dev/null)' "go.mau.fi/gomuks/version.Tag=v${finalAttrs.version}" \
47 --replace-fail 'go.mau.fi/gomuks/version.Commit=$(git rev-parse HEAD)' "go.mau.fi/gomuks/version.Commit=${rev}"
48 '';
49
50 doCheck = false;
51
52 tags = [ "goolm" ];
53
54 ldflags = [
55 "-X 'go.mau.fi/gomuks/version.Tag=v${finalAttrs.version}'"
56 "-X 'go.mau.fi/gomuks/version.Commit=${rev}'"
57 ];
58
59 subPackages = [
60 "cmd/gomuks"
61 "cmd/gomuks-terminal"
62 ];
63
64 preBuild = ''
65 CGO_ENABLED=0 go generate ./web
66 '';
67
68 postInstall = ''
69 mv $out/bin/gomuks $out/bin/gomuks-server
70 mv $out/bin/gomuks-terminal $out/bin/gomuks-tui
71 '';
72
73 meta = {
74 mainProgram = "gomuks";
75 description = "Terminal Matrix client with E2EE via goolm";
76 homepage = "https://github.com/tulir/gomuks";
77 license = lib.licenses.agpl3Only;
78 platforms = lib.platforms.unix;
79 };
80 }
81)