diff --git a/bin/sugar.in b/bin/sugar.in index 41ed77b9..36a8e2b9 100644 --- a/bin/sugar.in +++ b/bin/sugar.in @@ -1,3 +1,4 @@ +export SUGAR_PREFIX=@prefix@ export SUGAR_PATH=@prefix@/share/sugar export GTK2_RC_FILES=@prefix@/share/sugar/data/sugar-xo.gtkrc dbus-launch --exit-with-session sugar-shell diff --git a/browser/sugar-browser.cpp b/browser/sugar-browser.cpp index d64224f1..d5644da3 100644 --- a/browser/sugar-browser.cpp +++ b/browser/sugar-browser.cpp @@ -159,13 +159,23 @@ sugar_browser_startup(const char *profile_path, const char *profile_name) old_handler = XSetErrorHandler(error_handler); + const char *prefix = g_getenv("SUGAR_PREFIX"); + if (prefix == NULL) { + g_print("The SUGAR_PREFIX environment variable is not set."); + exit(1); + } + + char *components_path = g_build_filename(prefix, "share/sugar", NULL); + GeckoDirectoryProvider *dirProvider = - new GeckoDirectoryProvider(g_getenv(SUGAR_PATH)); + new GeckoDirectoryProvider(components_path); if (!dirProvider) { g_warning ("failed to create GeckoDirectoryProvider"); return FALSE; } + g_free(components_path); + NS_ADDREF (dirProvider); nsCOMPtr dp (do_QueryInterface (dirProvider)); diff --git a/sugar/env.py b/sugar/env.py index 4bee5090..03cfea71 100644 --- a/sugar/env.py +++ b/sugar/env.py @@ -22,7 +22,7 @@ def _get_prefix_path(base, path=None): if os.environ.has_key('SUGAR_PREFIX'): prefix = os.environ['SUGAR_PREFIX'] else: - prefix = '/usr' + raise RuntimeError("The SUGAR_PREFIX environment variable is not set.") if path: return os.path.join(prefix, base, path)