Since `less` 691, we get `terminals database is inaccessible` in initrd. This is a problem because ordinary systemd commands like systemctl and journalctl often try to use the pager. Bisected to: https://github.com/gwsw/less/commit/7bf5441da53139e834024cd4157915f4ebc0ee9e Fedora only adds these few terminfos to their initramfs, see dracut: https://github.com/dracutdevs/dracut/blob/5d2bda46f4e75e85445ee4d3bd3f68bf966287b9/modules.d/95terminfo/module-setup.sh#L12
23 lines
561 B
Nix
23 lines
561 B
Nix
{ lib, ... }:
|
|
{
|
|
name = "systemd-initrd-terminfo";
|
|
|
|
meta.maintainers = [ lib.maintainers.elvishjerricco ];
|
|
|
|
nodes.machine =
|
|
{ config, ... }:
|
|
{
|
|
boot.initrd.systemd = {
|
|
enable = true;
|
|
extraBin.script = "${config.boot.initrd.systemd.package.util-linux}/bin/script";
|
|
};
|
|
testing.initrdBackdoor = true;
|
|
};
|
|
|
|
testScript = ''
|
|
machine.wait_for_unit("initrd.target")
|
|
rc, out = machine.execute("echo q | script -q -e -c 'yes | less' /dev/null")
|
|
assert "terminals database is inaccessible" not in out
|
|
'';
|
|
}
|