This hopefully fixes intermittent initrd failures where udevd cannot
create a Unix domain socket:
machine# running udev...
machine# error getting socket: Address family not supported by protocol
machine# error initializing udev control socket
machine# error getting socket: Address family not supported by protocol
The "unix" kernel module is supposed to be loaded automatically, and
clearly that works most of the time, but maybe there is a race
somewhere. In any case, no sane person would run a kernel without Unix
domain sockets, so we may as well make it builtin.
http://hydra.nixos.org/build/30001448
(cherry picked from commit e4b4e9b986)
(cherry picked from commit 9a82dd87f7)
Reason: Importing devices from /dev/disk/by-id can prevent certain bugs
that lead to ZFS pool corruption, as mentioned in #11668.
That said, although this adds the option to import from /dev/disk/by-id,
I'm not yet changing the default import path in the stable channel
because possibly some block devices may not show up in /dev/disk/by-id,
causing a perfectly-working system to become unbootable. It's probably
safer to battle test the new default path in the unstable channel
instead, and let it become part of the stable channel as part of the
next NixOS release.
Previously this barfed with:
updating GRUB 2 menu...
fileparse(): need a valid pathname at /nix/store/zldbbngl0f8g5iv4rslygxwp0dbg1624-install-grub.pl line 391.
warning: error(s) occured while switching to the new configuration
(cherry picked from commit 1ba2015450)
This hopefully fixes intermittent test failures like
http://hydra.nixos.org/build/29962437
router# [ 240.128835] INFO: task mke2fs:99 blocked for more than 120 seconds.
router# [ 240.130135] Not tainted 3.18.25 #1-NixOS
router# [ 240.131110] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
assuming that these are caused by high load on the host.
(cherry picked from commit 6d02d7e740)
... because we make it built-in by default.
I can't imagine anyone who wanted to purge this module from his/her system,
so let's keep it simple, at least for now.
(cherry picked from commit 0e1fe66aad)
This change should "only" get rid of an annoying error in logs.
Currently the package is built with /var in $out/var. That fails when it
tries to create/write things at runtime (nix store is read-only).
Instead, tell it to use /var (global directory) and fixup the
installation phase so it doesn't touch /var (leave that for runtime).
This unbreaks the colord dbus service, which apparently is needed by
cups to create color profiles for printers.
(cherry picked from commit 9cdf17e822)