From e17744067a5d3460e06d531a93b2527757b20a55 Mon Sep 17 00:00:00 2001 From: Nikolay Amiantov Date: Mon, 1 May 2017 15:23:41 +0300 Subject: displaylink: 1.1.62 -> 1.3.52 --- pkgs/os-specific/linux/displaylink/default.nix | 61 ++++++++++---------------- 1 file changed, 22 insertions(+), 39 deletions(-) (limited to 'pkgs/os-specific/linux/displaylink') 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; { -- cgit 1.4.1