[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#991512: marked as done (unblock: flatpak/1.10.2-3)



Your message dated Sat, 31 Jul 2021 22:22:32 +0200
with message-id <c4700a43-2685-29f0-5fe3-04967b562e27@debian.org>
and subject line Re: Bug#991512: unblock: flatpak/1.10.2-3 (pre-approval)
has caused the Debian Bug report #991512,
regarding unblock: flatpak/1.10.2-3
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
991512: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=991512
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock

[ Reason ]
Apply the same bug fixes that are likely to be in upstream stable release
1.10.3.

[ Impact ]
Maintenance: If we have these changes, it'll be more straightforward to
review a potential future stable update to the final 1.10.3 release.

d/p/system-helper-Fix-deploys-of-local-remotes.patch:
If missing, flatpak and GNOME Software might fail to upgrade some Flatpak
apps. It isn't 100% clear whether this can affect pure bullseye systems, or
only systems with an upgraded (experimental or bookworm) version of GLib.

d/p/create-usb-Skip-copying-extra-data-flatpaks.patch:
If missing, `flatpak create-usb` will create USB media on which not
everything can be installed while offline, which slightly defeats the
purpose of copying Flatpak apps to USB media.

[ Tests ]
Smoke-tested manually, and tested in autopkgtest on qemu. Most of the
autopkgtest coverage is skipped on ci.debian.net because bubblewrap and
lxc are incompatible, but it runs in qemu.

d/p/system-helper-Fix-deploys-of-local-remotes.patch is also in Ubuntu
(to fix the tests with an upgraded GLib), and Fedora developers reported
that applying this patch solves a similar upgrade failure in GNOME Software.

Both patches are backported from the development release 1.11.1, which is
getitng more real-world testing than most development releases because it's
required for some Steam use-cases (I intend to make that version available
in bullseye-backports as soon as that suite is open).

[ Risks ]
It's a key package, but I think these changes have low regression risk.

d/p/system-helper-Fix-deploys-of-local-remotes.patch is quite
straightforward. c8b9069a-ignore-space-change.diff is an easier-to-review
version, from `git show --ignore-space-change c8b9069a`.

d/p/create-usb-Skip-copying-extra-data-flatpaks.patch changes the
implementation of a rarely-used command, so even if it breaks completely,
few Debian users will notice. The change came from endlessOS, which is
one of the few environments where `flatpak create-usb` is actively used.

[ Checklist ]
  [x] all changes are documented in the d/changelog
  [x] I reviewed all changes and I approve them
  [x] attach debdiff against the package in testing

[ Other info ]
We should have a 1.10.3 release soon, but the primary upstream maintainer
is currently on vacation, so it might miss the deadline for bullseye.
I would like to track the 1.10.x branch in bullseye stable/security updates.

unblock flatpak/1.10.2-3
diffstat for flatpak-1.10.2 flatpak-1.10.2

 changelog                                                          |   26 +
 patches/create-usb-Skip-copying-extra-data-flatpaks.patch          |  112 ++++++++
 patches/portal-Don-t-leak-fd-used-for-serialized-environment.patch |    1 
 patches/portal-Remap-env-fd-into-child-process-s-fd-space.patch    |    1 
 patches/portal-Use-a-GArray-to-store-fds.patch                     |    1 
 patches/series                                                     |    4 
 patches/system-helper-Fix-deploys-of-local-remotes.patch           |  132 ++++++++++
 patches/tests-Remove-hard-coded-references-to-x86_64.patch         |    1 
 8 files changed, 277 insertions(+), 1 deletion(-)

diff -Nru flatpak-1.10.2/debian/changelog flatpak-1.10.2/debian/changelog
--- flatpak-1.10.2/debian/changelog	2021-06-22 10:10:38.000000000 +0100
+++ flatpak-1.10.2/debian/changelog	2021-07-25 20:44:58.000000000 +0100
@@ -1,3 +1,29 @@
+flatpak (1.10.2-3) unstable; urgency=medium
+
+  * d/patches: Align with upstream flatpak-1.10.x branch, making this
+    effectively a release candidate for upstream stable release 1.10.3
+    - d/patches: Update metadata to reflect upstream flatpak-1.10.x branch.
+      All the patches we apply in Debian are expected to be released in
+      1.10.3 upstream, but not all were annotated to reflect this.
+    - d/p/system-helper-Fix-deploys-of-local-remotes.patch:
+      Fix some failures to update in GNOME Software and the unit tests.
+      This change was previously applied in Ubuntu's flatpak_1.10.2-1ubuntu1
+      to fix a unit test failure, possibly triggered by a newer version of
+      GLib. It has also been reported to fix a failure to upgrade Flatpak
+      apps using GNOME Software, this time in Fedora.
+    - d/p/create-usb-Skip-copying-extra-data-flatpaks.patch:
+      Skip flatpaks with "extra-data" when using `flatpak create-usb`.
+      This command is intended to create USB drives that can be
+      used to install Flatpak apps and/or runtimes while offline,
+      but the "extra-data" feature downloads extra content for an app
+      or runtime at install time, as a way to automate installation of
+      data that can be re-downloaded by end users but is not licensed
+      for redistribution by Flatpak repositories. Such apps and runtimes
+      would fail to install while offline.
+    - d/p/series: Re-order patches to match upstream flatpak-1.10.x branch
+
+ -- Simon McVittie <smcv@debian.org>  Sun, 25 Jul 2021 20:44:58 +0100
+
 flatpak (1.10.2-2) unstable; urgency=medium
 
   * Backport changes from upstream git to fix regressions when apps invoke
diff -Nru flatpak-1.10.2/debian/patches/create-usb-Skip-copying-extra-data-flatpaks.patch flatpak-1.10.2/debian/patches/create-usb-Skip-copying-extra-data-flatpaks.patch
--- flatpak-1.10.2/debian/patches/create-usb-Skip-copying-extra-data-flatpaks.patch	1970-01-01 01:00:00.000000000 +0100
+++ flatpak-1.10.2/debian/patches/create-usb-Skip-copying-extra-data-flatpaks.patch	2021-07-25 20:44:58.000000000 +0100
@@ -0,0 +1,112 @@
+From: Phaedrus Leeds <mwleeds@endlessos.org>
+Date: Tue, 23 Mar 2021 15:16:17 -0700
+Subject: create-usb: Skip copying extra-data flatpaks
+
+Currently the create-usb command copies extra-data flatpaks such as the
+org.freedesktop.Platform.openh264 runtime extension along with normal
+non-extra-data content. This is an issue because on the computer
+installing from the USB it will attempt to get the extra-data content
+from the URI specified in the commit metadata, which will fail if the
+URI is a resource on the Internet and the computer is offline.
+
+Instead, have create-usb omit such refs. If it was specified explicitly
+this is treated as a hard error and if it's a dependency it's treated as
+a warning, so that e.g. org.freedesktop.Platform can still be copied to
+a USB and installed/updated offline. On the receiving end the absence of
+org.freedesktop.Platform.openh264 will correctly not be treated as fatal
+to the installation of org.freedesktop.Platform.
+
+This issue was affecting offline updates of Endless OS, since such OS
+updates include flatpaks along with the OS content.
+
+For the (legally questionable) topic of properly supporting extra-data
+distribution offline, see https://github.com/flatpak/flatpak/issues/969
+
+Applied-upstream: 1.11.1, commit:0bf8cf9a08c8a7c6af3fc90100185051a76cd410
+Applied-upstream: 1.10.3, commit:a539691dcacd5172a3e51c1785cb191040bf49a5
+---
+ app/flatpak-builtins-create-usb.c | 36 +++++++++++++++++++++++++++++++++++-
+ 1 file changed, 35 insertions(+), 1 deletion(-)
+
+diff --git a/app/flatpak-builtins-create-usb.c b/app/flatpak-builtins-create-usb.c
+index a06bdc4..45f9a2e 100644
+--- a/app/flatpak-builtins-create-usb.c
++++ b/app/flatpak-builtins-create-usb.c
+@@ -144,6 +144,7 @@ add_related (GHashTable        *all_refs,
+       const char *ext_remote;
+       const char *ext_commit = NULL;
+       CommitAndSubpaths *c_s;
++      g_autoptr(GVariant) extra_data_sources = NULL;
+ 
+       if (ext->is_unmaintained)
+         continue;
+@@ -176,6 +177,17 @@ add_related (GHashTable        *all_refs,
+         }
+ 
+       ext_commit = flatpak_deploy_data_get_commit (ext_deploy_data);
++
++      /* Emit a warning and omit it if it's extra-data
++       * https://github.com/flatpak/flatpak/issues/969 */
++      extra_data_sources = flatpak_repo_get_extra_data_sources (flatpak_dir_get_repo (dir), ext_commit, NULL, NULL);
++      if (extra_data_sources != NULL && g_variant_n_children (extra_data_sources) > 0)
++        {
++           g_printerr (_("Warning: Omitting related ref ‘%s’ because it's extra-data.\n"),
++                       flatpak_decomposed_get_ref (ext->ref));
++           continue;
++        }
++
+       ext_subpaths = flatpak_deploy_data_get_subpaths (ext_deploy_data);
+       resolved_ext_subpaths = get_flatpak_subpaths_from_deploy_subpaths (ext_subpaths);
+       c_s = commit_and_subpaths_new (ext_commit, (const char * const *) resolved_ext_subpaths);
+@@ -214,7 +226,7 @@ add_runtime (GHashTable        *all_refs,
+   const char *commit = NULL;
+   const char *runtime_commit = NULL;
+   CommitAndSubpaths *c_s;
+-
++  g_autoptr(GVariant) extra_data_sources = NULL;
+ 
+   g_debug ("Finding the runtime for ‘%s’", flatpak_decomposed_get_ref (ref));
+ 
+@@ -250,6 +262,17 @@ add_runtime (GHashTable        *all_refs,
+                          runtime_remote, flatpak_decomposed_get_ref (runtime_ref));
+ 
+   runtime_commit = flatpak_deploy_data_get_commit (runtime_deploy_data);
++
++  /* Emit a warning and omit it if it's extra-data
++   * https://github.com/flatpak/flatpak/issues/969 */
++  extra_data_sources = flatpak_repo_get_extra_data_sources (flatpak_dir_get_repo (dir), runtime_commit, NULL, NULL);
++  if (extra_data_sources != NULL && g_variant_n_children (extra_data_sources) > 0)
++    {
++       g_printerr (_("Warning: Omitting ref ‘%s’ (runtime of ‘%s’) because it's extra-data.\n"),
++                   flatpak_decomposed_get_ref (runtime_ref), flatpak_decomposed_get_ref (ref));
++       return TRUE;
++    }
++
+   runtime_subpaths = flatpak_deploy_data_get_subpaths (runtime_deploy_data);
+   resolved_runtime_subpaths = get_flatpak_subpaths_from_deploy_subpaths (runtime_subpaths);
+   c_s = commit_and_subpaths_new (runtime_commit, (const char * const *) resolved_runtime_subpaths);
+@@ -633,6 +656,7 @@ flatpak_builtin_create_usb (int argc, char **argv, GCancellable *cancellable, GE
+       /* Add the main ref */
+       {
+         g_autoptr(GBytes) deploy_data = NULL;
++        g_autoptr(GVariant) extra_data_sources = NULL;
+         const char *commit;
+         CommitAndSubpaths *c_s;
+ 
+@@ -645,6 +669,16 @@ flatpak_builtin_create_usb (int argc, char **argv, GCancellable *cancellable, GE
+                       flatpak_decomposed_get_ref (installed_ref));
+ 
+         commit = flatpak_deploy_data_get_commit (deploy_data);
++
++        /* Extra-data flatpaks can't be copied to a USB (the installation will
++         * fail on the receiving end if they're offline) so error out if one
++         * was specified. https://github.com/flatpak/flatpak/issues/969 */
++        extra_data_sources = flatpak_repo_get_extra_data_sources (flatpak_dir_get_repo (dir), commit, NULL, NULL);
++        if (extra_data_sources != NULL && g_variant_n_children (extra_data_sources) > 0)
++          return flatpak_fail (error,
++                               _("Installed ref ‘%s’ is extra-data, and cannot be distributed offline"),
++                               flatpak_decomposed_get_ref (installed_ref));
++
+         c_s = commit_and_subpaths_new (commit, NULL);
+ 
+         g_hash_table_insert (all_collection_ids, g_strdup (ref_collection_id), g_strdup (remote));
diff -Nru flatpak-1.10.2/debian/patches/portal-Don-t-leak-fd-used-for-serialized-environment.patch flatpak-1.10.2/debian/patches/portal-Don-t-leak-fd-used-for-serialized-environment.patch
--- flatpak-1.10.2/debian/patches/portal-Don-t-leak-fd-used-for-serialized-environment.patch	2021-06-22 10:10:38.000000000 +0100
+++ flatpak-1.10.2/debian/patches/portal-Don-t-leak-fd-used-for-serialized-environment.patch	2021-07-25 20:44:58.000000000 +0100
@@ -9,6 +9,7 @@
 Fixes: aeb6a7ab "portal: Convert --env in extra-args into --env-fd"
 Signed-off-by: Simon McVittie <smcv@collabora.com>
 Origin: upstream, 1.11.2, commit:f2fbc75827a58cc6b4cba48a0c895c3313274020
+Applied-upstream: 1.10.3, commit:b4c6aa1cc88625db8b5a26313b34bad3e7c2ed56
 Forwarded: https://github.com/flatpak/flatpak/pull/4322
 ---
  portal/flatpak-portal.c | 7 ++++---
diff -Nru flatpak-1.10.2/debian/patches/portal-Remap-env-fd-into-child-process-s-fd-space.patch flatpak-1.10.2/debian/patches/portal-Remap-env-fd-into-child-process-s-fd-space.patch
--- flatpak-1.10.2/debian/patches/portal-Remap-env-fd-into-child-process-s-fd-space.patch	2021-06-22 10:10:38.000000000 +0100
+++ flatpak-1.10.2/debian/patches/portal-Remap-env-fd-into-child-process-s-fd-space.patch	2021-07-25 20:44:58.000000000 +0100
@@ -10,6 +10,7 @@
 Fixes: aeb6a7ab "portal: Convert --env in extra-args into --env-fd"
 Signed-off-by: Simon McVittie <smcv@collabora.com>
 Origin: upstream, 1.11.2, commit:526dae92418616c71517945e810227416f160ce6
+Applied-upstream: 1.10.3, commit:101a3c5515ccf79d156a1b5272a2e8d7cc90c86a
 Forwarded: https://github.com/flatpak/flatpak/pull/4322
 ---
  portal/flatpak-portal.c | 12 ++++++++++--
diff -Nru flatpak-1.10.2/debian/patches/portal-Use-a-GArray-to-store-fds.patch flatpak-1.10.2/debian/patches/portal-Use-a-GArray-to-store-fds.patch
--- flatpak-1.10.2/debian/patches/portal-Use-a-GArray-to-store-fds.patch	2021-06-22 10:10:38.000000000 +0100
+++ flatpak-1.10.2/debian/patches/portal-Use-a-GArray-to-store-fds.patch	2021-07-25 20:44:58.000000000 +0100
@@ -12,6 +12,7 @@
 Helps: flatpak/flatpak#4286
 Signed-off-by: Simon McVittie <smcv@collabora.com>
 Origin: upstream, 1.11.2, commit:a09d07f085d85efdf34934ecc864a6a5ce9af761
+Applied-upstream: 1.10.3, commit:77b484cb2e4d7c8ce5937f6c7f3055755980de06
 Forwarded: https://github.com/flatpak/flatpak/pull/4322
 ---
  portal/flatpak-portal.c | 81 +++++++++++++++++++++++++------------------------
diff -Nru flatpak-1.10.2/debian/patches/series flatpak-1.10.2/debian/patches/series
--- flatpak-1.10.2/debian/patches/series	2021-06-22 10:10:38.000000000 +0100
+++ flatpak-1.10.2/debian/patches/series	2021-07-25 20:44:58.000000000 +0100
@@ -1,5 +1,7 @@
-tests-Remove-hard-coded-references-to-x86_64.patch
+create-usb-Skip-copying-extra-data-flatpaks.patch
 Fix-several-memory-leaks.patch
 portal-Don-t-leak-fd-used-for-serialized-environment.patch
 portal-Use-a-GArray-to-store-fds.patch
 portal-Remap-env-fd-into-child-process-s-fd-space.patch
+tests-Remove-hard-coded-references-to-x86_64.patch
+system-helper-Fix-deploys-of-local-remotes.patch
diff -Nru flatpak-1.10.2/debian/patches/system-helper-Fix-deploys-of-local-remotes.patch flatpak-1.10.2/debian/patches/system-helper-Fix-deploys-of-local-remotes.patch
--- flatpak-1.10.2/debian/patches/system-helper-Fix-deploys-of-local-remotes.patch	1970-01-01 01:00:00.000000000 +0100
+++ flatpak-1.10.2/debian/patches/system-helper-Fix-deploys-of-local-remotes.patch	2021-07-25 20:44:58.000000000 +0100
@@ -0,0 +1,132 @@
+From: Alexander Larsson <alexl@redhat.com>
+Date: Wed, 17 Mar 2021 17:12:32 +0100
+Subject: system-helper: Fix deploys of local remotes
+
+For updates in remotes with a local (file:) uri we just do a deploy
+with a LOCAL_PULL flag set and an empty arg_repo_path. However, our
+arg_repo_path checking at some point seemed to stop properly handling
+the case where it is empty. I got it to report "No such file" wich
+broke the tests.
+
+(cherry picked from commit 49e8bfcea516e96eb950109d0fa45811a352a517)
+
+Bug: https://github.com/flatpak/flatpak/issues/4339
+Bug: https://gitlab.gnome.org/GNOME/gnome-software/-/issues/1204
+Origin: upstream, 1.11.1, commit:49e8bfcea516e96eb950109d0fa45811a352a517
+Applied-upstream: 1.10.3, commit:c8b9069ab1d894f0f3a30e34f0865ee0287ec7a1
+---
+ system-helper/flatpak-system-helper.c | 89 ++++++++++++++++++-----------------
+ 1 file changed, 46 insertions(+), 43 deletions(-)
+
+diff --git a/system-helper/flatpak-system-helper.c b/system-helper/flatpak-system-helper.c
+index b202c94..adcfe61 100644
+--- a/system-helper/flatpak-system-helper.c
++++ b/system-helper/flatpak-system-helper.c
+@@ -410,61 +410,64 @@ handle_deploy (FlatpakSystemHelper   *object,
+       return G_DBUS_METHOD_INVOCATION_HANDLED;
+     }
+ 
+-  src_dir = g_path_get_dirname (arg_repo_path);
+-  ongoing_pull = take_ongoing_pull_by_dir (src_dir);
+-  if (ongoing_pull != NULL)
++  if ((arg_flags & ~FLATPAK_HELPER_DEPLOY_FLAGS_ALL) != 0)
+     {
+-      g_autoptr(GError) local_error = NULL;
+-      uid_t uid;
++      g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS,
++                                             "Unsupported flags enabled: 0x%x", (arg_flags & ~FLATPAK_HELPER_DEPLOY_FLAGS_ALL));
++      return G_DBUS_METHOD_INVOCATION_HANDLED;
++    }
+ 
+-      /* Ensure that pull's uid is same as the caller's uid */
+-      if (!get_connection_uid (invocation, &uid, &local_error))
++  if (strlen (arg_repo_path) > 0)
++    {
++      if (!g_file_query_exists (repo_file, NULL))
+         {
+-          g_dbus_method_invocation_return_gerror (invocation, local_error);
++          g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS,
++                                                 "Path does not exist");
+           return G_DBUS_METHOD_INVOCATION_HANDLED;
+         }
+-      else
++
++      src_dir = g_path_get_dirname (arg_repo_path);
++      ongoing_pull = take_ongoing_pull_by_dir (src_dir);
++      if (ongoing_pull != NULL)
+         {
+-          if (ongoing_pull->uid != uid)
++          g_autoptr(GError) local_error = NULL;
++          uid_t uid;
++
++          /* Ensure that pull's uid is same as the caller's uid */
++          if (!get_connection_uid (invocation, &uid, &local_error))
+             {
+-              g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_FAILED,
+-                                                     "Ongoing pull's uid(%d) does not match with peer uid(%d)",
+-                                                     ongoing_pull->uid, uid);
++              g_dbus_method_invocation_return_gerror (invocation, local_error);
+               return G_DBUS_METHOD_INVOCATION_HANDLED;
+             }
+-        }
+-
+-      terminate_revokefs_backend (ongoing_pull);
+-
+-      if (!flatpak_canonicalize_permissions (AT_FDCWD,
+-                                             arg_repo_path,
+-                                             getuid() == 0 ? 0 : -1,
+-                                             getuid() == 0 ? 0 : -1,
+-                                             &local_error))
+-        {
+-          g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_FAILED,
+-                                                 "Failed to canonicalize permissions of repo %s: %s",
+-                                                 arg_repo_path, local_error->message);
+-          return G_DBUS_METHOD_INVOCATION_HANDLED;
+-        }
++          else
++            {
++              if (ongoing_pull->uid != uid)
++                {
++                  g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_FAILED,
++                                                         "Ongoing pull's uid(%d) does not match with peer uid(%d)",
++                                                         ongoing_pull->uid, uid);
++                  return G_DBUS_METHOD_INVOCATION_HANDLED;
++                }
++            }
+ 
+-      /* At this point, the cache-dir's repo is owned by root. Hence, any failure
+-       * from here on, should always cleanup the cache-dir and not preserve it to be re-used. */
+-      ongoing_pull->preserve_pull = FALSE;
+-    }
++          terminate_revokefs_backend (ongoing_pull);
+ 
+-  if ((arg_flags & ~FLATPAK_HELPER_DEPLOY_FLAGS_ALL) != 0)
+-    {
+-      g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS,
+-                                             "Unsupported flags enabled: 0x%x", (arg_flags & ~FLATPAK_HELPER_DEPLOY_FLAGS_ALL));
+-      return G_DBUS_METHOD_INVOCATION_HANDLED;
+-    }
++          if (!flatpak_canonicalize_permissions (AT_FDCWD,
++                                                 arg_repo_path,
++                                                 getuid() == 0 ? 0 : -1,
++                                                 getuid() == 0 ? 0 : -1,
++                                                 &local_error))
++            {
++              g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_FAILED,
++                                                     "Failed to canonicalize permissions of repo %s: %s",
++                                                     arg_repo_path, local_error->message);
++              return G_DBUS_METHOD_INVOCATION_HANDLED;
++            }
+ 
+-  if (!g_file_query_exists (repo_file, NULL))
+-    {
+-      g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS,
+-                                             "Path does not exist");
+-      return G_DBUS_METHOD_INVOCATION_HANDLED;
++          /* At this point, the cache-dir's repo is owned by root. Hence, any failure
++           * from here on, should always cleanup the cache-dir and not preserve it to be re-used. */
++          ongoing_pull->preserve_pull = FALSE;
++        }
+     }
+ 
+   ref = flatpak_decomposed_new_from_ref (arg_ref, &error);
diff -Nru flatpak-1.10.2/debian/patches/tests-Remove-hard-coded-references-to-x86_64.patch flatpak-1.10.2/debian/patches/tests-Remove-hard-coded-references-to-x86_64.patch
--- flatpak-1.10.2/debian/patches/tests-Remove-hard-coded-references-to-x86_64.patch	2021-06-22 10:10:38.000000000 +0100
+++ flatpak-1.10.2/debian/patches/tests-Remove-hard-coded-references-to-x86_64.patch	2021-07-25 20:44:58.000000000 +0100
@@ -8,6 +8,7 @@
 Signed-off-by: Simon McVittie <smcv@collabora.com>
 Forwarded: https://github.com/flatpak/flatpak/pull/4142
 Applied-upstream: 1.11.0, commit:ba381ae9368c0e6e233c52254e698f5f64903036
