[packages/vulkan-sdk] - added install patch, cleaned up install process - adjusted demos_out_of_src patch so that global d

qboosh qboosh at pld-linux.org
Mon May 29 22:21:49 CEST 2017


commit c135e47f4f077be41b46f43ed814f17864664e1a
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Mon May 29 22:22:41 2017 +0200

    - added install patch, cleaned up install process
    - adjusted demos_out_of_src patch so that global datadir is optional (no need to unpatch demos)
    - pl

 demos_out_of_src.patch   |  14 ++--
 vulkan-sdk-install.patch |  20 ++++++
 vulkan-sdk.spec          | 175 +++++++++++++++++++++++++----------------------
 3 files changed, 124 insertions(+), 85 deletions(-)
---
diff --git a/vulkan-sdk.spec b/vulkan-sdk.spec
index 888350a..cf38810 100644
--- a/vulkan-sdk.spec
+++ b/vulkan-sdk.spec
@@ -4,18 +4,19 @@
 
 
 # Conditional build:
-%bcond_with	tests		# build with tests (require a working Vulkan
-				# driver (ICD))
-%bcond_without	wayland		# enable Wayland support in loader
-%bcond_without	xlib		# enable XLib support in loader
+%bcond_with	tests	# run tests (require a working Vulkan driver (ICD))
+%bcond_with	mir	# Mir support in loader
+%bcond_without	wayland	# Wayland support in loader
+%bcond_without	x11	# XLib support in loader
 
 %define	api_version 1.0.39
 
 Summary:	LunarG Vulkan SDK
+Summary(pl.UTF-8):	Pakiet programistyczny (SDK) LunarG Vulkan
 Name:		vulkan-sdk
 Version:	1.0.39.1
 Release:	1
-License:	MIT-like
+License:	Apache v2.0, parts MIT-like
 Group:		Development
 Source0:	https://github.com/LunarG/VulkanTools/archive/sdk-%{version}/VulkanTools-%{version}.tar.gz
 # Source0-md5:	62446dfd61208771d39109218cb29152
@@ -25,25 +26,36 @@ Patch2:		rpath.patch
 Patch3:		always_xcb.patch
 Patch4:		x32.patch
 Patch5:		system_jsoncpp.patch
+Patch6:		%{name}-install.patch
 URL:		http://lunarg.com/vulkan-sdk/
-BuildRequires:	bison
-BuildRequires:	cmake
 BuildRequires:	GLM
+BuildRequires:	Qt5Core-devel >= 5
+BuildRequires:	Qt5Gui-devel >= 5
+BuildRequires:	Qt5Svg-devel >= 5
+BuildRequires:	Qt5Widgets-devel >= 5
+BuildRequires:	bison
+BuildRequires:	cmake >= 3.0
+%if %{with tests} && %(locale -a | grep -q '^C\.UTF-8$'; echo $?)
+BuildRequires:	glibc-localedb-all
+%endif
 BuildRequires:	glslang >= 3.0.s20161222
 BuildRequires:	glslang-devel >= 3.0.s20161222
 BuildRequires:	graphviz
 BuildRequires:	ImageMagick-devel
 BuildRequires:	jsoncpp-devel
 BuildRequires:	libpng
+BuildRequires:	libstdc++-devel >= 6:4.7
 BuildRequires:	libxcb-devel
-BuildRequires:	python3
+%{?with_mir:BuildRequires:	mir-devel}
+BuildRequires:	pkgconfig
+BuildRequires:	python3 >= 3
 BuildRequires:	python3-lxml
-BuildRequires:	python3-modules
-BuildRequires:	Qt5Core-devel
-BuildRequires:	Qt5Svg-devel
-BuildRequires:	Qt5Widgets-devel
+BuildRequires:	python3-modules >= 3
+BuildRequires:	qt5-build >= 5
 BuildRequires:	spirv-tools-devel >= v2016.7
 BuildRequires:	udev-devel
+%{?with_wayland:BuildRequires:	wayland-devel}
+%{?with_x11:BuildRequires:	xorg-lib-libX11-devel}
 Requires:	glslang >= 3.0.s20161222
 Requires:	spirv-tools >= v2016.7
 Requires:	%{name}-debug-layers = %{version}-%{release}
@@ -53,34 +65,54 @@ Requires:	vulkan-sdk-tools = %{version}-%{release}
 Requires:	%{name}-validation-layers = %{version}-%{release}
 BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
+%ifarch %{x8664}
+%define	binsuf	%{nil}
+%else
+%define	binsuf	32
+%endif
+
 %description
