diff --git a/pkgs/by-name/sa/safeeyes/package.nix b/pkgs/by-name/sa/safeeyes/package.nix index 8192162159f8..f3170d96e093 100644 --- a/pkgs/by-name/sa/safeeyes/package.nix +++ b/pkgs/by-name/sa/safeeyes/package.nix @@ -1,62 +1,62 @@ { lib, - python3, + python3Packages, fetchPypi, alsa-utils, gobject-introspection, libnotify, wlrctl, - gtk3, + gtk4, + gettext, safeeyes, testers, xprintidle, xprop, wrapGAppsHook3, + versionCheckHook, + nix-update-script, }: -python3.pkgs.buildPythonApplication rec { +python3Packages.buildPythonApplication rec { pname = "safeeyes"; - version = "2.2.3"; + version = "3.2.0"; pyproject = true; src = fetchPypi { inherit pname version; - hash = "sha256-VE+pcCSblj5CADJppyM1mUchOibUtr7NrVwINrSprY0="; + hash = "sha256-t8PMQxQjfyW3t0bamo8kAlminAMfUe0ThtzrgUc33Xo="; }; - postPatch = '' - substituteInPlace setup.py --replace-fail "root_dir = sys.prefix" "root_dir = '/'" - ''; - nativeBuildInputs = [ wrapGAppsHook3 gobject-introspection ]; buildInputs = [ - gtk3 + gtk4 + gettext libnotify ]; - build-system = with python3.pkgs; [ setuptools ]; + build-system = with python3Packages; [ setuptools ]; - dependencies = with python3.pkgs; [ + dependencies = with python3Packages; [ babel psutil xlib pygobject3 dbus-python - croniter packaging ]; + optional-dependencies = with python3Packages; { + healthstats = [ croniter ]; + wayland = [ pywayland ]; + }; + # Prevent double wrapping, let the Python wrapper use the args in preFixup. dontWrapGApps = true; - postInstall = '' - mv $out/lib/python*/site-packages/share $out/share - ''; - preFixup = '' makeWrapperArgs+=( "''${gappsWrapperArgs[@]}" @@ -75,12 +75,23 @@ python3.pkgs.buildPythonApplication rec { pythonImportsCheck = [ "safeeyes" ]; - passthru.tests.version = testers.testVersion { package = safeeyes; }; + doInstallCheck = true; + nativeInstallCheckInputs = [ versionCheckHook ]; + + passthru = { + updateScript = nix-update-script { }; + tests.version = testers.testVersion { package = safeeyes; }; + }; meta = { homepage = "http://slgobinath.github.io/SafeEyes"; - description = "Protect your eyes from eye strain using this simple and beautiful, yet extensible break reminder. A Free and Open Source Linux alternative to EyeLeo"; - license = lib.licenses.gpl3; + description = "Break reminder to prevent eye strain"; + longDescription = '' + Protect your eyes from eye strain using this simple and + beautiful, yet extensible break reminder. Free GNU/Linux + alternative to EyeLeo. + ''; + license = lib.licenses.gpl3Plus; platforms = lib.platforms.linux; mainProgram = "safeeyes"; };