%global __requires_exclude ^libVkLayer_utils.so %global srcname Vulkan-LoaderAndValidationLayers %global commit1 3a21c880500eac21cdf79bef5b80f970a55ac6af %global srcname1 glslang %global commit2 2bb92e6fe2c6aa410152fc6c63443f452acb1a65 %global srcname2 SPIRV-Headers %global commit3 7e2d26c77b606b21af839b37fd21381c4a669f23 %global srcname3 SPIRV-Tools Name: vulkan Version: 1.0.61.1 Release: 5%{?dist} Summary: Vulkan loader and validation layers License: ASL 2.0 URL: https://github.com/KhronosGroup Source0: %url/%{srcname}/archive/sdk-%{version}.tar.gz#/%{srcname}-sdk-%{version}.tar.gz Source1: %url/%{srcname1}/archive/%{commit1}.tar.gz#/%{srcname1}-%{commit1}.tar.gz Source2: %url/%{srcname2}/archive/%{commit2}.tar.gz#/%{srcname2}-%{commit2}.tar.gz Source3: %url/%{srcname3}/archive/%{commit3}.tar.gz#/%{srcname3}-%{commit3}.tar.gz Patch0: 0003-layers-Don-t-set-an-rpath.patch Patch1: 0008-demos-Don-t-build-tri-or-cube.patch Patch2: SPIRV-Tools_staticlib.patch Patch3: glslang-default-resource-limits_staticlib.patch Patch4: %url/%{srcname}/commit/560f9cdf78d3d03dbf97be638becd1a7df5fa154.patch#/fix_x86_TEXTREL.patch BuildRequires: gcc-c++ BuildRequires: bison BuildRequires: cmake3 BuildRequires: /usr/bin/chrpath BuildRequires: pkgconfig(libsystemd) BuildRequires: pkgconfig(pciaccess) BuildRequires: python3 BuildRequires: pkgconfig(wayland-client) BuildRequires: pkgconfig(wayland-cursor) BuildRequires: pkgconfig(wayland-server) BuildRequires: pkgconfig(wayland-egl) BuildRequires: pkgconfig(x11) BuildRequires: pkgconfig(xcb) BuildRequires: pkgconfig(xrandr) Requires: vulkan-filesystem = %{version}-%{release} Recommends: mesa-vulkan-drivers %description Vulkan is a new generation graphics and compute API that provides high-efficiency, cross-platform access to modern GPUs used in a wide variety of devices from PCs and consoles to mobile phones and embedded platforms. This package contains the reference ICD loader and validation layers for Vulkan. %package demos Summary: Vulkan demo package Requires: %{name}%{?_isa} = %{version}-%{release} %description demos Vulkan demo package contains vulkaninfo and vulkan-smoketest. %package devel Summary: Vulkan development package Requires: %{name}%{?_isa} = %{version}-%{release} %description devel Development headers for Vulkan applications. %package filesystem Summary: Vulkan filesystem package BuildArch: noarch %description filesystem Filesystem for Vulkan. %prep %setup -q -n %{srcname}-sdk-%{version} %patch0 -p1 %patch1 -p1 %patch4 -p1 mkdir -p build/ external/glslang/build/install external/spirv-tools/build/ external/spirv-tools/external/spirv-headers tar -xf %{SOURCE1} -C external/glslang --strip 1 tar -xf %{SOURCE2} -C external/spirv-tools/external/spirv-headers --strip 1 tar -xf %{SOURCE3} -C external/spirv-tools --strip 1 pushd external/spirv-tools %patch2 -p1 popd pushd external/glslang %patch3 -p1 popd # fix spurious-executable-perm chmod 0644 README.md chmod 0644 external/glslang/SPIRV/spirv.hpp # fix wrong-script-end-of-line-encoding sed -i 's/\r//' README.md # sigh inttypes sed -i 's/inttypes.h/cinttypes/' layers/*.{cpp,h} %build pushd external/glslang/build/ %cmake3 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=./install .. %make_build make install popd pushd external/spirv-tools/build/ %cmake3 -DCMAKE_BUILD_TYPE=Release .. %make_build popd pushd build/ %cmake3 -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_SKIP_RPATH:BOOL=yes \ -DBUILD_VKJSON=OFF \ -DCMAKE_INSTALL_SYSCONFDIR:PATH=%{_datadir} \ -DBUILD_WSI_MIR_SUPPORT=OFF .. %make_build popd %install pushd build/ %make_install popd # create the filesystem mkdir -p %{buildroot}%{_sysconfdir}/vulkan/{explicit,implicit}_layer.d/ \ %{buildroot}%{_datadir}/vulkan/{explicit,implicit}_layer.d/ \ %{buildroot}{%{_sysconfdir},%{_datadir}}/vulkan/icd.d # rename smoketest mv %{buildroot}%{_bindir}/smoketest %{buildroot}%{_bindir}/vulkan-smoketest # remove RPATH chrpath -d %{buildroot}%{_bindir}/vulkaninfo %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %files %license LICENSE.txt COPYRIGHT.txt %doc README.md CONTRIBUTING.md %{_datadir}/vulkan/explicit_layer.d/*.json %{_libdir}/libVkLayer_*.so %{_libdir}/libvulkan.so.* %files demos %{_bindir}/vulkaninfo %{_bindir}/vulkan-smoketest %files devel %{_includedir}/vulkan/ %{_libdir}/pkgconfig/vulkan.pc %{_libdir}/libvulkan.so %files filesystem %dir %{_sysconfdir}/vulkan/ %dir %{_sysconfdir}/vulkan/explicit_layer.d/ %dir %{_sysconfdir}/vulkan/icd.d/ %dir %{_sysconfdir}/vulkan/implicit_layer.d/ %dir %{_datadir}/vulkan/ %dir %{_datadir}/vulkan/explicit_layer.d/ %dir %{_datadir}/vulkan/icd.d/ %dir %{_datadir}/vulkan/implicit_layer.d/ %changelog * Tue Oct 31 2017 Leigh Scott - 1.0.61.1-5 - Add small compile fix * Tue Oct 31 2017 Leigh Scott - 1.0.61.1-4 - Fix vulkan requires - Move demos to sub-package * Tue Oct 31 2017 Leigh Scott - 1.0.61.1-3 - Remove epel conditionals - Remove vulkan git conditionals - Use cmake macro for everything * Fri Oct 06 2017 Leigh Scott - 1.0.61.1-2 - Add upstream fix for 32bit TEXTREL issue (like anyone gives a damn) * Thu Sep 21 2017 Leigh Scott - 1.0.61.1-1 - Update to 1.0.61.1 release (rhbz 1493425) * Tue Sep 19 2017 Leigh Scott - 1.0.61.0-1 - Update to 1.0.61.0 release * Mon Aug 14 2017 Leigh Scott - 1.0.57.0-1 - Update to 1.0.57.0 release * Thu Aug 03 2017 Fedora Release Engineering - 1.0.54.0-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild * Thu Jul 27 2017 Fedora Release Engineering - 1.0.54.0-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild * Sat Jul 22 2017 Leigh Scott - 1.0.54.0-2 - Cleanup cmake commands * Sat Jul 22 2017 Leigh Scott - 1.0.54.0-1 - Update to 1.0.54.0 release - Use build requires cmake3 for epel build - Build layers for epel * Fri Jun 16 2017 Leigh Scott - 1.0.51.0-1 - Update to 1.0.51.0 release * Mon May 15 2017 Fedora Release Engineering - 1.0.46.0-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_27_Mass_Rebuild * Fri Apr 14 2017 Leigh Scott - 1.0.46.0-2 - Fix epel build * Fri Apr 14 2017 Leigh Scott - 1.0.46.0-1 - Update to 1.0.46.0 release * Sat Apr 01 2017 Leigh Scott - 1.0.42.2-1 - Update to 1.0.42.2 release * Fri Mar 03 2017 Leigh Scott - 1.0.42.0-1 - Update to 1.0.42.0 release * Sat Feb 11 2017 Fedora Release Engineering - 1.0.39.1-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild * Tue Jan 31 2017 Leigh Scott - 1.0.39.1-1 - Update to 1.0.39.1 release * Tue Jan 24 2017 Leigh Scott - 1.0.39.0-1 - Update to 1.0.39.0 release - Add build requires libXrandr-devel * Fri Dec 16 2016 leigh scott - 1.0.37.0-1 - Update to 1.0.37.0 release - Disable Mir as it's lame ubuntu rubbish * Fri Dec 02 2016 leigh scott - 1.0.34.0-0.1.gitd4cd34f - Update to latest git * Thu Dec 01 2016 leigh scott - 1.0.30.0-2 - Fix VkLayer undefined symbol: util_GetExtensionProperties * Sat Oct 15 2016 Leigh Scott - 1.0.30.0-1 - Update to 1.0.30.0 release * Mon Oct 10 2016 Leigh Scott - 1.0.26.0-4 - Build with wayland support (rhbz 1383115) * Tue Sep 27 2016 Leigh Scott - 1.0.26.0-3 - Move unversioned libraries - Disable vkjson build - Fix license tag * Sun Sep 11 2016 Leigh Scott - 1.0.26.0-2 - Make layers conditional. * Sun Sep 11 2016 Leigh Scott - 1.0.26.0-1 - Update to 1.0.26.0 release * Thu Sep 08 2016 Leigh Scott - 1.0.26.0-0.3.gitfbb8667 - Clean up * Thu Sep 08 2016 Leigh Scott - 1.0.26.0-0.2.gitfbb8667 - Change build requires python3 - Use release for cmake - Make build verbose * Wed Sep 07 2016 Leigh Scott - 1.0.26.0-0.1.gitfbb8667 - Update to latest git * Tue Feb 16 2016 Igor Gnatenko - 1.0.3-0.1.git1affe90 - Add ldconfig in post/postun - Use upstream tarball from commit + patches - Fix versioning. In fact it was never released - Fixup mixing of spaces/tabs - Remove rpath from vulkaninfo - Make filesystem subpkg noarch (it is really noarch) - BuildRequire gcc and gcc-c++ explicitly - Require main pkg with isa tag - Fix perms and perm of README.md - Use %%license tag * Tue Feb 16 2016 Adam Jackson - 1.0.3-0 - Update loader to not build cube or tri. Drop bundled LunarGLASS and llvm since they're only needed for those demos. * Tue Feb 16 2016 Adam Jackson - 1.0.3-0 - Initial packaging