commit af2cfa52211d59ecfb6e3ccd9be4c7ccbd920268
parent 2694fd72b6c98da6e8ee11cc14bfe9c02dff16f6
Author: sghctoma <sghctoma@gmail.com>
Date: Wed, 17 Oct 2018 15:06:55 +0200
Set sysconfdir to /etc only if prefix is /usr
PR #2855 basically hardcodes the config file path to /etc, which is a
problem on e.g. FreeBSD, where the expected path for config files of
non-base software is '/usr/local/etc'.
Meson sets sysconfdir to '/etc' explicitly only when prefix is '/usr',
so it is still possible to use '/usr/local' as prefix, and install the
config files under '/usr/local/etc'. This commit allows to do that by
setting sysconfdir based on the value of prefix.
Diffstat:
1 file changed, 15 insertions(+), 2 deletions(-)
diff --git a/meson.build b/meson.build
@@ -114,7 +114,13 @@ if scdoc.found()
endforeach
endif
-add_project_arguments('-DSYSCONFDIR="/@0@"'.format(sysconfdir), language : 'c')
+# If prefix is '/usr', sysconfdir will be explicitly set to '/etc' by Meson to
+# enforce FHS compliance, so we should look for configs there as well.
+if prefix == '/usr'
+ add_project_arguments('-DSYSCONFDIR="/@0@"'.format(sysconfdir), language : 'c')
+else
+ add_project_arguments('-DSYSCONFDIR="/@0@/@1@"'.format(prefix, sysconfdir), language : 'c')
+endif
version = get_option('sway-version')
if version != ''
@@ -157,10 +163,17 @@ subdir('swaynag')
subdir('swaylock')
config = configuration_data()
-config.set('sysconfdir', sysconfdir)
config.set('datadir', join_paths(prefix, datadir))
config.set('prefix', prefix)
+# If prefix is '/usr', sysconfdir will be explicitly set to '/etc' by Meson to
+# enforce FHS compliance, so we should look for configs there as well.
+if prefix == '/usr'
+ config.set('sysconfdir', sysconfdir)
+else
+ config.set('sysconfdir', join_paths(prefix, sysconfdir))
+endif
+
configure_file(
configuration: config,
input: 'config.in',