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