|
1 |
| -{ stdenv, lib, fetchurl, fetchFromGitHub, unzip, kernel, utillinux, libdrm, libusb1, makeWrapper }: |
| 1 | +{ stdenv, lib, fetchurl, unzip, utillinux, libusb1, evdi, systemd, makeWrapper }: |
2 | 2 |
|
3 | 3 | let
|
4 | 4 | arch =
|
5 | 5 | if stdenv.system == "x86_64-linux" then "x64"
|
6 | 6 | else if stdenv.system == "i686-linux" then "x86"
|
7 | 7 | else throw "Unsupported architecture";
|
8 |
| - libPath = lib.makeLibraryPath [ stdenv.cc.cc utillinux libusb1 ]; |
| 8 | + bins = "${arch}-ubuntu-1604"; |
| 9 | + libPath = lib.makeLibraryPath [ stdenv.cc.cc utillinux libusb1 evdi ]; |
9 | 10 |
|
10 | 11 | in stdenv.mkDerivation rec {
|
11 | 12 | name = "displaylink-${version}";
|
12 |
| - version = "1.1.62"; |
| 13 | + version = "1.3.52"; |
13 | 14 |
|
14 |
| - src = fetchFromGitHub { |
15 |
| - owner = "DisplayLink"; |
16 |
| - repo = "evdi"; |
17 |
| - rev = "fe779940ff9fc7b512019619e24a5b22e4070f6a"; |
18 |
| - sha256 = "02hw83f6lscms8hssjzf30hl9zly3b28qcxwmxvnqwfhx1q491z9"; |
19 |
| - }; |
20 |
| - |
21 |
| - daemon = fetchurl { |
| 15 | + src = fetchurl { |
22 | 16 | name = "displaylink.zip";
|
23 |
| - url = "http://www.displaylink.com/downloads/file?id=607"; |
24 |
| - sha256 = "0jky3xk4dfzbzg386qya9l9952i4m8zhf55fdl06pi9r82k2iijx"; |
| 17 | + url = "http://www.displaylink.com/downloads/file?id=744"; |
| 18 | + sha256 = "0ridpsxcf761vym0nlpq702qa46ynddzci17bjmyax2pph7khr0k"; |
25 | 19 | };
|
26 | 20 |
|
27 | 21 | nativeBuildInputs = [ unzip makeWrapper ];
|
28 | 22 |
|
29 |
| - buildInputs = [ kernel libdrm ]; |
30 |
| - |
31 | 23 | buildCommand = ''
|
32 |
| - unpackPhase |
33 |
| - cd $sourceRoot |
34 |
| - unzip $daemon |
| 24 | + unzip $src |
35 | 25 | chmod +x displaylink-driver-${version}.run
|
36 |
| - ./displaylink-driver-${version}.run --target daemon --noexec |
| 26 | + ./displaylink-driver-${version}.run --target . --noexec |
37 | 27 |
|
38 |
| - ( cd module |
39 |
| - export makeFlags="$makeFlags KVER=${kernel.modDirVersion} KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" |
40 |
| - export hardeningDisable="pic format" |
41 |
| - buildPhase |
42 |
| - install -Dm755 evdi.ko $out/lib/modules/${kernel.modDirVersion}/kernel/drivers/gpu/drm/evdi/evdi.ko |
| 28 | + sed -i "s,/opt/displaylink/udev.sh,$out/lib/udev/displaylink.sh,g" udev-installer.sh |
| 29 | + ( source udev-installer.sh |
| 30 | + mkdir -p $out/lib/udev/rules.d |
| 31 | + main systemd "$out/lib/udev/rules.d/99-displaylink.rules" "$out/lib/udev/displaylink.sh" |
43 | 32 | )
|
| 33 | + sed -i '2iPATH=${systemd}/bin:$PATH' $out/lib/udev/displaylink.sh |
44 | 34 |
|
45 |
| - ( cd library |
46 |
| - buildPhase |
47 |
| - install -Dm755 libevdi.so $out/lib/libevdi.so |
48 |
| - ) |
| 35 | + install -Dt $out/lib/displaylink *.spkg |
| 36 | + install -Dm755 ${bins}/DisplayLinkManager $out/bin/DisplayLinkManager |
| 37 | + patchelf \ |
| 38 | + --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) \ |
| 39 | + --set-rpath ${libPath} \ |
| 40 | + $out/bin/DisplayLinkManager |
| 41 | + wrapProgram $out/bin/DisplayLinkManager \ |
| 42 | + --run "cd $out/lib/displaylink" |
49 | 43 |
|
50 | 44 | fixupPhase
|
51 |
| -
|
52 |
| - ( cd daemon |
53 |
| - install -Dt $out/lib/displaylink *.spkg |
54 |
| - install -Dm755 ${arch}/DisplayLinkManager $out/bin/DisplayLinkManager |
55 |
| - patchelf \ |
56 |
| - --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) \ |
57 |
| - --set-rpath $out/lib:${libPath} \ |
58 |
| - $out/bin/DisplayLinkManager |
59 |
| - wrapProgram $out/bin/DisplayLinkManager \ |
60 |
| - --run "cd $out/lib/displaylink" |
61 |
| - ) |
62 | 45 | '';
|
63 | 46 |
|
64 | 47 | meta = with stdenv.lib; {
|
|
0 commit comments