diff --git a/meson.build b/meson.build index 6ca506c41f..052474895d 100644 --- a/meson.build +++ b/meson.build @@ -54,8 +54,15 @@ endif ##################################################################### +rootprefixdir = get_option('rootprefix') conf.set10('HAVE_SPLIT_USR', get_option('split-usr')) -rootprefixdir = get_option('split-usr') ? '/' : '/usr' +# Unusual rootprefixdir values are used by some distros +# (see https://github.com/systemd/systemd/pull/7461). +if get_option('split-usr') + rootprefixdir = rootprefixdir != '' ? rootprefixdir : '/' +else + rootprefixdir = rootprefixdir != '' ? rootprefixdir : '/usr' +endif sysvinit_path = get_option('sysvinit-path') sysvrcnd_path = get_option('sysvrcnd-path') @@ -179,6 +186,7 @@ conf.set_quoted('SYSTEMD_SLEEP_BINARY_PATH', join_paths(rootlib conf.set_quoted('SYSTEMCTL_BINARY_PATH', join_paths(rootbindir, 'systemctl')) conf.set_quoted('SYSTEMD_TTY_ASK_PASSWORD_AGENT_BINARY_PATH', join_paths(rootbindir, 'systemd-tty-ask-password-agent')) conf.set_quoted('SYSTEMD_STDIO_BRIDGE_BINARY_PATH', join_paths(bindir, 'systemd-stdio-bridge')) +conf.set_quoted('ROOTPREFIX', rootprefixdir) conf.set_quoted('RANDOM_SEED_DIR', randomseeddir) conf.set_quoted('RANDOM_SEED', join_paths(randomseeddir, 'random-seed')) conf.set_quoted('SYSTEMD_CRYPTSETUP_PATH', join_paths(rootlibexecdir, 'systemd-cryptsetup')) diff --git a/meson_options.txt b/meson_options.txt index 49ebd6c036..498a32ab11 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -20,6 +20,8 @@ option('split-usr', type : 'boolean', value : false, description : '''assume that /bin, /sbin aren't symlinks into /usr''') option('rootlibdir', type : 'string', description : '''[/usr]/lib/x86_64-linux-gnu or such''') +option('rootprefix', type : 'string', + description : '''override the root prefix''') option('link-udev-shared', type : 'boolean', description : 'link systemd-udev and its helpers to libsystemd-shared.so')