treewide: make more settings conditionally available

Some settings only make sense on particular platforms, or only when a certain
experimental feature is enabled. Several of those were already conditionally
available. Do the same for a bunch more instead of silently ignoring them.
Exceptionally, the use-case-hack setting is not made conditional because it is
included in the test suite.

Change-Id: I29e66ad8ee6178a7c0eff9efb55c3410fae32514
This commit is contained in:
alois31 2024-08-20 19:18:53 +02:00
parent ece99fee23
commit 689eb45630
Signed by: alois31
GPG key ID: E0F59EA5E5216914
2 changed files with 20 additions and 9 deletions

View file

@ -380,7 +380,8 @@ public:
users in `build-users-group`.
UIDs are allocated starting at 872415232 (0x34000000) on Linux and 56930 on macOS.
)"};
)",
{}, true, Xp::AutoAllocateUids};
Setting<uint32_t> startId{this,
#if __linux__
@ -389,7 +390,10 @@ public:
56930,
#endif
"start-id",
"The first UID and GID to use for dynamic ID allocation."};
"The first UID and GID to use for dynamic ID allocation.",
{},
true,
Xp::AutoAllocateUids};
Setting<uint32_t> uidCount{this,
#if __linux__
@ -398,7 +402,10 @@ public:
128,
#endif
"id-count",
"The number of UIDs/GIDs to use for dynamic ID allocation."};
"The number of UIDs/GIDs to use for dynamic ID allocation.",
{},
true,
Xp::AutoAllocateUids};
#if __linux__
Setting<bool> useCgroups{
@ -409,12 +416,13 @@ public:
Cgroups are required and enabled automatically for derivations
that require the `uid-range` system feature.
)"};
#endif
)",
{}, true, Xp::Cgroups};
Setting<bool> impersonateLinux26{this, false, "impersonate-linux-26",
"Whether to impersonate a Linux 2.6 machine on newer kernels.",
{"build-impersonate-linux-26"}};
#endif
Setting<bool> keepLog{
this, true, "keep-build-log",
@ -567,6 +575,7 @@ public:
Setting<bool> sandboxFallback{this, true, "sandbox-fallback",
"Whether to disable sandboxing when the kernel doesn't allow it."};
#if __linux__
Setting<bool> requireDropSupplementaryGroups{this, getuid() == 0, "require-drop-supplementary-groups",
R"(
Following the principle of least privilege,
@ -585,7 +594,6 @@ public:
and `false` otherwise.
)"};
#if __linux__
Setting<std::string> sandboxShmSize{
this, "50%", "sandbox-dev-shm-size",
R"(

View file

@ -19,13 +19,16 @@ using namespace nix;
struct DevelopSettings : Config
{
Setting<std::string> bashPrompt{this, "", "bash-prompt",
"The bash prompt (`PS1`) in `nix develop` shells."};
"The bash prompt (`PS1`) in `nix develop` shells.",
{}, true, Xp::NixCommand};
Setting<std::string> bashPromptPrefix{this, "", "bash-prompt-prefix",
"Prefix prepended to the `PS1` environment variable in `nix develop` shells."};
"Prefix prepended to the `PS1` environment variable in `nix develop` shells.",
{}, true, Xp::NixCommand};
Setting<std::string> bashPromptSuffix{this, "", "bash-prompt-suffix",
"Suffix appended to the `PS1` environment variable in `nix develop` shells."};
"Suffix appended to the `PS1` environment variable in `nix develop` shells.",
{}, true, Xp::NixCommand};
};
static DevelopSettings developSettings;