Date: Wed, 08 Apr 2026 11:56:26 +0000 From: Baptiste Daroussin <bapt@FreeBSD.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org Subject: git: cd8a2d391eb8 - main - www/qt6-webengine: fix running under wayland Message-ID: <69d6426a.26682.62df5653@gitrepo.freebsd.org>
index | next in thread | raw e-mail
The branch main has been updated by bapt: URL: https://cgit.FreeBSD.org/ports/commit/?id=cd8a2d391eb83ac123c0e22bd27ba8c77064f3a3 commit cd8a2d391eb83ac123c0e22bd27ba8c77064f3a3 Author: Baptiste Daroussin <bapt@FreeBSD.org> AuthorDate: 2026-04-08 11:36:11 +0000 Commit: Baptiste Daroussin <bapt@FreeBSD.org> CommitDate: 2026-04-08 11:55:47 +0000 www/qt6-webengine: fix running under wayland When starting, chromium calls GpuFence::Wait() which was not implemented on FreeBSD, on linux is calls sync_wait which does not exist on FreeBSD. Hopefully drm sync fence fds do support polling and it seems to do the trick. While here tell chromium we don't have sync_fence_info() so it does not try to go further at the risk of reaching another NOTREACH() which would trigger a crash PR: 287599 --- .../Makefile | 0 .../distinfo | 0 .../files/patch-CMakeModules_CompilerFlags.cmake | 0 .../files/patch-src_main.cpp | 0 .../files/patch-src_player_CodecsComponent.cpp | 0 .../files/patch-src_system_SystemComponent.cpp | 0 .../files/patch-src_system_SystemComponent.h | 0 .../pkg-descr | 0 .../pkg-plist | 0 ...atch-src_3rdparty_chromium_ui_gfx_gpu__fence.cc | 40 ++++++++++++++++++++++ 10 files changed, 40 insertions(+) diff --git a/multimedia/jellyfin-media-player/Makefile b/multimedia/jellyfin-desktop/Makefile similarity index 100% rename from multimedia/jellyfin-media-player/Makefile rename to multimedia/jellyfin-desktop/Makefile diff --git a/multimedia/jellyfin-media-player/distinfo b/multimedia/jellyfin-desktop/distinfo similarity index 100% rename from multimedia/jellyfin-media-player/distinfo rename to multimedia/jellyfin-desktop/distinfo diff --git a/multimedia/jellyfin-media-player/files/patch-CMakeModules_CompilerFlags.cmake b/multimedia/jellyfin-desktop/files/patch-CMakeModules_CompilerFlags.cmake similarity index 100% rename from multimedia/jellyfin-media-player/files/patch-CMakeModules_CompilerFlags.cmake rename to multimedia/jellyfin-desktop/files/patch-CMakeModules_CompilerFlags.cmake diff --git a/multimedia/jellyfin-media-player/files/patch-src_main.cpp b/multimedia/jellyfin-desktop/files/patch-src_main.cpp similarity index 100% rename from multimedia/jellyfin-media-player/files/patch-src_main.cpp rename to multimedia/jellyfin-desktop/files/patch-src_main.cpp diff --git a/multimedia/jellyfin-media-player/files/patch-src_player_CodecsComponent.cpp b/multimedia/jellyfin-desktop/files/patch-src_player_CodecsComponent.cpp similarity index 100% rename from multimedia/jellyfin-media-player/files/patch-src_player_CodecsComponent.cpp rename to multimedia/jellyfin-desktop/files/patch-src_player_CodecsComponent.cpp diff --git a/multimedia/jellyfin-media-player/files/patch-src_system_SystemComponent.cpp b/multimedia/jellyfin-desktop/files/patch-src_system_SystemComponent.cpp similarity index 100% rename from multimedia/jellyfin-media-player/files/patch-src_system_SystemComponent.cpp rename to multimedia/jellyfin-desktop/files/patch-src_system_SystemComponent.cpp diff --git a/multimedia/jellyfin-media-player/files/patch-src_system_SystemComponent.h b/multimedia/jellyfin-desktop/files/patch-src_system_SystemComponent.h similarity index 100% rename from multimedia/jellyfin-media-player/files/patch-src_system_SystemComponent.h rename to multimedia/jellyfin-desktop/files/patch-src_system_SystemComponent.h diff --git a/multimedia/jellyfin-media-player/pkg-descr b/multimedia/jellyfin-desktop/pkg-descr similarity index 100% rename from multimedia/jellyfin-media-player/pkg-descr rename to multimedia/jellyfin-desktop/pkg-descr diff --git a/multimedia/jellyfin-media-player/pkg-plist b/multimedia/jellyfin-desktop/pkg-plist similarity index 100% rename from multimedia/jellyfin-media-player/pkg-plist rename to multimedia/jellyfin-desktop/pkg-plist diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_gpu__fence.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_gpu__fence.cc new file mode 100644 index 000000000000..6ab75636e199 --- /dev/null +++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_gpu__fence.cc @@ -0,0 +1,40 @@ +--- src/3rdparty/chromium/ui/gfx/gpu_fence.cc.orig 2026-01-23 20:06:19.000000000 +0100 ++++ src/3rdparty/chromium/ui/gfx/gpu_fence.cc 2026-04-08 13:47:09.206288000 +0200 +@@ -9,6 +9,10 @@ + #include "base/time/time.h" + #include "build/build_config.h" + ++#if BUILDFLAG(IS_BSD) ++#include <poll.h> ++#endif ++ + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) + #include <sync/sync.h> + #endif +@@ -42,7 +46,13 @@ + return; + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(IS_BSD) ++ int fd = fence_handle_.Peek(); ++ if (fd >= 0) { ++ struct pollfd fds = {fd, POLLIN, 0}; ++ poll(&fds, 1, -1); ++ } ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) + static const int kInfiniteSyncWaitTimeout = -1; + DCHECK_GE(fence_handle_.Peek(), 0); + if (sync_wait(fence_handle_.Peek(), kInfiniteSyncWaitTimeout) < 0) { +@@ -57,7 +67,10 @@ + GpuFence::FenceStatus GpuFence::GetStatusChangeTime(int fd, + base::TimeTicks* time) { + DCHECK_NE(fd, -1); +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(IS_BSD) ++ // sync_fence_info is not available on FreeBSD. ++ return FenceStatus::kInvalid; ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) + auto info = + std::unique_ptr<sync_fence_info_data, void (*)(sync_fence_info_data*)>{ + sync_fence_info(fd), sync_fence_info_free};home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69d6426a.26682.62df5653>
