Merge branch 'version-0.15.0'
This commit is contained in:
commit
c2808d4c67
|
@ -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
|
||||||
|
|
|
@ -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})
|
||||||
|
|
|
@ -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/
|
||||||
|
|
|
@ -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")
|
||||||
'())
|
'())
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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)
|
||||||
#~())
|
#~())
|
||||||
|
|
|
@ -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")))
|
||||||
|
|
|
@ -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'.
|
||||||
|
|
|
@ -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)))
|
||||||
|
;; We need to choose a valid locale for $LANGUAGE to be honored.
|
||||||
|
(setenv "LC_ALL" "en_US.utf8")
|
||||||
|
(setenv "LANGUAGE" language)
|
||||||
(zero?
|
(zero?
|
||||||
(system* (string-append #+texinfo "/bin/install-info") "--silent"
|
(system* #+(file-append texinfo "/bin/install-info")
|
||||||
info (string-append #$output "/share/info/dir"))))
|
"--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
|
||||||
|
|
|
@ -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?))
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue