Fix local building for remote hosts
This commit is contained in:
parent
d6bdc90cc3
commit
f7afb02ad2
2 changed files with 98 additions and 0 deletions
96
patches/210382.patch
Normal file
96
patches/210382.patch
Normal 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
|
|
@ -1,6 +1,8 @@
|
||||||
{ pkgs, inputs }: pkgs.devshell.mkShell {
|
{ pkgs, inputs }: pkgs.devshell.mkShell {
|
||||||
name = "NixOS config";
|
name = "NixOS config";
|
||||||
packages = [
|
packages = [
|
||||||
|
# Use nixos-rebuild from flake, since it might be patched
|
||||||
|
pkgs.nixos-rebuild
|
||||||
pkgs.nixpkgs-fmt
|
pkgs.nixpkgs-fmt
|
||||||
(pkgs.writeShellScriptBin "fetchpatch" "curl -L https://github.com/NixOS/nixpkgs/pull/$1.patch -o patches/$1.patch")
|
(pkgs.writeShellScriptBin "fetchpatch" "curl -L https://github.com/NixOS/nixpkgs/pull/$1.patch -o patches/$1.patch")
|
||||||
inputs.agenix.defaultPackage.x86_64-linux
|
inputs.agenix.defaultPackage.x86_64-linux
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue