nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 buildGoModule,
3 cmake,
4 fetchFromGitHub,
5 git,
6 go,
7 lib,
8 nlohmann_json,
9 stdenv,
10 kdePackages,
11}:
12
13let
14 version = "0.21.3";
15
16 src = fetchFromGitHub {
17 owner = "f-koehler";
18 repo = "KTailctl";
19 rev = "v${version}";
20 hash = "sha256-BKVq6d8CDmAOGULKoxXtlGbtgNu7wfsQnsyYV7PiFfc=";
21 };
22
23 goDeps =
24 (buildGoModule {
25 pname = "ktailctl-go-wrapper";
26 inherit src version;
27 modRoot = "src/wrapper";
28 vendorHash = "sha256-RhVZ1yXm+gJHM993Iw1XM/w/O1YiG6Mt4YMK+0JqRpg=";
29 }).goModules;
30in
31stdenv.mkDerivation {
32 pname = "ktailctl";
33 inherit version src;
34
35 postPatch = ''
36 cp -r --reflink=auto ${goDeps} src/wrapper/vendor
37 '';
38
39 # needed for go build to work
40 preBuild = ''
41 export HOME=$TMPDIR
42 '';
43
44 cmakeFlags = [
45 # actually just disables Go vendoring updates
46 "-DKTAILCTL_FLATPAK_BUILD=ON"
47 ];
48
49 nativeBuildInputs = with kdePackages; [
50 cmake
51 extra-cmake-modules
52 git
53 go
54 wrapQtAppsHook
55 ];
56
57 buildInputs = with kdePackages; [
58 kconfig
59 kcoreaddons
60 kdbusaddons
61 kguiaddons
62 ki18n
63 kirigami
64 kirigami-addons
65 knotifications
66 kwindowsystem
67 nlohmann_json
68 qqc2-desktop-style
69 qtbase
70 qtdeclarative
71 qtsvg
72 qtwayland
73 ];
74
75 meta = {
76 description = "GUI to monitor and manage Tailscale on your Linux desktop";
77 homepage = "https://github.com/f-koehler/KTailctl";
78 license = lib.licenses.gpl3Only;
79 maintainers = with lib.maintainers; [ k900 ];
80 mainProgram = "ktailctl";
81 platforms = lib.platforms.unix;
82 };
83}