Merge branch 'version-0.15.0'

This commit is contained in:
Ludovic Courtès 2018-07-06 17:42:25 +02:00
commit c2808d4c67
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
12 changed files with 1196 additions and 37 deletions

1066
NEWS

File diff suppressed because it is too large Load Diff

View File

@ -108,7 +108,9 @@ actually installing them. So that you can distinguish between your
``end-user'' hat and your ``motley'' costume. ``end-user'' hat and your ``motley'' costume.
To that end, all the command-line tools can be used even if you have not To that end, all the command-line tools can be used even if you have not
run @code{make install}. To do that, prefix each command with run @code{make install}. To do that, you first need to have an environment
with all the dependencies available (@pxref{Building from Git}), and then
simply prefix each command with
@command{./pre-inst-env} (the @file{pre-inst-env} script lives in the @command{./pre-inst-env} (the @file{pre-inst-env} script lives in the
top build tree of Guix), as in@footnote{The @option{-E} flag to top build tree of Guix), as in@footnote{The @option{-E} flag to
@command{sudo} guarantees that @code{GUILE_LOAD_PATH} is correctly set @command{sudo} guarantees that @code{GUILE_LOAD_PATH} is correctly set

View File

@ -96,6 +96,15 @@ Edition @value{EDITION} @*
This document describes GNU Guix version @value{VERSION}, a functional This document describes GNU Guix version @value{VERSION}, a functional
package management tool written for the GNU system. package management tool written for the GNU system.
@c TRANSLATORS: You can replace the following paragraph with information on
@c how to join your own translation team and how to report issues with the
@c translation.
This manual is also available in French (@pxref{Top,,, guix.fr, Manuel de
référence de GNU Guix}). If you would like to translate it in your native
language, consider joining the
@uref{https://translationproject.org/domain/guix-manual.html, Translation
Project}.
@menu @menu
* Introduction:: What is Guix about? * Introduction:: What is Guix about?
* Installation:: Installing Guix. * Installation:: Installing Guix.
@ -8329,7 +8338,7 @@ More and more system services are provided (@pxref{Services}), but some
may be missing. may be missing.
@item @item
More than 6,500 packages are available, but you might More than 7,500 packages are available, but you might
occasionally find that a useful package is missing. occasionally find that a useful package is missing.
@item @item
@ -8636,6 +8645,17 @@ must have the @code{esp} flag set. E.g., for @command{parted}:
parted /dev/sda set 1 esp on parted /dev/sda set 1 esp on
@end example @end example
@quotation Note
@vindex grub-bootloader
@vindex grub-efi-bootloader
Unsure whether to use EFI- or BIOS-based GRUB? If the directory
@file{/sys/firmware/efi} exists in the installation image, the you should
probably perform an EFI installation, using @code{grub-efi-bootloader}.
Otherwise you should use the BIOS-based GRUB, known as
@code{grub-bootloader}. @xref{Bootloader Configuration}, for more info on
bootloaders.
@end quotation
Once you are done partitioning the target hard disk drive, you have to Once you are done partitioning the target hard disk drive, you have to
create a file system on the relevant partition(s)@footnote{Currently create a file system on the relevant partition(s)@footnote{Currently
GuixSD only supports ext4 and btrfs file systems. In particular, code GuixSD only supports ext4 and btrfs file systems. In particular, code
@ -8964,6 +8984,27 @@ Below we discuss the effect of some of the most important fields
fields), and how to @dfn{instantiate} the operating system using fields), and how to @dfn{instantiate} the operating system using
@command{guix system}. @command{guix system}.
@unnumberedsubsubsec Bootloader
@cindex legacy boot, on Intel machines
@cindex BIOS boot, on Intel machines
@cindex UEFI boot
@cindex EFI boot
The @code{bootloader} field describes the method that will be used to boot
your system. Machines based on Intel processors can boot in ``legacy'' BIOS
mode, as in the example above. However, more recent machines rely instead on
the @dfn{Unified Extensible Firmware Interface} (UEFI) to boot. In that case,
the @code{bootloader} field should contain something along these lines:
@example
(bootloader-configuration
(bootloader grub-efi-bootloader)
(target "/boot/efi"))
@end example
@xref{Bootloader Configuration}, for more information on the available
configuration options.
@unnumberedsubsubsec Globally-Visible Packages @unnumberedsubsubsec Globally-Visible Packages
@vindex %base-packages @vindex %base-packages
@ -9074,8 +9115,7 @@ management, power management, and more, would look like this:
@include os-config-desktop.texi @include os-config-desktop.texi
@end lisp @end lisp
@cindex UEFI A graphical system with a choice of lightweight window managers
A graphical UEFI system with a choice of lightweight window managers
instead of full-blown desktop environments would look like this: instead of full-blown desktop environments would look like this:
@lisp @lisp
@ -20697,21 +20737,34 @@ The type of a bootloader configuration declaration.
The bootloader to use, as a @code{bootloader} object. For now The bootloader to use, as a @code{bootloader} object. For now
@code{grub-bootloader}, @code{grub-efi-bootloader}, @code{grub-bootloader}, @code{grub-efi-bootloader},
@code{extlinux-bootloader} and @code{u-boot-bootloader} are supported. @code{extlinux-bootloader} and @code{u-boot-bootloader} are supported.
@code{grub-efi-bootloader} allows to boot on modern systems using the
@dfn{Unified Extensible Firmware Interface} (UEFI).
@vindex grub-efi-bootloader
@code{grub-efi-bootloader} allows to boot on modern systems using the
@dfn{Unified Extensible Firmware Interface} (UEFI). This is what you should
use if the installation image contains a @file{/sys/firmware/efi} directory
when you boot it on your system.
@vindex grub-bootloader
@code{grub-bootloader} allows you to boot in particular Intel-based machines
in ``legacy'' BIOS mode.
@cindex ARM, bootloaders
@cindex AArch64, bootloaders
Available bootloaders are described in @code{(gnu bootloader @dots{})} Available bootloaders are described in @code{(gnu bootloader @dots{})}
modules. modules. In particular, @code{(gnu bootloader u-boot)} contains definitions
of bootloaders for a wide range of ARM and AArch64 systems, using the
@uref{http://www.denx.de/wiki/U-Boot/, U-Boot bootloader}.
@item @code{target} @item @code{target}
This is a string denoting the target onto which to install the This is a string denoting the target onto which to install the
bootloader. The exact interpretation depends on the bootloader in bootloader.
question; for @code{grub-bootloader}, for example, it should be a device
name understood by the bootloader @command{installer} command, such as The interpretation depends on the bootloader in question. For
@code{/dev/sda} or @code{(hd0)} (for GRUB, @pxref{Invoking @code{grub-bootloader}, for example, it should be a device name understood by
grub-install,,, grub, GNU GRUB Manual}). For the bootloader @command{installer} command, such as @code{/dev/sda} or
@code{grub-efi-bootloader}, it should be the path to a mounted EFI file @code{(hd0)} (@pxref{Invoking grub-install,,, grub, GNU GRUB Manual}). For
system. @code{grub-efi-bootloader}, it should be the mount point of the EFI file
system, usually @file{/boot/efi}.
@item @code{menu-entries} (default: @code{()}) @item @code{menu-entries} (default: @code{()})
A possibly empty list of @code{menu-entry} objects (see below), denoting A possibly empty list of @code{menu-entry} objects (see below), denoting
@ -20736,7 +20789,7 @@ The output terminals used for the bootloader boot menu, as a list of
symbols. GRUB accepts the values: @code{console}, @code{serial}, symbols. GRUB accepts the values: @code{console}, @code{serial},
@code{serial_@{0-3@}}, @code{gfxterm}, @code{vga_text}, @code{serial_@{0-3@}}, @code{gfxterm}, @code{vga_text},
@code{mda_text}, @code{morse}, and @code{pkmodem}. This field @code{mda_text}, @code{morse}, and @code{pkmodem}. This field
corresponds to the GRUB variable GRUB_TERMINAL_OUTPUT (@pxref{Simple corresponds to the GRUB variable @code{GRUB_TERMINAL_OUTPUT} (@pxref{Simple
configuration,,, grub,GNU GRUB manual}). configuration,,, grub,GNU GRUB manual}).
@item @code{terminal-inputs} (default: @code{'()}) @item @code{terminal-inputs} (default: @code{'()})
@ -20745,7 +20798,7 @@ symbols. For GRUB, the default is the native platform terminal as
determined at run-time. GRUB accepts the values: @code{console}, determined at run-time. GRUB accepts the values: @code{console},
@code{serial}, @code{serial_@{0-3@}}, @code{at_keyboard}, and @code{serial}, @code{serial_@{0-3@}}, @code{at_keyboard}, and
@code{usb_keyboard}. This field corresponds to the GRUB variable @code{usb_keyboard}. This field corresponds to the GRUB variable
GRUB_TERMINAL_INPUT (@pxref{Simple configuration,,, grub,GNU GRUB @code{GRUB_TERMINAL_INPUT} (@pxref{Simple configuration,,, grub,GNU GRUB
manual}). manual}).
@item @code{serial-unit} (default: @code{#f}) @item @code{serial-unit} (default: @code{#f})

View File

@ -1,7 +1,7 @@
# htmlxref.cnf - reference file for free Texinfo manuals on the web. # htmlxref.cnf - reference file for free Texinfo manuals on the web.
# Modified by Ludovic Courtès <ludo@gnu.org> for the GNU Guix manual. # Modified by Ludovic Courtès <ludo@gnu.org> for the GNU Guix manual.
htmlxrefversion=2016-08-03.13; # UTC htmlxrefversion=2018-07-05.20; # UTC
# Copyright 2010, 2011, 2012, 2013, 2014, 2015 Free Software Foundation, Inc. # Copyright 2010, 2011, 2012, 2013, 2014, 2015 Free Software Foundation, Inc.
# #
@ -219,7 +219,7 @@ emacs node ${EMACS}/html_node/emacs/
easejs mono ${GS}/easejs/manual/easejs.html easejs mono ${GS}/easejs/manual/easejs.html
easejs node ${GS}/easejs/manual/ easejs node ${GS}/easejs/manual/
EMACS_GUIX = https://alezost.github.io/guix.el/manual/latest EMACS_GUIX = https://emacs-guix.gitlab.io/website/manual/latest
emacs-guix mono ${EMACS_GUIX}/emacs-guix.html emacs-guix mono ${EMACS_GUIX}/emacs-guix.html
emacs-guix node ${EMACS_GUIX}/html_node/ emacs-guix node ${EMACS_GUIX}/html_node/
@ -391,6 +391,8 @@ guile-rpc node ${GS}/guile-rpc/manual/html_node/
guix mono ${GS}/guix/manual/guix.html guix mono ${GS}/guix/manual/guix.html
guix node ${GS}/guix/manual/html_node/ guix node ${GS}/guix/manual/html_node/
guix.fr mono ${GS}/guix/manual/fr/guix.html
guix.fr node ${GS}/guix/manual/fr/html_node/
gv mono ${GS}/gv/manual/gv.html gv mono ${GS}/gv/manual/gv.html
gv node ${GS}/gv/manual/html_node/ gv node ${GS}/gv/manual/html_node/

View File

@ -105,7 +105,13 @@ the #:references-graphs parameter of 'derivation'."
;; hardware virtualization to still use these commands. KVM support is ;; hardware virtualization to still use these commands. KVM support is
;; still buggy on some ARM32 boards. Do not use it even if available. ;; still buggy on some ARM32 boards. Do not use it even if available.
,@(if (and (file-exists? "/dev/kvm") ,@(if (and (file-exists? "/dev/kvm")
(not target-arm32?)) (not target-arm32?)
;; XXX: 32-bit 'qemu-system-i386 -enable-kvm' segfaults on
;; x86_64 hosts running Linux-libre 4.17:
;; <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=31380#18> and
;; <https://lists.gnu.org/archive/html/qemu-devel/2018-07/msg01166.html>.
(not (string-suffix? "-i386" qemu)))
'("-enable-kvm") '("-enable-kvm")
'()) '())

View File

@ -100,9 +100,9 @@
;; Latest version of Guix, which may or may not correspond to a release. ;; Latest version of Guix, which may or may not correspond to a release.
;; Note: the 'update-guix-package.scm' script expects this definition to ;; Note: the 'update-guix-package.scm' script expects this definition to
;; start precisely like this. ;; start precisely like this.
(let ((version "0.14.0") (let ((version "0.15.0")
(commit "7af5c2a248b6c229187fc850517c84b0917c452b") (commit "4876bc8234095e2af191b0c6470455ce67d9f5f7")
(revision 13)) (revision 1))
(package (package
(name "guix") (name "guix")
@ -118,7 +118,7 @@
(commit commit))) (commit commit)))
(sha256 (sha256
(base32 (base32
"06kjimcln4ydirgl05qy98kxjyx3l6brxnq1ly7wb85f73s97gix")) "0qw0ffrxzxfk76pp38kx222ndpsv9mbhlmfycagyipgypgjdd9lq"))
(file-name (string-append "guix-" version "-checkout")))) (file-name (string-append "guix-" version "-checkout"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments

View File

@ -1113,7 +1113,14 @@ the tty to run, among other things."
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
(list #$(file-append mingetty "/sbin/mingetty") (list #$(file-append mingetty "/sbin/mingetty")
"--noclear" #$tty "--noclear"
;; Avoiding 'vhangup' allows us to avoid 'setfont'
;; errors down the path where various ioctls get
;; EIO--see 'hung_up_tty_ioctl' in driver/tty/tty_io.c
;; in Linux.
"--nohangup" #$tty
#$@(if auto-login #$@(if auto-login
#~("--autologin" #$auto-login) #~("--autologin" #$auto-login)
#~()) #~())

View File

@ -10,8 +10,9 @@
(timezone "Europe/Berlin") (timezone "Europe/Berlin")
(locale "en_US.utf8") (locale "en_US.utf8")
;; Assuming /dev/sdX is the target hard disk, and "my-root" is ;; Boot in "legacy" BIOS mode, assuming /dev/sdX is the
;; the label of the target root file system. ;; target hard disk, and "my-root" is the label of the target
;; root file system.
(bootloader (bootloader-configuration (bootloader (bootloader-configuration
(bootloader grub-bootloader) (bootloader grub-bootloader)
(target "/dev/sdX"))) (target "/dev/sdX")))

View File

@ -11,11 +11,11 @@
(timezone "Europe/Paris") (timezone "Europe/Paris")
(locale "en_US.utf8") (locale "en_US.utf8")
;; Assuming /dev/sdX is the target hard disk, and "my-root" ;; Use the UEFI variant of GRUB with the EFI System
;; is the label of the target root file system. ;; Partition mounted on /boot/efi.
(bootloader (bootloader-configuration (bootloader (bootloader-configuration
(bootloader grub-bootloader) (bootloader grub-efi-bootloader)
(target "/dev/sdX"))) (target "/boot/efi")))
;; Specify a mapped device for the encrypted root partition. ;; Specify a mapped device for the encrypted root partition.
;; The UUID is that returned by 'cryptsetup luksUUID'. ;; The UUID is that returned by 'cryptsetup luksUUID'.

View File

@ -703,6 +703,8 @@ MANIFEST."
(module-ref (resolve-interface '(gnu packages texinfo)) 'texinfo)) (module-ref (resolve-interface '(gnu packages texinfo)) 'texinfo))
(define gzip ;lazy reference (define gzip ;lazy reference
(module-ref (resolve-interface '(gnu packages compression)) 'gzip)) (module-ref (resolve-interface '(gnu packages compression)) 'gzip))
(define glibc-utf8-locales ;lazy reference
(module-ref (resolve-interface '(gnu packages base)) 'glibc-utf8-locales))
(define build (define build
(with-imported-modules '((guix build utils)) (with-imported-modules '((guix build utils))
@ -720,11 +722,31 @@ MANIFEST."
(map (cut string-append infodir "/" <>) (map (cut string-append infodir "/" <>)
(or (scandir infodir info-file?) '())))) (or (scandir infodir info-file?) '()))))
(define (info-file-language file)
(let* ((base (if (string-suffix? ".gz" file)
(basename file ".info.gz")
(basename file ".info")))
(dot (string-rindex base #\.)))
(if dot
(string-drop base (+ 1 dot))
"en")))
(define (install-info info) (define (install-info info)
(setenv "PATH" (string-append #+gzip "/bin")) ;for info.gz files (let ((language (info-file-language info)))
(zero? ;; We need to choose a valid locale for $LANGUAGE to be honored.
(system* (string-append #+texinfo "/bin/install-info") "--silent" (setenv "LC_ALL" "en_US.utf8")
info (string-append #$output "/share/info/dir")))) (setenv "LANGUAGE" language)
(zero?
(system* #+(file-append texinfo "/bin/install-info")
"--silent" info
(apply string-append #$output "/share/info/dir"
(if (string=? "en" language)
'("")
`("." ,language)))))))
(setenv "PATH" (string-append #+gzip "/bin")) ;for info.gz files
(setenv "GUIX_LOCPATH"
#+(file-append glibc-utf8-locales "/lib/locale"))
(mkdir-p (string-append #$output "/share/info")) (mkdir-p (string-append #$output "/share/info"))
(exit (every install-info (exit (every install-info

View File

@ -722,6 +722,7 @@ Create a bundle of PACKAGE.\n"))
(if (assoc-ref opts 'bootstrap?) (if (assoc-ref opts 'bootstrap?)
%bootstrap-guile %bootstrap-guile
(canonical-package guile-2.2)) (canonical-package guile-2.2))
(assoc-ref opts 'system)
#:graft? (assoc-ref opts 'graft?)))) #:graft? (assoc-ref opts 'graft?))))
(let* ((dry-run? (assoc-ref opts 'dry-run?)) (let* ((dry-run? (assoc-ref opts 'dry-run?))
(relocatable? (assoc-ref opts 'relocatable?)) (relocatable? (assoc-ref opts 'relocatable?))

View File

@ -28,6 +28,11 @@ fi
guix pack --version guix pack --version
# FIXME: Starting from commit 66e9944e078cbb9e0d618377dd6df6e639640efa,
# '--bootstrap' is mostly ineffective since 'guix pack' produces derivations
# that refer to guile-sqlite3 and libgcrypt. For now we just skip the test.
exit 77
# Use --no-substitutes because we need to verify we can do this ourselves. # Use --no-substitutes because we need to verify we can do this ourselves.
GUIX_BUILD_OPTIONS="--no-substitutes" GUIX_BUILD_OPTIONS="--no-substitutes"
export GUIX_BUILD_OPTIONS export GUIX_BUILD_OPTIONS