diff --git a/pkgs/tools/misc/trackma/default.nix b/pkgs/tools/misc/trackma/default.nix new file mode 100644 index 000000000000..bebadd5db47f --- /dev/null +++ b/pkgs/tools/misc/trackma/default.nix @@ -0,0 +1,62 @@ +{ lib +, stdenv +, fetchFromGitHub +, python3 +, wrapGAppsHook +, gobject-introspection +, glib +, gtk3 +, withCurses ? false +, withGtk ? false +}: + +python3.pkgs.buildPythonApplication rec { + pname = "trackma"; + version = "0.8.4"; + + src = fetchFromGitHub { + owner = "z411"; + repo = "trackma"; + rev = "v${version}"; + sha256 = "sha256-drc39ID4WYBQ/L2py57CB5OkQNfRKNigPQW0Lp8GIMc="; + }; + + nativeBuildInputs = lib.optionals withGtk [ wrapGAppsHook ]; + + buildInputs = lib.optionals withGtk [ glib gobject-introspection gtk3 ]; + + propagatedBuildInputs = [ python3.pkgs.urllib3 python3.pkgs.dbus-python ] + ++ lib.optionals withGtk [ python3.pkgs.pillow python3.pkgs.pygobject3 python3.pkgs.pycairo ] + ++ lib.optionals withCurses [ python3.pkgs.urwid ] + ++ lib.optionals stdenv.isLinux [ python3.pkgs.pyinotify ]; + + # broken with gobject-introspection setup hook, see https://github.com/NixOS/nixpkgs/issues/56943 + strictDeps = false; + + dontWrapGApps = true; # prevent double wrapping + + preFixup = '' + makeWrapperArgs+=("''${gappsWrapperArgs[@]}") + ''; + + doCheck = false; + + pythonImportsCheck = [ "trackma" ]; + + # FIXME(trackma-qt): https://github.com/NixOS/nixpkgs/pull/179715#issuecomment-1171371059 + postDist = '' + rm $out/bin/trackma-qt + ${lib.optionalString (!withGtk) "rm $out/bin/trackma-gtk"} + ${lib.optionalString (!withCurses) "rm $out/bin/trackma-curses"} + ''; + + passthru.updateScript = ./update.sh; + + meta = with lib; { + homepage = "https://github.com/z411/trackma"; + description = "Open multi-site list manager for Unix-like systems (ex-wMAL)"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = with maintainers; [ WeebSorceress ]; + }; +} diff --git a/pkgs/tools/misc/trackma/update.sh b/pkgs/tools/misc/trackma/update.sh new file mode 100755 index 000000000000..7ad4a31f185b --- /dev/null +++ b/pkgs/tools/misc/trackma/update.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p curl jq common-updater-scripts + +set -eu -o pipefail + +version="$(curl --silent "https://api.github.com/repos/z411/trackma/releases" | jq '.[0].tag_name' --raw-output)" + +update-source-version trackma "${version:1}" diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index f2d5472383b0..0685be8b60f8 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -11194,6 +11194,12 @@ with pkgs; toybox = callPackage ../tools/misc/toybox { }; + trackma = callPackage ../tools/misc/trackma { }; + + trackma-curses = trackma.override { withCurses = true; }; + + trackma-gtk = trackma.override { withGtk = true; }; + tpmmanager = libsForQt5.callPackage ../applications/misc/tpmmanager { }; tpm-quote-tools = callPackage ../tools/security/tpm-quote-tools { };