Merge branch 'master' into core-updates
import: gem: Beautify description field. * guix/import/gem.scm (gem->guix-package): Use 'beautify-description'.
import: cran: Move beautify-description to utils module. * guix/import/cran.scm (beautify-description): Move from here... * guix/import/utils.scm: ... to here.
Merge branch 'master' into core-updates
import: Rename "cran-fetch" to "fetch-description". * guix/import/cran.scm (cran-fetch): Rename procedure ... (fetch-description): ... to this.
import: Add package->upstream-name procedure. * guix/import/cran.scm (package->upstream-name): New procedure.
Merge branch 'master' into core-updates
import: Drop empty list items. * guix/import/cran.scm (listify): Remove empty strings from result list.
Merge branch 'master' into core-updates
import: cran: Parse DESCRIPTION instead of HTML. * guix/import/cran.scm (description->alist, listify, beautify-description, description->package): New procedures. (table-datum, downloads->url, nodes->text, cran-sxml->sexp): Remove proceduces. (latest-release): Use parsed DESCRIPTION instead of SXML. * tests/cran.scm: Rewrite to match importer.
import: cran: Match more license strings. * guix/import/cran.scm (string->license): Match more license strings to license symbols.
import: pypi: Updater silently ignores packages without source. Reported by Andreas Enge <andreas@enge.fr> at <https://lists.gnu.org/archive/html/guix-devel/2015-11/msg00764.html>. * guix/import/pypi.scm (&missing-source-error): New error type. (latest-source-release): Raise it instead of using 'error'. (pypi->guix-package): Guard against it and use 'leave' to report the error. (latest-release): Guard against it and return #f when caught.
import: hackage: Handle CRLF end of line style. * guix/import/hackage.scm (hackage-fetch, hackage->guix-package): Use 'canonical-newline-port'.
import: hackage: Make parsing of tests and fields more flexible. * guix/import/cabal.scm (is-test): Allow spaces between keyword and parentheses. (is-id): Add argument 'port'. Allow spaces between keyword and column. (lex-word): Adjust call to 'is-id'.
import: hackage: Make it resilient to missing final newline. * guix/import/cabal.scm (peek-next-line-indent): Check for missing final newline.
import: hackage: Imporve parsing of tests. * guix/import/cabal.scm (lex-word): Add support for tests with no spaces. (impl): Rewrite.
import: hackage: Add recognition of 'true' and 'false' symbols. * guix/import/cabal.scm (is-true, is-false, lex-true, lex-false): New procedures. (lex-word): Use them. (make-cabal-parser): Add TRUE and FALSE tokens. (eval): Add entries for 'true and 'false symbols.
import: pypi: Make downloads silent. * guix/import/pypi.scm (pypi-fetch): Wrap body in 'call-with-output-file' and 'with-error-to-port'.
import: pypi: Add missing copyright line. * guix/import/pypi.scm: Add missing copyright line for bab020d.
import: pypi: add updater * guix/import/pypi.scm (guix-package->pypi-name, latest-release): New procedures. (%pypi-updater): New variable. * guix/scripts/refresh.scm (%updaters): Add %PYPI-UPDATER. * doc/guix.texi (Invoking guix refresh): Mention PyPI