diff --git a/nixos/maintainers/scripts/lxd/lxd-container-image.nix b/nixos/maintainers/scripts/lxd/lxd-container-image.nix index 930ab34af3856f..98350fb18e83d7 100644 --- a/nixos/maintainers/scripts/lxd/lxd-container-image.nix +++ b/nixos/maintainers/scripts/lxd/lxd-container-image.nix @@ -14,9 +14,9 @@ # copy the config for nixos-rebuild system.activationScripts.config = let - config = pkgs.substituteAll { + config = pkgs.substitute { src = ./lxd-container-image-inner.nix; - stateVersion = lib.trivial.release; + substitutions = [ "--subst-var-by" "stateVersion" lib.trivial.release ]; }; in '' if [ ! -e /etc/nixos/configuration.nix ]; then diff --git a/nixos/maintainers/scripts/lxd/lxd-virtual-machine-image.nix b/nixos/maintainers/scripts/lxd/lxd-virtual-machine-image.nix index bbbdd1f3fa173e..1f02ed71434832 100644 --- a/nixos/maintainers/scripts/lxd/lxd-virtual-machine-image.nix +++ b/nixos/maintainers/scripts/lxd/lxd-virtual-machine-image.nix @@ -14,9 +14,9 @@ # copy the config for nixos-rebuild system.activationScripts.config = let - config = pkgs.substituteAll { + config = pkgs.substitute { src = ./lxd-virtual-machine-image-inner.nix; - stateVersion = lib.trivial.release; + substitutions = [ "--subst-var-by" "stateVersion" lib.trivial.release ]; }; in '' if [ ! -e /etc/nixos/configuration.nix ]; then diff --git a/nixos/modules/installer/cd-dvd/iso-image.nix b/nixos/modules/installer/cd-dvd/iso-image.nix index f5b6af3a6b7fff..1bf3d58f12a0f1 100644 --- a/nixos/modules/installer/cd-dvd/iso-image.nix +++ b/nixos/modules/installer/cd-dvd/iso-image.nix @@ -828,10 +828,10 @@ in { source = config.isoImage.splashImage; target = "/isolinux/background.png"; } - { source = pkgs.substituteAll { + { source = pkgs.substitute { name = "isolinux.cfg"; src = pkgs.writeText "isolinux.cfg-in" isolinuxCfg; - bootRoot = "/boot"; + substitutions = [ "--subst-var-by" "bootRoot" "/boot" ]; }; target = "/isolinux/isolinux.cfg"; } diff --git a/nixos/modules/installer/tools/nixos-enter.sh b/nixos/modules/installer/tools/nixos-enter.sh index 9141cc2857024f..214ab7dfbda49a 100755 --- a/nixos/modules/installer/tools/nixos-enter.sh +++ b/nixos/modules/installer/tools/nixos-enter.sh @@ -3,6 +3,8 @@ set -e +export PATH=@path@:$PATH + # Re-exec ourselves in a private mount namespace so that our bind # mounts get cleaned up automatically. if [ -z "$NIXOS_ENTER_REEXEC" ]; then diff --git a/nixos/modules/installer/tools/tools.nix b/nixos/modules/installer/tools/tools.nix index a7d11370d445eb..40295007a72610 100644 --- a/nixos/modules/installer/tools/tools.nix +++ b/nixos/modules/installer/tools/tools.nix @@ -6,7 +6,7 @@ with lib; let - makeProg = args: pkgs.substituteAll (args // { + makeProg = args: pkgs.substitute (args // { dir = "bin"; isExecutable = true; nativeBuildInputs = [ @@ -20,19 +20,18 @@ let nixos-build-vms = makeProg { name = "nixos-build-vms"; src = ./nixos-build-vms/nixos-build-vms.sh; - inherit (pkgs) runtimeShell; + substitutions = [ + "--subst-var-by" "runtimeShell" 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 + substitutions = [ + "--subst-var-by" "path" (makeBinPath [ pkgs.jq nixos-enter pkgs.util-linuxMinimal config.nix.package.out ]) + "--subst-var-by" "runtimeShell" pkgs.runtimeShell ]; manPage = ./manpages/nixos-install.8; }; @@ -42,39 +41,53 @@ let nixos-generate-config = makeProg { name = "nixos-generate-config"; src = ./nixos-generate-config.pl; - perl = "${pkgs.perl.withPackages (p: [ p.FileSlurp ])}/bin/perl"; - hostPlatformSystem = pkgs.stdenv.hostPlatform.system; - detectvirt = "${config.systemd.package}/bin/systemd-detect-virt"; - btrfs = "${pkgs.btrfs-progs}/bin/btrfs"; - inherit (config.system.nixos-generate-config) configuration desktopConfiguration; - xserverEnabled = config.services.xserver.enable; + substitutions = [ + "--subst-var-by" "perl" "${pkgs.perl.withPackages (p: [ p.FileSlurp ])}/bin/perl" + "--subst-var-by" "runtimeShell" pkgs.runtimeShell + "--subst-var-by" "btrfs" "${pkgs.btrfs-progs}/bin/btrfs" + "--subst-var-by" "hostPlatformSystem" pkgs.stdenv.hostPlatform.system + "--subst-var-by" "detectvirt" "${config.systemd.package}/bin/systemd-detect-virt" + "--subst-var-by" "configuration" config.system.nixos-generate-config.configuration + "--subst-var-by" "desktopConfiguration" config.system.nixos-generate-config.desktopConfiguration + "--subst-var-by" "xserverEnabled" config.services.xserver.enable + ]; manPage = ./manpages/nixos-generate-config.8; }; inherit (pkgs) nixos-option; - nixos-version = makeProg { - name = "nixos-version"; - src = ./nixos-version.sh; - inherit (pkgs) runtimeShell; - inherit (config.system.nixos) version codeName revision; - inherit (config.system) configurationRevision; - json = builtins.toJSON ({ + nixos-version-json = builtins.toJSON ( + { nixosVersion = config.system.nixos.version; - } // optionalAttrs (config.system.nixos.revision != null) { + } + // optionalAttrs (config.system.nixos.revision != null) { nixpkgsRevision = config.system.nixos.revision; - } // optionalAttrs (config.system.configurationRevision != null) { + } + // optionalAttrs (config.system.configurationRevision != null) { configurationRevision = config.system.configurationRevision; - }); + } + ); + + nixos-version = makeProg { + name = "nixos-version"; + src = ./nixos-version.sh; + substitutions = [ + "--subst-var-by" "version" config.system.nixos.version + "--subst-var-by" "codeName" config.system.nixos.codeName + "--subst-var-by" "revision" config.system.nixos.revision + "--subst-var-by" "configurationRevision" config.system.configurationRevision + "--subst-var-by" "runtimeShell" pkgs.runtimeShell + "--subst-var-by" "json" nixos-version-json + ]; manPage = ./manpages/nixos-version.8; }; nixos-enter = makeProg { name = "nixos-enter"; src = ./nixos-enter.sh; - inherit (pkgs) runtimeShell; - path = makeBinPath [ - pkgs.util-linuxMinimal + substitutions = [ + "--subst-var-by" "runtimeShell" pkgs.runtimeShell + "--subst-var-by" "path" (makeBinPath [ pkgs.util-linuxMinimal ]) ]; manPage = ./manpages/nixos-enter.8; };