system: Add bindings to configure libc's NSS. * gnu/system/nss.scm: New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add it. * gnu.scm (%public-modules): Add it. * gnu/system.scm (<operating-system>)[name-service-switch]: New field. (etc-directory): Add #:nss parameter and honor it. (operating-system-etc-directory): Adjust call accordingly. * doc/guix.texi (operating-system Reference): Document 'name-service-switch'. (Name Service Switch): New section.
system: Define $ASPELL_CONF in /etc/profile. * gnu/system.scm (etc-directory)[profile]: Define 'ASPELL_CONF'.
system: Add 'XDG_DATA_DIRS' and 'XDG_CONFIG_DIRS' to /etc/profile. * gnu/system.scm (etc-directory)[profile]: Set 'XDG_DATA_DIRS' and 'XDG_CONFIG_DIRS'.
system: Make D-Bus warnings non fatal. * gnu/system.scm (etc-directory): Add 'DBUS_FATAL_WARNINGS' in PROFILE.
system: Create /etc/emacs/site-start.el. * gnu/system.scm (emacs-site-file, emacs-site-directory): New procedures. (etc-directory): Add 'EMACSLOADPATH' setting to PROFILE. Call 'emacs-site-directory', and bind its result to /etc/emacs.
system: Add iw to '%base-packages'. * gnu/system.scm (%base-packages): Add IW.
Merge branch 'master' into 'core-updates'.
system: Add sudo to '%base-packages'. * gnu/system.scm (%base-packages): Add SUDO.
system: /etc/profile defines 'MANPATH', which includes the global profile. * gnu/system.scm (etc-directory)[profile]: Set 'MANPATH'.
system: Cleanup bash startup files. * gnu/system.scm (etc-directory) (bashrc): Rename to 'profile'. * gnu/system/shadow.scm (default-skeletons): Rename '.bashrc' to '.bash_profile'. Don't source /etc/profile.
system: Add 'man-db' to '%base-packages'. Suggested by Tsutsukakushi on #guix. * gnu/system.scm (%base-packages): Add MAN-DB.
Revert "system: Add a 'needed-for-boot?' field to 'mapped-device'." This reverts commit 3b09332adf7ce8e976a4d117a62c586a53af04aa, which turned out to be a bad idea because we need to have dependency information between the device-mapping service and the file-system service that uses it.
system: Add a 'needed-for-boot?' field to 'mapped-device'. * gnu/system/file-systems.scm (<mapped-device>)[needed-for-boot?]: New field. * gnu/system.scm (operating-system-user-mapped-devices, operating-system-boot-mapped-devices): Use it instead of trying to guess. Guessing doesn't work when one refers to a partition using its label, for instance. * doc/guix.texi (Mapped Devices): Document 'needed-for-boot?'.
linux-boot: Load modules and their dependencies, à la 'modprobe'. * gnu/build/linux-boot.scm: Use (gnu build linux-modules). (load-linux-module*): Remove. (boot-system): Add #:linux-module-directory parameter. [lookup-module]: New procedure. Call 'current-module-debugging-port'. Pass #:lookup-module to 'load-linux-module*'. Map LOOKUP-MODULE on LINUX-MODULES. * gnu/system/linux-initrd.scm (base-initrd): Adjust 'boot-system' call accordingly. Adjust #:modules argument as well. * gnu/system.scm (operating-system-activation-script)[%modules]: Likewise. * gnu/system/vm.scm (expression->derivation-in-linux-vm): Likewise.
system: Build system-wide locale definitions. * gnu/system/locale.scm: New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add it. * gnu/system.scm (<operating-system>)[locale]: Change the default to "en_US.utf8". (operating-system-locale-directory): New procecure. (operating-system-derivation): Use it. * doc/guix.texi (Using the Configuration System): Change example locale to "fr_FR.utf8". (operating-system Reference): Add xref to "Locales". Document 'locale-definitions'. (Locales): New section. * po/guix/POTFILES.in: Add gnu/system.scm.
file-systems: 'file-system-needed-for-boot?' always returns #t for "/". Reported by Nikita Karetnikov. * gnu/system/file-systems.scm (<file-system>): Rename 'needed-for-boot?' accessor to '%file-system-needed-for-boot?'. (file-system-needed-for-boot?): New inlinable procedure. * gnu/system.scm (other-file-system-services)[file-systems]: Rely on 'file-system-needed-for-boot?' to handle the "/" case. (operating-system-initrd-file)[boot-file-systems]: Likewise.
system: Shorten the default label for GRUB entries. * gnu/system.scm (kernel->grub-label): Shorten entry labels.
activation: Set the firmware search path. * gnu/build/activation.scm (activate-firmware): New procedure. * gnu/system.scm (<operating-system>)[firmware]: New field. (directory-union): New procedure. (%base-firmware): New variable. (operating-system-activation-script): Use 'directory-union', and call 'activate-firmware'. * doc/guix.texi (operating-system Reference): Document 'firmware'.
services: Add 'user-unmount-service' as an essential service. * gnu/services/base.scm (user-unmount-service): New procedure. * gnu/system.scm (essential-services): Use it. * gnu/system/install.scm (cow-store-service): Mention it in comment.
system: Define 'INFOPATH' in /etc/profile. * gnu/system.scm (etc-directory)[bashrc]: Set 'INFOPATH'.