[neon/backports-focal/xdg-desktop-portal/Neon/unstable] debian/patches: Update patches

Simon McVittie null at kde.org
Wed Jan 13 06:32:43 GMT 2021


Git commit b0946c0679dce19660e9288bb980a1b4953a05c6 by Simon McVittie.
Committed on 07/09/2020 at 18:37.
Pushed by ash into branch 'Neon/unstable'.

Update patches

This includes upstream 1.7.2-37-g089e72b plus merge request
<https://github.com/flatpak/xdg-desktop-portal/pull/521>.

A  +115  -0    debian/patches/FileChooser-Add-a-current_filter-return-value.patch
A  +24   -0    debian/patches/Fix-typos-in-FileChooser-doc.patch
M  +3    -2    debian/patches/Install-session.conf.in-to-expected-path-for-installed-te.patch
A  +30   -0    debian/patches/Revert-Add-the-directory-option-to-the-file-chooser-impl-.patch
A  +62   -0    debian/patches/Screencast-document-source_type-property-in-the-response.patch
A  +35   -0    debian/patches/camera-make-client-node-as-visible.patch
A  +66   -0    debian/patches/doc-Include-secret-portal-documentation.patch
A  +41   -0    debian/patches/open-uri-Allow-skipping-chooser-for-more-URL-types.patch
A  +71   -0    debian/patches/open-uri-Always-open-URIs-in-default-app.patch
A  +25   -0    debian/patches/open-uri-Assert-that-find_recommended_choices-yields-non-.patch
A  +53   -0    debian/patches/open-uri-Don-t-crash-if-there-is-no-default-or-latest-app.patch
A  +46   -0    debian/patches/open-uri-Print-debug-information-when-OpenFile-URI-fails.patch
A  +28   -0    debian/patches/open-uri-Reject-more-mismatched-open-requests.patch
A  +73   -0    debian/patches/open-uri-Return-errors-from-launch_application_with_uri.patch
A  +71   -0    debian/patches/open-uri-Show-app-chooser-when-default-app-does-not-exist.patch
A  +34   -0    debian/patches/open-uri-Use-correct-app-ID-to-determine-whether-it-exist.patch
A  +32   -0    debian/patches/open-uri-avoid-criticals-when-app-to-open-does-not-exist.patch
A  +24   -0    debian/patches/pipewire-clean-up-the-registry-proxy.patch
A  +24   -0    debian/patches/screen-cast-fix-array-element-size-for-permissions.patch
M  +31   -5    debian/patches/series
A  +87   -0    debian/patches/test-document-fuse-Quote-more-defensively.patch
D  +0    -42   debian/patches/tests-Always-produce-verbose-output-from-subprocesses.patch
M  +8    -7    debian/patches/tests-Divert-service-stdout-to-stderr.patch
A  +63   -0    debian/patches/tests-Don-t-rely-on-PATH-to-launch-uninstalled.patch
A  +65   -0    debian/patches/tests-Ensure-XDG_DATA_DIRS-is-well-formed.patch
A  +60   -0    debian/patches/tests-Increase-timeouts-when-running-in-CI.patch
A  +32   -0    debian/patches/tests-Make-app-chooser-backend-more-debuggable.patch
A  +95   -0    debian/patches/tests-Make-sure-http2-test-always-runs.patch
M  +1    -0    debian/patches/tests-Only-run-xdg-document-portal-in-foreground-when-uni.patch
A  +34   -0    debian/patches/tests-Print-the-full-paths-of-what-we-re-trying-to-run.patch
A  +27   -0    debian/patches/tests-Send-SIGTERM-to-dbus-daemon.patch
M  +2    -0    debian/patches/tests-call-test-document-fuse.py-directly.patch
M  +2    -0    debian/patches/tests-use-kill-from-PATH.patch
A  +34   -0    debian/patches/xdp-Send-messages-to-stderr-not-stdout.patch

https://invent.kde.org/neon/backports-focal/xdg-desktop-portal/commit/b0946c0679dce19660e9288bb980a1b4953a05c6

