%global commit b460aae39db67e99bb60df814b431c6231349235 %global shortcommit %(c=%{commit}; echo ${c:0:8}) %global snapdate 20251216 %global ctsdir %{_libexecdir}/opencl-cts Name: opencl-cts Version: 0^%{snapdate}git%{shortcommit} Release: 1%{?dist} Summary: OpenCL Conformance Test Suite License: Apache-2.0 URL: https://github.com/KhronosGroup/OpenCL-CTS Source0: %{url}/archive/%{commit}/OpenCL-CTS-%{shortcommit}.tar.gz # Upstream -Werror conflicts with Fedora hardened CFLAGS; also fix miniz warnings Patch0: 0001-disable-werror.patch Source1: clcts BuildRequires: cmake >= 3.12 BuildRequires: gcc-c++ BuildRequires: ninja-build BuildRequires: opencl-headers >= 3.0 BuildRequires: ocl-icd-devel BuildRequires: spirv-headers-devel BuildRequires: spirv-tools-devel BuildRequires: python3 # Tests require an OpenCL implementation at runtime Requires: ocl-icd %description The OpenCL Conformance Test Suite (CTS) from the Khronos Group validates OpenCL implementations for conformance to the OpenCL specification. It includes tests for API, compiler, images, buffers, atomics, math functions, SPIR-V support, and more. Tests are installed to %{ctsdir} and must be run from that directory since they expect data files in the current working directory. %prep %autosetup -n OpenCL-CTS-%{commit} -p1 %build # Find SPIR-V tools location spirv_tools_dir=$(dirname $(which spirv-as)) # Upstream uses -Wno-format for some targets which conflicts with Fedora's # -Werror=format-security in hardened CFLAGS. Strip -Werror flags. CFLAGS="${CFLAGS//-Werror=format-security/}" CXXFLAGS="${CXXFLAGS//-Werror=format-security/}" export CFLAGS CXXFLAGS %cmake -G Ninja \ -DCL_INCLUDE_DIR=%{_includedir} \ -DCL_LIB_DIR=%{_libdir} \ -DOPENCL_LIBRARIES=OpenCL \ -DSPIRV_INCLUDE_DIR=%{_prefix} \ -DSPIRV_TOOLS_DIR=${spirv_tools_dir} \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DCMAKE_COMPILE_WARNING_AS_ERROR=OFF \ -DCMAKE_INSTALL_BINDIR=%{ctsdir} %cmake_build %install %cmake_install # CTS installs to a CMAKE_BUILD_TYPE subdirectory; flatten it mv %{buildroot}%{ctsdir}/RelWithDebInfo/* %{buildroot}%{ctsdir}/ rmdir %{buildroot}%{ctsdir}/RelWithDebInfo # Wrapper script install -Dpm 755 %{SOURCE1} %{buildroot}%{_bindir}/clcts %files %license LICENSE.txt %doc README.md %{_bindir}/clcts %{ctsdir}/ %changelog * Wed Jan 07 2026 Adam Jackson - 0^20251216gitb460aae3-1 - Initial package