Merge branch 'version-0.16.0'
commit
3933905c5f
58
NEWS
58
NEWS
|
@ -11,28 +11,38 @@ Copyright © 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
|
|||
|
||||
Please send Guix bug reports to bug-guix@gnu.org.
|
||||
|
||||
* Changes since 0.15.0
|
||||
* Changes in 0.16.0 (since 0.15.0)
|
||||
|
||||
** Package management
|
||||
|
||||
*** Default substitute URL changed to https://ci.guix.info
|
||||
*** ‘guix pull -l’ lists new and upgraded packages
|
||||
*** ‘guix pull’ now supports channels via ~/.config/guix/channels.scm
|
||||
*** New ‘--profile’ or ‘-p’ option for ‘guix pull’
|
||||
*** ~/.config/guix/current is now a symlink to /var/guix/profiles
|
||||
*** New ‘guix describe’ command
|
||||
*** ‘guix package’ no longer shows build logs by default
|
||||
*** ‘guix’ commands now produce colored output by default
|
||||
*** User interface now reports grafts separately
|
||||
*** Manifests can now refer to arbitrary Guix commits using “inferiors”
|
||||
*** New ‘--with-branch’ and ‘--with-commit’ package transformation options
|
||||
*** ‘guix build -f’ now accepts any kind of “file-like object”
|
||||
*** Git checkouts may now be fetched from Software Heritage
|
||||
*** New ‘guix repl’ command for use by inferiors
|
||||
*** New ‘guix processes’ command
|
||||
*** ‘guix pack’ now honors ‘--localstatedir’ for all its backends
|
||||
*** New ‘opam’ importer for ‘guix import’
|
||||
*** ‘guix import pypi’ has a new ‘--recursive’ option
|
||||
*** ‘guix import hackage’ has a new ‘--recursive’ option
|
||||
*** ‘guix import stackage’ has a new ‘--recursive’ option
|
||||
The short option for ‘--lts-version’ is now ‘-l’ (used to be ‘-r’).
|
||||
*** ‘guix refresh’ now stores upstream keys in ~/.config/guix/upstream
|
||||
*** Guix now depends on Guile-Gcrypt
|
||||
*** Guix now requires Guile-JSON
|
||||
|
||||
** Distribution
|
||||
|
||||
*** Rust is now bootstrapped from mrustc
|
||||
*** The GNU Shepherd was upgraded to 0.5.0
|
||||
*** ‘guix system reconfigure’ now loads Shepherd service replacements
|
||||
*** ‘herd schedule mcron’ now displays mcron’s job schedule
|
||||
|
@ -40,21 +50,59 @@ The short option for ‘--lts-version’ is now ‘-l’ (used to be ‘-r’).
|
|||
*** ‘herd invalidate nscd TABLE’ instructs nscd to invalidate TABLE
|
||||
*** New services
|
||||
|
||||
gitolite, iptables, pcscd, prometheus-node-exporter, varnish
|
||||
ddclient, gitolite, iptables, pcscd, prometheus-node-exporter, varnish
|
||||
|
||||
*** 985 new packages
|
||||
|
||||
*** 1945 package updates
|
||||
|
||||
Noteworthy updates:
|
||||
bash 4.4.23, binutils 2.31.1, cups 2.2.8, enlightenment 0.22.4, gcc 8.2.0,
|
||||
gdb 8.2, ghc 8.4.3, gimp 2.10.6, glibc 2.28, gnupg 2.2.11, go 1.11.1,
|
||||
guile 2.2.4, icecat 60.3.0-gnu1, icedtea 3.7.0, libreoffice 6.1.3.2,
|
||||
linux-libre 4.19.6, ocaml 4.07.1, octave 4.4.1, perl 5.28.0,
|
||||
python2 2.7.15, python 3.7.0, racket 7.0, rust 1.28.0, r 3.5.1,
|
||||
sbcl 1.4.13, shepherd 0.5.0, xorg-server 1.20.3
|
||||
|
||||
** Programming interfaces
|
||||
|
||||
*** New (guix channels) module
|
||||
*** New (guix inferior) module
|
||||
*** New (guix status) module
|
||||
*** New (guix channels) module, see “Channels” in the manual
|
||||
*** New (guix inferior) module, see “Inferiors” in the manual
|
||||
*** New (guix describe) module, used by ‘guix describe’
|
||||
*** New (guix status) module, for build progress reporting
|
||||
*** ‘packages->manifest’ now accepts inferior packages
|
||||
*** New build systems: ‘clojure’, ‘guile’
|
||||
*** New ‘git-checkout’ record constructor in (guix git)
|
||||
*** Shepherd services can now declare custom actions
|
||||
*** More of the (gnu system …) APIs are now non-monadic
|
||||
*** New ‘add-file-tree-to-store’ procedure in (guix store)
|
||||
*** New (guix swh) module to access Software Heritage
|
||||
*** New (guix build debug-link) module, for ELF ‘.gnu_debuglink’ sections
|
||||
|
||||
** Noteworthy bug fixes
|
||||
|
||||
*** Fix GCC crashes caused by a patch of ours (<https://bugs.gnu.org/31708>)
|
||||
*** ‘guix import hackage’ now supports ‘custom-setup’ field
|
||||
(<https://bugs.gnu.org/23961>)
|
||||
*** ‘guix-daemon’ taken from ‘guix pull’ looks up ‘guix’ in the right place
|
||||
(<https://bugs.gnu.org/32183>)
|
||||
*** Try several file names when looking up kernel modules
|
||||
(<https://bugs.gnu.org/31714>)
|
||||
*** ‘file-system-*’ services are now always started after ‘udev’
|
||||
(<https://bugs.gnu.org/32313>)
|
||||
*** Racket now ignores bytecode checksums for files in the store
|
||||
(<https://bugs.gnu.org/30680>)
|
||||
*** Grafting now updates CRCs in ‘.gnu_debuglink’ ELF sections
|
||||
(<https://bugs.gnu.org/19973>)
|
||||
*** UUID computation for VMs is now deterministic (<https://bugs.gnu.org/32652>)
|
||||
*** ‘git-predicate’ from (guix git) now uses Guile-Git, which fixes corner cases
|
||||
(<https://bugs.gnu.org/27925>)
|
||||
*** (guix store database) registers each store item only once
|
||||
(<https://bugs.gnu.org/32600>)
|
||||
*** The File > Open dialog in LibreOffice no longer triggers a crash
|
||||
(<https://bugs.gnu.org/30642>)
|
||||
*** Account home directory is always honored (<https://bugs.gnu.org/33422>)
|
||||
|
||||
** Native language support
|
||||
|
||||
*** The manual is now partially translated into German, in addition to French
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
(ice-9 match)
|
||||
(ice-9 rdelim)
|
||||
(ice-9 regex)
|
||||
(ice-9 vlist)
|
||||
(ice-9 pretty-print))
|
||||
|
||||
(define %header-rx
|
||||
|
@ -98,31 +99,60 @@ paragraph."
|
|||
(lambda (match port)
|
||||
(let ((stars (match:substring match 1)))
|
||||
(format port
|
||||
"~a ~a new packages~%~%~a~%~%"
|
||||
stars (length added)
|
||||
(enumeration->paragraph added)))))))))
|
||||
"~a ~a new packages~%~%"
|
||||
stars (length added)))))))))
|
||||
|
||||
(define (write-packages-updates news-file old new)
|
||||
"Write to NEWS-FILE the list of packages upgraded between OLD and NEW."
|
||||
(let ((upgraded (filter-map (match-lambda
|
||||
((package . new-version)
|
||||
(match (assoc package old)
|
||||
((_ . old-version)
|
||||
(and (version>? new-version old-version)
|
||||
(string-append package "@"
|
||||
new-version)))
|
||||
(_ #f))))
|
||||
new)))
|
||||
(define important
|
||||
'("gcc" "glibc" "binutils" "gdb" ;toolchain
|
||||
"shepherd" "linux-libre" "xorg-server" "cups" ;OS
|
||||
"gnome" "xfce" "enlightenment" "lxde" "mate" ;desktop env.
|
||||
"guile" "bash" "python" "python2" "perl" ;languages
|
||||
"ghc" "rust" "go" "julia" "r" "ocaml"
|
||||
"icedtea" "openjdk" "clojure" "sbcl" "racket"
|
||||
"emacs" "gimp" "inkscape" "libreoffice" ;applications
|
||||
"octave" "icecat" "gnupg"))
|
||||
|
||||
(let* ((table (fold (lambda (package table)
|
||||
(match package
|
||||
((name . version)
|
||||
(vhash-cons name version table))))
|
||||
vlist-null
|
||||
new))
|
||||
(latest (lambda (name)
|
||||
(let ((versions (vhash-fold* cons '() name table)))
|
||||
(match (sort versions version>?)
|
||||
((latest . _) latest)))))
|
||||
(upgraded (filter-map (match-lambda
|
||||
((package . new-version)
|
||||
(match (assoc package old)
|
||||
((_ . old-version)
|
||||
(and (string=? new-version
|
||||
(latest package))
|
||||
(version>? new-version old-version)
|
||||
(cons package new-version)))
|
||||
(_ #f))))
|
||||
new))
|
||||
(noteworthy (filter (match-lambda
|
||||
((package . version)
|
||||
(member package important)))
|
||||
upgraded)))
|
||||
(with-atomic-file-replacement news-file
|
||||
(lambda (input output)
|
||||
(rewrite-org-section input output
|
||||
(make-regexp "^(\\*+) (.*) package updates")
|
||||
(lambda (match port)
|
||||
(let ((stars (match:substring match 1)))
|
||||
(let ((stars (match:substring match 1))
|
||||
(lst (map (match-lambda
|
||||
((package . version)
|
||||
(string-append package " "
|
||||
version)))
|
||||
noteworthy)))
|
||||
(format port
|
||||
"~a ~a package updates~%~%~a~%~%"
|
||||
"~a ~a package updates~%~%Noteworthy updates:~%~a~%~%"
|
||||
stars (length upgraded)
|
||||
(enumeration->paragraph upgraded)))))))))
|
||||
(enumeration->paragraph lst)))))))))
|
||||
|
||||
|
||||
(define (main . args)
|
||||
|
@ -138,6 +168,8 @@ paragraph."
|
|||
|
||||
(let-values (((previous-version new-version)
|
||||
(call-with-input-file news-file NEWS->versions)))
|
||||
(format (current-error-port) "Updating NEWS for ~a to ~a...~%"
|
||||
previous-version new-version)
|
||||
(let* ((old (call-with-input-file (package-file previous-version)
|
||||
read))
|
||||
(new (fold-packages (lambda (p r)
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
@set KEY-SERVER pool.sks-keyservers.net
|
||||
|
||||
@c The official substitute server used by default.
|
||||
@set SUBSTITUTE-SERVER mirror.hydra.gnu.org
|
||||
@set SUBSTITUTE-SERVER ci.guix.info
|
||||
|
||||
@copying
|
||||
Copyright @copyright{} 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès@*
|
||||
|
@ -9069,7 +9069,7 @@ More and more system services are provided (@pxref{Services}), but some
|
|||
may be missing.
|
||||
|
||||
@item
|
||||
More than 7,500 packages are available, but you might
|
||||
More than 8,500 packages are available, but you might
|
||||
occasionally find that a useful package is missing.
|
||||
|
||||
@item
|
||||
|
|
|
@ -361,8 +361,8 @@ sys_authorize_build_farms()
|
|||
case $yn in
|
||||
[Yy]*) guix archive --authorize < "${ROOT_HOME}/.config/guix/current/share/guix/hydra.gnu.org.pub" &&
|
||||
_msg "${PAS}Authorized public key for hydra.gnu.org";
|
||||
guix archive --authorize < "${ROOT_HOME}/.config/guix/current/share/guix/berlin.guixsd.org.pub" &&
|
||||
_msg "${PAS}Authorized public key for berlin.guixsd.org";
|
||||
guix archive --authorize < "${ROOT_HOME}/.config/guix/current/share/guix/ci.guix.info.pub" &&
|
||||
_msg "${PAS}Authorized public key for ci.guix.info";
|
||||
break;;
|
||||
[Nn]*) _msg "${INF}Skipped authorizing build farm public keys"
|
||||
break;;
|
||||
|
|
|
@ -477,6 +477,11 @@ GRUB configuration and OS-DRV as the stuff in it."
|
|||
"mnt=/tmp/root/mnt"
|
||||
"-path-list" "-"
|
||||
"--"
|
||||
|
||||
;; XXX: Add padding to avoid I/O errors on i686:
|
||||
;; <https://bugs.gnu.org/33639>.
|
||||
"-padding" "10m"
|
||||
|
||||
"-volid" (string-upcase volume-id)
|
||||
(if volume-uuid
|
||||
`("-volume_date" "uuid"
|
||||
|
|
|
@ -1120,8 +1120,8 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/quagga-reproducible-build.patch \
|
||||
%D%/packages/patches/quickswitch-fix-dmenu-check.patch \
|
||||
%D%/packages/patches/quilt-test-fix-regex.patch \
|
||||
%D%/packages/patches/quilt-compat-getopt-fix-second-separator.patch \
|
||||
%D%/packages/patches/quilt-compat-getopt-fix-option-with-nondigit-param.patch \
|
||||
%D%/packages/patches/quilt-getopt-nondigit-param.patch \
|
||||
%D%/packages/patches/quilt-getopt-second-separator.patch \
|
||||
%D%/packages/patches/qtwebkit-pbutils-include.patch \
|
||||
%D%/packages/patches/randomjungle-disable-static-build.patch \
|
||||
%D%/packages/patches/rapicorn-isnan.patch \
|
||||
|
|
|
@ -101,9 +101,9 @@
|
|||
;; Latest version of Guix, which may or may not correspond to a release.
|
||||
;; Note: the 'update-guix-package.scm' script expects this definition to
|
||||
;; start precisely like this.
|
||||
(let ((version "0.15.0")
|
||||
(commit "71a78ba65b00ad1f27086a3dcdded7dc4326ade1")
|
||||
(revision 8))
|
||||
(let ((version "0.16.0")
|
||||
(commit "c845323d4b0a31ce5241a9d98187e1eeed43f71c")
|
||||
(revision 1))
|
||||
(package
|
||||
(name "guix")
|
||||
|
||||
|
@ -119,7 +119,7 @@
|
|||
(commit commit)))
|
||||
(sha256
|
||||
(base32
|
||||
"0isagzccfxjqrc38wamknvh0jzv1pjh0wq5baj9jzwl07xkrc0hc"))
|
||||
"0i431d5p9ckr7kxfiwpp94wgjgqn6mgyypf0smw64bk635fn6ycr"))
|
||||
(file-name (string-append "guix-" version "-checkout"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
|
|
|
@ -102,8 +102,8 @@ listing the files modified by a patch.")
|
|||
(base32
|
||||
"06b816m2gz9jfif7k9v2hrm7fz76zjg5pavf7hd3ifybwn4cgjzn"))
|
||||
(patches (search-patches "quilt-test-fix-regex.patch"
|
||||
"quilt-compat-getopt-fix-second-separator.patch"
|
||||
"quilt-compat-getopt-fix-option-with-nondigit-param.patch"))))
|
||||
"quilt-getopt-second-separator.patch"
|
||||
"quilt-getopt-nondigit-param.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("gettext" ,gnu-gettext)))
|
||||
|
|
|
@ -1499,26 +1499,27 @@ starting at FIRST-UID, and under GID."
|
|||
1+
|
||||
1))
|
||||
|
||||
(define (hydra-key-authorization key guix)
|
||||
"Return a gexp with code to register KEY, a file containing a 'guix archive'
|
||||
public key, with GUIX."
|
||||
(define (hydra-key-authorization keys guix)
|
||||
"Return a gexp with code to register KEYS, a list of files containing 'guix
|
||||
archive' public keys, with GUIX."
|
||||
#~(unless (file-exists? "/etc/guix/acl")
|
||||
(let ((pid (primitive-fork)))
|
||||
(case pid
|
||||
((0)
|
||||
(let* ((key #$key)
|
||||
(port (open-file key "r0b")))
|
||||
(format #t "registering public key '~a'...~%" key)
|
||||
(close-port (current-input-port))
|
||||
(dup port 0)
|
||||
(execl #$(file-append guix "/bin/guix")
|
||||
"guix" "archive" "--authorize")
|
||||
(exit 1)))
|
||||
(else
|
||||
(let ((status (cdr (waitpid pid))))
|
||||
(unless (zero? status)
|
||||
(format (current-error-port) "warning: \
|
||||
failed to register public key '~a': ~a~%" key status))))))))
|
||||
(for-each (lambda (key)
|
||||
(let ((pid (primitive-fork)))
|
||||
(case pid
|
||||
((0)
|
||||
(let* ((port (open-file key "r0b")))
|
||||
(format #t "registering public key '~a'...~%" key)
|
||||
(close-port (current-input-port))
|
||||
(dup port 0)
|
||||
(execl #$(file-append guix "/bin/guix")
|
||||
"guix" "archive" "--authorize")
|
||||
(primitive-exit 1)))
|
||||
(else
|
||||
(let ((status (cdr (waitpid pid))))
|
||||
(unless (zero? status)
|
||||
(format (current-error-port) "warning: \
|
||||
failed to register public key '~a': ~a~%" key status)))))))
|
||||
'(#$@keys))))
|
||||
|
||||
(define %default-authorized-guix-keys
|
||||
;; List of authorized substitute keys.
|
||||
|
@ -1632,8 +1633,7 @@ failed to register public key '~a': ~a~%" key status))))))))
|
|||
|
||||
;; Optionally authorize substitute server keys.
|
||||
(if authorize-key?
|
||||
#~(begin
|
||||
#$@(map (cut hydra-key-authorization <> guix) keys))
|
||||
(hydra-key-authorization keys guix)
|
||||
#~#f))))
|
||||
|
||||
(define* (references-file item #:optional (name "references"))
|
||||
|
|
|
@ -149,7 +149,7 @@ export GUIX_BUILD_OPTIONS=--no-grafts
|
|||
guix build isc-dhcp
|
||||
parted --script /dev/vdb mklabel gpt \\
|
||||
mkpart primary ext2 1M 3M \\
|
||||
mkpart primary ext2 3M 1G \\
|
||||
mkpart primary ext2 3M 1.2G \\
|
||||
set 1 boot on \\
|
||||
set 1 bios_grub on
|
||||
mkfs.ext4 -L my-root /dev/vdb2
|
||||
|
@ -174,7 +174,7 @@ guix --version
|
|||
export GUIX_BUILD_OPTIONS=--no-grafts
|
||||
guix build isc-dhcp
|
||||
parted --script /dev/vdb mklabel gpt \\
|
||||
mkpart ext2 1M 1G \\
|
||||
mkpart ext2 1M 1.2G \\
|
||||
set 1 legacy_boot on
|
||||
mkfs.ext4 -L my-root -O '^64bit' /dev/vdb1
|
||||
mount /dev/vdb1 /mnt
|
||||
|
@ -377,7 +377,7 @@ export GUIX_BUILD_OPTIONS=--no-grafts
|
|||
guix build isc-dhcp
|
||||
parted --script /dev/vda mklabel gpt \\
|
||||
mkpart primary ext2 1M 3M \\
|
||||
mkpart primary ext2 3M 1G \\
|
||||
mkpart primary ext2 3M 1.2G \\
|
||||
set 1 boot on \\
|
||||
set 1 bios_grub on
|
||||
mkfs.ext4 -L my-root /dev/vda2
|
||||
|
@ -510,7 +510,7 @@ guix build isc-dhcp
|
|||
parted --script /dev/vdb mklabel gpt \\
|
||||
mkpart primary ext2 1M 3M \\
|
||||
mkpart primary ext2 3M 100M \\
|
||||
mkpart primary ext2 100M 1G \\
|
||||
mkpart primary ext2 100M 1.2G \\
|
||||
set 1 boot on \\
|
||||
set 1 bios_grub on
|
||||
mkfs.ext4 -L root-fs /dev/vdb2
|
||||
|
@ -676,7 +676,7 @@ export GUIX_BUILD_OPTIONS=--no-grafts
|
|||
ls -l /run/current-system/gc-roots
|
||||
parted --script /dev/vdb mklabel gpt \\
|
||||
mkpart primary ext2 1M 3M \\
|
||||
mkpart primary ext2 3M 1G \\
|
||||
mkpart primary ext2 3M 1.2G \\
|
||||
set 1 boot on \\
|
||||
set 1 bios_grub on
|
||||
echo -n thepassphrase | \\
|
||||
|
|
Reference in New Issue