summary refs log tree commit diff
path: root/pkgs/os-specific/linux/displaylink
diff options
context:
space:
mode:
authoreyJhb <eyjhbb@gmail.com>2018-12-09 12:48:15 +0100
committerJörg Thalheim <Mic92@users.noreply.github.com>2018-12-09 11:48:15 +0000
commitf0f36737e20724aa8260c827c493ec0f26d879e2 (patch)
treed59a82fe1167ada2f228c89f8384170a3fc3d49a /pkgs/os-specific/linux/displaylink
parentf350904688706803820e987e96934832b931ae2b (diff)
downloadnixpkgs-f0f36737e20724aa8260c827c493ec0f26d879e2.tar
nixpkgs-f0f36737e20724aa8260c827c493ec0f26d879e2.tar.gz
nixpkgs-f0f36737e20724aa8260c827c493ec0f26d879e2.tar.bz2
nixpkgs-f0f36737e20724aa8260c827c493ec0f26d879e2.tar.lz
nixpkgs-f0f36737e20724aa8260c827c493ec0f26d879e2.tar.xz
nixpkgs-f0f36737e20724aa8260c827c493ec0f26d879e2.tar.zst
nixpkgs-f0f36737e20724aa8260c827c493ec0f26d879e2.zip
displaylink: changed systemd start to not block (#51760)
Previously during boot, displaylink would hang during boot for the 2
minutes timeout.
Diffstat (limited to 'pkgs/os-specific/linux/displaylink')
-rw-r--r--pkgs/os-specific/linux/displaylink/default.nix15
-rw-r--r--pkgs/os-specific/linux/displaylink/udev-installer.patch18
2 files changed, 28 insertions, 5 deletions
diff --git a/pkgs/os-specific/linux/displaylink/default.nix b/pkgs/os-specific/linux/displaylink/default.nix
index 35c9f087966..9da5170c2e5 100644
--- a/pkgs/os-specific/linux/displaylink/default.nix
+++ b/pkgs/os-specific/linux/displaylink/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, unzip, utillinux,
-  libusb1, evdi, systemd, makeWrapper, requireFile }:
+  libusb1, evdi, systemd, makeWrapper, requireFile, substituteAll }:
 
 let
   arch =
@@ -33,17 +33,23 @@ in stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ unzip makeWrapper ];
 
-  buildCommand = ''
+  unpackPhase = ''
     unzip $src
     chmod +x displaylink-driver-${version}.run
     ./displaylink-driver-${version}.run --target . --noexec
+  '';
+
+  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"
     )
-    sed -i '2iPATH=${systemd}/bin:$PATH' $out/lib/udev/displaylink.sh
 
     install -Dt $out/lib/displaylink *.spkg
     install -Dm755 ${bins}/DisplayLinkManager $out/bin/DisplayLinkManager
@@ -53,13 +59,12 @@ in stdenv.mkDerivation rec {
       $out/bin/DisplayLinkManager
     wrapProgram $out/bin/DisplayLinkManager \
       --run "cd $out/lib/displaylink"
-
-    fixupPhase
   '';
 
   dontStrip = true;
   dontPatchELF = true;
 
+
   meta = with stdenv.lib; {
     description = "DisplayLink DL-5xxx, DL-41xx and DL-3x00 Driver for Linux";
     platforms = [ "x86_64-linux" "i686-linux" ];
diff --git a/pkgs/os-specific/linux/displaylink/udev-installer.patch b/pkgs/os-specific/linux/displaylink/udev-installer.patch
new file mode 100644
index 00000000000..3e62e20c315
--- /dev/null
+++ b/pkgs/os-specific/linux/displaylink/udev-installer.patch
@@ -0,0 +1,18 @@
+--- 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 dlm
++  @systemd@/bin/systemctl start --no-block dlm
+ }
+ 
+ stop_service()
+ {
+-  systemctl stop dlm
++  @systemd@/bin/systemctl stop dlm
+ }
+ 
+ EOF
+