+Applied-upstream: 1.10.3, commit:4089b6976938b43de6f165e89a3850222505df33
 ---
  tests/test-oci.sh    | 2 +-
  tests/test-unused.sh | 2 +-
commit c8b9069ab1d894f0f3a30e34f0865ee0287ec7a1
Author: Alexander Larsson <alexl@redhat.com>
Date:   2021-03-17 17:12:32 +0100

    system-helper: Fix deploys of local remotes
    
    For updates in remotes with a local (file:) uri we just do a deploy
    with a LOCAL_PULL flag set and an empty arg_repo_path. However, our
    arg_repo_path checking at some point seemed to stop properly handling
    the case where it is empty. I got it to report "No such file" wich
    broke the tests.
    
    (cherry picked from commit 49e8bfcea516e96eb950109d0fa45811a352a517)
    
    Fixes: #4339

diff --git a/system-helper/flatpak-system-helper.c b/system-helper/flatpak-system-helper.c
index b202c9410..adcfe61a8 100644
--- a/system-helper/flatpak-system-helper.c
+++ b/system-helper/flatpak-system-helper.c
@@ -410,6 +410,22 @@ handle_deploy (FlatpakSystemHelper   *object,
       return G_DBUS_METHOD_INVOCATION_HANDLED;
     }
 
