r23275 - gnucash/trunk/src - Move prefs migration call from app-utils module load to inner_main

Geert Janssens gjanssens at code.gnucash.org
Mon Oct 7 13:18:12 EDT 2013


Author: gjanssens
Date: 2013-10-07 13:18:10 -0400 (Mon, 07 Oct 2013)
New Revision: 23275
Trac: http://svn.gnucash.org/trac/changeset/23275

Modified:
   gnucash/trunk/src/app-utils/app-utils.scm
   gnucash/trunk/src/app-utils/gnc-gsettings.c
   gnucash/trunk/src/app-utils/gncmod-app-utils.c
   gnucash/trunk/src/app-utils/migrate-prefs.scm
   gnucash/trunk/src/bin/gnucash-bin.c
Log:
Move prefs migration call from app-utils module load to inner_main

At the same time skip migration if the required xml and xsl files aren't found

Modified: gnucash/trunk/src/app-utils/app-utils.scm
===================================================================
--- gnucash/trunk/src/app-utils/app-utils.scm	2013-10-07 15:50:19 UTC (rev 23274)
+++ gnucash/trunk/src/app-utils/app-utils.scm	2013-10-07 17:18:10 UTC (rev 23275)
@@ -21,7 +21,6 @@
 (use-modules (gnucash main)) ;; FIXME: delete after we finish modularizing.
 (use-modules (gnucash gnc-module))
 (use-modules (ice-9 syncase))
-(use-modules (migrate-prefs))
 
 ;; Guile 2 needs to find the symbols from the c module at compile time already
 (cond-expand
@@ -277,10 +276,6 @@
 (export simple-obj-from-list)
 (export make-simple-obj)
 
-;; migrate-prefs.scm
-(re-export migration-prepare)
-(re-export migration-cleanup)
-
 (define gnc:*kvp-option-path* (list KVP-OPTION-PATH))
 (export gnc:*kvp-option-path*)
 

Modified: gnucash/trunk/src/app-utils/gnc-gsettings.c
===================================================================
--- gnucash/trunk/src/app-utils/gnc-gsettings.c	2013-10-07 15:50:19 UTC (rev 23274)
+++ gnucash/trunk/src/app-utils/gnc-gsettings.c	2013-10-07 17:18:10 UTC (rev 23275)
@@ -621,7 +621,7 @@
     gchar *pkgdatadir, *stylesheet, *input, *output;
     gchar *migr_dir;
     SCM migr_script;
-    SCM result = scm_c_eval_string ("(use-modules (gnucash app-utils))(migration-prepare)");
+    SCM result;
     xsltStylesheetPtr stylesheetptr = NULL;
     xmlDocPtr inputxml, transformedxml;
     FILE *outfile;
@@ -629,6 +629,17 @@
     pkgdatadir = gnc_path_get_pkgdatadir();
     stylesheet = g_build_filename(pkgdatadir, "make-prefs-migration-script.xsl", NULL);
     input      = g_build_filename(pkgdatadir, "migratable-prefs.xml", NULL);
+
+    if ((!g_file_test (stylesheet, G_FILE_TEST_IS_REGULAR)) ||
+        (!g_file_test (input, G_FILE_TEST_IS_REGULAR)))
+   {
+        /* Critical files not found, abort migration */
+        g_free (stylesheet);
+        g_free (input);
+        return;
+   }
+    result = scm_c_eval_string ("(use-modules (migrate-prefs))(migration-prepare)");
+
     migr_dir   = g_build_filename(g_getenv ("HOME"), ".gnc-migration-tmp", NULL);
     output     = g_build_filename(migr_dir, "migrate-prefs-user.scm", NULL);
     xmlSubstituteEntitiesDefault(1);
@@ -654,7 +665,7 @@
     xsltCleanupGlobals();
     xmlCleanupParser();
 
-    result = scm_c_eval_string ("(use-modules (gnucash app-utils))(migration-cleanup)");
+    result = scm_c_eval_string ("(use-modules (migrate-prefs))(migration-cleanup)");
 
     g_free (pkgdatadir);
     g_free (stylesheet);

Modified: gnucash/trunk/src/app-utils/gncmod-app-utils.c
===================================================================
--- gnucash/trunk/src/app-utils/gncmod-app-utils.c	2013-10-07 15:50:19 UTC (rev 23274)
+++ gnucash/trunk/src/app-utils/gncmod-app-utils.c	2013-10-07 17:18:10 UTC (rev 23275)
@@ -15,7 +15,6 @@
 #include "gnc-component-manager.h"
 #include "gnc-hooks.h"
 #include "gnc-exp-parser.h"
-#include "gnc-gsettings.h"
 
 GNC_MODULE_API_DECL(libgncmod_app_utils)
 
@@ -78,7 +77,6 @@
         gnc_component_manager_init ();
         gnc_hook_add_dangler(HOOK_STARTUP, (GFunc)gnc_exp_parser_init, NULL);
         gnc_hook_add_dangler(HOOK_SHUTDOWN, (GFunc)app_utils_shutdown, NULL);
-        gnc_gsettings_migrate_from_gconf();
     }
 
     return TRUE;

Modified: gnucash/trunk/src/app-utils/migrate-prefs.scm
===================================================================
--- gnucash/trunk/src/app-utils/migrate-prefs.scm	2013-10-07 15:50:19 UTC (rev 23274)
+++ gnucash/trunk/src/app-utils/migrate-prefs.scm	2013-10-07 17:18:10 UTC (rev 23275)
@@ -72,6 +72,7 @@
         (migration-cleanup-internal)))
   (mkdir migration-dir)
   (format #t "Copy all gconf files to tmp dir ~A\n" migration-dir)
+  (display "Note: you can ignore the failed to load extnral entity warnings below. They are harmless.\n")
   (apply find copy-one-file (list gconf-dir))
 )
 

Modified: gnucash/trunk/src/bin/gnucash-bin.c
===================================================================
--- gnucash/trunk/src/bin/gnucash-bin.c	2013-10-07 15:50:19 UTC (rev 23274)
+++ gnucash/trunk/src/bin/gnucash-bin.c	2013-10-07 17:18:10 UTC (rev 23275)
@@ -719,6 +719,10 @@
     main_mod = scm_c_resolve_module("gnucash main");
     scm_set_current_module(main_mod);
 
+    /* GnuCash switched to gsettings to store its preferences in version 2.5.6
+     * Migrate the user's preferences from gconf if needed */
+    gnc_gsettings_migrate_from_gconf();
+
     load_gnucash_modules();
 
     /* Load the config before starting up the gui. This insures that



More information about the gnucash-changes mailing list