Skip to content
This repository has been archived by the owner on Aug 6, 2020. It is now read-only.

Commit

Permalink
Install default configuration into $out/share/factory
Browse files Browse the repository at this point in the history
By default systemd should read all its configuration from /etc. Therefor
we rely on -Dsysconfdir=/etc in meson as default value. Unfortunately
this would also lead to installation of systemd's own configuration
files to `/etc` whereas we are limited to /nix/store. To counter that
this commit introduces two new configuration variables `factoryconfdir`
and `factorypkgconfdir` to install systemd's own configuration into nix
store again, while having executables looking up files in /etc.
  • Loading branch information
Mic92 authored and globin committed Mar 2, 2018
1 parent 7cb3c05 commit 98067cc
Show file tree
Hide file tree
Showing 15 changed files with 37 additions and 34 deletions.
2 changes: 1 addition & 1 deletion hwdb/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ if conf.get('ENABLE_HWDB') == 1
install_dir : udevhwdbdir)

meson.add_install_script('sh', '-c',
mkdir_p.format(join_paths(sysconfdir, 'udev/hwdb.d')))
mkdir_p.format(join_paths(factoryconfdir, 'udev/hwdb.d')))
endif

############################################################
Expand Down
9 changes: 6 additions & 3 deletions meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,9 @@ udevhwdbdir = join_paths(udevlibexecdir, 'hwdb.d')
catalogdir = join_paths(prefixdir, 'lib/systemd/catalog')
kernelinstalldir = join_paths(prefixdir, 'lib/kernel/install.d')
factorydir = join_paths(datadir, 'factory')
factoryconfdir = join_paths(datadir, 'factory/etc')
factorypkgconfdir = join_paths(datadir, 'factory/etc/systemd')
factoryxinitrcdir = join_paths(datadir, 'factory/etc/X11/xinit/xinitrc.d')
docdir = join_paths(datadir, 'doc/systemd')
bootlibdir = join_paths(prefixdir, 'lib/systemd/boot/efi')
testsdir = join_paths(prefixdir, 'lib/systemd/tests')
Expand Down Expand Up @@ -2004,7 +2007,7 @@ 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')))
mkdir_p.format(join_paths(factoryconfdir, 'binfmt.d')))
endif

if conf.get('ENABLE_VCONSOLE') == 1
Expand Down Expand Up @@ -2385,7 +2388,7 @@ 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')))
mkdir_p.format(join_paths(factoryconfdir, 'modules-load.d')))
endif

exe = executable('systemd-nspawn',
Expand Down Expand Up @@ -2571,7 +2574,7 @@ install_subdir('factory/etc',


install_data('xorg/50-systemd-user.sh',
install_dir : xinitrcdir)
install_dir : factoryxinitrcdir)
install_data('modprobe.d/systemd.conf',
install_dir : modprobedir)
install_data('README',
Expand Down
2 changes: 1 addition & 1 deletion network/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ if conf.get('ENABLE_NETWORKD') == 1
install_dir : networkdir)

meson.add_install_script('sh', '-c',
mkdir_p.format(join_paths(sysconfdir, 'systemd/network')))
mkdir_p.format(join_paths(factoryconfdir, 'systemd/network')))
endif

install_data('99-default.link',
Expand Down
10 changes: 5 additions & 5 deletions src/core/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -227,18 +227,18 @@ i18n.merge_file(

install_data('system.conf',
'user.conf',
install_dir : pkgsysconfdir)
install_dir : factorypkgconfdir)

meson.add_install_script('sh', '-c', mkdir_p.format(systemshutdowndir))
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/multi-user.target.wants')))
mkdir_p.format(join_paths(factorypkgconfdir, 'system/multi-user.target.wants')))
meson.add_install_script('sh', '-c',
mkdir_p.format(join_paths(pkgsysconfdir, 'system/getty.target.wants')))
mkdir_p.format(join_paths(factorypkgconfdir, 'system/getty.target.wants')))
meson.add_install_script('sh', '-c',
mkdir_p.format(join_paths(pkgsysconfdir, 'user')))
mkdir_p.format(join_paths(factorypkgconfdir, 'user')))
meson.add_install_script('sh', '-c',
mkdir_p.format(join_paths(sysconfdir, 'xdg/systemd')))
mkdir_p.format(join_paths(factoryconfdir, 'xdg/systemd')))
2 changes: 1 addition & 1 deletion src/coredump/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ endif
coredumpctl_sources = files('coredumpctl.c')

install_data('coredump.conf',
install_dir : pkgsysconfdir)
install_dir : factorypkgconfdir)

