Don't set no_interaction for --assumeyes
Resolves: RHEL-11901
This commit is contained in:
parent
e5e776b9b8
commit
b695fcb246
175
cli-dont-set-no-interaction-for-assumeyes.patch
Normal file
175
cli-dont-set-no-interaction-for-assumeyes.patch
Normal file
@ -0,0 +1,175 @@
|
||||
From dccb913c6d7b3c5694af3a5e617e671b9a4f4339 Mon Sep 17 00:00:00 2001
|
||||
From: Luigi Pavan <lpavan@redhat.com>
|
||||
Date: Thu, 30 Jul 2026 12:58:43 +0200
|
||||
Subject: [PATCH] cli: Don't set no_interaction for --assumeyes
|
||||
|
||||
Backport of commit 0717cd168582473418300eee8baaae988e9c0579.
|
||||
|
||||
Adapted for 1.12.9: different prompt text in end_of_lifed_with_rebase
|
||||
(`"Replace it with %s?"` instead of `"Replace?"`).
|
||||
---
|
||||
app/flatpak-cli-transaction.c | 24 ++++++++++--------------
|
||||
app/flatpak-cli-transaction.h | 2 +-
|
||||
tests/test-auth.sh | 19 ++++++++++++++++++-
|
||||
3 files changed, 29 insertions(+), 16 deletions(-)
|
||||
|
||||
diff --git a/app/flatpak-cli-transaction.c b/app/flatpak-cli-transaction.c
|
||||
index b8c6776..a8c4693 100644
|
||||
--- a/app/flatpak-cli-transaction.c
|
||||
+++ b/app/flatpak-cli-transaction.c
|
||||
@@ -34,7 +34,7 @@ struct _FlatpakCliTransaction
|
||||
{
|
||||
FlatpakTransaction parent;
|
||||
|
||||
- gboolean disable_interaction;
|
||||
+ gboolean assume_yes;
|
||||
gboolean stop_on_first_error;
|
||||
gboolean non_default_arch;
|
||||
GError *first_operation_error;
|
||||
@@ -86,7 +86,7 @@ choose_remote_for_ref (FlatpakTransaction *transaction,
|
||||
|
||||
self->did_interaction = TRUE;
|
||||
|
||||
- if (self->disable_interaction)
|
||||
+ if (self->assume_yes)
|
||||
{
|
||||
g_print (_("Required runtime for %s (%s) found in remote %s\n"),
|
||||
pref, runtime_ref, remotes[0]);
|
||||
@@ -122,7 +122,7 @@ add_new_remote (FlatpakTransaction *transaction,
|
||||
|
||||
self->did_interaction = TRUE;
|
||||
|
||||
- if (self->disable_interaction)
|
||||
+ if (self->assume_yes)
|
||||
{
|
||||
g_print (_("Configuring %s as new remote '%s'\n"), url, remote_name);
|
||||
return TRUE;
|
||||
@@ -168,7 +168,7 @@ install_authenticator (FlatpakTransaction *old_transaction,
|
||||
|
||||
old_cli->did_interaction = TRUE;
|
||||
|
||||
- transaction2 = flatpak_cli_transaction_new (dir, old_cli->disable_interaction, TRUE, FALSE, &local_error);
|
||||
+ transaction2 = flatpak_cli_transaction_new (dir, old_cli->assume_yes, TRUE, FALSE, &local_error);
|
||||
if (transaction2 == NULL)
|
||||
{
|
||||
g_printerr ("Unable to install authenticator: %s\n", local_error->message);
|
||||
@@ -570,7 +570,7 @@ webflow_start (FlatpakTransaction *transaction,
|
||||
|
||||
self->did_interaction = TRUE;
|
||||
|
||||
- if (!self->disable_interaction)
|
||||
+ if (!self->assume_yes)
|
||||
{
|
||||
g_print (_("Authentication required for remote '%s'\n"), remote);
|
||||
if (!flatpak_yes_no_prompt (TRUE, _("Open browser?")))
|
||||
@@ -621,9 +621,6 @@ basic_auth_start (FlatpakTransaction *transaction,
|
||||
FlatpakCliTransaction *self = FLATPAK_CLI_TRANSACTION (transaction);
|
||||
char *user, *password, *previous_error = NULL;
|
||||
|
||||
- if (self->disable_interaction)
|
||||
- return FALSE;
|
||||
-
|
||||
self->did_interaction = TRUE;
|
||||
|
||||
if (g_variant_lookup (options, "previous-error", "&s", &previous_error))
|
||||
@@ -748,10 +745,10 @@ end_of_lifed_with_rebase (FlatpakTransaction *transaction,
|
||||
|
||||
if (rebased_to_ref && remote)
|
||||
{
|
||||
- if (self->disable_interaction ||
|
||||
+ if (self->assume_yes ||
|
||||
flatpak_yes_no_prompt (TRUE, _("Replace it with %s?"), rebased_to_ref))
|
||||
{
|
||||
- if (self->disable_interaction)
|
||||
+ if (self->assume_yes)
|
||||
g_print (_("Updating to rebased version\n"));
|
||||
|
||||
action = EOL_REBASE;
|
||||
@@ -1233,7 +1230,7 @@ transaction_ready_pre_auth (FlatpakTransaction *transaction)
|
||||
|
||||
g_print ("\n");
|
||||
|
||||
- if (!self->disable_interaction)
|
||||
+ if (!self->assume_yes)
|
||||
{
|
||||
g_autoptr(FlatpakInstallation) installation = flatpak_transaction_get_installation (transaction);
|
||||
const char *name;
|
||||
@@ -1368,7 +1365,7 @@ flatpak_cli_transaction_class_init (FlatpakCliTransactionClass *klass)
|
||||
|
||||
FlatpakTransaction *
|
||||
flatpak_cli_transaction_new (FlatpakDir *dir,
|
||||
- gboolean disable_interaction,
|
||||
+ gboolean assume_yes,
|
||||
gboolean stop_on_first_error,
|
||||
gboolean non_default_arch,
|
||||
GError **error)
|
||||
@@ -1387,11 +1384,10 @@ flatpak_cli_transaction_new (FlatpakDir *dir,
|
||||
if (self == NULL)
|
||||
return NULL;
|
||||
|
||||
- self->disable_interaction = disable_interaction;
|
||||
+ self->assume_yes = assume_yes;
|
||||
self->stop_on_first_error = stop_on_first_error;
|
||||
self->non_default_arch = non_default_arch;
|
||||
|
||||
- flatpak_transaction_set_no_interaction (FLATPAK_TRANSACTION (self), disable_interaction);
|
||||
flatpak_transaction_add_default_dependency_sources (FLATPAK_TRANSACTION (self));
|
||||
|
||||
return (FlatpakTransaction *) g_steal_pointer (&self);
|
||||
diff --git a/app/flatpak-cli-transaction.h b/app/flatpak-cli-transaction.h
|
||||
index 4328185..4175f9b 100644
|
||||
--- a/app/flatpak-cli-transaction.h
|
||||
+++ b/app/flatpak-cli-transaction.h
|
||||
@@ -28,7 +28,7 @@
|
||||
G_DECLARE_FINAL_TYPE (FlatpakCliTransaction, flatpak_cli_transaction, FLATPAK, CLI_TRANSACTION, FlatpakTransaction)
|
||||
|
||||
FlatpakTransaction * flatpak_cli_transaction_new (FlatpakDir * dir,
|
||||
- gboolean disable_interaction,
|
||||
+ gboolean assume_yes,
|
||||
gboolean stop_on_first_error,
|
||||
gboolean non_default_arch,
|
||||
GError **error);
|
||||
diff --git a/tests/test-auth.sh b/tests/test-auth.sh
|
||||
index 78ff48b..99d8705 100755
|
||||
--- a/tests/test-auth.sh
|
||||
+++ b/tests/test-auth.sh
|
||||
@@ -22,7 +22,7 @@ set -euo pipefail
|
||||
. $(dirname $0)/libtest.sh
|
||||
|
||||
|
||||
-echo "1..3"
|
||||
+echo "1..4"
|
||||
|
||||
setup_repo
|
||||
|
||||
@@ -90,6 +90,8 @@ assert_file_has_content ${XDG_RUNTIME_DIR}/request "^uri: http://127.0.0.1:${por
|
||||
if [ x${USE_COLLECTIONS_IN_CLIENT-} == xyes ] ; then
|
||||
assert_file_has_content ${XDG_RUNTIME_DIR}/request "^options: .*'collection-id': <'org.test.Collection.test'>"
|
||||
fi
|
||||
+# -y/--assumeyes should not send no-interaction to the authenticator (only --noninteractive should)
|
||||
+assert_not_file_has_content ${XDG_RUNTIME_DIR}/request "no-interaction"
|
||||
|
||||
EXPORT_ARGS="--token-type=2" make_updated_app test "" master UPDATE2
|
||||
mark_need_token app/org.test.Hello/$ARCH/master the-secret
|
||||
@@ -159,3 +161,18 @@ EXPORT_ARGS="--token-type=2" make_updated_app test "" master UPDATE5
|
||||
mark_need_token app/org.test.Hello/$ARCH/master the-secret
|
||||
|
||||
ok "update with webflow"
|
||||
+
|
||||
+rm -f ${XDG_RUNTIME_DIR}/request-webflow
|
||||
+rm -f ${XDG_RUNTIME_DIR}/require-webflow
|
||||
+
|
||||
+${FLATPAK} ${U} uninstall -y org.test.Hello//master org.test.Hello//copy >&2
|
||||
+
|
||||
+EXPORT_ARGS="--token-type=2" make_updated_app test "" master UPDATE6
|
||||
+mark_need_token app/org.test.Hello/$ARCH/master the-secret
|
||||
+echo -n the-secret > ${XDG_RUNTIME_DIR}/required-token
|
||||
+
|
||||
+${FLATPAK} ${U} install --noninteractive test-repo org.test.Hello master >&2
|
||||
+
|
||||
+assert_file_has_content ${XDG_RUNTIME_DIR}/request "no-interaction"
|
||||
+
|
||||
+ok "--noninteractive sends no-interaction to the authenticator"
|
||||
--
|
||||
2.52.0
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
|
||||
Name: flatpak
|
||||
Version: 1.12.9
|
||||
Release: 5%{?dist}
|
||||
Release: 6%{?dist}
|
||||
Summary: Application deployment framework for desktop apps
|
||||
|
||||
License: LGPLv2+
|
||||
@ -62,6 +62,9 @@ Patch130: CVE-2026-34079-1-utils-only-remove-cached-files-in-the-cache-dir
|
||||
Patch131: CVE-2026-34079-2-utils-do-not-follow-symlinks-in-local-open-file.patch
|
||||
Patch132: CVE-2026-34079-3-system-helper-only-remove-an-ongoing-pull-if-users-match.patch
|
||||
|
||||
# Don't set no_interaction for --assumeyes (https://github.com/flatpak/flatpak/pull/6744)
|
||||
Patch133: cli-dont-set-no-interaction-for-assumeyes.patch
|
||||
|
||||
|
||||
BuildRequires: pkgconfig(appstream-glib)
|
||||
BuildRequires: pkgconfig(dconf)
|
||||
@ -320,6 +323,10 @@ fi
|
||||
|
||||
|
||||
%changelog
|
||||
* Thu Jul 30 2026 Luigi Pavan <lpavan@redhat.com> - 1.12.9-6
|
||||
- Don't set no_interaction for --assumeyes
|
||||
Resolves: RHEL-11901
|
||||
|
||||
* Wed May 20 2026 Jan Grulich <jgrulich@redhat.com> - 1.12.9-5
|
||||
- Fix arbitrary code execution via crafted symlinks in sandbox-expose options
|
||||
Resolves: RHEL-165644
|
||||
|
||||
Loading…
Reference in New Issue
Block a user