Our Xorg server doesn't run under the same uid as the client, the client needs to create the shared memory area with mode 0666.
We are doing the same in misc/screen-shm. Of course, the consequence here would be to do it for all Qt applications. Feedback? OK? More: https://marc.info/?l=openbsd-tech&m=166836794116517&w=2 diff --git a/x11/qt5/qtbase/Makefile b/x11/qt5/qtbase/Makefile index 8f02f2f3795..5ba3c3d5092 100644 --- a/x11/qt5/qtbase/Makefile +++ b/x11/qt5/qtbase/Makefile @@ -12,7 +12,7 @@ PKGNAME-global = qt5-global-${VERSION} PKGNAME-psql = qt5-postgresql-${VERSION} PKGNAME-tds = qt5-tds-${VERSION} -REVISION-main = 2 +REVISION-main = 3 PKG_ARCH-global = * PKG_ARCH-examples = * diff --git a/x11/qt5/qtbase/patches/patch-src_plugins_platforms_xcb_qxcbbackingstore_cpp b/x11/qt5/qtbase/patches/patch-src_plugins_platforms_xcb_qxcbbackingstore_cpp new file mode 100644 index 00000000000..ea4cd301454 --- /dev/null +++ b/x11/qt5/qtbase/patches/patch-src_plugins_platforms_xcb_qxcbbackingstore_cpp @@ -0,0 +1,14 @@ +The X server doesn't run under the same uid as the client, the client needs to +create the shared memory area with mode 0666 +Index: src/plugins/platforms/xcb/qxcbbackingstore.cpp +--- src/plugins/platforms/xcb/qxcbbackingstore.cpp.orig ++++ src/plugins/platforms/xcb/qxcbbackingstore.cpp +@@ -406,7 +406,7 @@ void QXcbBackingStoreImage::createShmSegment(size_t se + bool QXcbBackingStoreImage::createSystemVShmSegment(xcb_connection_t *c, size_t segmentSize, + xcb_shm_segment_info_t *shmInfo) + { +- const int id = shmget(IPC_PRIVATE, segmentSize, IPC_CREAT | 0600); ++ const int id = shmget(IPC_PRIVATE, segmentSize, IPC_CREAT | 0666); + if (id == -1) { + qCWarning(lcQpaXcb, "shmget() failed (%d: %s) for size %zu", errno, strerror(errno), segmentSize); + return false;