parent
89caba7d1b
commit
5abd8c467e
1
.gitignore
vendored
1
.gitignore
vendored
@ -97,3 +97,4 @@
|
|||||||
/flatpak-1.10.7.tar.xz
|
/flatpak-1.10.7.tar.xz
|
||||||
/flatpak-1.12.4.tar.xz
|
/flatpak-1.12.4.tar.xz
|
||||||
/flatpak-1.12.5.tar.xz
|
/flatpak-1.12.5.tar.xz
|
||||||
|
/flatpak-1.12.7.tar.xz
|
||||||
|
@ -1,476 +0,0 @@
|
|||||||
From 6c50142ee524fc8c82e565b09f1e9223a41fb599 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Simon McVittie <smcv@collabora.com>
|
|
||||||
Date: Tue, 8 Feb 2022 14:04:50 +0000
|
|
||||||
Subject: [PATCH 1/7] dir: Pass cancellable through to remote EnsureRepo call
|
|
||||||
|
|
||||||
Signed-off-by: Simon McVittie <smcv@collabora.com>
|
|
||||||
(cherry picked from commit 15c1d4f8cb8bf8266b454a9789fe589c645a5480)
|
|
||||||
---
|
|
||||||
common/flatpak-dir.c | 4 ++--
|
|
||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/common/flatpak-dir.c b/common/flatpak-dir.c
|
|
||||||
index 965e1ca5376b..bc348b51a7e6 100644
|
|
||||||
--- a/common/flatpak-dir.c
|
|
||||||
+++ b/common/flatpak-dir.c
|
|
||||||
@@ -3943,7 +3943,7 @@ _flatpak_dir_ensure_repo (FlatpakDir *self,
|
|
||||||
if (!flatpak_dir_system_helper_call_ensure_repo (self,
|
|
||||||
FLATPAK_HELPER_ENSURE_REPO_FLAGS_NONE,
|
|
||||||
installation ? installation : "",
|
|
||||||
- NULL, &local_error))
|
|
||||||
+ cancellable, &local_error))
|
|
||||||
{
|
|
||||||
if (allow_empty)
|
|
||||||
return TRUE;
|
|
||||||
@@ -4087,7 +4087,7 @@ _flatpak_dir_ensure_repo (FlatpakDir *self,
|
|
||||||
if (!flatpak_dir_system_helper_call_ensure_repo (self,
|
|
||||||
FLATPAK_HELPER_ENSURE_REPO_FLAGS_NONE,
|
|
||||||
installation ? installation : "",
|
|
||||||
- NULL, &my_error))
|
|
||||||
+ cancellable, &my_error))
|
|
||||||
{
|
|
||||||
if (allow_empty)
|
|
||||||
return TRUE;
|
|
||||||
--
|
|
||||||
2.34.1
|
|
||||||
|
|
||||||
|
|
||||||
From 03f16b300e662afd324d3afab04a95186bf31e07 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Simon McVittie <smcv@collabora.com>
|
|
||||||
Date: Tue, 8 Feb 2022 14:09:05 +0000
|
|
||||||
Subject: [PATCH 2/7] dir: Factor out common code to call EnsureRepo on system
|
|
||||||
helper
|
|
||||||
|
|
||||||
Signed-off-by: Simon McVittie <smcv@collabora.com>
|
|
||||||
(cherry picked from commit 951b111d2627c6f62bfb5e20d86974beadcf2587)
|
|
||||||
---
|
|
||||||
common/flatpak-dir.c | 54 +++++++++++++++++++++++---------------------
|
|
||||||
1 file changed, 28 insertions(+), 26 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/common/flatpak-dir.c b/common/flatpak-dir.c
|
|
||||||
index bc348b51a7e6..8f7b7f011048 100644
|
|
||||||
--- a/common/flatpak-dir.c
|
|
||||||
+++ b/common/flatpak-dir.c
|
|
||||||
@@ -3918,6 +3918,30 @@ apply_new_flatpakrepo (const char *remote_name,
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
+static gboolean
|
|
||||||
+system_helper_maybe_ensure_repo (FlatpakDir *self,
|
|
||||||
+ gboolean allow_empty,
|
|
||||||
+ GCancellable *cancellable,
|
|
||||||
+ GError **error)
|
|
||||||
+{
|
|
||||||
+ g_autoptr(GError) local_error = NULL;
|
|
||||||
+ const char *installation = flatpak_dir_get_id (self);
|
|
||||||
+
|
|
||||||
+ if (!flatpak_dir_system_helper_call_ensure_repo (self,
|
|
||||||
+ FLATPAK_HELPER_ENSURE_REPO_FLAGS_NONE,
|
|
||||||
+ installation ? installation : "",
|
|
||||||
+ cancellable, &local_error))
|
|
||||||
+ {
|
|
||||||
+ if (allow_empty)
|
|
||||||
+ return TRUE;
|
|
||||||
+
|
|
||||||
+ g_propagate_error (error, g_steal_pointer (&local_error));
|
|
||||||
+ return FALSE;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ return TRUE;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
static gboolean
|
|
||||||
_flatpak_dir_ensure_repo (FlatpakDir *self,
|
|
||||||
gboolean allow_empty,
|
|
||||||
@@ -3937,20 +3961,8 @@ _flatpak_dir_ensure_repo (FlatpakDir *self,
|
|
||||||
{
|
|
||||||
if (flatpak_dir_use_system_helper (self, NULL))
|
|
||||||
{
|
|
||||||
- g_autoptr(GError) local_error = NULL;
|
|
||||||
- const char *installation = flatpak_dir_get_id (self);
|
|
||||||
-
|
|
||||||
- if (!flatpak_dir_system_helper_call_ensure_repo (self,
|
|
||||||
- FLATPAK_HELPER_ENSURE_REPO_FLAGS_NONE,
|
|
||||||
- installation ? installation : "",
|
|
||||||
- cancellable, &local_error))
|
|
||||||
- {
|
|
||||||
- if (allow_empty)
|
|
||||||
- return TRUE;
|
|
||||||
-
|
|
||||||
- g_propagate_error (error, g_steal_pointer (&local_error));
|
|
||||||
- return FALSE;
|
|
||||||
- }
|
|
||||||
+ if (!system_helper_maybe_ensure_repo (self, allow_empty, cancellable, error))
|
|
||||||
+ return FALSE;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
@@ -4083,18 +4095,8 @@ _flatpak_dir_ensure_repo (FlatpakDir *self,
|
|
||||||
{
|
|
||||||
if (flatpak_dir_use_system_helper (self, NULL))
|
|
||||||
{
|
|
||||||
- const char *installation = flatpak_dir_get_id (self);
|
|
||||||
- if (!flatpak_dir_system_helper_call_ensure_repo (self,
|
|
||||||
- FLATPAK_HELPER_ENSURE_REPO_FLAGS_NONE,
|
|
||||||
- installation ? installation : "",
|
|
||||||
- cancellable, &my_error))
|
|
||||||
- {
|
|
||||||
- if (allow_empty)
|
|
||||||
- return TRUE;
|
|
||||||
-
|
|
||||||
- g_propagate_error (error, g_steal_pointer (&my_error));
|
|
||||||
- return FALSE;
|
|
||||||
- }
|
|
||||||
+ if (!system_helper_maybe_ensure_repo (self, allow_empty, cancellable, error))
|
|
||||||
+ return FALSE;
|
|
||||||
|
|
||||||
if (!ostree_repo_reload_config (repo, cancellable, error))
|
|
||||||
return FALSE;
|
|
||||||
--
|
|
||||||
2.34.1
|
|
||||||
|
|
||||||
|
|
||||||
From 46d2abd78561c9a1686896292a19280d09deaf77 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Simon McVittie <smcv@collabora.com>
|
|
||||||
Date: Tue, 8 Feb 2022 14:12:01 +0000
|
|
||||||
Subject: [PATCH 3/7] dir: Factor out function to open the libostree repository
|
|
||||||
|
|
||||||
I'm about to add another caller for this.
|
|
||||||
|
|
||||||
Signed-off-by: Simon McVittie <smcv@collabora.com>
|
|
||||||
(cherry picked from commit 8537b3412ad70479b16ad2c880c73ba37daf80d0)
|
|
||||||
---
|
|
||||||
common/flatpak-dir.c | 27 +++++++++++++++++++--------
|
|
||||||
1 file changed, 19 insertions(+), 8 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/common/flatpak-dir.c b/common/flatpak-dir.c
|
|
||||||
index 8f7b7f011048..f44241c40290 100644
|
|
||||||
--- a/common/flatpak-dir.c
|
|
||||||
+++ b/common/flatpak-dir.c
|
|
||||||
@@ -3942,6 +3942,23 @@ system_helper_maybe_ensure_repo (FlatpakDir *self,
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
+static gboolean
|
|
||||||
+ensure_repo_opened (OstreeRepo *repo,
|
|
||||||
+ GCancellable *cancellable,
|
|
||||||
+ GError **error)
|
|
||||||
+{
|
|
||||||
+ if (!ostree_repo_open (repo, cancellable, error))
|
|
||||||
+ {
|
|
||||||
+ g_autofree char *repopath = NULL;
|
|
||||||
+
|
|
||||||
+ repopath = g_file_get_path (ostree_repo_get_path (repo));
|
|
||||||
+ g_prefix_error (error, _("While opening repository %s: "), repopath);
|
|
||||||
+ return FALSE;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ return TRUE;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
static gboolean
|
|
||||||
_flatpak_dir_ensure_repo (FlatpakDir *self,
|
|
||||||
gboolean allow_empty,
|
|
||||||
@@ -4008,14 +4025,8 @@ _flatpak_dir_ensure_repo (FlatpakDir *self,
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
- if (!ostree_repo_open (repo, cancellable, error))
|
|
||||||
- {
|
|
||||||
- g_autofree char *repopath = NULL;
|
|
||||||
-
|
|
||||||
- repopath = g_file_get_path (repodir);
|
|
||||||
- g_prefix_error (error, _("While opening repository %s: "), repopath);
|
|
||||||
- return FALSE;
|
|
||||||
- }
|
|
||||||
+ if (!ensure_repo_opened (repo, cancellable, error))
|
|
||||||
+ return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* In the system-helper case we're directly using the global repo, and we can't write any
|
|
||||||
--
|
|
||||||
2.34.1
|
|
||||||
|
|
||||||
|
|
||||||
From 4c831cad673e3271aafcb03da717515aec197636 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Simon McVittie <smcv@collabora.com>
|
|
||||||
Date: Tue, 8 Feb 2022 16:39:06 +0000
|
|
||||||
Subject: [PATCH 4/7] dir: Use system helper to create system repo if necessary
|
|
||||||
|
|
||||||
Previously, if /var/lib/flatpak didn't exist then we would use the
|
|
||||||
system helper to create and populate it, but if it existed and was empty,
|
|
||||||
we could only populate it if we had privileges. This led to errors from
|
|
||||||
libostree:
|
|
||||||
|
|
||||||
Creating repo: mkdirat: Permission denied
|
|
||||||
|
|
||||||
The EnsureRepo method call is allowed by default for active local users,
|
|
||||||
so do this even if allow_empty is true: this will incorporate
|
|
||||||
/etc/flatpak/remotes.d into the repository, whether it is newly-created
|
|
||||||
or not. This makes a `flatpak search` work immediately, without having
|
|
||||||
to fetch metadata explicitly.
|
|
||||||
|
|
||||||
Signed-off-by: Simon McVittie <smcv@collabora.com>
|
|
||||||
(cherry picked from commit 2489b915efae3a78ca7040c39161f8c304e4c7a5)
|
|
||||||
---
|
|
||||||
common/flatpak-dir.c | 35 +++++++++++++++++++++++------------
|
|
||||||
1 file changed, 23 insertions(+), 12 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/common/flatpak-dir.c b/common/flatpak-dir.c
|
|
||||||
index f44241c40290..aef3a75392dc 100644
|
|
||||||
--- a/common/flatpak-dir.c
|
|
||||||
+++ b/common/flatpak-dir.c
|
|
||||||
@@ -4005,22 +4005,33 @@ _flatpak_dir_ensure_repo (FlatpakDir *self,
|
|
||||||
that still user bare-user */
|
|
||||||
OstreeRepoMode mode = OSTREE_REPO_MODE_BARE_USER_ONLY;
|
|
||||||
|
|
||||||
- if (!ostree_repo_create (repo, mode, cancellable, &my_error))
|
|
||||||
+ if (flatpak_dir_use_system_helper (self, NULL))
|
|
||||||
{
|
|
||||||
- flatpak_rm_rf (repodir, cancellable, NULL);
|
|
||||||
-
|
|
||||||
- if (allow_empty)
|
|
||||||
- return TRUE;
|
|
||||||
+ if (!system_helper_maybe_ensure_repo (self, allow_empty, cancellable, error))
|
|
||||||
+ return FALSE;
|
|
||||||
|
|
||||||
- g_propagate_error (error, g_steal_pointer (&my_error));
|
|
||||||
- return FALSE;
|
|
||||||
+ if (!ensure_repo_opened (repo, cancellable, error))
|
|
||||||
+ return FALSE;
|
|
||||||
}
|
|
||||||
-
|
|
||||||
- /* Create .changed file early to avoid polling non-existing file in monitor */
|
|
||||||
- if (!flatpak_dir_mark_changed (self, &my_error))
|
|
||||||
+ else
|
|
||||||
{
|
|
||||||
- g_warning ("Error marking directory as changed: %s", my_error->message);
|
|
||||||
- g_clear_error (&my_error);
|
|
||||||
+ if (!ostree_repo_create (repo, mode, cancellable, &my_error))
|
|
||||||
+ {
|
|
||||||
+ flatpak_rm_rf (repodir, cancellable, NULL);
|
|
||||||
+
|
|
||||||
+ if (allow_empty)
|
|
||||||
+ return TRUE;
|
|
||||||
+
|
|
||||||
+ g_propagate_error (error, g_steal_pointer (&my_error));
|
|
||||||
+ return FALSE;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* Create .changed file early to avoid polling non-existing file in monitor */
|
|
||||||
+ if (!flatpak_dir_mark_changed (self, &my_error))
|
|
||||||
+ {
|
|
||||||
+ g_warning ("Error marking directory as changed: %s", my_error->message);
|
|
||||||
+ g_clear_error (&my_error);
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
--
|
|
||||||
2.34.1
|
|
||||||
|
|
||||||
|
|
||||||
From 30b7778dc412143a8f06052298f63bdeb7bd5186 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Simon McVittie <smcv@collabora.com>
|
|
||||||
Date: Tue, 8 Feb 2022 16:11:31 +0000
|
|
||||||
Subject: [PATCH 5/7] dir: Avoid polkit prompts for EnsureRepo in most CLI
|
|
||||||
commands
|
|
||||||
|
|
||||||
If we are running a CLI command in the background, then EnsureRepo
|
|
||||||
might require authorization. Silently skip it if allow_empty was true,
|
|
||||||
as it is for commands that iterate through all repositories.
|
|
||||||
|
|
||||||
Signed-off-by: Simon McVittie <smcv@collabora.com>
|
|
||||||
(cherry picked from commit 48f40d45045071c0e073061b72a1c32fb0562c3f)
|
|
||||||
---
|
|
||||||
common/flatpak-dir.c | 14 ++++++++++----
|
|
||||||
1 file changed, 10 insertions(+), 4 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/common/flatpak-dir.c b/common/flatpak-dir.c
|
|
||||||
index aef3a75392dc..597f8906b1ce 100644
|
|
||||||
--- a/common/flatpak-dir.c
|
|
||||||
+++ b/common/flatpak-dir.c
|
|
||||||
@@ -3920,6 +3920,7 @@ apply_new_flatpakrepo (const char *remote_name,
|
|
||||||
|
|
||||||
static gboolean
|
|
||||||
system_helper_maybe_ensure_repo (FlatpakDir *self,
|
|
||||||
+ FlatpakHelperEnsureRepoFlags flags,
|
|
||||||
gboolean allow_empty,
|
|
||||||
GCancellable *cancellable,
|
|
||||||
GError **error)
|
|
||||||
@@ -3928,7 +3929,7 @@ system_helper_maybe_ensure_repo (FlatpakDir *self,
|
|
||||||
const char *installation = flatpak_dir_get_id (self);
|
|
||||||
|
|
||||||
if (!flatpak_dir_system_helper_call_ensure_repo (self,
|
|
||||||
- FLATPAK_HELPER_ENSURE_REPO_FLAGS_NONE,
|
|
||||||
+ flags,
|
|
||||||
installation ? installation : "",
|
|
||||||
cancellable, &local_error))
|
|
||||||
{
|
|
||||||
@@ -3970,15 +3971,20 @@ _flatpak_dir_ensure_repo (FlatpakDir *self,
|
|
||||||
g_autoptr(GError) my_error = NULL;
|
|
||||||
g_autoptr(GFile) cache_dir = NULL;
|
|
||||||
g_autoptr(GHashTable) flatpakrepos = NULL;
|
|
||||||
+ FlatpakHelperEnsureRepoFlags ensure_flags = FLATPAK_HELPER_ENSURE_REPO_FLAGS_NONE;
|
|
||||||
|
|
||||||
if (self->repo != NULL)
|
|
||||||
return TRUE;
|
|
||||||
|
|
||||||
+ /* Don't trigger polkit prompts if we are just doing this opportunistically */
|
|
||||||
+ if (allow_empty)
|
|
||||||
+ ensure_flags |= FLATPAK_HELPER_ENSURE_REPO_FLAGS_NO_INTERACTION;
|
|
||||||
+
|
|
||||||
if (!g_file_query_exists (self->basedir, cancellable))
|
|
||||||
{
|
|
||||||
if (flatpak_dir_use_system_helper (self, NULL))
|
|
||||||
{
|
|
||||||
- if (!system_helper_maybe_ensure_repo (self, allow_empty, cancellable, error))
|
|
||||||
+ if (!system_helper_maybe_ensure_repo (self, ensure_flags, allow_empty, cancellable, error))
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
@@ -4007,7 +4013,7 @@ _flatpak_dir_ensure_repo (FlatpakDir *self,
|
|
||||||
|
|
||||||
if (flatpak_dir_use_system_helper (self, NULL))
|
|
||||||
{
|
|
||||||
- if (!system_helper_maybe_ensure_repo (self, allow_empty, cancellable, error))
|
|
||||||
+ if (!system_helper_maybe_ensure_repo (self, ensure_flags, allow_empty, cancellable, error))
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
if (!ensure_repo_opened (repo, cancellable, error))
|
|
||||||
@@ -4117,7 +4123,7 @@ _flatpak_dir_ensure_repo (FlatpakDir *self,
|
|
||||||
{
|
|
||||||
if (flatpak_dir_use_system_helper (self, NULL))
|
|
||||||
{
|
|
||||||
- if (!system_helper_maybe_ensure_repo (self, allow_empty, cancellable, error))
|
|
||||||
+ if (!system_helper_maybe_ensure_repo (self, ensure_flags, allow_empty, cancellable, error))
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
if (!ostree_repo_reload_config (repo, cancellable, error))
|
|
||||||
--
|
|
||||||
2.34.1
|
|
||||||
|
|
||||||
|
|
||||||
From f2747123d890f836cc7f1c5c88edd67b8095f72b Mon Sep 17 00:00:00 2001
|
|
||||||
From: Simon McVittie <smcv@collabora.com>
|
|
||||||
Date: Tue, 8 Feb 2022 16:40:49 +0000
|
|
||||||
Subject: [PATCH 6/7] dir: Include repo path in error message if unable to
|
|
||||||
create it
|
|
||||||
|
|
||||||
libostree makes heavy use of fd-based I/O, which has the disadvantage
|
|
||||||
that it is rarely obvious what path an error message is referring to.
|
|
||||||
|
|
||||||
Signed-off-by: Simon McVittie <smcv@collabora.com>
|
|
||||||
(cherry picked from commit d106384446ae57c78a76f4a0a0360797df62c31f)
|
|
||||||
---
|
|
||||||
common/flatpak-dir.c | 14 +++++++++++++-
|
|
||||||
1 file changed, 13 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/common/flatpak-dir.c b/common/flatpak-dir.c
|
|
||||||
index 597f8906b1ce..f6a43aafa612 100644
|
|
||||||
--- a/common/flatpak-dir.c
|
|
||||||
+++ b/common/flatpak-dir.c
|
|
||||||
@@ -4023,12 +4023,24 @@ _flatpak_dir_ensure_repo (FlatpakDir *self,
|
|
||||||
{
|
|
||||||
if (!ostree_repo_create (repo, mode, cancellable, &my_error))
|
|
||||||
{
|
|
||||||
+ const char *repo_path = flatpak_file_get_path_cached (repodir);
|
|
||||||
+
|
|
||||||
flatpak_rm_rf (repodir, cancellable, NULL);
|
|
||||||
|
|
||||||
if (allow_empty)
|
|
||||||
return TRUE;
|
|
||||||
|
|
||||||
- g_propagate_error (error, g_steal_pointer (&my_error));
|
|
||||||
+ /* As of 2022, the error message from libostree is not the most helpful:
|
|
||||||
+ * Creating repo: mkdirat: Permission denied
|
|
||||||
+ * If the repository path is in the error message, assume this
|
|
||||||
+ * has been fixed. If not, add it. */
|
|
||||||
+ if (strstr (my_error->message, repo_path) != NULL)
|
|
||||||
+ g_propagate_error (error, g_steal_pointer (&my_error));
|
|
||||||
+ else
|
|
||||||
+ g_set_error (error, my_error->domain, my_error->code,
|
|
||||||
+ "Unable to create repository at %s (%s)",
|
|
||||||
+ repo_path, my_error->message);
|
|
||||||
+
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
--
|
|
||||||
2.34.1
|
|
||||||
|
|
||||||
|
|
||||||
From 4772e9935f5a2b2178efa3005027b19e997ec8e5 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Simon McVittie <smcv@collabora.com>
|
|
||||||
Date: Tue, 8 Feb 2022 14:47:24 +0000
|
|
||||||
Subject: [PATCH 7/7] app: Make ALL_DIRS and STANDARD_DIRS imply OPTIONAL_REPO
|
|
||||||
|
|
||||||
It is already the case that when we are using ALL_DIRS, we always
|
|
||||||
combine it with OPTIONAL_REPO, meaning no need to populate empty
|
|
||||||
installations. ALL_DIRS is used for commands that iterate through all
|
|
||||||
known installations to enumerate apps/runtimes, such as `flatpak run`
|
|
||||||
and `flatpak list`; for these commands, it's reasonable to say that
|
|
||||||
if the installation does not have a libostree repository, then that's
|
|
||||||
equivalent to it having a libostree repository with no apps and no
|
|
||||||
runtimes. Make this happen automatically if forgotten.
|
|
||||||
|
|
||||||
For STANDARD_DIRS, we were inconsistent about this: `flatpak remote-list`
|
|
||||||
had OPTIONAL_REPO, but the other commands did not.
|
|
||||||
STANDARD_DIRS is used for `flatpak create-usb`, and for all the commands
|
|
||||||
that manipulate remotes.
|
|
||||||
|
|
||||||
For the commands that manipulate remotes, it seems reasonable to say
|
|
||||||
that if an installation has no libostree repository and we are unable
|
|
||||||
to create one, then that's equivalent to an installation with a
|
|
||||||
libostree repository but no remotes.
|
|
||||||
|
|
||||||
Similarly, for create-usb, an installation where we are unable to create
|
|
||||||
a libostree repository seems like it should be equivalent to an
|
|
||||||
installation whose libostree repository does not contain any of the
|
|
||||||
refs we are interested in.
|
|
||||||
|
|
||||||
Resolves: https://github.com/flatpak/flatpak/issues/4111
|
|
||||||
Signed-off-by: Simon McVittie <smcv@collabora.com>
|
|
||||||
(cherry picked from commit 3f144d1e02fa060680eba18a9dd81969682a3170)
|
|
||||||
---
|
|
||||||
app/flatpak-builtins.h | 6 ++++--
|
|
||||||
app/flatpak-main.c | 4 +++-
|
|
||||||
2 files changed, 7 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/app/flatpak-builtins.h b/app/flatpak-builtins.h
|
|
||||||
index ec1ac4a4abdb..d925c8cd389e 100644
|
|
||||||
--- a/app/flatpak-builtins.h
|
|
||||||
+++ b/app/flatpak-builtins.h
|
|
||||||
@@ -39,10 +39,12 @@ G_BEGIN_DECLS
|
|
||||||
* @FLATPAK_BUILTIN_FLAG_ONE_DIR: Allow a single --user/--system/--installation option
|
|
||||||
* and return a single dir. If no option is specified, default to --system
|
|
||||||
* @FLATPAK_BUILTIN_FLAG_STANDARD_DIRS: Allow repeated use of --user/--system/--installation
|
|
||||||
- * and return multiple dirs. If no option is specified return system(default)+user
|
|
||||||
+ * and return multiple dirs. If no option is specified return system(default)+user.
|
|
||||||
+ * Implies %FLATPAK_BUILTIN_FLAG_OPTIONAL_REPO.
|
|
||||||
* @FLATPAK_BUILTIN_FLAG_ALL_DIRS: Allow repeated use of --user/--system/--installation
|
|
||||||
* and return multiple dirs. If no option is specified, return all installations,
|
|
||||||
- * starting with system(default)+user
|
|
||||||
+ * starting with system(default)+user.
|
|
||||||
+ * Implies %FLATPAK_BUILTIN_FLAG_OPTIONAL_REPO.
|
|
||||||
*
|
|
||||||
* Flags affecting the behavior of flatpak_option_context_parse().
|
|
||||||
*
|
|
||||||
diff --git a/app/flatpak-main.c b/app/flatpak-main.c
|
|
||||||
index e79df52eff25..4b4d65673645 100644
|
|
||||||
--- a/app/flatpak-main.c
|
|
||||||
+++ b/app/flatpak-main.c
|
|
||||||
@@ -460,7 +460,9 @@ flatpak_option_context_parse (GOptionContext *context,
|
|
||||||
{
|
|
||||||
FlatpakDir *dir = g_ptr_array_index (dirs, i);
|
|
||||||
|
|
||||||
- if (flags & FLATPAK_BUILTIN_FLAG_OPTIONAL_REPO)
|
|
||||||
+ if (flags & (FLATPAK_BUILTIN_FLAG_OPTIONAL_REPO |
|
|
||||||
+ FLATPAK_BUILTIN_FLAG_ALL_DIRS |
|
|
||||||
+ FLATPAK_BUILTIN_FLAG_STANDARD_DIRS))
|
|
||||||
{
|
|
||||||
if (!flatpak_dir_maybe_ensure_repo (dir, cancellable, error))
|
|
||||||
return FALSE;
|
|
||||||
--
|
|
||||||
2.34.1
|
|
||||||
|
|
12
flatpak.spec
12
flatpak.spec
@ -2,8 +2,8 @@
|
|||||||
%global ostree_version 2020.8
|
%global ostree_version 2020.8
|
||||||
|
|
||||||
Name: flatpak
|
Name: flatpak
|
||||||
Version: 1.12.5
|
Version: 1.12.7
|
||||||
Release: 2%{?dist}
|
Release: 1%{?dist}
|
||||||
Summary: Application deployment framework for desktop apps
|
Summary: Application deployment framework for desktop apps
|
||||||
|
|
||||||
License: LGPLv2+
|
License: LGPLv2+
|
||||||
@ -18,10 +18,6 @@ Source1: flatpak-add-fedora-repos.service
|
|||||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1935508
|
# https://bugzilla.redhat.com/show_bug.cgi?id=1935508
|
||||||
Patch0: flatpak-dir-Use-SHA256-not-SHA1-to-name-the-cache-for-a-filt.patch
|
Patch0: flatpak-dir-Use-SHA256-not-SHA1-to-name-the-cache-for-a-filt.patch
|
||||||
|
|
||||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1981776
|
|
||||||
# https://bugzilla.redhat.com/show_bug.cgi?id=2062806
|
|
||||||
Patch1: flatpak-empty-var-lib-flatpak.patch
|
|
||||||
|
|
||||||
BuildRequires: pkgconfig(appstream-glib)
|
BuildRequires: pkgconfig(appstream-glib)
|
||||||
BuildRequires: pkgconfig(dconf)
|
BuildRequires: pkgconfig(dconf)
|
||||||
BuildRequires: pkgconfig(fuse)
|
BuildRequires: pkgconfig(fuse)
|
||||||
@ -279,6 +275,10 @@ fi
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Mar 17 2022 Debarshi Ray <rishi@fedoraproject.org> - 1.12.7-1
|
||||||
|
- Update to 1.12.7
|
||||||
|
Resolves: #2058633
|
||||||
|
|
||||||
* Mon Mar 07 2022 Debarshi Ray <rishi@fedoraproject.org> - 1.12.5-2
|
* Mon Mar 07 2022 Debarshi Ray <rishi@fedoraproject.org> - 1.12.5-2
|
||||||
- Cope better with /var/lib/flatpak existing but being empty
|
- Cope better with /var/lib/flatpak existing but being empty
|
||||||
Resolves: #2062806
|
Resolves: #2062806
|
||||||
|
2
sources
2
sources
@ -1 +1 @@
|
|||||||
SHA512 (flatpak-1.12.5.tar.xz) = 3ac1832a3bca2544a685ba741fcb0762c615aa37600c5be6b4148ea3897800b6c2a39b81f389036896e1fe10d8fac903154917a2ae6e50b4a27a648c95acb46f
|
SHA512 (flatpak-1.12.7.tar.xz) = 425f9d330c649de1079f3286cb6ad8cf7b6e5838921effa4fd6f51020b9bf7991ded9071566ec7032b9868ef3f7e14d1fb7c2be96f903e3af23a075592b78f50
|
||||||
|
Loading…
Reference in New Issue
Block a user