diff options
| author | root <root@alpha.trunkmasters.com> | 2026-07-29 03:04:48 -0500 |
|---|---|---|
| committer | root <root@alpha.trunkmasters.com> | 2026-07-29 03:04:48 -0500 |
| commit | 8087a9548fbac1dade3245660600d025f43d6732 (patch) | |
| tree | eefc08102e8c2e47dfb50e2cf621eb07d283e5c8 /gui-libs | |
| parent | a0e0a56dbeec1a3cf0f82d55d0bd7540943daf84 (diff) | |
| download | baldeagleos-repo-8087a9548fbac1dade3245660600d025f43d6732.tar.gz baldeagleos-repo-8087a9548fbac1dade3245660600d025f43d6732.tar.xz baldeagleos-repo-8087a9548fbac1dade3245660600d025f43d6732.zip | |
Adding metadata
Diffstat (limited to 'gui-libs')
| -rw-r--r-- | gui-libs/xdg-desktop-portal-hyprland/files/xdg-desktop-portal-hyprland-1.4.0-fix-cpuloop.patch | 44 | ||||
| -rw-r--r-- | gui-libs/xdg-desktop-portal-hyprland/xdg-desktop-portal-hyprland-1.4.0-r1.ebuild | 76 |
2 files changed, 120 insertions, 0 deletions
diff --git a/gui-libs/xdg-desktop-portal-hyprland/files/xdg-desktop-portal-hyprland-1.4.0-fix-cpuloop.patch b/gui-libs/xdg-desktop-portal-hyprland/files/xdg-desktop-portal-hyprland-1.4.0-fix-cpuloop.patch new file mode 100644 index 000000000000..96d3e1d70ec1 --- /dev/null +++ b/gui-libs/xdg-desktop-portal-hyprland/files/xdg-desktop-portal-hyprland-1.4.0-fix-cpuloop.patch @@ -0,0 +1,44 @@ +From 34fb22b162cf78d97c39804da1e647297121b7e4 Mon Sep 17 00:00:00 2001 +From: Vaxry <vaxry@vaxry.net> +Date: Thu, 23 Jul 2026 19:23:26 +0200 +Subject: [PATCH] core: fix loop hangup detection + +--- + src/core/PortalManager.cpp | 15 +++++++++------ + 1 file changed, 9 insertions(+), 6 deletions(-) + +diff --git a/src/core/PortalManager.cpp b/src/core/PortalManager.cpp +index fe5a27d..5dc98d4 100644 +--- a/src/core/PortalManager.cpp ++++ b/src/core/PortalManager.cpp +@@ -349,13 +349,16 @@ void CPortalManager::startEventLoop() { + if (ret < 0) { + Debug::log(CRIT, "[core] Polling fds failed with {}", strerror(errno)); + g_pPortalManager->terminate(); ++ break; + } + +- for (size_t i = 0; i < 3; ++i) { +- if (m_sEventLoopInternals.pollFds.data()->revents & POLLHUP) { +- Debug::log(CRIT, "[core] Disconnected from pollfd id {}", i); +- g_pPortalManager->terminate(); +- } ++ for (size_t i = 0; i < m_sEventLoopInternals.pollFds.size(); ++i) { ++ if (!(m_sEventLoopInternals.pollFds[i].revents & (POLLHUP | POLLERR | POLLNVAL))) ++ continue; ++ ++ Debug::log(CRIT, "[core] Disconnected from pollfd id {}", i); ++ g_pPortalManager->terminate(); ++ break; + } + + if (m_bTerminate) +@@ -557,7 +560,7 @@ void CPortalManager::addTimer(const CTimer& timer) { + } + + void CPortalManager::addFdToEventLoop(int fd, short events, std::function<void()> callback) { +- m_sEventLoopInternals.pollFds.emplace_back(pollfd{.fd = fd, .events = POLLIN}); ++ m_sEventLoopInternals.pollFds.emplace_back(pollfd{.fd = fd, .events = events}); + + if (callback == nullptr) + return; diff --git a/gui-libs/xdg-desktop-portal-hyprland/xdg-desktop-portal-hyprland-1.4.0-r1.ebuild b/gui-libs/xdg-desktop-portal-hyprland/xdg-desktop-portal-hyprland-1.4.0-r1.ebuild new file mode 100644 index 000000000000..f8aec80da120 --- /dev/null +++ b/gui-libs/xdg-desktop-portal-hyprland/xdg-desktop-portal-hyprland-1.4.0-r1.ebuild @@ -0,0 +1,76 @@ +# Copyright 2022-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake toolchain-funcs + +DESCRIPTION="xdg-desktop-portal backend for Hyprland" +HOMEPAGE="https://github.com/hyprwm/xdg-desktop-portal-hyprland" + +if [[ ${PV} == 9999 ]]; then + EGIT_REPO_URI="https://github.com/hyprwm/${PN}.git" + inherit git-r3 +else + SRC_URI="https://github.com/hyprwm/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64" +fi + +LICENSE="MIT" +SLOT="0" +IUSE="elogind systemd" +REQUIRED_USE="?? ( elogind systemd )" + +DEPEND=" + >=dev-cpp/sdbus-c++-2.0.0 + dev-libs/hyprlang:= + dev-libs/inih + dev-libs/wayland + dev-qt/qtbase:6[gui,widgets] + dev-qt/qtwayland:6 + gui-libs/hyprutils:= + media-libs/mesa + >=media-video/pipewire-1.2.0:= + x11-libs/libdrm + || ( + sys-libs/basu + elogind? ( >=sys-auth/elogind-237 ) + systemd? ( >=sys-apps/systemd-237 ) + ) +" + +RDEPEND=" + ${DEPEND} + sys-apps/xdg-desktop-portal +" + +BDEPEND=" + dev-libs/hyprland-protocols + >=dev-libs/wayland-protocols-1.24 + >=dev-util/hyprwayland-scanner-0.4.2 + virtual/pkgconfig + || ( >=sys-devel/gcc-14:* >=llvm-core/clang-17:* ) +" + +pkg_setup() { + [[ ${MERGE_TYPE} == binary ]] && return + + if tc-is-gcc && ver_test $(gcc-version) -lt 14 ; then + eerror "XDPH needs >=gcc-14 or >=clang-17 to compile." + eerror "Please upgrade GCC: emerge -v1 sys-devel/gcc" + die "GCC version is too old to compile XDPH!" + elif tc-is-clang && ver_test $(clang-version) -lt 17 ; then + eerror "XDPH needs >=gcc-14 or >=clang-17 to compile." + eerror "Please upgrade Clang: emerge -v1 llvm-core/clang" + die "Clang version is too old to compile XDPH!" + fi +} + +src_prepare() { + sed -i "/add_compile_options(-O3)/d" "${S}/CMakeLists.txt" || die + cmake_src_prepare +} + +PATCHES=( + "${FILESDIR}/${P}-fix-cpuloop.patch" +) |
