* gnu/system.scm (<operating-system>)[kernel-arguments]: New field.
(operating-system-grub.cfg): Honor it.
(operating-system-parameters-file): Add 'kernel-arguments' to the parameters
file.
* guix/scripts/system.scm (previous-grub-entries)[system->grub-entry]: Read
the 'kernel-arguments' field of the parameters file, when available.
* gnu/system/vm.scm (system-qemu-image/shared-store-script):
Use (operating-system-kernel-arguments os) in '-append'.
* doc/guix.texi (operating-system Reference): Document it.
Fixes <http://bugs.gnu.org/19778>.
Reported by Mark H Weaver <mhw@netris.org>.
* gnu/system/file-systems.scm (%uuid-rx): New variable.
(string->uuid): New procedure.
(uuid): New macro.
* tests/file-systems.scm: New file.
* Makefile.am (SCM_TESTS): Add it.
* doc/guix.texi (File Systems): Give an example of UUID.
* gnu/packages/gcc.scm (gcc-configure-flags-for-triplet): On armhf,
include --with-fpu=neon.
* doc/guix.texi (GNU Distribution): Document that our armhf port
requires NEON.
* doc/guix.texi (Daemon Offload Setup): Mention that we're using lsh. Mention
GUILE_LOAD_PATH settings on the target machine. Explain that machines must
authorize each other.
* guix/scripts/environment.scm (package+propagated-inputs): Add 'output'
parameter. Use it in return value.
(options/resolve-packages): Use 'append-map' instead of 'map'. For 'load'
and 'expression', return all the outputs of the resulting package. For
'package', use 'specification->package+output' instead of
'specification->package'.
(guix-environment): Adjust uses of PACKAGES accordingly.
* doc/guix.texi (Invoking guix environment): Document it.
* tests/guix-environment.sh: Add test for --ad-hoc guile-bootstrap:out.
* doc/environment-gdb.scm: New file.
* doc.am (EXTRA_DIST): Add it.
* doc/guix.texi (Invoking guix environment): Clarify wording of the first
example. Add a --ad-hoc example upfront. Add an example for '-e', and one
for '-l'.
* guix/scripts/size.scm: New file.
* Makefile.am (MODULES): Add it.
(SCM_TESTS): Add tests/size.scm.
* doc.am (SUBCOMMANDS): Add 'size'.
* po/guix/POTFILES.in: Add guix/scripts/size.scm.
* tests/size.scm: New file.
* doc/guix.texi (Packages with Multiple Outputs): Add xref to "Invoking guix
size".
(Invoking guix size): New node.
(Invoking guix gc): Add index for "closure" and xref to the above.
* doc/contributing.texi (Submitting Patches): Use @enumerate for the check
list. Add item about 'guix size'.
* HACKING (Contributing): New section.
(Building from Git, The Perfect Setup, Coding Style, Submitting Patches):
Move to ...
* doc/guix.texi (Running Guix Before It Is Installed): Likewise.
* doc/contributing.texi: ... here. New file.
* doc.am (EXTRA_DIST): Use it.
* README (Installation): Adapt to it.
* configure.ac (DOT): Likewise.
* guix/scripts/build.scm (package-with-source)[tarball-base-name]: Gracefully
handle file names that lack an extension.
Pass #:recursive? #t to 'download-to-store'.
* guix/download.scm (download-to-store): Add #:recursive? parameter and pass
it to 'add-to-store'.
* doc/guix.texi (Invoking guix build): Add an example of --with-source with a
directory.
* guix/import/cabal.scm: New file.
* guix/import/hackage.scm: Update to use the new Cabal parsing module.
* tests/hackage.scm: Update tests.
* guix/scripts/import/hackage.scm: Add new '--cabal-environment' and '--stdin'
options.
* doc/guix.texi: ... and document them.
* Makefile.am (MODULES): Add 'guix/import/cabal.scm',
'guix/import/hackage.scm' and 'guix/scripts/import/hackage.scm'.
(SCM_TESTS): Add 'tests/hackage.scm'.
Suggested by Thomas Schwinge <thomas@codesourcery.com>.
* gnu/system/install.scm (self-contained-tarball): Remove
"/root/.guix-profile" from the 'tar' arguments.
* doc/guix.texi (Binary Installation): Add a step to create
~root/.guix-profile.
Suggested by Federico Beffa <beffa@fbengineering.ch>.
* guix/monads.scm (bind-syntax): New macro.
(with-monad): Use it instead of 'identifier-syntax'.
* tests/monads.scm (">>= with more than two arguments"): New test.
* doc/guix.texi (The Store Monad): Explain that there can be several MPROC.
Add an example.
Partly fixes <http://bugs.gnu.org/20720>.
Reported by Alex Kost <alezost@gmail.com>.
* gnu/system.scm (default-/etc/hosts): Change 'text-file' to 'plain-file'.
(maybe-file->monadic): New procedure.
(operating-system-etc-directory): Use it.
* doc/guix.texi (operating-system Reference, Networking Services): Adjust
accordingly.
Partly fixes <http://bugs.gnu.org/20720>
Reported by Alex Kost <alezost@gmail.com>.
* gnu/system.scm (etc-directory): Change default #:sudoers value to a
'plain-file'. Don't bind it. Remove #~#$.
(maybe-string->file): New procedure.
(operating-system-etc-directory): Use it.
(%sudoers-specification): Use 'plain-file'.
* doc/guix.texi (operating-system Reference): Adjust accordingly.
* guix/scripts/environment.scm (%options): Add "ad-hoc" option.
(show-help): Display help for "--ad-hoc".
(packages+propagated-inputs): New procedure.
(guix-environment): Create ad hoc environment when asked.
* doc/guix.texi ("invoking guix environment"): Document it.
* guix/ui.scm (load*): Add #:on-error parameter.
[tag, error-string]: New variables.
Wrap 'load' call in 'call-with-prompt'. Pass TAG to 'make-stack'. Honor
ON-ERROR after 'report-load-error' call.
(report-load-error): Change to not exit on error. Make private.
* guix/scripts/system.scm (show-help, %options): Add --on-error.
(guix-system): Use 'load*' and pass it #:on-error.
* gnu/system/shadow.scm (%base-user-accounts): New variable.
* gnu/system.scm (<operating-system>)[users]: Use it as the default value.
* gnu/system/examples/bare-bones.tmpl (users): Use it.
* gnu/system/examples/desktop.tmpl (users): Likewise.
* doc/guix.texi (operating-system Reference, User Accounts): Adjust
accordingly.