2015-09-15 10:26:18 +01:00
|
|
|
{ stdenv, fetchurl, kernel ? null, which, imake
|
2010-05-18 20:36:55 +01:00
|
|
|
, mesa # for fgl_glxgears
|
|
|
|
, libXxf86vm, xf86vidmodeproto # for fglrx_gamma
|
|
|
|
, xorg, makeWrapper, glibc, patchelf
|
2012-10-07 17:03:06 +01:00
|
|
|
, unzip
|
2014-10-14 23:37:39 +01:00
|
|
|
, qt4 # for amdcccle
|
2014-09-06 05:17:00 +01:00
|
|
|
, # Whether to build the libraries only (i.e. not the kernel module or
|
|
|
|
# driver utils). Used to support 32-bit binaries on 64-bit
|
|
|
|
# Linux.
|
|
|
|
libsOnly ? false
|
2010-05-18 20:36:55 +01:00
|
|
|
}:
|
|
|
|
|
2014-09-06 05:17:00 +01:00
|
|
|
assert (!libsOnly) -> kernel != null;
|
|
|
|
|
2010-05-18 20:36:55 +01:00
|
|
|
# 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)
|
|
|
|
|
2014-01-22 09:57:43 +00:00
|
|
|
# The gentoo ebuild contains much more magic and is usually a great resource to
|
|
|
|
# find patches :)
|
2010-05-18 20:36:55 +01:00
|
|
|
|
|
|
|
# http://wiki.cchtml.com/index.php/Main_Page
|
|
|
|
|
2012-10-07 17:03:06 +01:00
|
|
|
# There is one issue left:
|
|
|
|
# /usr/lib/dri/fglrx_dri.so must point to /run/opengl-driver/lib/fglrx_dri.so
|
|
|
|
|
2014-09-06 05:17:00 +01:00
|
|
|
with stdenv.lib;
|
2014-01-05 01:57:21 +00:00
|
|
|
|
|
|
|
stdenv.mkDerivation {
|
2015-08-03 05:14:36 +01:00
|
|
|
name = "ati-drivers-15.7" + (optionalString (!libsOnly) "-${kernel.version}");
|
2010-05-18 20:36:55 +01:00
|
|
|
|
|
|
|
builder = ./builder.sh;
|
|
|
|
|
|
|
|
inherit libXxf86vm xf86vidmodeproto;
|
2015-01-15 04:25:26 +00:00
|
|
|
gcc = stdenv.cc.cc;
|
2010-05-18 20:36:55 +01:00
|
|
|
|
2012-02-17 14:32:28 +00:00
|
|
|
src = fetchurl {
|
2015-08-03 05:14:36 +01:00
|
|
|
url = "http://www2.ati.com/drivers/linux/amd-driver-installer-15.20.1046-x86.x86_64.zip";
|
|
|
|
sha256 = "ffde64203f49d9288eaa25f4d744187b6f4f14a87a444bab6a001d822b327a9d";
|
2013-12-13 23:59:17 +00:00
|
|
|
curlOpts = "--referer http://support.amd.com/en-us/download/desktop?os=Linux%20x86_64";
|
2010-05-18 20:36:55 +01:00
|
|
|
};
|
|
|
|
|
2015-08-03 05:46:29 +01:00
|
|
|
patchPhase = "patch -p1 < ${./kernel-api-fixes.patch}";
|
2014-01-22 09:57:43 +00:00
|
|
|
patchPhaseSamples = "patch -p2 < ${./patch-samples.patch}";
|
2013-08-22 11:00:23 +01:00
|
|
|
|
2012-02-17 14:32:28 +00:00
|
|
|
buildInputs =
|
2015-09-15 10:26:18 +01:00
|
|
|
[ xorg.libXext xorg.libX11 xorg.libXinerama
|
|
|
|
xorg.libXrandr which imake makeWrapper
|
2012-02-17 14:32:28 +00:00
|
|
|
patchelf
|
2012-10-07 17:03:06 +01:00
|
|
|
unzip
|
2013-08-22 11:00:23 +01:00
|
|
|
mesa
|
2014-10-14 23:37:39 +01:00
|
|
|
qt4
|
2012-02-17 14:32:28 +00:00
|
|
|
];
|
2013-01-17 21:05:59 +00:00
|
|
|
|
2014-09-06 05:17:00 +01:00
|
|
|
inherit libsOnly;
|
|
|
|
|
|
|
|
kernel = if libsOnly then null else kernel.dev;
|
2013-03-24 11:45:00 +00:00
|
|
|
|
|
|
|
inherit glibc /* glibc only used for setting interpreter */;
|
2013-01-17 21:05:59 +00:00
|
|
|
|
2012-02-17 14:32:28 +00:00
|
|
|
LD_LIBRARY_PATH = stdenv.lib.concatStringsSep ":"
|
2016-01-24 07:29:57 +00:00
|
|
|
[ "${xorg.libXrandr.out}/lib"
|
2016-01-24 07:29:57 +00:00
|
|
|
"${xorg.libXrender.out}/lib"
|
2016-01-24 07:29:51 +00:00
|
|
|
"${xorg.libXext.out}/lib"
|
2016-01-24 07:29:49 +00:00
|
|
|
"${xorg.libX11.out}/lib"
|
2016-01-24 07:29:54 +00:00
|
|
|
"${xorg.libXinerama.out}/lib"
|
2010-05-18 20:36:55 +01:00
|
|
|
];
|
|
|
|
|
2013-08-22 11:00:23 +01:00
|
|
|
# without this some applications like blender don't start, but they start
|
|
|
|
# with nvidia. This causes them to be symlinked to $out/lib so that they
|
|
|
|
# appear in /run/opengl-driver/lib which get's added to LD_LIBRARY_PATH
|
2014-01-22 09:57:43 +00:00
|
|
|
extraDRIlibs = [ xorg.libXext ];
|
2013-08-22 11:00:23 +01:00
|
|
|
|
2014-10-14 23:37:39 +01:00
|
|
|
inherit mesa qt4; # only required to build examples and amdcccle
|
2010-05-18 20:36:55 +01:00
|
|
|
|
2014-01-22 09:57:43 +00:00
|
|
|
meta = with stdenv.lib; {
|
2013-01-17 21:05:59 +00:00
|
|
|
description = "ATI drivers";
|
2010-05-18 20:36:55 +01:00
|
|
|
homepage = http://support.amd.com/us/gpudownload/Pages/index.aspx;
|
2014-01-22 09:57:43 +00:00
|
|
|
license = licenses.unfree;
|
2014-10-14 23:37:39 +01:00
|
|
|
maintainers = with maintainers; [ marcweber offline jgeerds ];
|
2014-09-06 05:17:00 +01:00
|
|
|
platforms = platforms.linux;
|
2013-11-04 23:04:36 +00:00
|
|
|
hydraPlatforms = [];
|
2010-05-18 20:36:55 +01:00
|
|
|
};
|
|
|
|
}
|