## START: Set by rpmautospec ## (rpmautospec version 0.8.4) ## RPMAUTOSPEC: autorelease, autochangelog %define autorelease(e:s:pb:n) %{?-p:0.}%{lua: release_number = 1; base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}")); print(release_number + base_release_number - 1); }%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}} ## END: Set by rpmautospec %global luacommit 3fe7be956f23385aa1950dc31e2f25127ccfc0ea %global cmarkcommit 924936d0427cb25a61169739a7660230bffa6ea6 %global unorderedcommit 73f3cbb237e84d483afafc743f1f14ec53e12314 %global minizcommit 6ef6c68f4fcbb8287aa8edf9c6670804932f41c6 %global spirvheaderscommit 496543121ce6419f23d6fa5d7194ba66c36212d2 %global luashortcommit %{sub %{luacommit} 1 7} %global cmarkshortcommit %{sub %{cmarkcommit} 1 7} %global unorderedshortcommit %{sub %{unorderedcommit} 1 7} %global minizshortcommit %{sub %{minizcommit} 1 7} %global spirvheadersshortcommit %{sub %{spirvheaderscommit} 1 7} %if 0%{?rhel} %global use_system_miniz OFF %else %global use_system_miniz ON %endif # Fedora 43 and EPEL 10 headers predate SPV_KHR_abort. %if 0%{?fedora} >= 44 %global use_system_spirv_headers ON %else %global use_system_spirv_headers OFF %endif Name: shader-slang Version: 2026.18.2 Release: %autorelease Summary: Modular shading language and compiler License: (Apache-2.0 WITH LLVM-exception) AND NCSA AND Unlicense AND BSD-2-Clause AND MIT URL: https://github.com/shader-slang/slang Source0: %{url}/archive/refs/tags/v%{version}/slang-%{version}.tar.gz Source1: https://github.com/lua/lua/archive/%{luacommit}/lua-%{luacommit}.tar.gz # Slang currently requires the swiftlang cmark-gfm fork. Source2: https://github.com/swiftlang/swift-cmark/archive/%{cmarkcommit}/swift-cmark-%{cmarkcommit}.tar.gz # Not yet packaged in Fedora; pinned to the release tag's submodule revision. Source3: https://github.com/martinus/unordered_dense/archive/%{unorderedcommit}/unordered_dense-%{unorderedcommit}.tar.gz # EPEL 10 does not provide miniz-devel or cmake(miniz). Source4: https://github.com/richgel999/miniz/archive/%{minizcommit}/miniz-%{minizcommit}.tar.gz Source5: https://github.com/KhronosGroup/SPIRV-Headers/archive/%{spirvheaderscommit}/SPIRV-Headers-%{spirvheaderscommit}.tar.gz Patch0: shader-slang-fedora.patch BuildRequires: cmake BuildRequires: gcc-c++ BuildRequires: ninja-build BuildRequires: pkgconfig BuildRequires: cmake(FastFloat) %if 0%{?fedora} >= 44 BuildRequires: cmake(SPIRV-Headers) %endif BuildRequires: cmake(SPIRV-Tools) BuildRequires: cmake(VulkanHeaders) BuildRequires: cmake(glslang) %if ! 0%{?rhel} BuildRequires: cmake(miniz) %endif BuildRequires: pkgconfig(liblz4) Provides: bundled(lua) = %{luashortcommit} Provides: bundled(cmark-gfm) = %{cmarkshortcommit} Provides: bundled(unordered_dense) = %{unorderedshortcommit} %if 0%{?rhel} Provides: bundled(miniz) = %{minizshortcommit} %endif %if 0%{?fedora} < 44 Provides: bundled(spirv-headers) = %{spirvheadersshortcommit} %endif %description Slang is a shading language and compiler designed to make large shader codebases easier to build and maintain. It extends HLSL with modules, interfaces, generics, automatic differentiation, and other modern language features, and can emit code for a variety of graphics APIs and targets. %package devel Summary: Development files for Shader Slang Requires: %{name}%{?_isa} = %{version}-%{release} %description devel Headers, CMake configuration files, and pkg-config metadata for developing software against the Shader Slang compiler library. %prep %setup -q -n slang-%{version} -a 1 %setup -q -D -T -n slang-%{version} -a 2 %setup -q -D -T -n slang-%{version} -a 3 %if 0%{?rhel} %setup -q -D -T -n slang-%{version} -a 4 %endif %if 0%{?fedora} < 44 %setup -q -D -T -n slang-%{version} -a 5 %endif %autopatch -p1 cp -a lua-%{luacommit}/. external/lua/ cp -a swift-cmark-%{cmarkcommit}/. external/cmark/ cp -a unordered_dense-%{unorderedcommit}/. external/unordered_dense/ cp -p external/unordered_dense/LICENSE unordered_dense-LICENSE %if 0%{?rhel} cp -a miniz-%{minizcommit}/. external/miniz/ cp -p external/miniz/LICENSE miniz-LICENSE %endif %if 0%{?fedora} < 44 cp -a SPIRV-Headers-%{spirvheaderscommit}/. external/spirv-headers/ cp -p external/spirv-headers/LICENSE SPIRV-Headers-LICENSE %endif %build %cmake \ -DCMAKE_INSTALL_LIBDIR=%{_lib} \ -DCMAKE_INSTALL_INCLUDEDIR=include/shader-slang \ -DCMAKE_INSTALL_DOCDIR=share/doc/%{name} \ -DSLANG_VERSION_NUMERIC=%{version} \ -DSLANG_VERSION_FULL=v%{version} \ -DSLANG_ENABLE_RELEASE_DEBUG_INFO=OFF \ -DSLANG_ENABLE_SPLIT_DEBUG_INFO=OFF \ -DSLANG_ENABLE_TESTS=OFF \ -DSLANG_ENABLE_EXAMPLES=OFF \ -DSLANG_ENABLE_SLANG_RHI=OFF \ -DSLANG_ENABLE_GFX=OFF \ -DSLANG_ENABLE_SLANG_PROXY=OFF \ -DSLANG_ENABLE_REPLAYER=OFF \ -DSLANG_ENABLE_DXIL=OFF \ -DSLANG_EXCLUDE_TINT=ON \ -DSLANG_SLANG_LLVM_FLAVOR=DISABLE \ -DSLANG_INSTALL_USER_SKILLS=OFF \ -DSLANG_STANDARD_MODULE_DEVELOP_BUILD=OFF \ -DSLANG_USE_SYSTEM_MINIZ=%{use_system_miniz} \ -DSLANG_USE_SYSTEM_LZ4=ON \ -DSLANG_USE_SYSTEM_VULKAN_HEADERS=ON \ -DSLANG_USE_SYSTEM_SPIRV_HEADERS=%{use_system_spirv_headers} \ -DSLANG_USE_SYSTEM_SPIRV_TOOLS=ON \ -DSLANG_USE_SYSTEM_GLSLANG=ON %cmake_build %install %cmake_install %files %license LICENSE %license LICENSES/LicenseRef-UOI-NCSA.txt %license LICENSES/Unlicense.txt %license external/cmark/COPYING %license unordered_dense-LICENSE %if 0%{?rhel} %license miniz-LICENSE %endif %if 0%{?fedora} < 44 %license SPIRV-Headers-LICENSE %endif %{_bindir}/slangc %{_bindir}/slangd %{_bindir}/slangi %{_bindir}/slang %{_libdir}/libslang-compiler.so.* %{_libdir}/libslang-rt.so.* %{_libdir}/libslang-glslang-%{version}.so %{_libdir}/libslang-glsl-module-%{version}.so %{_libdir}/slang-standard-module-%{version}/ %doc %{_docdir}/%{name}/ %files devel %{_includedir}/shader-slang/ %{_libdir}/libslang-compiler.so %{_libdir}/libslang-rt.so %{_libdir}/cmake/slang/ %{_libdir}/pkgconfig/slang-compiler.pc %changelog ## START: Generated by rpmautospec * Thu Sep 24 2026 John Doe - 2026.18.2-1 - Uncommitted changes ## END: Generated by rpmautospec