Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package vulkan-headers for openSUSE:Factory 
checked in at 2022-07-26 19:42:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/vulkan-headers (Old)
 and      /work/SRC/openSUSE:Factory/.vulkan-headers.new.1533 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "vulkan-headers"

Tue Jul 26 19:42:49 2022 rev:37 rq:989733 version:1.3.216.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/vulkan-headers/vulkan-headers.changes    
2022-06-17 21:18:47.486652287 +0200
+++ /work/SRC/openSUSE:Factory/.vulkan-headers.new.1533/vulkan-headers.changes  
2022-07-26 19:43:01.080844466 +0200
@@ -1,0 +2,5 @@
+Tue Jul 12 19:00:36 UTC 2022 - Jan Engelhardt <jeng...@inai.de>
+
+- Add 0001-Drop-wayland-client.h-include.patch
+
+-------------------------------------------------------------------

New:
----
  0001-Drop-wayland-client.h-include.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ vulkan-headers.spec ++++++
--- /var/tmp/diff_new_pack.5UHrf7/_old  2022-07-26 19:43:01.580767216 +0200
+++ /var/tmp/diff_new_pack.5UHrf7/_new  2022-07-26 19:43:01.584766598 +0200
@@ -28,6 +28,7 @@
 Group:          Development/Libraries/C and C++
 URL:            https://github.com/KhronosGroup/Vulkan-Headers
 Source:         
https://github.com/KhronosGroup/Vulkan-Headers/archive/sdk-%version.tar.gz
+Patch1:         0001-Drop-wayland-client.h-include.patch
 BuildRequires:  cmake >= 2.8.11
 BuildArch:      noarch
 Requires:       pkgconfig(wayland-client)
@@ -45,7 +46,7 @@
 to make use of Vulkan.
 
 %prep
-%autosetup -n Vulkan-Headers-sdk-%version
+%autosetup -n Vulkan-Headers-sdk-%version -p1
 
 %build
 %cmake \

++++++ 0001-Drop-wayland-client.h-include.patch ++++++
>From 898bd798e823e7708e4dbeb07955ae2ee17f925a Mon Sep 17 00:00:00 2001
From: Jan Engelhardt <jeng...@inai.de>
Date: Tue, 12 Jul 2022 17:10:18 +0200
Subject: [PATCH] Drop wayland-client.h include
Upstream: not sent
References: https://build.opensuse.org/package/show/X11:Wayland/vulkan-loader 
comment from 2022-07-12

wayland-client may be located outside the default search paths of the compiler
toolchain. In other words, *any* user of wayland-client must use `pkg-config
wayland-client --cflags` for compilation, and, later, `pkg-config
wayland-client --libs` for linking.

A Vulkan program that defines -DVK_USE_PLATFORM_WAYLAND_KHR would, in
the general case, also call at least some Wayland functions. The
build scripts for that program would have to employ `pkg-config
wayland-client --cflags --libs` in any case, based simply on the use
of said Wayland functions.

Now, there is a corner case wherein the program defines
VK_USE_PLATFORM_*, but does not make use of Wayland functions
directly:

        echo "#define VK_USE_PLATFORM_WAYLAND_KHR
        #include <vulkan/vulkan.h>
        int main() {return 0;}" | gcc -x c -

"Should `pkg-config` be required for this?"

One opinion is that the use of -DVK_USE_PLATFORM_WAYLAND_KHR is so
explicitly willful that `pkg-config` is required.

Another stance is that, since no Wayland header and no Wayland
functions were directly used by the program, the program itself
should not have to use `pkg-config`; responsibility to satisfy the
"#include <wayland-client.h>" in vulkan.h would then fall to
vulkan.pc, which would have to pull in wayland-client.pc. That on the
other hand would pull in wayland for everyone, which is bad.

Either way, I found the following option: Delete the include for
which you would need wayland's -I flags. This works because we can
just add forward declaration like "struct wl_display;" to
vulkan_wayland.h. But we don't even need that. C (and C++) seem to be
fine with undeclared names, e.g.

        //no "struct T;"
        struct S { struct T *t; }
        void f(struct T *t) {}

so I guess it's the solution, for now.

Keep in mind that, as soon as a program uses Wayland functions (directly; not
indirectly through vulkan), it needs to #include <wayland-client.h> anyway on
its own, and then the pkg-config case from the first paragraph applies.

---
 include/vulkan/vulkan.h | 1 -
 1 file changed, 1 deletion(-)

diff --git a/include/vulkan/vulkan.h b/include/vulkan/vulkan.h
index 004fa70..3510ac9 100644
--- a/include/vulkan/vulkan.h
+++ b/include/vulkan/vulkan.h
@@ -38,7 +38,6 @@
 
 
 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
-#include <wayland-client.h>
 #include "vulkan_wayland.h"
 #endif
 
-- 
2.36.1

Reply via email to