From e7ebeb7580235d597db79cd12dec3acb82941509 Mon Sep 17 00:00:00 2001 From: K900 Date: Sun, 8 Oct 2023 21:36:16 +0300 Subject: [PATCH] ktailctl: init at 0.9.0 Finally a native Qt Tailscale client. --- .../networking/ktailctl/default.nix | 83 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 85 insertions(+) create mode 100644 pkgs/applications/networking/ktailctl/default.nix diff --git a/pkgs/applications/networking/ktailctl/default.nix b/pkgs/applications/networking/ktailctl/default.nix new file mode 100644 index 000000000000..e166e156da4b --- /dev/null +++ b/pkgs/applications/networking/ktailctl/default.nix @@ -0,0 +1,83 @@ +{ lib +, stdenv +, fetchFromGitHub +, buildGo121Module +, cmake +, extra-cmake-modules +, git +, go_1_21 +, wrapQtAppsHook +, qtbase +, qtquickcontrols2 +, kconfig +, kcoreaddons +, kguiaddons +, ki18n +, kirigami2 +, kirigami-addons +, knotifications +}: + +let + version = "0.9.0"; + + src = fetchFromGitHub { + owner = "f-koehler"; + repo = "KTailctl"; + rev = "v${version}"; + hash = "sha256-nY6DEHkDVWIlvc64smXb9KshrhNgNLKiilYydbMKCqc="; + }; + + goDeps = (buildGo121Module { + pname = "tailwrap"; + inherit src version; + modRoot = "tailwrap"; + vendorHash = "sha256-Y9xhoTf3vCtiNi5qOPg020EQmASo58BZI3rAoUEC8qE="; + }).goModules; +in stdenv.mkDerivation { + pname = "ktailctl"; + inherit version src; + + postPatch = '' + cp -r --reflink=auto ${goDeps} tailwrap/vendor + ''; + + # needed for go build to work + preBuild = '' + export HOME=$TMPDIR + ''; + + cmakeFlags = [ + # actually just disables Go vendoring updates + "-DKTAILCTL_FLATPAK_BUILD=ON" + ]; + + nativeBuildInputs = [ + cmake + extra-cmake-modules + git + go_1_21 + wrapQtAppsHook + ]; + + buildInputs = [ + qtbase + qtquickcontrols2 + kconfig + kcoreaddons + kguiaddons + ki18n + kirigami2 + kirigami-addons + knotifications + ]; + + meta = with lib; { + description = "A GUI to monitor and manage Tailscale on your Linux desktop"; + homepage = "https://github.com/f-koehler/KTailctl"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ k900 ]; + mainProgram = "ktailctl"; + platforms = platforms.all; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index c8dfe4e6b480..ada749c2e447 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -10316,6 +10316,8 @@ with pkgs; keama = callPackage ../tools/networking/keama { }; + ktailctl = libsForQt5.callPackage ../applications/networking/ktailctl {}; + iredis = callPackage ../tools/admin/iredis { }; ispell = callPackage ../tools/text/ispell { };