Merge pull request #219354 from Izorkin/update-profiles-base

nixos/profiles: optimize base and minimal profiles

Changed files
+9 -14
nixos
doc
manual
release-notes
modules
installer
profiles
tasks
filesystems
+2
nixos/doc/manual/release-notes/rl-2305.section.md
···
- To reduce closure size in `nixos/modules/profiles/minimal.nix` profile disabled installation documentations and manuals. Also disabled `logrotate` and `udisks2` services.
- The minimal ISO image now uses the `nixos/modules/profiles/minimal.nix` profile.
- The `ghcWithPackages` and `ghcWithHoogle` wrappers will now also symlink GHC's
···
- To reduce closure size in `nixos/modules/profiles/minimal.nix` profile disabled installation documentations and manuals. Also disabled `logrotate` and `udisks2` services.
+
- To reduce closure size in `nixos/modules/installer/netboot/netboot-minimal.nix` profile disabled load linux firmwares, pre-installing the complete stdenv and `networking.wireless` service.
+
- The minimal ISO image now uses the `nixos/modules/profiles/minimal.nix` profile.
- The `ghcWithPackages` and `ghcWithHoogle` wrappers will now also symlink GHC's
+3
nixos/modules/installer/netboot/netboot-minimal.nix
···
];
documentation.man.enable = lib.mkOverride 500 true;
}
···
];
documentation.man.enable = lib.mkOverride 500 true;
+
hardware.enableRedistributableFirmware = lib.mkOverride 70 false;
+
system.extraDependencies = lib.mkOverride 70 [];
+
networking.wireless.enable = lib.mkOverride 500 false;
}
+3 -13
nixos/modules/profiles/base.nix
···
# This module defines the software packages included in the "minimal"
-
# installation CD. It might be useful elsewhere.
{ config, lib, pkgs, ... }:
···
pkgs.ddrescue
pkgs.ccrypt
pkgs.cryptsetup # needed for dm-crypt volumes
-
pkgs.mkpasswd # for generating password files
# Some text editors.
(pkgs.vim.customize {
···
pkgs.fuse
pkgs.fuse3
pkgs.sshfs-fuse
-
pkgs.rsync
pkgs.socat
pkgs.screen
pkgs.tcpdump
···
pkgs.usbutils
pkgs.nvme-cli
-
# Tools to create / manipulate filesystems.
-
pkgs.ntfsprogs # for resizing NTFS partitions
-
pkgs.dosfstools
-
pkgs.mtools
-
pkgs.xfsprogs.bin
-
pkgs.jfsutils
-
pkgs.f2fs-tools
-
# Some compression/archiver tools.
pkgs.unzip
pkgs.zip
];
-
# Include support for various filesystems.
boot.supportedFilesystems =
-
[ "btrfs" "reiserfs" "vfat" "f2fs" "xfs" "ntfs" "cifs" ] ++
lib.optional (lib.meta.availableOn pkgs.stdenv.hostPlatform config.boot.zfs.package) "zfs";
# Configure host id for ZFS to work
···
# This module defines the software packages included in the "minimal"
+
# installation CD. It might be useful elsewhere.
{ config, lib, pkgs, ... }:
···
pkgs.ddrescue
pkgs.ccrypt
pkgs.cryptsetup # needed for dm-crypt volumes
# Some text editors.
(pkgs.vim.customize {
···
pkgs.fuse
pkgs.fuse3
pkgs.sshfs-fuse
pkgs.socat
pkgs.screen
pkgs.tcpdump
···
pkgs.usbutils
pkgs.nvme-cli
# Some compression/archiver tools.
pkgs.unzip
pkgs.zip
];
+
# Include support for various filesystems and tools to create / manipulate them.
boot.supportedFilesystems =
+
[ "btrfs" "cifs" "f2fs" "jfs" "ntfs" "reiserfs" "vfat" "xfs" ] ++
lib.optional (lib.meta.availableOn pkgs.stdenv.hostPlatform config.boot.zfs.package) "zfs";
# Configure host id for ZFS to work
+1 -1
nixos/modules/tasks/filesystems/vfat.nix
···
{
config = mkIf (any (fs: fs == "vfat") config.boot.supportedFilesystems) {
-
system.fsPackages = [ pkgs.dosfstools ];
boot.initrd.kernelModules = mkIf inInitrd [ "vfat" "nls_cp437" "nls_iso8859-1" ];
···
{
config = mkIf (any (fs: fs == "vfat") config.boot.supportedFilesystems) {
+
system.fsPackages = [ pkgs.dosfstools pkgs.mtools ];
boot.initrd.kernelModules = mkIf inInitrd [ "vfat" "nls_cp437" "nls_iso8859-1" ];