summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog9
-rw-r--r--components/services/install/lib/eazel-install-logic2.c11
2 files changed, 16 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index d9ca3fe08..322665e92 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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);