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/nixos/modules/installer/tools/tools.nix b/nixos/modules/installer/tools/tools.nix index 7f16b97440c1..3c5816858a46 100644 --- a/nixos/modules/installer/tools/tools.nix +++ b/nixos/modules/installer/tools/tools.nix @@ -17,26 +17,9 @@ 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; - }; - - 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; - }; + inherit (pkgs) nixos-build-vms; + 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 { @@ -69,16 +52,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/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"; +} 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"; +} 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"; +} 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