Fix local building for remote hosts

This commit is contained in:
Charlotte Van Petegem 2023-01-18 18:21:49 +01:00
parent d6bdc90cc3
commit f7afb02ad2
No known key found for this signature in database
GPG key ID: 019E764B7184435A
2 changed files with 98 additions and 0 deletions

96
patches/210382.patch Normal file
View file

@ -0,0 +1,96 @@
From cc4de1aa3ad39c480e111113aec48da2e7c24e8d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fabian=20M=C3=B6ller?= <fabianm88@gmail.com>
Date: Fri, 13 Jan 2023 10:16:46 +0100
Subject: [PATCH] nixos-rebuild: Allow local builds when --target-host is used
again
This is a followup of #148921, to allow local builds when
`--target-host` is used again. It also documents the change in
behavior, regarding the specialty of the `localhost` value.
By removing the special handling of an empty `buildHost` and non empty
`targetHost`, this change also slightly alters the behavior of
`nixos-rebuild`.
Originally by specifying `--target-host target --build-host ""`, the
now removed special case would transform those arguments to
`--target-host target --build-host target`.
Now the empty `--build-host` would result in a local build.
---
.../doc/manual/from_md/release-notes/rl-2305.section.xml | 9 +++++++++
nixos/doc/manual/man-nixos-rebuild.xml | 6 +++---
nixos/doc/manual/release-notes/rl-2305.section.md | 2 ++
pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh | 4 ----
4 files changed, 14 insertions(+), 7 deletions(-)
diff --git a/nixos/doc/manual/from_md/release-notes/rl-2305.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2305.section.xml
index 242841a56b65b..7a8c7b10596a8 100644
--- a/nixos/doc/manual/from_md/release-notes/rl-2305.section.xml
+++ b/nixos/doc/manual/from_md/release-notes/rl-2305.section.xml
@@ -256,6 +256,15 @@
been changed to <literal>null</literal>.
</para>
</listitem>
+ <listitem>
+ <para>
+ The <literal>--target-host</literal> and
+ <literal>--build-host</literal> options of
+ <literal>nixos-rebuild</literal> no longer treat the
+ <literal>localhost</literal> value specially to build
+ on/deploy to local machine, omit the relevant flag.
+ </para>
+ </listitem>
<listitem>
<para>
The <literal>nix.readOnlyStore</literal> option has been
diff --git a/nixos/doc/manual/man-nixos-rebuild.xml b/nixos/doc/manual/man-nixos-rebuild.xml
index cab871661a755..1b55d07c95022 100644
--- a/nixos/doc/manual/man-nixos-rebuild.xml
+++ b/nixos/doc/manual/man-nixos-rebuild.xml
@@ -532,15 +532,15 @@
<listitem>
<para>
Specifies the NixOS target host. By setting this to something other than
- <replaceable>localhost</replaceable>, the system activation will happen
+ an empty string, the system activation will happen
on the remote host instead of the local machine. The remote host needs to
be accessible over ssh, and for the commands <option>switch</option>,
<option>boot</option> and <option>test</option> you need root access.
</para>
<para>
- If <option>--build-host</option> is not explicitly specified, building
- will take place locally.
+ If <option>--build-host</option> is not explicitly specified or empty,
+ building will take place locally.
</para>
<para>
diff --git a/nixos/doc/manual/release-notes/rl-2305.section.md b/nixos/doc/manual/release-notes/rl-2305.section.md
index b5c74836ef407..f6c71cc3da0ad 100644
--- a/nixos/doc/manual/release-notes/rl-2305.section.md
+++ b/nixos/doc/manual/release-notes/rl-2305.section.md
@@ -67,6 +67,8 @@ In addition to numerous new and upgraded packages, this release has the followin
- In `mastodon` it is now necessary to specify location of file with `PostgreSQL` database password. In `services.mastodon.database.passwordFile` parameter default value `/var/lib/mastodon/secrets/db-password` has been changed to `null`.
+- The `--target-host` and `--build-host` options of `nixos-rebuild` no longer treat the `localhost` value specially to build on/deploy to local machine, omit the relevant flag.
+
- The `nix.readOnlyStore` option has been renamed to `boot.readOnlyNixStore` to clarify that it configures the NixOS boot process, not the Nix daemon.
## Other Notable Changes {#sec-release-23.05-notable-changes}
diff --git a/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh b/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh
index 217e04d35720e..ed7c9231905a3 100755
--- a/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh
+++ b/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh
@@ -148,10 +148,6 @@ if [[ -n "$SUDO_USER" || -n $remoteSudo ]]; then
maybeSudo=(sudo --preserve-env="$preservedSudoVars" --)
fi
-if [[ -z "$buildHost" && -n "$targetHost" ]]; then
- buildHost="$targetHost"
-fi
-
# log the given argument to stderr if verbose mode is on
logVerbose() {
if [ -n "$verboseScript" ]; then