3
0
Fork 0
forked from mirrors/nixpkgs
nixpkgs/pkgs/os-specific/linux/nvidia-x11/default.nix
Vladimír Čunát 77986803a6 nvidia_x11: fix nvidia-settings after the major update
The GUI would no longer find libs it needed.
Now it's gtk3 by default, so we don't support gtk2 version for simplicity.
ldd finds no missing libs after this commit.
2015-02-21 16:07:53 +01:00

63 lines
2 KiB
Nix

{ stdenv, fetchurl, kernel ? null, xlibs, zlib, perl
, gtk3, atk, pango, glib, gdk_pixbuf, cairo
, # Whether to build the libraries only (i.e. not the kernel module or
# nvidia-settings). Used to support 32-bit binaries on 64-bit
# Linux.
libsOnly ? false
}:
with stdenv.lib;
assert (!libsOnly) -> kernel != null;
let
versionNumber = "346.35";
# Policy: use the highest stable version as the default (on our master).
inherit (stdenv.lib) makeLibraryPath;
in
stdenv.mkDerivation {
name = "nvidia-x11-${versionNumber}${optionalString (!libsOnly) "-${kernel.version}"}";
builder = ./builder.sh;
src =
if stdenv.system == "i686-linux" then
fetchurl {
url = "http://us.download.nvidia.com/XFree86/Linux-x86/${versionNumber}/NVIDIA-Linux-x86-${versionNumber}.run";
sha256 = "09fz8nydi8ip3yv7dmbwnpwvjql5wp582z57022ppb9hqwq3r9mv";
}
else if stdenv.system == "x86_64-linux" then
fetchurl {
url = "http://us.download.nvidia.com/XFree86/Linux-x86_64/${versionNumber}/NVIDIA-Linux-x86_64-${versionNumber}-no-compat32.run";
sha256 = "1z9a69a9xbcrz925mj02l2qaqcnhxzh2msbq4hf73p7x4h94ibkx";
}
else throw "nvidia-x11 does not support platform ${stdenv.system}";
inherit versionNumber libsOnly;
kernel = if libsOnly then null else kernel.dev;
dontStrip = true;
glPath = makeLibraryPath [xlibs.libXext xlibs.libX11 xlibs.libXrandr];
cudaPath = makeLibraryPath [zlib stdenv.cc.cc];
openclPath = makeLibraryPath [zlib];
allLibPath = makeLibraryPath [xlibs.libXext xlibs.libX11 xlibs.libXrandr zlib stdenv.cc.cc];
# we don't support the gtk2 version
gtk3Path = optionalString (!libsOnly) (makeLibraryPath
[ gtk3 atk pango glib gdk_pixbuf cairo ] );
buildInputs = [ perl ];
meta = with stdenv.lib.meta; {
homepage = http://www.nvidia.com/object/unix.html;
description = "X.org driver and kernel module for NVIDIA graphics cards";
license = licenses.unfreeRedistributable;
platforms = platforms.linux;
maintainers = [ maintainers.vcunat ];
};
}