diff options
author | Ikey Doherty <michael.i.doherty@intel.com> | 2016-03-12 16:43:16 +0000 |
---|---|---|
committer | Mike Gorse <mgorse@suse.com> | 2016-03-14 16:59:30 -0500 |
commit | 2ef0076968e939d14b98425bcfc53ca2dc50f768 (patch) | |
tree | 147ac099b7bdc9f13788043155938bcefbf55839 /bus | |
parent | 404b3fe9325bd81145a2ce0704b552dcf5f250e2 (diff) | |
download | at-spi2-core-2ef0076968e939d14b98425bcfc53ca2dc50f768.tar.gz |
Support a stateless configuration by default
Using a stateless configuration, we ship sensible defaults in our vendor-config
file to live in the /usr/share/ filesystem, which is considered to be provided
by the vendor, and to all intents and purposes, read-only.
With this change we can fall-back to the vendor system configuration to
always do the right thing, in the absence of a local system administrator
configuration file in the /etc/ tree.
Notably, this saves users from the potential risks and pitfalls of so called
"three way merges" on upgrades, and offers the immediate benefit that one
can perform a factory reset of the software, simply by removing the relevant
file in /etc/.
This change also resolves a memory leak in the launch code, where a string
allocation was entirely unnecessary.
Signed-off-by: Ikey Doherty <michael.i.doherty@intel.com>
Diffstat (limited to 'bus')
-rw-r--r-- | bus/Makefile.am | 3 | ||||
-rw-r--r-- | bus/at-spi-bus-launcher.c | 10 |
2 files changed, 10 insertions, 3 deletions
diff --git a/bus/Makefile.am b/bus/Makefile.am index d9664abb..b189e027 100644 --- a/bus/Makefile.am +++ b/bus/Makefile.am @@ -1,11 +1,12 @@ CLEANFILES= -busconfigdir = $(sysconfdir)/at-spi2 +busconfigdir = $(datadir)/defaults/at-spi2 busconfig_DATA = accessibility.conf libexec_PROGRAMS = at-spi-bus-launcher at_spi_bus_launcher_SOURCES = at-spi-bus-launcher.c at_spi_bus_launcher_CPPFLAGS = -DSYSCONFDIR=\"$(sysconfdir)\" \ + -DDATADIR=\"$(datadir)\" \ -DDBUS_DAEMON=\"$(DBUS_DAEMON)\" at_spi_bus_launcher_CFLAGS = $(GIO_CFLAGS) at_spi_bus_launcher_LDADD = $(GIO_LIBS) $(X_LIBS) diff --git a/bus/at-spi-bus-launcher.c b/bus/at-spi-bus-launcher.c index c445be8f..7ea82832 100644 --- a/bus/at-spi-bus-launcher.c +++ b/bus/at-spi-bus-launcher.c @@ -272,11 +272,17 @@ ensure_a11y_bus (A11yBusLauncher *app) char *argv[] = { DBUS_DAEMON, NULL, "--nofork", "--print-address", "3", NULL }; char addr_buf[2048]; GError *error = NULL; + const char *config_path = NULL; if (app->a11y_bus_pid != 0) return FALSE; - - argv[1] = g_strdup_printf ("--config-file=%s/at-spi2/accessibility.conf", SYSCONFDIR); + + if (g_file_test (SYSCONFDIR"/at-spi2/accessibility.conf", G_FILE_TEST_EXISTS)) + config_path = "--config-file="SYSCONFDIR"/at-spi2/accessibility.conf"; + else + config_path = "--config-file="DATADIR"/defaults/at-spi2/accessibility.conf"; + + argv[1] = config_path; if (pipe (app->pipefd) < 0) g_error ("Failed to create pipe: %s", strerror (errno)); |