-Vulkan API Software Development Kit
+Vulkan API Software Development Kit.
+
+%description -l pl.UTF-8
+Pakiet programistyczny (SDK) Vulkan API
 
 %package -n vulkan-loader
 Summary:	Vulkan API loader
-License:	MIT-like
-Group:		Library
+Summary(pl.UTF-8):	Biblioteka wczytująca sterowniki Vulkan
+Group:		Libraries
 Provides:	vulkan(loader) = %{api_version}
 
 %description -n vulkan-loader
 Common loader for Vulkan API drivers.
 
+%description -n vulkan-loader -l pl.UTF-8
+Wspólna biblioteka wczytująca sterowniki Vulkan.
+
 %package validation-layers
 Summary:	Validation layers for Vulkan
+Summary(pl.UTF-8):	Warstwy sprawdzania poprawności dla Vulkana
 Group:		Development/Libraries
 Requires:	vulkan-loader = %{version}-%{release}
 
 %description validation-layers
 Validation layers for Vulkan.
 
+%description validation-layers -l pl.UTF-8
+Warstwy sprawdzania poprawności dla Vulkana.
+
 %package debug-layers
 Summary:	Debug layers for Vulkan
+Summary(pl.UTF-8):	Warstwy diagnostyczne dla Vulkana
 Group:		Development/Libraries
 Requires:	vulkan-loader = %{version}-%{release}
 
 %description debug-layers
 Debug layers for Vulkan.
 
+%description debug-layers -l pl.UTF-8
+Warstwy diagnostyczne dla Vulkana.
+
 %package -n vulkan-devel
 Summary:	Header files for the Vulkan API
 Summary(pl.UTF-8):	Pliki nagłówkowe API Vulkan
@@ -95,6 +127,7 @@ Pliki nagłówkowe API Vulkan.
 
 %package demos
 Summary:	Vulkan demos
+Summary(pl.UTF-8):	Programy demonstracyjne Vulkana
 Group:		Development/Libraries
 Requires:	vulkan(icd)
 Requires:	vulkan-loader = %{version}-%{release}
@@ -102,53 +135,62 @@ Requires:	vulkan-loader = %{version}-%{release}
 %description demos
 Vulkan demos.
 
+%description demos -l pl.UTF-8
+Programy demonstracyjne Vulkana.
+
 %package tools
 Summary:	Vulkan tools
-Group:		Development
+Summary(pl.UTF-8):	Narzędzia Vulkana
+Group:		Development/Tools
 Suggests:	vulkan(icd)
 Requires:	vulkan-loader = %{version}-%{release}
 
 %description tools
 Vulkan tools.
 
+%description tools -l pl.UTF-8
+Narzędzia Vulkana.
+
 %package tools-vktraceviewer
 Summary:	Vulkan trace viewer
-Group:		Development
+Summary(pl.UTF-8):	Przeglądarka śladów Vulkana
+Group:		Development/Tools
 Requires:	%{name}-tools = %{version}-%{release}
 
 %description tools-vktraceviewer
 Vulkan trace viewer.
 
+%description tools-vktraceviewer -l pl.UTF-8
+Przeglądarka śladów Vulkana.
+
 %prep
 %setup -qn VulkanTools-sdk-%{version}
-
 %patch0 -p1
 %patch1 -p1
 %patch2 -p1
 %patch3 -p1
 %patch4 -p1
 %patch5 -p1
+%patch6 -p1
 
 %build
 install -d build
 cd build
 
-%cmake \
+%cmake .. \
 	-DJSONCPP_INCLUDE_DIR=/usr/include/jsoncpp \
 	-DJSONCPP_SOURCE_DIR=/usr/include/jsoncpp \
-	-DCMAKE_INSTALL_DATADIR=share \
-	-DCMAKE_INSTALL_SYSCONFDIR=etc \
 	-DBUILD_TESTS=%{?with_tests:ON}%{!?with_tests:OFF} \
+	-DBUILD_WSI_MIR_SUPPORT=%{?with_mir:ON}%{!?with_mir:OFF} \
 	-DBUILD_WSI_WAYLAND_SUPPORT=%{?with_wayland:ON}%{!?with_wayland:OFF} \
-	-DBUILD_WSI_XLIB_SUPPORT=%{?with_xlib:ON}%{!?with_xlib:OFF} \
-	-DBUILD_WSI_MIR_SUPPORT=OFF \
-	-DBUILD_ICD=OFF \
-		../
+	-DBUILD_WSI_XLIB_SUPPORT=%{?with_x11:ON}%{!?with_x11:OFF} \
+	-DBUILD_ICD=OFF
+
 %{__make}
 
 %if %{with tests}
 cd tests
