nixpkgs/pkgs/applications/misc/hamster/default.nix
Bjørn Forsman 9e447b4854 hamster: fix install
* Tell the build system where it can install Python files, with the
  PYTHONDIR environment variable. Without this it tries to install to
  the existing python3 store path, which fails:

    waflib.Errors.WafError: Could not create the directory /nix/store/HASH-python3-VERSION/lib/pythonX.Y/site-packages/hamster

* Add setuptools as runtime dependency to prevent this fatal runtime
  error since Python 3.12:

    ModuleNotFoundError: No module named 'distutils'
2024-10-12 20:40:38 +02:00

64 lines
1.3 KiB
Nix

{ lib, fetchFromGitHub, python3Packages, intltool, glib, itstool, gtk3
, wrapGAppsHook3, gobject-introspection, pango, gdk-pixbuf, atk, wafHook }:
python3Packages.buildPythonApplication rec {
pname = "hamster";
version = "3.0.3";
format = "other";
src = fetchFromGitHub {
owner = "projecthamster";
repo = pname;
rev = "refs/tags/v${version}";
sha256 = "sha256-cUmUvJP9Y3de5OaNgIxvigDsX2ww7NNRY5son/gg+WI=";
};
nativeBuildInputs = [
python3Packages.setuptools
wrapGAppsHook3
intltool
itstool
wafHook
glib
gobject-introspection
];
buildInputs = [
pango
gdk-pixbuf
atk
gtk3
];
propagatedBuildInputs = with python3Packages; [
pygobject3
pycairo
pyxdg
setuptools
dbus-python
];
PYTHONDIR = "${placeholder "out"}/${python3Packages.python.sitePackages}";
dontWrapGApps = true;
# Arguments to be passed to `makeWrapper`, only used by buildPython*
preFixup = ''
makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
'';
postFixup = ''
wrapPythonProgramsIn $out/libexec "$out $pythonPath"
'';
meta = with lib; {
description = "Time tracking application";
mainProgram = "hamster";
homepage = "http://projecthamster.org/";
license = licenses.gpl3Plus;
platforms = platforms.all;
maintainers = [ maintainers.fabianhauser ];
};
}