summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEskil Olsen <set EMAIL_ADDRESS environment variable>2001-03-06 04:20:36 +0000
committerEskil Heyn Olsen <eskil@src.gnome.org>2001-03-06 04:20:36 +0000
commit8dd75648da516bfa6724a9c43338c354bb57b108 (patch)
treec715a4462b3529c8932226fe4aa6120877fb4669
parentbaf1357f6dfa7fd08665d8a2a4a7e533b59003d1 (diff)
downloadnautilus-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--ChangeLog24
-rw-r--r--components/rpmview/nautilus-rpm-view-install.c39
-rw-r--r--components/services/install/lib/eazel-install-logic2.c21
-rw-r--r--components/services/install/lib/eazel-install-problem.c8
4 files changed, 55 insertions, 37 deletions
diff --git a/ChangeLog b/ChangeLog
index 823ef07fa..f2e7925b5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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;