gui-libs/xdg-desktop-portal-hyprland: drop 1.3.1-r2, 1.3.2-r1

Signed-off-by: John M. Harris Jr. <johnmh@johnmh.me>
This commit is contained in:
John M. Harris Jr. 2024-07-22 10:17:46 -07:00
parent b2239c9ac8
commit 20c65177b8
No known key found for this signature in database
GPG Key ID: 5C3C40B1FE495465
9 changed files with 0 additions and 519 deletions

View File

@ -1,4 +1 @@
DIST proto-subproject-1.3.1.tar.gz 6343 BLAKE2B cffa25c1fbac992db9aee57956615c2a5f8a6e90150d86246218e6d346e566a43527f56cab08b07359bd2f56b1e02b741fb0dbb37ec35fbadd22dfdb2006d3b0 SHA512 f8534c0f6562ce3c770ed9c79b8b78504d6f3aa75001c74ecfa5418af939e88a020ca1cef08d20c62e73c764d66452b5ce212a0f0d2e9a3aaba635ee80b142c5
DIST xdg-desktop-hyprland-1.3.1.tar.gz 46999 BLAKE2B 17dd6883d90985075dc8bdeb4901ad393fb6ab541aba901536f761464e313e87485a4589f6691321e1e9615817206318362afeaef424ef8f603868ed0d7f26d6 SHA512 8d0f9b97fca4566efe717de6d739d10ec51ce5aa33459940f759fc90543fcca3b094d3e570446c5f82c9146249ce39c00fa215b0b83573a466a9907aec9366f3
DIST xdg-desktop-portal-hyprland-1.3.2.gh.tar.gz 48659 BLAKE2B 034eb274761710ab7162ebcb840414a612f0dbe5efcf1d3891c36fe94f8d837281151d2b15968faea024381bd25714f1b96989bdd43bfde596ec363949e4e08e SHA512 32630705079b600c22614abdf047f415bf5128697e63fa2e41d5b4028b0957a866acd817087397f60a4c6ad32829cbf00e1dea8f85db8cbdb26e7c96e92cef9e
DIST xdg-desktop-portal-hyprland-1.3.3.gh.tar.gz 49323 BLAKE2B 6f0bd6636d1a457d238dbb9095782a41961e30b37eacd05e1a4d545fc933b9d3b529400321a31cfb08c6b5d69279bb8905e84f11743bf97b22587432a5e9cf14 SHA512 c100ca27e9cd430602ad0ea4733f34919d84206df084df0d9f8ed8ca8a634069cc7ef71cb587f92eae6eeedf4029a88644b24b9b8d37138cb544279f5be30720

View File

