diff options
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | components/services/install/lib/eazel-install-logic2.c | 11 |
2 files changed, 16 insertions, 4 deletions
@@ -1,3 +1,12 @@ +2001-03-06 Eskil Heyn Olsen <eskil@eazel.com> + + reviewed by: Robey Pointer <robey@eazel.com> + + * components/services/install/lib/eazel-install-logic2.c: + (prune_failed_packages_helper): + Fixed a logic error from yesterday (doh, need rest) that would + cause unwanted pruning of packages. I should be spanked. + 2001-03-06 Darin Adler <darin@eazel.com> reviewed by: John Sullivan <sullivan@eazel.com> diff --git a/components/services/install/lib/eazel-install-logic2.c b/components/services/install/lib/eazel-install-logic2.c index eb9d1f773..063d915c6 100644 --- a/components/services/install/lib/eazel-install-logic2.c +++ b/components/services/install/lib/eazel-install-logic2.c @@ -169,8 +169,8 @@ prune_failed_packages_helper (EazelInstall *service, packagedata_status_enum_to_str (pack->status)); #endif /* If it's a suite and no dependencies, cancel it */ - if (pack->suite_id && g_list_length (pack->depends)==0) { - pack->status = PACKAGE_ALREADY_INSTALLED; + if (pack->suite_id && g_list_length (pack->depends)==0 && pack->status == PACKAGE_PARTLY_RESOLVED) { + pack->status = PACKAGE_CANCELLED; } /* If package is already installed, check if the service @@ -194,8 +194,11 @@ prune_failed_packages_helper (EazelInstall *service, return; } - if ((action == PRUNE_ACTION_NORMAL && pack->status != PACKAGE_PARTLY_RESOLVED) || - action == PRUNE_ACTION_ALLOW) { + if (action == PRUNE_ACTION_NORMAL && pack->status == PACKAGE_PARTLY_RESOLVED) { + action = PRUNE_ACTION_ALLOW; + } + + if (action != PRUNE_ACTION_ALLOW) { #if EI2_DEBUG & 0x4 trilobite_debug ("subpruner kill root %p %s because of %p %s", root, root->name, pack, pack->name); |