X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/99f63f011df2aab38e98d7ee4608a8c70bf74c4d..88c71751619ae5f6ae13ad057d3862f29cb942a4:/NEWS diff --git a/NEWS b/NEWS index 11a649a6da..bb1de1e938 100644 --- a/NEWS +++ b/NEWS @@ -2,7 +2,7 @@ #+TITLE: Guix NEWS – history of user-visible changes #+STARTUP: content hidestars -Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès +Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès Copyright © 2016, 2017, 2018 Ricardo Wurmus Copying and distribution of this file, with or without modification, @@ -11,28 +11,323 @@ Copyright © 2016, 2017, 2018 Ricardo Wurmus Please send Guix bug reports to bug-guix@gnu.org. -* Changes since 0.15.0 +* Changes in 1.1.0 (since 1.0.1) +** Package management +*** New ‘guix deploy’ command to deploy several machines at once +*** Channels can now provide news, viewed with ‘guix pull --news’ +*** ‘guix system reconfigure’ saves provenance data +*** New ‘guix system describe’ command to view system provenance info +*** New /run/current-system/{channels,configuration}.scm files +*** New ‘guix time-machine’ command +*** ‘guix pack’ has a new ‘--entry-point’ option +*** ‘guix pack’ saves environment variables for ‘docker’ and ‘singularity’ +*** ‘guix pack’ provides a meaningful repository name for ‘docker’ +*** New ‘--target’ option for ‘guix system’ +*** ‘--no-build-hook’ was renamed to ‘--no-offload’ +*** ‘--keep-failed’ now implies ‘--no-offload’ +*** ‘--dry-run’ no longer implies ‘--no-grafts’ +*** ‘guix import crate’ has a new ‘--recursive’ option +*** ‘guix import crate’ can import a specific package version +*** ‘guix pull’ returns Guix on Guile 3.0 +*** ‘guix pull’ and ‘--with-git-url’ can clone repositories over SSH +*** ‘--with-commit’ now accepts tags +*** ‘guix challenge’ has a new ‘--diff’ option to show differences +*** ‘guix weather’ has a new ‘--display-missing’ option +*** Guix can now fetch lzip-compressed substitutes in addition to gzip +*** ‘guix publish’ supports lzip compression via ‘-C’ +*** ‘guix lint -c archival’ queries Software Heritage +*** ‘guix archive’ has a new ‘-t’ option to list archive contents +*** ‘guix describe’ and similar commands emit terminal hyperlinks +*** ‘guix build’ now attempts to substitute missing .drv files +*** ‘guix package’ etc. now lock the profile they operate on +*** ‘guix pull’ honors /etc/guix/channels.scm when it exists +*** New ‘guix show’ command, synonymous with ‘guix package --show’ +*** The ‘--manifest’ option can be repeated to combine manifests +*** Some commands previously lacking ‘--load-path’ now support it +** Distribution +*** The set of pre-built bootstrap “binary seeds” has been halved +*** Graphical installer has better support for non-Latin keyboard layouts +*** Graphical installer allows users to choose an HTTP/HTTPS proxy +*** Graphical installer allows users to edit the system configuration +*** New ‘kernel-loadable-modules’ field in ‘operating-system’ +*** rottlog service is now part of ‘%base-services’ +*** ‘%base-services’ now includes /usr/bin/env as a “special file” +*** ‘herd set-http-proxy guix-daemon URL’ can be used to set a proxy +*** ‘qemu-binfmt’ service now supports riscv32 and riscv64 +*** File system UUIDs and labels are now supported for JFS +*** New services + +auditd, fontconfig-file-system, getmail, gnome-keyring, kernel-module-loader, +knot-resolver, mumi, nfs, nftables, nix, pagekite, pam-mount, patchwork, +polkit-wheel, provenance, pulseaudio, sane, singularity, usb-modeswitch + +*** 3514 new packages + +*** 3368 package updates + +Noteworthy updates: +bash 5.0.7, binutils 2.32, cups 2.3.1, emacs 26.3, enlightenment 0.23.1, +gcc-toolchain 9.3.0, gdb 9.1, ghc 8.6.5, gimp 2.10.18, glibc 2.29, +gnome 3.32.2, gnupg 2.2.20, go 1.13.9, guile 2.2.7, +icecat 68.7.0-guix0-preview1, icedtea 3.7.0, julia 1.3.1, +libreoffice 6.4.2.2, linux-libre 5.4.31, mate 1.24.0, ocaml 4.09.0, +octave 5.2.0, openjdk 12.33, perl 5.30.0, python2 2.7.16, python 3.7.4, +racket 7.6, rust 1.39.0, r 3.6.3, sbcl 2.0.3, shepherd 0.7.0, xfce 4.14.0, +xorg-server 1.20.7 + +** Programming interfaces +*** New build systems + +copy-build-system, julia-build-system, node-build-system, qt-build-system + +*** New ‘with-build-handler’ and ‘map/accumulate-builds’ in (guix store) +*** (guix gexp) has a new ‘with-parameters’ form +*** New (guix remote) module for remote evaluation of gexps +*** New ‘eval/container’ procedure in (gnu system linux-container) +*** (guix inferior) now reifies exceptions as ‘&inferior-exception’ +*** (guix cve) uses the new NIST-provided JSON files instead of XML +*** New (guix json) module to map JSON objects to Scheme records +*** New (gnu installer tests) module to drive the graphical installer +*** New (guix diagnostics) module for consistent diagnostic messages +*** “Checkers” now live in (guix lint) +** Notewothy bug fixes +*** Grafts leads to inefficient substitute info retrieval + () +*** Grafting prevents build plan from being displayed upfront + (https://issues.guix.gnu.org/issue/28310) +*** Changing the HTTP/FTP proxy used by the daemon is inconvenient + () +*** ‘guix system disk-image’ successfully builds a bad image + () +*** Installer cannot be restarted after a failed install + () +*** Null pointer error when partitioning with the graphical installer + () +*** 'guix upgrade' misdiagnoses upgrades in the presence of propagated inputs + () +*** mcron randomly stops running jobs + () +*** Mistaken warning "guix pull was never run" + () +*** `guix pack --format=squashfs` fails on CentOS7 + () +*** installer: No way to input Latin characters with non-Latin keyboard layouts + () +*** installer: Always add '%base-initrd-modules' to 'initrd-modules' + () +*** [MATE] shutdown and reboot not possible from UI + () +*** 'guix-daemon' honors %localstatedir, %sysconfdir, and %storedir + () +*** Fix ‘GUIX_LOCPATH’ quoting in ‘guix-daemon.service’ (systemd) + () +*** Include USB_ModeSwitch in %desktop-services + () +*** linux-container: Mount a new /dev/pts instance in the container + () +*** system: Write the timezone to /etc/timezone + () +*** linux-modules: Define and use a module name database + () +*** pack: Create /tmp in Docker images + () +*** guix system: Reinstalling the bootloader preserves extra menu entries + () +*** system: Add 'mount' and 'umount' to '%setuid-programs' + () +*** linux-libre: Try to aggressively gather entropy during boot + () +*** daemon: Make 'profiles/per-user' non-world-writable + () +*** linux-boot: Don't ignore options when mounting root file system + () +*** Files produced by syslogd are no longer world-readable + () + +** Native language support +*** Updated translations of the manual + +The manual is fully translated into Spanish, more than 85% complete in French +and German, and has preliminary translations into Russian and Chinese. + +*** Updated translations of messages + +This version of Guix is fully translated in Brazilian Portuguese, French, +German, and Spanish, and partially translated in 10 other languages. + +* Changes in 1.0.1 (since 1.0.0) +** Package management +*** The ‘https_proxy’ environment variable is now honored +** Distribution +*** ‘guix system docker-image’ now produces images with an entry point +*** New ‘--network’ option for ‘guix system container’ +*** ‘gcc’ package is now hidden; ‘gcc-toolchain’ is what users want +*** ‘mcron’ service now logs to /var/log/mcron.log +*** Dovecot: ‘auth-verbose-passwords?’ renamed from ‘auth-verbose-passwords’ +*** ‘slim’ service now allows for multiple instances on different VTs +*** 70 new packages +*** 483 package updates + +Noteworthy updates: +gdb 8.3, ghc 8.4.3, glibc 2.28, gnupg 2.2.15, go 1.12.1, guile 2.2.4, +icecat 60.6.2-guix1, icedtea 3.7.0, linux-libre 5.1.2, python 3.7.0, +rust 1.34.1, shepherd 0.6.1 + +** Programming interfaces +*** New (guix lzlib) module, to be used eventually for substitute compression +** Noteworthy bug fixes +*** Installer appends packages to ‘%base-packages’ + () +*** Installer allows for arbitrary-long passphrases and passwords + () +*** ‘network-manager-applet’ is provided as part of ‘%desktop-services’ + () +*** Installer can create Btrfs file systems + () +*** Installer password entry visibility can be toggled + () +*** ‘guix-daemon.service’ file for systemd selects a valid UTF-8 locale + () +*** ‘gnome-tweak-tool’ starts correctly + () +*** ‘getlogin’ C function now works as expected + () +*** Leading zeros are preserved when serializing FAT UUIDs + () +*** ‘guix search’ now searches output names + () +*** ‘guix environment’ in non ad-hoc mode honors package transformations + () +*** ‘guix refresh’ correctly determines the latest version for GitHub + () + +** Native language support +*** New preliminary translation of the manual to Russian +*** Updated translations: da, de, es, fr + +* Changes in 1.0.0 (since 0.16.0) +** Package management +*** New ‘-v’/‘--verbosity’ option for all commands +*** Most commands now default to verbosity level 1 (“quiet”) +*** New ‘guix package’ aliases: ‘install’, ‘remove’, ‘upgrade’, and ‘search’ +*** ‘guix pack -RR’ produces PRoot-enabled relocatable binaries +*** New ‘--save-provenance’ option for ‘guix pack’ +*** CLI diagnostics use colors; more operations show progress bars +*** New ‘--news’ option for ‘guix pull’ +*** New ‘--preserve’ option for ‘guix environment’ +*** ‘guix environment -C’ creates containers with a non-zero UID +*** Channels can now specify dependencies in a ‘.guix-channel’ file +*** New ‘reverse-bag’ graph type for ‘guix graph’ +*** New ‘--with-git-url’ package transformation option +*** The ‘--with-branch’ package transformation option fetches Git sub-modules +*** New ‘guix system delete-generations’ command +*** New ‘--list-roots’ and ‘--delete-generations’ options for ‘guix gc’ +*** New ‘--coverage’ option for ‘guix weather’ +*** ‘guix pull’ computes a package cache to speed up package lookups by name +*** ‘guix pull’ now embeds ‘glibc-utf8-locales’ +*** ‘guix refresh -l’ better estimates dependents +*** ‘guix build’ can take multiple ‘--system’ flags +*** ‘guix offload’ avoids build machines with too little free disk space +*** ‘guix offload’ now uses (guix inferior) to communicate with remote hosts +*** Guix can no longer be built with Guile 2.0 +** Distribution +*** New text-mode graphical installer +*** New virtual machine (VM) image +*** New ‘keyboard-layout’ field for the OS, bootloader, and Xorg configuration +*** New ‘xorg-configuration’ record type for Xorg server configuration +*** ‘%desktop-services’ now includes GDM instead of SLiM for graphical log-in +*** New ‘label’ and ‘essential-services’ fields for +*** The manual has been restructured for clarity +*** New ‘remote-inferior’ procedure in (guix ssh) +*** New (gnu ci) module for continuous integration jobs +*** (gnu services shepherd) now supports one-shot services +*** New services + +cups-pk-helper, imap4d, inputattach, localed, nslcd, zabbix-agent, +zabbix-server + +*** 1102 new packages +*** 2104 package updates + +Noteworthy updates: +clojure 1.10.0, cups 2.2.11, emacs 26.2, gcc 8.3.0, gdb 8.2.1, ghc 8.4.3, +gimp 2.10.10, glibc 2.28, gnome 3.28.2, gnupg 2.2.15, go 1.12.1, +guile 2.2.4, icecat 60.6.1-guix1, icedtea 3.7.0, inkscape 0.92.4, +libreoffice 6.1.5.2, linux-libre 5.0.10, mate 1.22.0, ocaml 4.07.1, +octave 5.1.0, openjdk 11.28, python 3.7.0, rust 1.34.0, r 3.6.0, +sbcl 1.5.1, shepherd 0.6.0, xfce 4.12.1, xorg-server 1.20.4 + +** Programming interfaces +*** New ‘this-package’, ‘this-origin’, and ‘this-operating-system’ macros +*** The ‘self-native-input?’ field was removed from +*** New ‘package-input-rewriting/spec’ procedure for graph rewriting +*** New ‘package-closure’ procedure in (guix packages) +*** New UI helper modules (guix colors) and (guix deprecation) +*** New (gnu build accounts) module to manage /etc/{passwd,shadow,group} +*** ‘nix-*’ bindings in (guix store) replaced by ‘store-connection-*’ +*** Records created by ‘define-record-type*’ report duplicate fields +** Noteworthy bug fixes +*** ISO images produced by ‘guix system’ are now reproducible bit-for-bit + () +*** ‘guix pack -f squashfs’ produces relative symlinks + () +*** ‘guix package -r something-not-installed’ now raises an error +*** Fix multi-threaded miscompilation issue with syntax parameters + () +*** file-systems: Spawn a REPL only when interaction is possible + () +*** ‘guix environment’ supports package transformation options + () +*** ‘guix substitute’ now ignores irrelevant narinfo signatures + () +*** On Guix System, guix-daemon now runs in a UTF-8 locale + () +*** Fix relative file name canonicalization for '--root' + () +*** vm: Do not mount /xchg with "cache=loose" + () +*** build-system/go: Build with a filesystem union of Go dependencies + () +*** 'containerized-operating-system' removes "useless" services + () +** Native language support +*** The manual is now fully translated in French and Spanish +*** The manual is also partly translated in German and in Simplified Chinese +*** Updated translations: da, de, es, fr +*** New translations: sv + +* 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 +335,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 () +*** ‘guix import hackage’ now supports ‘custom-setup’ field + () +*** ‘guix-daemon’ taken from ‘guix pull’ looks up ‘guix’ in the right place + () +*** Try several file names when looking up kernel modules + () +*** ‘file-system-*’ services are now always started after ‘udev’ + () +*** Racket now ignores bytecode checksums for files in the store + () +*** Grafting now updates CRCs in ‘.gnu_debuglink’ ELF sections + () +*** UUID computation for VMs is now deterministic () +*** ‘git-predicate’ from (guix git) now uses Guile-Git, which fixes corner cases + () +*** (guix store database) registers each store item only once + () +*** The File > Open dialog in LibreOffice no longer triggers a crash + () +*** Account home directory is always honored () + ** Native language support *** The manual is now partially translated into German, in addition to French