xdg-desktop-portal is a D-Bus service that allows applications to interact with the desktop in a safe way. Several aspects of desktop interaction, like file chooser, desktop style, etc are implemented in different D-Bus APIs, known as portals. Sandboxed applications benefit the most from this service since they don't need special permissions to use the portal APIs, but any application can use it. xdg-desktop-portal safeguards many resources and features with a user-controlled permission system. This service needs a backend implementing desktop-specific portal interfaces.
Development versions of BLFS may not build or run some packages properly if LFS or dependencies have been updated since the most recent stable versions of the books.
Download (HTTP): https://github.com/flatpak/xdg-desktop-portal/releases/download/1.20.0/xdg-desktop-portal-1.20.0.tar.xz
Download MD5 sum: 9f6450322a359a95018b57960d1ca4fd
Download size: 1.1 MB
Estimated disk space required: 21 MB (add 2 MB for tests)
Estimated build time: 0.1 SBU (add 0.2 SBU for tests; with parallelism=4)
Fuse-3.16.2, gdk-pixbuf-2.42.12, JSON-GLib-1.10.6, pipewire-1.4.0, and dbus-1.16.0 (at runtime). Furthermore, a backend is needed at runtime for this package to be of any use, either xdg-desktop-portal-gtk-1.15.2 or xdg-desktop-portal-gnome-47.3 or xdg-desktop-portal-lxqt-1.1.0
bubblewrap-0.11.0 and docutils-0.21.2 (for building the manual pages)
Although there is an option to build the package without bubblewrap, upstream developers and LFS editors alike highly recommend to not use this possibility, as it will create a large security issue.
GeoClue-2.7.2 (for the “location” portal), and pytest-8.3.5 with libportal-0.9.1, dbusmock-0.34.3, and umockdev-0.19.1 (for running tests)
sphinx-8.2.3 with sphinxext.opengraph, sphinx_copybutton, furo, and flatpak
Install xdg-desktop-portal by running the following commands:
mkdir build && cd build && meson setup --prefix=/usr --buildtype=release -D tests=disabled .. && ninja
If the optional dependencies are installed, you can test the results by running:
meson configure -D tests=enabled && ninja test
Without the external dependencies one test, integration/dynamiclauncher is known to fail.
Now, as the root
user:
ninja install
Remove systemd files that are useless (as the root
user):
rm -rvf /usr/lib/systemd
-D tests=disabled
: Prevents
requiring several optional dependencies that are only needed for
tests.
The main configuration files are ~/.config/xdg-desktop-portal/portals.conf
,
/etc/xdg-desktop-portal/portals.conf
, and
/usr/share/xdg-desktop-portal/portals.conf
.
Several other locations can be searched for configuration files.
See portals.conf(5).
The various configuration files are used to choose the backend depending of various conditions. See portals.conf(5) for details.