From d57031f31b55771cadd380c6371bdae2d63d18e6 Mon Sep 17 00:00:00 2001 From: Sergei Zimmerman <145775305+xokdvium@users.noreply.github.com> Date: Fri, 21 Feb 2025 21:55:33 +0000 Subject: [PATCH 1/8] opencl-clhpp: 2024.05.08 -> 2024.10.24 This has to be in sync with opencl-headers, otherwise we might run into non-obvious incompatibilities. --- pkgs/by-name/op/opencl-clhpp/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/op/opencl-clhpp/package.nix b/pkgs/by-name/op/opencl-clhpp/package.nix index 241c80190e18..d6d3047a23ae 100644 --- a/pkgs/by-name/op/opencl-clhpp/package.nix +++ b/pkgs/by-name/op/opencl-clhpp/package.nix @@ -9,13 +9,13 @@ stdenv.mkDerivation rec { pname = "opencl-clhpp"; - version = "2024.05.08"; + version = "2024.10.24"; src = fetchFromGitHub { owner = "KhronosGroup"; repo = "OpenCL-CLHPP"; rev = "v${version}"; - sha256 = "sha256-bIm4tGqwWX0IPKH3BwLgkf0T7YFrkN6vemYvdPrqUpw="; + sha256 = "sha256-b5f2qFJqLdGEMGnaUY8JmWj2vjZscwLua4FhgC4YP+k="; }; nativeBuildInputs = [ From 761a8d73365010faf52e8664e80031fe26a3a42c Mon Sep 17 00:00:00 2001 From: Sergei Zimmerman <145775305+xokdvium@users.noreply.github.com> Date: Fri, 21 Feb 2025 21:55:34 +0000 Subject: [PATCH 2/8] opencl-clhpp: adopt --- pkgs/by-name/op/opencl-clhpp/package.nix | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/op/opencl-clhpp/package.nix b/pkgs/by-name/op/opencl-clhpp/package.nix index d6d3047a23ae..0e4c23163b50 100644 --- a/pkgs/by-name/op/opencl-clhpp/package.nix +++ b/pkgs/by-name/op/opencl-clhpp/package.nix @@ -32,10 +32,11 @@ stdenv.mkDerivation rec { "-DBUILD_TESTS=OFF" ]; - meta = with lib; { + meta = { description = "OpenCL Host API C++ bindings"; homepage = "http://github.khronos.org/OpenCL-CLHPP/"; - license = licenses.mit; - platforms = platforms.unix; + license = lib.licenses.mit; + maintainers = [ lib.maintainers.xokdvium ]; + platforms = lib.platforms.unix; }; } From 3bcb7247bd1026fd2822595485d39581255774aa Mon Sep 17 00:00:00 2001 From: Sergei Zimmerman <145775305+xokdvium@users.noreply.github.com> Date: Fri, 21 Feb 2025 21:55:34 +0000 Subject: [PATCH 3/8] opencl-clhpp: build tests and examples This should ensure that headers stay compatible and nothing breaks quietly. --- pkgs/by-name/op/opencl-clhpp/package.nix | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/pkgs/by-name/op/opencl-clhpp/package.nix b/pkgs/by-name/op/opencl-clhpp/package.nix index 0e4c23163b50..b71c7d8fc13b 100644 --- a/pkgs/by-name/op/opencl-clhpp/package.nix +++ b/pkgs/by-name/op/opencl-clhpp/package.nix @@ -4,18 +4,21 @@ fetchFromGitHub, cmake, python3, + ruby, opencl-headers, + khronos-ocl-icd-loader, }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "opencl-clhpp"; version = "2024.10.24"; src = fetchFromGitHub { owner = "KhronosGroup"; repo = "OpenCL-CLHPP"; - rev = "v${version}"; - sha256 = "sha256-b5f2qFJqLdGEMGnaUY8JmWj2vjZscwLua4FhgC4YP+k="; + rev = "v${finalAttrs.version}"; + fetchSubmodules = true; + sha256 = "sha256-3RVZJIt03pRmjrPa9q6h6uqFCuTnxvEqjUGUmdwybbY="; }; nativeBuildInputs = [ @@ -27,9 +30,13 @@ stdenv.mkDerivation rec { strictDeps = true; + doCheck = true; + checkInputs = [ khronos-ocl-icd-loader ]; + nativeCheckInputs = [ ruby ]; + cmakeFlags = [ - "-DBUILD_EXAMPLES=OFF" - "-DBUILD_TESTS=OFF" + (lib.cmakeBool "OPENCL_CLHPP_BUILD_TESTING" finalAttrs.finalPackage.doCheck) + (lib.cmakeBool "BUILD_EXAMPLES" finalAttrs.finalPackage.doCheck) ]; meta = { @@ -39,4 +46,4 @@ stdenv.mkDerivation rec { maintainers = [ lib.maintainers.xokdvium ]; platforms = lib.platforms.unix; }; -} +}) From 95f9b9ffc3ca2d1999dd4b3dff2ae54178a81860 Mon Sep 17 00:00:00 2001 From: Sergei Zimmerman <145775305+xokdvium@users.noreply.github.com> Date: Fri, 21 Feb 2025 21:55:34 +0000 Subject: [PATCH 4/8] opencl-clhpp: add passthru.tests.pkg-config --- pkgs/by-name/op/opencl-clhpp/package.nix | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/pkgs/by-name/op/opencl-clhpp/package.nix b/pkgs/by-name/op/opencl-clhpp/package.nix index b71c7d8fc13b..6a88042d38eb 100644 --- a/pkgs/by-name/op/opencl-clhpp/package.nix +++ b/pkgs/by-name/op/opencl-clhpp/package.nix @@ -7,6 +7,7 @@ ruby, opencl-headers, khronos-ocl-icd-loader, + testers, }: stdenv.mkDerivation (finalAttrs: { @@ -39,6 +40,14 @@ stdenv.mkDerivation (finalAttrs: { (lib.cmakeBool "BUILD_EXAMPLES" finalAttrs.finalPackage.doCheck) ]; + passthru.tests = { + pkg-config = testers.hasPkgConfigModules { + package = finalAttrs.finalPackage; + moduleNames = [ "OpenCL-CLHPP" ]; + # Package version does not match the pkg-config module version. + }; + }; + meta = { description = "OpenCL Host API C++ bindings"; homepage = "http://github.khronos.org/OpenCL-CLHPP/"; From 051b1d262a049acd422e82f55152d59b958b1d70 Mon Sep 17 00:00:00 2001 From: Sergei Zimmerman <145775305+xokdvium@users.noreply.github.com> Date: Fri, 21 Feb 2025 21:55:34 +0000 Subject: [PATCH 5/8] clpeak: 1.1.0 -> 1.1.4, refactor and adopt, update license to asl20 Upstream has switched licenses in 1.1.3 [1]. [1]: https://github.com/krrishnarraj/clpeak/commit/65e572451330b4673712dfec352842f3123a9258 --- pkgs/by-name/cl/clpeak/package.nix | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/pkgs/by-name/cl/clpeak/package.nix b/pkgs/by-name/cl/clpeak/package.nix index bf8285ca8969..05630a9bb0f3 100644 --- a/pkgs/by-name/cl/clpeak/package.nix +++ b/pkgs/by-name/cl/clpeak/package.nix @@ -7,26 +7,18 @@ opencl-clhpp, }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "clpeak"; - version = "1.1.0"; + version = "1.1.4"; src = fetchFromGitHub { owner = "krrishnarraj"; repo = "clpeak"; - rev = version; + tag = finalAttrs.version; fetchSubmodules = true; - sha256 = "1wkjpvn4r89c3y06rv7gfpwpqw6ljmqwz0w0mljl9y5hn1r4pkx2"; + hash = "sha256-unQLZ5EExL9lU2XuYLJjASeFzDA74+TnU0CQTWyNYiQ="; }; - patches = [ - # The cl.hpp header was removed from opencl-clhpp. This patch - # updates clpeak to use the new cp2.hpp header. The patch comes - # from the following PR and was updated to apply against more - # recent versions: https://github.com/krrishnarraj/clpeak/pull/46 - ./clpeak-clhpp2.diff - ]; - nativeBuildInputs = [ cmake ]; buildInputs = [ @@ -34,11 +26,11 @@ stdenv.mkDerivation rec { opencl-clhpp ]; - meta = with lib; { + meta = { description = "Tool which profiles OpenCL devices to find their peak capacities"; homepage = "https://github.com/krrishnarraj/clpeak/"; - license = licenses.unlicense; - maintainers = [ ]; + license = lib.licenses.asl20; + maintainers = [ lib.maintainers.xokdvium ]; mainProgram = "clpeak"; }; -} +}) From 450c8a5f1fd9d0d385d7a3e06c80c96961d29d03 Mon Sep 17 00:00:00 2001 From: Sergei Zimmerman <145775305+xokdvium@users.noreply.github.com> Date: Fri, 21 Feb 2025 21:55:35 +0000 Subject: [PATCH 6/8] opencl-headers: adopt --- pkgs/by-name/op/opencl-headers/package.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/op/opencl-headers/package.nix b/pkgs/by-name/op/opencl-headers/package.nix index 94e8e4b0ffbe..7f7882b1a79c 100644 --- a/pkgs/by-name/op/opencl-headers/package.nix +++ b/pkgs/by-name/op/opencl-headers/package.nix @@ -30,11 +30,11 @@ stdenv.mkDerivation (finalAttrs: { }; }; - meta = with lib; { + meta = { description = "Khronos OpenCL headers version ${finalAttrs.version}"; homepage = "https://www.khronos.org/registry/cl/"; - license = licenses.asl20; - platforms = platforms.unix ++ platforms.windows; - maintainers = [ ]; + license = lib.licenses.asl20; + platforms = lib.platforms.unix ++ lib.platforms.windows; + maintainers = [ lib.maintainers.xokdvium ]; }; }) From 30953f5ff2763bc4464ec4ea6010614489e9dd17 Mon Sep 17 00:00:00 2001 From: Sergei Zimmerman <145775305+xokdvium@users.noreply.github.com> Date: Fri, 21 Feb 2025 21:55:35 +0000 Subject: [PATCH 7/8] opencl-headers: add opencl-clhpp to passthru.tests --- pkgs/by-name/op/opencl-headers/package.nix | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/op/opencl-headers/package.nix b/pkgs/by-name/op/opencl-headers/package.nix index 7f7882b1a79c..b0bfde105a11 100644 --- a/pkgs/by-name/op/opencl-headers/package.nix +++ b/pkgs/by-name/op/opencl-headers/package.nix @@ -7,6 +7,7 @@ ocl-icd, tesseract, testers, + opencl-clhpp, }: stdenv.mkDerivation (finalAttrs: { @@ -23,7 +24,12 @@ stdenv.mkDerivation (finalAttrs: { nativeBuildInputs = [ cmake ]; passthru.tests = { - inherit ocl-icd tesseract hashcat; + inherit + ocl-icd + tesseract + hashcat + opencl-clhpp + ; pkg-config = testers.hasPkgConfigModules { package = finalAttrs.finalPackage; moduleNames = [ "OpenCL-Headers" ]; From ceb06d19b1a9450bed0eb774d0b5b6728c721ec9 Mon Sep 17 00:00:00 2001 From: Sergei Zimmerman <145775305+xokdvium@users.noreply.github.com> Date: Sat, 22 Feb 2025 10:22:39 +0000 Subject: [PATCH 8/8] opencl-clhpp: correct license to asl20 The current source license is apache starting from [1]. [1]: https://www.github.com/KhronosGroup/OpenCL-CLHPP/commit/ced8191497c92a5a3b98e67d8ee9191f70e4affc --- pkgs/by-name/op/opencl-clhpp/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/op/opencl-clhpp/package.nix b/pkgs/by-name/op/opencl-clhpp/package.nix index 6a88042d38eb..5a545fccc4da 100644 --- a/pkgs/by-name/op/opencl-clhpp/package.nix +++ b/pkgs/by-name/op/opencl-clhpp/package.nix @@ -51,7 +51,7 @@ stdenv.mkDerivation (finalAttrs: { meta = { description = "OpenCL Host API C++ bindings"; homepage = "http://github.khronos.org/OpenCL-CLHPP/"; - license = lib.licenses.mit; + license = lib.licenses.asl20; maintainers = [ lib.maintainers.xokdvium ]; platforms = lib.platforms.unix; };