tests += [
[['src/coredump/test-coredump-vacuum.c',
Expand Down
4 changes: 2 additions & 2 deletions src/journal-remote/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ if conf.get('ENABLE_REMOTE') ==1 and conf.get('HAVE_LIBCURL') == 1
output : 'journal-upload.conf',
configuration : substs)
install_data(journal_upload_conf,
install_dir : pkgsysconfdir)
install_dir : factorypkgconfdir)
endif

if conf.get('ENABLE_REMOTE') == 1 and conf.get('HAVE_MICROHTTPD') == 1
Expand All @@ -53,7 +53,7 @@ if conf.get('ENABLE_REMOTE') == 1 and conf.get('HAVE_MICROHTTPD') == 1
output : 'journal-remote.conf',
configuration : substs)
install_data(journal_remote_conf,
install_dir : pkgsysconfdir)
install_dir : factorypkgconfdir)

install_data('browse.html',
install_dir : join_paths(pkgdatadir, 'gatewayd'))
Expand Down
2 changes: 1 addition & 1 deletion src/journal/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -124,5 +124,5 @@ if conf.get('HAVE_QRENCODE') == 1
endif

install_data('journald.conf',
install_dir : pkgsysconfdir)
install_dir : factorypkgconfdir)

2 changes: 1 addition & 1 deletion src/kernel-install/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,4 @@ install_data('50-depmod.install',
install_dir : kernelinstalldir)

meson.add_install_script('sh', '-c',
mkdir_p.format(join_paths(sysconfdir, 'kernel/install.d')))
mkdir_p.format(join_paths(factoryconfdir, 'kernel/install.d')))
2 changes: 1 addition & 1 deletion src/login/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ if conf.get('ENABLE_LOGIND') == 1
output : 'logind.conf',
configuration : substs)
install_data(logind_conf,
install_dir : pkgsysconfdir)
install_dir : factorypkgconfdir)

pam_systemd_sym = 'src/login/pam_systemd.sym'
pam_systemd_c = files('pam_systemd.c')
Expand Down
2 changes: 1 addition & 1 deletion src/resolve/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ if conf.get('ENABLE_RESOLVE') == 1
output : 'resolved.conf',
configuration : substs)
install_data(resolved_conf,
install_dir : pkgsysconfdir)
install_dir : factorypkgconfdir)

install_data('resolv.conf',
install_dir : rootlibexecdir)
Expand Down
2 changes: 1 addition & 1 deletion src/timesync/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ if conf.get('ENABLE_TIMESYNCD') == 1
output : 'timesyncd.conf',
configuration : substs)
install_data(timesyncd_conf,
install_dir : pkgsysconfdir)
install_dir : factorypkgconfdir)
endif

############################################################
Expand Down
4 changes: 2 additions & 2 deletions src/udev/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,7 @@ foreach prog : [['ata_id/ata_id.c'],
endforeach

install_data('udev.conf',
install_dir : join_paths(sysconfdir, 'udev'))
install_dir : join_paths(factoryconfdir, 'udev'))

udev_pc = configure_file(
input : 'udev.pc.in',
Expand All @@ -188,4 +188,4 @@ install_data(udev_pc,
install_dir : pkgconfigdatadir)

meson.add_install_script('sh', '-c',
mkdir_p.format(join_paths(sysconfdir, 'udev/rules.d')))
mkdir_p.format(join_paths(factoryconfdir, 'udev/rules.d')))
2 changes: 1 addition & 1 deletion sysctl.d/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -35,4 +35,4 @@ foreach file : in_files
endforeach

