meson: correctly embed sandbox shell when asked
Change-Id: I2f6c0d42245204a516d2e424eea26a6391e975ad
This commit is contained in:
parent
a326344253
commit
111db8b38f
4 changed files with 31 additions and 2 deletions
10
meson.build
10
meson.build
|
@ -284,6 +284,16 @@ endif
|
|||
# Used to workaround https://github.com/mesonbuild/meson/issues/2320 in src/nix/meson.build.
|
||||
installcmd = find_program('install')
|
||||
|
||||
enable_embedded_sandbox_shell = get_option('enable-embedded-sandbox-shell')
|
||||
if enable_embedded_sandbox_shell
|
||||
# This one goes in config.h
|
||||
# The path to busybox is passed as a -D flag when compiling libstore.
|
||||
# Idk why, ask the old buildsystem.
|
||||
configdata += {
|
||||
'HAVE_EMBEDDED_SANDBOX_SHELL': 1,
|
||||
}
|
||||
endif
|
||||
|
||||
sandbox_shell = get_option('sandbox-shell')
|
||||
# Consider it required if we're on Linux and the user explicitly specified a non-default value.
|
||||
sandbox_shell_required = sandbox_shell != 'busybox' and host_machine.system() == 'linux'
|
||||
|
|
|
@ -7,8 +7,8 @@ option('enable-build', type : 'boolean', value : true,
|
|||
option('gc', type : 'feature',
|
||||
description : 'enable garbage collection in the Nix expression evaluator (requires Boehm GC)',
|
||||
)
|
||||
# TODO(Qyriad): is this feature maintained?
|
||||
option('embedded-sandbox-shell', type : 'feature',
|
||||
|
||||
option('enable-embedded-sandbox-shell', type : 'boolean', value : false,
|
||||
description : 'include the sandbox shell in the Nix binary',
|
||||
)
|
||||
|
||||
|
|
|
@ -182,6 +182,7 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
lib.optionals (buildWithMeson && stdenv.hostPlatform.isLinux) [
|
||||
"-Dsandbox-shell=${lib.getBin busybox-sandbox-shell}/bin/busybox"
|
||||
]
|
||||
++ lib.optional stdenv.hostPlatform.isStatic "-Denable-embedded-sandbox-shell=true"
|
||||
++ lib.optional (finalAttrs.dontBuild) "-Denable-build=false"
|
||||
# mesonConfigurePhase automatically passes -Dauto_features=enabled,
|
||||
# so we must explicitly enable or disable features that we are not passing
|
||||
|
|
|
@ -10,6 +10,24 @@ foreach header : [ 'schema.sql', 'ca-specific-schema.sql' ]
|
|||
)
|
||||
endforeach
|
||||
|
||||
if enable_embedded_sandbox_shell
|
||||
hexdump = find_program('hexdump', required : true)
|
||||
embedded_sandbox_shell_gen = custom_target(
|
||||
'embedded-sandbox-shell.gen.hh',
|
||||
command : [
|
||||
hexdump,
|
||||
'-v',
|
||||
'-e',
|
||||
'1/1 "0x%x," "\n"'
|
||||
],
|
||||
input : busybox.full_path(),
|
||||
output : 'embedded-sandbox-shell.gen.hh',
|
||||
capture : true,
|
||||
feed : true,
|
||||
)
|
||||
libstore_generated_headers += embedded_sandbox_shell_gen
|
||||
endif
|
||||
|
||||
libstore_sources = files(
|
||||
'binary-cache-store.cc',
|
||||
'build-result.cc',
|
||||
|
|
Loading…
Reference in a new issue