diff options
author | eyJhb <eyjhbb@gmail.com> | 2018-12-09 12:48:15 +0100 |
---|---|---|
committer | Jörg Thalheim <Mic92@users.noreply.github.com> | 2018-12-09 11:48:15 +0000 |
commit | f0f36737e20724aa8260c827c493ec0f26d879e2 (patch) | |
tree | d59a82fe1167ada2f228c89f8384170a3fc3d49a /pkgs | |
parent | f350904688706803820e987e96934832b931ae2b (diff) | |
download | nixlib-f0f36737e20724aa8260c827c493ec0f26d879e2.tar nixlib-f0f36737e20724aa8260c827c493ec0f26d879e2.tar.gz nixlib-f0f36737e20724aa8260c827c493ec0f26d879e2.tar.bz2 nixlib-f0f36737e20724aa8260c827c493ec0f26d879e2.tar.lz nixlib-f0f36737e20724aa8260c827c493ec0f26d879e2.tar.xz nixlib-f0f36737e20724aa8260c827c493ec0f26d879e2.tar.zst nixlib-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')
-rw-r--r-- | pkgs/os-specific/linux/displaylink/default.nix | 15 | ||||
-rw-r--r-- | pkgs/os-specific/linux/displaylink/udev-installer.patch | 18 |
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 35c9f087966e..9da5170c2e5d 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 000000000000..3e62e20c3150 --- /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 + |