diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 6c70774d7d9d..7d2849e5b60e 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -2546,6 +2546,16 @@ githubId = 11909469; name = "Fabian Geiselhart"; }; + fabianhauser = { + email = "fabian.nixos@fh2.ch"; + github = "fabianhauser"; + githubId = 368799; + name = "Fabian Hauser"; + keys = [{ + longkeyid = "rsa4096/0x8A52A140BEBF7D2C"; + fingerprint = "50B7 11F4 3DFD 2018 DCE6 E8D0 8A52 A140 BEBF 7D2C"; + }]; + }; fadenb = { email = "tristan.helmich+nixos@gmail.com"; github = "fadenb"; diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index c82c70a7b869..448d432853d3 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 e502fab10d7c..64392f49a52e 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -201,7 +201,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 00d902ca1473..05c9669b677d 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -20087,6 +20087,8 @@ in hakuneko = callPackage ../tools/misc/hakuneko { }; + hamster = callPackage ../applications/misc/hamster { }; + hashit = callPackage ../tools/misc/hashit { }; hactool = callPackage ../tools/compression/hactool { };