meson: correctly differentiate $profiledir and $sysconfdir/profile.d
The configured sysconfdir is used to look for nix.conf, so it needs to be /etc, and not $out/etc, so we separate out the place where shell profile files are installed, which is the only other place sysconfdir is at all used. See https://git.lix.systems/lix-project/lix/issues/231#issuecomment-1989 for more info. Change-Id: Idbed8ba82e711b8a9d6b6127904befa27d58e279
This commit is contained in:
parent
2a98fe28cb
commit
4b99f43aeb
3 changed files with 15 additions and 2 deletions
10
meson.build
10
meson.build
|
@ -45,7 +45,6 @@ prefix = get_option('prefix')
|
|||
path_opts = [
|
||||
# Meson built-ins.
|
||||
'datadir',
|
||||
'sysconfdir',
|
||||
'bindir',
|
||||
'mandir',
|
||||
'libdir',
|
||||
|
@ -55,12 +54,14 @@ path_opts = [
|
|||
'store-dir',
|
||||
'state-dir',
|
||||
'log-dir',
|
||||
'profile-dir',
|
||||
]
|
||||
# For your grepping pleasure, this loop sets the following variables that aren't mentioned
|
||||
# literally above:
|
||||
# store_dir
|
||||
# state_dir
|
||||
# log_dir
|
||||
# profile_dir
|
||||
foreach optname : path_opts
|
||||
varname = optname.replace('-', '_')
|
||||
path = get_option(optname)
|
||||
|
@ -71,6 +72,13 @@ foreach optname : path_opts
|
|||
endif
|
||||
endforeach
|
||||
|
||||
# sysconfdir doesn't get anything installed to directly, and is only used to
|
||||
# tell Lix where to look for nix.conf, so it doesn't get appended to prefix.
|
||||
sysconfdir = get_option('sysconfdir')
|
||||
if not fs.is_absolute(sysconfdir)
|
||||
sysconfdir = '/' / sysconfdir
|
||||
endif
|
||||
|
||||
enable_docs = get_option('enable-docs')
|
||||
|
||||
enable_tests = get_option('enable-tests')
|
||||
|
|
|
@ -50,3 +50,8 @@ option('log-dir', type : 'string', value : '/nix/var/log',
|
|||
option('enable-docs', type : 'boolean', value : true,
|
||||
description : 'whether to build documentation',
|
||||
)
|
||||
|
||||
# A relative path means it gets appended to prefix.
|
||||
option('profile-dir', type : 'string', value : 'etc/profile.d',
|
||||
description : 'the path to install shell profile files',
|
||||
)
|
||||
|
|
|
@ -20,7 +20,7 @@ foreach rc : [ '.sh', '.fish', '-daemon.sh', '-daemon.fish' ]
|
|||
input : 'nix-profile' + rc + '.in',
|
||||
output : 'nix' + rc,
|
||||
install : true,
|
||||
install_dir : sysconfdir / 'profile.d',
|
||||
install_dir : profile_dir,
|
||||
install_mode : 'rw-r--r--',
|
||||
configuration : {
|
||||
'localstatedir': state_dir,
|
||||
|
|
Loading…
Reference in a new issue