From c7670e87d7e7053504f89ab716469f9391b83e63 Mon Sep 17 00:00:00 2001 From: Umang Jain Date: Tue, 8 Oct 2019 13:56:51 +0530 Subject: [PATCH 1/2] transaction: Add getter for querying no-deploy FlatpakTransaction inherently doesn't differentiate between a autoupdate and a regular update; both are FLATPAK_TRANSACTION_OPERATION_UPDATE. This getter can help differentiate between a regular update and autoupdate in clients like gnome-software. Autoupdates work in two separate transaction passes; first that runs with "no-deploy" and the second pass that deploys all the downloaded update (i.e. with "no-pull"). --- common/flatpak-transaction.c | 19 +++++++++++++++++++ common/flatpak-transaction.h | 2 ++ doc/reference/flatpak-sections.txt | 1 + tests/testlibrary.c | 3 +++ 4 files changed, 25 insertions(+) diff --git a/common/flatpak-transaction.c b/common/flatpak-transaction.c index 3e9967a5..b24bb747 100644 --- a/common/flatpak-transaction.c +++ b/common/flatpak-transaction.c @@ -1213,6 +1213,25 @@ flatpak_transaction_set_no_deploy (FlatpakTransaction *self, priv->no_deploy = no_deploy; } +/** + * flatpak_transaction_get_no_deploy: + * @self: a #FlatpakTransaction + * + * Gets whether the transaction is only downloading updates, + * and not deploying them. + * + * Returns: %TRUE if no_deploy is set, %FALSE otherwise + * + * Since: 1.5.1 + */ +gboolean +flatpak_transaction_get_no_deploy (FlatpakTransaction *self) +{ + FlatpakTransactionPrivate *priv = flatpak_transaction_get_instance_private (self); + + return priv->no_deploy; +} + /** * flatpak_transaction_set_disable_static_deltas: * @self: a #FlatpakTransaction diff --git a/common/flatpak-transaction.h b/common/flatpak-transaction.h index 0f4317b3..723864a3 100644 --- a/common/flatpak-transaction.h +++ b/common/flatpak-transaction.h @@ -183,6 +183,8 @@ FLATPAK_EXTERN void flatpak_transaction_set_no_deploy (FlatpakTransaction *self, gboolean no_deploy); FLATPAK_EXTERN +gboolean flatpak_transaction_get_no_deploy (FlatpakTransaction *self); +FLATPAK_EXTERN void flatpak_transaction_set_disable_static_deltas (FlatpakTransaction *self, gboolean disable_static_deltas); FLATPAK_EXTERN diff --git a/doc/reference/flatpak-sections.txt b/doc/reference/flatpak-sections.txt index a43228e2..60c010b8 100644 --- a/doc/reference/flatpak-sections.txt +++ b/doc/reference/flatpak-sections.txt @@ -262,6 +262,7 @@ flatpak_transaction_set_disable_prune flatpak_transaction_set_disable_related flatpak_transaction_set_disable_static_deltas flatpak_transaction_set_no_deploy +flatpak_transaction_get_no_deploy flatpak_transaction_set_no_pull flatpak_transaction_set_reinstall flatpak_transaction_set_force_uninstall diff --git a/tests/testlibrary.c b/tests/testlibrary.c index 0e017aed..61b9ca04 100644 --- a/tests/testlibrary.c +++ b/tests/testlibrary.c @@ -2187,6 +2187,9 @@ test_misc_transaction (void) list = flatpak_transaction_get_operations (transaction); g_assert_null (list); + flatpak_transaction_set_no_deploy (transaction, TRUE); + g_assert (flatpak_transaction_get_no_deploy (transaction) == TRUE); + g_assert (flatpak_transaction_is_empty (transaction)); } From 11631f9514167bde33e887c708e0e22514956283 Mon Sep 17 00:00:00 2001 From: Umang Jain Date: Tue, 8 Oct 2019 14:03:52 +0530 Subject: [PATCH 2/2] transaction: Add getter for querying no-pull As this is a required to deploy autoupdates downloaded in the background, for clients like gnome-software. --- common/flatpak-transaction.c | 19 +++++++++++++++++++ common/flatpak-transaction.h | 2 ++ doc/reference/flatpak-sections.txt | 1 + tests/testlibrary.c | 3 +++ 4 files changed, 25 insertions(+) diff --git a/common/flatpak-transaction.c b/common/flatpak-transaction.c index b24bb747..eb58237a 100644 --- a/common/flatpak-transaction.c +++ b/common/flatpak-transaction.c @@ -1196,6 +1196,25 @@ flatpak_transaction_set_no_pull (FlatpakTransaction *self, priv->no_pull = no_pull; } +/** + * flatpak_transaction_get_no_pull: + * @self: a #FlatpakTransaction + * + * Gets whether the transaction should operate only on locally + * available data. + * + * Returns: %TRUE if no_pull is set, %FALSE otherwise + * + * Since: 1.5.1 + */ +gboolean +flatpak_transaction_get_no_pull (FlatpakTransaction *self) +{ + FlatpakTransactionPrivate *priv = flatpak_transaction_get_instance_private (self); + + return priv->no_pull; +} + /** * flatpak_transaction_set_no_deploy: * @self: a #FlatpakTransaction diff --git a/common/flatpak-transaction.h b/common/flatpak-transaction.h index 723864a3..df8f9347 100644 --- a/common/flatpak-transaction.h +++ b/common/flatpak-transaction.h @@ -180,6 +180,8 @@ FLATPAK_EXTERN void flatpak_transaction_set_no_pull (FlatpakTransaction *self, gboolean no_pull); FLATPAK_EXTERN +gboolean flatpak_transaction_get_no_pull (FlatpakTransaction *self); +FLATPAK_EXTERN void flatpak_transaction_set_no_deploy (FlatpakTransaction *self, gboolean no_deploy); FLATPAK_EXTERN diff --git a/doc/reference/flatpak-sections.txt b/doc/reference/flatpak-sections.txt index 60c010b8..87f22ef7 100644 --- a/doc/reference/flatpak-sections.txt +++ b/doc/reference/flatpak-sections.txt @@ -264,6 +264,7 @@ flatpak_transaction_set_disable_static_deltas flatpak_transaction_set_no_deploy flatpak_transaction_get_no_deploy flatpak_transaction_set_no_pull +flatpak_transaction_get_no_pull flatpak_transaction_set_reinstall flatpak_transaction_set_force_uninstall flatpak_transaction_set_default_arch diff --git a/tests/testlibrary.c b/tests/testlibrary.c index 61b9ca04..c39a60b2 100644 --- a/tests/testlibrary.c +++ b/tests/testlibrary.c @@ -2190,6 +2190,9 @@ test_misc_transaction (void) flatpak_transaction_set_no_deploy (transaction, TRUE); g_assert (flatpak_transaction_get_no_deploy (transaction) == TRUE); + flatpak_transaction_set_no_pull (transaction, TRUE); + g_assert (flatpak_transaction_get_no_pull (transaction) == TRUE); + g_assert (flatpak_transaction_is_empty (transaction)); }