meson.add_install_script('sh', '-c',
mkdir_p.format(join_paths(sysconfdir, 'sysctl.d')))
mkdir_p.format(join_paths(factoryconfdir, 'sysctl.d')))
2 changes: 1 addition & 1 deletion tmpfiles.d/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -63,5 +63,5 @@ endforeach
if enable_tmpfiles
meson.add_install_script(
'sh', '-c',
mkdir_p.format(join_paths(sysconfdir, 'tmpfiles.d')))
mkdir_p.format(join_paths(factoryconfdir, 'tmpfiles.d')))
endif
24 changes: 12 additions & 12 deletions units/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ units = [
['local-fs.target', ''],
['machine.slice', 'ENABLE_MACHINED'],
['machines.target', 'ENABLE_MACHINED',
join_paths(pkgsysconfdir, 'system/multi-user.target.wants/')],
join_paths(factorypkgconfdir, 'system/multi-user.target.wants/')],
['multi-user.target', '',
'runlevel2.target runlevel3.target runlevel4.target'],
['network-online.target', ''],
Expand All @@ -66,10 +66,10 @@ units = [
['reboot.target', '',
'runlevel6.target ctrl-alt-del.target'],
['remote-cryptsetup.target', 'HAVE_LIBCRYPTSETUP',
join_paths(pkgsysconfdir, 'system/multi-user.target.wants/')],
join_paths(factorypkgconfdir, 'system/multi-user.target.wants/')],
['remote-fs-pre.target', ''],
['remote-fs.target', '',
join_paths(pkgsysconfdir, 'system/multi-user.target.wants/')],
join_paths(factorypkgconfdir, 'system/multi-user.target.wants/')],
['rescue.target', '',
'runlevel1.target'],
['rpcbind.target', ''],
Expand Down Expand Up @@ -109,7 +109,7 @@ units = [
['systemd-journald.socket', '',
'sockets.target.wants/'],
['systemd-networkd.socket', 'ENABLE_NETWORKD',
join_paths(pkgsysconfdir, 'system/sockets.target.wants/')],
join_paths(factorypkgconfdir, 'system/sockets.target.wants/')],
['systemd-rfkill.socket', 'ENABLE_RFKILL'],
['systemd-tmpfiles-clean.timer', '',
'timers.target.wants/'],
Expand Down Expand Up @@ -184,10 +184,10 @@ in_units = [
['systemd-modules-load.service', 'HAVE_KMOD',
'sysinit.target.wants/'],
['systemd-networkd.service', 'ENABLE_NETWORKD',
join_paths(pkgsysconfdir, 'system/dbus-org.freedesktop.network1.service') + ' ' +
join_paths(pkgsysconfdir, 'system/multi-user.target.wants/')],
join_paths(factorypkgconfdir, 'system/dbus-org.freedesktop.network1.service') + ' ' +
join_paths(factorypkgconfdir, 'system/multi-user.target.wants/')],
['systemd-networkd-wait-online.service', 'ENABLE_NETWORKD',
join_paths(pkgsysconfdir, 'system/network-online.target.wants/')],
join_paths(factorypkgconfdir, 'system/network-online.target.wants/')],
['systemd-nspawn@.service', ''],
['systemd-poweroff.service', ''],
['systemd-quotacheck.service', 'ENABLE_QUOTACHECK'],
Expand All @@ -197,8 +197,8 @@ in_units = [
['systemd-remount-fs.service', '',
'local-fs.target.wants/'],
['systemd-resolved.service', 'ENABLE_RESOLVE',
join_paths(pkgsysconfdir, 'system/dbus-org.freedesktop.resolve1.service') + ' ' +
join_paths(pkgsysconfdir, 'system/multi-user.target.wants/')],
join_paths(factorypkgconfdir, 'system/dbus-org.freedesktop.resolve1.service') + ' ' +
join_paths(factorypkgconfdir, 'system/multi-user.target.wants/')],
['systemd-rfkill.service', 'ENABLE_RFKILL'],
['systemd-suspend.service', ''],
['systemd-sysctl.service', '',
Expand All @@ -208,7 +208,7 @@ in_units = [
['systemd-timedated.service', 'ENABLE_TIMEDATED',
'dbus-org.freedesktop.timedate1.service'],
['systemd-timesyncd.service', 'ENABLE_TIMESYNCD',
join_paths(pkgsysconfdir, 'system/sysinit.target.wants/')],
join_paths(factorypkgconfdir, 'system/sysinit.target.wants/')],
['systemd-tmpfiles-clean.service', 'ENABLE_TMPFILES'],
['systemd-tmpfiles-setup-dev.service', 'ENABLE_TMPFILES',
'sysinit.target.wants/'],
Expand All @@ -235,7 +235,7 @@ in_units = [
m4_units = [
['getty@.service', '',
'autovt@.service ' +
join_paths(pkgsysconfdir, 'system/getty.target.wants/getty@tty1.service')],
join_paths(factorypkgconfdir, 'system/getty.target.wants/getty@tty1.service')],
['serial-getty@.service', ''],
]

Expand Down Expand Up @@ -333,7 +333,7 @@ endforeach

meson.add_install_script(meson_make_symlink,
join_paths(pkgsysconfdir, 'user'),
join_paths(sysconfdir, 'xdg/systemd/user'))
join_paths(factorypkgconfdir, 'xdg/systemd/user'))
meson.add_install_script(meson_make_symlink,
join_paths(dbussystemservicedir, 'org.freedesktop.systemd1.service'),
join_paths(dbussessionservicedir, 'org.freedesktop.systemd1.service'))
Expand Down

0 comments on commit 98067cc

Please sign in to comment.