registry: set env GST_REGISTRY_DISABLE=yes to disable registry

If GST_REGISTRY_DISABLE=yes the registry is disabled similar to
compile time switch GST_DISABLE_REGISTRY.

https://bugzilla.gnome.org/show_bug.cgi?id=773089
This commit is contained in:
Stian Selnes 2013-05-02 10:09:29 +02:00 committed by Sebastian Dröge
parent c85a30f80b
commit fd728c2531
2 changed files with 27 additions and 8 deletions

View file

@ -131,6 +131,7 @@ HMODULE _priv_gst_dll_handle = NULL;
#ifndef GST_DISABLE_REGISTRY
GList *_priv_gst_plugin_paths = NULL; /* for delayed processing in init_post */
extern gboolean _priv_gst_disable_registry;
extern gboolean _priv_gst_disable_registry_update;
#endif
@ -511,6 +512,15 @@ init_pre (GOptionContext * context, GOptionGroup * group, gpointer data,
GST_INFO ("Using library installed in %s", libdir);
g_free (libdir);
#ifndef GST_DISABLE_REGISTRY
{
const gchar *disable_registry;
if ((disable_registry = g_getenv ("GST_REGISTRY_DISABLE"))) {
_priv_gst_disable_registry = (strcmp (disable_registry, "yes") == 0);
}
}
#endif
/* Print some basic system details if possible (OS/architecture) */
#ifdef HAVE_SYS_UTSNAME_H
{
@ -899,7 +909,8 @@ parse_one_option (gint opt, const gchar * arg, GError ** err)
break;
case ARG_PLUGIN_PATH:
#ifndef GST_DISABLE_REGISTRY
split_and_iterate (arg, G_SEARCHPATH_SEPARATOR_S, add_path_func, NULL);
if (!_priv_gst_disable_registry)
split_and_iterate (arg, G_SEARCHPATH_SEPARATOR_S, add_path_func, NULL);
#endif /* GST_DISABLE_REGISTRY */
break;
case ARG_PLUGIN_LOAD:
@ -910,7 +921,8 @@ parse_one_option (gint opt, const gchar * arg, GError ** err)
break;
case ARG_REGISTRY_UPDATE_DISABLE:
#ifndef GST_DISABLE_REGISTRY
_priv_gst_disable_registry_update = TRUE;
if (!_priv_gst_disable_registry)
_priv_gst_disable_registry_update = TRUE;
#endif
break;
case ARG_REGISTRY_FORK_DISABLE:

View file

@ -185,6 +185,8 @@ static gboolean _gst_enable_registry_fork = DEFAULT_FORK;
extern GSList *_priv_gst_preload_plugins;
#ifndef GST_DISABLE_REGISTRY
/* Set to TRUE to disable registry, behaves similar to GST_DISABLE_REGISTRY */
gboolean _priv_gst_disable_registry = FALSE;
/*set to TRUE when registry needn't to be updated */
gboolean _priv_gst_disable_registry_update = FALSE;
extern GList *_priv_gst_plugin_paths;
@ -1838,14 +1840,19 @@ gst_update_registry (void)
gboolean res;
#ifndef GST_DISABLE_REGISTRY
GError *err = NULL;
if (!_priv_gst_disable_registry) {
GError *err = NULL;
res = ensure_current_registry (&err);
if (err) {
GST_WARNING ("registry update failed: %s", err->message);
g_error_free (err);
res = ensure_current_registry (&err);
if (err) {
GST_WARNING ("registry update failed: %s", err->message);
g_error_free (err);
} else {
GST_LOG ("registry update succeeded");
}
} else {
GST_LOG ("registry update succeeded");
GST_INFO ("registry update disabled by environment");
res = TRUE;
}
#else