libcommon_la_CFLAGS = \
$(WARN_CFLAGS) \
$(GLIB_CFLAGS) \
- -DCONFIG_DIR=\"$(sysconfdir)/lightdm\" \
- -DSYSTEM_CONFIG_DIR=\"$(pkgdatadir)/lightdm.conf.d\"
+ -DCONFIG_DIR=\"$(sysconfdir)/lightdm\"
libcommon_la_LIBADD = \
$(GLIB_LDFLAGS)
g_list_free_full (files, g_free);
}
+static void
+load_config_directories (const gchar * const *dirs, GList **messages)
+{
+ gint i;
+
+ for (i = 0; dirs[i]; i++)
+ {
+ gchar *full_dir = g_build_filename (dirs[i], "lightdm", "lightdm.conf.d", NULL);
+ if (messages)
+ *messages = g_list_append (*messages, g_strdup_printf ("Loading configuration dirs from %s", full_dir));
+ load_config_directory (full_dir, messages);
+ g_free (full_dir);
+ }
+}
+
gboolean
config_load_from_standard_locations (Configuration *config, const gchar *config_path, GList **messages)
{
gboolean success = TRUE;
GError *error = NULL;
+ load_config_directories (g_get_system_data_dirs (), messages);
+ load_config_directories (g_get_system_config_dirs (), messages);
+
if (config_path)
{
config_dir = g_path_get_basename (config_path);
config_set_string (config, "LightDM", "config-directory", config_dir);
g_free (config_dir);
- load_config_directory (SYSTEM_CONFIG_DIR, messages);
if (config_d_dir)
load_config_directory (config_d_dir, messages);
g_free (config_d_dir);
if (g_str_has_prefix (path, "/tmp"))
return g_build_filename (g_getenv ("LIGHTDM_TEST_ROOT"), "tmp", path + strlen ("/tmp"), NULL);
+ if (g_str_has_prefix (path, "/etc/xdg"))
+ return g_build_filename (g_getenv ("LIGHTDM_TEST_ROOT"), "etc", "xdg", path + strlen ("/etc/xdg"), NULL);
+
+ if (g_str_has_prefix (path, "/usr/share/lightdm"))
+ return g_build_filename (g_getenv ("LIGHTDM_TEST_ROOT"), "usr", "share", "lightdm", path + strlen ("/usr/share/lightdm"), NULL);
+
return g_strdup (path);
}
/* Don't contact our X server */
g_unsetenv ("DISPLAY");
+ /* Don't let XDG vars from system affect tests */
+ g_unsetenv ("XDG_CONFIG_DIRS");
+ g_unsetenv ("XDG_DATA_DIRS");
+
/* Override system calls */
ld_preload = g_build_filename (BUILDDIR, "tests", "src", ".libs", "libsystem.so", NULL);
g_setenv ("LD_PRELOAD", ld_preload, TRUE);
{
gchar **files;
- g_mkdir_with_parents (g_strdup_printf ("%s/etc/lightdm/lightdm.conf.d", temp_dir), 0755);
+ g_mkdir_with_parents (g_strdup_printf ("%s/etc/xdg/lightdm/lightdm.conf.d", temp_dir), 0755);
files = g_strsplit (additional_config, " ", -1);
for (i = 0; files[i]; i++)
- if (system (g_strdup_printf ("cp %s/tests/scripts/%s %s/etc/lightdm/lightdm.conf.d", SRCDIR, files[i], temp_dir)))
+ if (system (g_strdup_printf ("cp %s/tests/scripts/%s %s/etc/xdg/lightdm/lightdm.conf.d", SRCDIR, files[i], temp_dir)))
perror ("Failed to copy configuration");
g_strfreev (files);
}