summaryrefslogtreecommitdiffstats
path: root/pkgs/misc/drivers/sc-controller
diff options
context:
space:
mode:
authorrnhmjoj <rnhmjoj@inventati.org>2018-08-21 10:56:52 +0200
committerrnhmjoj <rnhmjoj@inventati.org>2018-08-21 10:56:52 +0200
commit5914624410d37f3f96560214609c4a0c73310d1d (patch)
treee59aff6e5880da20e30b378feec15b45506b75ae /pkgs/misc/drivers/sc-controller
parent81b681c0f55df908e6494b97c262a0cc5012d5ea (diff)
sc-controller: fix udev for NixOS
Diffstat (limited to 'pkgs/misc/drivers/sc-controller')
-rw-r--r--pkgs/misc/drivers/sc-controller/default.nix6
-rw-r--r--pkgs/misc/drivers/sc-controller/fix-udev.patch22
2 files changed, 26 insertions, 2 deletions
diff --git a/pkgs/misc/drivers/sc-controller/default.nix b/pkgs/misc/drivers/sc-controller/default.nix
index 872a90f7f59c..a13b49bd6cf2 100644
--- a/pkgs/misc/drivers/sc-controller/default.nix
+++ b/pkgs/misc/drivers/sc-controller/default.nix
@@ -2,7 +2,7 @@
, gtk3, gobjectIntrospection, libappindicator-gtk3, librsvg
, evdev, pygobject3, pylibacl, pytest
, linuxHeaders
-, libX11, libXext, libXfixes, libusb1
+, libX11, libXext, libXfixes, libusb1, libudev
}:
buildPythonApplication rec {
@@ -24,12 +24,14 @@ buildPythonApplication rec {
checkInputs = [ pytest ];
+ patches = [ ./fix-udev.patch ];
+
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 ];
+ LD_LIBRARY_PATH = lib.makeLibraryPath [ libX11 libXext libXfixes libusb1 libudev ];
preFixup = ''
gappsWrapperArgs+=(--prefix LD_LIBRARY_PATH : "$LD_LIBRARY_PATH")
diff --git a/pkgs/misc/drivers/sc-controller/fix-udev.patch b/pkgs/misc/drivers/sc-controller/fix-udev.patch
new file mode 100644
index 000000000000..2416ac216d76
--- /dev/null
+++ b/pkgs/misc/drivers/sc-controller/fix-udev.patch
@@ -0,0 +1,22 @@
+diff --git a/scc/lib/eudevmonitor.py b/scc/lib/eudevmonitor.py
+index 6c1bd18..182eff2 100644
+--- a/scc/lib/eudevmonitor.py
++++ b/scc/lib/eudevmonitor.py
+@@ -28,12 +28,11 @@ class Eudev:
+
+ def __init__(self):
+ self._ctx = None
+- self._lib = ctypes.CDLL(find_library(self.LIB_NAME))
+- if self._lib is None:
+- # Alternative approach for NixOS
+- try:
+- self._lib = ctypes.cdll.LoadLibrary("libudev.so")
+- except OSError:
++ try:
++ self._lib = ctypes.cdll.LoadLibrary("libudev.so")
++ except OSError:
++ self._lib = ctypes.CDLL(find_library(self.LIB_NAME))
++ if self._lib is None:
+ raise ImportError("No library named udev")
+ Eudev._setup_lib(self._lib)
+ self._ctx = self._lib.udev_new()