gnu: eudev: Honor $EUDEV_RULES_DIRECTORY.
* gnu/packages/patches/eudev-rules-directory.patch: New file.
* gnu-system.am (dist_patch_DATA): Add it.
* gnu/packages/linux.scm (eudev): Use it.
gnu: eudev: Build with libkmod support.
* gnu/packages/linux.scm (eudev)[arguments]: New field.
gnu: fuse: Install udev rules in lib/udev/rules.d.
* gnu/packages/linux.scm (fuse): Change UDEV_RULES_PATH suffix to
/lib/udev/rules.d.
gnu: Add eudev.
* gnu/packages/linux.scm (eudev): New variable.
gnu: util-linux: Don't install 'logger'.
* gnu/packages/linux.scm (util-linux)[source]: Add 'snippet'.
activation: Honor $GUIX_NEW_SYSTEM for use by 'guix system reconfigure'.
* gnu/build/activation.scm (activate-current-system): Honor
$GUIX_NEW_SYSTEM by default.
* guix/scripts/system.scm (switch-to-system): Set $GUIX_NEW_SYSTEM
before loading SCRIPT.
gnu: e2fsprogs: Build with --disable-blkid.
* gnu/packages/linux.scm (e2fsprogs)[arguments]: Pass --disable-blkid.
system: Add more common tools to '%base-packages'.
* gnu/system.scm (%base-packages): Add gawk, tar, gzip, bzip2, xz, lzip,
and wireless-tools.
system: Produce a basic /etc/nsswitch.conf to honor /etc/hosts.
* gnu/system.scm (etc-directory): Produce nsswitch.conf.
system: Fix the default /etc/hosts.
* gnu/system.scm (default-/etc/hosts): Fix the alias/address order.
Add ::1.
system: Add support for Linux-style mapped devices.
* gnu/system/file-systems.scm (<mapped-device>): New record type.
* gnu/system.scm (<operating-system>)[mapped-devices]: New field.
(luks-device-mapping): New procedure.
(other-file-system-services)[device-mappings, requirements]: New
procedures. Pass #:requirements to 'file-system-service'.
(device-mapping-services): New procedure.
(essential-services): Use it. Append its result to the return value.
(operating-system-initrd-file): Add comment.
* gnu/services/base.scm (file-system-service): Add #:requirements
parameter and honor it.
(device-mapping-service): New procedure.
* gnu/system/linux-initrd.scm (base-initrd): Add comment.
activation: Set the permissions of /etc/sudoers to 440.
* gnu/build/activation.scm (activate-etc): Move 'rm-f' to a local
'define'. When TARGET is "sudoers", make it 440.
system: Add '\w' to the default PS1.
* gnu/system.scm (etc-directory)[bashrc]: Add '\w' to PS1.
activation: Make the /bin/sh symlink at activation time.
* gnu/build/install.scm (directives): Remove "/bin/sh".
* gnu/build/activation.scm (activate-/bin/sh): New procedure.
* gnu/system.scm (operating-system-activation-script): Use it.
services: udev: Allow for additional udev rules.
* gnu/services/base.scm (udev-rules-union): New procedure.
(udev-service): Add #:rules parameter. Call 'udev-rules-union' and
create udev.conf. Set $UDEV_CONFIG_FILE before spawning udevd.
system: Add 'hosts-file' field.
* gnu/system.scm (<operating-system>)[hosts-file]: New field.
(default-/etc/hosts): New procedure.
(etc-directory): Add #:hosts-file parameter and honor it.
(operating-system-etc-directory): Build /etc/hosts, and pass
it as #:hosts-file to 'etc-directory'.
system: Add default PAM entries for xlock and xscreensaver.
* gnu/system/linux.scm (base-pam-services): Add "xlock" and
"xscreensaver".
activation: Make sure /etc/sudoers & co. are regular files.
Before that, 'sudo' would exit with:
sudo: /etc/sudoers is not a regular file
sudo: no valid sudoers sources found, quitting
* gnu/build/activation.scm (activate-etc): Check if SOURCE matches
'file-is-directory?'. If not, use 'copy-file' instead of 'symlink'.
activation: Remove outdated comment.
* gnu/build/activation.scm (activate-etc): Remove outdated comment.