diff options
Diffstat (limited to 'nixpkgs/pkgs/by-name/ha/handheld-daemon/package.nix')
-rw-r--r-- | nixpkgs/pkgs/by-name/ha/handheld-daemon/package.nix | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/by-name/ha/handheld-daemon/package.nix b/nixpkgs/pkgs/by-name/ha/handheld-daemon/package.nix new file mode 100644 index 000000000000..bb0c9d65bfe1 --- /dev/null +++ b/nixpkgs/pkgs/by-name/ha/handheld-daemon/package.nix @@ -0,0 +1,54 @@ +{ config +, fetchFromGitHub +, hidapi +, kmod +, lib +, python3 +, toybox +}: +python3.pkgs.buildPythonApplication rec { + pname = "handheld-daemon"; + version = "1.1.0"; + pyproject = true; + + src = fetchFromGitHub { + owner = "hhd-dev"; + repo = "hhd"; + rev = "v${version}"; + hash = "sha256-ovLC1BQ98jUaDEMPBzWma4TYSzTF+yE/cMemFdJmqlE="; + }; + + propagatedBuildInputs = with python3.pkgs; [ + evdev + hidapi + kmod + pyyaml + rich + setuptools + toybox + ]; + + # This package doesn't have upstream tests. + doCheck = false; + + # handheld-daemon contains a fork of the python module `hid`, so this hook + # is borrowed from the `hid` derivation. + postPatch = '' + hidapi=${ hidapi }/lib/ + test -d $hidapi || { echo "ERROR: $hidapi doesn't exist, please update/fix this build expression."; exit 1; } + sed -i -e "s|libhidapi|$hidapi/libhidapi|" src/hhd/controller/lib/hid.py + ''; + + postInstall = '' + install -Dm644 $src/usr/lib/udev/rules.d/83-hhd.rules -t $out/lib/udev/rules.d/ + ''; + + meta = with lib; { + homepage = "https://github.com/hhd-dev/hhd/"; + description = "Linux support for handheld gaming devices like the Legion Go, ROG Ally, and GPD Win"; + platforms = platforms.linux; + license = licenses.mit; + maintainers = with maintainers; [ appsforartists ]; + mainProgram = "hhd"; + }; +} |