From 0857bf4b47e80fd3ac3bf99afa01c2e274244e18 Mon Sep 17 00:00:00 2001 From: Ettore Perazzoli Date: Wed, 4 Sep 2002 22:39:30 +0000 Subject: Add a -DPREFIX. * Makefile.am (INCLUDES): Add a -DPREFIX. * main.c (main): New command-line option "force-upgrade". (show_development_warning): Suggest 1.0.8, not 1.0.5. (upgrade_from_1_0_if_needed): New. (idle_cb): Call it. svn path=/trunk/; revision=17982 --- shell/Makefile.am | 1 + shell/main.c | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 58 insertions(+), 5 deletions(-) diff --git a/shell/Makefile.am b/shell/Makefile.am index 7a08ce2d9f..0d1cf2a625 100644 --- a/shell/Makefile.am +++ b/shell/Makefile.am @@ -11,6 +11,7 @@ INCLUDES = -O \ -DEVOLUTION_DATADIR=\""$(datadir)"\" \ -DEVOLUTION_GLADEDIR=\"$(datadir)/evolution/glade\" \ -DEVOLUTION_ETSPECDIR=\""$(etspecdir)"\" \ + -DPREFIX=\"$(prefix)\" \ -DG_LOG_DOMAIN=\"evolution-shell\" \ $(SHELL_CFLAGS) diff --git a/shell/main.c b/shell/main.c index b22fd8fa5e..d876d1c040 100644 --- a/shell/main.c +++ b/shell/main.c @@ -42,6 +42,8 @@ #include #include #include +#include +#include #include #include @@ -69,6 +71,8 @@ static char *evolution_directory = NULL; static gboolean no_splash = FALSE; static gboolean start_online = FALSE; static gboolean start_offline = FALSE; +static gboolean force_upgrade = FALSE; + extern char *evolution_debug_log; @@ -227,7 +231,7 @@ show_development_warning (GtkWindow *parent) "but some features are either unfinished or don't work properly.\n" "\n" "If you want a stable version of Evolution, we urge you to uninstall,\n" - "this version, and install a 1.0.x version instead (1.0.5 recommended).\n" + "this version, and install a 1.0.x version instead (1.0.8)\n" "\n" "If you find bugs, please report them to us at bugzilla.ximian.com.\n" "This product comes with no warranty and is not intended for\n" @@ -294,6 +298,46 @@ new_view_created_callback (EShell *shell, gtk_signal_connect (GTK_OBJECT (view), "map", view_map_callback, NULL); } + +static void +upgrade_from_1_0_if_needed (void) +{ + Bonobo_ConfigDatabase config_db; + CORBA_Environment ev; + int result; + + CORBA_exception_init (&ev); + + config_db = bonobo_get_object ("wombat:", "Bonobo/ConfigDatabase", &ev); + if (BONOBO_EX (&ev) || config_db == CORBA_OBJECT_NIL) { + g_print ("(Cannot access Bonobo/ConfigDatabase, not upgrading configuration.)\n"); + if (BONOBO_EX (&ev)) + g_print ("\t%s\n", BONOBO_EX_ID (&ev)); + CORBA_exception_free (&ev); + return; + } + + CORBA_exception_free (&ev); + + if (! force_upgrade + && bonobo_config_get_boolean_with_default (config_db, "/Shell/upgrade_from_1_0_to_1_2_performed", + FALSE, NULL)) + return; + + g_print ("\nOlder configuration files detected, upgrading...\n"); + + result = system (PREFIX "/bin/evolution-mail-upgrade"); + + if (result == 0) + g_print ("\n--> Configuration files upgraded from version 1.0.\n"); + else + g_print ("\n*** Error upgrading configuration files -- status %d\n", result); + + bonobo_config_set_boolean (config_db, "/Shell/upgrade_from_1_0_to_1_2_performed", TRUE, NULL); + + bonobo_object_release_unref (config_db, NULL); +} + /* This is for doing stuff that requires the GTK+ loop to be running already. */ @@ -310,6 +354,8 @@ idle_cb (void *data) gboolean display_default; gboolean displayed_any; + upgrade_from_1_0_if_needed (); + CORBA_exception_init (&ev); uri_list = (GSList *) data; @@ -435,10 +481,16 @@ int main (int argc, char **argv) { struct poptOption options[] = { - { "no-splash", '\0', POPT_ARG_NONE, &no_splash, 0, N_("Disable splash screen"), NULL }, - { "offline", '\0', POPT_ARG_NONE, &start_offline, 0, N_("Start in offline mode"), NULL }, - { "online", '\0', POPT_ARG_NONE, &start_online, 0, N_("Start in online mode"), NULL }, - { "debug", '\0', POPT_ARG_STRING, &evolution_debug_log, 0, N_("Send the debugging output of all components to a file."), NULL }, + { "no-splash", '\0', POPT_ARG_NONE, &no_splash, 0, + N_("Disable splash screen"), NULL }, + { "offline", '\0', POPT_ARG_NONE, &start_offline, 0, + N_("Start in offline mode"), NULL }, + { "online", '\0', POPT_ARG_NONE, &start_online, 0, + N_("Start in online mode"), NULL }, + { "debug", '\0', POPT_ARG_STRING, &evolution_debug_log, 0, + N_("Send the debugging output of all components to a file."), NULL }, + { "force-upgrade", '\0', POPT_ARG_STRING, &force_upgrade, 0, + N_("Force upgrading of configuration files from Evolution 1.0.x"), NULL }, { NULL, '\0', POPT_ARG_INCLUDE_TABLE, &oaf_popt_options, 0, NULL, NULL }, POPT_AUTOHELP { NULL, '\0', 0, NULL, 0, NULL, NULL } -- cgit v1.2.3