Releases: flatpak/xdg-desktop-portal
1.19.0
Important
This was the first release of xdg-desktop-portal made using automation. If you found any issues with it, please let us know.
- 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.
1.18.4
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:
- 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.
$ sha256sum xdg-desktop-portal-1.18.4.tar.xz
b858aa1e74e80c862790dbb912906e6eab8b1e4db9339cd759473af62b461e65 xdg-desktop-portal-1.18.4.tar.xz
1.16.1
This is a new minor release of xdg-desktop-portal 1.16 series. Users and distributions are strongly encouraged to update to this version. These are the changes included in this release:
- Don't allow commandline arrays when the first commandline item starts with whitespace or hyphen. (CVE-2024-32462)
- Set writable flag of files correctly in the FileChooser portal
- Handle bad requests more gracefully in the File Transfer portal
- Various fixes to documentation
- Various smaller bugfixes
- Translation updates
$ sha256sum xdg-desktop-portal-1.16.1.tar.xz
9b3ea112f19fcd953b629194a5ff377571036162d81575d11c0c8d3d6ba88d9c xdg-desktop-portal-1.16.1.tar.xz
1.18.3
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:
- 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.
- Fix a bug in PipeWire that prevented cameras from being reported reliably.
- Various smaller bug fixes.
$ sha256sum xdg-desktop-portal-1.18.3.tar.xz
d23c1efb66ac325396cd0ac4a063fc24a9bd9d5e9829467050ae5417d1a7b3ad xdg-desktop-portal-1.18.3.tar.xz
1.18.2
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:
- 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.
$ sha256sum xdg-desktop-portal-1.18.2.tar.xz
dfac239c5476aafd117a9a10131a2f0b142f72106c52fc03859938e00545f440 xdg-desktop-portal-1.18.2.tar.xz
1.18.1
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
$ sha256sum xdg-desktop-portal-1.18.1.tar.xz
4560478e78b1e246c53e4b0540e63748187143942d6f202a4dcd4864318bfd10 xdg-desktop-portal-1.18.1.tar.xz
1.18.0
This is the first stable release of the 1.18 series. Users and distributions are strongly encouraged to update to this version. These are the highlights of this release:
Highlights
- A new config-based portal matching mechanism that gives more precise control over which portal backends are picked for each portal.
- New portals: Clipboard and Input Capture
- The settings portal now documents an 'accent-color' key
Other changes
New portal APIs:
- Introduce a new Clipboard portal. This portal extends the Remote Desktop portal by adding support for sharing clipboard between remote machines.
- Introduce a new Input Capture portal. This portal adds mechanisms for taking control of input devices. The primary usage model is centered around the InputLeap and Synergy use cases, where local devices are used to control remote displays.
- Add an "accept-label" option the the Print portal. This lets apps suggest a proper label to the print operation.
- Document a new 'accent-color' key in the Settings portal. This key represents an arbitrary color in sRGB colorspace. How implementations of the portal provide this key is entirely dependent on their internal policies and design.
- Support restoring remote desktop sessions
- Introduce the ReadOne() method in the Settings portal. This method is now preferred over the Read() method, as Read() mistakenly returned a variant inside a variant. The Read() method will continue to exist for compatibility with existing apps, but its usage is deprecated. We recommend apps to port to the ReadOne() method. Apps can decide whether to use ReadOne() or Read() by looking at the version of the Settings portal.
Changes that might be relevant for distributors:
- Rework how portal implementations are loaded. This new, more robust system allows selecting specific backends for specific portals, and layering them when necessary. Platforms that provide portals implementation are encouraged to provide a suitable configuration file.
- Drop the Autotools build. Meson is now the only supported build system.
- The PipeWire dependency is now mandatory
- Bump GLib dependency to 2.66
Misc changes:
- Improve robustness of the OpenURI portal by validating more URIs
- Various small visual tweaks to the generated documentation
- Various fixes to the Global Shortcuts portal
- Stop using the deprecated GTimeVal struct
- Document xdg-desktop-portal versioning scheme
- Fix various issues in the OpenURI portal
- Bump interface version of the Printer portal to 2
- Validate addresses following the HTML specs in the Email portal
- Document minimum version of the new ReadOne() method of the Settings portal
- Add a mapping id property to the ScreenCast portal
- Add activation token parameter to the Email portal
- Test tarball generation in CI
- Translation updates
$ sha256sum xdg-desktop-portal-1.18.0.tar.xz
5ea35a6420a98b598c83355fc19feaea8ba999149641bf84079b0c572b00f5bd xdg-desktop-portal-1.18.0.tar.xz
1.17.2
This is very likely to be the last unstable release before 1.18.0
- Document minimum version of the new ReadOne() method of the Settings portal
- Add a mapping id property to the ScreenCast portal
- Add activation token parameter to the Email portal
- Test tarball generation in CI
$ sha256sum xdg-desktop-portal-1.17.2.tar.xz
1e861eb991e60e56b06c64dc03284c02f9913f9a426d8955f8d529ff8f3f6d96 xdg-desktop-portal-1.17.2.tar.xz
1.17.1
- Document xdg-desktop-portal versioning scheme
- Fix various issues in the OpenURI portal
- Introduce the ReadOne() method in the Settings portal. This method is now preferred over the Read() method, as Read() mistakenly returned a variant inside a variant. The Read() method will continue to exist for compatibility with existing apps, but its usage is deprecated. We recommend apps to port to the ReadOne() method. Apps can decide whether to use ReadOne() or Read() by looking at the version of the Settings portal.
- Improvements to the new config-based portal matching mechanism. Config files are now searched in standard paths, in a way that is compatible to other system components (e.g. MIME types).
- Various small visual tweaks to the generated documentation
- Document a new 'accent-color' key in the Settings portal. This key represents an arbitrary color in sRGB colorspace. How implementations of the portal provide this key is entirely dependent on their internal policies and design.
- Translation updates
$ sha256sum xdg-desktop-portal-1.17.1.tar.xz
bd240649bf03818d4a0df5b05242518da95aeda9a0fe37ac9b4a1c3fd7ecabcd xdg-desktop-portal-1.17.1.tar.xz
1.17.0
- Drop the Autotools build. Meson is now the only supported build system.
- Rework how portal implementations are loaded. This new, more robust system allows selecting specific backends for specific portals, and layering them when necessary. Platforms that provide portals implementation are encouraged to provide a suitable configuration file.
- Introduce a new Clipboard portal. This portal extends the Remote Desktop portal by adding support for sharing clipboard between remote machines.
- Introduce a new Input Capture portal. This portal adds mechanisms for taking control of input devices. The primary usage model is centered around the InputLeap and Synergy use cases, where local devices are used to control remote displays.
- Stop using the deprecated GTimeVal struct
- Bump GLib dependency to 2.66
- Add an "accept-label" option the the Print portal. This lets apps suggest a proper label to the print operation.
- Various fixes to the Global Shortcuts portal
- Support restoring remote desktop sessions
- Improve robustness of the OpenURI portal by validating more URIs
- The PipeWire dependency is now mandatory
- Various improvements for the test suite
- Translation updates
$ sha256sum xdg-desktop-portal-1.17.0.tar.xz
cafa7c4289decf203d21829abbbefc3e968c9975664685e151db2c701b532a8b xdg-desktop-portal-1.17.0.tar.xz