-LC_ALL=C.utf-8 VK_LAYER_PATH=../layers LD_LIBRARY_PATH=../loader:../layers ./run_all_tests.sh
+LC_ALL=C.UTF-8 VK_LAYER_PATH=../layers LD_LIBRARY_PATH=../loader:../layers ./run_all_tests.sh
 cd ..
 %endif
 
@@ -157,70 +199,43 @@ cd ..
 %install
 rm -rf $RPM_BUILD_ROOT
 install -d $RPM_BUILD_ROOT{%{_datadir},%{_sysconfdir}}/vulkan/icd.d \
-$RPM_BUILD_ROOT{%{_datadir},%{_sysconfdir}}/vulkan/{explicit,implicit}_layer.d \
+	$RPM_BUILD_ROOT{%{_datadir},%{_sysconfdir}}/vulkan/{explicit,implicit}_layer.d \
 	$RPM_BUILD_ROOT%{_bindir} \
 	$RPM_BUILD_ROOT%{_includedir}/vulkan \
 	$RPM_BUILD_ROOT%{_datadir}/%{name}-demos \
 	$RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
 
-
-# hack for 'make install' tryin to install in relative paths when DESTDIR is set
-install -d "$RPM_BUILD_ROOT$PWD"
-ln -s "$PWD/build" "$RPM_BUILD_ROOT$PWD"
-
-cd build
-%{__make} install \
+%{__make} -C build install \
 	DESTDIR=$RPM_BUILD_ROOT
 
-rm "$RPM_BUILD_ROOT$PWD"
+install build/demos/cube $RPM_BUILD_ROOT%{_bindir}/vulkan-cube
+install build/demos/smoketest $RPM_BUILD_ROOT%{_bindir}/vulkan-smoketest
+cp -p build/demos/{lunarg.ppm,*-vert.spv,*-frag.spv} $RPM_BUILD_ROOT%{_datadir}/%{name}-demos
 
