Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ 2 lib, 3 stdenv, 4 buildPythonPackage, 5 fetchFromGitHub, 6 7 # build-system 8 setuptools, 9 setuptools-lint, 10 sphinx, 11 12 # dependencies 13 xlib, 14 evdev, 15 darwin, 16 six, 17 18 # tests 19 unittestCheckHook, 20}: 21 22buildPythonPackage rec { 23 pname = "pynput"; 24 version = "1.7.6"; 25 format = "pyproject"; 26 27 src = fetchFromGitHub { 28 owner = "moses-palmer"; 29 repo = "pynput"; 30 rev = "refs/tags/v${version}"; 31 hash = "sha256-gRq4LS9NvPL98N0Jk09Z0GfoHS09o3zM284BEWS+NW4="; 32 }; 33 34 postPatch = '' 35 substituteInPlace setup.py \ 36 --replace "'sphinx >=1.3.1'" "" 37 ''; 38 39 nativeBuildInputs = [ 40 setuptools 41 setuptools-lint 42 sphinx 43 ]; 44 45 propagatedBuildInputs = 46 [ six ] 47 ++ lib.optionals stdenv.isLinux [ 48 evdev 49 xlib 50 ] 51 ++ lib.optionals stdenv.isDarwin ( 52 with darwin.apple_sdk.frameworks; 53 [ 54 ApplicationServices 55 Quartz 56 ] 57 ); 58 59 doCheck = false; # requires running X server 60 61 nativeCheckInputs = [ unittestCheckHook ]; 62 63 meta = with lib; { 64 broken = stdenv.isDarwin; 65 description = "Library to control and monitor input devices"; 66 homepage = "https://github.com/moses-palmer/pynput"; 67 license = licenses.lgpl3; 68 maintainers = with maintainers; [ nickhu ]; 69 }; 70}