diff options
author | Sam James <sam@gentoo.org> | 2023-10-14 03:20:56 +0100 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2023-10-14 03:21:41 +0100 |
commit | c551c46f7f8ce26730d6424552e83fb4d74a63e2 (patch) | |
tree | 55b9c26fcee3a3f9a1e443b8806d2a4d70bc58a4 /sys-apps | |
parent | sys-fs/zfs-kmod: drop 2.1.9, 2.1.11, 2.1.11-r1 (diff) | |
download | gentoo-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.conf | 2 | ||||
-rw-r--r-- | sys-apps/xdg-desktop-portal/xdg-desktop-portal-1.18.0-r2.ebuild | 121 |
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 +} |