+  if ((arg_flags & ~FLATPAK_HELPER_DEPLOY_FLAGS_ALL) != 0)
+    {
+      g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS,
+                                             "Unsupported flags enabled: 0x%x", (arg_flags & ~FLATPAK_HELPER_DEPLOY_FLAGS_ALL));
+      return G_DBUS_METHOD_INVOCATION_HANDLED;
+    }
+
+  if (strlen (arg_repo_path) > 0)
+    {
+      if (!g_file_query_exists (repo_file, NULL))
+        {
+          g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS,
+                                                 "Path does not exist");
+          return G_DBUS_METHOD_INVOCATION_HANDLED;
+        }
+
       src_dir = g_path_get_dirname (arg_repo_path);
       ongoing_pull = take_ongoing_pull_by_dir (src_dir);
       if (ongoing_pull != NULL)
@@ -452,19 +468,6 @@ handle_deploy (FlatpakSystemHelper   *object,
            * from here on, should always cleanup the cache-dir and not preserve it to be re-used. */
           ongoing_pull->preserve_pull = FALSE;
         }
-
-  if ((arg_flags & ~FLATPAK_HELPER_DEPLOY_FLAGS_ALL) != 0)
-    {
-      g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS,
-                                             "Unsupported flags enabled: 0x%x", (arg_flags & ~FLATPAK_HELPER_DEPLOY_FLAGS_ALL));
-      return G_DBUS_METHOD_INVOCATION_HANDLED;
-    }
-
-  if (!g_file_query_exists (repo_file, NULL))
-    {
-      g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS,
-                                             "Path does not exist");
-      return G_DBUS_METHOD_INVOCATION_HANDLED;
     }
 
   ref = flatpak_decomposed_new_from_ref (arg_ref, &error);

--- End Message ---
--- Begin Message ---
Hi Simon,

On 31-07-2021 13:03, Simon McVittie wrote:
> Uploaded (sorry for the delay, I've been ill) and built on all release
> architectures.

Unblocked. If nothing unexpected happens, it should be in time.

Paul

Attachment: OpenPGP_signature
Description: OpenPGP digital signature


--- End Message ---

Reply to: