build: Fix builds without --with-libgcrypt-prefix nor --with-libgcrypt-libdir.
Reported by Manolis Ragkousis <manolis837@gmail.com>.
Fixes a regression introduced in 14af289.
Before this commit, ./configure would leave LIBGCRYPT_PREFIX and
LIBGCRYPT_LIBDIR undefined, leading to LIBGCRYPT_LIBS="-L -lgcrypt" and
thus to a link failure.
* configure.ac: Make sure $LIBGCRYPT_PREFIX and $LIBGCRYPT_LIBDIR are
never empty.
vm: Modularize build-side code.
* guix/build/install.scm (install-grub): Call 'error' if 'system*'
returns non-zero.
* guix/build/vm.scm (initialize-partition-table): Make 'partition-size'
a positional parameter. Call 'error' when 'system*' returns
non-zero'.
(format-partition, initialize-root-partition): New procedures.
(initialize-hard-disk): Use them.
vm: Remove misleading comment.
* guix/build/vm.scm (load-in-linux-vm): Remove misleading comment.
gnu: Add wpa_supplicant.
* gnu/packages/admin.scm (wpa-supplicant): New variable.
store: Flush the output when the build process emits '\r'.
This allows progress reports emitted by 'substitute-binary' to be
correctly displayed.
* guix/store.scm (%newlines): New variable.
(process-stderr) <%stderr-next>: Flush (current-build-output-port)
when S contains one of %NEWLINES.
Augment (guix).
* guix.scm (%public-modules): Add 'monads' and 'gexp'.
Add (gnu system file-systems).
This fixes a circular dependency between (gnu system) and (gnu system
linux-initrd), where the latter could end up being compiled before
'file-system-type' was defined as a macro.
* gnu/system.scm (<file-system>, %fuse-control-file-system,
%binary-format-file-system): Move to...
* gnu/system/file-systems.scm: ... here. New file.
* build-aux/hydra/demo-os.scm, gnu/system/linux-initrd.scm,
gnu/system/vm.scm: Use it.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
linux-initrd: Display a backtrace when the initial program fails.
* guix/build/linux-initrd.scm (boot-system): Add pre-unwind handler in
'catch' form around 'primitive-load', and call 'format' and
'display-backtrace' from there.
vm: Fix typo.
Regression introduced in e38e18f.
* guix/build/vm.scm (initialize-hard-disk)[partition]: Use a string.
gnu: Add ccache.
* gnu/packages/ccache.scm: New file.
* gnu/packages/patches/ccache-stdc-predef-test.patch: New patch.
* gnu-system.am (GNU_SYSTEM_MODULES): Add ccache.scm.
(dist_patch_DATA): Add patch.
gnu: Edit synopses of petsc packages.
* gnu/packages/maths.scm (petsc) [synopsis]: Shorten.
(petsc-complex,petsc-openmpi,petsc-complex-openmpi) [synopsis]:
Repeat synopsis from petsc package with extensions. [description]: Remove.
gnu: offlineimap: fix license.
* gnu/packages/mail.scm (offlineimap) [license]: Change to gpl2+.
gnu: Add mu.
* gnu/packages/mail.scm (mu): New variable.
gnu: Add offlineimap
* gnu/packages/mail.scm (offlineimap): New variable.
gnu: Add Linux kbd.
* gnu/packages/linux.scm (kbd): New variable.
ui: Gracefully deal with zero-output derivations.
* guix/ui.scm (show-what-to-build)[built-or-substitutable?]: New
procedure. Check whether OUT is #f.
Use it.
* tests/ui.scm ("show-what-to-build, zero outputs"): New test.
guix system: Check whether we are installing to /.
* guix/scripts/system.scm (install): Check whether TARGET is / and warn.
guix system: Factorize out closure copy.
* guix/scripts/system.scm (copy-closure): New procedure.
(install): Use it.
doc: Show the 'bootloader' field in system example.
* doc/guix.texi (Using the Configuration System): Add 'bootloader'
field.
guix system: 'guix system init' installs GRUB by default.
* guix/scripts/system.scm (install): Add #:grub?, #:grub.cfg, and
#:device parameters; honor them.
(show-help): Document '--no-grub'.
(%options): Add '--no-grub'.
(%default-options): Add 'install-grub?'.
(guix-system): Honor 'install-grub?' option from OPTS. Adjust
'install' call accordingly.
* doc/guix.texi (Invoking guix system): Document '--no-grub'.