From c26934fe2ef85bbe1ad697cf37da260159bff598 Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Sun, 29 Jun 2014 19:37:46 +0300 Subject: [PATCH 1/2] Fix a mixup of HifStateAction and HifPackageInfo Use HifStateAction for hif_package_get/set_action() and fix up a number of callers. While at this, also add missing UPDATE, CLEANUP, OBSOLETE, and QUERY enumeration values that the calling code in libhif and PackageKit needs. https://bugs.freedesktop.org/show_bug.cgi?id=80689 --- libhif/hif-goal.c | 12 ++++++------ libhif/hif-package.c | 12 ++++++------ libhif/hif-package.h | 5 +++-- libhif/hif-state.h | 6 +++++- libhif/hif-transaction.c | 18 +++++++++--------- 5 files changed, 29 insertions(+), 24 deletions(-) diff --git a/libhif/hif-goal.c b/libhif/hif-goal.c index c16d598..e71dc8c 100644 --- a/libhif/hif-goal.c +++ b/libhif/hif-goal.c @@ -147,42 +147,42 @@ hif_goal_get_packages (HyGoal goal, ...) case HIF_PACKAGE_INFO_REMOVE: pkglist = hy_goal_list_erasures (goal); FOR_PACKAGELIST(pkg, pkglist, i) { - hif_package_set_action (pkg, info_tmp); + hif_package_set_action (pkg, HIF_STATE_ACTION_REMOVE); g_ptr_array_add (array, pkg); } break; case HIF_PACKAGE_INFO_INSTALL: pkglist = hy_goal_list_installs (goal); FOR_PACKAGELIST(pkg, pkglist, i) { - hif_package_set_action (pkg, info_tmp); + hif_package_set_action (pkg, HIF_STATE_ACTION_INSTALL); g_ptr_array_add (array, pkg); } break; case HIF_PACKAGE_INFO_OBSOLETE: pkglist = hy_goal_list_obsoleted (goal); FOR_PACKAGELIST(pkg, pkglist, i) { - hif_package_set_action (pkg, info_tmp); + hif_package_set_action (pkg, HIF_STATE_ACTION_OBSOLETE); g_ptr_array_add (array, pkg); } break; case HIF_PACKAGE_INFO_REINSTALL: pkglist = hy_goal_list_reinstalls (goal); FOR_PACKAGELIST(pkg, pkglist, i) { - hif_package_set_action (pkg, HIF_PACKAGE_INFO_INSTALL); + hif_package_set_action (pkg, HIF_STATE_ACTION_INSTALL); g_ptr_array_add (array, pkg); } break; case HIF_PACKAGE_INFO_UPDATE: pkglist = hy_goal_list_upgrades (goal); FOR_PACKAGELIST(pkg, pkglist, i) { - hif_package_set_action (pkg, info_tmp); + hif_package_set_action (pkg, HIF_STATE_ACTION_UPDATE); g_ptr_array_add (array, pkg); } break; case HIF_PACKAGE_INFO_DOWNGRADE: pkglist = hy_goal_list_downgrades (goal); FOR_PACKAGELIST(pkg, pkglist, i) { - hif_package_set_action (pkg, HIF_PACKAGE_INFO_INSTALL); + hif_package_set_action (pkg, HIF_STATE_ACTION_INSTALL); g_ptr_array_add (array, pkg); } break; diff --git a/libhif/hif-package.c b/libhif/hif-package.c index 4bf5b5b..9228acd 100644 --- a/libhif/hif-package.c +++ b/libhif/hif-package.c @@ -56,7 +56,7 @@ typedef struct { gchar *description; gchar *package_id; HifPackageInfo info; - HifPackageInfo action; + HifStateAction action; HifSource *src; } HifPackagePrivate; @@ -420,17 +420,17 @@ hif_package_get_info (HyPackage pkg) * * Gets the action assigned to the package, i.e. what is going to be performed. * - * Returns: a #HifPackageInfo + * Returns: a #HifStateAction * * Since: 0.1.0 */ -HifPackageInfo +HifStateAction hif_package_get_action (HyPackage pkg) { HifPackagePrivate *priv; priv = hy_package_get_userdata (pkg); if (priv == NULL) - return HIF_PACKAGE_INFO_UNKNOWN; + return HIF_STATE_ACTION_UNKNOWN; return priv->action; } @@ -456,14 +456,14 @@ hif_package_set_info (HyPackage pkg, HifPackageInfo info) /** * hif_package_set_action: * @pkg: a #HyPackage instance. - * @action: the #HifPackageInfo for the package. + * @action: the #HifStateAction for the package. * * Sets the action for the package, i.e. what is going to be performed. * * Since: 0.1.0 */ void -hif_package_set_action (HyPackage pkg, HifPackageInfo action) +hif_package_set_action (HyPackage pkg, HifStateAction action) { HifPackagePrivate *priv; priv = hif_package_get_priv (pkg); diff --git a/libhif/hif-package.h b/libhif/hif-package.h index 6d4e774..98e77be 100644 --- a/libhif/hif-package.h +++ b/libhif/hif-package.h @@ -31,6 +31,7 @@ #include #include "hif-source.h" +#include "hif-state.h" /** * HifPackageInfo: @@ -71,9 +72,9 @@ const gchar *hif_package_get_id (HyPackage pkg); HifPackageInfo hif_package_get_info (HyPackage pkg); void hif_package_set_info (HyPackage pkg, HifPackageInfo info); -HifPackageInfo hif_package_get_action (HyPackage pkg); +HifStateAction hif_package_get_action (HyPackage pkg); void hif_package_set_action (HyPackage pkg, - HifPackageInfo action); + HifStateAction action); gboolean hif_package_get_user_action (HyPackage pkg); void hif_package_set_user_action (HyPackage pkg, gboolean user_action); diff --git a/libhif/hif-state.h b/libhif/hif-state.h index 0da4a50..bd5a4e2 100644 --- a/libhif/hif-state.h +++ b/libhif/hif-state.h @@ -62,7 +62,7 @@ struct _HifState * The action enum code. **/ typedef enum { - HIF_STATE_ACTION_UNKNOWN, /* Since: 0.1.0 */ + HIF_STATE_ACTION_UNKNOWN = 0, /* Since: 0.1.0 */ HIF_STATE_ACTION_DOWNLOAD_PACKAGES = 8, /* Since: 0.1.0 */ HIF_STATE_ACTION_DOWNLOAD_METADATA = 20, /* Since: 0.1.0 */ HIF_STATE_ACTION_LOADING_CACHE = 27, /* Since: 0.1.0 */ @@ -70,6 +70,10 @@ typedef enum { HIF_STATE_ACTION_REQUEST = 17, /* Since: 0.1.0 */ HIF_STATE_ACTION_REMOVE = 6, /* Since: 0.1.0 */ HIF_STATE_ACTION_INSTALL = 9, /* Since: 0.1.0 */ + HIF_STATE_ACTION_UPDATE = 10, /* Since: 0.1.2 */ + HIF_STATE_ACTION_CLEANUP = 11, /* Since: 0.1.2 */ + HIF_STATE_ACTION_OBSOLETE = 12, /* Since: 0.1.2 */ + HIF_STATE_ACTION_QUERY = 4, /* Since: 0.1.2 */ /*< private >*/ HIF_STATE_ACTION_LAST } HifStateAction; diff --git a/libhif/hif-transaction.c b/libhif/hif-transaction.c index 13fd549..4009319 100644 --- a/libhif/hif-transaction.c +++ b/libhif/hif-transaction.c @@ -549,7 +549,7 @@ hif_transaction_ts_progress_cb (const void *arg, guint speed; Header hdr = (Header) arg; HyPackage pkg; - HifPackageInfo action; + HifStateAction action; void *rc = NULL; _cleanup_error_free_ GError *error_local = NULL; @@ -593,8 +593,8 @@ hif_transaction_ts_progress_cb (const void *arg, /* map to correct action code */ action = hif_package_get_action (pkg); - if (action == HIF_PACKAGE_INFO_UNKNOWN) - action = HIF_PACKAGE_INFO_INSTALL; + if (action == HIF_STATE_ACTION_UNKNOWN) + action = HIF_STATE_ACTION_INSTALL; /* install start */ priv->step = HIF_TRANSACTION_STEP_WRITING; @@ -630,8 +630,8 @@ hif_transaction_ts_progress_cb (const void *arg, /* map to correct action code */ action = hif_package_get_action (pkg); - if (action == HIF_PACKAGE_INFO_UNKNOWN) - action = HIF_PACKAGE_INFO_REMOVE; + if (action == HIF_STATE_ACTION_UNKNOWN) + action = HIF_STATE_ACTION_REMOVE; /* remove start */ priv->step = HIF_TRANSACTION_STEP_WRITING; @@ -1324,7 +1324,7 @@ hif_transaction_commit (HifTransaction *transaction, /* add the install */ filename = hif_package_get_filename (pkg); allow_untrusted = (priv->flags & HIF_TRANSACTION_FLAG_ONLY_TRUSTED) == 0; - is_update = hif_package_get_action (pkg) == HIF_PACKAGE_INFO_UPDATE; + is_update = hif_package_get_action (pkg) == HIF_STATE_ACTION_UPDATE; ret = hif_rpmts_add_install_filename (priv->ts, filename, allow_untrusted, @@ -1370,7 +1370,7 @@ hif_transaction_commit (HifTransaction *transaction, pkg_tmp = hif_find_pkg_from_name (priv->install, hy_package_get_name (pkg)); if (pkg_tmp != NULL) - hif_package_set_action (pkg, HIF_PACKAGE_INFO_CLEANUP); + hif_package_set_action (pkg, HIF_STATE_ACTION_CLEANUP); } /* add anything that gets obsoleted to a helper array which is used to @@ -1378,14 +1378,14 @@ hif_transaction_commit (HifTransaction *transaction, priv->remove_helper = g_ptr_array_new_with_free_func ((GDestroyNotify) hy_package_free); for (i = 0; i < priv->install->len; i++) { pkg = g_ptr_array_index (priv->install, i); - is_update = hif_package_get_action (pkg) == HIF_PACKAGE_INFO_UPDATE; + is_update = hif_package_get_action (pkg) == HIF_STATE_ACTION_UPDATE; if (!is_update) continue; pkglist = hy_goal_list_obsoleted_by_package (goal, pkg); FOR_PACKAGELIST(pkg_tmp, pkglist, j) { g_ptr_array_add (priv->remove_helper, hy_package_link (pkg_tmp)); - hif_package_set_action (pkg_tmp, HIF_PACKAGE_INFO_CLEANUP); + hif_package_set_action (pkg_tmp, HIF_STATE_ACTION_CLEANUP); } hy_packagelist_free (pkglist); } -- 2.0.0