summary refs log tree commit diff
path: root/pkgs/os-specific/linux/ati-drivers/default.nix
blob: 65c42e09039a9465bbfd0c5aa250a0a5ec349e40 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
{stdenv, fetchurl , kernel, xlibs, which, imake
, mesa # for fgl_glxgears
, libXxf86vm, xf86vidmodeproto # for fglrx_gamma
, xorg, makeWrapper, glibc, patchelf
}:

# If you want to use a different Xorg version probably
# DIR_DEPENDING_ON_XORG_VERSION in builder.sh has to be adopted (?)
# make sure libglx.so of ati is used. xorg.xorgserver does provide it as well
# which is a problem because it doesn't contain the xorgserver patch supporting
# the XORG_DRI_DRIVER_PATH env var.
# See http://thread.gmane.org/gmane.linux.distributions.nixos/4145 for a
# workaround (TODO)

# The gentoo ebuild contains much more magic..

let lib = stdenv.lib;
    inherit (lib) concatStringsSep;
in
# http://wiki.cchtml.com/index.php/Main_Page

stdenv.mkDerivation {
  name = "ati-drivers";

  builder = ./builder.sh;

  inherit libXxf86vm xf86vidmodeproto;

  src =
    assert stdenv.system == "x86_64-linux";
  fetchurl {
    url = https://a248.e.akamai.net/f/674/9206/0/www2.ati.com/drivers/linux/ati-driver-installer-10-4-x86.x86_64.run;
    sha256 = "1rlqbfv729lray1c72ga4528kj7v4a5nmdznbgx7izwaxip2a45z";
  };

  buildInputs = [xlibs.libXext xlibs.libX11
    xlibs.libXrandr which imake makeWrapper
    patchelf
  ];
  inherit kernel glibc /* glibc only used for setting interpreter */;
  
  LD_LIBRARY_PATH = concatStringsSep ":"
    [ "${xorg.libXrandr}/lib"
      "${xorg.libXrender}/lib"
      "${xorg.libXext}/lib"
      "${xorg.libX11}/lib"
    ];

  inherit mesa; # only required to build examples

  meta = {
    description = "ati drivers";
    homepage = http://support.amd.com/us/gpudownload/Pages/index.aspx;
    license = "unfree";
    maintainers = [stdenv.lib.maintainers.marcweber];
    platforms = [ "x86_64-linux" ];
  };

  # moved assertions here because the name is evaluated when the NixOS manual is generated
  # Don't make that fail - fail lazily when a users tries to build this derivation only
  dummy =
    # assert xorg.xorgserver.name == "xorg-server-1.7.5";
    assert stdenv.system == "x86_64-linux"; # i686-linux should work as well - however I didn't test it.
    null;

}