diff --git a/debian/patches/FileChooser-Add-a-current_filter-return-value.patch b/debian/patches/FileChooser-Add-a-current_filter-return-value.patch
new file mode 100644
index 0000000..46f38c1
--- /dev/null
+++ b/debian/patches/FileChooser-Add-a-current_filter-return-value.patch
@@ -0,0 +1,115 @@
+From: Michael Weghorn <m.weghorn at posteo.de>
+Date: Sat, 23 May 2020 14:23:38 +0200
+Subject: FileChooser: Add a 'current_filter' return value
+
+Add a 'current_filter' element for the FileChooser
+response which is used to specify which filter
+was selected in the file chooser.
+
+This will allow making Gtk's
+'gtk_file_chooser_get_filter' work for the
+portal native file chooser.
+
+Bug: https://gitlab.gnome.org/GNOME/gtk/-/issues/1820
+Origin: upstream, 1.7.3, commit:35fca7fae881bdaba1bebccf7775eba84407a488
+---
+ data/org.freedesktop.impl.portal.FileChooser.xml | 18 ++++++++++++++++++
+ data/org.freedesktop.portal.FileChooser.xml      | 18 ++++++++++++++++++
+ src/file-chooser.c                               |  5 +++++
+ 3 files changed, 41 insertions(+)
+
+diff --git a/data/org.freedesktop.impl.portal.FileChooser.xml b/data/org.freedesktop.impl.portal.FileChooser.xml
+index 873b2dd..8c684b0 100644
+--- a/data/org.freedesktop.impl.portal.FileChooser.xml
++++ b/data/org.freedesktop.impl.portal.FileChooser.xml
+@@ -109,6 +109,15 @@
+               See org.freedesktop.portal.FileChooser.OpenFile() for details.
+             </para></listitem>
+           </varlistentry>
++          <varlistentry>
++            <term>current_filter (sa(us))</term>
++            <listitem>
++              <para>
++                The filter that was selected.
++                See org.freedesktop.portal.FileChooser.OpenFile() for details.
++              </para>
++            </listitem>
++          </varlistentry>
+           <varlistentry>
+             <term>writable b</term>
+             <listitem><para>
+@@ -216,6 +225,15 @@
+               See org.freedesktop.portal.FileChooser.OpenFile() for details.
+             </para></listitem>
+           </varlistentry>
++          <varlistentry>
++            <term>current_filter (sa(us))</term>
++            <listitem>
++              <para>
++                The filter that was selected.
++                See org.freedesktop.portal.FileChooser.OpenFile() for details.
++              </para>
++            </listitem>
++          </varlistentry>
+         </variablelist>
+     -->
+     <method name="SaveFile">
+diff --git a/data/org.freedesktop.portal.FileChooser.xml b/data/org.freedesktop.portal.FileChooser.xml
+index f0c7408..8582abc 100644
+--- a/data/org.freedesktop.portal.FileChooser.xml
++++ b/data/org.freedesktop.portal.FileChooser.xml
+@@ -151,6 +151,15 @@
+             </para>
+           </listitem>
+         </varlistentry>
++        <varlistentry>
++          <term>current_filter (sa(us))</term>
++          <listitem>
++            <para>
++              The filter that was selected. This may match a filter in the
++              filter list or another filter that was applied unconditionally.
++            </para>
++          </listitem>
++        </varlistentry>
+       </variablelist>
+     -->
+     <method name="OpenFile">
+@@ -248,6 +257,15 @@
+             See org.freedesktop.portal.FileChooser.OpenFile() for details.
+           </para></listitem>
+         </varlistentry>
++        <varlistentry>
++          <term>current_filter (sa(us))</term>
++          <listitem>
++            <para>
++              The filter that was selected.
++              See org.freedesktop.portal.FileChooser.OpenFile() for details.
++            </para>
++          </listitem>
++        </varlistentry>
+       </variablelist>
+     -->
+     <method name="SaveFile">
+diff --git a/src/file-chooser.c b/src/file-chooser.c
+index 2e83821..166ae9a 100644
+--- a/src/file-chooser.c
++++ b/src/file-chooser.c
+@@ -79,6 +79,7 @@ send_response_in_thread_func (GTask        *task,
+   const char **uris;
+   GVariant *choices;
+   gboolean for_save;
++  GVariant *current_filter;
+ 
+   g_variant_builder_init (&results, G_VARIANT_TYPE_VARDICT);
+   g_variant_builder_init (&ruris, G_VARIANT_TYPE_STRING_ARRAY);
+@@ -100,6 +101,10 @@ send_response_in_thread_func (GTask        *task,
+   if (choices)
+     g_variant_builder_add (&results, "{sv}", "choices", choices);
+ 
++  current_filter = g_variant_lookup_value (options, "current_filter", G_VARIANT_TYPE ("(sa(us))"));
++  if (current_filter)
++    g_variant_builder_add (&results, "{sv}", "current_filter", current_filter);
++
+   if (g_variant_lookup (options, "uris", "^a&s", &uris))
+     {
+       int i;
diff --git a/debian/patches/Fix-typos-in-FileChooser-doc.patch b/debian/patches/Fix-typos-in-FileChooser-doc.patch
new file mode 100644
index 0000000..04bb3f6
--- /dev/null
+++ b/debian/patches/Fix-typos-in-FileChooser-doc.patch
@@ -0,0 +1,24 @@
+From: Michael Weghorn <m.weghorn at posteo.de>
+Date: Thu, 4 Jun 2020 21:04:10 +0200
+Subject: Fix typos in FileChooser doc
+
+Origin: upstream, 1.7.3, commit:b907d57fd6e45bebb4aca71f50b7017dbea7fc5a
+---
+ data/org.freedesktop.portal.FileChooser.xml | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/data/org.freedesktop.portal.FileChooser.xml b/data/org.freedesktop.portal.FileChooser.xml
+index 8582abc..3120103 100644
+--- a/data/org.freedesktop.portal.FileChooser.xml
++++ b/data/org.freedesktop.portal.FileChooser.xml
+@@ -112,8 +112,8 @@
+             </para>
+             <para>
+               For each element, the first string is an ID that will be returned
+-              with the response, te second string is a user-visible label. The
+-              a(ss) is the list of choices, each being a is an ID and a
++              with the response, the second string is a user-visible label. The
++              a(ss) is the list of choices, each being an ID and a
+               user-visible label. The final string is the initial selection,
+               or "", to let the portal decide which choice will be initially selected.
+               None of the strings, except for the initial selection, should be empty.
diff --git a/debian/patches/Install-session.conf.in-to-expected-path-for-installed-te.patch b/debian/patches/Install-session.conf.in-to-expected-path-for-installed-te.patch
index c91c14d..740b55b 100644
--- a/debian/patches/Install-session.conf.in-to-expected-path-for-installed-te.patch
+++ b/debian/patches/Install-session.conf.in-to-expected-path-for-installed-te.patch
@@ -3,15 +3,16 @@ Date: Wed, 5 Aug 2020 11:00:01 +0100
 Subject: Install session.conf.in to expected path for installed-tests
 
 Signed-off-by: Simon McVittie <smcv at debian.org>
+Forwarded: https://github.com/flatpak/xdg-desktop-portal/pull/521
 ---
  tests/Makefile.am.inc | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/tests/Makefile.am.inc b/tests/Makefile.am.inc
-index 981c8d5..e873bae 100644
+index e4ea3de..9aed3f1 100644
 --- a/tests/Makefile.am.inc
 +++ b/tests/Makefile.am.inc
-@@ -108,7 +108,7 @@ dist_installed_test_dbs_DATA = tests/dbs/no_tables
+@@ -109,7 +109,7 @@ dist_installed_test_dbs_DATA = tests/dbs/no_tables
  dist_installed_test_portals_DATA = tests/portals/test.portal
  endif
  
diff --git a/debian/patches/Revert-Add-the-directory-option-to-the-file-chooser-impl-.patch b/debian/patches/Revert-Add-the-directory-option-to-the-file-chooser-impl-.patch
new file mode 100644
index 0000000..ac60f79
--- /dev/null
+++ b/debian/patches/Revert-Add-the-directory-option-to-the-file-chooser-impl-.patch
@@ -0,0 +1,30 @@
+From: Will Thompson <wjt at endlessm.com>
+Date: Fri, 10 Jul 2020 16:05:41 +0100
+Subject: Revert "Add the directory option to the file chooser impl interface"
+
+This reverts commit ee041ae8c8c8b0534bdd300953f131f1c93434cd.
+Documentation for this parameter was already added in c616b491 so this
+just duplicates it.
+
+Origin: upstream, 1.7.3, commit:b6baf10ab84e3c1227abc714a66fe327b111a9c2
+---
+ data/org.freedesktop.impl.portal.FileChooser.xml | 6 ------
+ 1 file changed, 6 deletions(-)
+
+diff --git a/data/org.freedesktop.impl.portal.FileChooser.xml b/data/org.freedesktop.impl.portal.FileChooser.xml
+index 8c684b0..3a7174d 100644
+--- a/data/org.freedesktop.impl.portal.FileChooser.xml
++++ b/data/org.freedesktop.impl.portal.FileChooser.xml
+@@ -65,12 +65,6 @@
+               Whether to select for folders instead of files. Default is to select files.
+             </para></listitem>
+           </varlistentry>
+-          <varlistentry>
+-            <term>directory b</term>
+-            <listitem><para>
+-              Whether to select for folders instead of files. Default is to select files.
+-            </para></listitem>
+-          </varlistentry>
+           <varlistentry>
+             <term>filters a(sa(us))</term>
+             <listitem><para>
diff --git a/debian/patches/Screencast-document-source_type-property-in-the-response.patch b/debian/patches/Screencast-document-source_type-property-in-the-response.patch
new file mode 100644
index 0000000..998b411
--- /dev/null
+++ b/debian/patches/Screencast-document-source_type-property-in-the-response.patch
@@ -0,0 +1,62 @@
+From: Jan Grulich <jgrulich at redhat.com>
+Date: Thu, 21 May 2020 13:56:21 +0200
+Subject: Screencast: document source_type property in the response
+
+Origin: upstream, 1.7.3, commit:aae1152533b4843ff0f8c0a7d8c8c2ae39a2a758
+---
+ data/org.freedesktop.impl.portal.ScreenCast.xml | 8 ++++++++
+ data/org.freedesktop.portal.ScreenCast.xml      | 8 ++++++++
+ src/screen-cast.c                               | 2 +-
+ 3 files changed, 17 insertions(+), 1 deletion(-)
+
+diff --git a/data/org.freedesktop.impl.portal.ScreenCast.xml b/data/org.freedesktop.impl.portal.ScreenCast.xml
+index 72c981c..78f2b1c 100644
+--- a/data/org.freedesktop.impl.portal.ScreenCast.xml
++++ b/data/org.freedesktop.impl.portal.ScreenCast.xml
+@@ -146,6 +146,14 @@
+               stream.
+             </para></listitem>
+           </varlistentry>
++          <varlistentry>
++            <term>source_type u</term>
++            <listitem><para>
++              The type of the content which is being screen casted.
++              For available source types, see the AvailableSourceTypes property.
++              This property was added in version 3 of this interface.
++            </para></listitem>
++          </varlistentry>
+         </variablelist>
+     -->
+     <method name="Start">
+diff --git a/data/org.freedesktop.portal.ScreenCast.xml b/data/org.freedesktop.portal.ScreenCast.xml
+index 3735a66..a2a158c 100644
+--- a/data/org.freedesktop.portal.ScreenCast.xml
++++ b/data/org.freedesktop.portal.ScreenCast.xml
+@@ -192,6 +192,14 @@
+               stream.
+             </para></listitem>
+           </varlistentry>
++          <varlistentry>
++            <term>source_type u</term>
++            <listitem><para>
++              The type of the content which is being screen casted.
++              For available source types, see the AvailableSourceTypes property.
++              This property was added in version 3 of this interface.
++            </para></listitem>
++          </varlistentry>
+         </variablelist>
+     -->
+     <method name="Start">
+diff --git a/src/screen-cast.c b/src/screen-cast.c
+index 1677050..1f036b6 100644
+--- a/src/screen-cast.c
++++ b/src/screen-cast.c
+@@ -947,7 +947,7 @@ on_supported_cursor_modes_changed (GObject *gobject,
+ static void
+ screen_cast_init (ScreenCast *screen_cast)
+ {
+-  xdp_screen_cast_set_version (XDP_SCREEN_CAST (screen_cast), 2);
++  xdp_screen_cast_set_version (XDP_SCREEN_CAST (screen_cast), 3);
+ 
+   g_signal_connect (impl, "notify::supported-source-types",
+                     G_CALLBACK (on_supported_source_types_changed),
diff --git a/debian/patches/camera-make-client-node-as-visible.patch b/debian/patches/camera-make-client-node-as-visible.patch
new file mode 100644
index 0000000..8e3087d
--- /dev/null
+++ b/debian/patches/camera-make-client-node-as-visible.patch
@@ -0,0 +1,35 @@
+From: Wim Taymans <wtaymans at redhat.com>
+Date: Fri, 17 Jul 2020 12:31:04 +0200
+Subject: camera: make client-node as visible
+
+Or else clients won't be able to make a node to consume the camera
+data.
+
+Origin: upstream, 1.7.3, commit:14c11652d16d2be10f741a90561b6ccd20f90229
+---
+ src/camera.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/src/camera.c b/src/camera.c
+index 20fe3aa..efd38b4 100644
+--- a/src/camera.c
++++ b/src/camera.c
+@@ -141,7 +141,7 @@ open_pipewire_camera_remote (const char *app_id,
+                              GError **error)
+ {
+   PipeWireRemote *remote;
+-  struct pw_permission permission_items[2];
++  struct pw_permission permission_items[3];
+   struct pw_properties *pipewire_properties;
+ 
+   pipewire_properties =
+@@ -159,7 +159,8 @@ open_pipewire_camera_remote (const char *app_id,
+    * permission store to set up permissions.
+    */
+   permission_items[0] = PW_PERMISSION_INIT (PW_ID_CORE, PW_PERM_RWX);
+-  permission_items[1] = PW_PERMISSION_INIT (PW_ID_ANY, 0);
++  permission_items[1] = PW_PERMISSION_INIT (remote->node_factory_id, PW_PERM_R);
++  permission_items[2] = PW_PERMISSION_INIT (PW_ID_ANY, 0);
+ 
+   pw_client_update_permissions (pw_core_get_client(remote->core),
+                                 G_N_ELEMENTS (permission_items),
diff --git a/debian/patches/doc-Include-secret-portal-documentation.patch b/debian/patches/doc-Include-secret-portal-documentation.patch
new file mode 100644
index 0000000..ccac1f6
--- /dev/null
+++ b/debian/patches/doc-Include-secret-portal-documentation.patch
@@ -0,0 +1,66 @@
+From: Daiki Ueno <dueno at redhat.com>
+Date: Mon, 18 May 2020 18:28:21 +0200
+Subject: doc: Include secret portal documentation
+
+Origin: upstream, 1.7.3, commit:e8db1c3cf20306c5e4c94549359cf2e28de382dd
+---
+ doc/Makefile.am        | 4 ++++
+ doc/portal-docs.xml.in | 2 ++
+ 2 files changed, 6 insertions(+)
+
+diff --git a/doc/Makefile.am b/doc/Makefile.am
+index 0c63701..3b5b3ce 100644
+--- a/doc/Makefile.am
++++ b/doc/Makefile.am
+@@ -22,6 +22,7 @@ portal_files = 								\
+ 	$(top_srcdir)/data/org.freedesktop.portal.Device.xml	 	\
+ 	$(top_srcdir)/data/org.freedesktop.portal.Location.xml		\
+ 	$(top_srcdir)/data/org.freedesktop.portal.Settings.xml		\
++	$(top_srcdir)/data/org.freedesktop.portal.Secret.xml		\
+ 	$(top_srcdir)/data/org.freedesktop.portal.Background.xml		\
+ 	$(top_srcdir)/data/org.freedesktop.portal.GameMode.xml		\
+ 	$(top_srcdir)/data/org.freedesktop.portal.Camera.xml		\
+@@ -41,6 +42,7 @@ portal_files = 								\
+ 	$(top_srcdir)/data/org.freedesktop.impl.portal.Inhibit.xml	\
+ 	$(top_srcdir)/data/org.freedesktop.impl.portal.Access.xml	\
+ 	$(top_srcdir)/data/org.freedesktop.impl.portal.Settings.xml	\
++	$(top_srcdir)/data/org.freedesktop.impl.portal.Secret.xml	\
+ 	$(top_srcdir)/data/org.freedesktop.impl.portal.Lockdown.xml	\
+ 	$(top_srcdir)/data/org.freedesktop.portal.Documents.xml		\
+ 	$(top_srcdir)/data/org.freedesktop.impl.portal.PermissionStore.xml	\
+@@ -69,6 +71,7 @@ xml_files = 								\
+ 	portal-org.freedesktop.portal.Device.xml			\
+ 	portal-org.freedesktop.portal.Location.xml			\
+ 	portal-org.freedesktop.portal.Settings.xml			\
++	portal-org.freedesktop.portal.Secret.xml			\
+ 	portal-org.freedesktop.portal.Wallpaper.xml			\
+ 	portal-org.freedesktop.portal.Background.xml			\
+ 	portal-org.freedesktop.portal.GameMode.xml			\
+@@ -89,6 +92,7 @@ xml_files = 								\
+ 	portal-org.freedesktop.impl.portal.Inhibit.xml	 		\
+ 	portal-org.freedesktop.impl.portal.Access.xml	 		\
+ 	portal-org.freedesktop.impl.portal.Settings.xml	 		\
++	portal-org.freedesktop.impl.portal.Secret.xml	 		\
+ 	portal-org.freedesktop.impl.portal.Wallpaper.xml			\
+ 	portal-org.freedesktop.impl.portal.Lockdown.xml	 		\
+ 	portal-org.freedesktop.impl.portal.PermissionStore.xml		\
+diff --git a/doc/portal-docs.xml.in b/doc/portal-docs.xml.in
+index 5b6435f..1647bae 100644
+--- a/doc/portal-docs.xml.in
++++ b/doc/portal-docs.xml.in
+@@ -107,6 +107,7 @@
+     <xi:include href="portal-org.freedesktop.portal.NetworkMonitor.xml"/>
+     <xi:include href="portal-org.freedesktop.portal.ProxyResolver.xml"/>
+     <xi:include href="portal-org.freedesktop.portal.Settings.xml"/>
++    <xi:include href="portal-org.freedesktop.portal.Secret.xml"/>
+     <xi:include href="portal-org.freedesktop.portal.Background.xml"/>
+     <xi:include href="portal-org.freedesktop.portal.GameMode.xml"/>
+     <xi:include href="portal-org.freedesktop.portal.Camera.xml"/>
+@@ -151,6 +152,7 @@
+     <xi:include href="portal-org.freedesktop.impl.portal.Inhibit.xml"/>
+     <xi:include href="portal-org.freedesktop.impl.portal.Access.xml"/>
+     <xi:include href="portal-org.freedesktop.impl.portal.Settings.xml"/>
++    <xi:include href="portal-org.freedesktop.impl.portal.Secret.xml"/>
+     <xi:include href="portal-org.freedesktop.impl.portal.Lockdown.xml"/>
+     <xi:include href="portal-org.freedesktop.impl.portal.Background.xml"/>
+     <xi:include href="portal-org.freedesktop.impl.portal.PermissionStore.xml"/>
diff --git a/debian/patches/open-uri-Allow-skipping-chooser-for-more-URL-types.patch b/debian/patches/open-uri-Allow-skipping-chooser-for-more-URL-types.patch
new file mode 100644
index 0000000..837fc22
--- /dev/null
+++ b/debian/patches/open-uri-Allow-skipping-chooser-for-more-URL-types.patch
@@ -0,0 +1,41 @@
+From: Bastien Nocera <hadess at hadess.net>
+Date: Thu, 16 Apr 2020 16:31:32 +0200
+Subject: open-uri: Allow skipping chooser for more URL types
+
+Also allow skipping the chooser to send mails, open FTP sites, or
+calendar items.
+
+Origin: upstream, 1.7.3, commit:73928756aeaf1d10fed3486adbce92ba83ff9a6b
+---
+ src/open-uri.c | 18 ++++++++++++++----
+ 1 file changed, 14 insertions(+), 4 deletions(-)
+
+diff --git a/src/open-uri.c b/src/open-uri.c
+index cbdf351..55cad2b 100644
+--- a/src/open-uri.c
++++ b/src/open-uri.c
+@@ -448,10 +448,20 @@ static gboolean
+ can_skip_app_chooser (const char *scheme,
+                       const char *content_type)
+ {
+-  /* We skip the app chooser for Internet URIs, to be open in the browser */
+-  /*  Skipping the chooser for directories is useful too (e.g. opening in Nautilus) */
+-  if (g_strcmp0 (scheme, "http") == 0 ||
+-      g_strcmp0 (scheme, "https") == 0 ||
++  const char *skipped_schemes[] = {
++    "http",
++    "https",
++    "ftp",
++    "mailto",
++    "webcal",
++    "calendar",
++    NULL
++  };
++
++  /* We skip the app chooser for Internet URIs, to be open in the browser,
++   * mail client, or calendar, as well as for directories to be opened in
++   * the file manager */
++  if (g_strv_contains (skipped_schemes, scheme) ||
+       g_strcmp0 (content_type, "inode/directory") == 0)
+     {
+       g_debug ("Can skip app chooser for %s", content_type);
diff --git a/debian/patches/open-uri-Always-open-URIs-in-default-app.patch b/debian/patches/open-uri-Always-open-URIs-in-default-app.patch
new file mode 100644
index 0000000..3058bd1
--- /dev/null
+++ b/debian/patches/open-uri-Always-open-URIs-in-default-app.patch
@@ -0,0 +1,71 @@
+From: Bastien Nocera <hadess at hadess.net>
+Date: Thu, 16 Apr 2020 16:38:47 +0200
+Subject: open-uri: Always open URIs in default app
+
+Always open URIs and directories in the default application, as both
+GNOME and KDE have Settings allowing those to be changed easily.
+
+Origin: upstream, 1.7.3, commit:1dbdd31a8f4d4bb5808e85e46bf8fe8443290159
+---
+ src/open-uri.c | 19 ++++++++++---------
+ 1 file changed, 10 insertions(+), 9 deletions(-)
+
+diff --git a/src/open-uri.c b/src/open-uri.c
+index 55cad2b..ee8f629 100644
+--- a/src/open-uri.c
++++ b/src/open-uri.c
+@@ -445,8 +445,8 @@ get_content_type_for_file (const char  *path,
+ }
+ 
+ static gboolean
+-can_skip_app_chooser (const char *scheme,
+-                      const char *content_type)
++should_use_default_app (const char *scheme,
++                        const char *content_type)
+ {
+   const char *skipped_schemes[] = {
+     "http",
+@@ -570,7 +570,7 @@ handle_open_in_thread_func (GTask *task,
+   gboolean writable = FALSE;
+   gboolean ask = FALSE;
+   gboolean open_dir = FALSE;
+-  gboolean can_skip = FALSE;
++  gboolean use_default_app = FALSE;
+   const char *reason;
+ 
+   parent_window = (const char *)g_object_get_data (G_OBJECT (request), "parent-window");
+@@ -651,7 +651,7 @@ handle_open_in_thread_func (GTask *task,
+ 
+   /* collect all the information */
+   find_recommended_choices (scheme, content_type, &default_app, &choices, &n_choices);
+-  can_skip = can_skip_app_chooser (scheme, content_type);
++  use_default_app = should_use_default_app (scheme, content_type);
+   get_latest_choice_info (app_id, content_type,
+                           &latest_id, &latest_count, &latest_threshold,
+                           &ask_for_content_type);
+@@ -659,11 +659,10 @@ handle_open_in_thread_func (GTask *task,
+   skip_app_chooser = FALSE;
+   reason = NULL;
+ 
+-  /* apply default handling: skip if the we have a default handler and its http or inode/directory */
+-  if (default_app != NULL && can_skip)
++  /* apply default handling: skip if the we have a default handler */
++  if (default_app != NULL && use_default_app)
+     {
+-      if (!skip_app_chooser)
+-        reason = "Allowing to skip app chooser: can use default";
++      reason = "Allowing to skip app chooser: can use default";
+       skip_app_chooser = TRUE;
+     }
+ 
+@@ -704,7 +703,9 @@ handle_open_in_thread_func (GTask *task,
+     {
+       const char *app;
+ 
+-      if (latest_id != NULL)
++      if (default_app != NULL && use_default_app)
++        app = default_app;
++      else if (latest_id != NULL)
+         app = latest_id;
+       else if (default_app != NULL)
+         app = default_app;
diff --git a/debian/patches/open-uri-Assert-that-find_recommended_choices-yields-non-.patch b/debian/patches/open-uri-Assert-that-find_recommended_choices-yields-non-.patch
new file mode 100644
index 0000000..3d6aa19
--- /dev/null
+++ b/debian/patches/open-uri-Assert-that-find_recommended_choices-yields-non-.patch
@@ -0,0 +1,25 @@
+From: Simon McVittie <smcv at collabora.com>
+Date: Mon, 7 Sep 2020 14:16:59 +0100
+Subject: open-uri: Assert that find_recommended_choices yields non-NULL
+
+choices is never NULL, but might be an array containing only NULL.
+
+Signed-off-by: Simon McVittie <smcv at collabora.com>
+Applied-upstream: 1.7.3
+---
+ src/open-uri.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/open-uri.c b/src/open-uri.c
+index f746e64..c5b8705 100644
+--- a/src/open-uri.c
++++ b/src/open-uri.c
+@@ -669,6 +669,8 @@ handle_open_in_thread_func (GTask *task,
+ 
+   /* collect all the information */
+   find_recommended_choices (scheme, content_type, &default_app, &choices, &n_choices);
++  /* it's never NULL, but might be empty (only contain the NULL terminator) */
++  g_assert (choices != NULL);
+   if (default_app != NULL && !app_exists (default_app))
+     g_clear_pointer (&default_app, g_free);
+   use_default_app = should_use_default_app (scheme, content_type);
diff --git a/debian/patches/open-uri-Don-t-crash-if-there-is-no-default-or-latest-app.patch b/debian/patches/open-uri-Don-t-crash-if-there-is-no-default-or-latest-app.patch
new file mode 100644
index 0000000..90dd9dc
--- /dev/null
+++ b/debian/patches/open-uri-Don-t-crash-if-there-is-no-default-or-latest-app.patch
@@ -0,0 +1,53 @@
+From: Simon McVittie <smcv at collabora.com>
+Date: Sun, 6 Sep 2020 15:32:14 +0100
+Subject: open-uri: Don't crash if there is no default or latest app
+
+g_desktop_app_info_new() requires a non-NULL argument.
+
+Partially addresses #524.
+
+Fixes: 69205f12 "open-uri: Show app chooser when default app does not exist"
+Signed-off-by: Simon McVittie <smcv at collabora.com>
+Applied-upstream: 1.7.3
+---
+ src/open-uri.c | 8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+diff --git a/src/open-uri.c b/src/open-uri.c
+index bb63478..f746e64 100644
+--- a/src/open-uri.c
++++ b/src/open-uri.c
+@@ -555,6 +555,8 @@ app_exists (const char *app_id)
+ {
+   g_autoptr(GDesktopAppInfo) info = NULL;
+ 
++  g_return_val_if_fail (app_id != NULL, FALSE);
++
+   info = g_desktop_app_info_new (app_id);
+   return (info != NULL);
+ }
+@@ -667,13 +669,13 @@ handle_open_in_thread_func (GTask *task,
+ 
+   /* collect all the information */
+   find_recommended_choices (scheme, content_type, &default_app, &choices, &n_choices);
+-  if (!app_exists (default_app))
++  if (default_app != NULL && !app_exists (default_app))
+     g_clear_pointer (&default_app, g_free);
+   use_default_app = should_use_default_app (scheme, content_type);
+   get_latest_choice_info (app_id, content_type,
+                           &latest_id, &latest_count, &latest_threshold,
+                           &ask_for_content_type);
+-  if (!app_exists (latest_id))
++  if (latest_id != NULL && !app_exists (latest_id))
+     g_clear_pointer (&latest_id, g_free);
+ 
+   skip_app_chooser = FALSE;
+@@ -729,7 +731,7 @@ handle_open_in_thread_func (GTask *task,
+         app = latest_id;
+       else if (default_app != NULL)
+         app = default_app;
+-      else if (choices && app_exists (choices[0]))
++      else if (n_choices > 0 && app_exists (choices[0]))
+         app = choices[0];
+ 
+       if (app)
diff --git a/debian/patches/open-uri-Print-debug-information-when-OpenFile-URI-fails.patch b/debian/patches/open-uri-Print-debug-information-when-OpenFile-URI-fails.patch
new file mode 100644
index 0000000..85a3f60
--- /dev/null
+++ b/debian/patches/open-uri-Print-debug-information-when-OpenFile-URI-fails.patch
@@ -0,0 +1,46 @@
+From: Bastien Nocera <hadess at hadess.net>
+Date: Fri, 17 Apr 2020 17:48:05 +0200
+Subject: open-uri: Print debug information when OpenFile/URI fails
+
+Origin: upstream, 1.7.3, commit:b4ac5b8045f070891dcca3d11a8e5c97c5ca9f0c
+---
+ src/open-uri.c | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/src/open-uri.c b/src/open-uri.c
+index 21d3954..cbdf351 100644
+--- a/src/open-uri.c
++++ b/src/open-uri.c
+@@ -580,6 +580,7 @@ handle_open_in_thread_func (GTask *task,
+           /* Reject the request */
+           if (request->exported)
+             {
++              g_debug ("Rejecting open request as content-type couldn't be fetched for '%s'", uri);
+               g_variant_builder_init (&opts_builder, G_VARIANT_TYPE_VARDICT);
+               xdp_request_emit_response (XDP_REQUEST (request),
+                                          XDG_DESKTOP_PORTAL_RESPONSE_OTHER,
+@@ -602,6 +603,15 @@ handle_open_in_thread_func (GTask *task,
+           /* Reject the request */
+           if (request->exported)
+             {
++              if (path == NULL)
++                {
++                  g_debug ("Rejecting open request as fd has no path associated to it");
++                }
++              else
++                {
++                  g_debug ("Rejecting open request for %s as opening %swritable but fd is %swritable",
++                           path, writable ? "" : "not ", fd_is_writable ? "" : "not ");
++                }
+               g_variant_builder_init (&opts_builder, G_VARIANT_TYPE_VARDICT);
+               xdp_request_emit_response (XDP_REQUEST (request),
+                                          XDG_DESKTOP_PORTAL_RESPONSE_OTHER,
+@@ -701,6 +711,8 @@ handle_open_in_thread_func (GTask *task,
+           gboolean result = launch_application_with_uri (app, uri, parent_window, writable, &error);
+           if (request->exported)
+             {
++              if (!result)
++                g_debug ("Open request for '%s' failed: %s", uri, error->message);
+               g_variant_builder_init (&opts_builder, G_VARIANT_TYPE_VARDICT);
+               xdp_request_emit_response (XDP_REQUEST (request),
+                                          result ? XDG_DESKTOP_PORTAL_RESPONSE_SUCCESS : XDG_DESKTOP_PORTAL_RESPONSE_OTHER,
diff --git a/debian/patches/open-uri-Reject-more-mismatched-open-requests.patch b/debian/patches/open-uri-Reject-more-mismatched-open-requests.patch
new file mode 100644
index 0000000..04a4da7
--- /dev/null
+++ b/debian/patches/open-uri-Reject-more-mismatched-open-requests.patch
@@ -0,0 +1,28 @@
+From: Bastien Nocera <hadess at hadess.net>
+Date: Fri, 17 Apr 2020 17:47:07 +0200
+Subject: open-uri: Reject more mismatched open requests
+
+Also reject non-writable requests that come with writable file
+descriptors.
+
+See https://github.com/flatpak/libportal/pull/26
+
+Origin: upstream, 1.7.3, commit:7f11163236c02ef7ad0f3b48c705ad893c2b9f9b
+---
+ src/open-uri.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/open-uri.c b/src/open-uri.c
+index a8326ed..21d3954 100644
+--- a/src/open-uri.c
++++ b/src/open-uri.c
+@@ -596,7 +596,8 @@ handle_open_in_thread_func (GTask *task,
+ 
+       path = xdp_app_info_get_path_for_fd (request->app_info, fd, 0, NULL, &fd_is_writable);
+       if (path == NULL ||
+-          (writable && !fd_is_writable))
++          (writable && !fd_is_writable) ||
++          (!xdp_app_info_is_host (request->app_info) && !writable && fd_is_writable))
+         {
+           /* Reject the request */
+           if (request->exported)
diff --git a/debian/patches/open-uri-Return-errors-from-launch_application_with_uri.patch b/debian/patches/open-uri-Return-errors-from-launch_application_with_uri.patch
new file mode 100644
index 0000000..06ee640
--- /dev/null
+++ b/debian/patches/open-uri-Return-errors-from-launch_application_with_uri.patch
@@ -0,0 +1,73 @@
+From: Bastien Nocera <hadess at hadess.net>
+Date: Fri, 17 Apr 2020 17:44:42 +0200
+Subject: open-uri: Return errors from launch_application_with_uri()
+
+Origin: upstream, 1.7.3, commit:56d94fe99fc73ea681becb0b959e31e2be5f9db8
+---
+ src/open-uri.c | 17 ++++++++++-------
+ 1 file changed, 10 insertions(+), 7 deletions(-)
+
+diff --git a/src/open-uri.c b/src/open-uri.c
+index 57214db..a8326ed 100644
+--- a/src/open-uri.c
++++ b/src/open-uri.c
+@@ -226,7 +226,8 @@ static gboolean
+ launch_application_with_uri (const char *choice_id,
+                              const char *uri,
+                              const char *parent_window,
+-                             gboolean writable)
++                             gboolean    writable,
++                             GError    **error)
+ {
+   g_autofree char *desktop_id = g_strconcat (choice_id, ".desktop", NULL);
+   g_autoptr(GDesktopAppInfo) info = g_desktop_app_info_new (desktop_id);
+@@ -238,14 +239,15 @@ launch_application_with_uri (const char *choice_id,
+ 
+   if (is_sandboxed (info) && is_file_uri (uri))
+     {
+-      g_autoptr(GError) error = NULL;
++      g_autoptr(GError) local_error = NULL;
+ 
+       g_debug ("Registering %s for %s", uri, choice_id);
+ 
+-      ruri = register_document (uri, choice_id, FALSE, writable, FALSE, &error);
++      ruri = register_document (uri, choice_id, FALSE, writable, FALSE, &local_error);
+       if (ruri == NULL)
+         {
+-          g_warning ("Error registering %s for %s: %s", uri, choice_id, error->message);
++          g_warning ("Error registering %s for %s: %s", uri, choice_id, local_error->message);
++          g_propagate_error (error, local_error);
+           return FALSE;
+         }
+     }
+@@ -257,7 +259,7 @@ launch_application_with_uri (const char *choice_id,
+   uris.data = (gpointer)ruri;
+   uris.next = NULL;
+ 
+-  g_app_info_launch_uris (G_APP_INFO (info), &uris, context, NULL);
++  g_app_info_launch_uris (G_APP_INFO (info), &uris, context, error);
+ 
+   return TRUE;
+ }
+@@ -354,7 +356,7 @@ send_response_in_thread_func (GTask *task,
+       writable = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (request), "writable"));
+       content_type = (const char *)g_object_get_data (G_OBJECT (request), "content-type");
+ 
+-      if (launch_application_with_uri (choice, uri, parent_window, writable))
++      if (launch_application_with_uri (choice, uri, parent_window, writable, NULL))
+         update_permissions_store (xdp_app_info_get_id (request->app_info), content_type, choice);
+     }
+ 
+@@ -691,10 +693,11 @@ handle_open_in_thread_func (GTask *task,
+       if (app)
+         {
+           /* Launch the app directly */
++          g_autoptr(GError) error = NULL;
+ 
+           g_debug ("Skipping app chooser");
+ 
+-          gboolean result = launch_application_with_uri (app, uri, parent_window, writable);
++          gboolean result = launch_application_with_uri (app, uri, parent_window, writable, &error);
+           if (request->exported)
+             {
+               g_variant_builder_init (&opts_builder, G_VARIANT_TYPE_VARDICT);
diff --git a/debian/patches/open-uri-Show-app-chooser-when-default-app-does-not-exist.patch b/debian/patches/open-uri-Show-app-chooser-when-default-app-does-not-exist.patch
new file mode 100644
index 0000000..ac8293e
--- /dev/null
+++ b/debian/patches/open-uri-Show-app-chooser-when-default-app-does-not-exist.patch
@@ -0,0 +1,71 @@
+From: Bastien Nocera <hadess at hadess.net>
+Date: Thu, 7 May 2020 11:39:27 +0200
+Subject: open-uri: Show app chooser when default app does not exist
+
+Fix a possible crash when the application that would be selected to
+avoid the app chooser is not available (anymore).
+
+This would have happened when eog.desktop got renamed to
+org.gnome.eog.desktop but was launched enough times as eog.desktop to
+make it the default.
+
+Based on https://github.com/flatpak/xdg-desktop-portal/pull/481
+
+Origin: upstream, 1.7.3, commit:69205f12cc57542a7c38c1b631fa8a8d9529f5d6
+---
+ src/open-uri.c | 17 +++++++++++++++--
+ 1 file changed, 15 insertions(+), 2 deletions(-)
+
+diff --git a/src/open-uri.c b/src/open-uri.c
+index ee8f629..c081a6b 100644
+--- a/src/open-uri.c
++++ b/src/open-uri.c
+@@ -543,6 +543,15 @@ app_info_changed (GAppInfoMonitor *monitor,
+                                             NULL);
+ }
+ 
++static gboolean
++app_exists (const char *app_id)
++{
++  g_autoptr(GDesktopAppInfo) info = NULL;
++
++  info = g_desktop_app_info_new (app_id);
++  return (info != NULL);
++}
++
+ static void
+ handle_open_in_thread_func (GTask *task,
+                             gpointer source_object,
+@@ -651,10 +660,14 @@ handle_open_in_thread_func (GTask *task,
+ 
+   /* collect all the information */
+   find_recommended_choices (scheme, content_type, &default_app, &choices, &n_choices);
++  if (!app_exists (default_app))
++    g_clear_pointer (&default_app, g_free);
+   use_default_app = should_use_default_app (scheme, content_type);
+   get_latest_choice_info (app_id, content_type,
+                           &latest_id, &latest_count, &latest_threshold,
+                           &ask_for_content_type);
++  if (!app_exists (latest_id))
++    g_clear_pointer (&latest_id, g_free);
+ 
+   skip_app_chooser = FALSE;
+   reason = NULL;
+@@ -701,7 +714,7 @@ handle_open_in_thread_func (GTask *task,
+ 
+   if (skip_app_chooser)
+     {
+-      const char *app;
++      const char *app = NULL;
+ 
+       if (default_app != NULL && use_default_app)
+         app = default_app;
+@@ -709,7 +722,7 @@ handle_open_in_thread_func (GTask *task,
+         app = latest_id;
+       else if (default_app != NULL)
+         app = default_app;
+-      else
++      else if (choices && app_exists (choices[0]))
+         app = choices[0];
+ 
+       if (app)
diff --git a/debian/patches/open-uri-Use-correct-app-ID-to-determine-whether-it-exist.patch b/debian/patches/open-uri-Use-correct-app-ID-to-determine-whether-it-exist.patch
new file mode 100644
index 0000000..652a175
--- /dev/null
+++ b/debian/patches/open-uri-Use-correct-app-ID-to-determine-whether-it-exist.patch
@@ -0,0 +1,34 @@
+From: Simon McVittie <smcv at collabora.com>
+Date: Sun, 6 Sep 2020 17:49:33 +0100
+Subject: open-uri: Use correct app ID to determine whether it exists
+
+x-d-p represents apps by their app ID *without* the .desktop suffix,
+but GDesktopAppInfo represents them by the app ID *with* the .desktop
+suffix.
+
+Fixes: 69205f12 "open-uri: Show app chooser when default app does not exist"
+Resolves: #524
+Signed-off-by: Simon McVittie <smcv at collabora.com>
+Applied-upstream: 1.7.3
+---
+ src/open-uri.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/src/open-uri.c b/src/open-uri.c
+index c5b8705..7eb7804 100644
+--- a/src/open-uri.c
++++ b/src/open-uri.c
+@@ -554,10 +554,12 @@ static gboolean
+ app_exists (const char *app_id)
+ {
+   g_autoptr(GDesktopAppInfo) info = NULL;
++  g_autofree gchar *with_desktop = NULL;
+ 
+   g_return_val_if_fail (app_id != NULL, FALSE);
+ 
+-  info = g_desktop_app_info_new (app_id);
++  with_desktop = g_strconcat (app_id, ".desktop", NULL);
++  info = g_desktop_app_info_new (with_desktop);
+   return (info != NULL);
+ }
+ 
diff --git a/debian/patches/open-uri-avoid-criticals-when-app-to-open-does-not-exist.patch b/debian/patches/open-uri-avoid-criticals-when-app-to-open-does-not-exist.patch
new file mode 100644
index 0000000..a992fe6
--- /dev/null
+++ b/debian/patches/open-uri-avoid-criticals-when-app-to-open-does-not-exist.patch
@@ -0,0 +1,32 @@
+From: Michael Catanzaro <mcatanzaro at gnome.org>
+Date: Fri, 1 May 2020 17:26:54 -0500
+Subject: open-uri: avoid criticals when app to open does not exist
+
+If g_desktop_app_info_new() returns NULL, then the desired desktop file
+does not exist. Simply return FALSE in this case instead of trying to
+use it.
+
+See: #480
+Origin: upstream, 1.7.3, commit:c41efbe598918fedf01d69f65b581cfbf107b00b
+---
+ src/open-uri.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/src/open-uri.c b/src/open-uri.c
+index c081a6b..bb63478 100644
+--- a/src/open-uri.c
++++ b/src/open-uri.c
+@@ -235,6 +235,13 @@ launch_application_with_uri (const char *choice_id,
+   g_autofree char *ruri = NULL;
+   GList uris;
+ 
++  if (info == NULL)
++    {
++      g_debug ("Cannot launch %s because desktop file does not exist", desktop_id);
++      g_set_error (error, XDG_DESKTOP_PORTAL_ERROR, XDG_DESKTOP_PORTAL_ERROR_NOT_FOUND, "Desktop file %s does not exist", desktop_id);
++      return FALSE;
++    }
++
+   g_debug ("Launching %s %s", choice_id, uri);
+ 
+   if (is_sandboxed (info) && is_file_uri (uri))
diff --git a/debian/patches/pipewire-clean-up-the-registry-proxy.patch b/debian/patches/pipewire-clean-up-the-registry-proxy.patch
new file mode 100644
index 0000000..778420b
--- /dev/null
+++ b/debian/patches/pipewire-clean-up-the-registry-proxy.patch
@@ -0,0 +1,24 @@
+From: Wim Taymans <wtaymans at redhat.com>
+Date: Fri, 17 Jul 2020 15:32:53 +0200
+Subject: pipewire: clean up the registry proxy
+
+destroy the registry proxy after use or else we leak it.
+
+Origin: upstream, 1.7.3, commit:4e1bdb4c81c427f12ade9e28e6d947d3148cb0d9
+---
+ src/pipewire.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/pipewire.c b/src/pipewire.c
+index 162cd55..9430339 100644
+--- a/src/pipewire.c
++++ b/src/pipewire.c
+@@ -107,6 +107,8 @@ discover_node_factory_sync (PipeWireRemote *remote,
+ 
+   pipewire_remote_roundtrip (remote);
+ 
++  pw_proxy_destroy((struct pw_proxy*)registry);
++
+   if (remote->node_factory_id == 0)
+     {
+       g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
diff --git a/debian/patches/screen-cast-fix-array-element-size-for-permissions.patch b/debian/patches/screen-cast-fix-array-element-size-for-permissions.patch
new file mode 100644
index 0000000..07a9378
--- /dev/null
+++ b/debian/patches/screen-cast-fix-array-element-size-for-permissions.patch
@@ -0,0 +1,24 @@
+From: Wim Taymans <wtaymans at redhat.com>
+Date: Fri, 17 Jul 2020 12:31:47 +0200
+Subject: screen-cast: fix array element size for permissions
+
+The array should contain struct pw_permission elements.
+
+Origin: upstream, 1.7.3, commit:0b19cc3fcf9a39c65d523704bc23a6907554c406
+---
+ src/screen-cast.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/screen-cast.c b/src/screen-cast.c
+index 1f036b6..235cbd1 100644
+--- a/src/screen-cast.c
++++ b/src/screen-cast.c
+@@ -554,7 +554,7 @@ open_pipewire_screen_cast_remote (const char *app_id,
+   if (!remote)
+     return FALSE;
+ 
+-  permission_items = g_array_new (FALSE, TRUE, sizeof (struct spa_dict_item));
++  permission_items = g_array_new (FALSE, TRUE, sizeof (struct pw_permission));
+ 
+   /*
+    * PipeWire:Interface:Core
diff --git a/debian/patches/series b/debian/patches/series
index 9f515ad..9159615 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,9 +1,35 @@
+open-uri-Return-errors-from-launch_application_with_uri.patch
+open-uri-Reject-more-mismatched-open-requests.patch
+open-uri-Print-debug-information-when-OpenFile-URI-fails.patch
+tests-Don-t-rely-on-PATH-to-launch-uninstalled.patch
+tests-Print-the-full-paths-of-what-we-re-trying-to-run.patch
+tests-Ensure-XDG_DATA_DIRS-is-well-formed.patch
+tests-Make-sure-http2-test-always-runs.patch
+tests-Increase-timeouts-when-running-in-CI.patch
+open-uri-Allow-skipping-chooser-for-more-URL-types.patch
+open-uri-Always-open-URIs-in-default-app.patch
+open-uri-Show-app-chooser-when-default-app-does-not-exist.patch
+open-uri-avoid-criticals-when-app-to-open-does-not-exist.patch
+doc-Include-secret-portal-documentation.patch
+FileChooser-Add-a-current_filter-return-value.patch
+Screencast-document-source_type-property-in-the-response.patch
+Fix-typos-in-FileChooser-doc.patch
+Revert-Add-the-directory-option-to-the-file-chooser-impl-.patch
+camera-make-client-node-as-visible.patch
+screen-cast-fix-array-element-size-for-permissions.patch
+pipewire-clean-up-the-registry-proxy.patch
+open-uri-Don-t-crash-if-there-is-no-default-or-latest-app.patch
+open-uri-Assert-that-find_recommended_choices-yields-non-.patch
+tests-Make-app-chooser-backend-more-debuggable.patch
+open-uri-Use-correct-app-ID-to-determine-whether-it-exist.patch
+xdp-Send-messages-to-stderr-not-stdout.patch
 tests-Divert-service-stdout-to-stderr.patch
-tests-Always-produce-verbose-output-from-subprocesses.patch
-Revert-Stop-building-the-icon-validator.patch
-validate-icon-Add-a-define-for-bwrap.patch
-Replace-the-icon-validator-with-the-one-from-Flatpak-1.8..patch
 tests-use-kill-from-PATH.patch
+Install-session.conf.in-to-expected-path-for-installed-te.patch
 tests-call-test-document-fuse.py-directly.patch
 tests-Only-run-xdg-document-portal-in-foreground-when-uni.patch
-Install-session.conf.in-to-expected-path-for-installed-te.patch
+test-document-fuse-Quote-more-defensively.patch
+tests-Send-SIGTERM-to-dbus-daemon.patch
+Revert-Stop-building-the-icon-validator.patch
+validate-icon-Add-a-define-for-bwrap.patch
+Replace-the-icon-validator-with-the-one-from-Flatpak-1.8..patch
diff --git a/debian/patches/test-document-fuse-Quote-more-defensively.patch b/debian/patches/test-document-fuse-Quote-more-defensively.patch
new file mode 100644
index 0000000..e60c3bf
--- /dev/null
+++ b/debian/patches/test-document-fuse-Quote-more-defensively.patch
@@ -0,0 +1,87 @@
+From: Simon McVittie <smcv at debian.org>
+Date: Wed, 5 Aug 2020 11:16:35 +0100
+Subject: test-document-fuse: Quote more defensively
+
+Signed-off-by: Simon McVittie <smcv at debian.org>
+Forwarded: https://github.com/flatpak/xdg-desktop-portal/pull/521
+---
+ tests/test-document-fuse.sh | 30 +++++++++++++++---------------
+ 1 file changed, 15 insertions(+), 15 deletions(-)
+
+diff --git a/tests/test-document-fuse.sh b/tests/test-document-fuse.sh
+index da0aa47..f0013d4 100755
+--- a/tests/test-document-fuse.sh
++++ b/tests/test-document-fuse.sh
+@@ -25,20 +25,20 @@ set -e
+ if [ -n "${G_TEST_SRCDIR:-}" ]; then
+     test_srcdir="${G_TEST_SRCDIR}"
+ else
+-    test_srcdir=$(realpath $(dirname $0))
++    test_srcdir=$(realpath "$(dirname $0)")
+ fi
+ 
+ if [ -n "${G_TEST_BUILDDIR:-}" ]; then
+     test_builddir="${G_TEST_BUILDDIR}"
+ else
+-    test_builddir=$(realpath $(dirname $0))
++    test_builddir=$(realpath "$(dirname $0)")
+ fi
+ 
+ export TEST_DATA_DIR=`mktemp -d /tmp/xdp-XXXXXX`
+-mkdir -p ${TEST_DATA_DIR}/home
+-mkdir -p ${TEST_DATA_DIR}/runtime
+-mkdir -p ${TEST_DATA_DIR}/system
+-mkdir -p ${TEST_DATA_DIR}/config
++mkdir -p "${TEST_DATA_DIR}/home"
++mkdir -p "${TEST_DATA_DIR}/runtime"
++mkdir -p "${TEST_DATA_DIR}/system"
++mkdir -p "${TEST_DATA_DIR}/config"
+ 
+ export HOME=${TEST_DATA_DIR}/home
+ export XDG_CACHE_HOME=${TEST_DATA_DIR}/home/cache
+@@ -47,15 +47,15 @@ export XDG_DATA_HOME=${TEST_DATA_DIR}/home/share
+ export XDG_RUNTIME_DIR=${TEST_DATA_DIR}/runtime
+ 
+ cleanup () {
+-    fusermount -u $XDG_RUNTIME_DIR/doc || :
++    fusermount -u "$XDG_RUNTIME_DIR/doc" || :
+     sleep 0.1
+-    kill -9 $DBUS_SESSION_BUS_PID
++    kill -9 "$DBUS_SESSION_BUS_PID"
+     kill $(jobs -p) &> /dev/null || true
+-    rm -rf $TEST_DATA_DIR
++    rm -rf "$TEST_DATA_DIR"
+ }
+ trap cleanup EXIT
+ 
+-sed s#@testdir@#${test_builddir}# ${test_srcdir}/session.conf.in > session.conf
++sed "s#@testdir@#${test_builddir}#" "${test_srcdir}/session.conf.in" > session.conf
+ 
+ dbus-daemon --fork --config-file=session.conf --print-address=3 --print-pid=4 \
+             3> dbus-session-bus-address 4> dbus-session-bus-pid
+@@ -76,20 +76,20 @@ fi
+ 
+ # First run a basic single-thread test
+ echo Testing single-threaded
+-${test_srcdir}/test-document-fuse.py --iterations 3 -v
++"${test_srcdir}/test-document-fuse.py" --iterations 3 -v
+ echo "ok single-threaded"
+ 
+ # Then a bunch of copies in parallel to stress-test
+ echo Testing in parallel
+ PIDS=()
+ for i in $(seq 20); do
+-    ${test_srcdir}/test-document-fuse.py --iterations 10 --prefix $i &
++    "${test_srcdir}/test-document-fuse.py" --iterations 10 --prefix "$i" &
+     PID="$!"
+     PIDS+=( "$PID" )
+ done
+ 
+-for PID in ${PIDS[@]}; do
+-    echo waiting for pid ${PID}
+-    wait ${PID}
++for PID in "${PIDS[@]}"; do
++    echo waiting for pid "${PID}"
++    wait "${PID}"
+ done
+ echo "ok load-test"
diff --git a/debian/patches/tests-Always-produce-verbose-output-from-subprocesses.patch b/debian/patches/tests-Always-produce-verbose-output-from-subprocesses.patch
deleted file mode 100644
index de8aef0..0000000
--- a/debian/patches/tests-Always-produce-verbose-output-from-subprocesses.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From: Simon McVittie <smcv at debian.org>
-Date: Sun, 22 Dec 2019 21:20:48 +0000
-Subject: tests: Always produce verbose output from subprocesses
-
-This helps to debug what is going on if a test fails.
-
-Signed-off-by: Simon McVittie <smcv at debian.org>
----
- tests/test-portals.c | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/tests/test-portals.c b/tests/test-portals.c
-index fac569a..5e6a81c 100644
---- a/tests/test-portals.c
-+++ b/tests/test-portals.c
-@@ -133,7 +133,7 @@ global_setup (void)
- 
-   backends_executable = g_test_build_filename (G_TEST_BUILT, "test-backends", NULL);
-   argv[0] = backends_executable;
--  argv[1] = g_test_verbose () ? "--verbose" : NULL;
-+  argv[1] = "--verbose";
-   argv[2] = NULL;
- 
-   g_print ("launching test-backend\n");
-@@ -176,7 +176,7 @@ global_setup (void)
-   else
-     argv[0] = LIBEXECDIR "/xdg-desktop-portal";
- 
--  argv[1] = g_test_verbose () ? "--verbose" : NULL;
-+  argv[1] = "--verbose";
-   argv[2] = NULL;
- 
-   g_print ("launching xdg-desktop-portal\n");
-@@ -217,7 +217,7 @@ global_setup (void)
-     argv[0] = LIBEXECDIR "/xdg-permission-store";
- 
-   argv[1] = "--replace";
--  argv[2] = g_test_verbose () ? "--verbose" : NULL;
-+  argv[2] = "--verbose";
-   argv[3] = NULL;
- 
-   g_print ("launching xdg-permission-store");
diff --git a/debian/patches/tests-Divert-service-stdout-to-stderr.patch b/debian/patches/tests-Divert-service-stdout-to-stderr.patch
index e7296b8..439d289 100644
--- a/debian/patches/tests-Divert-service-stdout-to-stderr.patch
+++ b/debian/patches/tests-Divert-service-stdout-to-stderr.patch
@@ -5,16 +5,17 @@ Subject: tests: Divert service stdout to stderr
 These tests produce structured TAP output on stdout, so we cannot run
 any subprocesses that would produce unstructured stdout. Unfortunately,
 by default g_debug() writes to stdout, so running with G_MESSAGES_DEBUG
-to get better logging from the various subprocesses breaks the test.
+to get better logging from the various subprocesses can break the test.
 Use stderr instead.
 
 Signed-off-by: Simon McVittie <smcv at debian.org>
+Forwarded: https://github.com/flatpak/xdg-desktop-portal/pull/521
 ---
  tests/test-portals.c | 16 +++++++++++++++-
  1 file changed, 15 insertions(+), 1 deletion(-)
 
 diff --git a/tests/test-portals.c b/tests/test-portals.c
-index 8bfb25d..fac569a 100644
+index bfa5645..2cd5ba5 100644
 --- a/tests/test-portals.c
 +++ b/tests/test-portals.c
 @@ -39,6 +39,17 @@ static GSubprocess *backends;
@@ -35,7 +36,7 @@ index 8bfb25d..fac569a 100644
  static void
  name_appeared_cb (GDBusConnection *bus,
                    const char *name,
-@@ -118,7 +129,8 @@ global_setup (void)
+@@ -158,7 +169,8 @@ global_setup (void)
    g_subprocess_launcher_setenv (launcher, "DBUS_SESSION_BUS_ADDRESS", g_test_dbus_get_bus_address (dbus), TRUE);
    g_subprocess_launcher_setenv (launcher, "XDG_DATA_HOME", outdir, TRUE);
    g_subprocess_launcher_setenv (launcher, "PATH", g_getenv ("PATH"), TRUE);
@@ -45,19 +46,19 @@ index 8bfb25d..fac569a 100644
    backends_executable = g_test_build_filename (G_TEST_BUILT, "test-backends", NULL);
    argv[0] = backends_executable;
    argv[1] = g_test_verbose () ? "--verbose" : NULL;
-@@ -156,6 +168,7 @@ global_setup (void)
+@@ -196,6 +208,7 @@ global_setup (void)
    g_subprocess_launcher_setenv (launcher, "XDG_DESKTOP_PORTAL_DIR", portal_dir, TRUE);
    g_subprocess_launcher_setenv (launcher, "XDG_DATA_HOME", outdir, TRUE);
    g_subprocess_launcher_setenv (launcher, "PATH", g_getenv ("PATH"), TRUE);
 +  g_subprocess_launcher_take_stdout_fd (launcher, xdup (STDERR_FILENO));
  
-   /* When running uninstalled we rely on this being added to PATH */
    if (g_getenv ("XDP_UNINSTALLED") != NULL)
-@@ -195,6 +208,7 @@ global_setup (void)
+     argv0 = g_test_build_filename (G_TEST_BUILT, "..", "xdg-desktop-portal", NULL);
+@@ -236,6 +249,7 @@ global_setup (void)
    g_subprocess_launcher_setenv (launcher, "DBUS_SESSION_BUS_ADDRESS", g_test_dbus_get_bus_address (dbus), TRUE);
    g_subprocess_launcher_setenv (launcher, "XDG_DATA_HOME", outdir, TRUE);
    g_subprocess_launcher_setenv (launcher, "PATH", g_getenv ("PATH"), TRUE);
 +  g_subprocess_launcher_take_stdout_fd (launcher, xdup (STDERR_FILENO));
  
-   /* When running uninstalled we rely on this being added to PATH */
    if (g_getenv ("XDP_UNINSTALLED") != NULL)
+     argv0 = g_test_build_filename (G_TEST_BUILT, "..", "xdg-permission-store", NULL);
diff --git a/debian/patches/tests-Don-t-rely-on-PATH-to-launch-uninstalled.patch b/debian/patches/tests-Don-t-rely-on-PATH-to-launch-uninstalled.patch
new file mode 100644
index 0000000..2c1a1b0
--- /dev/null
+++ b/debian/patches/tests-Don-t-rely-on-PATH-to-launch-uninstalled.patch
@@ -0,0 +1,63 @@
+From: Bastien Nocera <hadess at hadess.net>
+Date: Fri, 17 Apr 2020 21:50:49 +0200
+Subject: tests: Don't rely on PATH to launch uninstalled
+
+Use the build directories instead.
+
+Origin: upstream, 1.7.3, commit:22d666dd7e7fe3f2c3769288e0baa76a507298d8
+---
+ tests/test-portals.c | 14 ++++++++------
+ 1 file changed, 8 insertions(+), 6 deletions(-)
+
+diff --git a/tests/test-portals.c b/tests/test-portals.c
+index 8bfb25d..f0601e7 100644
+--- a/tests/test-portals.c
++++ b/tests/test-portals.c
+@@ -79,6 +79,7 @@ global_setup (void)
+   g_autofree gchar *backends_executable = NULL;
+   g_autofree gchar *services = NULL;
+   g_autofree gchar *portal_dir = NULL;
++  g_autofree gchar *argv0 = NULL;
+   g_autoptr(GSubprocessLauncher) launcher = NULL;
+   guint name_timeout;
+   const char *argv[4];
+@@ -157,12 +158,12 @@ global_setup (void)
+   g_subprocess_launcher_setenv (launcher, "XDG_DATA_HOME", outdir, TRUE);
+   g_subprocess_launcher_setenv (launcher, "PATH", g_getenv ("PATH"), TRUE);
+ 
+-  /* When running uninstalled we rely on this being added to PATH */
+   if (g_getenv ("XDP_UNINSTALLED") != NULL)
+-    argv[0] = "xdg-desktop-portal";
++    argv0 = g_test_build_filename (G_TEST_BUILT, "..", "xdg-desktop-portal", NULL);
+   else
+-    argv[0] = LIBEXECDIR "/xdg-desktop-portal";
++    argv0 = g_strdup (LIBEXECDIR "/xdg-desktop-portal");
+ 
++  argv[0] = argv0;
+   argv[1] = g_test_verbose () ? "--verbose" : NULL;
+   argv[2] = NULL;
+ 
+@@ -170,6 +171,7 @@ global_setup (void)
+ 
+   portals = g_subprocess_launcher_spawnv (launcher, argv, &error);
+   g_assert_no_error (error);
++  g_clear_pointer (&argv0, g_free);
+ 
+   name_timeout = g_timeout_add (1000, timeout_cb, "Failed to launch xdg-desktop-portal");
+ 
+@@ -196,12 +198,12 @@ global_setup (void)
+   g_subprocess_launcher_setenv (launcher, "XDG_DATA_HOME", outdir, TRUE);
+   g_subprocess_launcher_setenv (launcher, "PATH", g_getenv ("PATH"), TRUE);
+ 
+-  /* When running uninstalled we rely on this being added to PATH */
+   if (g_getenv ("XDP_UNINSTALLED") != NULL)
+-    argv[0] = "xdg-permission-store";
++    argv0 = g_test_build_filename (G_TEST_BUILT, "..", "xdg-permission-store", NULL);
+   else
+-    argv[0] = LIBEXECDIR "/xdg-permission-store";
++    argv0 = g_strdup (LIBEXECDIR "/xdg-permission-store");
+ 
++  argv[0] = argv0;
+   argv[1] = "--replace";
+   argv[2] = g_test_verbose () ? "--verbose" : NULL;
+   argv[3] = NULL;
diff --git a/debian/patches/tests-Ensure-XDG_DATA_DIRS-is-well-formed.patch b/debian/patches/tests-Ensure-XDG_DATA_DIRS-is-well-formed.patch
new file mode 100644
index 0000000..53d5bac
--- /dev/null
+++ b/debian/patches/tests-Ensure-XDG_DATA_DIRS-is-well-formed.patch
@@ -0,0 +1,65 @@
+From: Bastien Nocera <hadess at hadess.net>
+Date: Sat, 18 Apr 2020 16:49:32 +0200
+Subject: tests: Ensure XDG_DATA_DIRS is well-formed
+
+Make sure XDG_DATA_DIRS includes /usr/share/ to pick up on the system
+schemas.
+
+Origin: upstream, 1.7.3, commit:8076a1665077ce705af17e90b90324962e2e609a
+---
+ tests/test-portals.c | 35 +++++++++++++++++++++++++++++++++++
+ 1 file changed, 35 insertions(+)
+
+diff --git a/tests/test-portals.c b/tests/test-portals.c
+index 092c5b1..d76f4ef 100644
+--- a/tests/test-portals.c
++++ b/tests/test-portals.c
+@@ -72,6 +72,39 @@ timeout_cb (gpointer data)
+   return G_SOURCE_REMOVE;
+ }
+ 
++static void
++update_data_dirs (void)
++{
++  const char *data_dirs;
++  gssize len = 0;
++  GString *str;
++  char *new_val;
++
++  data_dirs = g_getenv ("XDG_DATA_DIRS");
++  if (data_dirs != NULL &&
++      strstr (data_dirs, "/usr/share") != NULL)
++    {
++      return;
++    }
++
++  if (data_dirs != NULL)
++    {
++      len = strlen (data_dirs);
++      if (data_dirs[len] == ':')
++        len--;
++    }
++
++  str = g_string_new_len (data_dirs, len);
++  if (str->len > 0)
++    g_string_append_c (str, ':');
++  g_string_append (str, "/usr/local/share/:/usr/share/");
++  new_val = g_string_free (str, FALSE);
++
++  g_debug ("Setting XDG_DATA_DIRS to %s", new_val);
++  g_setenv ("XDG_DATA_DIRS", new_val, TRUE);
++  /* new_val is leaked */
++}
++
+ static void
+ global_setup (void)
+ {
+@@ -87,6 +120,8 @@ global_setup (void)
+   static gboolean name_appeared;
+   guint watch;
+ 
++  update_data_dirs ();
++
+   g_mkdtemp (outdir);
+   g_print ("outdir: %s\n", outdir);
+ 
diff --git a/debian/patches/tests-Increase-timeouts-when-running-in-CI.patch b/debian/patches/tests-Increase-timeouts-when-running-in-CI.patch
new file mode 100644
index 0000000..f4b7bde
--- /dev/null
+++ b/debian/patches/tests-Increase-timeouts-when-running-in-CI.patch
@@ -0,0 +1,60 @@
+From: Bastien Nocera <hadess at hadess.net>
+Date: Sat, 18 Apr 2020 12:36:49 +0200
+Subject: tests: Increase timeouts when running in CI
+
+1 second isn't very much to wait for a D-Bus service in a loaded CI.
+
+Origin: upstream, 1.7.3, commit:cbb95e4d643bab5698700892b0d016a43ca2b2d0
+---
+ tests/test-portals.c | 10 +++++++---
+ 1 file changed, 7 insertions(+), 3 deletions(-)
+
+diff --git a/tests/test-portals.c b/tests/test-portals.c
+index d76f4ef..bfa5645 100644
+--- a/tests/test-portals.c
++++ b/tests/test-portals.c
+@@ -119,6 +119,7 @@ global_setup (void)
+   GQuark portal_errors G_GNUC_UNUSED;
+   static gboolean name_appeared;
+   guint watch;
++  guint timeout_mult = 1;
+ 
+   update_data_dirs ();
+ 
+@@ -133,6 +134,9 @@ global_setup (void)
+   g_test_dbus_add_service_dir (dbus, services);
+   g_test_dbus_up (dbus);
+ 
++  if (g_getenv ("TEST_IN_CI"))
++    timeout_mult = 10;
++
+   /* g_test_dbus_up unsets this, so re-set */
+   g_setenv ("XDG_RUNTIME_DIR", outdir, TRUE);
+ 
+@@ -165,7 +169,7 @@ global_setup (void)
+   backends = g_subprocess_launcher_spawnv (launcher, argv, &error);
+   g_assert_no_error (error);
+ 
+-  name_timeout = g_timeout_add (1000, timeout_cb, "Failed to launch test-backends");
++  name_timeout = g_timeout_add (1000 * timeout_mult, timeout_cb, "Failed to launch test-backends");
+ 
+   while (!name_appeared)
+     g_main_context_iteration (NULL, TRUE);
+@@ -208,7 +212,7 @@ global_setup (void)
+   g_assert_no_error (error);
+   g_clear_pointer (&argv0, g_free);
+ 
+-  name_timeout = g_timeout_add (1000, timeout_cb, "Failed to launch xdg-desktop-portal");
++  name_timeout = g_timeout_add (1000 * timeout_mult, timeout_cb, "Failed to launch xdg-desktop-portal");
+ 
+   while (!name_appeared)
+     g_main_context_iteration (NULL, TRUE);
+@@ -248,7 +252,7 @@ global_setup (void)
+   portals = g_subprocess_launcher_spawnv (launcher, argv, &error);
+   g_assert_no_error (error);
+ 
+-  name_timeout = g_timeout_add (1000, timeout_cb, "Failed to launch xdg-permission-store");
++  name_timeout = g_timeout_add (1000 * timeout_mult, timeout_cb, "Failed to launch xdg-permission-store");
+ 
+   while (!name_appeared)
+     g_main_context_iteration (NULL, TRUE);
diff --git a/debian/patches/tests-Make-app-chooser-backend-more-debuggable.patch b/debian/patches/tests-Make-app-chooser-backend-more-debuggable.patch
new file mode 100644
index 0000000..aedac2b
--- /dev/null
+++ b/debian/patches/tests-Make-app-chooser-backend-more-debuggable.patch
@@ -0,0 +1,32 @@
+From: Simon McVittie <smcv at collabora.com>
+Date: Sun, 6 Sep 2020 17:32:26 +0100
+Subject: tests: Make app chooser backend more debuggable
+
+Instead of crashing out when our expectations are not met, return an
+error that other components can log.
+
+Signed-off-by: Simon McVittie <smcv at collabora.com>
+Applied-upstream: 1.7.3
+---
+ tests/backend/appchooser.c | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/tests/backend/appchooser.c b/tests/backend/appchooser.c
+index d8d3f7e..e7bf0f8 100644
+--- a/tests/backend/appchooser.c
++++ b/tests/backend/appchooser.c
+@@ -122,7 +122,13 @@ handle_choose_application (XdpImplAppChooser *object,
+   g_assert_no_error (error);
+ 
+   if (g_key_file_has_key (keyfile, "backend", "expect-no-call", NULL))
+-    g_assert_not_reached ();
++    {
++      g_dbus_method_invocation_return_error (invocation,
++                                             G_IO_ERROR,
++                                             G_IO_ERROR_FAILED,
++                                             "Did not expect ChooseApplication to be called here");
++      return TRUE;  /* handled */
++    }
+ 
+   request = request_new (sender, arg_app_id, arg_handle);
+ 
diff --git a/debian/patches/tests-Make-sure-http2-test-always-runs.patch b/debian/patches/tests-Make-sure-http2-test-always-runs.patch
new file mode 100644
index 0000000..e1a9028
--- /dev/null
+++ b/debian/patches/tests-Make-sure-http2-test-always-runs.patch
@@ -0,0 +1,95 @@
+From: Bastien Nocera <hadess at hadess.net>
+Date: Fri, 17 Apr 2020 23:11:45 +0200
+Subject: tests: Make sure http2 test always runs
+
+By installing our own handler for the http scheme.
+
+Origin: upstream, 1.7.3, commit:a41a189f3290b6a03ce98f844697e45a327852d0
+---
+ tests/Makefile.am.inc                    |  6 ++++++
+ tests/openuri.c                          | 10 +++-------
+ tests/share/applications/furrfix.desktop | 13 +++++++++++++
+ tests/share/applications/mimeinfo.cache  |  9 +++++++++
+ 4 files changed, 31 insertions(+), 7 deletions(-)
+ create mode 100644 tests/share/applications/furrfix.desktop
+ create mode 100644 tests/share/applications/mimeinfo.cache
+
+diff --git a/tests/Makefile.am.inc b/tests/Makefile.am.inc
+index 981c8d5..e4ea3de 100644
+--- a/tests/Makefile.am.inc
++++ b/tests/Makefile.am.inc
+@@ -2,6 +2,7 @@ test_programs =
+ 
+ TESTS_ENVIRONMENT = \
+ 	PATH=$$(cd $(top_builddir) && pwd):$${PATH} \
++	XDG_DATA_DIRS=$(top_srcdir)/tests/share/:$${XDG_DATA_DIRS} \
+ 	XDP_UNINSTALLED=1 \
+ 	$(NULL)
+ 
+@@ -120,6 +121,11 @@ dist_test_scripts = \
+ 	tests/test-document-fuse.sh \
+ 	$(NULL)
+ 
++dist_test_apps = \
++	tests/share/applications/furrfix.desktop \
++	tests/share/applications/mimeinfo.cache \
++	$(NULL)
++
+ test_programs += \
+ 	testdb \
+ 	test-doc-portal \
+diff --git a/tests/openuri.c b/tests/openuri.c
+index df3a754..88ae738 100644
+--- a/tests/openuri.c
++++ b/tests/openuri.c
+@@ -157,13 +157,9 @@ test_open_uri_http2 (void)
+   g_autoptr(GAppInfo) app = NULL;
+   g_autofree char *app_id = NULL;
+ 
+-  app = g_app_info_get_default_for_type ("x-scheme-handler/http", FALSE);
+-
+-  if (app == NULL)
+-    {
+-      g_test_skip ("No default handler for x-scheme-handler/http set");
+-      return;
+-    }
++  /* get furrfix.desktop as an app */
++  app = g_app_info_get_default_for_type ("x-scheme-handler/xdg-desktop-portal-test", FALSE);
++  g_assert_nonnull (app);
+ 
+   app_id = g_strndup (g_app_info_get_id (app), strlen (g_app_info_get_id (app)) - strlen (".desktop"));
+ 
+diff --git a/tests/share/applications/furrfix.desktop b/tests/share/applications/furrfix.desktop
+new file mode 100644
+index 0000000..f35caf0
+--- /dev/null
++++ b/tests/share/applications/furrfix.desktop
+@@ -0,0 +1,13 @@
++[Desktop Entry]
++Version=1.0
++Name=Furrfix
++GenericName=Not a Web Browser
++Comment=Don't Browse the Web
++Exec=true %u
++Icon=furrfix
++Terminal=false
++Type=Application
++MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/xdg-desktop-portal-test;
++StartupNotify=true
++Categories=Network;WebBrowser;
++Keywords=web;browser;internet;
+diff --git a/tests/share/applications/mimeinfo.cache b/tests/share/applications/mimeinfo.cache
+new file mode 100644
+index 0000000..7881f39
+--- /dev/null
++++ b/tests/share/applications/mimeinfo.cache
+@@ -0,0 +1,9 @@
++[MIME Cache]
++application/vnd.mozilla.xul+xml=furrfix.desktop;
++application/xhtml+xml=furrfix.desktop;
++text/html=furrfix.desktop;
++text/mml=furrfix.desktop;
++text/xml=furrfix.desktop;
++x-scheme-handler/http=furrfix.desktop;
++x-scheme-handler/https=furrfix.desktop;
++x-scheme-handler/xdg-desktop-portal-test=furrfix.desktop;
diff --git a/debian/patches/tests-Only-run-xdg-document-portal-in-foreground-when-uni.patch b/debian/patches/tests-Only-run-xdg-document-portal-in-foreground-when-uni.patch
index e7ff6ef..0c8226c 100644
--- a/debian/patches/tests-Only-run-xdg-document-portal-in-foreground-when-uni.patch
+++ b/debian/patches/tests-Only-run-xdg-document-portal-in-foreground-when-uni.patch
@@ -9,6 +9,7 @@ particular that D-Bus .service file was installed correctly to make it
 activatable.
 
 Signed-off-by: Simon McVittie <smcv at debian.org>
+Forwarded: https://github.com/flatpak/xdg-desktop-portal/pull/521
 ---
  tests/test-document-fuse.sh | 6 +++++-
  1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/debian/patches/tests-Print-the-full-paths-of-what-we-re-trying-to-run.patch b/debian/patches/tests-Print-the-full-paths-of-what-we-re-trying-to-run.patch
new file mode 100644
index 0000000..e2c3c2c
--- /dev/null
+++ b/debian/patches/tests-Print-the-full-paths-of-what-we-re-trying-to-run.patch
@@ -0,0 +1,34 @@
+From: Bastien Nocera <hadess at hadess.net>
+Date: Fri, 17 Apr 2020 21:51:31 +0200
+Subject: tests: Print the full paths of what we're trying to run
+
+Instead of simply the name, so that we can double-check the paths just
+in case we fail.
+
+Origin: upstream, 1.7.3, commit:98551b45f77eac1538786f9843bf9c93fd2cd631
+---
+ tests/test-portals.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/tests/test-portals.c b/tests/test-portals.c
+index f0601e7..092c5b1 100644
+--- a/tests/test-portals.c
++++ b/tests/test-portals.c
+@@ -167,7 +167,7 @@ global_setup (void)
+   argv[1] = g_test_verbose () ? "--verbose" : NULL;
+   argv[2] = NULL;
+ 
+-  g_print ("launching xdg-desktop-portal\n");
++  g_print ("launching %s\n", argv0);
+ 
+   portals = g_subprocess_launcher_spawnv (launcher, argv, &error);
+   g_assert_no_error (error);
+@@ -208,7 +208,7 @@ global_setup (void)
+   argv[2] = g_test_verbose () ? "--verbose" : NULL;
+   argv[3] = NULL;
+ 
+-  g_print ("launching xdg-permission-store");
++  g_print ("launching %s\n", argv0);
+ 
+   portals = g_subprocess_launcher_spawnv (launcher, argv, &error);
+   g_assert_no_error (error);
diff --git a/debian/patches/tests-Send-SIGTERM-to-dbus-daemon.patch b/debian/patches/tests-Send-SIGTERM-to-dbus-daemon.patch
new file mode 100644
index 0000000..c0bf041
--- /dev/null
+++ b/debian/patches/tests-Send-SIGTERM-to-dbus-daemon.patch
@@ -0,0 +1,27 @@
+From: Simon McVittie <smcv at debian.org>
+Date: Wed, 5 Aug 2020 11:17:26 +0100
+Subject: tests: Send SIGTERM to dbus-daemon
+
+There's no real need to kill it with SIGKILL, and in some configurations
+there is cleanup that is only performed when allowed to shut down
+gracefully.
+
+Signed-off-by: Simon McVittie <smcv at debian.org>
+Forwarded: https://github.com/flatpak/xdg-desktop-portal/pull/521
+---
+ tests/test-document-fuse.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tests/test-document-fuse.sh b/tests/test-document-fuse.sh
+index f0013d4..b889cfc 100755
+--- a/tests/test-document-fuse.sh
++++ b/tests/test-document-fuse.sh
+@@ -49,7 +49,7 @@ export XDG_RUNTIME_DIR=${TEST_DATA_DIR}/runtime
+ cleanup () {
+     fusermount -u "$XDG_RUNTIME_DIR/doc" || :
+     sleep 0.1
+-    kill -9 "$DBUS_SESSION_BUS_PID"
++    kill "$DBUS_SESSION_BUS_PID"
+     kill $(jobs -p) &> /dev/null || true
+     rm -rf "$TEST_DATA_DIR"
+ }
diff --git a/debian/patches/tests-call-test-document-fuse.py-directly.patch b/debian/patches/tests-call-test-document-fuse.py-directly.patch
index ebe4648..232e879 100644
--- a/debian/patches/tests-call-test-document-fuse.py-directly.patch
+++ b/debian/patches/tests-call-test-document-fuse.py-directly.patch
@@ -7,6 +7,8 @@ It has a shebang so no need to pass it to python3 in the tests.
 It also makes it easier for downstreams to wrap the python file for setting extra environment variables.
 
 [smcv: chmod the script +x]
+
+Forwarded: https://github.com/flatpak/xdg-desktop-portal/pull/521
 ---
  tests/test-document-fuse.py | 0
  tests/test-document-fuse.sh | 4 ++--
diff --git a/debian/patches/tests-use-kill-from-PATH.patch b/debian/patches/tests-use-kill-from-PATH.patch
index c8a6cec..8124afe 100644
--- a/debian/patches/tests-use-kill-from-PATH.patch
+++ b/debian/patches/tests-use-kill-from-PATH.patch
@@ -3,6 +3,8 @@ Date: Sun, 21 Jun 2020 17:02:56 +0200
 Subject: tests: use kill from PATH
 
 It is not guaranteed that /bin/kill exists and we are already using the bash builtin elsewhere in the script.
+
+Forwarded: https://github.com/flatpak/xdg-desktop-portal/pull/521
 ---
  tests/test-document-fuse.sh | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/debian/patches/xdp-Send-messages-to-stderr-not-stdout.patch b/debian/patches/xdp-Send-messages-to-stderr-not-stdout.patch
new file mode 100644
index 0000000..d29ef03
--- /dev/null
+++ b/debian/patches/xdp-Send-messages-to-stderr-not-stdout.patch
@@ -0,0 +1,34 @@
+From: Simon McVittie <smcv at collabora.com>
+Date: Sun, 6 Sep 2020 17:45:04 +0100
+Subject: xdp: Send messages to stderr, not stdout
+
+This is done for two reasons:
+
+1. Logging on stdout can interfere with machine-readable protocols.
+
+2. stdout is normally fully buffered, whereas stderr is normally
+   line-buffered. It's a lot easier to debug the service when messages
+   don't lag behind.
+
+Signed-off-by: Simon McVittie <smcv at collabora.com>
+Forwarded: https://github.com/flatpak/xdg-desktop-portal/pull/521
+---
+ src/xdg-desktop-portal.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/xdg-desktop-portal.c b/src/xdg-desktop-portal.c
+index f049d19..88a6c5e 100644
+--- a/src/xdg-desktop-portal.c
++++ b/src/xdg-desktop-portal.c
+@@ -79,9 +79,9 @@ message_handler (const gchar *log_domain,
+ {
+   /* Make this look like normal console output */
+   if (log_level & G_LOG_LEVEL_DEBUG)
+-    printf ("XDP: %s\n", message);
++    fprintf (stderr, "XDP: %s\n", message);
+   else
+-    printf ("%s: %s\n", g_get_prgname (), message);
++    fprintf (stderr, "%s: %s\n", g_get_prgname (), message);
+ }
+ 
+ static void



More information about the Neon-commits mailing list