-cp -p demos/vulkaninfo $RPM_BUILD_ROOT%{_bindir}/vulkaninfo
-cp -p demos/cube $RPM_BUILD_ROOT%{_bindir}/vulkan-cube
-cp -p demos/smoketest $RPM_BUILD_ROOT%{_bindir}/vulkan-smoketest
-cp -p demos/{lunarg.ppm,*-vert.spv,*-frag.spv} $RPM_BUILD_ROOT%{_datadir}/%{name}-demos
+%{__mv} $RPM_BUILD_ROOT%{_sysconfdir}/vulkan/explicit_layer.d/* $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d
 
-mv $RPM_BUILD_ROOT/usr/etc/vulkan/explicit_layer.d/* $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d
+install build/libs/vkjson/vkjson_{info,unittest} $RPM_BUILD_ROOT%{_bindir}
+cp -p build/libs/vkjson/libvkjson.a $RPM_BUILD_ROOT%{_libdir}
+cp -p libs/vkjson/vkjson.h $RPM_BUILD_ROOT%{_includedir}
 
-cp -p libs/vkjson/libvkjson.a $RPM_BUILD_ROOT%{_libdir}
-cp -p libs/vkjson/vkjson_{info,unittest} $RPM_BUILD_ROOT%{_bindir}
-
-cp -p ../libs/vkjson/vkjson.h $RPM_BUILD_ROOT%{_includedir}
-
-cp -p install_staging/*.so $RPM_BUILD_ROOT%{_libdir}
-for f in layersvt/*.json ; do
-sed -e's@"library_path": "./@"library_path": "@' $f > $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d/$(basename $f)
+for f in build/layersvt/*.json ; do
+	sed -e's@"library_path": "./@"library_path": "@' $f > $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d/$(basename $f)
 done
 
-cp -pr ../demos/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
+cp -pr demos/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
 
-# restore original demo sources in %{_examplesdir}
-%patch1 -R -p2 -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
-rm -f $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}/*.orig 2>/dev/null || :
-
-%ifarch %x8664
-cp -p vktrace/libVkLayer_vktrace_layer.so $RPM_BUILD_ROOT%{_libdir}
-cp -p vktrace/vkreplay $RPM_BUILD_ROOT%{_bindir}
-cp -p vktrace/vktrace $RPM_BUILD_ROOT%{_bindir}
-sed -e's@"library_path": "../vktrace/@"library_path": "@' \
-	layersvt/VkLayer_vktrace_layer.json > $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d/VkLayer_vktrace_layer.json
-%else
-cp -p vktrace/libVkLayer_vktrace_layer32.so $RPM_BUILD_ROOT%{_libdir}
-cp -p vktrace/vkreplay32 $RPM_BUILD_ROOT%{_bindir}
-cp -p vktrace/vktrace32 $RPM_BUILD_ROOT%{_bindir}
-rm $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d/VkLayer_vktrace_layer.json
-sed -e's@"library_path": "../vktrace/@"library_path": "@' \
-    -e's at libVkLayer_vktrace_layer.so@libVkLayer_vktrace_layer32.so@' \
-	layersvt/VkLayer_vktrace_layer.json > $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d/VkLayer_vktrace_layer32.json
-%endif
-
-install via/via $RPM_BUILD_ROOT%{_bindir}
-%ifarch %x8664
-install vktrace/vktraceviewer $RPM_BUILD_ROOT%{_bindir}
-%else
-install vktrace/vktraceviewer32 $RPM_BUILD_ROOT%{_bindir}
+install build/vktrace/libVkLayer_vktrace_layer%{binsuf}.so $RPM_BUILD_ROOT%{_libdir}
+install build/vktrace/vkreplay%{binsuf} $RPM_BUILD_ROOT%{_bindir}
+install build/vktrace/vktrace%{binsuf} $RPM_BUILD_ROOT%{_bindir}
+install build/vktrace/vktraceviewer%{binsuf} $RPM_BUILD_ROOT%{_bindir}
+%if "%{binsuf}" != ""
+%{__rm} $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d/VkLayer_vktrace_layer.json
 %endif
+sed -e's@"library_path": "../vktrace/@"library_path": "@' \
+    -e's at libVkLayer_vktrace_layer.so@libVkLayer_vktrace_layer%{binsuf}.so@' \
+	build/layersvt/VkLayer_vktrace_layer.json > $RPM_BUILD_ROOT%{_datadir}/vulkan/explicit_layer.d/VkLayer_vktrace_layer%{binsuf}.json
 
-cd ..
+install build/via/via $RPM_BUILD_ROOT%{_bindir}
 
 cp -p vktrace/README.md vktrace-README.md
 cp -p vktrace/TODO.md vktrace-TODO.md
@@ -246,8 +261,8 @@ rm -rf $RPM_BUILD_ROOT
 %dir %{_datadir}/vulkan/icd.d
 %dir %{_datadir}/vulkan/explicit_layer.d
 %dir %{_datadir}/vulkan/implicit_layer.d
-%{_libdir}/libvulkan.so.1.*.*
-%ghost %{_libdir}/libvulkan.so.1
+%attr(755,root,root) %{_libdir}/libvulkan.so.1.*.*
+%attr(755,root,root) %ghost %{_libdir}/libvulkan.so.1
 
 %files demos
 %defattr(644,root,root,755)
@@ -264,7 +279,7 @@ rm -rf $RPM_BUILD_ROOT
 %attr(755,root,root) %{_bindir}/vkjson_info
 %attr(755,root,root) %{_bindir}/vkjson_unittest
 %attr(755,root,root) %{_bindir}/vulkaninfo
-%ifarch %x8664
+%ifarch %{x8664}
 %attr(755,root,root) %{_bindir}/vkreplay
 %attr(755,root,root) %{_bindir}/vktrace
 %attr(755,root,root) %{_libdir}/libVkLayer_vktrace_layer.so
@@ -278,7 +293,7 @@ rm -rf $RPM_BUILD_ROOT
 
 %files tools-vktraceviewer
 %defattr(644,root,root,755)
-%ifarch %x8664
+%ifarch %{x8664}
 %attr(755,root,root) %{_bindir}/vktraceviewer
 %else
 %attr(755,root,root) %{_bindir}/vktraceviewer32
@@ -319,7 +334,7 @@ rm -rf $RPM_BUILD_ROOT
 %files -n vulkan-devel
 %defattr(644,root,root,755)
 %doc COPYRIGHT.txt LICENSE.txt README.md
-%{_libdir}/libvulkan.so
+%attr(755,root,root) %{_libdir}/libvulkan.so
 %{_libdir}/libvkjson.a
 %{_includedir}/vulkan
 %{_includedir}/vkjson.h
diff --git a/demos_out_of_src.patch b/demos_out_of_src.patch
index dc3fc5b..d03574e 100644
--- a/demos_out_of_src.patch
+++ b/demos_out_of_src.patch
@@ -1,11 +1,15 @@
 diff -dur -x '*.orig' VulkanTools-sdk-1.0.32.0.orig/demos/cube.c VulkanTools-sdk-1.0.32.0/demos/cube.c
 --- VulkanTools-sdk-1.0.32.0.orig/demos/cube.c	2016-11-10 18:52:27.000000000 +0100
 +++ VulkanTools-sdk-1.0.32.0/demos/cube.c	2016-11-23 14:16:34.000000000 +0100
-@@ -23,6 +23,8 @@
+@@ -23,6 +23,12 @@
  * Author: Tony Barbour <tony at LunarG.com>
  */
  
