From 1bf0ffb22ea32cc83001483e16215bf1f9461f2f Mon Sep 17 00:00:00 2001 From: K900 Date: Thu, 19 Sep 2024 20:05:58 +0300 Subject: [PATCH 1/4] nixos-rebuild: inline get-version-suffix script It has no other consumers anyway. Also saves some work. --- .../installer/tools/get-version-suffix | 23 ------------------- .../linux/nixos-rebuild/nixos-rebuild.sh | 22 +++++++++++++++++- 2 files changed, 21 insertions(+), 24 deletions(-) delete mode 100644 nixos/modules/installer/tools/get-version-suffix diff --git a/nixos/modules/installer/tools/get-version-suffix b/nixos/modules/installer/tools/get-version-suffix deleted file mode 100644 index 8d72905cdcb4..000000000000 --- a/nixos/modules/installer/tools/get-version-suffix +++ /dev/null @@ -1,23 +0,0 @@ -getVersion() { - local dir="$1" - rev= - gitDir="$dir/.git" - if [ -e "$gitDir" ]; then - if [ -z "$(type -P git)" ]; then - echo "warning: Git not found; cannot figure out revision of $dir" >&2 - return - fi - cd "$dir" - rev=$(git --git-dir="$gitDir" rev-parse --short HEAD) - if git --git-dir="$gitDir" describe --always --dirty | grep -q dirty; then - rev+=M - fi - fi -} - -if nixpkgs=$(nix-instantiate --find-file nixpkgs "$@"); then - getVersion $nixpkgs - if [ -n "$rev" ]; then - echo ".git.$rev" - fi -fi diff --git a/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh b/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh index 957f03c5fc8e..023bdde5b90d 100755 --- a/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh +++ b/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh @@ -548,6 +548,26 @@ getNixDrv() { fi } +getVersion() { + local dir="$1" + local rev= + local gitDir="$dir/.git" + if [ -e "$gitDir" ]; then + if [ -z "$(type -P git)" ]; then + echo "warning: Git not found; cannot figure out revision of $dir" >&2 + return + fi + cd "$dir" + rev=$(git --git-dir="$gitDir" rev-parse --short HEAD) + if git --git-dir="$gitDir" describe --always --dirty | grep -q dirty; then + rev+=M + fi + fi + + echo ".git.$rev" +} + + if [[ -n $buildNix && -z $flake ]]; then log "building Nix..." getNixDrv @@ -569,7 +589,7 @@ fi # nixos-version shows something useful). if [[ -n $canRun && -z $flake ]]; then if nixpkgs=$(runCmd nix-instantiate --find-file nixpkgs "${extraBuildFlags[@]}"); then - suffix=$(runCmd $SHELL "$nixpkgs/nixos/modules/installer/tools/get-version-suffix" "${extraBuildFlags[@]}" || true) + suffix=$(getVersion "$nixpkgs" || true) if [ -n "$suffix" ]; then echo -n "$suffix" > "$nixpkgs/.version-suffix" || true fi From 8353a681b5d6416b4c610dd54f1a176c554ead9b Mon Sep 17 00:00:00 2001 From: K900 Date: Thu, 19 Sep 2024 20:07:14 +0300 Subject: [PATCH 2/4] nixos-build-vms: move to pkgs/by-name --- nixos/modules/installer/tools/tools.nix | 7 +----- .../by-name/ni}/nixos-build-vms/build-vms.nix | 5 +++-- .../ni/nixos-build-vms}/nixos-build-vms.8 | 0 .../ni}/nixos-build-vms/nixos-build-vms.sh | 5 +++-- pkgs/by-name/ni/nixos-build-vms/package.nix | 22 +++++++++++++++++++ 5 files changed, 29 insertions(+), 10 deletions(-) rename {nixos/modules/installer/tools => pkgs/by-name/ni}/nixos-build-vms/build-vms.nix (87%) rename {nixos/modules/installer/tools/manpages => pkgs/by-name/ni/nixos-build-vms}/nixos-build-vms.8 (100%) rename {nixos/modules/installer/tools => pkgs/by-name/ni}/nixos-build-vms/nixos-build-vms.sh (86%) create mode 100644 pkgs/by-name/ni/nixos-build-vms/package.nix diff --git a/nixos/modules/installer/tools/tools.nix b/nixos/modules/installer/tools/tools.nix index 7f16b97440c1..3d227eebc2d3 100644 --- a/nixos/modules/installer/tools/tools.nix +++ b/nixos/modules/installer/tools/tools.nix @@ -17,12 +17,7 @@ let ''; }); - nixos-build-vms = makeProg { - name = "nixos-build-vms"; - src = ./nixos-build-vms/nixos-build-vms.sh; - inherit (pkgs) runtimeShell; - manPage = ./manpages/nixos-build-vms.8; - }; + inherit (pkgs) nixos-build-vms; nixos-install = makeProg { name = "nixos-install"; diff --git a/nixos/modules/installer/tools/nixos-build-vms/build-vms.nix b/pkgs/by-name/ni/nixos-build-vms/build-vms.nix similarity index 87% rename from nixos/modules/installer/tools/nixos-build-vms/build-vms.nix rename to pkgs/by-name/ni/nixos-build-vms/build-vms.nix index 21a257378a63..12b3c44746a4 100644 --- a/nixos/modules/installer/tools/nixos-build-vms/build-vms.nix +++ b/pkgs/by-name/ni/nixos-build-vms/build-vms.nix @@ -1,5 +1,6 @@ { system ? builtins.currentSystem , config ? {} +, nixpkgs , networkExpr }: @@ -9,9 +10,9 @@ let imports = [ module ]; }) (import networkExpr); - pkgs = import ../../../../.. { inherit system config; }; + pkgs = import nixpkgs { inherit system config; }; - testing = import ../../../../lib/testing-python.nix { + testing = import "${pkgs.path}/nixos/lib/testing-python.nix" { inherit system pkgs; }; diff --git a/nixos/modules/installer/tools/manpages/nixos-build-vms.8 b/pkgs/by-name/ni/nixos-build-vms/nixos-build-vms.8 similarity index 100% rename from nixos/modules/installer/tools/manpages/nixos-build-vms.8 rename to pkgs/by-name/ni/nixos-build-vms/nixos-build-vms.8 diff --git a/nixos/modules/installer/tools/nixos-build-vms/nixos-build-vms.sh b/pkgs/by-name/ni/nixos-build-vms/nixos-build-vms.sh similarity index 86% rename from nixos/modules/installer/tools/nixos-build-vms/nixos-build-vms.sh rename to pkgs/by-name/ni/nixos-build-vms/nixos-build-vms.sh index 490ede04e6bb..d55eb5d0620f 100644 --- a/nixos/modules/installer/tools/nixos-build-vms/nixos-build-vms.sh +++ b/pkgs/by-name/ni/nixos-build-vms/nixos-build-vms.sh @@ -49,5 +49,6 @@ then fi # Build a network of VMs -nix-build '' \ - --argstr networkExpr "$networkExpr" "${nixBuildArgs[@]}" +nix-build @buildVms@ \ + --argstr networkExpr "$networkExpr" "${nixBuildArgs[@]}" \ + --arg nixpkgs "" diff --git a/pkgs/by-name/ni/nixos-build-vms/package.nix b/pkgs/by-name/ni/nixos-build-vms/package.nix new file mode 100644 index 000000000000..fc8b4f403e94 --- /dev/null +++ b/pkgs/by-name/ni/nixos-build-vms/package.nix @@ -0,0 +1,22 @@ +{ + substituteAll, + runtimeShell, + installShellFiles, +}: +substituteAll { + name = "nixos-build-vms"; + src = ./nixos-build-vms.sh; + inherit runtimeShell; + buildVms = ./build-vms.nix; + + dir = "bin"; + isExecutable = true; + + nativeBuildInputs = [ installShellFiles ]; + + postInstall = '' + installManPage ${./nixos-build-vms.8} + ''; + + meta.mainProgram = "nixos-build-vms"; +} From 825f6ffa9e0d7f51b3cb90886ed5c19fd1cf6a26 Mon Sep 17 00:00:00 2001 From: K900 Date: Thu, 19 Sep 2024 20:08:38 +0300 Subject: [PATCH 3/4] nixos-enter: move to pkgs/by-name --- nixos/modules/installer/tools/tools.nix | 11 +------- .../by-name/ni/nixos-enter}/nixos-enter.8 | 0 .../by-name/ni/nixos-enter}/nixos-enter.sh | 0 pkgs/by-name/ni/nixos-enter/package.nix | 28 +++++++++++++++++++ 4 files changed, 29 insertions(+), 10 deletions(-) rename {nixos/modules/installer/tools/manpages => pkgs/by-name/ni/nixos-enter}/nixos-enter.8 (100%) rename {nixos/modules/installer/tools => pkgs/by-name/ni/nixos-enter}/nixos-enter.sh (100%) create mode 100644 pkgs/by-name/ni/nixos-enter/package.nix diff --git a/nixos/modules/installer/tools/tools.nix b/nixos/modules/installer/tools/tools.nix index 3d227eebc2d3..3a89b7663385 100644 --- a/nixos/modules/installer/tools/tools.nix +++ b/nixos/modules/installer/tools/tools.nix @@ -64,16 +64,7 @@ let manPage = ./manpages/nixos-version.8; }; - nixos-enter = makeProg { - name = "nixos-enter"; - src = ./nixos-enter.sh; - inherit (pkgs) runtimeShell; - path = makeBinPath [ - pkgs.util-linuxMinimal - ]; - manPage = ./manpages/nixos-enter.8; - }; - + inherit (pkgs) nixos-enter; in { diff --git a/nixos/modules/installer/tools/manpages/nixos-enter.8 b/pkgs/by-name/ni/nixos-enter/nixos-enter.8 similarity index 100% rename from nixos/modules/installer/tools/manpages/nixos-enter.8 rename to pkgs/by-name/ni/nixos-enter/nixos-enter.8 diff --git a/nixos/modules/installer/tools/nixos-enter.sh b/pkgs/by-name/ni/nixos-enter/nixos-enter.sh similarity index 100% rename from nixos/modules/installer/tools/nixos-enter.sh rename to pkgs/by-name/ni/nixos-enter/nixos-enter.sh diff --git a/pkgs/by-name/ni/nixos-enter/package.nix b/pkgs/by-name/ni/nixos-enter/package.nix new file mode 100644 index 000000000000..a548eed4092e --- /dev/null +++ b/pkgs/by-name/ni/nixos-enter/package.nix @@ -0,0 +1,28 @@ +{ + lib, + substituteAll, + runtimeShell, + installShellFiles, + util-linuxMinimal, +}: +substituteAll { + name = "nixos-enter"; + src = ./nixos-enter.sh; + + inherit runtimeShell; + + path = lib.makeBinPath [ + util-linuxMinimal + ]; + + dir = "bin"; + isExecutable = true; + + nativeBuildInputs = [ installShellFiles ]; + + postInstall = '' + installManPage ${./nixos-enter.8} + ''; + + meta.mainProgram = "nixos-enter"; +} From 51b47621ac00d9d815dec6beb0958f96d2f6eb11 Mon Sep 17 00:00:00 2001 From: K900 Date: Thu, 19 Sep 2024 20:09:50 +0300 Subject: [PATCH 4/4] nixos-install: move to pkgs/by-name --- nixos/modules/installer/tools/tools.nix | 14 +------- .../by-name/ni/nixos-install}/nixos-install.8 | 0 .../ni/nixos-install}/nixos-install.sh | 0 pkgs/by-name/ni/nixos-install/package.nix | 33 +++++++++++++++++++ 4 files changed, 34 insertions(+), 13 deletions(-) rename {nixos/modules/installer/tools/manpages => pkgs/by-name/ni/nixos-install}/nixos-install.8 (100%) rename {nixos/modules/installer/tools => pkgs/by-name/ni/nixos-install}/nixos-install.sh (100%) create mode 100644 pkgs/by-name/ni/nixos-install/package.nix diff --git a/nixos/modules/installer/tools/tools.nix b/nixos/modules/installer/tools/tools.nix index 3a89b7663385..3c5816858a46 100644 --- a/nixos/modules/installer/tools/tools.nix +++ b/nixos/modules/installer/tools/tools.nix @@ -19,19 +19,7 @@ let inherit (pkgs) nixos-build-vms; - nixos-install = makeProg { - name = "nixos-install"; - src = ./nixos-install.sh; - inherit (pkgs) runtimeShell; - nix = config.nix.package.out; - path = makeBinPath [ - pkgs.jq - nixos-enter - pkgs.util-linuxMinimal - ]; - manPage = ./manpages/nixos-install.8; - }; - + nixos-install = pkgs.nixos-install.override { nix = config.nix.package; }; nixos-rebuild = pkgs.nixos-rebuild.override { nix = config.nix.package.out; }; nixos-generate-config = makeProg { diff --git a/nixos/modules/installer/tools/manpages/nixos-install.8 b/pkgs/by-name/ni/nixos-install/nixos-install.8 similarity index 100% rename from nixos/modules/installer/tools/manpages/nixos-install.8 rename to pkgs/by-name/ni/nixos-install/nixos-install.8 diff --git a/nixos/modules/installer/tools/nixos-install.sh b/pkgs/by-name/ni/nixos-install/nixos-install.sh similarity index 100% rename from nixos/modules/installer/tools/nixos-install.sh rename to pkgs/by-name/ni/nixos-install/nixos-install.sh diff --git a/pkgs/by-name/ni/nixos-install/package.nix b/pkgs/by-name/ni/nixos-install/package.nix new file mode 100644 index 000000000000..0d8ee638acc1 --- /dev/null +++ b/pkgs/by-name/ni/nixos-install/package.nix @@ -0,0 +1,33 @@ +{ + lib, + substituteAll, + runtimeShell, + installShellFiles, + nix, + jq, + nixos-enter, + util-linuxMinimal, +}: +substituteAll { + name = "nixos-install"; + src = ./nixos-install.sh; + + inherit runtimeShell nix; + + path = lib.makeBinPath [ + jq + nixos-enter + util-linuxMinimal + ]; + + dir = "bin"; + isExecutable = true; + + nativeBuildInputs = [ installShellFiles ]; + + postInstall = '' + installManPage ${./nixos-install.8} + ''; + + meta.mainProgram = "nixos-install"; +}