summary refs log tree commit diff
path: root/pkgs/os-specific/linux/displaylink
diff options
context:
space:
mode:
authorNikolay Amiantov <ab@fmap.me>2017-05-01 15:23:41 +0300
committerNikolay Amiantov <ab@fmap.me>2017-05-19 02:51:45 +0300
commite17744067a5d3460e06d531a93b2527757b20a55 (patch)
treee9282762d6a68ce392c004ca70eae54cd7deb86b /pkgs/os-specific/linux/displaylink
parent8e7c7af3b88ca7df22e02f054f8fe07df52923f6 (diff)
downloadnixpkgs-e17744067a5d3460e06d531a93b2527757b20a55.tar
nixpkgs-e17744067a5d3460e06d531a93b2527757b20a55.tar.gz
nixpkgs-e17744067a5d3460e06d531a93b2527757b20a55.tar.bz2
nixpkgs-e17744067a5d3460e06d531a93b2527757b20a55.tar.lz
nixpkgs-e17744067a5d3460e06d531a93b2527757b20a55.tar.xz
nixpkgs-e17744067a5d3460e06d531a93b2527757b20a55.tar.zst
nixpkgs-e17744067a5d3460e06d531a93b2527757b20a55.zip
displaylink: 1.1.62 -> 1.3.52
Diffstat (limited to 'pkgs/os-specific/linux/displaylink')
-rw-r--r--pkgs/os-specific/linux/displaylink/default.nix61
1 files changed, 22 insertions, 39 deletions
diff --git a/pkgs/os-specific/linux/displaylink/default.nix b/pkgs/os-specific/linux/displaylink/default.nix
index 87cf7c18caf..1f923b9567a 100644
--- a/pkgs/os-specific/linux/displaylink/default.nix
+++ b/pkgs/os-specific/linux/displaylink/default.nix
@@ -1,64 +1,47 @@
-{ stdenv, lib, fetchurl, fetchFromGitHub, unzip, kernel, utillinux, libdrm, libusb1, makeWrapper }:
+{ stdenv, lib, fetchurl, unzip, utillinux, libusb1, evdi, systemd, makeWrapper }:
 
 let
   arch =
     if stdenv.system == "x86_64-linux" then "x64"
     else if stdenv.system == "i686-linux" then "x86"
     else throw "Unsupported architecture";
-  libPath = lib.makeLibraryPath [ stdenv.cc.cc utillinux libusb1 ];
+  bins = "${arch}-ubuntu-1604";
+  libPath = lib.makeLibraryPath [ stdenv.cc.cc utillinux libusb1 evdi ];
 
 in stdenv.mkDerivation rec {
   name = "displaylink-${version}";
-  version = "1.1.62";
+  version = "1.3.52";
 
-  src = fetchFromGitHub {
-    owner = "DisplayLink";
-    repo = "evdi";
-    rev = "fe779940ff9fc7b512019619e24a5b22e4070f6a";
-    sha256 = "02hw83f6lscms8hssjzf30hl9zly3b28qcxwmxvnqwfhx1q491z9";
-  };
-
-  daemon = fetchurl {
+  src = fetchurl {
     name = "displaylink.zip";
-    url = "http://www.displaylink.com/downloads/file?id=607";
-    sha256 = "0jky3xk4dfzbzg386qya9l9952i4m8zhf55fdl06pi9r82k2iijx";
+    url = "http://www.displaylink.com/downloads/file?id=744";
+    sha256 = "0ridpsxcf761vym0nlpq702qa46ynddzci17bjmyax2pph7khr0k";
   };
 
   nativeBuildInputs = [ unzip makeWrapper ];
 
-  buildInputs = [ kernel libdrm ];
-
   buildCommand = ''
-    unpackPhase
-    cd $sourceRoot
-    unzip $daemon
+    unzip $src
     chmod +x displaylink-driver-${version}.run
-    ./displaylink-driver-${version}.run --target daemon --noexec
+    ./displaylink-driver-${version}.run --target . --noexec
 
-    ( cd module
-      export makeFlags="$makeFlags KVER=${kernel.modDirVersion} KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
-      export hardeningDisable="pic format"
-      buildPhase
-      install -Dm755 evdi.ko $out/lib/modules/${kernel.modDirVersion}/kernel/drivers/gpu/drm/evdi/evdi.ko
+    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
 
-    ( cd library
-      buildPhase
-      install -Dm755 libevdi.so $out/lib/libevdi.so
-    )
+    install -Dt $out/lib/displaylink *.spkg
+    install -Dm755 ${bins}/DisplayLinkManager $out/bin/DisplayLinkManager
+    patchelf \
+      --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) \
+      --set-rpath ${libPath} \
+      $out/bin/DisplayLinkManager
+    wrapProgram $out/bin/DisplayLinkManager \
+      --run "cd $out/lib/displaylink"
 
     fixupPhase
-
-    ( cd daemon
-      install -Dt $out/lib/displaylink *.spkg
-      install -Dm755 ${arch}/DisplayLinkManager $out/bin/DisplayLinkManager
-      patchelf \
-        --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) \
-        --set-rpath $out/lib:${libPath} \
-        $out/bin/DisplayLinkManager
-      wrapProgram $out/bin/DisplayLinkManager \
-        --run "cd $out/lib/displaylink"
-    )
   '';
 
   meta = with stdenv.lib; {