-+#define DEMO_DATA_DIR "/usr/share/vulkan-sdk-demos"
++#ifdef DATADIR
++#define DEMO_DATA_DIR DATADIR "/vulkan-sdk-demos/"
++#else
++#define DEMO_DATA_DIR
++#endif
 +
  #define _GNU_SOURCE
  #include <stdio.h>
@@ -15,7 +19,7 @@ diff -dur -x '*.orig' VulkanTools-sdk-1.0.32.0.orig/demos/cube.c VulkanTools-sdk
  };
  
 -static char *tex_files[] = {"lunarg.ppm"};
-+static char *tex_files[] = {DEMO_DATA_DIR "/lunarg.ppm"};
++static char *tex_files[] = {DEMO_DATA_DIR "lunarg.ppm"};
  
  static int validation_error = 0;
  
@@ -24,7 +28,7 @@ diff -dur -x '*.orig' VulkanTools-sdk-1.0.32.0.orig/demos/cube.c VulkanTools-sdk
      size_t size;
  
 -    vertShaderCode = demo_read_spv("cube-vert.spv", &size);
-+    vertShaderCode = demo_read_spv(DEMO_DATA_DIR "/cube-vert.spv", &size);
++    vertShaderCode = demo_read_spv(DEMO_DATA_DIR "cube-vert.spv", &size);
  
      demo->vert_shader_module =
          demo_prepare_shader_module(demo, vertShaderCode, size);
@@ -33,7 +37,7 @@ diff -dur -x '*.orig' VulkanTools-sdk-1.0.32.0.orig/demos/cube.c VulkanTools-sdk
      size_t size;
  
 -    fragShaderCode = demo_read_spv("cube-frag.spv", &size);
-+    fragShaderCode = demo_read_spv(DEMO_DATA_DIR "/cube-frag.spv", &size);
++    fragShaderCode = demo_read_spv(DEMO_DATA_DIR "cube-frag.spv", &size);
  
      demo->frag_shader_module =
          demo_prepare_shader_module(demo, fragShaderCode, size);
diff --git a/vulkan-sdk-install.patch b/vulkan-sdk-install.patch
new file mode 100644
index 0000000..ef47115
--- /dev/null
+++ b/vulkan-sdk-install.patch
@@ -0,0 +1,20 @@
+--- VulkanTools-sdk-1.0.39.1/layersvt/CMakeLists.txt.orig	2017-05-27 08:25:39.348712996 +0200
++++ VulkanTools-sdk-1.0.39.1/layersvt/CMakeLists.txt	2017-05-27 08:39:25.502036896 +0200
+@@ -105,7 +105,7 @@
+     target_link_Libraries(VkLayer_${target} VkLayer_utilsvt)
+     add_dependencies(VkLayer_${target} generate_vt_helpers generate_api_cpp generate_api_h)
+     set_target_properties(VkLayer_${target} PROPERTIES LINK_FLAGS "-Wl,-Bsymbolic")
+-    install(TARGETS VkLayer_${target} DESTINATION ${PROJECT_BINARY_DIR}/install_staging)
++    install(TARGETS VkLayer_${target} DESTINATION ${CMAKE_INSTALL_LIBDIR})
+     endmacro()
+ endif()
+ 
+@@ -166,7 +166,7 @@
+     add_library(VkLayer_utilsvt STATIC ../layers/vk_layer_config.cpp ../layers/vk_layer_extension_utils.cpp ../layers/vk_layer_utils.cpp)
+ else()
+     add_library(VkLayer_utilsvt SHARED ../layers/vk_layer_config.cpp ../layers/vk_layer_extension_utils.cpp ../layers/vk_layer_utils.cpp)
+-    install(TARGETS VkLayer_utilsvt DESTINATION ${PROJECT_BINARY_DIR}/install_staging)
++    install(TARGETS VkLayer_utilsvt DESTINATION ${CMAKE_INSTALL_LIBDIR})
+ endif()
+ 
+ # VulkanTools layers
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/vulkan-sdk.git/commitdiff/c135e47f4f077be41b46f43ed814f17864664e1a



More information about the pld-cvs-commit mailing list