diff --git a/pkgs/applications/window-managers/i3/pystatus.nix b/pkgs/applications/window-managers/i3/pystatus.nix deleted file mode 100644 index 66450eec6c32..000000000000 --- a/pkgs/applications/window-managers/i3/pystatus.nix +++ /dev/null @@ -1,62 +0,0 @@ -{ lib -, fetchFromGitHub -, libpulseaudio -, libnotify -, gobject-introspection -, python3Packages -, extraLibs ? [] }: - -python3Packages.buildPythonApplication rec { - # i3pystatus moved to rolling release: - # https://github.com/enkore/i3pystatus/issues/584 - version = "unstable-2020-06-12"; - pname = "i3pystatus"; - - src = fetchFromGitHub { - owner = "enkore"; - repo = "i3pystatus"; - rev = "dad5eb0c5c8a2ecd20c37ade4732586c6e53f44b"; - sha256 = "18ygvkl92yr69kxsym57k1mc90asdxpz4b943i61qr0s4fc5n4mq"; - }; - - nativeBuildInputs = [ - gobject-introspection - ]; - - buildInputs = [ libpulseaudio libnotify ]; - - propagatedBuildInputs = with python3Packages; [ - keyring colour netifaces psutil basiciw pygobject3 - ] ++ extraLibs; - - makeWrapperArgs = [ - # LC_TIME != C results in locale.Error: unsupported locale setting - "--set" "LC_TIME" "C" - "--suffix" "LD_LIBRARY_PATH" ":" "${lib.makeLibraryPath [ libpulseaudio ]}" - ]; - - postPatch = '' - makeWrapperArgs+=(--set GI_TYPELIB_PATH "$GI_TYPELIB_PATH") - ''; - - postInstall = '' - makeWrapper ${python3Packages.python.interpreter} $out/bin/${pname}-python-interpreter \ - --prefix PYTHONPATH : "$PYTHONPATH" \ - ''${makeWrapperArgs[@]} - ''; - - # no tests in tarball - doCheck = false; - - meta = with lib; { - homepage = "https://github.com/enkore/i3pystatus"; - description = "Complete replacement for i3status"; - longDescription = '' - i3pystatus is a growing collection of python scripts for status output compatible - to i3status / i3bar of the i3 window manager. - ''; - license = licenses.mit; - platforms = platforms.linux; - maintainers = [ maintainers.igsha ]; - }; -} diff --git a/pkgs/by-name/i3/i3pystatus/package.nix b/pkgs/by-name/i3/i3pystatus/package.nix new file mode 100644 index 000000000000..b06de1abe984 --- /dev/null +++ b/pkgs/by-name/i3/i3pystatus/package.nix @@ -0,0 +1,98 @@ +{ + lib, + fetchFromGitHub, + libpulseaudio, + libnotify, + gobject-introspection, + python3Packages, + unstableGitUpdater, + fetchpatch2, + extraLibs ? [ ], +}: + +python3Packages.buildPythonApplication rec { + # i3pystatus moved to rolling release: + # https://github.com/enkore/i3pystatus/issues/584 + version = "3.35-unstable-2024-06-13"; + pname = "i3pystatus"; + pyproject = true; + build-system = [ python3Packages.setuptools ]; + + src = fetchFromGitHub { + owner = "enkore"; + repo = "i3pystatus"; + rev = "f3c539ad78ad1c54fc36e8439bf3905a784ccb34"; + sha256 = "3AGREY+elHQk8kaoFp8AHEzk2jNC/ICGYPh2hXo2G/w="; + }; + + patches = [ + # absolutifies the path to the test data in buds test so it can be run from anywhere + (fetchpatch2 { + # https://github.com/enkore/i3pystatus/pull/869 + url = "https://github.com/enkore/i3pystatus/commit/7a39c3527566411eb1b3e4f79191839ac4b0424e.patch"; + hash = "sha256-kSf2Nrypw8CCHC7acDkQXI27178HA3NJlyRWkHyYOGs="; + }) + ]; + + nativeBuildInputs = [ gobject-introspection ]; + + buildInputs = [ + libpulseaudio + libnotify + ]; + + nativeCheckInputs = [ python3Packages.pytestCheckHook ]; + + checkInputs = [ python3Packages.requests ]; + + propagatedBuildInputs = + with python3Packages; + [ + keyring + colour + netifaces + psutil + basiciw + pygobject3 + ] + ++ extraLibs; + + makeWrapperArgs = [ + # LC_TIME != C results in locale.Error: unsupported locale setting + "--set" + "LC_TIME" + "C" + "--suffix" + "LD_LIBRARY_PATH" + ":" + "${lib.makeLibraryPath [ libpulseaudio ]}" + ]; + + postPatch = '' + makeWrapperArgs+=(--set GI_TYPELIB_PATH "$GI_TYPELIB_PATH") + ''; + + postInstall = '' + makeWrapper ${python3Packages.python.interpreter} $out/bin/${pname}-python-interpreter \ + --prefix PYTHONPATH : "$PYTHONPATH" \ + ''${makeWrapperArgs[@]} + ''; + + passthru.updateScript = unstableGitUpdater { }; + + meta = { + mainProgram = "i3pystatus"; + homepage = "https://github.com/enkore/i3pystatus"; + description = "Complete replacement for i3status"; + longDescription = '' + i3pystatus is a growing collection of python scripts for status output compatible + to i3status / i3bar of the i3 window manager. + ''; + license = lib.licenses.mit; + platforms = lib.platforms.linux; + maintainers = with lib.maintainers; [ + igsha + lucasew + ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index eb9eca8ba719..a181c55235bf 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -31431,8 +31431,6 @@ with pkgs; i3nator = callPackage ../tools/misc/i3nator { }; - i3pystatus = callPackage ../applications/window-managers/i3/pystatus.nix { }; - i3status = callPackage ../applications/window-managers/i3/status.nix { }; i3status-rust = callPackage ../applications/window-managers/i3/status-rust.nix { };