diff options
author | Eskil Olsen <set EMAIL_ADDRESS environment variable> | 2001-03-06 04:20:36 +0000 |
---|---|---|
committer | Eskil Heyn Olsen <eskil@src.gnome.org> | 2001-03-06 04:20:36 +0000 |
commit | 8dd75648da516bfa6724a9c43338c354bb57b108 (patch) | |
tree | c715a4462b3529c8932226fe4aa6120877fb4669 | |
parent | baf1357f6dfa7fd08665d8a2a4a7e533b59003d1 (diff) | |
download | nautilus-8dd75648da516bfa6724a9c43338c354bb57b108.tar.gz |
Flipped the meaning of the third argument.
2001-03-05 Eskil Olsen <set EMAIL_ADDRESS environment variable>
* components/rpmview/nautilus-rpm-view-install.c:
(get_detailed_errors),
Flipped the meaning of the third argument.
(nautilus_rpm_view_install_failed),
s/TRUE/FALSE
(nautilus_rpm_view_uninstall_failed),
s/FALSE/TRUE
(nautilus_rpm_view_dependency_check):
use packagedata_get_readable_name instead of doing it myself.
* components/services/install/lib/eazel-install-logic2.c:
(prune_failed_packages_helper):
Ugh, I did not traverse down down into ALREADY_INSTALLED packages,
and I had flipped the change of status for suite_ids. So I added
some enum logic so ALREADY_INSTALLED (hence also suite_id's) get
their dependencies pruned.
* components/services/install/lib/eazel-install-problem.c:
(get_detailed_uninstall_messages_foreach):
I committed the sin of changing an i18n string..
-rw-r--r-- | ChangeLog | 24 | ||||
-rw-r--r-- | components/rpmview/nautilus-rpm-view-install.c | 39 | ||||
-rw-r--r-- | components/services/install/lib/eazel-install-logic2.c | 21 | ||||
-rw-r--r-- | components/services/install/lib/eazel-install-problem.c | 8 |
4 files changed, 55 insertions, 37 deletions
@@ -1,3 +1,27 @@ +2001-03-05 Eskil Olsen <set EMAIL_ADDRESS environment variable> + + * components/rpmview/nautilus-rpm-view-install.c: + (get_detailed_errors), + Flipped the meaning of the third argument. + (nautilus_rpm_view_install_failed), + s/TRUE/FALSE + (nautilus_rpm_view_uninstall_failed), + s/FALSE/TRUE + (nautilus_rpm_view_dependency_check): + use packagedata_get_readable_name instead of doing it myself. + + * components/services/install/lib/eazel-install-logic2.c: + (prune_failed_packages_helper): + + Ugh, I did not traverse down down into ALREADY_INSTALLED packages, + and I had flipped the change of status for suite_ids. So I added + some enum logic so ALREADY_INSTALLED (hence also suite_id's) get + their dependencies pruned. + + * components/services/install/lib/eazel-install-problem.c: + (get_detailed_uninstall_messages_foreach): + I committed the sin of changing an i18n string.. + 2001-03-05 Pavel Cisler <pavel@eazel.com> reviewed by: Ramiro Estrugo <ramiro@eazel.com> diff --git a/components/rpmview/nautilus-rpm-view-install.c b/components/rpmview/nautilus-rpm-view-install.c index a0e941fcf..06be5685d 100644 --- a/components/rpmview/nautilus-rpm-view-install.c +++ b/components/rpmview/nautilus-rpm-view-install.c @@ -99,7 +99,7 @@ nautilus_rpm_view_download_failed (EazelInstallCallback *service, static char* get_detailed_errors (EazelInstallCallback *service, PackageData *pack, - gboolean installing) + gboolean uninstalling) { char *result; GList *stuff; @@ -107,14 +107,14 @@ get_detailed_errors (EazelInstallCallback *service, EazelInstallProblem *problem; message = g_string_new (""); - if (installing) { + if (uninstalling==FALSE) { g_string_sprintfa (message, _("Installing %s failed because of the following issue(s):\n"), pack->name); } else { g_string_sprintfa (message, _("Uninstalling %s failed because of the following issue(s):\n"), pack->name); } problem = EAZEL_INSTALL_PROBLEM (gtk_object_get_data (GTK_OBJECT (service), "problem-handler")); - stuff = eazel_install_problem_tree_to_string (problem, pack, installing); + stuff = eazel_install_problem_tree_to_string (problem, pack, uninstalling); if (stuff) { GList *iterator; for (iterator = stuff; iterator; iterator = g_list_next (iterator)) { @@ -134,7 +134,7 @@ nautilus_rpm_view_install_failed (EazelInstallCallback *service, { char *detailed; - detailed = get_detailed_errors (service, pd, TRUE); + detailed = get_detailed_errors (service, pd, FALSE); gtk_object_set_data (GTK_OBJECT (rpm_view), "details", detailed); } @@ -145,7 +145,7 @@ nautilus_rpm_view_uninstall_failed (EazelInstallCallback *service, { char *detailed; - detailed = get_detailed_errors (service, pd, FALSE); + detailed = get_detailed_errors (service, pd, TRUE); gtk_object_set_data (GTK_OBJECT (rpm_view), "details", detailed); } @@ -155,28 +155,13 @@ nautilus_rpm_view_dependency_check (EazelInstallCallback *service, const PackageData *needs, NautilusRPMView *rpm_view) { - if (needs->name && needs->version) { - g_message ("Doing dependency check for %s-%s - need %s-%s\n", - package->name, package->version, - needs->name, needs->version); - } else if (needs->name) { - g_message ("Doing dependency check for %s-%s - need %s\n", - package->name, package->version, - needs->name); - } else if (needs->provides) { - GList *iterator; - g_message ("Doing dependency check for %s-%s - need :", - package->name, package->version); - for (iterator = needs->provides; iterator; iterator = g_list_next (iterator)) { - g_message ("- %s", (char*)iterator->data); - } - } else { - g_message ("Doing dependency check for %s-%s - needs something, but I don't know what it was...\n", - package->name, package->version); - } -#if 0 - nautilus_view_report_load_underway (nautilus_rpm_view_get_view (rpm_view)); -#endif + char *a, *b; + + a = packagedata_get_readable_name (package); + b = packagedata_get_readable_name (needs); + g_message ("Doing dependency check for %s - needs %s\n", a, b); + g_free (a); + g_free (b); } /* get rid of the installer and root client, and reactivate buttons */ diff --git a/components/services/install/lib/eazel-install-logic2.c b/components/services/install/lib/eazel-install-logic2.c index 94111c229..eb9d1f773 100644 --- a/components/services/install/lib/eazel-install-logic2.c +++ b/components/services/install/lib/eazel-install-logic2.c @@ -147,6 +147,11 @@ void prune_failed_packages (EazelInstall *service, GList **packages); void prune_failed_packages_helper (EazelInstall *service, PackageData *root, PackageData *pack, GList *packages, GList **path, GList **result); +typedef enum { + PRUNE_ACTION_NORMAL, + PRUNE_ACTION_ALLOW +} PruneAction; + void prune_failed_packages_helper (EazelInstall *service, PackageData *root, @@ -156,12 +161,18 @@ prune_failed_packages_helper (EazelInstall *service, GList **result) { GList *iterator; + PruneAction action = PRUNE_ACTION_NORMAL; #if EI2_DEBUG & 0x4 trilobite_debug ("entering subpruner %p %s %s", pack, pack->name, 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 package is already installed, check if the service settings requires us to fail it */ if (pack->status == PACKAGE_ALREADY_INSTALLED) { @@ -171,15 +182,10 @@ prune_failed_packages_helper (EazelInstall *service, trilobite_debug ("Package cancel status == %d", cancel_package); #endif if (cancel_package == 0) { - return; + action = PRUNE_ACTION_ALLOW; } } - /* 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; - } - /* Recursion check */ if (g_list_find (*path, pack)) { #if EI2_DEBUG & 0x4 @@ -188,7 +194,8 @@ prune_failed_packages_helper (EazelInstall *service, return; } - if (pack->status != PACKAGE_PARTLY_RESOLVED) { + if ((action == PRUNE_ACTION_NORMAL && pack->status != PACKAGE_PARTLY_RESOLVED) || + 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); diff --git a/components/services/install/lib/eazel-install-problem.c b/components/services/install/lib/eazel-install-problem.c index 9f6992596..198cb3331 100644 --- a/components/services/install/lib/eazel-install-problem.c +++ b/components/services/install/lib/eazel-install-problem.c @@ -143,7 +143,7 @@ get_detailed_messages_foreach (GtkObject *foo, GetErrorsForEachData *data) if (top_pack == previous_pack) { previous_pack = NULL; } - required_by = packagedata_get_readable_name (previous_pack); + required_by = packagedata_get_readable_name (top_pack); top_name = packagedata_get_readable_name (top_pack); } required = packagedata_get_readable_name (pack); @@ -343,13 +343,15 @@ get_detailed_uninstall_messages_foreach (GtkObject *foo, case PACKAGE_INVALID: break; case PACKAGE_CANNOT_OPEN: - message = g_strdup_printf (_("%s is not installed"), + message = g_strdup_printf (_("%s is not installed and could not be found on server"), required_by); break; case PACKAGE_PARTLY_RESOLVED: break; case PACKAGE_ALREADY_INSTALLED: - message = g_strdup_printf (_("%s is already installed"), required); + if (pack->modifies == NULL) { + message = g_strdup_printf (_("%s is already installed"), required); + } break; case PACKAGE_CIRCULAR_DEPENDENCY: break; |