2011-11-08 17:17:37 +01:00
|
|
|
# This module defines the software packages included in the "minimal"
|
2023-03-03 14:12:56 +01:00
|
|
|
# installation CD. It might be useful elsewhere.
|
2011-11-08 17:17:37 +01:00
|
|
|
|
2022-10-11 01:58:22 +02:00
|
|
|
{ config, lib, pkgs, ... }:
|
2010-09-25 11:32:27 +02:00
|
|
|
|
|
|
|
{
|
|
|
|
# Include some utilities that are useful for installing or repairing
|
|
|
|
# the system.
|
|
|
|
environment.systemPackages = [
|
2018-10-27 12:16:30 +02:00
|
|
|
pkgs.w3m-nographics # needed for the manual anyway
|
2010-09-25 11:32:27 +02:00
|
|
|
pkgs.testdisk # useful for repairing boot problems
|
2018-03-22 11:13:21 +01:00
|
|
|
pkgs.ms-sys # for writing Microsoft boot sectors / MBRs
|
2015-01-07 10:51:53 +01:00
|
|
|
pkgs.efibootmgr
|
|
|
|
pkgs.efivar
|
2010-09-25 11:32:27 +02:00
|
|
|
pkgs.parted
|
2011-09-17 15:09:38 +02:00
|
|
|
pkgs.gptfdisk
|
2010-09-25 11:32:27 +02:00
|
|
|
pkgs.ddrescue
|
|
|
|
pkgs.ccrypt
|
|
|
|
pkgs.cryptsetup # needed for dm-crypt volumes
|
|
|
|
|
2018-10-27 12:42:03 +02:00
|
|
|
# Some text editors.
|
2022-11-15 22:59:44 +01:00
|
|
|
(pkgs.vim.customize {
|
|
|
|
name = "vim";
|
|
|
|
vimrcConfig.packages.default = {
|
|
|
|
start = [ pkgs.vimPlugins.vim-nix ];
|
|
|
|
};
|
|
|
|
vimrcConfig.customRC = "syntax on";
|
|
|
|
})
|
2018-10-27 12:42:03 +02:00
|
|
|
|
2010-09-25 11:32:27 +02:00
|
|
|
# Some networking tools.
|
2011-07-13 14:18:23 +02:00
|
|
|
pkgs.fuse
|
2017-08-19 18:50:53 +02:00
|
|
|
pkgs.fuse3
|
2016-09-18 17:43:58 +02:00
|
|
|
pkgs.sshfs-fuse
|
2010-09-25 11:32:27 +02:00
|
|
|
pkgs.socat
|
|
|
|
pkgs.screen
|
2023-01-04 01:23:33 +01:00
|
|
|
pkgs.tcpdump
|
2010-09-25 11:32:27 +02:00
|
|
|
|
|
|
|
# Hardware-related tools.
|
|
|
|
pkgs.sdparm
|
|
|
|
pkgs.hdparm
|
2011-08-02 08:53:09 +02:00
|
|
|
pkgs.smartmontools # for diagnosing hard disks
|
2015-04-19 22:14:57 +02:00
|
|
|
pkgs.pciutils
|
|
|
|
pkgs.usbutils
|
2022-12-13 16:35:05 +01:00
|
|
|
pkgs.nvme-cli
|
2010-09-25 11:32:27 +02:00
|
|
|
|
|
|
|
# Some compression/archiver tools.
|
|
|
|
pkgs.unzip
|
|
|
|
pkgs.zip
|
|
|
|
];
|
2012-03-09 15:37:58 +01:00
|
|
|
|
2023-03-03 14:16:31 +01:00
|
|
|
# Include support for various filesystems and tools to create / manipulate them.
|
2022-10-03 04:03:43 +02:00
|
|
|
boot.supportedFilesystems =
|
nixos/installer: drop support for ReiserFS and JFS
ReiserFS has not been actively maintained for many years. It has been
marked as obsolete since Linux 6.6, and is scheduled for removal
in 2025. A warning is logged informing users of this every time a
ReiserFS file system is mounted. It suffers from unfixable issues
like the year 2038 problem.
JFS is a slightly more ambiguous case. It also has not been actively
maintained for years; even in 2008 questions were being raised
about its maintenance state and IBM’s commitment to it, and some
enterprise distributions were opting not to ship support for it as
a result. It will [indefinitely postpone journal writes], leading
to data loss over potentially arbitrary amounts of time. Kernel
developers [considered marking it as deprecated] last year, but
no concrete decision was made. There have been [occasional fixes]
to the code since then, but even the developer of much of those was
not opposed to deprecating it.
[considered marking it as deprecated]: https://lore.kernel.org/lkml/Y8DvK281ii6yPRcW@infradead.org/
[indefinitely postpone journal writes]: https://www.usenix.org/legacy/events/usenix05/tech/general/full_papers/prabhakaran/prabhakaran.pdf
[occasional fixes]: https://www.phoronix.com/news/JFS-Linux-6.7-Improvements
Regardless of whether JFS should be removed from the kernel, with all
the implications for existing installations that entails, I think
it’s safe to say that no new Linux installation should be using
either of these file systems, and that it’s a waste of space and
potential footgun to be shipping support for them on our standard
installation media. We’re lagging behind other distributions on
this decision; neither is supported by Fedora’s installation media.
(It also just so happens that `jfsutils` is the one remaining package
in the minimal installer ISO that has reproducibility issues, due to
some cursed toolchain bug, but I’m not trying to Goodhart’s law
this or anything. I just think we shouldn’t be shipping it anyway.)
2024-09-05 16:26:13 +02:00
|
|
|
[ "btrfs" "cifs" "f2fs" "ntfs" "vfat" "xfs" ] ++
|
2022-10-03 04:03:43 +02:00
|
|
|
lib.optional (lib.meta.availableOn pkgs.stdenv.hostPlatform config.boot.zfs.package) "zfs";
|
2012-03-09 15:37:58 +01:00
|
|
|
|
2015-04-28 17:15:02 +02:00
|
|
|
# Configure host id for ZFS to work
|
2015-11-21 15:03:16 +01:00
|
|
|
networking.hostId = lib.mkDefault "8425e349";
|
2010-09-25 11:32:27 +02:00
|
|
|
}
|