[PATCH 0/2] Potential fix for the latest xdg-desktop-portal

  • Open
  • quality assurance status badge
Details
One participant
  • Rodion Goritskov
Owner
unassigned
Submitted by
Rodion Goritskov
Severity
normal
R
R
Rodion Goritskov wrote on 27 Sep 21:17 +0200
(address . guix-patches@gnu.org)(name . Rodion Goritskov)(address . rodion.goritskov@gmail.com)
cover.1727461684.git.rodion.goritskov@gmail.com
Hello!

The problem with the xdg-desktop-portal is due to the configuration changes introduced in this commit [1].
Now it relies on using the configuration file to decide which xdg-desktop-portal implementation to use. However, as Guix uses XDG_DESKTOP_PORTAL_DIR to specify the portal (not the xdg-portal-configuration) directory, the newest xdg-desktop-portal skip configuration search at all [2].
If we patch the process of configuration search a little bit - just to continue searching in case the XDG_DESKTOP_PORTAL_DIR is specified, but doesn't contain any {*}-portals.conf files (our case), we will have the right configuration files (at least for KDE I have tested this changes on) to be read by xdg-desktop-portal according to priorities (XDG_DATA_DIRS in our case) [3] (so they could be even overridden in users' home directory).

It's a bit hacky, but works fine.


Rodion Goritskov (2):
gnu: xdg-desktop-portal-next: Fix configuration file search.
gnu: xdg-desktop-portal: Update to 1.18.4.

gnu/local.mk | 1 +
gnu/packages/freedesktop.scm | 77 ++++++-------------
...al-disable-configuration-search-exit.patch | 28 +++++++
gnu/packages/telegram.scm | 2 +-
4 files changed, 55 insertions(+), 53 deletions(-)
create mode 100644 gnu/packages/patches/xdg-desktop-portal-disable-configuration-search-exit.patch


base-commit: 9a141b5bd633227ea31776b9ce7ca40928de2442
--
2.46.0
R
R
Rodion Goritskov wrote on 28 Sep 09:41 +0200
[PATCH 1/2] gnu: xdg-desktop-portal-next: Fix configuration file search.
(address . 73520@debbugs.gnu.org)(name . Rodion Goritskov)(address . rodion.goritskov@gmail.com)
6c0a8919ba4ccd7dea35b27b9f6ed9a22c57882a.1727461684.git.rodion.goritskov@gmail.com
* gnu/local.mk: Add patch.
* gnu/packages/freedesktop.scm (xdg-desktop-portal-next): Add patch.
* gnu/packages/patches/xdg-desktop-portal-disable-configuration-search-exit.patch: New file

Change-Id: Idd637f5613e7d1403fc3a0feeff53a7931e68fc6
---
gnu/local.mk | 1 +
gnu/packages/freedesktop.scm | 5 ++--
...al-disable-configuration-search-exit.patch | 28 +++++++++++++++++++
3 files changed, 32 insertions(+), 2 deletions(-)
create mode 100644 gnu/packages/patches/xdg-desktop-portal-disable-configuration-search-exit.patch

