nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1diff --git a/bus/legacy-config/meson.build b/bus/legacy-config/meson.build
2index 1e635713..4be240e9 100644
3--- a/bus/legacy-config/meson.build
4+++ b/bus/legacy-config/meson.build
5@@ -24,7 +24,7 @@ if platform_unix
6 input: 'system.conf.in',
7 output: 'system.conf',
8 configuration: data_config,
9- install_dir: get_option('sysconfdir') / 'dbus-1',
10+ install_dir: install_sysconfdir / 'dbus-1',
11 )
12 endif
13
14@@ -32,5 +32,5 @@ configure_file(
15 input: 'session.conf.in',
16 output: 'session.conf',
17 configuration: data_config,
18- install_dir: get_option('sysconfdir') / 'dbus-1',
19+ install_dir: install_sysconfdir / 'dbus-1',
20 )
21diff --git a/bus/meson.build b/bus/meson.build
22index 058e3b25..0a5de112 100644
23--- a/bus/meson.build
24+++ b/bus/meson.build
25@@ -23,7 +23,7 @@ session_conf = configure_file(
26 input: 'session.conf.in',
27 output: 'session.conf',
28 configuration: data_config,
29- install_dir: get_option('datadir') / 'dbus-1',
30+ install_dir: install_datadir / 'dbus-1',
31 )
32
33 if platform_unix
34@@ -31,7 +31,7 @@ if platform_unix
35 input: 'system.conf.in',
36 output: 'system.conf',
37 configuration: data_config,
38- install_dir: get_option('datadir') / 'dbus-1',
39+ install_dir: install_datadir / 'dbus-1',
40 )
41 endif
42
43@@ -39,19 +39,19 @@ configure_file(
44 input: 'example-system-enable-stats.conf.in',
45 output: 'example-system-enable-stats.conf',
46 configuration: data_config,
47- install_dir: get_option('datadir') / 'doc' / 'dbus' / 'examples',
48+ install_dir: install_datadir / 'doc' / 'dbus' / 'examples',
49 )
50
51 configure_file(
52 input: 'example-session-disable-stats.conf.in',
53 output: 'example-session-disable-stats.conf',
54 configuration: data_config,
55- install_dir: get_option('datadir') / 'doc' / 'dbus' / 'examples',
56+ install_dir: install_datadir / 'doc' / 'dbus' / 'examples',
57 )
58
59 install_data(
60 'example-system-hardening-without-traditional-activation.conf',
61- install_dir: get_option('datadir') / 'doc' / 'dbus' / 'examples',
62+ install_dir: install_datadir / 'doc' / 'dbus' / 'examples',
63 )
64
65 if use_launchd
66@@ -185,15 +185,14 @@ if platform_unix and use_traditional_activation
67 endif
68
69 install_emptydirs += [
70- get_option('datadir') / 'dbus-1' / 'session.d',
71- get_option('datadir') / 'dbus-1' / 'services',
72+ install_datadir / 'dbus-1' / 'session.d',
73+ install_datadir / 'dbus-1' / 'services',
74 ]
75
76 if platform_unix
77 install_emptydirs += [
78- runstatedir / 'dbus',
79- get_option('datadir') / 'dbus-1' / 'system.d',
80- get_option('datadir') / 'dbus-1' / 'system-services',
81+ install_datadir / 'dbus-1' / 'system.d',
82+ install_datadir / 'dbus-1' / 'system-services',
83 ]
84 endif
85
86diff --git a/doc/meson.build b/doc/meson.build
87index adc6f17d..1f2c5dce 100644
88--- a/doc/meson.build
89+++ b/doc/meson.build
90@@ -142,7 +142,7 @@ configure_file(
91 # Install dtd files
92
93
94-xml_dir = get_option('datadir') / 'xml' / 'dbus-1'
95+xml_dir = install_datadir / 'xml' / 'dbus-1'
96 dtd_files = [
97 'busconfig.dtd',
98 'introspect.dtd',
99diff --git a/meson.build b/meson.build
100index 3f4ad316..6cee2c6b 100644
101--- a/meson.build
102+++ b/meson.build
103@@ -918,7 +918,17 @@ dbus_enable_modular_tests = (
104 ###############################################################################
105 # Paths and directories
106
107-docs_dir = get_option('datadir') / 'doc' / 'dbus'
108+install_datadir = get_option('install_datadir')
109+if install_datadir == ''
110+ install_datadir = get_option('prefix') / get_option('datadir')
111+endif
112+
113+install_sysconfdir = get_option('install_sysconfdir')
114+if install_sysconfdir == ''
115+ install_sysconfdir = get_option('prefix') / get_option('sysconfdir')
116+endif
117+
118+docs_dir = install_datadir / 'doc' / 'dbus'
119
120 # TODO: If a future Meson version gets a runstatedir option, try both.
121 # https://github.com/mesonbuild/meson/issues/4141
122diff --git a/meson_options.txt b/meson_options.txt
123index 1bd00579..1dfb3c15 100644
124--- a/meson_options.txt
125+++ b/meson_options.txt
126@@ -109,6 +109,20 @@ option(
127 description: 'Inotify support on Linux'
128 )
129
130+option(
131+ 'install_datadir',
132+ type: 'string',
133+ value: '',
134+ description: 'datadir for installation, so that we can set --datadir=/etc and have dbus load files from there but still install them to $out/share'
135+)
136+
137+option(
138+ 'install_sysconfdir',
139+ type: 'string',
140+ value: '',
141+ description: 'sysconfdir for installation, so that we can set --sysconfdir=/etc and have dbus load files from there but still install them to $out/etc'
142+)
143+
144 option(
145 'installed_tests',
146 type: 'boolean',
147diff --git a/test/data/meson.build b/test/data/meson.build
148index ef570492..713396b7 100644
149--- a/test/data/meson.build
150+++ b/test/data/meson.build
151@@ -224,14 +224,14 @@ if install_tests
152 'link_name': 'session.conf',
153 'install_dir': test_exec_dir / 'data' / 'valid-config-files',
154 'pointing_to':
155- get_option('prefix') / get_option('datadir') /
156+ install_datadir /
157 'dbus-1' / 'session.conf',
158 },
159 {
160 'link_name': 'system.conf',
161 'install_dir': test_exec_dir / 'data' / 'valid-config-files-system',
162 'pointing_to':
163- get_option('prefix') / get_option('datadir') /
164+ install_datadir /
165 'dbus-1' / 'system.conf',
166 },
167 ]
168diff --git a/test/meson.build b/test/meson.build
169index a60afac6..be7bd935 100644
170--- a/test/meson.build
171+++ b/test/meson.build
172@@ -25,7 +25,7 @@
173 install_tests = get_option('installed_tests')
174
175 test_exec_dir = get_option('libexecdir') / 'installed-tests' / 'dbus'
176-test_meta_dir = get_option('datadir') / 'installed-tests' / 'dbus'
177+test_meta_dir = install_datadir / 'installed-tests' / 'dbus'
178
179 ###############################################################################
180 # Test configuration needs some specific keys
181diff --git a/tools/meson.build b/tools/meson.build
182index 5d78d93a..7d094364 100644
183--- a/tools/meson.build
184+++ b/tools/meson.build
185@@ -112,5 +112,4 @@ install_data('GetAllMatchRules.py',
186
187 # Create the empty directory to hold the machine ID
188 install_emptydirs += [
189- get_option('localstatedir') / 'lib' / 'dbus',
190 ]