From 9c95e8150ab98e6ea68304c0f9cbdcfe04020890 Mon Sep 17 00:00:00 2001 From: Fabian Hauser Date: Wed, 10 Jun 2020 17:31:46 +0200 Subject: [PATCH] hamster: init at 3.0.2 --- nixos/modules/module-list.nix | 1 + nixos/modules/programs/hamster.nix | 15 ++++++ pkgs/applications/misc/hamster/default.nix | 62 ++++++++++++++++++++++ pkgs/top-level/aliases.nix | 1 - pkgs/top-level/all-packages.nix | 2 + 5 files changed, 80 insertions(+), 1 deletion(-) create mode 100644 nixos/modules/programs/hamster.nix create mode 100644 pkgs/applications/misc/hamster/default.nix diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 978d33e75852..2e82424d58db 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -126,6 +126,7 @@ ./programs/gpaste.nix ./programs/gnupg.nix ./programs/gphoto2.nix + ./programs/hamster.nix ./programs/iftop.nix ./programs/iotop.nix ./programs/java.nix diff --git a/nixos/modules/programs/hamster.nix b/nixos/modules/programs/hamster.nix new file mode 100644 index 000000000000..ddf26a22fb53 --- /dev/null +++ b/nixos/modules/programs/hamster.nix @@ -0,0 +1,15 @@ +{ config, lib, pkgs, ... }: + +with lib; + +{ + meta.maintainers = maintainers.fabianhauser; + + options.programs.hamster.enable = + mkEnableOption "Whether to enable hamster time tracking."; + + config = lib.mkIf config.programs.hamster.enable { + environment.systemPackages = [ pkgs.hamster ]; + services.dbus.packages = [ pkgs.hamster ]; + }; +} diff --git a/pkgs/applications/misc/hamster/default.nix b/pkgs/applications/misc/hamster/default.nix new file mode 100644 index 000000000000..57b36e00436e --- /dev/null +++ b/pkgs/applications/misc/hamster/default.nix @@ -0,0 +1,62 @@ +{ stdenv, fetchFromGitHub, python3Packages, intltool, glib, itstool +, wrapGAppsHook, gobject-introspection, pango, gdk-pixbuf, atk, wafHook }: + +python3Packages.buildPythonApplication rec { + pname = "hamster"; + version = "3.0.2"; + + format = "other"; + + src = fetchFromGitHub { + owner = "projecthamster"; + repo = pname; + rev = "v${version}"; + sha256 = "09ikiwc2izjvwqbbyp8knn190x5y4anwslkmb9k2h3r3jwrg2vd2"; + }; + + nativeBuildInputs = [ + python3Packages.setuptools + wrapGAppsHook + intltool + itstool + wafHook + glib + gobject-introspection + ]; + + buildInputs = [ + pango + gdk-pixbuf + atk + ]; + + propagatedBuildInputs = with python3Packages; [ + pygobject3 + pycairo + pyxdg + dbus-python + ]; + + # Setup hooks have trouble with strict deps. + # https://github.com/NixOS/nixpkgs/issues/56943 + strictDeps = false; + + dontWrapGApps = true; + + # Arguments to be passed to `makeWrapper`, only used by buildPython* + preFixup = '' + makeWrapperArgs+=("''${gappsWrapperArgs[@]}") + ''; + + postFixup = '' + wrapPythonProgramsIn $out/libexec "$out $pythonPath" + ''; + + meta = with stdenv.lib; { + description = "Time tracking application"; + homepage = "http://projecthamster.org/"; + license = licenses.gpl3Plus; + platforms = platforms.all; + maintainers = [ maintainers.fabianhauser ]; + }; +} diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 30d9ce5bcfd8..2b0b1c70fd71 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -198,7 +198,6 @@ mapAliases ({ gupnp_igd = gupnp-igd; # added 2018-02-25 gupnptools = gupnp-tools; # added 2015-12-19 gutenberg = zola; # added 2018-11-17 - hamster-time-traker = throw "hamster-time-tracker has been removed from nixpkgs, as it was unmaintained."; # added 2019-12-10 heimdalFull = heimdal; # added 2018-05-01 hepmc = hepmc2; # added 2019-08-05 hexen = throw "hexen (SDL port) has been removed: Abandoned by upstream."; # added 2019-12-11 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 04d090040832..0bca332c3941 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -19996,6 +19996,8 @@ in hakuneko = callPackage ../tools/misc/hakuneko { }; + hamster = callPackage ../applications/misc/hamster { }; + hashit = callPackage ../tools/misc/hashit { }; hactool = callPackage ../tools/compression/hactool { };