Merge pull request #33364 from orivej/sc-controller

sc-controller: init at 0.4.0.1

Changed files
+67
pkgs
misc
drivers
sc-controller
top-level
+62
pkgs/misc/drivers/sc-controller/default.nix
···
+
{ 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 ];
+
};
+
}
+5
pkgs/top-level/all-packages.nix
···
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 { };