Blob Blame History Raw
%if 0%{?rhel} && 0%{?rhel} <= 7
%global _wayland OFF
%else
%global _wayland ON
%endif

%global __requires_exclude ^libVkLayer_utils.so

%global srcname Vulkan-LoaderAndValidationLayers

Name:           vulkan
Version:        1.1.73.0
Release:        1%{?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
# Edit spirv_tools_commit_id.h to match spirv-tools commit id
Source1:        spirv_tools_commit_id.h
Patch0:         cmake_spirv_tools_commit.patch
Patch1:         0003-layers-Don-t-set-an-rpath.patch
Patch2:         0008-demos-Don-t-build-tri-or-cube.patch

BuildRequires:  gcc-c++
BuildRequires:  bison
BuildRequires:  cmake3
BuildRequires:  ninja-build
BuildRequires:  /usr/bin/chrpath
BuildRequires:  python%{python3_pkgversion}
BuildRequires:  glslang-devel
BuildRequires:  spirv-headers-devel
BuildRequires:  pkgconfig(SPIRV-Tools) = 2018.3.0
BuildRequires:  pkgconfig(libsystemd)
BuildRequires:  pkgconfig(pciaccess)
BuildRequires:  pkgconfig(x11)
BuildRequires:  pkgconfig(xcb)
BuildRequires:  pkgconfig(xrandr)
%if 0%{?fedora} || 0%{?rhel} > 7
BuildRequires:  pkgconfig(wayland-client)
BuildRequires:  pkgconfig(wayland-cursor)
BuildRequires:  pkgconfig(wayland-server)
BuildRequires:  pkgconfig(wayland-egl)
Recommends:     mesa-vulkan-drivers
%endif
Requires:       vulkan-filesystem = %{version}-%{release}
Requires:       spirv-tools-libs%{?_isa} = 2018.3.0

%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
%patch2 -p1
cp %{SOURCE1} .

# fix spurious-executable-perm
chmod 0644 README.md

# 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
%cmake3 -DCMAKE_BUILD_TYPE=Release \
        -DCMAKE_SKIP_RPATH:BOOL=yes \
        -DBUILD_VKJSON=OFF \
        -DCMAKE_INSTALL_SYSCONFDIR:PATH=%{_datadir} \
        -DBUILD_WSI_MIR_SUPPORT=OFF \
        -DBUILD_WSI_WAYLAND_SUPPORT=%{_wayland} \
        -DBUILD_TESTS=OFF \
        -GNinja
%ninja_build

%install
%ninja_install


# 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

%ldconfig_scriptlets

%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 Apr 24 2018 Leigh Scott <leigh123linux@googlemail.com> - 1.1.73.0-1
- Update to 1.1.73.0

* Thu Mar 08 2018 Leigh Scott <leigh123linux@googlemail.com> - 1.1.70.0-1
- Update to 1.1.70.0

* Sat Feb 10 2018 Leigh Scott <leigh123linux@googlemail.com> - 1.0.68.0-2
- Fix broken isa

* Fri Feb 09 2018 Leigh Scott <leigh123linux@googlemail.com> - 1.0.68.0-1
- Update to 1.0.68.0

* Thu Feb 08 2018 Leigh Scott <leigh123linux@googlemail.com> - 1.0.65.2-2
- Use ninja to build

* Tue Jan 09 2018 Leigh Scott <leigh123linux@googlemail.com> - 1.0.65.2-1
- Update to 1.0.65.2

* Tue Jan 02 2018 Leigh Scott <leigh123linux@googlemail.com> - 1.0.65.1-3
- Add build require glslang-devel, spirv-tools-devel and spirv-headers-devel

* Tue Dec 19 2017 Leigh Scott <leigh123linux@googlemail.com> - 1.0.65.1-2
- Move VkICD_mock to devel

* Tue Dec 19 2017 Leigh Scott <leigh123linux@googlemail.com> - 1.0.65.1-1
- Update to 1.0.65.1

* Wed Nov 22 2017 Leigh Scott <leigh123linux@googlemail.com> - 1.0.61.1-7
- Redo conditionals

* Thu Nov 16 2017 Merlin Mathesius <mmathesi@redhat.com> - 1.0.61.1-6
- Additional spec file conditional fix

* Tue Oct 31 2017 Leigh Scott <leigh123linux@googlemail.com> - 1.0.61.1-5
- Add small compile fix

* Tue Oct 31 2017 Leigh Scott <leigh123linux@googlemail.com> - 1.0.61.1-4
- Fix vulkan requires
- Move demos to sub-package

* Tue Oct 31 2017 Leigh Scott <leigh123linux@googlemail.com> - 1.0.61.1-3
- Remove epel conditionals
- Remove vulkan git conditionals
- Use cmake macro for everything

* Fri Oct 06 2017 Leigh Scott <leigh123linux@googlemail.com> - 1.0.61.1-2
- Add upstream fix for 32bit TEXTREL issue (like anyone gives a damn)

* Thu Sep 21 2017 Leigh Scott <leigh123linux@googlemail.com> - 1.0.61.1-1
- Update to 1.0.61.1 release (rhbz 1493425)

* Tue Sep 19 2017 Leigh Scott <leigh123linux@googlemail.com> - 1.0.61.0-1
- Update to 1.0.61.0 release

* Mon Aug 14 2017 Leigh Scott <leigh123linux@googlemail.com> - 1.0.57.0-1
- Update to 1.0.57.0 release

* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.54.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild

* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.54.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild

* Sat Jul 22 2017 Leigh Scott <leigh123linux@googlemail.com> - 1.0.54.0-2
- Cleanup cmake commands

* Sat Jul 22 2017 Leigh Scott <leigh123linux@googlemail.com> - 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 <leigh123linux@googlemail.com> - 1.0.51.0-1
- Update to 1.0.51.0 release

* Mon May 15 2017 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.46.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_27_Mass_Rebuild

* Fri Apr 14 2017 Leigh Scott <leigh123linux@googlemail.com> - 1.0.46.0-2
- Fix epel build

* Fri Apr 14 2017 Leigh Scott <leigh123linux@googlemail.com> - 1.0.46.0-1
- Update to 1.0.46.0 release

* Sat Apr 01 2017 Leigh Scott <leigh123linux@googlemail.com> - 1.0.42.2-1
- Update to 1.0.42.2 release

* Fri Mar 03 2017 Leigh Scott <leigh123linux@googlemail.com> - 1.0.42.0-1
- Update to 1.0.42.0 release

* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.39.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild

* Tue Jan 31 2017 Leigh Scott <leigh123linux@googlemail.com> - 1.0.39.1-1
- Update to 1.0.39.1 release

* Tue Jan 24 2017 Leigh Scott <leigh123linux@googlemail.com> - 1.0.39.0-1
- Update to 1.0.39.0 release
- Add build requires libXrandr-devel

* Fri Dec 16 2016 leigh scott <leigh123linux@googlemail.com> - 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 <leigh123linux@googlemail.com> - 1.0.34.0-0.1.gitd4cd34f
- Update to latest git

* Thu Dec 01 2016 leigh scott <leigh123linux@googlemail.com> - 1.0.30.0-2
- Fix VkLayer undefined symbol: util_GetExtensionProperties

* Sat Oct 15 2016 Leigh Scott <leigh123linux@googlemail.com> - 1.0.30.0-1
- Update to 1.0.30.0 release

* Mon Oct 10 2016 Leigh Scott <leigh123linux@googlemail.com> - 1.0.26.0-4
- Build with wayland support (rhbz 1383115)

* Tue Sep 27 2016 Leigh Scott <leigh123linux@googlemail.com> - 1.0.26.0-3
- Move unversioned libraries
- Disable vkjson build
- Fix license tag

* Sun Sep 11 2016 Leigh Scott <leigh123linux@googlemail.com> - 1.0.26.0-2
- Make layers conditional. 

* Sun Sep 11 2016 Leigh Scott <leigh123linux@googlemail.com> - 1.0.26.0-1
- Update to 1.0.26.0 release

* Thu Sep 08 2016 Leigh Scott <leigh123linux@googlemail.com> - 1.0.26.0-0.3.gitfbb8667
- Clean up

* Thu Sep 08 2016 Leigh Scott <leigh123linux@googlemail.com> - 1.0.26.0-0.2.gitfbb8667
- Change build requires python3
- Use release for cmake
- Make build verbose

* Wed Sep 07 2016 Leigh Scott <leigh123linux@googlemail.com> - 1.0.26.0-0.1.gitfbb8667
- Update to latest git

* Tue Feb 16 2016 Igor Gnatenko <i.gnatenko.brain@gmail.com> - 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 <ajax@redhat.com> - 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 <ajax@redhat.com> - 1.0.3-0
- Initial packaging