diff --git a/nixos/modules/hardware/opengl.nix b/nixos/modules/hardware/opengl.nix index c4fad9a66725..5e38a9880961 100644 --- a/nixos/modules/hardware/opengl.nix +++ b/nixos/modules/hardware/opengl.nix @@ -96,7 +96,7 @@ in example = literalExample "with pkgs; [ vaapiIntel libvdpau-va-gl vaapiVdpau ]"; description = '' Additional packages to add to OpenGL drivers. This can be used - to add additional VA-API/VDPAU drivers. + to add OpenCL drivers, VA-API/VDPAU drivers etc. ''; }; @@ -107,7 +107,7 @@ in description = '' Additional packages to add to 32-bit OpenGL drivers on 64-bit systems. Used when is - set. This can be used to add additional VA-API/VDPAU drivers. + set. This can be used to add OpenCL drivers, VA-API/VDPAU drivers etc. ''; }; diff --git a/pkgs/development/libraries/beignet/default.nix b/pkgs/development/libraries/beignet/default.nix index 5d5c834b4acf..7f127522f058 100644 --- a/pkgs/development/libraries/beignet/default.nix +++ b/pkgs/development/libraries/beignet/default.nix @@ -6,111 +6,99 @@ , llvm , libdrm , libX11 -, libXfixes , libpthreadstubs , libXdmcp , libXdamage -, libXxf86vm -, python -, gl +, libXext +, python3 , ocl-icd +, mesa_noglu +, makeWrapper +, beignet }: stdenv.mkDerivation rec { name = "beignet-${version}"; - version = "1.1.2"; + version = "1.2.1"; src = fetchurl { url = "https://01.org/sites/default/files/${name}-source.tar.gz"; - sha256 = "6a8d875afbb5e3c4fc57da1ea80f79abadd9136bfd87ab1f83c02784659f1d96"; + sha256 = "07y8ga545654jdbijmplga7a7j3jn04q5gfdjsl8cax16hsv0kmp"; }; patches = [ ./clang_llvm.patch ]; + enableParallelBuilding = true; + postPatch = '' - patchShebangs src/git_sha1.sh; - - for f in $(find utests -type f) - do - sed -e "s@isnan(@std::isnan(@g" -i $f - sed -e "s@_std::isnan@_isnan@g" -i $f - - sed -e "s@isinf(@std::isinf(@g" -i $f - sed -e "s@_std::isinf@_isinf@g" -i $f - done + patchShebangs src/git_sha1.sh ''; - configurePhase = '' - cmake . -DCMAKE_INSTALL_PREFIX=$out \ - -DCLANG_LIBRARY_DIR="${clang-unwrapped}/lib" \ - -DLLVM_INSTALL_DIR="${llvm}/bin" \ - -DCLANG_INSTALL_DIR="${clang-unwrapped}/bin" - ''; - - postInstall = '' - mkdir -p $out/utests/kernels - mkdir -p $out/utests/lib - - cp -r kernels $out/utests - cp src/libcl.so $out/utests/lib - - cat > $out/utests/setenv.sh << EOF -#!/bin/sh -export OCL_BITCODE_LIB_PATH=$out/lib/beignet/beignet.bc -export OCL_HEADER_FILE_DIR=$out/lib/beignet/include -export OCL_PCH_PATH=$out/lib/beignet/beignet.pch -export OCL_GBE_PATH=$out/lib/beignet/libgbe.so -export OCL_INTERP_PATH=$out/lib/beignet/libgbeinterp.so -export OCL_KERNEL_PATH=$out/utests/kernels -export OCL_IGNORE_SELF_TEST=1 -EOF - - function fixRunPath { - p0=$(patchelf --print-rpath $1) - p1=$(echo $p0 | sed -e "s@$(pwd)/src@$out/utests/lib@g" -) - p2=$(echo $p1 | sed -e "s@$(pwd)/utests@$out/utests@g" -) - patchelf --set-rpath $p2 $1 - } - - fixRunPath utests/utest_run - fixRunPath utests/libutests.so - - cp utests/utest_run $out/utests - cp utests/libutests.so $out/utests - - mkdir -p $out/bin - ln -s $out/utests/setenv.sh $out/bin/beignet_setenv.sh - ln -s $out/utests/utest_run $out/bin/beignet_utest_run - ''; - - # To run the unit tests, the user must be in "video" group. - # The nix builders are members of only "nixbld" group, so - # they are able to compile the tests, but not to run them. - # To verify the installation, add yourself to "video" group, - # switch to a working directory which has both read and write - # permissions, run: nix-shell -p pkgs.beignet, and execute: - # . beignet_setenv.sh && beignet_utest_run - doCheck = false; + cmakeFlags = [ "-DCLANG_LIBRARY_DIR=${clang-unwrapped}/lib" ]; buildInputs = [ llvm clang-unwrapped - cmake libX11 - pkgconfig - libdrm - gl - libXfixes + libXext libpthreadstubs + libdrm libXdmcp libXdamage - libXxf86vm - python ocl-icd + mesa_noglu ]; + nativeBuildInputs = [ + cmake + pkgconfig + python3 + ]; + + passthru.utests = stdenv.mkDerivation rec { + name = "beignet-utests-${version}"; + inherit version src; + + preConfigure = '' + cd utests + ''; + + enableParallelBuilding = true; + + nativeBuildInputs = [ + cmake + python3 + pkgconfig + makeWrapper + ]; + + buildInputs = [ + ocl-icd + ]; + + installPhase = '' + wrapBin() { + install -Dm755 "$1" "$out/bin/$(basename "$1")" + wrapProgram "$out/bin/$(basename "$1")" \ + --set OCL_BITCODE_LIB_PATH ${beignet}/lib/beignet/beignet.bc \ + --set OCL_HEADER_FILE_DIR "${beignet}/lib/beignet/include" \ + --set OCL_PCH_PATH "${beignet}/lib/beignet/beignet.pch" \ + --set OCL_GBE_PATH "${beignet}/lib/beignet/libgbe.so" \ + --set OCL_INTERP_PATH "${beignet}/lib/beignet/libgbeinterp.so" \ + --set OCL_KERNEL_PATH "$out/lib/beignet/kernels" \ + --set OCL_IGNORE_SELF_TEST 1 + } + + install -Dm755 libutests.so $out/lib/libutests.so + wrapBin utest_run + wrapBin flat_address_space + mkdir $out/lib/beignet + cp -r ../../kernels $out/lib/beignet + ''; + }; + meta = with stdenv.lib; { - homepage = https://cgit.freedesktop.org/beignet/; + homepage = "https://cgit.freedesktop.org/beignet/"; description = "OpenCL Library for Intel Ivy Bridge and newer GPUs"; longDescription = '' The package provides an open source implementation of the OpenCL specification for Intel GPUs. diff --git a/pkgs/development/libraries/ocl-icd/default.nix b/pkgs/development/libraries/ocl-icd/default.nix index 1cb8408416d3..6c3a77cfaf5e 100644 --- a/pkgs/development/libraries/ocl-icd/default.nix +++ b/pkgs/development/libraries/ocl-icd/default.nix @@ -1,14 +1,19 @@ -{stdenv, fetchurl, ruby }: +{stdenv, fetchurl, ruby, opencl-headers, mesa_noglu }: stdenv.mkDerivation rec { - name = "ocl-icd-2.2.9"; + name = "ocl-icd-${version}"; + version = "2.2.10"; src = fetchurl { - url = "https://forge.imag.fr/frs/download.php/716/${name}.tar.gz"; - sha256 = "1rgaixwnxmrq2aq4kcdvs0yx7i6krakarya9vqs7qwsv5hzc32hc"; + url = "https://forge.imag.fr/frs/download.php/810/${name}.tar.gz"; + sha256 = "0f14gpa13sdm0kzqv5yycp4pschbmi6n5fj7wl4ilspzsrqcgqr2"; }; - buildInputs = [ ruby ]; + buildInputs = [ ruby opencl-headers ]; + + postPatch = '' + sed -i 's,"/etc/OpenCL/vendors","${mesa_noglu.driverLink}/etc/OpenCL/vendors",g' ocl_icd_loader.c + ''; meta = with stdenv.lib; { description = "OpenCL ICD Loader"; diff --git a/pkgs/development/libraries/opencl-clhpp/default.nix b/pkgs/development/libraries/opencl-clhpp/default.nix new file mode 100644 index 000000000000..20b7c9ba6df2 --- /dev/null +++ b/pkgs/development/libraries/opencl-clhpp/default.nix @@ -0,0 +1,28 @@ +{ stdenv, fetchFromGitHub, cmake, python, opencl-headers }: + +stdenv.mkDerivation rec { + name = "opencl-clhpp-${version}"; + version = "2.0.10"; + + src = fetchFromGitHub { + owner = "KhronosGroup"; + repo = "OpenCL-CLHPP"; + rev = "v${version}"; + sha256 = "0h5kpg5cl8wzfnqmv6i26aig2apv06ffm9p3rh35938n9r8rladm"; + }; + + nativeBuildInputs = [ cmake python ]; + + propagatedBuildInputs = [ opencl-headers ]; + + preConfigure = '' + cmakeFlags="-DCMAKE_INSTALL_PREFIX=$out/include -DBUILD_EXAMPLES=OFF -DBUILD_TESTS=OFF" + ''; + + meta = with stdenv.lib; { + description = "OpenCL Host API C++ bindings"; + homepage = "http://github.khronos.org/OpenCL-CLHPP/"; + license = licenses.mit; + platforms = platforms.unix; + }; +} diff --git a/pkgs/development/libraries/opencl-headers/default.nix b/pkgs/development/libraries/opencl-headers/default.nix index 228e628aa191..58822b96b080 100644 --- a/pkgs/development/libraries/opencl-headers/default.nix +++ b/pkgs/development/libraries/opencl-headers/default.nix @@ -1,13 +1,13 @@ -{ stdenv, fetchFromGitHub, cmake }: +{ stdenv, fetchFromGitHub }: stdenv.mkDerivation rec { - name = "opencl-headers-2.1.0"; + name = "opencl-headers-2.1-2016-11-29"; src = fetchFromGitHub { owner = "KhronosGroup"; repo = "OpenCL-Headers"; - rev = "c1770dcc6cf1daadec1905e7393f3691c1dde200"; - sha256 = "0m9fkblqja0686i2jjqiszvq3df95gp01a2674xknlmkd6525rck"; + rev = "abb29588550c77f8340a6c3683531407013bf26b"; + sha256 = "0zjznq65i4b2h4k36qfbbzq1acf2jdd9vygjv5az1yk7qgsp4jj7"; }; installPhase = '' @@ -17,7 +17,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Khronos OpenCL headers"; - homepage = https://www.khronos.org/registry/cl/; + homepage = "https://www.khronos.org/registry/cl/"; license = licenses.mit; platforms = platforms.unix; }; diff --git a/pkgs/development/libraries/opencl-icd/default.nix b/pkgs/development/libraries/opencl-icd/default.nix deleted file mode 100644 index 5cf144e198b3..000000000000 --- a/pkgs/development/libraries/opencl-icd/default.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ stdenv, fetchurl, ruby, opencl-headers }: let - - version = "2.2.9"; - -in stdenv.mkDerivation { - - name = "opencl-icd-${version}"; - buildInputs = [ ruby opencl-headers ]; - configureFlags = [ "--enable-official-khronos-headers" ]; - src = fetchurl { - url = "https://forge.imag.fr/frs/download.php/716/ocl-icd-${version}.tar.gz"; - sha256 = "1rgaixwnxmrq2aq4kcdvs0yx7i6krakarya9vqs7qwsv5hzc32hc"; - }; - - meta = { - platforms = stdenv.lib.platforms.linux; - }; -} diff --git a/pkgs/development/python-modules/pyopencl/default.nix b/pkgs/development/python-modules/pyopencl/default.nix index d09f38914b5a..7be60b1e69b3 100644 --- a/pkgs/development/python-modules/pyopencl/default.nix +++ b/pkgs/development/python-modules/pyopencl/default.nix @@ -10,7 +10,7 @@ , appdirs , six , opencl-headers -, opencl-icd +, ocl-icd }: buildPythonPackage rec { @@ -18,7 +18,7 @@ buildPythonPackage rec { version = "2016.2"; name = "${pname}-${version}"; - buildInputs = [ pytest opencl-headers opencl-icd ]; + buildInputs = [ pytest opencl-headers ocl-icd ]; propagatedBuildInputs = [ numpy cffi pytools decorator appdirs six Mako ]; @@ -36,4 +36,4 @@ buildPythonPackage rec { license = stdenv.lib.licenses.mit; maintainer = stdenv.lib.maintainers.fridh; }; -} \ No newline at end of file +} diff --git a/pkgs/misc/emulators/wine/base.nix b/pkgs/misc/emulators/wine/base.nix index d556f94b78cb..19026274d56b 100644 --- a/pkgs/misc/emulators/wine/base.nix +++ b/pkgs/misc/emulators/wine/base.nix @@ -48,7 +48,7 @@ stdenv.mkDerivation ((lib.optionalAttrs (! isNull buildScript) { ++ lib.optional xineramaSupport pkgs.xorg.libXinerama ++ lib.optionals gstreamerSupport (with pkgs.gst_all; [ gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-ffmpeg ]) ++ lib.optionals gtkSupport [ pkgs.gtk3 pkgs.glib ] - ++ lib.optionals openclSupport [ pkgs.opencl-headers pkgs.opencl-icd ] + ++ lib.optionals openclSupport [ pkgs.opencl-headers pkgs.ocl-icd ] ++ lib.optionals xmlSupport [ pkgs.libxml2 pkgs.libxslt ] ++ lib.optionals tlsSupport [ pkgs.openssl pkgs.gnutls ] ++ lib.optionals openglSupport [ pkgs.mesa pkgs.mesa_noglu.osmesa pkgs.libdrm ] diff --git a/pkgs/os-specific/linux/nvidia-x11/builder.sh b/pkgs/os-specific/linux/nvidia-x11/builder.sh index 1f4671a76157..32502bb7b6c0 100755 --- a/pkgs/os-specific/linux/nvidia-x11/builder.sh +++ b/pkgs/os-specific/linux/nvidia-x11/builder.sh @@ -28,13 +28,15 @@ buildPhase() { installPhase() { # Install libGL and friends. - mkdir -p "$out/lib/vendors" - cp -p nvidia.icd $out/lib/vendors/ + mkdir -p "$out/etc/OpenCL/vendors" + cp -p nvidia.icd $out/etc/OpenCL/vendors/ + mkdir -p "$out/lib" cp -prd *.so.* tls "$out/lib/" rm "$out"/lib/lib{glx,nvidia-wfb}.so.* # handled separately rm $out/lib/libGL.so.1.* # GLVND + rm $out/lib/libOpenCL.so* # ocl-icd is used instead if test -z "$libsOnly"; then # Install the X drivers. diff --git a/pkgs/tools/security/hashcat/hashcat3/default.nix b/pkgs/tools/security/hashcat/hashcat3/default.nix index ef41b0b2a0ed..810d9df9e2fe 100644 --- a/pkgs/tools/security/hashcat/hashcat3/default.nix +++ b/pkgs/tools/security/hashcat/hashcat3/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, makeWrapper, opencl-headers, opencl-icd }: +{ stdenv, fetchurl, makeWrapper, opencl-headers, ocl-icd }: assert stdenv.isLinux; @@ -22,7 +22,7 @@ stdenv.mkDerivation rec { ''; postFixup = '' - wrapProgram $out/bin/hashcat --prefix LD_LIBRARY_PATH : ${opencl-icd}/lib + wrapProgram $out/bin/hashcat --prefix LD_LIBRARY_PATH : ${ocl-icd}/lib ''; meta = { diff --git a/pkgs/tools/system/opencl-info/default.nix b/pkgs/tools/system/opencl-info/default.nix new file mode 100644 index 000000000000..b4d9f699b05b --- /dev/null +++ b/pkgs/tools/system/opencl-info/default.nix @@ -0,0 +1,28 @@ +{ stdenv, fetchFromGitHub, opencl-clhpp, ocl-icd }: + +stdenv.mkDerivation { + name = "opencl-info-2014-02-21"; + + src = fetchFromGitHub { + owner = "marchv"; + repo = "opencl-info"; + rev = "3e53d001a98978feb865650cf0e93b045400c0d7"; + sha256 = "114lxgnjg40ivjjszkv4n3f3yq2lbrvywryvbazf20kqmdz7315l"; + }; + + buildInputs = [ opencl-clhpp ocl-icd ]; + + NIX_LDFLAGS = [ "-lOpenCL" ]; + + installPhase = '' + install -Dm755 opencl-info $out/bin/opencl-info + ''; + + meta = with stdenv.lib; { + description = "A tool to dump OpenCL platform/device information"; + homepage = "https://github.com/marchv/opencl-info"; + license = licenses.mit; + platforms = platforms.linux; + maintainers = with maintainers; [ abbradar ]; + }; +} diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 21260205d95e..6123c418123c 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -69,6 +69,7 @@ doNotDisplayTwice rec { links = links2; # added 2016-01-31 lttngTools = lttng-tools; # added 2014-07-31 lttngUst = lttng-ust; # added 2014-07-31 + m3d-linux = m33-linux; # added 2016-08-13 manpages = man-pages; # added 2015-12-06 man_db = man-db; # added 2016-05 midoriWrapper = midori; # added 2015-01 @@ -81,6 +82,7 @@ doNotDisplayTwice rec { ncat = nmap; # added 2016-01-26 nmap_graphical = nmap-graphical; # added 2017-01-19 nfsUtils = nfs-utils; # added 2014-12-06 + opencl-icd = ocl-icd; # added 2017-01-20 owncloudclient = owncloud-client; # added 2016-08 pidgin-with-plugins = pidgin; # added 2016-06 pidginlatexSF = pidginlatex; # added 2014-11-02 @@ -117,7 +119,6 @@ doNotDisplayTwice rec { xf86_video_nouveau = xorg.xf86videonouveau; # added 2015-09 xlibs = xorg; # added 2015-09 youtubeDL = youtube-dl; # added 2014-10-26 - m3d-linux = m33-linux; # added 2016-08-13 inherit (ocaml-ng) # added 2016-09-14 ocamlPackages_3_10_0 ocamlPackages_3_11_2 ocamlPackages_3_12_1 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 65d142d323b1..5241df8da1b1 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3114,6 +3114,8 @@ in opencc = callPackage ../tools/text/opencc { }; + opencl-info = callPackage ../tools/system/opencl-info { }; + opencryptoki = callPackage ../tools/security/opencryptoki { }; opendbx = callPackage ../development/libraries/opendbx { }; @@ -6842,10 +6844,7 @@ in beecrypt = callPackage ../development/libraries/beecrypt { }; beignet = callPackage ../development/libraries/beignet { - inherit (llvmPackages_37) llvm clang-unwrapped; - inherit (xorg) libX11 libXfixes libpthreadstubs libXdmcp libXdamage libXxf86vm; - inherit (python3Packages) python; - inherit (purePackages) gl; + inherit (llvmPackages) llvm clang-unwrapped; }; belle-sip = callPackage ../development/libraries/belle-sip { }; @@ -8932,7 +8931,7 @@ in opencl-headers = callPackage ../development/libraries/opencl-headers { }; - opencl-icd = callPackage ../development/libraries/opencl-icd { }; + opencl-clhpp = callPackage ../development/libraries/opencl-clhpp { }; opencollada = callPackage ../development/libraries/opencollada { };