system: Allow the root file system to have a UUID.
This is a followup to ab64483.
* gnu/system.scm (mapped-device-user): Check whether the title of FS is
'device before calling 'string=?'.
* gnu/system/vm.scm (virtualized-operating-system)[user-file-systems]:
Likewise.
file-systems: Add a 'mount?' field.
Fixes <http://bugs.gnu.org/22176>.
Reported by Florian Paul Schmidt <mista.tapas@gmx.net>.
* gnu/system/file-systems.scm (<file-system>)[mount?]: New field.
(file-system->spec): Adjust accordingly.
* gnu/services/base.scm (file-system-dmd-service): Return the empty list
when FILE-SYSTEM has 'mount?' set to false.
(user-processes-service): Select the subset of FILE-SYSTEMS that matches
'file-system-mount?'.
* doc/guix.texi (File Systems): Document it.
doc: Be more explicit in example of file-systems configuration.
* gnu/system/examples/bare-bones.tmpl (file-systems): Change device
label.
* gnu/system/examples/desktop.tmpl (file-systems): Likewise.
system: pam: Honor /etc/environment.
* gnu/system/pam.scm (unix-pam-service): Add pam_env module to the session group.
gnu: Add qemu-minimal.
* gnu/packages/qemu.scm (qemu): Exchange with former QEMU-HEADLESS.
(qemu-headless): Rename to...
(qemu-minimal): ... this. New variable. Pass --target-list.
* gnu/packages/debug.scm (qemu-2.3.0): Inherit from QEMU-MINIMAL.
* gnu/packages/grub.scm (qemu-for-tests): Likewise.
* gnu/system/vm.scm (expression->derivation-in-linux-vm, qemu-image):
Update to name change.
system: Populate /etc/shells from ACCOUNT-SERVICE-TYPE.
* gnu/system.scm (user-shells): Remove.
(operating-system-etc-service): Remove "shells" entry.
(shells-file): Move to...
* gnu/system/shadow.scm (shells-file): ... here. New procedure.
(etc-skel): Rename to...
(etc-files): ... this. Add "shells" entry.
(account-service-type): Adjust accordingly.
system: Rename (gnu system linux) to (gnu system pam).
* gnu/system/linux.scm: Rename to...
* gnu/system/pam.scm: ... this.
* gnu-system.am (GNU_SYSTEM_MODULES): Adjust accordingly.
* gnu.scm, gnu/services/base.scm, gnu/services/desktop.scm,
gnu/services/networking.scm, gnu/services/ssh.scm,
gnu/services/xorg.scm, gnu/system.scm, gnu/system/vm.scm: Likewise.
services: avahi: Add Avahi to the system profile.
* gnu/services/avahi.scm (avahi-service-type): Extend
PROFILE-SERVICE-TYPE.
(avahi-service): Adjust docstring.
* doc/guix.texi (Networking Services): Adjust accordingly.
* gnu/system/examples/desktop.tmpl (packages): Remove AVAHI.
services: slim: Add xterm to the system profile.
* gnu/services/xorg.scm (slim-service-type): Extend
PROFILE-SERVICE-TYPE.
* gnu/system/examples/desktop.tmpl (packages): Remove XTERM.
services: wicd: Add Wicd to the system profile.
* gnu/services/networking.scm (wicd-service-type): Extend
PROFILE-SERVICE-TYPE.
(wicd-service): Mention it in docstring.
* doc/guix.texi (Networking Services): Update documentation
accordingly.
* gnu/system/examples/desktop.tmpl (packages): Remove WICD.
services: Add 'system-service-type'.
* gnu/services.scm (system-derivation): New procedure.
(system-service-type): New variable.
(boot-script-entry): New procedure.
(boot-service-type): Extend SYSTEM-SERVICE-TYPE.
(etc-entry): New procedure.
(etc-service-type): Extend SYSTEM-SERVICE-TYPE.
(fold-services): Change default #:target-type to SYSTEM-SERVICE-TYPE.
* gnu/system.scm (operating-system-directory-base-entries): New procedure.
(essential-services): Use it. Add an instance of
SYSTEM-SERVICE-TYPE.
(operating-system-boot-script): Pass #:target-type to 'fold-services'.
(operating-system-derivation): Rewrite in terms of 'fold-services'.
* gnu/system/linux-container.scm (system-container): Remove.
(container-script): Use 'operating-system-derivation'.
* guix/scripts/system.scm (export-extension-graph): Replace
BOOT-SERVICE-TYPE by SYSTEM-SERVICE-TYPE.
* doc/images/service-graph.dot: Add 'system' node and edges.
* doc/guix.texi (Service Composition): Mention SYSTEM-SERVICE-TYPE.
(Service Reference): Document it. Update 'fold-services'
documentation.
system: grub: Use a bigger background image.
* gnu/system/grub.scm (grub-background-image): Increase the default
values of WIDTH and HEIGHT. After all, it's 2015 already!
doc: Give an example with an encrypted root partition.
* gnu/system/examples/desktop.tmpl: Add 'mapped-devices' field.
Use it in 'file-systems'.
* doc/guix.texi (System Installation): Suggest encrypted partitions.
Give an example of a command sequence.
system: Add 'locale-libcs' field.
* gnu/system/locale.scm (localedef-command)[maybe-version-directory]:
New procedure.
Use it.
(locale-directory): Rename to...
(single-locale-directory): ... this. Check the version of LIBC to
determine whether to create a "X.Y" sub-directory or to make it a
symlink to ".". Add the version number in the derivation name.
(locale-directory): New procedure.
(%default-locale-libcs): New variable.
* gnu/system.scm (<operating-system>)[locale-libcs]: New field.
(operating-system-locale-directory): Pass it to 'locale-directory'.
* doc/guix.texi (operating-system Reference): Document 'locale-libcs'.
(Locales)[Locale Data Compatibility Considerations]: New section.
scripts: system: Add 'container' action.
* guix/scripts/system.scm (show-help): Display 'container' action.
(system-derivation-for-action, guix-system): Add 'container' case.
(perform-action): Skip GRUB config generation when building a container.
* doc/guix.texi (Invoking guix system): Document it.
system: container: Adjust to changes in gexps.
* gnu/system/linux-container.scm (system-container): 'etc' is no longer
a monadic value, and the result of 'file-union' must be lowered.
Merge branch 'master' into dbus-update
services: Add screen-locker service.
* gnu/system/linux.scm (base-pam-services): Remove "xlock" and
"xscreensaver".
* gnu/services/xorg.scm (<screen-locker>): New record type.
(screen-locker-pam-services, screen-locker-setuid-programs,
screen-locker-service): New procedures.
(screen-locker-service-type): New variable.
* gnu/services/desktop.scm (%desktop-services): Use them.
* doc/guix.texi (X Window): Document 'screen-locker-service'.
(Desktop Services): Mention it.