From 24d61a48b30bb53b4b1720f215f613879e6d1037 Mon Sep 17 00:00:00 2001 From: Orivej Desh Date: Wed, 3 Jan 2018 00:01:37 +0000 Subject: [PATCH] sc-controller: init at 0.4.0.1 --- pkgs/misc/drivers/sc-controller/default.nix | 62 +++++++++++++++++++++ pkgs/top-level/all-packages.nix | 5 ++ 2 files changed, 67 insertions(+) create mode 100644 pkgs/misc/drivers/sc-controller/default.nix diff --git a/pkgs/misc/drivers/sc-controller/default.nix b/pkgs/misc/drivers/sc-controller/default.nix new file mode 100644 index 000000000000..bbb0d1523dfe --- /dev/null +++ b/pkgs/misc/drivers/sc-controller/default.nix @@ -0,0 +1,62 @@ +{ lib, buildPythonApplication, fetchFromGitHub, wrapGAppsHook +, gtk3, gobjectIntrospection, libappindicator-gtk3, librsvg +, evdev, pygobject3, pylibacl, pytest +, linuxHeaders +, libX11, libXext, libXfixes, libusb1 +}: + +buildPythonApplication rec { + pname = "sc-controller"; + version = "0.4.0.1"; + + src = fetchFromGitHub { + owner = "kozec"; + repo = "sc-controller"; + rev = "v${version}"; + sha256 = "0vhgiqg4r4bnn004ql80rvi23y05wlax80sj8qsr91pvqsxwv3yl"; + }; + + nativeBuildInputs = [ wrapGAppsHook ]; + + buildInputs = [ gtk3 gobjectIntrospection libappindicator-gtk3 librsvg ]; + + propagatedBuildInputs = [ evdev pygobject3 pylibacl ]; + + checkInputs = [ pytest ]; + + postPatch = '' + substituteInPlace scc/paths.py --replace sys.prefix "'$out'" + substituteInPlace scc/uinput.py --replace /usr/include ${linuxHeaders}/include + ''; + + LD_LIBRARY_PATH = lib.makeLibraryPath [ libX11 libXext libXfixes libusb1 ]; + + preFixup = '' + gappsWrapperArgs+=(--prefix LD_LIBRARY_PATH : "$LD_LIBRARY_PATH") + # gdk-pixbuf setup hook can not choose between propagated librsvg + # and our librsvg with GObject introspection. + GDK_PIXBUF_MODULE_FILE=$(echo ${librsvg}/lib/gdk-pixbuf-2.0/*/loaders.cache) + ''; + + postFixup = '' + ( + # scc runs these scripts as programs. (See find_binary() in scc/tools.py.) + cd $out/lib/python*/site-packages/scc/x11 + patchPythonScript scc-autoswitch-daemon.py + patchPythonScript scc-osd-daemon.py + ) + ''; + + checkPhase = '' + PYTHONPATH=. py.test + ''; + + meta = with lib; { + homepage = https://github.com/kozec/sc-controller; + # donations: https://www.patreon.com/kozec + description = "User-mode driver and GUI for Steam Controller and other controllers"; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = [ maintainers.orivej ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index bbaef3658d69..b15954384f8f 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -19754,6 +19754,11 @@ with pkgs; sane-frontends = callPackage ../applications/graphics/sane/frontends.nix { }; + sc-controller = pythonPackages.callPackage ../misc/drivers/sc-controller { + inherit libusb1; # Shadow python.pkgs.libusb1. + librsvg = librsvg.override { enableIntrospection = true; }; + }; + sct = callPackage ../tools/X11/sct {}; seafile-shared = callPackage ../misc/seafile-shared { };