summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJörg Thalheim <joerg@thalheim.io>2020-11-12 08:01:39 +0100
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2020-11-12 11:21:46 +0100
commitd7aa78c32f076c305ceeb183fc06eb1de0960deb (patch)
treed7d262549dff0b1e195b1367616995241370d821
parentlicense: LGPL-2.1+ -> LGPL-2.1-or-later (diff)
downloadsystemd-d7aa78c32f076c305ceeb183fc06eb1de0960deb.tar.xz
systemd-d7aa78c32f076c305ceeb183fc06eb1de0960deb.zip
meson: add option to skip installing to $sysconfdir
This is useful for development where overwriting files out side the configured prefix will affect the host as well as stateless systems such as NixOS that don't let packages install to /etc but handle configuration on their own. Alternative to https://github.com/systemd/systemd/pull/17501 tested with: $ mkdir inst build && cd build $ meson \ -Dcreate-log-dirs=false \ -Dsysvrcnd-path=$(realpath ../inst)/etc/rc.d \ -Dsysvinit-path=$(realpath ../inst)/etc/init.d \ -Drootprefix=$(realpath ../inst) \ -Dinstall-sysconfdir=false \ --prefix=$(realpath ../inst) .. $ ninja install
-rw-r--r--hwdb.d/meson.build12
-rw-r--r--meson.build25
-rw-r--r--meson_options.txt2
-rw-r--r--network/meson.build6
-rw-r--r--src/core/meson.build20
-rw-r--r--src/coredump/meson.build2
-rw-r--r--src/home/meson.build6
-rw-r--r--src/journal-remote/meson.build12
-rw-r--r--src/journal/meson.build6
-rw-r--r--src/kernel-install/meson.build23
-rw-r--r--src/login/meson.build6
-rw-r--r--src/network/meson.build6
-rw-r--r--src/oom/meson.build6
-rw-r--r--src/pstore/meson.build2
-rw-r--r--src/resolve/meson.build6
-rw-r--r--src/timesync/meson.build6
-rw-r--r--src/udev/meson.build12
-rw-r--r--sysctl.d/meson.build6
-rw-r--r--tmpfiles.d/meson.build2
-rw-r--r--units/meson.build8
20 files changed, 111 insertions, 63 deletions
diff --git a/hwdb.d/meson.build b/hwdb.d/meson.build
index 63a56b49cc6..6fcb364acdd 100644
--- a/hwdb.d/meson.build
+++ b/hwdb.d/meson.build
@@ -42,12 +42,14 @@ if conf.get('ENABLE_HWDB') == 1
hwdb_files_test,
install_dir : udevhwdbdir)
- meson.add_install_script('sh', '-c',
- mkdir_p.format(join_paths(sysconfdir, 'udev/hwdb.d')))
+ if install_sysconfdir
+ meson.add_install_script('sh', '-c',
+ mkdir_p.format(join_paths(sysconfdir, 'udev/hwdb.d')))
- meson.add_install_script('sh', '-c',
- 'test -n "$DESTDIR" || @0@/systemd-hwdb update'
- .format(rootbindir))
+ meson.add_install_script('sh', '-c',
+ 'test -n "$DESTDIR" || @0@/systemd-hwdb update'
+ .format(rootbindir))
+ endif
if want_tests != 'false'
parse_hwdb_py = find_program('parse_hwdb.py')
diff --git a/meson.build b/meson.build
index 19efa92db8f..7996bc2c659 100644
--- a/meson.build
+++ b/meson.build
@@ -126,6 +126,7 @@ if rootlibdir == ''
rootlibdir = join_paths(rootprefixdir, libdir.split('/')[-1])
endif
+install_sysconfdir = get_option('install-sysconfdir')
# Dirs of external packages
pkgconfigdatadir = get_option('pkgconfigdatadir') == '' ? join_paths(datadir, 'pkgconfig') : get_option('pkgconfigdatadir')
pkgconfiglibdir = get_option('pkgconfiglibdir') == '' ? join_paths(libdir, 'pkgconfig') : get_option('pkgconfiglibdir')
@@ -2776,8 +2777,10 @@ if conf.get('ENABLE_BINFMT') == 1
meson.add_install_script('sh', '-c',
mkdir_p.format(binfmtdir))
- meson.add_install_script('sh', '-c',
- mkdir_p.format(join_paths(sysconfdir, 'binfmt.d')))
+ if install_sysconfdir
+ meson.add_install_script('sh', '-c',
+ mkdir_p.format(join_paths(sysconfdir, 'binfmt.d')))
+ endif
endif
if conf.get('ENABLE_REPART') == 1
@@ -2891,8 +2894,10 @@ executable(
install : true,
install_dir : rootlibexecdir)
-install_data('src/sleep/sleep.conf',
- install_dir : pkgsysconfdir)
+if install_sysconfdir
+ install_data('src/sleep/sleep.conf',
+ install_dir : pkgsysconfdir)
+endif
public_programs += executable(
'systemd-sysctl',
@@ -3243,8 +3248,10 @@ if conf.get('HAVE_KMOD') == 1
meson.add_install_script('sh', '-c',
mkdir_p.format(modulesloaddir))
- meson.add_install_script('sh', '-c',
- mkdir_p.format(join_paths(sysconfdir, 'modules-load.d')))
+ if install_sysconfdir
+ meson.add_install_script('sh', '-c',
+ mkdir_p.format(join_paths(sysconfdir, 'modules-load.d')))
+ endif
endif
public_programs += executable(
@@ -3489,8 +3496,10 @@ subdir('docs/var-log')
install_subdir('factory/etc',
install_dir : factorydir)
-install_data('xorg/50-systemd-user.sh',
- install_dir : xinitrcdir)
+if install_sysconfdir
+ install_data('xorg/50-systemd-user.sh',
+ install_dir : xinitrcdir)
+endif
install_data('modprobe.d/systemd.conf',
install_dir : modprobedir)
install_data('LICENSE.GPL2',
diff --git a/meson_options.txt b/meson_options.txt
index ff45d603509..2435ccebd48 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -180,6 +180,8 @@ option('pamconfdir', type : 'string',
description : 'directory for PAM configuration ["no" disables]')
option('docdir', type : 'string',
description : 'documentation directory')
+option('install-sysconfdir', type : 'boolean', value : true,
+ description : 'install configuration files to $sysconfdir')
option('fallback-hostname', type : 'string', value : 'localhost',
description : 'the hostname used if none configured')
diff --git a/network/meson.build b/network/meson.build
index 08f29ca7dff..b0e60f72176 100644
--- a/network/meson.build
+++ b/network/meson.build
@@ -10,8 +10,10 @@ if conf.get('ENABLE_NETWORKD') == 1
'80-wifi-station.network.example',
install_dir : networkdir)
- meson.add_install_script('sh', '-c',
- mkdir_p.format(join_paths(sysconfdir, 'systemd/network')))
+ if install_sysconfdir
+ meson.add_install_script('sh', '-c',
+ mkdir_p.format(join_paths(sysconfdir, 'systemd/network')))
+ endif
endif
install_data('99-default.link',
diff --git a/src/core/meson.build b/src/core/meson.build
index 552590393d0..77767eb6033 100644
--- a/src/core/meson.build
+++ b/src/core/meson.build
@@ -192,12 +192,14 @@ in_files = [['macros.systemd', rpmmacrosdir],
foreach item : in_files
file = item[0]
dir = item[1]
+ if install_sysconfdir or dir != pkgsysconfdir
+ configure_file(
+ input : file + '.in',
+ output : file,
+ configuration : substs,
+ install_dir : dir == 'no' ? '' : dir)
+ endif
- configure_file(
- input : file + '.in',
- output : file,
- configuration : substs,
- install_dir : dir == 'no' ? '' : dir)
endforeach
install_data('org.freedesktop.systemd1.conf',
@@ -217,6 +219,8 @@ meson.add_install_script('sh', '-c', mkdir_p.format(systemsleepdir))
meson.add_install_script('sh', '-c', mkdir_p.format(systemgeneratordir))
meson.add_install_script('sh', '-c', mkdir_p.format(usergeneratordir))
-meson.add_install_script('sh', '-c', mkdir_p.format(join_paths(pkgsysconfdir, 'system')))
-meson.add_install_script('sh', '-c', mkdir_p.format(join_paths(pkgsysconfdir, 'user')))
-meson.add_install_script('sh', '-c', mkdir_p.format(join_paths(sysconfdir, 'xdg/systemd')))
+if install_sysconfdir
+ meson.add_install_script('sh', '-c', mkdir_p.format(join_paths(pkgsysconfdir, 'system')))
+ meson.add_install_script('sh', '-c', mkdir_p.format(join_paths(pkgsysconfdir, 'user')))
+ meson.add_install_script('sh', '-c', mkdir_p.format(join_paths(sysconfdir, 'xdg/systemd')))
+endif
diff --git a/src/coredump/meson.build b/src/coredump/meson.build
index 663c6c7a07b..ebd99bd379d 100644
--- a/src/coredump/meson.build
+++ b/src/coredump/meson.build
@@ -13,7 +13,7 @@ endif
coredumpctl_sources = files('coredumpctl.c')
-if conf.get('ENABLE_COREDUMP') == 1
+if conf.get('ENABLE_COREDUMP') == 1 and install_sysconfdir
install_data('coredump.conf',
install_dir : pkgsysconfdir)
endif
diff --git a/src/home/meson.build b/src/home/meson.build
index 7847449c434..e3cc1a9fb5b 100644
--- a/src/home/meson.build
+++ b/src/home/meson.build
@@ -107,8 +107,10 @@ if conf.get('ENABLE_HOMED') == 1
install_data('org.freedesktop.home1.policy',
install_dir : polkitpolicydir)
- install_data('homed.conf',
- install_dir : pkgsysconfdir)
+ if install_sysconfdir
+ install_data('homed.conf',
+ install_dir : sysconfdir)
+ endif
endif
tests += [
diff --git a/src/journal-remote/meson.build b/src/journal-remote/meson.build
index 66cbcc69df8..4572f4bd1c5 100644
--- a/src/journal-remote/meson.build
+++ b/src/journal-remote/meson.build
@@ -48,8 +48,10 @@ if conf.get('ENABLE_REMOTE') ==1 and conf.get('HAVE_LIBCURL') == 1
input : 'journal-upload.conf.in',
output : 'journal-upload.conf',
configuration : substs)
- install_data(journal_upload_conf,
- install_dir : pkgsysconfdir)
+ if install_sysconfdir
+ install_data(journal_upload_conf,
+ install_dir : pkgsysconfdir)
+ endif
endif
if conf.get('ENABLE_REMOTE') == 1 and conf.get('HAVE_MICROHTTPD') == 1
@@ -57,8 +59,10 @@ if conf.get('ENABLE_REMOTE') == 1 and conf.get('HAVE_MICROHTTPD') == 1
input : 'journal-remote.conf.in',
output : 'journal-remote.conf',
configuration : substs)
- install_data(journal_remote_conf,
- install_dir : pkgsysconfdir)
+ if install_sysconfdir
+ install_data(journal_remote_conf,
+ install_dir : pkgsysconfdir)
+ endif
install_data('browse.html',
install_dir : join_paths(pkgdatadir, 'gatewayd'))
diff --git a/src/journal/meson.build b/src/journal/meson.build
index 520e33c0b82..7aea28d129c 100644
--- a/src/journal/meson.build
+++ b/src/journal/meson.build
@@ -107,8 +107,10 @@ journalctl_sources = files('''
pcre2-dlopen.h
'''.split())
-install_data('journald.conf',
- install_dir : pkgsysconfdir)
+if install_sysconfdir
+ install_data('journald.conf',
+ install_dir : pkgsysconfdir)
+endif
if get_option('create-log-dirs')
meson.add_install_script(
diff --git a/src/kernel-install/meson.build b/src/kernel-install/meson.build
index 851e8275902..4117188f147 100644
--- a/src/kernel-install/meson.build
+++ b/src/kernel-install/meson.build
@@ -3,16 +3,19 @@
want_kernel_install = get_option('kernel-install')
if want_kernel_install
- install_data('kernel-install',
- install_mode : 'rwxr-xr-x',
- install_dir : bindir)
+ install_data('kernel-install',
+ install_mode : 'rwxr-xr-x',
+ install_dir : bindir)
- install_data('00-entry-directory.install',
- '50-depmod.install',
- '90-loaderentry.install',
- install_mode : 'rwxr-xr-x',
- install_dir : kernelinstalldir)
+ install_data('00-entry-directory.install',
+ '50-depmod.install',
+ '90-loaderentry.install',
+ install_mode : 'rwxr-xr-x',
+ install_dir : kernelinstalldir)
+
+ if install_sysconfdir
+ meson.add_install_script('sh', '-c',
+ mkdir_p.format(join_paths(sysconfdir, 'kernel/install.d')))
+ endif
- meson.add_install_script('sh', '-c',
- mkdir_p.format(join_paths(sysconfdir, 'kernel/install.d')))
endif
diff --git a/src/login/meson.build b/src/login/meson.build
index fd3202cd989..e09610960bf 100644
--- a/src/login/meson.build
+++ b/src/login/meson.build
@@ -74,8 +74,10 @@ if conf.get('ENABLE_LOGIND') == 1
input : 'logind.conf.in',
output : 'logind.conf',
configuration : substs)
- install_data(logind_conf,
- install_dir : pkgsysconfdir)
+ if install_sysconfdir
+ install_data(logind_conf,
+ install_dir : pkgsysconfdir)
+ endif
install_data('org.freedesktop.login1.conf',
install_dir : dbuspolicydir)
diff --git a/src/network/meson.build b/src/network/meson.build
index cd1a8971998..f5ca183088d 100644
--- a/src/network/meson.build
+++ b/src/network/meson.build
@@ -236,8 +236,10 @@ if conf.get('ENABLE_NETWORKD') == 1
install_dir : polkitpkladir)
endif
- install_data('networkd.conf',
- install_dir : pkgsysconfdir)
+ if install_sysconfdir
+ install_data('networkd.conf',
+ install_dir : pkgsysconfdir)
+ endif
fuzzers += [
[['src/network/fuzz-netdev-parser.c',
diff --git a/src/oom/meson.build b/src/oom/meson.build
index a250d2a62a4..e966ad1dd89 100644
--- a/src/oom/meson.build
+++ b/src/oom/meson.build
@@ -29,6 +29,8 @@ if conf.get('ENABLE_OOMD') == 1
install_data('org.freedesktop.oom1.service',
install_dir : dbussystemservicedir)
- install_data('oomd.conf',
- install_dir : pkgsysconfdir)
+ if install_sysconfdir
+ install_data('oomd.conf',
+ install_dir : sysconfdir)
+ endif
endif
diff --git a/src/pstore/meson.build b/src/pstore/meson.build
index 3b3a37c7779..6c0ab0563b5 100644
--- a/src/pstore/meson.build
+++ b/src/pstore/meson.build
@@ -4,7 +4,7 @@ systemd_pstore_sources = files('''
pstore.c
'''.split())
-if conf.get('ENABLE_PSTORE') == 1
+if conf.get('ENABLE_PSTORE') == 1 and install_sysconfdir
install_data('pstore.conf',
install_dir : pkgsysconfdir)
endif
diff --git a/src/resolve/meson.build b/src/resolve/meson.build
index eb6fabea958..8e7bad06592 100644
--- a/src/resolve/meson.build
+++ b/src/resolve/meson.build
@@ -169,8 +169,10 @@ if conf.get('ENABLE_RESOLVE') == 1
input : 'resolved.conf.in',
output : 'resolved.conf',
configuration : substs)
- install_data(resolved_conf,
- install_dir : pkgsysconfdir)
+ if install_sysconfdir
+ install_data(resolved_conf,
+ install_dir : pkgsysconfdir)
+ endif
install_data('resolv.conf',
install_dir : rootlibexecdir)
diff --git a/src/timesync/meson.build b/src/timesync/meson.build
index 22b6347babd..571e3fc7efc 100644
--- a/src/timesync/meson.build
+++ b/src/timesync/meson.build
@@ -26,8 +26,10 @@ if conf.get('ENABLE_TIMESYNCD') == 1
input : 'timesyncd.conf.in',
output : 'timesyncd.conf',
configuration : substs)
- install_data(timesyncd_conf,
- install_dir : pkgsysconfdir)
+ if install_sysconfdir
+ install_data(timesyncd_conf,
+ install_dir : pkgsysconfdir)
+ endif
install_data('org.freedesktop.timesync1.conf',
install_dir : dbuspolicydir)
install_data('org.freedesktop.timesync1.service',
diff --git a/src/udev/meson.build b/src/udev/meson.build
index e6dd4c7cac9..5eb0f994a58 100644
--- a/src/udev/meson.build
+++ b/src/udev/meson.build
@@ -185,8 +185,10 @@ foreach prog : [['ata_id/ata_id.c'],
install_dir : udevlibexecdir)
endforeach
-install_data('udev.conf',
- install_dir : join_paths(sysconfdir, 'udev'))
+if install_sysconfdir
+ install_data('udev.conf',
+ install_dir : join_paths(sysconfdir, 'udev'))
+endif
configure_file(
input : 'udev.pc.in',
@@ -194,8 +196,10 @@ configure_file(
configuration : substs,
install_dir : pkgconfigdatadir == 'no' ? '' : pkgconfigdatadir)
-meson.add_install_script('sh', '-c',
- mkdir_p.format(join_paths(sysconfdir, 'udev/rules.d')))
+if install_sysconfdir
+ meson.add_install_script('sh', '-c',
+ mkdir_p.format(join_paths(sysconfdir, 'udev/rules.d')))
+endif
fuzzers += [
[['src/udev/net/fuzz-link-parser.c',
diff --git a/sysctl.d/meson.build b/sysctl.d/meson.build
index e9b20ea5407..e8d8fc8c53b 100644
--- a/sysctl.d/meson.build
+++ b/sysctl.d/meson.build
@@ -26,5 +26,7 @@ foreach file : in_files
install_dir : sysctldir)
endforeach
-meson.add_install_script('sh', '-c',
- mkdir_p.format(join_paths(sysconfdir, 'sysctl.d')))
+if install_sysconfdir
+ meson.add_install_script('sh', '-c',
+ mkdir_p.format(join_paths(sysconfdir, 'sysctl.d')))
+endif
diff --git a/tmpfiles.d/meson.build b/tmpfiles.d/meson.build
index a41dd3e454c..7322460dbae 100644
--- a/tmpfiles.d/meson.build
+++ b/tmpfiles.d/meson.build
@@ -55,7 +55,7 @@ foreach file : m4_files
endif
endforeach
-if enable_tmpfiles
+if enable_tmpfiles and install_sysconfdir
meson.add_install_script(
'sh', '-c',
mkdir_p.format(join_paths(sysconfdir, 'tmpfiles.d')))
diff --git a/units/meson.build b/units/meson.build
index e249539dc8f..ba60eb7fc12 100644
--- a/units/meson.build
+++ b/units/meson.build
@@ -326,9 +326,11 @@ install_data('user-.slice.d/10-defaults.conf',
############################################################
-meson.add_install_script(meson_make_symlink,
- join_paths(pkgsysconfdir, 'user'),
- join_paths(sysconfdir, 'xdg/systemd/user'))
+if install_sysconfdir
+ meson.add_install_script(meson_make_symlink,
+ join_paths(pkgsysconfdir, 'user'),
+ join_paths(sysconfdir, 'xdg/systemd/user'))
+endif
meson.add_install_script(meson_make_symlink,
join_paths(dbussystemservicedir, 'org.freedesktop.systemd1.service'),
join_paths(dbussessionservicedir, 'org.freedesktop.systemd1.service'))