@ -1,207 +0,0 @@
From 54b5467ec12fb115b537e0c86256226474edf8bb Mon Sep 17 00:00:00 2001
From: Jan Beich <jbeich@FreeBSD.org>
Date: Mon, 18 Sep 2023 19:00:21 +0000
Subject: [PATCH 1/3] build: Unbreak build on FreeBSD (#98)
* helpers: add missing header after 9dfb9e125bf0
src/helpers/MiscFunctions.cpp: In function 'void addHyprlandNotification(const std::string&, float, const std::string&, const std::string&)':
src/helpers/MiscFunctions.cpp:24:9: error: 'fork' was not declared in this scope
24 | if (fork() == 0)
| ^~~~
src/helpers/MiscFunctions.cpp:25:9: error: 'execl' was not declared in this scope
25 | execl("/bin/sh", "/bin/sh", "-c", CMD.c_str(), nullptr);
| ^~~~~
* build: add missing dependency for libc++ after 2f48e6550374
ld.lld: error: undefined symbol: pthread_create
>>> referenced by PortalManager.cpp
>>> src/xdg-desktop-portal-hyprland.p/core_PortalManager.cpp.o:(CPortalManager::startEventLoop())
>>> referenced by PortalManager.cpp
>>> src/xdg-desktop-portal-hyprland.p/core_PortalManager.cpp.o:(CPortalManager::startEventLoop())
---
CMakeLists.txt | 4 +++-
src/helpers/MiscFunctions.cpp | 1 +
src/meson.build | 1 +
3 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index e39b72c..44d1689 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -31,12 +31,14 @@ message(STATUS "Checking deps...")
add_subdirectory(subprojects/sdbus-cpp)
add_subdirectory(hyprland-share-picker)
+find_package(Threads REQUIRED)
+
find_package(PkgConfig REQUIRED)
pkg_check_modules(deps REQUIRED IMPORTED_TARGET wayland-client wayland-protocols libpipewire-0.3 libspa-0.2 libdrm gbm)
file(GLOB_RECURSE SRCFILES CONFIGURE_DEPENDS "src/*.cpp")
add_executable(xdg-desktop-portal-hyprland ${SRCFILES})
-target_link_libraries(xdg-desktop-portal-hyprland PRIVATE rt sdbus-c++ PkgConfig::deps)
+target_link_libraries(xdg-desktop-portal-hyprland PRIVATE rt sdbus-c++ Threads::Threads PkgConfig::deps)
# protocols
find_program(WaylandScanner NAMES wayland-scanner)
diff --git a/src/helpers/MiscFunctions.cpp b/src/helpers/MiscFunctions.cpp
index da05ee6..353c8f0 100644
--- a/src/helpers/MiscFunctions.cpp
+++ b/src/helpers/MiscFunctions.cpp
@@ -1,5 +1,6 @@
#include "MiscFunctions.hpp"
#include <memory>
+#include <unistd.h>
#include "../helpers/Log.hpp"
std::string execAndGet(const char* cmd) {
diff --git a/src/meson.build b/src/meson.build
index 444d3bd..c3d3735 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -8,6 +8,7 @@ executable('xdg-desktop-portal-hyprland',
dependency('libdrm'),
dependency('libpipewire-0.3'),
dependency('sdbus-c++'),
+ dependency('threads'),
dependency('wayland-client'),
],
include_directories: inc,
--
2.42.0
From b6e1732fdac623638dbc12db00e10ac4b5bd791f Mon Sep 17 00:00:00 2001
From: vaxerski <43317083+vaxerski@users.noreply.github.com>
Date: Fri, 22 Sep 2023 19:28:47 +0100
Subject: [PATCH 2/3] picker: start on index 0
---
hyprland-share-picker/mainpicker.ui | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hyprland-share-picker/mainpicker.ui b/hyprland-share-picker/mainpicker.ui
index c14d1d6..95a3c65 100644
--- a/hyprland-share-picker/mainpicker.ui
+++ b/hyprland-share-picker/mainpicker.ui
@@ -66,7 +66,7 @@
<enum>QTabWidget::North</enum>
</property>
<property name="currentIndex">
- <number>1</number>
+ <number>0</number>
</property>
<widget class="QWidget" name="screens">
<attribute name="title">
--
2.42.0
From f9461b0b7d3071347390feee534638555ff76c7d Mon Sep 17 00:00:00 2001
From: Rudolchr <72916442+Rudolchr@users.noreply.github.com>
Date: Tue, 26 Sep 2023 23:23:02 +0200
Subject: [PATCH 3/3] build: Fix build when using clang (#100)
* Add -Wno-address-of-temporary to allow taking an address of temporary like -fpermissive does for gcc
* Make some implicit casts explicit
* Implement the wl_array_for_each macro inline as clang does not like to handle it's implicit typecast
* Removed unecessary include that was automatically added by the ide
* Replaced reinterpret_cast's with c-style casts
---
meson.build | 5 +++--
src/core/PortalManager.cpp | 3 ++-
src/portals/Screencopy.cpp | 19 ++++++++++---------
3 files changed, 15 insertions(+), 12 deletions(-)
diff --git a/meson.build b/meson.build
index 77c1a80..2fff319 100644
--- a/meson.build
+++ b/meson.build
@@ -25,10 +25,11 @@ endif
add_project_arguments(cpp_compiler.get_supported_arguments([
'-Wno-missing-field-initializers',
'-Wno-narrowing',
- '-Wno-pointer-arith',
+ '-Wno-pointer-arith',
'-Wno-unused-parameter',
'-Wno-unused-value',
- '-fpermissive'
+ '-fpermissive',
+ '-Wno-address-of-temporary'
]), language: 'cpp')
conf_data = configuration_data()
diff --git a/src/core/PortalManager.cpp b/src/core/PortalManager.cpp
index d56ebe0..a03da31 100644
--- a/src/core/PortalManager.cpp
+++ b/src/core/PortalManager.cpp
@@ -169,7 +169,8 @@ static void dmabufFeedbackTrancheFormats(void* data, zwp_linux_dmabuf_feedback_v
uint32_t n_modifiers = g_pPortalManager->m_sWaylandConnection.dma.formatTableSize / sizeof(struct fm_entry);
fm_entry* fm_entry = (struct fm_entry*)g_pPortalManager->m_sWaylandConnection.dma.formatTable;
uint16_t* idx;
- wl_array_for_each(idx, indices) {
+
+ for (idx = (uint16_t*)indices->data; (const char*)idx < (const char*)indices->data + indices->size; idx++) {
if (*idx >= n_modifiers)
continue;
diff --git a/src/portals/Screencopy.cpp b/src/portals/Screencopy.cpp
index c5b234c..d69d353 100644
--- a/src/portals/Screencopy.cpp
+++ b/src/portals/Screencopy.cpp
@@ -781,7 +781,7 @@ static void pwStreamParamChanged(void* data, uint32_t id, const spa_pod* param)
const spa_pod* pod_modifier = &prop_modifier->value;
uint32_t n_modifiers = SPA_POD_CHOICE_N_VALUES(pod_modifier) - 1;
- uint64_t* modifiers = SPA_POD_CHOICE_VALUES(pod_modifier);
+ uint64_t* modifiers = (uint64_t*)SPA_POD_CHOICE_VALUES(pod_modifier);
modifiers++;
uint32_t flags = GBM_BO_USE_RENDERING;
uint64_t modifier;
@@ -853,14 +853,15 @@ static void pwStreamParamChanged(void* data, uint32_t id, const spa_pod* param)
params[0] = build_buffer(&dynBuilder[0].b, blocks, PSTREAM->pSession->sharingData.frameInfoSHM.size, PSTREAM->pSession->sharingData.frameInfoSHM.stride, data_type);
- params[1] = spa_pod_builder_add_object(&dynBuilder[1].b, SPA_TYPE_OBJECT_ParamMeta, SPA_PARAM_Meta, SPA_PARAM_META_type, SPA_POD_Id(SPA_META_Header), SPA_PARAM_META_size,
- SPA_POD_Int(sizeof(struct spa_meta_header)));
+ params[1] = (const spa_pod*)spa_pod_builder_add_object(&dynBuilder[1].b, SPA_TYPE_OBJECT_ParamMeta, SPA_PARAM_Meta, SPA_PARAM_META_type, SPA_POD_Id(SPA_META_Header),
+ SPA_PARAM_META_size, SPA_POD_Int(sizeof(struct spa_meta_header)));
- params[2] = spa_pod_builder_add_object(&dynBuilder[1].b, SPA_TYPE_OBJECT_ParamMeta, SPA_PARAM_Meta, SPA_PARAM_META_type, SPA_POD_Id(SPA_META_VideoTransform),
- SPA_PARAM_META_size, SPA_POD_Int(sizeof(struct spa_meta_videotransform)));
+ params[2] = (const spa_pod*)spa_pod_builder_add_object(&dynBuilder[1].b, SPA_TYPE_OBJECT_ParamMeta, SPA_PARAM_Meta, SPA_PARAM_META_type, SPA_POD_Id(SPA_META_VideoTransform),
+ SPA_PARAM_META_size, SPA_POD_Int(sizeof(struct spa_meta_videotransform)));
- params[3] = spa_pod_builder_add_object(&dynBuilder[2].b, SPA_TYPE_OBJECT_ParamMeta, SPA_PARAM_Meta, SPA_PARAM_META_type, SPA_POD_Id(SPA_META_VideoDamage), SPA_PARAM_META_size,
- SPA_POD_CHOICE_RANGE_Int(sizeof(struct spa_meta_region) * 4, sizeof(struct spa_meta_region) * 1, sizeof(struct spa_meta_region) * 4));
+ params[3] = (const spa_pod*)spa_pod_builder_add_object(
+ &dynBuilder[2].b, SPA_TYPE_OBJECT_ParamMeta, SPA_PARAM_Meta, SPA_PARAM_META_type, SPA_POD_Id(SPA_META_VideoDamage), SPA_PARAM_META_size,
+ SPA_POD_CHOICE_RANGE_Int(sizeof(struct spa_meta_region) * 4, sizeof(struct spa_meta_region) * 1, sizeof(struct spa_meta_region) * 4));
pw_stream_update_params(PSTREAM->stream, params, 4);
spa_pod_dynamic_builder_clean(&dynBuilder[0]);
@@ -1061,7 +1062,7 @@ uint32_t CPipewireConnection::buildFormatsFor(spa_pod_builder* b[2], const spa_p
paramCount = 2;
params[0] = build_format(b[0], pwFromDrmFourcc(stream->pSession->sharingData.frameInfoDMA.fmt), stream->pSession->sharingData.frameInfoDMA.w,
- stream->pSession->sharingData.frameInfoDMA.h, stream->pSession->sharingData.framerate, modifiers, modCount);
+ stream->pSession->sharingData.frameInfoDMA.h, stream->pSession->sharingData.framerate, modifiers, modCount);
assert(params[0] != NULL);
params[1] = build_format(b[1], pwFromDrmFourcc(stream->pSession->sharingData.frameInfoSHM.fmt), stream->pSession->sharingData.frameInfoSHM.w,
stream->pSession->sharingData.frameInfoSHM.h, stream->pSession->sharingData.framerate, NULL, 0);
@@ -1071,7 +1072,7 @@ uint32_t CPipewireConnection::buildFormatsFor(spa_pod_builder* b[2], const spa_p
paramCount = 1;
params[0] = build_format(b[0], pwFromDrmFourcc(stream->pSession->sharingData.frameInfoSHM.fmt), stream->pSession->sharingData.frameInfoSHM.w,
- stream->pSession->sharingData.frameInfoSHM.h, stream->pSession->sharingData.framerate, NULL, 0);
+ stream->pSession->sharingData.frameInfoSHM.h, stream->pSession->sharingData.framerate, NULL, 0);
}
return paramCount;
--
2.42.0

View File

@ -1,35 +0,0 @@
From 7ec34c32dae716cb3976037e1086e193ff1b0cc3 Mon Sep 17 00:00:00 2001
From: Remigiusz Micielski <rmicielski@purelymail.com>
Date: Wed, 22 Nov 2023 17:13:09 +0100
Subject: [PATCH] fix: use sys sdbus-c++
---
CMakeLists.txt | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 44d1689..aa7588b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -21,16 +21,16 @@ endif()
include_directories(
.
"protocols/"
- "subprojects/sdbus-cpp/include/"
)
set(CMAKE_CXX_STANDARD 23)
add_compile_options(-Wall -Wextra -Wno-unused-parameter -Wno-unused-value -Wno-missing-field-initializers -Wno-narrowing -Wno-pointer-arith -fpermissive)
message(STATUS "Checking deps...")
-add_subdirectory(subprojects/sdbus-cpp)
add_subdirectory(hyprland-share-picker)
+find_package(sdbus-c++ REQUIRED)
+
find_package(Threads REQUIRED)
find_package(PkgConfig REQUIRED)
--
2.41.0

View File

@ -1,24 +0,0 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8a5bee3..c3a377e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -21,7 +21,6 @@ endif()
include_directories(
.
"protocols/"
- "subprojects/sdbus-cpp/include/"
)
set(CMAKE_CXX_STANDARD 23)
@@ -30,9 +29,10 @@ add_compile_options(-Wall -Wextra -Wno-unused-parameter -Wno-unused-value
-fpermissive -Wno-address-of-temporary)
message(STATUS "Checking deps...")
-add_subdirectory(subprojects/sdbus-cpp)
add_subdirectory(hyprland-share-picker)
+find_package(sdbus-c++ REQUIRED)
+
find_package(Threads REQUIRED)
find_package(PkgConfig REQUIRED)

View File

@ -1,21 +0,0 @@
From 24fa87b939539a1d13696718490ff5642ab12509 Mon Sep 17 00:00:00 2001
From: Pavel Solovev <daron439@gmail.com>
Date: Sun, 7 Jan 2024 22:17:24 +0300
Subject: [PATCH] Cmake: Do not use CMAKE_INSTALL_LIBDIR for the systemd
service
In some distros CMAKE_INSTALL_LIBDIR is lib64, but systemd services are always in lib (not lib64)
---
CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 73f429b..2eb7cfb 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -104,4 +104,4 @@ install(TARGETS xdg-desktop-portal-hyprland DESTINATION ${CMAKE_INSTALL_LIBEXECD
install(FILES hyprland.portal DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/xdg-desktop-portal/portals")
install(FILES ${CMAKE_BINARY_DIR}/org.freedesktop.impl.portal.desktop.hyprland.service DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/dbus-1/services")
-install(FILES ${CMAKE_BINARY_DIR}/contrib/systemd/xdg-desktop-portal-hyprland.service DESTINATION "${CMAKE_INSTALL_LIBDIR}/systemd/user")
+install(FILES ${CMAKE_BINARY_DIR}/contrib/systemd/xdg-desktop-portal-hyprland.service DESTINATION "lib/systemd/user")

View File

@ -1,32 +0,0 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 73f429b..e760098 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -38,17 +38,12 @@ add_compile_options(-Wall -Wextra -Wno-unused-parameter -Wno-unused-value
message(STATUS "Checking deps...")
add_subdirectory(hyprland-share-picker)
+find_package(sdbus-c++ REQUIRED)
find_package(Threads REQUIRED)
find_package(PkgConfig REQUIRED)
pkg_check_modules(deps REQUIRED IMPORTED_TARGET wayland-client wayland-protocols libpipewire-0.3 libspa-0.2 libdrm gbm hyprlang>=0.2.0)
# check whether we can find sdbus-c++ through pkg-config
-pkg_check_modules(SDBUS IMPORTED_TARGET sdbus-c++)
-if(NOT SDBUS_FOUND)
- include_directories("subprojects/sdbus-cpp/include/")
- add_subdirectory(subprojects/sdbus-cpp)
- add_library(PkgConfig::SDBUS ALIAS sdbus-c++)
-endif()
# same for hyprland-protocols
pkg_check_modules(HYPRLAND_PROTOS IMPORTED_TARGET hyprland-protocols)
@@ -60,7 +55,7 @@ endif()
file(GLOB_RECURSE SRCFILES CONFIGURE_DEPENDS "src/*.cpp")
add_executable(xdg-desktop-portal-hyprland ${SRCFILES})
-target_link_libraries(xdg-desktop-portal-hyprland PRIVATE rt PkgConfig::SDBUS Threads::Threads PkgConfig::deps)
+target_link_libraries(xdg-desktop-portal-hyprland PRIVATE rt sdbus-c++ Threads::Threads PkgConfig::deps)
# protocols
find_program(WaylandScanner NAMES wayland-scanner)

View File

@ -1,21 +0,0 @@
diff --git a/src/shared/ScreencopyShared.hpp b/src/shared/ScreencopyShared.hpp
index d626da6..2368833 100644
--- a/src/shared/ScreencopyShared.hpp
+++ b/src/shared/ScreencopyShared.hpp
@@ -5,16 +5,12 @@
extern "C" {
#include <spa/pod/builder.h>
-#undef SPA_VERSION_POD_BUILDER_CALLBACKS
-#define SPA_VERSION_POD_BUILDER_CALLBACKS .version = 0
#include <spa/buffer/meta.h>
#include <spa/utils/result.h>
#include <spa/param/props.h>
#include <spa/param/format-utils.h>
#include <spa/param/video/format-utils.h>
#include <spa/pod/dynamic.h>
-#undef SPA_VERSION_POD_BUILDER_CALLBACKS
-#define SPA_VERSION_POD_BUILDER_CALLBACKS 0
}
#include <wayland-client.h>

View File

@ -1,95 +0,0 @@
# Copyright 2022-2024 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/xdg-desktop-portal-hyprland.git"
inherit git-r3
else
PROTO_COMMIT="4d29e48433270a2af06b8bc711ca1fe5109746cd"
SRC_URI="https://github.com/hyprwm/xdg-desktop-portal-hyprland/archive/refs/tags/v${PV}.tar.gz \
-> xdg-desktop-hyprland-${PV}.tar.gz
https://github.com/hyprwm/hyprland-protocols/archive/${PROTO_COMMIT}.tar.gz \
-> proto-subproject-${PV}.tar.gz"
KEYWORDS="~amd64"
fi
LICENSE="MIT"
SLOT="0"
IUSE="elogind qt6 systemd"
REQUIRED_USE="?? ( elogind systemd )"
DEPEND="
>=media-video/pipewire-0.3.41:=
dev-cpp/sdbus-c++
dev-libs/hyprlang:=
dev-libs/inih
dev-libs/wayland
qt6? (
dev-qt/qtbase:6[gui,widgets]
dev-qt/qtwayland:6
)
!qt6? (
dev-qt/qtcore
dev-qt/qtgui
dev-qt/qtwidgets
dev-qt/qtwayland:5
)
media-libs/mesa
sys-apps/util-linux
x11-libs/libdrm
|| (
systemd? ( >=sys-apps/systemd-237 )
elogind? ( >=sys-auth/elogind-237 )
sys-libs/basu
)
"
RDEPEND="
${DEPEND}
sys-apps/xdg-desktop-portal
"
BDEPEND="
>=dev-libs/wayland-protocols-1.24
dev-libs/hyprland-protocols
virtual/pkgconfig
|| ( >=sys-devel/gcc-13:* >=sys-devel/clang-17:* )
"
pkg_setup() {
[[ ${MERGE_TYPE} == binary ]] && return
if tc-is-gcc && ver_test $(gcc-version) -lt 13 ; then
eerror "XDPH needs >=gcc-13 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-13 or >=clang-17 to compile."
eerror "Please upgrade Clang: emerge -v1 sys-devel/clang"
die "Clang version is too old to compile XDPH!"
fi
}
src_unpack() {
if [[ ${PV} == 9999 ]]; then
git-r3_src_unpack
else
default
rmdir "${S}/subprojects/hyprland-protocols" || die
mv "hyprland-protocols-${PROTO_COMMIT}" "${S}/subprojects/hyprland-protocols" || die
fi
}
src_prepare() {
eapply "${FILESDIR}/xdg-desktop-portal-hyprland-1.3.1_use_sys_sdbus-c++.patch"
eapply "${FILESDIR}/xdg-desktop-portal-hyprland-1.3.1_fix_systemd_path.patch"
sed -i "/add_compile_options(-O3)/d" "${S}/CMakeLists.txt" || die
cmake_src_prepare
}

View File

@ -1,81 +0,0 @@
# Copyright 2022-2024 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}.gh.tar.gz"
KEYWORDS="~amd64"
fi
LICENSE="MIT"
SLOT="0"
IUSE="elogind qt6 systemd"
REQUIRED_USE="?? ( elogind systemd )"
DEPEND="
>=media-video/pipewire-0.3.41:=
dev-cpp/sdbus-c++
dev-libs/hyprlang:=
dev-libs/inih
dev-libs/wayland
qt6? (
dev-qt/qtbase:6[gui,widgets]
dev-qt/qtwayland:6
)
!qt6? (
dev-qt/qtcore
dev-qt/qtgui
dev-qt/qtwidgets
dev-qt/qtwayland:5
)
media-libs/mesa
sys-apps/util-linux
x11-libs/libdrm
|| (
systemd? ( >=sys-apps/systemd-237 )
elogind? ( >=sys-auth/elogind-237 )
sys-libs/basu
)
"
RDEPEND="
${DEPEND}
sys-apps/xdg-desktop-portal
"
BDEPEND="
>=dev-libs/wayland-protocols-1.24
dev-libs/hyprland-protocols
virtual/pkgconfig
|| ( >=sys-devel/gcc-13:* >=sys-devel/clang-17:* )
"
pkg_setup() {
[[ ${MERGE_TYPE} == binary ]] && return
if tc-is-gcc && ver_test $(gcc-version) -lt 13 ; then
eerror "XDPH needs >=gcc-13 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-13 or >=clang-17 to compile."
eerror "Please upgrade Clang: emerge -v1 sys-devel/clang"
die "Clang version is too old to compile XDPH!"
fi
}
src_prepare() {
eapply "${FILESDIR}/xdg-desktop-portal-hyprland-1.3.2_use_sys_sdbus-c++.patch"
eapply "${FILESDIR}/xdg-desktop-portal-hyprland-1.3.2_fix_pipewire.patch"
sed -i "/add_compile_options(-O3)/d" "${S}/CMakeLists.txt" || die
cmake_src_prepare
}