diff --git a/pkgs/applications/misc/lutris/default.nix b/pkgs/applications/misc/lutris/default.nix index 2d70daa94ecb..fed9d245c190 100644 --- a/pkgs/applications/misc/lutris/default.nix +++ b/pkgs/applications/misc/lutris/default.nix @@ -15,6 +15,11 @@ , webkitgtk , wrapGAppsHook + # check inputs +, xvfb-run +, nose +, flake8 + # python dependencies , dbus-python , distro @@ -46,7 +51,7 @@ let # See lutris/util/linux.py - binPath = lib.makeBinPath [ + requiredTools = [ xrandr pciutils psmisc @@ -64,6 +69,8 @@ let xorg.xkbcomp ]; + binPath = lib.makeBinPath requiredTools; + gstDeps = with gst_all_1; [ gst-libav gst-plugins-bad @@ -76,13 +83,13 @@ let in buildPythonApplication rec { pname = "lutris-original"; - version = "0.5.8.4"; + version = "0.5.9.1"; src = fetchFromGitHub { owner = "lutris"; repo = "lutris"; rev = "v${version}"; - sha256 = "sha256-5ivXIgDyM9PRvuUhPFPgziXDvggcL+p65kI2yOaiS1M="; + sha256 = "sha256-ykPJneCKbFKv0x/EDo9PkRb1LkMeFeYzTDmvE3ShNe0="; }; nativeBuildInputs = [ wrapGAppsHook ]; @@ -111,6 +118,20 @@ buildPythonApplication rec { python_magic ]; + checkInputs = [ xvfb-run nose flake8 ] ++ requiredTools; + preCheck = "export HOME=$PWD"; + checkPhase = '' + runHook preCheck + xvfb-run -s '-screen 0 800x600x24' make test + runHook postCheck + ''; + + # unhardcodes xrandr and fixes nosetests + # upstream in progress: https://github.com/lutris/lutris/pull/3754 + patches = [ + ./fixes.patch + ]; + # avoid double wrapping dontWrapGApps = true; makeWrapperArgs = [ @@ -121,8 +142,6 @@ buildPythonApplication rec { # see https://github.com/NixOS/nixpkgs/issues/56943 strictDeps = false; - preCheck = "export HOME=$PWD"; - meta = with lib; { homepage = "https://lutris.net"; description = "Open Source gaming platform for GNU/Linux"; diff --git a/pkgs/applications/misc/lutris/fixes.patch b/pkgs/applications/misc/lutris/fixes.patch new file mode 100644 index 000000000000..42482453f6a4 --- /dev/null +++ b/pkgs/applications/misc/lutris/fixes.patch @@ -0,0 +1,67 @@ +diff --git a/Makefile b/Makefile +index 821a9500..75affa77 100644 +--- a/Makefile ++++ b/Makefile +@@ -25,12 +25,12 @@ release: build-source upload upload-ppa + + test: + rm tests/fixtures/pga.db -f +- nosetests3 ++ nosetests + + cover: + rm tests/fixtures/pga.db -f + rm tests/coverage/ -rf +- nosetests3 --with-coverage --cover-package=lutris --cover-html --cover-html-dir=tests/coverage ++ nosetests --with-coverage --cover-package=lutris --cover-html --cover-html-dir=tests/coverage + + pgp-renew: + osc signkey --extend home:strycore +diff --git a/lutris/util/graphics/xrandr.py b/lutris/util/graphics/xrandr.py +index f788c94c..5544dbe9 100644 +--- a/lutris/util/graphics/xrandr.py ++++ b/lutris/util/graphics/xrandr.py +@@ -5,6 +5,7 @@ from collections import namedtuple + + from lutris.util.log import logger + from lutris.util.system import read_process_output ++from lutris.util.linux import LINUX_SYSTEM + + Output = namedtuple("Output", ("name", "mode", "position", "rotation", "primary", "rate")) + +@@ -12,7 +13,7 @@ Output = namedtuple("Output", ("name", "mode", "position", "rotation", "primary" + def _get_vidmodes(): + """Return video modes from XrandR""" + logger.debug("Retrieving video modes from XrandR") +- return read_process_output(["xrandr"]).split("\n") ++ return read_process_output([LINUX_SYSTEM.get("xrandr")]).split("\n") + + + def get_outputs(): # pylint: disable=too-many-locals +@@ -76,7 +77,7 @@ def turn_off_except(display): + for output in get_outputs(): + if output.name != display: + logger.info("Turning off %s", output[0]) +- subprocess.Popen(["xrandr", "--output", output.name, "--off"]) ++ subprocess.Popen([LINUX_SYSTEM.get("xrandr"), "--output", output.name, "--off"]) + + + def get_resolutions(): +@@ -111,7 +112,7 @@ def change_resolution(resolution): + logger.warning("Resolution %s doesn't exist.", resolution) + else: + logger.info("Changing resolution to %s", resolution) +- subprocess.Popen(["xrandr", "-s", resolution]) ++ subprocess.Popen([LINUX_SYSTEM.get("xrandr"), "-s", resolution]) + else: + for display in resolution: + logger.debug("Switching to %s on %s", display.mode, display.name) +@@ -128,7 +129,7 @@ def change_resolution(resolution): + logger.info("Switching resolution of %s to %s", display.name, display.mode) + subprocess.Popen( + [ +- "xrandr", ++ LINUX_SYSTEM.get("xrandr"), + "--output", + display.name, + "--mode",