diff --git a/_constraints b/_constraints
new file mode 100644
index 0000000..51762ba
--- /dev/null
+++ b/_constraints
@@ -0,0 +1,8 @@
+
+
+
+
+ 2000
+
+
+
\ No newline at end of file
diff --git a/v1.2.148.tar.gz b/v1.2.148.tar.gz
deleted file mode 100644
index 1940cf5..0000000
--- a/v1.2.148.tar.gz
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:da43a161e280cd7dce63a18e929efb586f08024d23b2ee205437f7949a8063fc
-size 2212359
diff --git a/v1.2.151.tar.gz b/v1.2.151.tar.gz
new file mode 100644
index 0000000..59e38c3
--- /dev/null
+++ b/v1.2.151.tar.gz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e584b725dbdd743af438f75ca21bdac43c906686f29bfc8c091ad5e9d3dfbd7b
+size 2279765
diff --git a/ver.diff b/ver.diff
new file mode 100644
index 0000000..5f42800
--- /dev/null
+++ b/ver.diff
@@ -0,0 +1,27 @@
+From: Jan Engelhardt
+Date: 2020-08-19 13:21:33.156157310 +0200
+
+We do not want static archives in openSUSE, so need to turn on SHARED mode.
+As a result, a version needs to be added.
+---
+ CMakeLists.txt | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+Index: Vulkan-ValidationLayers-1.2.148/CMakeLists.txt
+===================================================================
+--- Vulkan-ValidationLayers-1.2.148.orig/CMakeLists.txt
++++ Vulkan-ValidationLayers-1.2.148/CMakeLists.txt
+@@ -320,11 +320,12 @@ set(SCRIPTS_DIR "${PROJECT_SOURCE_DIR}/s
+ # files directly in layers.
+
+ add_library(VkLayer_utils
+- STATIC
++ SHARED
+ layers/vk_layer_config.cpp
+ layers/vk_layer_extension_utils.cpp
+ layers/vk_layer_utils.cpp
+ layers/vk_format_utils.cpp)
++set_target_properties(VkLayer_utils PROPERTIES OUTPUT_NAME "VkLayer_utils-@PACKAGE_VERSION@")
+ target_link_libraries(VkLayer_utils PUBLIC Vulkan::Headers)
+ if(WIN32)
+ target_compile_definitions(VkLayer_utils PUBLIC _CRT_SECURE_NO_WARNINGS)
diff --git a/vulkan-validationlayers.changes b/vulkan-validationlayers.changes
index 0989816..b722019 100644
--- a/vulkan-validationlayers.changes
+++ b/vulkan-validationlayers.changes
@@ -1,3 +1,26 @@
+-------------------------------------------------------------------
+Sat Aug 29 08:12:15 UTC 2020 - Jan Engelhardt
+
+- Add xxhash.diff.
+
+-------------------------------------------------------------------
+Thu Aug 20 16:08:36 UTC 2020 - Jan Engelhardt
+
+- Update to release 1.2.151
+ * Add renderpass compat checks for FDM and Multiview use
+ * Add vkCmdResolveImage size VUIDs
+
+-------------------------------------------------------------------
+Thu Aug 20 09:09:54 UTC 2020 - Martin Liška
+
+- Use memoryperjob constraint instead of %limit_build macro.
+
+-------------------------------------------------------------------
+Wed Aug 19 11:24:44 UTC 2020 - Jan Engelhardt
+
+- Produce and install support header files [boo#1175024]
+- Add ver.diff
+
-------------------------------------------------------------------
Sun Aug 9 10:10:53 UTC 2020 - Jan Engelhardt
diff --git a/vulkan-validationlayers.spec b/vulkan-validationlayers.spec
index 64629f8..585d947 100644
--- a/vulkan-validationlayers.spec
+++ b/vulkan-validationlayers.spec
@@ -17,8 +17,9 @@
Name: vulkan-validationlayers
-Version: 1.2.148
+Version: 1.2.151
Release: 0
+%define lname libVkLayer_utils-1_2_151
Summary: Validation layers for Vulkan
License: Apache-2.0
Group: Development/Tools/Other
@@ -26,14 +27,16 @@ URL: https://github.com/KhronosGroup/Vulkan-ValidationLayers
Source: https://github.com/KhronosGroup/Vulkan-ValidationLayers/archive/v%version.tar.gz
Source9: %name-rpmlintrc
+Patch1: ver.diff
+Patch2: xxhash.diff
BuildRequires: cmake >= 3.4
BuildRequires: gcc-c++ >= 4.8
BuildRequires: glslang-devel >= 8.13.3727
-BuildRequires: memory-constraints
BuildRequires: pkg-config
BuildRequires: python3-base
BuildRequires: spirv-headers
BuildRequires: spirv-tools-devel >= 2020.2
+BuildRequires: xxhash-devel
BuildRequires: pkgconfig(vulkan) >= 1.2.130
BuildRequires: pkgconfig(x11)
BuildRequires: pkgconfig(xcb)
@@ -41,28 +44,59 @@ Conflicts: vulkan < 1.1
Obsoletes: vulkan < 1.1
%description
-Vulkan is a 3D graphics and compute API providing cross-platform
-access to modern GPUs with low overhead and targeting realtime
-graphics applications such as games and interactive media.
+Vulkan is a 3D graphics and compute API.
This package contains the Khronos official Vulkan validation layers.
+%package -n %lname
+Summary: Vulkan validation layer utility library
+Group: System/Libraries
+
+%description -n %lname
+Vulkan is a 3D graphics and compute API.
+
+This package contains a utility library.
+
+%package devel
+Summary: Vulkan validation layer support files
+Group: Development/Libraries/C and C++
+Requires: %lname = %version
+Requires: xxhash-devel
+
+%description devel
+Vulkan is a 3D graphics and compute API.
+
+This package contains support files for the VkLayer utility library.
+
%prep
-%autosetup -n Vulkan-ValidationLayers-%version
+%autosetup -n Vulkan-ValidationLayers-%version -p1
+perl -i -pe 's{\@PACKAGE_VERSION\@}{%version}' CMakeLists.txt
%build
-%limit_build -m 2000
-%cmake -DGLSLANG_INSTALL_DIR="%_bindir" -DSPIRV_HEADERS_INSTALL_DIR="%_includedir"
+%cmake -DGLSLANG_INSTALL_DIR="%_bindir" \
+ -DSPIRV_HEADERS_INSTALL_DIR="%_includedir" \
+ -DBUILD_LAYER_SUPPORT_FILES=ON
make %{?_smp_mflags}
%install
%cmake_install
-# no header files
-rm -f "%buildroot/%_libdir"/*.a
+b="%buildroot"
+ln -sv "libVkLayer_utils-%version.so" "$b/%_libdir/libVkLayer_utils.so"
+rm -f "$b/%_includedir"/xxhash.*
+
+%post -n %lname -p /sbin/ldconfig
+%postun -n %lname -p /sbin/ldconfig
%files
%license LICENSE.txt
-%_libdir/libVkLayer*.so
+%_libdir/libVkLayer_khr*.so
%_datadir/vulkan/
+%files -n %lname
+%_libdir/libVkLayer_utils-%version.so
+
+%files devel
+%_includedir/*
+%_libdir/libVkLayer_utils.so
+
%changelog
diff --git a/xxhash.diff b/xxhash.diff
new file mode 100644
index 0000000..c4b6771
--- /dev/null
+++ b/xxhash.diff
@@ -0,0 +1,43 @@
+From: Jan Engelhardt
+Date: 2020-08-29 10:10:12.022296526 +0200
+
+Avoid the installation of a custom xxhash.h header. Since vk_*.h header files
+still include xxhash.h (and now would source the system xxhash instead of the
+bundled one), it makes sense to build ValidationLayers itself with the system
+xxhash as well, so that the ABI matches.
+
+---
+ layers/CMakeLists.txt | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+Index: Vulkan-ValidationLayers/layers/CMakeLists.txt
+===================================================================
+--- Vulkan-ValidationLayers.orig/layers/CMakeLists.txt
++++ Vulkan-ValidationLayers/layers/CMakeLists.txt
+@@ -61,8 +61,6 @@ if(BUILD_LAYER_SUPPORT_FILES)
+ vk_layer_utils.h
+ vk_layer_utils.cpp
+ vk_loader_platform.h
+- xxhash.h
+- xxhash.c
+ generated/vk_validation_error_messages.h
+ generated/vk_layer_dispatch_table.h
+ generated/vk_dispatch_table_helper.h
+@@ -195,7 +193,7 @@ set(CORE_VALIDATION_LIBRARY_FILES
+ shader_validation.cpp
+ shader_validation.h
+ gpu_validation.cpp
+- xxhash.c)
++)
+
+ set(OBJECT_LIFETIMES_LIBRARY_FILES
+ generated/object_tracker.cpp
+@@ -253,7 +251,7 @@ if(BUILD_LAYERS)
+ target_include_directories(VkLayer_khronos_validation PRIVATE ${GLSLANG_SPIRV_INCLUDE_DIR})
+ target_include_directories(VkLayer_khronos_validation PRIVATE ${SPIRV_TOOLS_INCLUDE_DIR})
+ target_include_directories(VkLayer_khronos_validation PRIVATE ${SPIRV_HEADERS_INCLUDE_DIR})
+- target_link_libraries(VkLayer_khronos_validation PRIVATE ${SPIRV_TOOLS_LIBRARIES})
++ target_link_libraries(VkLayer_khronos_validation PRIVATE ${SPIRV_TOOLS_LIBRARIES} -lxxhash)
+
+ # The output file needs Unix "/" separators or Windows "\" separators On top of that, Windows separators actually need to be doubled
+ # because the json format uses backslash escapes