diff --git a/pkgs/development/python-modules/ds4drv.nix b/pkgs/development/python-modules/ds4drv.nix new file mode 100644 index 00000000000..8698a65ea11 --- /dev/null +++ b/pkgs/development/python-modules/ds4drv.nix @@ -0,0 +1,27 @@ +{ lib, fetchFromGitHub, buildPythonPackage +, evdev, pyudev +, bluez +}: + +buildPythonPackage rec { + name = "ds4drv-${version}"; + version = "0.5.1"; + + # PyPi only carries py3 wheel + src = fetchFromGitHub { + owner = "chrippa"; + repo = "ds4drv"; + rev = "v${version}"; + sha256 = "0vinpla0apizzykcyfis79mrm1i6fhns83nkzw85svypdhkx2g8v"; + }; + + propagatedBuildInputs = [ evdev pyudev ]; + + buildInputs = [ bluez ]; + + meta = { + description = "Userspace driver for the DualShock 4 controller"; + homepage = "https://github.com/chrippa/ds4drv"; + license = lib.licenses.mit; + }; +} diff --git a/pkgs/development/python-modules/pyudev.nix b/pkgs/development/python-modules/pyudev.nix new file mode 100644 index 00000000000..98607501e03 --- /dev/null +++ b/pkgs/development/python-modules/pyudev.nix @@ -0,0 +1,26 @@ +{ lib, fetchurl, buildPythonPackage +, six, systemd +}: + +buildPythonPackage rec { + name = "pyudev-${version}"; + version = "0.21.0"; + + src = fetchurl { + url = "mirror://pypi/p/pyudev/${name}.tar.gz"; + sha256 = "0arz0dqp75sszsmgm6vhg92n1lsx91ihddx3m944f4ah0487ljq9"; + }; + + postPatch = '' + substituteInPlace src/pyudev/_ctypeslib/libudev.py \ + --replace "find_library('udev')" "'${systemd.lib}/lib/libudev.so'" + ''; + + propagatedBuildInputs = [ systemd six ]; + + meta = { + homepage = "http://pyudev.readthedocs.org/"; + description = "Pure Python libudev binding"; + license = lib.licenses.lgpl21Plus; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index c248e4c7784..11ebfad988c 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -6590,24 +6590,8 @@ in { }; }; - ds4drv = buildPythonPackage rec { - name = "ds4drv-${version}"; - version = "0.5.0"; - src = pkgs.fetchurl { - url = "mirror://pypi/d/ds4drv/${name}.tar.gz"; - sha256 = "0dq2z1z09zxa6rn3v94vwqaaz29jwiydkss8hbjglixf20krmw3b"; - }; - - propagatedBuildInputs = with self; [ evdev pyudev ]; - - buildInputs = [ pkgs.bluez ]; - - meta = { - description = "Userspace driver for the DualShock 4 controller"; - homepage = "https://github.com/chrippa/ds4drv"; - license = licenses.mit; - }; - + ds4drv = callPackage ../development/python-modules/ds4drv.nix { + inherit (pkgs) fetchFromGitHub bluez; }; dyn = buildPythonPackage rec { @@ -21200,32 +21184,10 @@ in { buildInputs = with self; [ pyasn1 pycrypto ]; }; - pyudev = buildPythonPackage rec { - name = "pyudev-${version}"; - version = "0.16.1"; - - src = pkgs.fetchurl { - url = "mirror://pypi/p/pyudev/${name}.tar.gz"; - sha256 = "765d1c14bd9bd031f64e2612225621984cb2bbb8cbc0c03538bcc4c735ff1c95"; - }; - - postPatch = '' - sed -i -e '/udev_library_name/,/^ *libudev/ { - s|CDLL([^,]*|CDLL("${pkgs.systemd.lib}/lib/libudev.so.1"|p; d - }' pyudev/_libudev.py - ''; - - propagatedBuildInputs = with self; [ pkgs.systemd ]; - - meta = { - homepage = "http://pyudev.readthedocs.org/"; - description = "Pure Python libudev binding"; - license = licenses.lgpl21Plus; - platforms = platforms.linux; - }; + pyudev = callPackage ../development/python-modules/pyudev.nix { + inherit (pkgs) fetchurl systemd; }; - pynzb = buildPythonPackage (rec { name = "pynzb-0.1.0";