diff --git a/.gitignore b/.gitignore index b33a375..1054d07 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,20 @@ /shaderc-1fce597.tar.gz /shaderc-0dbd899.tar.gz /shaderc-24275a1.tar.gz +/shaderc-bdd134d.tar.gz +/shaderc-adca18d.tar.gz +/shaderc-1701a27.tar.gz +/shaderc-551f106.tar.gz +/shaderc-d0b0222.tar.gz +/shaderc-2023.3.tar.gz +/shaderc-2023.7.tar.gz +/shaderc-2023.8.tar.gz +/shaderc-2024.0.tar.gz +/3ac03b8ad85a8e328a6182cddee8d05810bd5a2c.tar.gz +/ff84893dd52d28f0b1737d2635733d952013bd9c.tar.gz +/caa54d9779d5605aca4e1a0c0c962a3d8f4aeb31.tar.gz +/3362e24c42ab5bf7ad32c0fec64b0a0ddeb2fda1.tar.gz +/8c2e602ce440b7739c95ff3d69cecb1adf6becda.tar.gz +/73743588fe9c39f2f1c780a087d94afac691a189.tar.gz +/301b4ede53d59b68bf55f95bb26412d9233c8187.tar.gz +/d5f08ae5c5a9a45165578445cbd0f9adf0223448.tar.gz diff --git a/.packit.yaml b/.packit.yaml new file mode 100644 index 0000000..1ce0fb0 --- /dev/null +++ b/.packit.yaml @@ -0,0 +1,22 @@ +# packit config for shaderc +# Build Stage 4 - depends on glslang + +jobs: + - job: koji_build + trigger: commit | koji_build + allowed_committers: [all_committers] + allowed_pr_authors: ['asrivats','jexposit'] + dist_git_branches: + - fedora-all + sidetag_group: vulkan-sdk-releases + dependencies: + - glslang + + - job: bodhi_update + trigger: koji_build + dist_git_branches: + - fedora-all + sidetag_group: vulkan-sdk-releases + dependencies: + - vulkan-validation-layers + - vulkan-tools diff --git a/0001-Drop-third-party-code-in-CMakeLists.txt.patch b/0001-Drop-third-party-code-in-CMakeLists.txt.patch index b49b925..312864e 100644 --- a/0001-Drop-third-party-code-in-CMakeLists.txt.patch +++ b/0001-Drop-third-party-code-in-CMakeLists.txt.patch @@ -15,7 +15,7 @@ diff -up shaderc-24275a11d81a6b33ef345878f8a4ef929c95a116/CMakeLists.txt.orig sh -endif() - -add_custom_target(build-version -- ${PYTHON_EXECUTABLE} +- ${Python_EXECUTABLE} - ${CMAKE_CURRENT_SOURCE_DIR}/utils/update_build_version.py - ${shaderc_SOURCE_DIR} ${spirv-tools_SOURCE_DIR} ${glslang_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}/build-version.inc - COMMENT "Update build-version.inc in the Shaderc build directory (if necessary).") diff --git a/CHANGES b/CHANGES deleted file mode 100644 index ff3ef43..0000000 --- a/CHANGES +++ /dev/null @@ -1,223 +0,0 @@ -Revision history for Shaderc - -v2020.1 2020-06-09 - This is the last version that officially supports VS2013. - - - General: - - Added warning signs about unsupported downloads (#1041) - - Added .NET bindings to README.md (#1060) - - Only add -fPIC if supported by the compiler. (#1061) - - - glslc, libshaderc: - - Removed Singleton pattern around access to glslang (#1059) - - - spvc: - - Added concept of comparison sampler to API (#1036) - - Added support for options.hlsl.nonwritable_uav_texture_as_srv (#1048) - - Support forcing storage buffers to be always declared as UAV. (#1076) - -v2020.0 2020-03-06 - - General: - - Getting spirv.hpp from SPIRV-Headers instead of not glslang (#992) - - Added clarification about status of artifacts in downloads.md (#1012) - - - glslc, libshaderc: - - Added support for new Glslang profile enum, EProfileCount (#973) - - Updated user documentation for -S in glslc (#978) - - Add documentation for Vulkan 1.2 and SPIR-V 1.5 (#980) - - Removed NV_EXTENSIONS conditionals (#1003) - - Added support for generating WebGPU SPIR-V to libshaderc (#1021) - - Rolled in all DEPS for provisional SPIR-V extensions for raytracing - - - spvc: - - Normalized API behaviour (#967) - - Added source_set target for libshaderc_spvc (#976) - - Added in support for spvc logging to the terminal (#981) - - Internal refactoring to reduce boiler plate in API implementations (#984) - - Added newline to logging messages to make them readable (#985) - - Added reflection support for Dawn: - - storage textures (#1001) - - storage texture format (#1005) - - texture dimension for storage textures (#1008) - - is storage texture declared as multisampled texture (#1011) - - Converted compile options to require explicit environments (#1019) - - Added knob to control force_zero_initialized_variables in SPIRV-Cross (#1028) - -v2019.1 2020-01-22 - - glslc, libshaderc: - - Add -fnan-clamp: Generate code for max and min builtins so that, - given a NaN operand, will return the other operand. Similarly, the - clamp builtin favours non-NaN operands, as if clamp was implemented - as the composition of max and min. - - Add -finvert-y - - Using SetBeforeHlslLegalization for more relaxed validation rules - - Added support for SPIR-V 1.5 - - Add --emit-line-directive option - - Added support for Vulkan 1.2 - - spvc: - - Add many options: - --flatten-multidimensional-arrays - --es - --no-es - --glsl-emit-push-constant-as-ubo - --msl-swizzle-texture-samples - --msl-platform=ios|macos - --msl-pad-fragment-output - --msl-capture-output - --msl-domain-lower-left - --msl-argument-buffers - --msl-discrete-descriptor-set= - --hlsl-enable-compat - - Reintroduce shaderc_spvc_compile_options_set_shader_model - - Added option to inject robust buffer access code - - Added support for emitting ToVulkan shaders - - Added spirv-opt based IR generation as alternative to built in spirv_cross IR gen - - Added API for specifying source and target execution environments - - Added option & reflection API methods neede by Dawn - - Substantial internal refactoring and code cleanup - - Large number of breaking changes to the API - - Replaced shaderc_spvc_compile_options_set_shader_model with - shaderc_spvc_compile_options_set_hlsl_shader_model - - Compiler initialization and shader generation moved into seperate calls - - Seperated return codes from shaderc ones - - Many small API changes - - Improvements to testing - - Refactoring and clean up of run_spirv_cross_tests.py - - Seperation of expectations into known failures, known invalids, and cases - that need investigation - - Tweaks and fixes to substantially increase passing cases - - Added support for running tests using spvc IR generation - - Infrastructure - - Update DEPS with cross-verified commits from associated repos. - - Add utils/roll-deps - - Infrastructure: - - Removed Appveyor artifacts link - - Improvements and clean up of DEPS rolling scripts - - Enabled warnings about implicit fallthrough - - Enabled improper semicolon warnings - - Restricted -fPIC to platforms that support it - - Converted remaining scripts to use Python 3 - - Replaced nosetest with unittest - - Removed assumptions aabout location of spirv-tools, effcee, and RE2 - - Migrated BUILD.gn spirv_cross dependency to local repo - - Fixes: - - Fix duplicate install paths when using VisualStudio - - Fixed BUILD.gn for Chromium, Dawn & Fuchsia - - Explicitly enabled HLSL support in glslang - - Added installing necessary headers in Android.mk - - Removed unsupported Unicode characters - - Fixed detection of spirv-headers directory - #666: Update Docker file to use Python3 - -v2019.0 2019-06-04 - - Add optional spvc, libshaderc_spvc as wrapper around SPIRV-Cross: - - Rejects bad modules by running the SPIR-V validator first - - Skips exception-heavy SPIRV-Cross SPIR-V parser - - Support NV extensions for shader stages - - Require SPIRV-Tools and SPIRV-Headers with SPIR-V 1.4 support - Build support: - - Use KhronosGroup/glslang instead of google/glslang - - Stop running tests on VS 2013 (googletest no longer supports VS2013) - - Require Python3 for building - - Support Chromium's GN build system - - Kokoro build fixes - - Cmake build fixes: Only build subdirs if those targets are not yet defined - - Use Android.mk from Glslang - - Dockerfile gets re2 and effcee sources - - Fixes for newer googletest - - Add address sanitizer presubmit bot - - Generate config files for pkg-config - Spvc: - - Add option to specify source environment. Spvc will transform from source - to target environment if they are different. This only works for WebGPU0 - and Vulkan 1.1. - Fixes: - #499: In HLSL compilation, relax layout and logical pointer validation rules - prior to running the legalization recipe. - -v2018.0 2018-10-01 - - Support -fhlsl_functionality1 (also -fhlsl-functionality1) - - Support NVIDIA Turing extensions. Requires updated Glslang and SPIRV-Tools. - - Use SPIR-V optimization and HLSL legalization recipes from SPIRV-Tools. - - Pass target environment into SPIRV-Tools code, e.g. from --target-env vulkan1.1 - - Add SONAME=1 property to shared library - - Support GN build for Chromium - Fixes: - #469: Add virtual dtor to classes with virtual functions. - #457: Fix writing SPIR-V binaries to standard output on Windows. - -v2017.2 2018-02-27 - - Add a shared library version of libshaderc - - Support GLSL 4.6 and ESSL 3.2 - - Fail compilation if a resource does not have a binding. - - Add options for automatically setting bindings for (uniform) resources that - don't have bindings set in shader source. - - Add options for automatically setting locations for pipline inputs and outputs. - - Add option for using HLSL IO mappings as expressed in source. - - Add options for setting resource binding base numbers. - - Add option to use HLSL resource register numbers for bindings. - - HLSL compilation now defaults to HLSL packing rules. - (This change is inherited from Glslang commit 7cca140.) - - HLSL compilation runs SPIR-V "legalization" transforms to reduce - manipulation of opaque handles (e.g. images), to satisfy Vulkan rules. - - Adapt to Glslang generator version numbers: - - To 2: a fix for code generation for atomicCounterDecrement. - - To 3: change memory barrier semantics masks - - To 4: generate more access chains for swizzles - - CMake install rules uses GNUInstallDirs. For example, install to lib64 - when that is the norm for the target system. - -v2017.1 2017-03-10 - - Add option to automatically assign bindings to uniform variables - that don't have an explicit 'binding' layout in the shader source. - - Enable NVIDIA extensions by default in GLSL compilation - - README mentions language bindings provided by 3rd parties. - - README describes the known-good branch on GitHub - - Fixed examples in shaderc.h; added C API use to examples/online-compile - - Fixes issues: - #289: Don't output an object file when compilation fails. - #296: Enable use of the CMake in Android Studio. - -v2016.2 2016-12-13 - - Describe Shaderc's level of stability. - - Support HLSL compilation, exposing functionality in Glslang. - - Supported in C, C++ API - - glslc accepts "-x hlsl", and assumes .hlsl files are HLSL. - - glslc accepts "-fentry-point=" to set entry point name, - overriding default value "main". - - Support setting shader resource limits in C, C++ APIs, and in - glslc - - glslc adds -flimit= - - glslc adds --show-limits to display defaults and valid resource - limit syntax. - - glslc adds "-flimit-file " support to read Glslang resource - configuration files, i.e. the output of "glslangValidator -c". - - Enable AMD extensions by default in GLSL compilation - - Fixes issues: - #281: Work around Android build issue with abspath on Windows - #283: Increase default maxDrawBuffers to 4, to match Vulkan/GLES3.0 - -v2016.1 2016-10-12 - - C API for assembling now takes an options object - - Support compilation options to optimize for size. - - Maintain compatibility with recent SPIRV-Tools and Glslang versions. - - Update examples. - - Build cleanups. - - Fixes issues: - #238: Fix invocation of python scripts during build - -v2016.0 2016-07-07 - - - Adds v. versioning, with "-dev" suffix to indicate work in - progress. The intent is to summarize and report functionalities more easily - for incorporating into downstream projects. - - - Summary of functionalities (See the README.md for more details): - - Provides libraries and command line tools for generating SPIR-V modules - - Supports GLSL source code or SPIR-V assembly as input - - Supports SPIR-V binary or assembly text as output - - Command line options follow GCC/Clang conventions - - Supports various semantics (OpenGL, OpenGL Compatible and Vulkan) - - Supports #include - - Supports user-defined macros - - Supports dependency information dumping diff --git a/changelog b/changelog new file mode 100644 index 0000000..8d0f288 --- /dev/null +++ b/changelog @@ -0,0 +1,57 @@ +* Fri Jul 23 2021 Fedora Release Engineering - 2021.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Sun May 30 11:26:42 CEST 2021 Robert-André Mauchin - 2021.0-2 +- Update to 2021.0 +- Fix changelog +- Close: rhbz#1952332 + +* Fri Mar 5 13:43:44 CET 2021 Robert-André Mauchin - 2020.5-1 +- Update to 2020.5 +- Close: rhbz#1931006 + +* Wed Jan 27 2021 Fedora Release Engineering - 2020.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Sat Dec 26 15:21:39 CET 2020 Robert-André Mauchin - 2020.4-1 +- Update to 2020.4 +- Close: rhbz#1906260 + +* Sat Dec 05 2020 Robert-André Mauchin - 2020.3-1 +- Update to 2020.3 +- Close: rhbz#1875183 + +* Sat Aug 08 2020 Robert-André Mauchin - 2020.2-1 +- Update to 2020.2 + +* Sat Aug 01 2020 Fedora Release Engineering - 2020.1-3 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Wed Jul 29 2020 Fedora Release Engineering - 2020.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Wed Jun 17 20:15:27 CEST 2020 Robert-André Mauchin - 2020.1-1 +- Update to 2020.1 + +* Sun Feb 02 20:53:01 CET 2020 Robert-André Mauchin - 2019.1-1 +- Update to 2019.1 + +* Thu Jan 30 2020 Fedora Release Engineering - 2019.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Fri Jul 26 2019 Fedora Release Engineering - 2019.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Mon Jun 10 00:18:18 CEST 2019 Robert-André Mauchin - 2019.0-1 +- Release 2019.0 + +* Sat Feb 02 2019 Fedora Release Engineering - 2018.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Wed Oct 03 2018 Robert-André Mauchin - 2018.0-1 +- Release 2018.0 + +* Mon Sep 24 2018 Robert-André Mauchin - 2017.2-1 +- Initial build + diff --git a/glslang_linker_flags.patch b/glslang_linker_flags.patch index 9324f21..0bc540c 100644 --- a/glslang_linker_flags.patch +++ b/glslang_linker_flags.patch @@ -1,9 +1,9 @@ --- a/libshaderc_util/CMakeLists.txt +++ b/libshaderc_util/CMakeLists.txt -@@ -47,7 +47,7 @@ +@@ -47,7 +47,7 @@ add_definitions(-DENABLE_HLSL) find_package(Threads) target_link_libraries(shaderc_util PRIVATE - glslang OSDependent OGLCompiler HLSL glslang SPIRV + glslang SPIRV - SPIRV-Tools-opt ${CMAKE_THREAD_LIBS_INIT}) + SPIRV-Tools-opt MachineIndependent GenericCodeGen ${CMAKE_THREAD_LIBS_INIT}) @@ -12,12 +12,12 @@ --- a/glslc/CMakeLists.txt +++ b/glslc/CMakeLists.txt -@@ -43,7 +43,7 @@ +@@ -43,7 +43,7 @@ if (SHADERC_ENABLE_WGSL_OUTPUT) endif(SHADERC_ENABLE_WGSL_OUTPUT) target_link_libraries(glslc PRIVATE -- glslang OSDependent OGLCompiler HLSL glslang SPIRV # Glslang libraries -+ glslang OSDependent OGLCompiler HLSL glslang SPIRV MachineIndependent GenericCodeGen # Glslang libraries +- glslang SPIRV # Glslang libraries ++ glslang SPIRV MachineIndependent GenericCodeGen # Glslang libraries $<$:libtint> # Tint libraries, optional shaderc_util shaderc # internal Shaderc libraries ${CMAKE_THREAD_LIBS_INIT}) diff --git a/shaderc.spec b/shaderc.spec index 4620465..35693ce 100644 --- a/shaderc.spec +++ b/shaderc.spec @@ -1,33 +1,27 @@ -# Force out of source build -%undefine __cmake_in_source_build - -# Release 2020.4 -%global commit 24275a11d81a6b33ef345878f8a4ef929c95a116 -%global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global snapshotdate 20210219 - # Glslang revision from packaged version -%global glslang_version c594de23cdd790d64ad5f9c8b059baae0ee2941d +%global glslang_version d5f08ae5c5a9a45165578445cbd0f9adf0223448 Name: shaderc -Version: 2020.5 -Release: 1%{?dist} -Summary: A collection of tools, libraries, and tests for Vulkan shader compilation +Version: 2026.2 +Release: %autorelease +Summary: Collection of tools, libraries, and tests for Vulkan shader compilation -License: ASL 2.0 +License: Apache-2.0 URL: https://github.com/google/shaderc -Source0: %url/archive/%{commit}/%{name}-%{shortcommit}.tar.gz +Source: %{url}/archive/%{glslang_version}.tar.gz # Patch to unbundle 3rd party code -Patch1: 0001-Drop-third-party-code-in-CMakeLists.txt.patch -Patch2: glslang_linker_flags.patch +Patch: 0001-Drop-third-party-code-in-CMakeLists.txt.patch +Patch: glslang_linker_flags.patch -BuildRequires: cmake3 +BuildRequires: cmake BuildRequires: gcc-c++ BuildRequires: ninja-build -BuildRequires: python3-devel -BuildRequires: glslang-devel -BuildRequires: spirv-headers-devel +BuildRequires: sed BuildRequires: spirv-tools + +BuildRequires: glslang-devel +BuildRequires: python3-devel +BuildRequires: spirv-headers-devel BuildRequires: spirv-tools-devel %description @@ -71,13 +65,14 @@ A library for compiling shader strings into SPIR-V. Static libraries for libshaderc. %prep -%autosetup -p1 -n %{name}-%{commit} +%autosetup -p1 -n %{name}-%{glslang_version} -rm -rf third_party +rm -r third_party # Stolen from Gentoo # Create build-version.inc since we want to use our packaged # SPIRV-Tools and glslang +sed -i -e '/build-version/d' glslc/CMakeLists.txt echo \"shaderc $(grep -m1 -o '^v[[:digit:]]\{4\}\.[[:digit:]]\(-dev\)\? [[:digit:]]\{4\}-[[:digit:]]\{2\}-[[:digit:]]\{2\}$' CHANGES)\" \ > glslc/src/build-version.inc echo \"spirv-tools $(grep -m1 -o '^v[[:digit:]]\{4\}\.[[:digit:]]\(-dev\)\? [[:digit:]]\{4\}-[[:digit:]]\{2\}-[[:digit:]]\{2\}$' /usr/share/doc/spirv-tools/CHANGES)\" \ @@ -90,18 +85,18 @@ sed -i 's|SPIRV/GlslangToSpv.h|glslang/SPIRV/GlslangToSpv.h|' libshaderc_util/sr %build # We disable the tests because they don't work with our unbundling of 3rd party. # See https://github.com/google/shaderc/issues/470 -%cmake3 -DCMAKE_BUILD_TYPE=RelWithDebInfo \ - -DCMAKE_SKIP_RPATH=True \ - -DSHADERC_SKIP_TESTS=True \ - -DPYTHON_EXE=%{__python3} \ - -GNinja -%cmake3_build +%cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DCMAKE_SKIP_RPATH=True \ + -DSHADERC_SKIP_TESTS=True \ + -DPYTHON_EXECUTABLE=%{python3} \ + -GNinja +%cmake_build %install -%cmake3_install +%cmake_install %check -%ctest3 +%ctest %files -n glslc %doc glslc/README.asciidoc @@ -126,52 +121,4 @@ sed -i 's|SPIRV/GlslangToSpv.h|glslang/SPIRV/GlslangToSpv.h|' libshaderc_util/sr %{_libdir}/pkgconfig/shaderc_combined.pc %changelog -* Fri Mar 5 13:43:44 CET 2021 Robert-André Mauchin - 2020.5-1 -- Update to 2020.5 -- Close: rhbz#1931006 - -* Wed Jan 27 2021 Fedora Release Engineering - 2020.4-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Sat Dec 26 15:21:39 CET 2020 Robert-André Mauchin - 2020.4-1 -- Update to 2020.4 -- Close: rhbz#1906260 - -* Sat Dec 05 2020 Robert-André Mauchin - 2020.3-1 -- Update to 2020.3 -- Close: rhbz#1875183 - -* Sat Aug 08 2020 Robert-André Mauchin - 2020.2-1 -- Update to 2020.2 - -* Sat Aug 01 2020 Fedora Release Engineering - 2020.1-3 -- Second attempt - Rebuilt for - https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Wed Jul 29 2020 Fedora Release Engineering - 2020.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Wed Jun 17 20:15:27 CEST 2020 Robert-André Mauchin - 2020.1-1 -- Update to 2020.1 - -* Sun Feb 02 20:53:01 CET 2020 Robert-André Mauchin - 2019.1-1 -- Update to 2019.1 - -* Thu Jan 30 2020 Fedora Release Engineering - 2019.0-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Fri Jul 26 2019 Fedora Release Engineering - 2019.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Mon Jun 10 00:18:18 CEST 2019 Robert-André Mauchin - 2019.0-1 -- Release 2019.0 - -* Sat Feb 02 2019 Fedora Release Engineering - 2018.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Wed Oct 03 2018 Robert-André Mauchin - 2018.0-1 -- Release 2018.0 - -* Mon Sep 24 2018 Robert-André Mauchin - 2017.2-1 -- Initial build - +%autochangelog diff --git a/sources b/sources index 156fdaf..618f369 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (shaderc-24275a1.tar.gz) = 4e5cd96888c555b7337154e64fc2b690a26e3fe044c605eb542dc2ff68c2cd0cfb2e945348eb6a8d97daab2449082949c8f780407e793a671a02246fb1fb1f59 +SHA512 (d5f08ae5c5a9a45165578445cbd0f9adf0223448.tar.gz) = 91223ef1c85a8e7a5dff8b220e816afe278830f9fb3f7a15e88fd814995b2ea453aaba0370d22102520e9c4acd375436ff79b2ddd6cdbf03aab72541523d5592