diff options
author | Jörg Thalheim <joerg@thalheim.io> | 2023-10-28 15:35:56 +0200 |
---|---|---|
committer | Jörg Thalheim <Mic92@users.noreply.github.com> | 2023-11-02 12:39:05 +0100 |
commit | 94b810348a5aa74be5cdc3a1fa6787e8abbc5704 (patch) | |
tree | 09f6f21df29c42af2656b979f1d3de87ebb18c9c /nixos/modules/installer/cd-dvd | |
parent | af459e624ee596f0729b3f709affbed188a03a52 (diff) | |
download | nixpkgs-94b810348a5aa74be5cdc3a1fa6787e8abbc5704.tar nixpkgs-94b810348a5aa74be5cdc3a1fa6787e8abbc5704.tar.gz nixpkgs-94b810348a5aa74be5cdc3a1fa6787e8abbc5704.tar.bz2 nixpkgs-94b810348a5aa74be5cdc3a1fa6787e8abbc5704.tar.lz nixpkgs-94b810348a5aa74be5cdc3a1fa6787e8abbc5704.tar.xz nixpkgs-94b810348a5aa74be5cdc3a1fa6787e8abbc5704.tar.zst nixpkgs-94b810348a5aa74be5cdc3a1fa6787e8abbc5704.zip |
installer/cd-dvd/channel: allow to disable bundled channel
When building kexec-based installer every mb saved will reduce the RAM usage and allow to install NixOS on smaller machines. It also means that less data has to be downloaded from the network. When using flakes or niv we no longer rely on nix channels beeing present and when using something like nixos-anywhere, we no longer need to evaluate anything in the installer at all.
Diffstat (limited to 'nixos/modules/installer/cd-dvd')
-rw-r--r-- | nixos/modules/installer/cd-dvd/channel.nix | 50 |
1 files changed, 26 insertions, 24 deletions
diff --git a/nixos/modules/installer/cd-dvd/channel.nix b/nixos/modules/installer/cd-dvd/channel.nix index b97534d34dd..bc70dc985fe 100644 --- a/nixos/modules/installer/cd-dvd/channel.nix +++ b/nixos/modules/installer/cd-dvd/channel.nix @@ -31,32 +31,34 @@ let echo -n ${config.system.nixos.versionSuffix} > $out/nixos/.version-suffix echo ${config.system.nixos.versionSuffix} | sed -e s/pre// > $out/nixos/svn-revision ''; - in { - # Pin the nixpkgs flake in the installer to our cleaned up nixpkgs source. - # FIXME: this might be surprising and is really only needed for offline installations, - # see discussion in https://github.com/NixOS/nixpkgs/pull/204178#issuecomment-1336289021 - nix.registry.nixpkgs.to = { - type = "path"; - path = "${channelSources}/nixos"; - }; + options.system.installer.channel.enable = (lib.mkEnableOption "bundling NixOS/Nixpkgs channel in the installer") // { default = true; }; + config = lib.mkIf config.system.installer.channel.enable { + # Pin the nixpkgs flake in the installer to our cleaned up nixpkgs source. + # FIXME: this might be surprising and is really only needed for offline installations, + # see discussion in https://github.com/NixOS/nixpkgs/pull/204178#issuecomment-1336289021 + nix.registry.nixpkgs.to = { + type = "path"; + path = "${channelSources}/nixos"; + }; - # Provide the NixOS/Nixpkgs sources in /etc/nixos. This is required - # for nixos-install. - boot.postBootCommands = lib.mkAfter - '' - if ! [ -e /var/lib/nixos/did-channel-init ]; then - echo "unpacking the NixOS/Nixpkgs sources..." - mkdir -p /nix/var/nix/profiles/per-user/root - ${config.nix.package.out}/bin/nix-env -p /nix/var/nix/profiles/per-user/root/channels \ - -i ${channelSources} --quiet --option build-use-substitutes false \ - ${lib.optionalString config.boot.initrd.systemd.enable "--option sandbox false"} # There's an issue with pivot_root - mkdir -m 0700 -p /root/.nix-defexpr - ln -s /nix/var/nix/profiles/per-user/root/channels /root/.nix-defexpr/channels - mkdir -m 0755 -p /var/lib/nixos - touch /var/lib/nixos/did-channel-init - fi - ''; + # Provide the NixOS/Nixpkgs sources in /etc/nixos. This is required + # for nixos-install. + boot.postBootCommands = lib.mkAfter + '' + if ! [ -e /var/lib/nixos/did-channel-init ]; then + echo "unpacking the NixOS/Nixpkgs sources..." + mkdir -p /nix/var/nix/profiles/per-user/root + ${config.nix.package.out}/bin/nix-env -p /nix/var/nix/profiles/per-user/root/channels \ + -i ${channelSources} --quiet --option build-use-substitutes false \ + ${lib.optionalString config.boot.initrd.systemd.enable "--option sandbox false"} # There's an issue with pivot_root + mkdir -m 0700 -p /root/.nix-defexpr + ln -s /nix/var/nix/profiles/per-user/root/channels /root/.nix-defexpr/channels + mkdir -m 0755 -p /var/lib/nixos + touch /var/lib/nixos/did-channel-init + fi + ''; + }; } |