12 Commits

Author SHA1 Message Date
Markus Volk
ccd2c8b67c
xdg-desktop-portal: update 1.20.0 -> 1.20.3
1.20.3:
    Add a fallback code path for GLib older than 2.76 (#1728)
    Don't require a .desktop file for Flatpak and Snap apps (#1729)

1.20.2:
    Fix a crash when loading information from Flatpak apps
    Fix fd handling to prevent EBADF errors

1.20.1:
Enhancements:
    Code cleanups and improvements to app info tracking
    Include PID/TID in realtime portal error messages
    Search for portal backends in $XDG_DATA_DIRS (#603)
    Prioritize user portal configs over system ones

Bug Fixes:
    Fix race condition in the host registry portal
    Avoid spurious warnings when dbus.service stops
    Documentation fixes (#1663)
    Fix running tests from /tmp
    Fix installing dynamic launcher (#1674)
    Improve error reporting in the document portal
    Fix incorrect state tracking in input capture portal

Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2025-09-06 10:11:38 -07:00
Alexander Kanavin
fc78d37ff0
meta-openembedded/all: adapt to UNPACKDIR changes
Please see
https://git.yoctoproject.org/poky/commit/?id=4dd321f8b83afecd962393101b2a6861275b5265
for what changes are needed, and sed commands that can be used to make them en masse.

I've verified that bitbake -c patch world works with these, but did not run a world
build; the majority of recipes shouldn't need further fixups, but if there are
some that still fall out, they can be fixed in followups.

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2025-06-25 06:44:52 -07:00
Markus Volk
d4a9fe65a5 xdg-desktop-portal: update 1.18.4 -> 1.20.0
Changes in 1.20.0

Released: 2025-02-19

Enhancements:

    Document how the test suite works.
    Improve the test runner script.

Changes in 1.19.4

Released: 2025-02-15

New Features:

    Introduce the host app registry. This interface allows host system apps (i.e. apps not running under a sandboxing mechanism like Flatpak) register themselves with XDG Desktop Portal. This allows XDG Desktop Portal to use a proper app id, and desktop file, improving the interaction with portal backends.

Enhancements:

    Use a new internal script to simplify running tests.

Bug Fixes:

    Properly escape notification body in the Notification portal.
    Fix various documentation links in the USB portal documentation page.

Changes in 1.19.3

Released: 2025-02-12

Bug Fixes:

    Fix documentation links in the USB portal page.
    Make the Document portal track open files, and release them when shutting down. This should fix some harmless leak reports.
    Fix a memory leak, a crash, and improve robustness against non-existing folders in the Dynamic Launcher portal.
    Fix build with PipeWire 1.3.82

Enhancements:

    Make the host path xattr more useful by removing the trailing end character, and also reporting the xattr of files inside folders added to the document store.
    Remove libportal-based integrated tests. This should remove the cyclic dependency between libportal, and xdg-desktop-portal. All tests are now based on the Python testing framework.

Changes in 1.19.2

Released: 2025-01-20

Bug Fixes:

    Fix permission check for host system apps in the Camera portal.
    Do not expose the Settings portal if there are no backends available.
    Disable sounds-related notification tests if the project is built without wavparse.

Enhancements:

    Start porting the test suite to Python tests. Once finished, this should break the cyclic dependency between xdg-desktop-portal and libportal.
    Install Python-based tests. This is mostly useful for distributions to run tests as part of their packaging process.

Changes in 1.19.1

Released: 2024-12-21

Dependencies:

    XDG Desktop Portal now requires GLib 2.72 or higher.

New Features:

    Introduce the Notification v2 portal. This updated version of the Notification portal supports a plethora of new fields for notifications, such as sounds, categories, purpose, and more.
    Introduce the USB portal. This portal allows apps with relevant permissions to enumerate and acquire access to specific USB devices.
    Introduce a new SchemeSupported method to the OpenURI portal. This new method allows apps to know ahead of time if the host system is able to deal with a particular scheme.

Enhancements:

    Continued the move towards Python-based tests. This should simplify the test setup in the project quite significantly, and also will allow removing the cyclic dependency between libportal and XDG Desktop Portal.
    Introduce umockdev-based tests.
    Improve the icon validator so it can deal with memfd-based icons.
    Clarify behavior of the Settings portal for non-standardized keys.
    In the Global Shortcuts portal, clarify that the result the BindShortcuts of may be a subset of all requested shortcuts.
    Add a documentation page about icon validation requirements.

Bug Fixes:

    Fix memory leaks in the Background, Email, and Global Shortcuts portals.
    Fix a general file descriptor & memory leak.
    Fix a regression in the Settings portal.
    New and updated translations.

Changes in 1.19.0

Released: 2024-10-09

    Completely rework and restructure the documentation website. Documentation is now segmented by target audience (app developers, desktop developers, and contributors). It also documents how the Document portal operates, the FUSE filesystem, and custom file attributes. This is available in the following address: https://flatpak.github.io/xdg-desktop-portal/docs/index.html
    The portals.conf parser is now able to handle fallback backends better, and respects the order of backends in the config file.
    Try to use the xdg-desktop-portal-gtk backend as a last resort backend, if everything else fails.
    Implement getlk and setlk, and honour O_NOFOLLOW, in the Document portal's FUSE filesystem.
    Neutralize the Devices portal. Originally the Devices portal was introduced so that services like PulseAudio or PipeWire could request access to microphones and cameras on the behalf of apps. It was not meant to be used by sandboxed apps directly, which is unusual for a portal. Practically, however, it didn't take off.
    Implement PID/TID mapping for host system apps.
    Add a new "supported_output_file_formats" option to the Print portal. This can be used by apps like browsers to limit the output file formats presented by the Print portal backend. For example, an app can limit file printing to PDF files.
    Add a new "GetHostPaths" method to the Document portal, which allows mapping file descriptors to paths on the host system. This can be used by apps to show more meaningful file paths in the user interface.
    Like the new method above, the Document portal sets the "user.document-portal.host-path" xattr on files, pointing to the the host system file path. The use case is similar to "GetHostPaths".
    Make the Background portal more robust when validating autostart files.
    Clarify behavior of the File Chooser portal in the documentation pages.
    Improve robustness against deleted o_path fds in the Document portal.
    Fix a warning in some systems while trying to load Request D-Bus object properties.
    Fix a physical inode leak in the Document portal.
    Various improvements to the test suite. Python-based tests now run in parallel and are more careful when setting up the mock D-Bus server. Tests also start dbus-monitor if necessary now. FUSE tests of the Document portal have been made more TAP-alike now.
    Memory leak fixes in a variety of portals and services, including the permissions database, the Document portal, the File Transfer portal, the Location portal, the Background portal, tests, and the icon validator. And more. There's a lot of memory leak fixes everywhere, really.
    Major refactorings of the icon validator. Icons are now limited to 4MB files.
    Update XML specification specifying session handle type to match current actual ABI in GlobalShortcuts, Inhibit, RemoteDesktop, and ScreenCast portals.
    New and updated translations.

Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2025-02-24 21:31:38 -08:00
Markus Volk
bf80941c3f
flatpak;xdg-desktop-portal: add missing runtime dependency on fuse3-utils
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2024-05-19 08:27:52 -07:00
Markus Volk
9e57692e9f
xdg-desktop-portal: update 1.18.1 -> 1.18.4
Changes in 1.18.4
=================
Released: 2024-04-18

- Don't allow commandline arrays when the first commandline item starts with
  whitespace or hyphen. (CVE-2024-32462)
- Do not store device access permission if it returned an error.
- Fix crash with config files without a default backend set.

Changes in 1.18.3
=================
Released: 2024-04-04

- Don't try to read D-Bus object properties of Request objects on construction.
- Fix various memory and file descriptor leaks.
- Minuscule optimization to the ScreenCast portal so that it stores restoration
  data with a single D-Bus call, instead of two.
- Fix a crash in the OpenURI file when trying to open a non-existing file.
- Various smaller bug fixes.

Changes in 1.18.2
=================
Released: 2023-11-22

- Pass the token to the OpenURI portal and, when missing, an empty string.
- Fix various memory and file descriptor leaks in the Document portal.
- Make files and folders openend with the Document portal close properly. This
  should fix cases where the Document portal prevented external devices from
  unmounting, due to files inside them not getting closed after applications
  stop using them.
- Implement FUSE getlk and setlk callbacks.This should enable using sqlite3
  through the Document portal.
- Properly resolve fd symlinks before opening them with O_NOFOLLOW.
- Fix cases where the portal id is assumed to match the .desktop file name.
- Allow sending directories in the file transfer portal. This should make it
  possible to, among other things, drag and drop folders and files simultaneously
  from and to sandboxed applications.
- Fallback to a hardcoded check to xdg-desktop-portal-gtk in the absence of any
  other portal or configuration file, as a last resort mechanism.
- Various smaller fixes to the build system.

Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2024-05-19 08:27:51 -07:00
Maxime Roussin-Belanger
e88210eae3
xdg-desktop-portal: add missing glib-2.0-native dependency
Without this we get this error `| ../git/src/meson.build:3:29: ERROR: Program
'gdbus-codegen' not found or not executable`

and glib-2.0-native provides gdbus-codegen

Signed-off-by: Maxime Roussin-Bélanger <maxime.roussinbelanger@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2024-01-27 09:48:33 -08:00
Markus Volk
a80b560f08 xdg-desktop-portal: Upgrade 1.18.0 -> 1.18.1
Current meson.build fails if flatpak was not found using pkgconfig
../git/meson.build:203:44: ERROR: Unknown variable "flatpak_dep"

Removing -Dflatpak-interfaces-dir setting and relying on pkgconfig
for flatpak instead seems to work well in our case and avoids the error above

This is a new minor release of xdg-desktop-portal 1.18 series. Users and
distributions are strongly encouraged to update to this version. These are the
changes included in this release:

    -Communicate better when the Background portal kills an app
    -Properly quote Flatpak command in the Background portal
    -Improve documentation of the "cursor_mode" propery of the ScreenCast backend
     D-Bus interface
    -Fix ScreenCast portal removing transient restore permissions too early.
     This fixes screen sharing dialogs on Chromium asking for the screen multiple
     times.
    -Only send the Closed session signal to the sender
    -Add Meson options to disable building with Bubblewrap, and without the
    -Flatpak portal documentation. Disabling Bubblewrap is highly discouraged,and
     only meant to be used on platforms that do not currently support it. By
     disabling Bubblewrap, bitmap validation happens without a sandbox, which is
     highly insecure since image parsing is a common source of exploits. Really, just
     do not disable Bubblewrap please.
    -Improve the manpage of portals.conf
    -Various spelling fixes to the Document portal
    -Add a new website! We don't have a fancy domain yet, but the website can be
     accessed at https://flatpak.github.io/xdg-desktop-portal/
    -Improve pid mapping for host system apps. This should get rid of some rare,
     unnecessary warnings.
    -Adjust documentation of Global Shortcuts portal's timestamps to millisecond
     granularity
    -Bump minimum Meson version to 0.58

Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-11-06 08:56:02 -08:00
Markus Volk
4f7bcf81a9 xdg-desktop-portal: upgrade 1.16.0 -> 1.18.0
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-09-20 15:34:02 -07:00
Martin Jansa
be8c765c7c *.patch: add Upstream-Status to all patches
There is new patch-status QA check in oe-core:
https://git.openembedded.org/openembedded-core/commit/?id=76a685bfcf927593eac67157762a53259089ea8a

This is temporary work around just to hide _many_ warnings from
optional patch-status (if you add it to WARN_QA).

This just added
Upstream-Status: Pending
everywhere without actually investigating what's the proper status.

This is just to hide current QA warnings and to catch new .patch files being
added without Upstream-Status, but the number of Pending patches is now terrible:

5 (26%) 	meta-xfce
6 (50%) 	meta-perl
15 (42%)        meta-webserver
21 (36%)        meta-gnome
25 (57%)        meta-filesystems
26 (43%)        meta-initramfs
45 (45%)        meta-python
47 (55%)        meta-multimedia
312 (63%)       meta-networking
756 (61%)       meta-oe

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-06-21 09:15:20 -07:00
Markus Volk
02f9c6a1a9 xdg-desktop-portal: fix bwrap path
bwrap path is read from STAGING_BINDIR_NATIVE. This commit fixes reproducibility and runtime

Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-03-25 16:43:34 -07:00
Markus Volk
3436f15070 xdg-desktop-portal: add runtime dependency on rtkit
According to the used desktop environment there are high level xdg-desktop-portal
backends available. There are implementations for kde, lxde, gnome, wlroots.
Even hyprland provides its own portal backend addition.
These backends are known to cause unexpected behavior if mixed together,
so it was a little bit overambitious to set the gnome portal as a
runtime dependency by default as it may break other environments.

Remove it from RDEPENDS

Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-02-02 10:25:33 -08:00
Markus Volk
493ca4a0b0 xdg-desktop-portal: add recipe
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-12-23 08:52:22 -08:00