diff options
author | Jörg Thalheim <joerg@thalheim.io> | 2020-11-12 08:01:39 +0100 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2020-11-12 11:21:46 +0100 |
commit | d7aa78c32f076c305ceeb183fc06eb1de0960deb (patch) | |
tree | d7d262549dff0b1e195b1367616995241370d821 /src | |
parent | faa73d4e0c8095fedd98ff29851b9634810ff97e (diff) | |
download | systemd-d7aa78c32f076c305ceeb183fc06eb1de0960deb.tar.gz |
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
Diffstat (limited to 'src')
-rw-r--r-- | src/core/meson.build | 20 | ||||
-rw-r--r-- | src/coredump/meson.build | 2 | ||||
-rw-r--r-- | src/home/meson.build | 6 | ||||
-rw-r--r-- | src/journal-remote/meson.build | 12 | ||||
-rw-r--r-- | src/journal/meson.build | 6 | ||||
-rw-r--r-- | src/kernel-install/meson.build | 23 | ||||
-rw-r--r-- | src/login/meson.build | 6 | ||||
-rw-r--r-- | src/network/meson.build | 6 | ||||
-rw-r--r-- | src/oom/meson.build | 6 | ||||
-rw-r--r-- | src/pstore/meson.build | 2 | ||||
-rw-r--r-- | src/resolve/meson.build | 6 | ||||
-rw-r--r-- | src/timesync/meson.build | 6 | ||||
-rw-r--r-- | src/udev/meson.build | 12 |
13 files changed, 71 insertions, 42 deletions
diff --git a/src/core/meson.build b/src/core/meson.build index 552590393d..77767eb603 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 663c6c7a07..ebd99bd379 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 7847449c43..e3cc1a9fb5 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 66cbcc69df..4572f4bd1c 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 520e33c0b8..7aea28d129 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 851e827590..4117188f14 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 fd3202cd98..e09610960b 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 cd1a897199..f5ca183088 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 a250d2a62a..e966ad1dd8 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 3b3a37c777..6c0ab0563b 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 eb6fabea95..8e7bad0659 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 22b6347bab..571e3fc7ef 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 e6dd4c7cac..5eb0f994a5 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', |