about summary refs log tree commit diff
path: root/pkgs/os-specific
diff options
context:
space:
mode:
authorFlorian Klink <flokli@flokli.de>2020-12-27 22:30:34 +0100
committerGitHub <noreply@github.com>2020-12-27 22:30:34 +0100
commitb19ae92d505f48b81d55ecdb1956a0e4340306ef (patch)
treeb24c40adcd16b71347b55f6cc6b6e55e0e1fa16b /pkgs/os-specific
parent05140d25dcb5f491613b0c76bd39eecd97241948 (diff)
parent43f74794de82cfc5b29b9ad42ac3416d460e5d5d (diff)
downloadnixlib-b19ae92d505f48b81d55ecdb1956a0e4340306ef.tar
nixlib-b19ae92d505f48b81d55ecdb1956a0e4340306ef.tar.gz
nixlib-b19ae92d505f48b81d55ecdb1956a0e4340306ef.tar.bz2
nixlib-b19ae92d505f48b81d55ecdb1956a0e4340306ef.tar.lz
nixlib-b19ae92d505f48b81d55ecdb1956a0e4340306ef.tar.xz
nixlib-b19ae92d505f48b81d55ecdb1956a0e4340306ef.tar.zst
nixlib-b19ae92d505f48b81d55ecdb1956a0e4340306ef.zip
Merge pull request #107294 from flokli/displaylink-simplify
displaylink: manually activate dlm.service
Diffstat (limited to 'pkgs/os-specific')
-rw-r--r--pkgs/os-specific/linux/displaylink/99-displaylink.rules1
-rw-r--r--pkgs/os-specific/linux/displaylink/default.nix30
-rw-r--r--pkgs/os-specific/linux/displaylink/udev-installer.patch18
3 files changed, 16 insertions, 33 deletions
diff --git a/pkgs/os-specific/linux/displaylink/99-displaylink.rules b/pkgs/os-specific/linux/displaylink/99-displaylink.rules
new file mode 100644
index 000000000000..ceeb658a415a
--- /dev/null
+++ b/pkgs/os-specific/linux/displaylink/99-displaylink.rules
@@ -0,0 +1 @@
+ACTION=="add", SUBSYSTEM=="usb", DRIVERS=="usb", ATTRS{idVendor}=="17e9", ATTR{bInterfaceClass}=="ff", ATTR{bInterfaceProtocol}=="03", TAG+="systemd", ENV{SYSTEMD_WANTS}="dlm.service"
diff --git a/pkgs/os-specific/linux/displaylink/default.nix b/pkgs/os-specific/linux/displaylink/default.nix
index dcdafb98d707..5e60d68bc2bb 100644
--- a/pkgs/os-specific/linux/displaylink/default.nix
+++ b/pkgs/os-specific/linux/displaylink/default.nix
@@ -1,6 +1,14 @@
-{ stdenv, lib, unzip, util-linux,
-  libusb1, evdi, systemd, makeWrapper, requireFile, substituteAll }:
-
+{ stdenv
+, lib
+, unzip
+, util-linux
+, libusb1
+, evdi
+, systemd
+, makeWrapper
+, requireFile
+, substituteAll
+}:
 let
   arch =
     if stdenv.hostPlatform.system == "x86_64-linux" then "x64"
@@ -9,7 +17,8 @@ let
   bins = "${arch}-ubuntu-1604";
   libPath = lib.makeLibraryPath [ stdenv.cc.cc util-linux libusb1 evdi ];
 
-in stdenv.mkDerivation rec {
+in
+stdenv.mkDerivation rec {
   pname = "displaylink";
   version = "5.3.1.34";
 
@@ -39,20 +48,11 @@ in stdenv.mkDerivation rec {
     ./displaylink-driver-${version}.run --target . --noexec --nodiskspace
   '';
 
-  patches = [ (substituteAll {
-    src = ./udev-installer.patch;
-    inherit systemd;
-  })];
-
   installPhase = ''
-    sed -i "s,/opt/displaylink/udev.sh,$out/lib/udev/displaylink.sh,g" udev-installer.sh
-    ( source udev-installer.sh
-      mkdir -p $out/lib/udev/rules.d
-      main systemd "$out/lib/udev/rules.d/99-displaylink.rules" "$out/lib/udev/displaylink.sh"
-    )
-
     install -Dt $out/lib/displaylink *.spkg
     install -Dm755 ${bins}/DisplayLinkManager $out/bin/DisplayLinkManager
+    mkdir -p $out/lib/udev/rules.d
+    cp ${./99-displaylink.rules} $out/lib/udev/rules.d/99-displaylink.rules
     patchelf \
       --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) \
       --set-rpath ${libPath} \
diff --git a/pkgs/os-specific/linux/displaylink/udev-installer.patch b/pkgs/os-specific/linux/displaylink/udev-installer.patch
deleted file mode 100644
index 880c073fbcf6..000000000000
--- a/pkgs/os-specific/linux/displaylink/udev-installer.patch
+++ /dev/null
@@ -1,18 +0,0 @@
---- a/udev-installer.sh	2018-12-09 12:05:53.772318942 +0100
-+++ b/udev-installer.sh	2018-12-09 12:06:19.939947629 +0100
-@@ -21,12 +21,12 @@
-   cat <<'EOF'
- start_service()
- {
--  systemctl start displaylink-driver
-+  /run/current-system/systemd/bin/systemctl start --no-block dlm
- }
- 
- stop_service()
- {
--  systemctl stop displaylink-driver
-+  /run/current-system/systemd/bin/systemctl stop dlm
- }
- 
- EOF
-