diff options
author | Marius Bakke <[email protected]> | 2017-05-22 18:25:01 +0200 |
---|---|---|
committer | Marius Bakke <[email protected]> | 2017-05-22 18:25:01 +0200 |
commit | fd3782d13b8f2e835e9867c7abd92786a93e8ad6 (patch) | |
tree | 6259124b015fcee06d6777f0a348da0fce34892f | |
parent | 52d2a2be1fda52991a19519bc260f25655bfb1ab (diff) | |
parent | 7c63fff6d0ba1dcd74e1a31c13b501d24d9c66f6 (diff) |
Merge branch 'version-0.13.0'
-rw-r--r-- | Makefile.am | 12 | ||||
-rw-r--r-- | NEWS | 611 | ||||
-rw-r--r-- | build-aux/update-NEWS.scm | 161 | ||||
-rw-r--r-- | doc/guix.texi | 2 | ||||
-rw-r--r-- | gnu/packages/package-management.scm | 8 | ||||
-rw-r--r-- | gnu/tests/ssh.scm | 2 | ||||
-rw-r--r-- | guix/scripts/system.scm | 8 |
7 files changed, 793 insertions, 11 deletions
diff --git a/Makefile.am b/Makefile.am index 7c07d1b2b9..c2fc2642a7 100644 --- a/Makefile.am +++ b/Makefile.am @@ -422,6 +422,7 @@ EXTRA_DIST = \ build-aux/generate-authors.scm \ build-aux/test-driver.scm \ build-aux/update-guix-package.scm \ + build-aux/update-NEWS.scm \ build-aux/run-system-tests.scm \ d3.v3.js \ graph.js \ @@ -666,6 +667,15 @@ update-guix-package: $(top_srcdir)/build-aux/update-guix-package.scm \ "`git rev-parse HEAD`" +# Location of a checkout of <git://git.savannah.gnu.org/guix/maintenance.git>. +# Package data from this checkout is used by 'update-NEWS.scm'. +GUIX_MAINTENANCE_DIRECTORY ?= $(top_srcdir)/../guix-maintenance + +update-NEWS: $(GOBJECTS) + $(top_builddir)/pre-inst-env "$(GUILE)" \ + $(top_srcdir)/build-aux/update-NEWS.scm \ + $(top_srcdir)/NEWS "$(GUIX_MAINTENANCE_DIRECTORY)/data" + # Make sure we're not shipping a file that embeds a local /gnu/store file name. assert-no-store-file-names: $(distdir)/ChangeLog $(AM_V_at)if grep -r --exclude=*.texi --exclude=*.info \ @@ -701,7 +711,7 @@ hydra-jobs.scm: $(GOBJECTS) .PHONY: assert-no-store-file-names assert-binaries-available .PHONY: assert-final-inputs-self-contained .PHONY: clean-go make-go -.PHONY: update-guix-package release +.PHONY: update-guix-package update-NEWS release ## -------------- ## ## Silent rules. ## @@ -2,7 +2,7 @@ #+TITLE: Guix NEWS – history of user-visible changes #+STARTUP: content hidestars -Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <[email protected]> +Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <[email protected]> Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright @@ -10,6 +10,615 @@ Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <[email protected]> Please send Guix bug reports to [email protected]. +* Changes in 0.13.0 (since 0.12.0) + +** Package management + +*** Guix can now be used on aarch64 GNU/Linux systems +*** New ‘guix pack’ command to create bundles +*** New ‘guix copy’ command to copy store items over SSH +*** New ‘--cache’ option for ‘guix publish’ +*** $GUIX_DAEMON_SOCKET can specify remote daemons +*** Guix can now run on Guile 2.2, providing better performance +*** Emacs interface moved to separate Emacs-Guix package +*** New ‘--root’ option for ‘guix environment’ +*** ‘guix pull’ now connects to git.savannah.gnu.org over HTTPS +*** New cross-compilation targets: aarch64-linux-gnu, powerpc-linux-gnu +*** Packages can specify “single-entry search paths” (e.g., ‘GIT_EXEC_PATH’) +*** ‘guix import’ and ‘guix refresh’ now support Stackage +*** Support for the deprecated “PKG-VERSION” syntax has been removed +*** New Cypher backend for ‘guix graph’ +*** GnuTLS (Guile bindings) is now required +*** Guix now issues a warning when it detects that Guix has not been upgraded in a while + +** Distribution + +*** The GuixSD installation image supports (U)EFI systems +*** GuixSD supports Btrfs (<http://bugs.gnu.org/19280>) +*** Some system services are now run in separate namespaces (“containers”) +*** The LXDE desktop environment is now available +*** ‘grub-configuration’ can specify settings for the user interface +*** Service types can now specify a default value for services +*** Create the /var/log/wtmp and /var/log/utmpx databases +*** A raw initial RAM disk can be created to support systems with custom kernel configurations +*** ‘static-networking’ service can now be extended +*** Configuration of ‘nginx-service-type’ has been greatly improved +*** New ‘gnu-build-system’ phase to always reset gzip timestamps +*** New services + +exim, mail-aliases, inetd, agetty, openvswitch, special-files, redis, +thermald + +*** 840 new packages + +0ad, 0ad-data, adb, alpine, alsa-plugins, angband, antlr2, antlr3, +appstream-glib, aris, aspell-dict-pt-br, asunder, balsa, bam, beep, +binutils-vc4, blind, blists, btrfs-progs-static, camlzip, cargo, catdoc, +catimg, ccd2cue, cdogs-sdl, cdrtools, ceph, checkpolicy, cifs-utils, cmst, +colors, compface, compton, cool-retro-term, corrode, crawl, darcs, +darktable, dcmtk, deutex, ding-libs, dotherside, dovecot-libsodium-plugin, +dovecot-trees, dub, dvd+rw-tools, dvdauthor, dvdstyler, dzen, e3, electrum, +emacs-adaptive-wrap, emacs-ag, emacs-aggressive-indent, emacs-alert, +emacs-ansi, emacs-calfw, emacs-cdlatex, emacs-commander, +emacs-default-encrypt, emacs-diminish, emacs-dream-theme, +emacs-evil-commentary, emacs-evil-surround, emacs-exwm, emacs-git-gutter, +emacs-git-timemachine, emacs-gntp, emacs-gnuplot, emacs-google-maps, +emacs-highlight-sexp, emacs-ht, emacs-htmlize, emacs-idle-highlight, +emacs-key-chord, emacs-keyfreq, emacs-linum-relative, emacs-log4e, +emacs-memoize, emacs-mew, emacs-monroe, emacs-mu4e-alert, emacs-ox-twbs, +emacs-pretty-mode, emacs-strace-mode, emacs-stripe-buffer, emacs-sx, +emacs-symon, emacs-transpose-frame, emacs-use-package, emacs-xelb, +emacs-xmlgen, emacs-yasnippet, emacspeak, enigma, ert-runner, es, +eudev-with-hwdb, f3, fabric, fcitx-configtool, filezilla, fillets-ng, +fish-guix, fmt, font-awesome, font-cns11643, font-cns11643-swjz, +font-comic-neue, font-go, font-google-material-design-icons, +font-google-roboto, font-iosevka, font-linuxlibertine, font-tamzen, +font-wqy-microhei, fortify-headers, fprintd, freeciv, freedoom, freegish, +freerdp, freetalk, freexl, gcc-vc4, gcompris-qt, geos, ghc-code-page, +ghc-hslogger, ghc-json, ghc-language-c, ghc-markdown-unlit, ghc-setlocale, +ghc-unexceptionalio, ghc-wave, git-crypt, gl2ps, gnome-autoar, +gnome-disk-utility, gnumach, gnushogi, gnustep-make, gpicview, grafx2, +graphene, guildhall, guile-8sync, guile-bash, guile-fibers, guile-git, +guile-ics, guile-miniadapton, guile-sdl2, guile-sjson, +guile-syntax-highlight, guile2.0-commonmark, guile2.0-haunt, guile2.0-json, +guile2.0-reader, guile2.0-ssh, guile2.2-gdbm-ffi, guile2.2-gnutls, +guile2.2-haunt, guile2.2-lib, guile2.2-reader, guile2.2-ssh, heimdal, +hiawatha, hisat2, http-parser, httpfs2, httpstat, hubbub, human, hurd, +hyperestraier, idris-bifunctors, idris-lens, idris-lightyear, +idris-wl-pprint, intel-gpu-tools, itpp, jacal, java-asm, java-cglib, +java-commons-cli, java-commons-codec, java-commons-collections4, +java-commons-compress, java-commons-daemon, java-commons-io, +java-commons-lang, java-commons-lang3, java-commons-logging-minimal, +java-commons-math3, java-commons-net, java-easymock, java-eclipse-ant-core, +java-eclipse-compare-core, java-eclipse-core-commands, +java-eclipse-core-contenttype, java-eclipse-core-expressions, +java-eclipse-core-filesystem, java-eclipse-core-jobs, +java-eclipse-core-resources, java-eclipse-core-runtime, +java-eclipse-core-variables, java-eclipse-equinox-app, +java-eclipse-equinox-common, java-eclipse-equinox-preferences, +java-eclipse-equinox-registry, java-eclipse-jdt-core, java-eclipse-osgi, +java-eclipse-team-core, java-eclipse-text, java-guava, java-hamcrest-all, +java-httpcomponents-httpclient, java-httpcomponents-httpcore, +java-httpcomponents-httpcore-ab, java-httpcomponents-httpcore-nio, +java-httpcomponents-httpmime, java-icu4j, java-javax-mail, java-jmh, +java-jmock, java-jopt-simple, java-jsch, java-jsr305, java-log4j-api, +java-mockito, java-objenesis, java-osgi-annotation, java-osgi-core, +java-osgi-service-event, java-plexus-interpolation, java-plexus-utils, +java-rsyntaxtextarea, java-simple-xml, java-usb4java, joe, kakoune, +keybinder, kiki, knot, lchat, le-certs, leafpad, lensfun, leveldb, libbson, +libcss, libdom, libfilezilla, libfprint, libgig, libgme, +libgnome-games-support, libircclient, libmesode, libmnl, libmp4v2, +libmpack, libnftnl, libnsbmp, libnsgif, libnspsl, libnsutils, +libparserutils, libpng-apng, libselinux, libsemanage, libsepol, libsmf, +libstaroffice, libstrophe, libsvgtiny, libtorrent-rasterbar, liburcu, +libusb4java, libutf, libvterm, libwapcaplet, libxls, libzmf, lierolibre, +light, lightdm, lightdm-gtk-greeter, linsmith, linuxdcpp, +llvm-for-extempore, lmms, loudmouth, lshw, lsyncd, lua-libmpack, +lua5.2-bitop, lua5.2-libmpack, lua5.2-lpeg, lugaru, luminance-hdr, lush2, +lxde, lxde-common, lxde-icon-theme, lxinput, lxmenu-data, lxpanel, +lxsession, maxflow, mbedtls-apache, mcabber, mcomix, mdbtools, megaglest, +megaglest-data, menumaker, mes, meson, mia, minizip, mlmmj, +multipath-tools, neofetch, neomutt, neovim, neovim-syntastic, +netcdf-fortran, niftilib, nim, nnn, no-more-secrets, noice, non-mixer, +non-timeline, nsgenbind, nss-pam-ldapd, nyacc, nyx, obconf, obnam, +ocaml-alcotest, ocaml-astring, ocaml-base64, ocaml-batteries, +ocaml-bin-prot, ocaml-bisect, ocaml-bitstring, ocaml-bos, ocaml-cmdliner, +ocaml-cppo, ocaml-csv, ocaml-expect, ocaml-fieldslib, ocaml-fileutils, +ocaml-fmt, ocaml-fpath, ocaml-frontc, ocaml-gsl, ocaml-js-build-tools, +ocaml-jsonm, ocaml-logs, ocaml-lwt, ocaml-mcl, ocaml-mtime, ocaml-oasis, +ocaml-ocurl, ocaml-ounit, ocaml-pcre, ocaml-ppx-assert, ocaml-ppx-bench, +ocaml-ppx-compare, ocaml-ppx-core, ocaml-ppx-deriving, ocaml-ppx-driver, +ocaml-ppx-enumerate, ocaml-ppx-here, ocaml-ppx-inline-test, ocaml-ppx-let, +ocaml-ppx-optcomp, ocaml-ppx-sexp-conv, ocaml-ppx-tools, +ocaml-ppx-type-conv, ocaml-ppx-typerep-conv, ocaml-ppx-variants-conv, +ocaml-qcheck, ocaml-qtest, ocaml-react, ocaml-result, ocaml-rresult, +ocaml-sexplib, ocaml-sqlite3, ocaml-ssl, ocaml-stringext, ocaml-topkg, +ocaml-typerep, ocaml-uchar, ocaml-ulex, ocaml-uutf, ocaml-variantslib, +ocaml-xmlm, ocaml-zarith, ocaml4.01-batteries, ocaml4.01-bisect, +ocaml4.01-camlzip, ocaml4.01-csv, ocaml4.01-findlib, ocaml4.01-gsl, +ocaml4.01-mcl, ocaml4.01-ounit, ocaml4.01-qtest, ocaml4.01-sqlite3, +ocaml4.01-xmlm, ocamlify, ocamlmod, omake, opencascade-oce, openspin, +openvswitch, orca, ovmf, pcc, pdfgrep, perl-any-moose, perl-anyevent, +perl-anyevent-i3, perl-async-interrupt, perl-canary-stability, +perl-cddb-get, perl-crypt-rc4, perl-cwd-guard, perl-devel-checkcompiler, +perl-ev, perl-extutils-depends, perl-extutils-pkgconfig, perl-file-pushd, +perl-module-build-xsutil, perl-mouse, perl-mousex-nativetraits, +perl-ole-storage-lite, perl-parallel-forkmanager, perl-switch, +perl-test-needs, perl-test-number-delta, perl-x11-xcb, perl-xml-descent, +perl-xml-tokeparser, perl-xs-object-magic, phonon-backend-gstreamer, +pngcrunch, policycoreutils, polkit-gnome, ponymix, pootle, postorius, +pplacer, prboom-plus, profanity, proj.4, proot, proot-static, +propeller-development-suite, propeller-gcc, propeller-load, +propeller-toolchain, proplib, prout, python-astroid, python-autopep8, +python-colorspacious, python-configparser, python-cram, python-cssmin, +python-cssutils, python-cycler, python-ddt, python-defusedxml, +python-diff-match-patch, python-dirsync, python-dj-database-url, +python-django-allauth, python-django-appconf, python-django-assets, +python-django-bulk-update, python-django-contact-form, +python-django-contrib-comments, python-django-gravatar2, +python-django-jsonfield, python-django-mailman3, python-django-overextends, +python-django-redis, python-django-rq, python-django-sortedm2m, +python-django-statici18n, python-dulwich, python-elasticsearch, +python-eventlet, python-factory-boy, python-faker, python-fakeredis, +python-fastimport, python-flake8-polyfill, python-flask-htmlmin, +python-flask-login, python-flask-multistatic, python-flask-oidc, +python-flask-wtf, python-fudge, python-geventhttpclient, python-gpg, +python-hdf4, python-hiredis, python-htmlmin, python-httpbin, python-ipy, +python-isort, python-kitchen, python-levenshtein, python-lz4, python-lzo, +python-mando, python-mando, python-matplotlib-documentation, python-mpmath, +python-munch, python-mwclient, python-mysqlclient, python-netcdf4, +python-nosexcover, python-numpy-documentation, python-oauth2client, +python-openid, python-openid-cla, python-openid-teams, +python-paramunittest, python-pbkdf2, python-poppler-qt5, python-pyatspi, +python-pycosat, python-pygit2, python-pykka, python-pylint, +python-pyodbc-c, python-pypeg2, python-pytest-catchlog, +python-pytest-httpbin, python-pytest-warnings, python-qrcode, python-reno, +python-rst2ansi, python-scandir, python-sepolgen, python-setools, +python-sge-pygame, python-snowballstemmer, python-sockjs-tornado, +python-sphinx-alabaster-theme, python-sphinx-cloud-sptheme, +python-sphinx-me, python-straight-plugin, python-tmx, +python-translate-toolkit, python-trollius-redis, python-utils, +python-webassets, python-xdo, python2-astroid, python2-autopep8, +python2-backports-functools-lru-cache, +python2-backports-shutil-get-terminal-size, python2-cheetah, +python2-cliapp, python2-colorspacious, python2-configparser, +python2-coverage-test-runner, python2-cram, python2-cssmin, python2-cycler, +python2-ddt, python2-defusedxml, python2-diff-match-patch, python2-dirsync, +python2-dj-database-url, python2-django-allauth, python2-django-appconf, +python2-django-assets, python2-django-bulk-update, +python2-django-contact-form, python2-django-contrib-comments, +python2-django-gravatar2, python2-django-jsonfield, +python2-django-mailman3, python2-django-overextends, python2-django-redis, +python2-django-rq, python2-django-sortedm2m, python2-django-statici18n, +python2-dulwich, python2-elasticsearch, python2-eventlet, +python2-factory-boy, python2-faker, python2-fakeredis, python2-fastimport, +python2-flake8-polyfill, python2-flask-htmlmin, python2-flask-login, +python2-flask-multistatic, python2-flask-wtf, python2-fudge, +python2-geventhttpclient, python2-gpg, python2-hdf4, python2-hiredis, +python2-htmlmin, python2-httpbin, python2-isort, python2-kitchen, +python2-larch, python2-levenshtein, python2-lz4, python2-lzo, +python2-mando, python2-matplotlib-documentation, python2-mpmath, +python2-munch, python2-mwclient, python2-mysqlclient, python2-netcdf4, +python2-nosexcover, python2-numpy-documentation, python2-openid, +python2-openid-cla, python2-openid-teams, python2-paramunittest, +python2-pbkdf2, python2-pycosat, python2-pygame, python2-pygit2, +python2-pykka, python2-pylint, python2-pyodbc-c, python2-pytest-catchlog, +python2-pytest-httpbin, python2-pytest-warnings, python2-qrcode, +python2-reno, python2-ruamel.ordereddict, python2-scandir, +python2-sge-pygame, python2-slowaes, python2-snowballstemmer, +python2-sockjs-tornado, python2-sphinx-alabaster-theme, +python2-sphinx-cloud-sptheme, python2-sphinx-me, python2-stemming, +python2-straight-plugin, python2-subprocess32, python2-tmx, +python2-tracing, python2-translate-toolkit, python2-trollius-redis, +python2-ttystatus, python2-utils, pzstd, qdbm, qjackctl, qtcanvas3d, +qtcharts, qtdatavis3d, qtdeclarative-render2d, qtgamepad, qtpurchasing, +qtscxml, qtserialbus, qutebrowser, r-affy, r-affyio, r-ape, r-base64, +r-beeswarm, r-bookdown, r-boot, r-bsgenome-hsapiens-1000genomes-hs37d5, +r-cairo, r-car, r-caret, r-centipede, r-chipseq, r-class, r-commonmark, +r-compquadform, r-copyhelper, r-copywriter, r-cowplot, r-delayedarray, +r-deoptimr, r-desc, r-diptest, r-fastica, r-fivethirtyeight, r-flexmix, +r-fnn, r-fpc, r-genomeinfodbdata, r-ggbeeswarm, r-ggthemes, r-lars, r-lme4, +r-maldiquant, r-mass, r-matrixmodels, r-mclust, r-minimal, r-minqa, +r-mixtools, r-mnormt, r-modelmetrics, r-modeltools, r-msnbase, r-msnid, +r-mzid, r-mzr, r-nlme, r-nloptr, r-numderiv, r-pbapply, r-pbkrtest, +r-pcamethods, r-plogr, r-prabclus, r-protgenerics, r-quantreg, +r-randomforest, r-ranger, r-rann, r-raremetals2, r-rcppeigen, +r-rcppprogress, r-rhdf5, r-robustbase, r-rprojroot, r-seqminer, r-seurat, +r-sn, r-sourcetools, r-spatial, r-statmod, r-sva, r-tclust, r-trimcluster, +r-tsne, r-txdb-mmusculus-ucsc-mm10-knowngene, r-tximport, r-vgam, r-vipor, +r-vsn, rdma-core, re2c, reducelcs, ribodiff, ripit, rocksdb, roffit, +rsnapshot, ruby-mail, sambamba, sbm, scheme48-rx, scm, scrypt, scsh, +seabios, secilc, sedsed, shellcheck, simh, skroll, slib, sonic, +speedtest-cli, speexdsp, spin2cpp, spinsim, spoon, sssd, stringtemplate3, +stringtemplate4, stunnel, swaks, syslinux, sysstat, tailon, talloc-static, +tango-icon-theme, taxtastic, tclx, teeworlds, tftp-hpa, thermald, +tidy-html, tipp10, tlp, tokyocabinet, tracker, tremc, twm, unibilium, +unrar, vim-airline, vim-airline-themes, vim-context-filetype, vim-luna, +vim-neocomplete, vim-neosnippet, vim-neosnippet-snippets, vim-scheme, +vim-syntastic, vinagre, volk, wificurse, wimlib, wwwoffle, wxsvg, xbattmon, +xcalc, xdot, xerces-c, xfce4-notifyd, xinetd, xmag, xmessage, xshogi, +you-get, youtube-dl-gui, zile-on-guile, zpaq, zstd + +*** 1220 package updates + [email protected], [email protected], arc-icon-theme@20161122, arc-theme@20170302, [email protected], [email protected], emacs-org@20170502, [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], schismtracker@20170420, [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], tzdata@2017a, tzdata@2017b, + +** Programming interfaces + +*** (guix scripts challenge) returns complete reports, not just discrepancies +*** New ‘dub-build-system’ for the D language and Dub +*** New ‘ocaml-build-system’ for software written in OCaml +*** Improvements to the ‘asdf-build-system’ for software written in various Common Lisp dialects. +*** New ‘package-mapping’ procedure to rewrite package dependency graphs +*** New modules: (guix workers), (guix discovery), (guix cache), + (guix memoization), (guix ssh), (gnu build shepherd) +*** (gnu build file-systems) now has support for ISO-9660 file systems. + +** Noteworthy bug fixes + +*** Create home directories once file systems are mounted + (<http://bugs.gnu.org/21108>) +*** GNU R now builds bit-reproducibly (<https://bugs.gnu.org/25598>) +*** The daemon’s default settings are used unless overriden + (<https://bugs.gnu.org/20217>) +*** ‘guix system’ now supports the common build option ‘--root’ + (<https://bugs.gnu.org/26271>) +*** Mesa uses LLVM for better Gallium performance (<https://bugs.gnu.org/25953>) +*** Grafting no longer triggers a download of all the outputs of each derivation + (<https://bugs.gnu.org/24886>) +*** Home directories are created when using a separate /home + (<https://bugs.gnu.org/21108>) + +** Native language support + +Updated translations: fr (French) + * Changes in 0.12.0 (since 0.11.0) ** Package management diff --git a/build-aux/update-NEWS.scm b/build-aux/update-NEWS.scm new file mode 100644 index 0000000000..2e8f68c9a8 --- /dev/null +++ b/build-aux/update-NEWS.scm @@ -0,0 +1,161 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2017 Ludovic Courtès <[email protected]> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +;;; Commentary: +;;; +;;; This script updates the list of new and updated packages in 'NEWS'. +;;; +;;; Code: + +(use-modules (gnu) (guix) + (guix build utils) + ((guix ui) #:select (fill-paragraph)) + (srfi srfi-1) + (srfi srfi-11) + (ice-9 match) + (ice-9 rdelim) + (ice-9 regex) + (ice-9 pretty-print)) + +(define %header-rx + (make-regexp "^\\* Changes in (version )?([0-9.]+) \\(since ([0-9.]+)\\)")) + +(define (NEWS->versions port) + "Return two values: the previous version and the current version as read +from PORT, which is an input port on the 'NEWS' file." + (let loop () + (let ((line (read-line port))) + (cond ((eof-object? line) + (error "failed to determine previous and current version" + port)) + ((regexp-exec %header-rx line) + => + (lambda (match) + (values (match:substring match 3) + (match:substring match 2)))) + (else + (loop)))))) + +(define (skip-to-org-heading port) + "Read from PORT until an Org heading is found." + (let loop () + (let ((next (peek-char port))) + (cond ((eqv? next #\*) + #t) + ((eof-object? next) + (error "next heading could not be found")) + (else + (read-line port) + (loop)))))) + +(define (rewrite-org-section input output heading-rx proc) + "Write to OUTPUT the text read from INPUT, but with the first Org section +matching HEADING-RX replaced by NEW-HEADING and CONTENTS." + (let loop () + (let ((line (read-line input))) + (cond ((eof-object? line) + (error "failed to match heading regexp" heading-rx)) + ((regexp-exec heading-rx line) + => + (lambda (match) + (proc match output) + (skip-to-org-heading input) + (dump-port input output) + #t)) + (else + (display line output) + (newline output) + (loop)))))) + +(define (enumeration->paragraph lst) + "Turn LST, a list of strings, into a single string that is a ready-to-print +paragraph." + (fill-paragraph (string-join (sort lst string<?) ", ") + 75)) + +(define (write-packages-added news-file old new) + "Write to NEWS-FILE the list of packages added between OLD and NEW." + (let ((added (lset-difference string=? (map car new) (map car old)))) + (with-atomic-file-replacement news-file + (lambda (input output) + (rewrite-org-section input output + (make-regexp "^(\\*+) (.*) new packages") + (lambda (match port) + (let ((stars (match:substring match 1))) + (format port + "~a ~a new packages~%~%~a~%~%" + stars (length added) + (enumeration->paragraph 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))) + (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))) + (format port + "~a ~a package updates~%~%~a~%~%" + stars (length upgraded) + (enumeration->paragraph upgraded))))))))) + + +(define (main . args) + (match args + ((news-file data-directory) + ;; Don't browse things listed in the user's $GUIX_PACKAGE_PATH. Here we + ;; assume that the last item in (%package-module-path) is the distro + ;; directory. + (parameterize ((%package-module-path + (list (last (%package-module-path))))) + (define (package-file version) + (string-append data-directory "/packages-" + version ".txt")) + + (let-values (((previous-version new-version) + (call-with-input-file news-file NEWS->versions))) + (let* ((old (call-with-input-file (package-file previous-version) + read)) + (new (fold-packages (lambda (p r) + (alist-cons (package-name p) (package-version p) + r)) + '()))) + (call-with-output-file (package-file new-version) + (lambda (port) + (pretty-print new port))) + + (write-packages-added news-file old new) + (write-packages-updates news-file old new))))) + (x + (format (current-error-port) "Usage: update-NEWS NEWS-FILE DATA-DIRECTORY + +Update the list of new and updated packages in NEWS-FILE using the +previous-version package list from DATA-DIRECTORY.\n") + (exit 1)))) + +(apply main (cdr (command-line))) diff --git a/doc/guix.texi b/doc/guix.texi index b4a59e793a..aa8b705be6 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -10,7 +10,7 @@ @include version.texi @c Identifier of the OpenPGP key used to sign tarballs and such. -@set OPENPGP-SIGNING-KEY-ID BCA689B636553801C3C62150197A5888235FACAC +@set OPENPGP-SIGNING-KEY-ID 3CE464558A84FDC69DB40CFB090B11993D9AEBB5 @copying Copyright @copyright{} 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès@* diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 3438d370e0..12e1f9e6c0 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -73,9 +73,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.12.0") - (commit "ce92d269fea0a2bfac0ac20414f77127d2f07500") - (revision 11)) + (let ((version "0.13.0") + (commit "a6d728b7aaee09892b0b420d07ed2dbb7de5e63f") + (revision 1)) (package (name "guix") @@ -91,7 +91,7 @@ (commit commit))) (sha256 (base32 - "17l9r2mdzzv8vfxb3bc5zkdqkl472q979iwsarp7lcqss1jxys7w")) + "1nrskyk8z6w5i9cdfh5zxfgsrqf744sb30ssqi2g5xhijwagr1yq")) (file-name (string-append "guix-" version "-checkout")))) (build-system gnu-build-system) (arguments diff --git a/gnu/tests/ssh.scm b/gnu/tests/ssh.scm index 02931e982a..5f06151081 100644 --- a/gnu/tests/ssh.scm +++ b/gnu/tests/ssh.scm @@ -51,7 +51,7 @@ When SFTP? is true, run an SFTP server test." (eval-when (expand load eval) ;; Prepare to use Guile-SSH. (set! %load-path - (cons (string-append #$guile-ssh "/share/guile/site/" + (cons (string-append #+guile2.0-ssh "/share/guile/site/" (effective-version)) %load-path))) diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm index 5e4574f7c7..f71b1d71b8 100644 --- a/guix/scripts/system.scm +++ b/guix/scripts/system.scm @@ -575,7 +575,7 @@ PATTERN, a string. When PATTERN is #f, display all the system generations." #:disk-image-size (if full-boot? image-size - (* 30 (expt 2 20))) + (* 70 (expt 2 20))) #:mappings mappings)) ((disk-image) (system-disk-image os #:disk-image-size image-size)))) @@ -897,8 +897,10 @@ resulting from command-line parsing." ((shepherd-graph) (export-shepherd-graph os (current-output-port))) (else - (warn-about-old-distro #:suggested-command - "guix system reconfigure") + (unless (memq action '(build init)) + (warn-about-old-distro #:suggested-command + "guix system reconfigure")) + (perform-action action os #:dry-run? dry? #:derivations-only? (assoc-ref opts |