unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#73520] [PATCH 0/2] Potential fix for the latest xdg-desktop-portal
@ 2024-09-27 19:17 Rodion Goritskov
  2024-09-28  7:41 ` [bug#73520] [PATCH 1/2] gnu: xdg-desktop-portal-next: Fix configuration file search Rodion Goritskov
  2024-09-28  7:41 ` [bug#73520] [PATCH 2/2] gnu: xdg-desktop-portal: Update to 1.18.4 Rodion Goritskov
  0 siblings, 2 replies; 3+ messages in thread
From: Rodion Goritskov @ 2024-09-27 19:17 UTC (permalink / raw)
  To: 73520; +Cc: Rodion Goritskov

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.

[1]: https://github.com/flatpak/xdg-desktop-portal/commit/939f0b0fcec6a42c1acdc397986547e9805359ff
[2]: https://github.com/flatpak/xdg-desktop-portal/blob/1b5a16932493324fa0f21cfb1c3f9c1d16cb6a19/src/portal-impl.c#L441
[3]: https://github.com/flatpak/xdg-desktop-portal/blob/main/doc/portals.conf.rst.in

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





^ permalink raw reply	[flat|nested] 3+ messages in thread

* [bug#73520] [PATCH 1/2] gnu: xdg-desktop-portal-next: Fix configuration file search.
  2024-09-27 19:17 [bug#73520] [PATCH 0/2] Potential fix for the latest xdg-desktop-portal Rodion Goritskov
@ 2024-09-28  7:41 ` Rodion Goritskov
  2024-09-28  7:41 ` [bug#73520] [PATCH 2/2] gnu: xdg-desktop-portal: Update to 1.18.4 Rodion Goritskov
  1 sibling, 0 replies; 3+ messages in thread
From: Rodion Goritskov @ 2024-09-28  7:41 UTC (permalink / raw)
  To: 73520; +Cc: Rodion Goritskov, Rodion Goritskov

* 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

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





^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [bug#73520] [PATCH 2/2] gnu: xdg-desktop-portal: Update to 1.18.4.
  2024-09-27 19:17 [bug#73520] [PATCH 0/2] Potential fix for the latest xdg-desktop-portal Rodion Goritskov
  2024-09-28  7:41 ` [bug#73520] [PATCH 1/2] gnu: xdg-desktop-portal-next: Fix configuration file search Rodion Goritskov
@ 2024-09-28  7:41 ` Rodion Goritskov
  1 sibling, 0 replies; 3+ messages in thread
From: Rodion Goritskov @ 2024-09-28  7:41 UTC (permalink / raw)
  To: 73520; +Cc: Rodion Goritskov, Rodion Goritskov

* 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(-)

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





^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2024-09-28  7:44 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-27 19:17 [bug#73520] [PATCH 0/2] Potential fix for the latest xdg-desktop-portal Rodion Goritskov
2024-09-28  7:41 ` [bug#73520] [PATCH 1/2] gnu: xdg-desktop-portal-next: Fix configuration file search Rodion Goritskov
2024-09-28  7:41 ` [bug#73520] [PATCH 2/2] gnu: xdg-desktop-portal: Update to 1.18.4 Rodion Goritskov

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).