summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2023-10-14 03:20:56 +0100
committerSam James <sam@gentoo.org>2023-10-14 03:21:41 +0100
commitc551c46f7f8ce26730d6424552e83fb4d74a63e2 (patch)
tree55b9c26fcee3a3f9a1e443b8806d2a4d70bc58a4 /sys-apps
parentsys-fs/zfs-kmod: drop 2.1.9, 2.1.11, 2.1.11-r1 (diff)
downloadgentoo-c551c46f7f8ce26730d6424552e83fb4d74a63e2.tar.gz
gentoo-c551c46f7f8ce26730d6424552e83fb4d74a63e2.tar.bz2
gentoo-c551c46f7f8ce26730d6424552e83fb4d74a63e2.zip
sys-apps/xdg-desktop-portal: provide default portal config
Install a default to avoid breakage: >=1.18.0 assumes that DEs/WMs will install their own, but we want some fallback in case they don't (so will probably keep this forever). DEs need time to catch up even if they will eventually provide one anyway. See bug #915356. TODO: Add some docs on wiki for users to add their own preference for minimalist WMs etc. Thanks to abby from Void for pointing me to https://github.com/void-linux/void-packages/commit/b4c404aac0af3ced08671a8840cd261198689cef and psykose as well. Bug: https://github.com/flatpak/xdg-desktop-portal/issues/1017 Bug: https://github.com/flatpak/xdg-desktop-portal/issues/1077 Bug: https://github.com/flatpak/xdg-desktop-portal/issues/1102 Closes: https://bugs.gentoo.org/915356 Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'sys-apps')
-rw-r--r--sys-apps/xdg-desktop-portal/files/default-portals.conf2
-rw-r--r--sys-apps/xdg-desktop-portal/xdg-desktop-portal-1.18.0-r2.ebuild121
2 files changed, 123 insertions, 0 deletions
diff --git a/sys-apps/xdg-desktop-portal/files/default-portals.conf b/sys-apps/xdg-desktop-portal/files/default-portals.conf
new file mode 100644
index 000000000000..028e24d2bbee
--- /dev/null
+++ b/sys-apps/xdg-desktop-portal/files/default-portals.conf
@@ -0,0 +1,2 @@
+[preferred]
+default=*
diff --git a/sys-apps/xdg-desktop-portal/xdg-desktop-portal-1.18.0-r2.ebuild b/sys-apps/xdg-desktop-portal/xdg-desktop-portal-1.18.0-r2.ebuild
new file mode 100644
index 000000000000..a5c4f5c61cce
--- /dev/null
+++ b/sys-apps/xdg-desktop-portal/xdg-desktop-portal-1.18.0-r2.ebuild
@@ -0,0 +1,121 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..12} )
+
+inherit meson python-any-r1 systemd
+
+DESCRIPTION="Desktop integration portal"
+HOMEPAGE="https://flatpak.org/ https://github.com/flatpak/xdg-desktop-portal"
+SRC_URI="https://github.com/flatpak/${PN}/releases/download/${PV}/${P}.tar.xz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
+IUSE="geolocation flatpak seccomp systemd test"
+RESTRICT="!test? ( test )"
+# Upstream expect flatpak to be used w/ seccomp and flatpak needs bwrap anyway
+REQUIRED_USE="flatpak? ( seccomp )"
+
+DEPEND="
+ >=dev-libs/glib-2.66:2
+ dev-libs/json-glib
+ dev-python/docutils
+ >=media-video/pipewire-0.3:=
+ >=sys-fs/fuse-3.10.0:3[suid]
+ x11-libs/gdk-pixbuf
+ geolocation? ( >=app-misc/geoclue-2.5.3:2.0 )
+ flatpak? ( sys-apps/flatpak )
+ seccomp? ( sys-apps/bubblewrap )
+ systemd? ( sys-apps/systemd )
+"
+RDEPEND="
+ ${DEPEND}
+ sys-apps/dbus
+"
+BDEPEND="
+ dev-util/gdbus-codegen
+ sys-devel/gettext
+ virtual/pkgconfig
+ test? (
+ ${PYTHON_DEPS}
+ dev-libs/libportal
+ $(python_gen_any_dep '
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ dev-python/python-dbusmock[${PYTHON_USEDEP}]
+ ')
+ )
+"
+
+PATCHES=(
+ # These tests require connections to pipewire, internet, /dev/fuse
+ "${FILESDIR}/${P}-sandbox-disable-failing-tests.patch"
+
+ # https://github.com/flatpak/xdg-desktop-portal/pull/1100
+ "${FILESDIR}/0001-meson.build-allow-linux-to-build-without-flatpak-ins.patch"
+ "${FILESDIR}/0002-meson.build-allow-linux-to-build-without-bubblewrap.patch"
+ "${FILESDIR}/0003-Make-flatpak-bwrap-optional.patch"
+)
+
+pkg_setup() {
+ use test && python-any-r1_pkg_setup
+}
+
+python_check_deps() {
+ python_has_version "dev-python/pytest[${PYTHON_USEDEP}]" &&
+ python_has_version "dev-python/pytest-xdist[${PYTHON_USEDEP}]" &&
+ python_has_version "dev-python/python-dbusmock[${PYTHON_USEDEP}]"
+}
+
+src_configure() {
+ local emesonargs=(
+ -Ddbus-service-dir="${EPREFIX}/usr/share/dbus-1/services"
+ -Dsystemd-user-unit-dir="$(systemd_get_userunitdir)"
+ $(meson_feature flatpak)
+ # Only used for tests
+ $(meson_feature test libportal)
+ $(meson_feature geolocation geoclue)
+ $(meson_feature seccomp bwrap)
+ $(meson_feature systemd)
+ # Requires flatpak
+ -Ddocbook-docs=disabled
+ # -Dxmlto-flags=
+ -Ddatarootdir="${EPREFIX}/usr/share"
+ -Dman-pages=enabled
+ -Dinstalled-tests=false
+ $(meson_feature test pytest)
+ )
+
+ meson_src_configure
+}
+
+src_install() {
+ meson_src_install
+
+ # Install a default to avoid breakage: >=1.18.0 assumes that DEs/WMs
+ # will install their own, but we want some fallback in case they don't
+ # (so will probably keep this forever). DEs need time to catch up even
+ # if they will eventually provide one anyway. See bug #915356.
+ #
+ # TODO: Add some docs on wiki for users to add their own preference
+ # for minimalist WMs etc.
+ insinto /usr/share/xdg-desktop-portal
+ newins "${FILESDIR}"/default-portals.conf portals.conf
+}
+
+pkg_postinst() {
+ if ! has_version gui-libs/xdg-desktop-portal-lxqt && ! has_version gui-libs/xdg-desktop-portal-wlr && \
+ ! has_version kde-plasma/xdg-desktop-portal-kde && ! has_version sys-apps/xdg-desktop-portal-gnome && \
+ ! has_version sys-apps/xdg-desktop-portal-gtk; then
+ elog "${PN} is not usable without any of the following XDP"
+ elog "implementations installed:"
+ elog " gui-libs/xdg-desktop-portal-lxqt"
+ elog " gui-libs/xdg-desktop-portal-wlr"
+ elog " kde-plasma/xdg-desktop-portal-kde"
+ elog " sys-apps/xdg-desktop-portal-gnome"
+ elog " sys-apps/xdg-desktop-portal-gtk"
+ fi
+}