import: cran: Avoid HTTP redirect.
* guix/import/cran.scm (cran-fetch): Add trailing slash in URL to avoid
HTTP redirect.
import: cran: Add updater.
* guix/import/cran.scm (downloads->url, nodes->text): New procedures.
(cran-sxml->sexp): Use them. Remove equivalent local code.
(latest-release, cran-package?): New procedures.
(%cran-updater): New variable.
* guix/scripts/refresh.scm (%updaters): Add %CRAN-UPDATER.
* doc/guix.texi (Invoking guix refresh): Mention CRAN.
refresh: Remove exception catch-all.
* guix/scripts/refresh.scm (update-package): Remove 'catch #t'.
refresh: Add '--type' option.
* guix/scripts/refresh.scm (%options, show-help): Add --type.
(lookup-updater): New procedure.
(update-package): Add 'updaters' parameter and honor it.
(guix-refresh)[options->updaters]: New procedure.
Use it, and honor --type.
import: elpa: Add updater.
* guix/import/elpa.scm (latest-release, package-from-gnu.org?): New
procedures.
(%elpa-updater): New variable.
* guix/scripts/refresh.scm (%updaters): Add %ELPA-UPDATER.
import: elpa: Use 'http-fetch/cached' to retrieve the archive.
* guix/import/elpa.scm (elpa-fetch-archive): Set %HTTP-CACHE-TTL to 6
hours.
(call-with-downloaded-file): Use 'http-fetch/cached' instead of
'url-fetch'.
gnu-maintenance: Generalize, leading to (guix upstream).
* guix/gnu-maintenance.scm (<gnu-release>): Remove.
(coalesce-releases): Move to upstream.scm. Rename to
'coalesce-sources'; adjust callers.
(releases, latest-release): Return <upstream-source> objects instead
of <gnu-release> objects.
(latest-release*, non-emacs-gnu-package?): New procedures.
(gnu-release-archive-types): Remove.
(%gnu-updater): New variable.
(package-update-path, download-tarball, package-update,
update-package-source): Move to...
* guix/upstream.scm: ... here. New file.
* Makefile.am (MODULES): Add it.
* po/guix/POTFILES.in: Replace gnu-maintenance.scm with upstream.scm.
* guix/scripts/refresh.scm (%updaters): New variable.
(update-package): Adjust to new 'package-update' interface.
(guix-refresh): Adjust to new 'package-update-path'. Remove
'false-if-exception' around it.
http-client: '%http-cache-ttl' is really a parameter.
Fixes a typo in commit 739ab68 that made it a procedure returning a
parameter.
* guix/http-client.scm (%http-cache-ttl): Turn into a parameter.
gnu: Add evilwm.
* gnu/packages/wm.scm (evilwm): New variable.
services: xorg: Include font-alias in default FontPath.
* gnu/services/xorg.scm (xorg-configuration-file): Add font-alias directories
to xserver.conf FontPath.
font-alias: Install dummy fonts.dir files.
* gnu/packages/xorg.scm (font-alias)[arguments]: New 'install-fonts-dir'
phase.
gnu: Add xlsfonts.
* gnu/packages/xorg.scm (xlsfonts): New variable.
gnu: giflib: Update to 5.1.1.
* gnu/packages/image.scm (giflib): Update to 5.1.1.
gnu: gnurl: Update to 7.45.0.
* gnu/packages/gnunet.scm (gnurl): Update to 7.45.0.
gnu: curl: Update to 7.45.0.
* gnu/packages/curl.scm (curl): Update to 7.45.0.
emacs: devel: Add indentation rules for 'modify-phases' keywords.
* emacs/guix-devel.el: Add indentation rules for 'modify-phases' keywords.
(guix-devel-indent-modify-phases-keyword,
guix-devel-indent-modify-phases-keyword-1,
guix-devel-indent-modify-phases-keyword-2): New functions.
emacs: config: Use "emacs-config-" prefix for constants.
* emacs/guix-config.el.in (guix-emacs-interface-directory,
guix-state-directory): Rename to ...
(guix-config-emacs-interface-directory, guix-config-state-directory):
...this.
(guix-config-guile-program): New constant.
(guix-guile-program): Move to ...
* emacs/guix-external.el (guix-guile-program): ...here. Make it a
'defcustom'.
* emacs/guix-profiles.el (guix-default-profile): Use
'guix-config-state-directory'.
* emacs/guix-backend.el (guix-load-path): Use
'guix-config-emacs-interface-directory'.
build: Set DOT_USER_PROGRAM for Emacs interface.
Suggested by Ludovic Courtès <ludo@gnu.org>.
* configure.ac: Set DOT_USER_PROGRAM variable.
* emacs/guix-config.el.in (guix-config-dot-program): New constant.
* emacs/guix-external.el (guix-dot-program): Use it.