Skip to content

Commit

Permalink
python312Packages.mss: modernize, test on linux
Browse files Browse the repository at this point in the history
  • Loading branch information
mweinelt committed Oct 26, 2024
1 parent c00b953 commit 00ea317
Show file tree
Hide file tree
Showing 2 changed files with 60 additions and 7 deletions.
50 changes: 43 additions & 7 deletions pkgs/development/python-modules/mss/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,28 @@
buildPythonPackage,
fetchPypi,
pythonOlder,
stdenv,
substituteAll,

# build-system
hatchling,

# native dependencies
xorg,

# tests
lsof,
pillow,
pytest-cov-stub,
pytest,
pyvirtualdisplay,
xvfb-run,
}:

buildPythonPackage rec {
pname = "mss";
version = "9.0.2";
format = "setuptools";
pyproject = true;

disabled = pythonOlder "3.6";

Expand All @@ -17,13 +33,33 @@ buildPythonPackage rec {
hash = "sha256-yWpOxzIk2n2yK8B+88+qGPi4aQDRhy4pETu87wCToh4=";
};

prePatch = ''
# By default it attempts to build Windows-only functionality
rm src/mss/windows.py
'';
patches = lib.optionals stdenv.isLinux [
(substituteAll {
src = ./linux-paths.patch;
x11 = "${xorg.libX11}/lib/libX11.so";
xfixes = "${xorg.libXfixes}/lib/libXfixes.so";
xrandr = "${xorg.libXrandr}/lib/libXrandr.so";
})
];

# Skipping tests due to most relying on DISPLAY being set
doCheck = false;
build-system = [ hatchling ];

doCheck = stdenv.isLinux;

nativeCheckInputs = [
lsof
pillow
pytest-cov-stub
pytest
pyvirtualdisplay
xvfb-run
];

checkPhase = ''
runHook preCheck
xvfb-run pytest -k "not test_grab_with_tuple and not test_grab_with_tuple_percents and not test_resource_leaks"
runHook postCheck
'';

pythonImportsCheck = [ "mss" ];

Expand Down
17 changes: 17 additions & 0 deletions pkgs/development/python-modules/mss/linux-paths.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
diff --git a/src/mss/linux.py b/src/mss/linux.py
index 6dac52b..c90bd93 100644
--- a/src/mss/linux.py
+++ b/src/mss/linux.py
@@ -185,9 +185,9 @@ class XWindowAttributes(Structure):


_ERROR = {}
-_X11 = find_library("X11")
-_XFIXES = find_library("Xfixes")
-_XRANDR = find_library("Xrandr")
+_X11 = "@x11@"
+_XFIXES = "@xfixes@"
+_XRANDR = "@xrandr@"


@CFUNCTYPE(c_int, POINTER(Display), POINTER(XErrorEvent))

0 comments on commit 00ea317

Please sign in to comment.