Toggle diff (64 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index c2027f9eeb..dc08ff2b82 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -2311,6 +2311,7 @@ dist_patch_DATA = \
%D%/packages/patches/wpa-supplicant-dbus-group-policy.patch \
%D%/packages/patches/x265-arm-flags.patch \
%D%/packages/patches/xdg-desktop-portal-disable-portal-tests.patch\
+ %D%/packages/patches/xdg-desktop-portal-disable-configuration-search-exit.patch\
%D%/packages/patches/xdg-desktop-portal-wlr-harcoded-length.patch\
%D%/packages/patches/xen-docs-use-predictable-ordering.patch \
%D%/packages/patches/xen-remove-config.gz-timestamp.patch \
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index 23ed788689..73bd5c8a3d 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -3086,8 +3086,9 @@ (define-public xdg-desktop-portal-next
(sha256
(base32
"0r8y8qmzcfj7b7brqcxr9lg8pavfds815ffvj0kqc378fhgaln5q"))
- ;; Disable portal tests since they try to use fuse.
- (patches (search-patches "xdg-desktop-portal-disable-portal-tests.patch"))))
+ (patches (search-patches
+ "xdg-desktop-portal-disable-portal-tests.patch"
+ "xdg-desktop-portal-disable-configuration-search-exit.patch"))))
(build-system meson-build-system)
(arguments
(substitute-keyword-arguments (package-arguments xdg-desktop-portal)
diff --git a/gnu/packages/patches/xdg-desktop-portal-disable-configuration-search-exit.patch b/gnu/packages/patches/xdg-desktop-portal-disable-configuration-search-exit.patch
new file mode 100644
index 0000000000..4cb77de806
--- /dev/null
+++ b/gnu/packages/patches/xdg-desktop-portal-disable-configuration-search-exit.patch
@@ -0,0 +1,28 @@
+From 37003d1f99246c88cbe7cf2f83616642e0fdf3fb Mon Sep 17 00:00:00 2001
+From: Rodion Goritskov <rodion.goritskov@gmail.com>
+Date: Fri, 27 Sep 2024 00:44:07 +0400
+Subject: [PATCH] portal-impl: Check if there are any configuration files in XDG_DESKTOP_PORTAL_DIR before exiting configuration search
+
+---
+ src/portal-impl.c | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/src/portal-impl.c b/src/portal-impl.c
+index 8c1fd53..8708409 100644
+--- a/src/portal-impl.c
++++ b/src/portal-impl.c
+@@ -438,9 +438,8 @@ load_portal_configuration (gboolean opt_verbose)
+
+ if (portal_dir != NULL)
+ {
+- load_config_directory (portal_dir, desktops, opt_verbose);
+- /* All other config directories are ignored when this is set */
+- return;
++ if (load_config_directory (portal_dir, desktops, opt_verbose))
++ return;
+ }
+
+ /* $XDG_CONFIG_HOME/xdg-desktop-portal/(DESKTOP-)portals.conf */
+--
+2.46.0
+
--
2.46.0
R
R
Rodion Goritskov wrote on 28 Sep 09:41 +0200
[PATCH 2/2] gnu: xdg-desktop-portal: Update to 1.18.4.
(address . 73520@debbugs.gnu.org)(name . Rodion Goritskov)(address . rodion.goritskov@gmail.com)
4d6858377ab01fff649eb70b92e01cafe4b42ab0.1727461684.git.rodion.goritskov@gmail.com
* gnu/packages/freedesktop.scm (xdg-desktop-portal): Update to 1.18.4.
* gnu/packages/telegram.scm (telegram-desktop): Change native-input to xdg-desktop-portal.

Change-Id: I25ac64ce62f994e1e2cffbdbd8e8a7779a6b9658
---
gnu/packages/freedesktop.scm | 78 ++++++++++++------------------------
gnu/packages/telegram.scm | 2 +-
2 files changed, 26 insertions(+), 54 deletions(-)

Toggle diff (122 lines)
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index 73bd5c8a3d..f86c611c57 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -3012,7 +3012,7 @@ (define-public libportal
(define-public xdg-desktop-portal
(package
(name "xdg-desktop-portal")
- (version "1.16.0")
+ (version "1.18.4")
(source
(origin
(method url-fetch)
@@ -3021,30 +3021,34 @@ (define-public xdg-desktop-portal
version "/xdg-desktop-portal-" version ".tar.xz"))
(sha256
(base32
- "06cczlh39kc41rvav06v37sad827y61rffy3v29i918ibj8sahav"))))
- (build-system gnu-build-system)
+ "0r8y8qmzcfj7b7brqcxr9lg8pavfds815ffvj0kqc378fhgaln5q"))
+ (patches (search-patches
+ "xdg-desktop-portal-disable-portal-tests.patch"
+ "xdg-desktop-portal-disable-configuration-search-exit.patch"))))
+ (build-system meson-build-system)
(native-inputs
- `(("pkg-config" ,pkg-config)
- ("autoconf" ,autoconf)
- ("automake" ,automake)
- ("libtool" ,libtool)
- ("glib:bin" ,glib "bin")
- ("which" ,which)
- ("gettext" ,gettext-minimal)))
+ (list pkg-config
+ `(,glib "bin")
+ gettext-minimal
+ python
+ python-dbusmock
+ python-pytest
+ python-pytest-xdist))
(inputs
- `(("gdk-pixbuf" ,gdk-pixbuf)
- ("glib" ,glib)
- ("flatpak" ,flatpak)
- ("fontconfig" ,fontconfig)
- ("json-glib" ,json-glib)
- ("libportal" ,libportal)
- ("dbus" ,dbus)
- ("geoclue" ,geoclue)
- ("pipewire" ,pipewire)
- ("fuse" ,fuse)))
+ (list bubblewrap
+ gdk-pixbuf
+ glib
+ flatpak
+ fontconfig
+ json-glib
+ libportal
+ dbus
+ geoclue
+ pipewire
+ fuse))
(arguments
`(#:configure-flags
- (list "--with-systemd=no")
+ (list "-Dsystemd=disabled")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'po-chmod
@@ -3073,38 +3077,6 @@ (define-public xdg-desktop-portal
and others.")
(license license:lgpl2.1+)))
-(define-public xdg-desktop-portal-next
- (package
- (inherit xdg-desktop-portal)
- (version "1.18.4")
- (source
- (origin
- (method url-fetch)
- (uri (string-append
- "https://github.com/flatpak/xdg-desktop-portal/releases/download/"
- version "/xdg-desktop-portal-" version ".tar.xz"))
- (sha256
- (base32
- "0r8y8qmzcfj7b7brqcxr9lg8pavfds815ffvj0kqc378fhgaln5q"))
- (patches (search-patches
- "xdg-desktop-portal-disable-portal-tests.patch"
- "xdg-desktop-portal-disable-configuration-search-exit.patch"))))
- (build-system meson-build-system)
- (arguments
- (substitute-keyword-arguments (package-arguments xdg-desktop-portal)
- ((#:configure-flags _ ''())
- #~(list "-Dsystemd=disabled"))))
- (native-inputs
- (list pkg-config
- `(,glib "bin")
- gettext-minimal
- python
- python-dbusmock
- python-pytest
- python-pytest-xdist))
- (inputs (modify-inputs (package-inputs xdg-desktop-portal)
- (prepend bubblewrap)))))
-
(define-public xdg-desktop-portal-gtk
(package
(name "xdg-desktop-portal-gtk")
diff --git a/gnu/packages/telegram.scm b/gnu/packages/telegram.scm
index cfcd92fcbc..c0b2122bf5 100644
--- a/gnu/packages/telegram.scm
+++ b/gnu/packages/telegram.scm
@@ -537,7 +537,7 @@ (define-public telegram-desktop
`(,gtk+ "bin")
pkg-config
python-wrapper
- xdg-desktop-portal-next))
+ xdg-desktop-portal))
(inputs
(list abseil-cpp-cxxstd17
alsa-lib
--
2.46.0
?
Your comment

Commenting via the web interface is currently disabled.

To comment on this conversation send an email to 73520@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 73520
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch