fwupd/data/meson.build
Jan Tojnar 463db5162f build: Allow overriding prefix for systemd file installation
It is a good practice to install files relative to our own variables
https://www.bassi.io/articles/2018/03/15/pkg-config-and-paths/
and it is required on systems like NixOS.

Unfortunately, systemd allows overriding the root prefix,
see also 1c2c7c6cb3,
so we cannot just do that.

Let's at least make the systemd installation prefix overridable.

This will also allow us to drop `systemdsystemunitdir` option since
systemd hardcodes it to `${rootprefix}/lib/systemd/system`.
2020-04-18 15:22:10 +01:00

114 lines
2.8 KiB
Meson

subdir('builder')
subdir('pki')
subdir('remotes.d')
subdir('bash-completion')
subdir('fish-completion')
if build_daemon
subdir('motd')
endif
if get_option('tests')
subdir('tests')
if build_daemon
subdir('installed-tests')
endif
endif
if build_standalone
install_data(['daemon.conf'],
install_dir : join_paths(sysconfdir, 'fwupd')
)
endif
install_data(['org.freedesktop.fwupd.metainfo.xml'],
install_dir: join_paths(datadir, 'metainfo')
)
install_data(['org.freedesktop.fwupd.svg'],
install_dir : join_paths(datadir, 'icons', 'hicolor', 'scalable', 'apps')
)
if build_daemon
install_data(['org.freedesktop.fwupd.conf'],
install_dir : join_paths(datadir, 'dbus-1', 'system.d')
)
endif
if build_daemon and get_option('gudev')
install_data(['90-fwupd-devices.rules'],
install_dir : join_paths(udevdir, 'rules.d')
)
endif
if get_option('systemd') and build_daemon
con2 = configuration_data()
con2.set('libexecdir', libexecdir)
con2.set('bindir', bindir)
con2.set('datadir', datadir)
con2.set('localstatedir', localstatedir)
con2.set('package_name', meson.project_name())
rw_directories = []
if get_option('plugin_uefi')
rw_directories += ['-/boot/efi', '-/efi/EFI', '-/boot/EFI']
endif
dynamic_options = []
if systemd.version().version_compare('>= 232')
dynamic_options += 'ProtectControlGroups=yes'
dynamic_options += 'ProtectKernelModules=yes'
endif
if systemd.version().version_compare('>= 231')
dynamic_options += 'RestrictRealtime=yes'
# dynamic_options += 'MemoryDenyWriteExecute=yes'
dynamic_options += ['ReadWritePaths=' + ' '.join(rw_directories)]
else
dynamic_options += ['ReadWriteDirectories=' + ' '.join(rw_directories)]
endif
con2.set('dynamic_options', '\n'.join(dynamic_options))
con2.set('motd_dir', motd_dir)
# replace @bindir@
configure_file(
input : 'fwupd-offline-update.service.in',
output : 'fwupd-offline-update.service',
configuration : con2,
install: true,
install_dir: systemdunitdir,
)
# replace @dynamic_options@
configure_file(
input : 'fwupd.service.in',
output : 'fwupd.service',
configuration : con2,
install: true,
install_dir: systemdunitdir,
)
# for activation
configure_file(
input : 'fwupd.shutdown.in',
output : 'fwupd.shutdown',
configuration : con2,
install: true,
install_dir: systemd_shutdown_dir,
)
endif
if (get_option('systemd') or get_option('elogind')) and build_daemon
con2 = configuration_data()
con2.set('libexecdir', libexecdir)
# replace @libexecdir@
configure_file(
input : 'org.freedesktop.fwupd.service.in',
output : 'org.freedesktop.fwupd.service',
configuration : con2,
install: true,
install_dir: join_paths(datadir,
'dbus-1',
'system-services'),
)
endif