Ludovic Courtès
149590380a
import: Gracefully report import failures.
...
Previously, something like 'guix import gnu which' would spit out a
backtrace if, say, the 'which' tarball could not be authenticated.
* guix/upstream.scm (download-tarball): Mention failure modes in
docstring.
* guix/import/gnu.scm (gnu-package->sexp): Return #f when
'download-tarball' returns #f.
* guix/scripts/import.scm (guix-import): Call 'leave' when IMPORTER does
not return a (package ...) sexp.
2016-05-17 14:02:48 +02:00
Ricardo Wurmus
9916ae15bb
import cran: latest-bioconductor-release: Wrap Bioconductor URL in list.
...
* guix/import/cran.scm (latest-bioconductor-release): Wrap Bioconductor
URL in list in the "urls" field of the "upstream-source" value.
2016-05-16 21:00:41 +02:00
Ricardo Wurmus
9583e07cae
import cran: Use URL for Bioconductor 3.3.
...
* guix/import/cran.scm (%bioconductor-svn-url): Update to release URL
for version 3.3.
2016-05-16 20:52:46 +02:00
Ludovic Courtès
958dd3ce68
utils: Move combinators to (guix combinators).
...
* guix/utils.scm (compile-time-value, memoize, fold2)
(fold-tree, fold-tree-leaves): Move to...
* guix/combinators: ... here. New file.
* tests/utils.scm ("fold2, 1 list", "fold2, 2 lists")
(fold-tree tests): Move to...
* tests/combinators.scm: ... here. New file.
* Makefile.am (MODULES, SCM_TESTS): Add them.
* gnu/packages.scm, gnu/packages/bootstrap.scm,
gnu/services/herd.scm, guix/build-system/gnu.scm,
guix/build-system/python.scm, guix/derivations.scm,
guix/gnu-maintenance.scm, guix/import/elpa.scm,
guix/scripts/archive.scm, guix/scripts/build.scm,
guix/scripts/graph.scm, guix/scripts/lint.scm,
guix/scripts/size.scm, guix/scripts/substitute.scm,
guix/serialization.scm, guix/store.scm, guix/ui.scm: Adjust imports
accordingly.
2016-05-04 23:35:55 +02:00
Eric Bavier
b77d17d023
import: cpan: check version bounds on core modules.
...
Modules may be removed from Perl's core, so we must check for a removal
version.
* guix/import/cpan.scm (cpan-module->sexp)[core-module?]: Also check
version upper bound.
2016-04-25 18:31:45 -05:00
Ludovic Courtès
7d27a0259b
upstream: Pass a package object to updaters.
...
* guix/upstream.scm (package-update-path): Pass PACKAGE to
'latest-release'.
* guix/gnu-maintenance.scm (latest-release*)
(latest-gnome-release, latest-xorg-release): Adjust accordingly.
* guix/import/cran.scm (latest-cran-release):
(latest-bioconductor-release): Likewise.
* guix/import/elpa.scm (latest-release): Likewise.
* guix/import/gem.scm (latest-release): Likewise.
* guix/import/github.scm (latest-release): Likewise.
* guix/import/hackage.scm (latest-release): Likewise.
* guix/import/pypi.scm (latest-release): Likewise.
2016-04-15 00:32:18 +02:00
Eric Bavier
42efe27a30
import: Add Hackage updater.
...
* guix/import/hackage.scm (guix-package->hackage-name, hackage-package?)
(latest-release): New procedures.
(%hackage-updater): New variable.
* guix/scripts/refresh.scm (%updaters): Add it.
* doc/guix.texi (Invoking guix refresh): Mention it.
2016-03-30 23:19:24 -05:00
Eric Bavier
2ae9c63f15
import: hackage: Silence download output.
...
* guix/import/hackage.scm (hackage-fetch): Use http-fetch to avoid
progress output from url-fetch.
2016-03-30 23:19:24 -05:00
Eric Bavier
f9ea74ad04
import: hackage: Factorize url synthesis.
...
* guix/import/hackage.scm (hackage-source-url, hackage-cabal-url): New
procedures.
(hackage-fetch, hackage-module->sexp): Use them.
2016-03-30 23:19:24 -05:00
Ricardo Wurmus
b98293ebed
import: cran: Accept single URL in addition to single URL.
...
* guix/import/cran.scm (package->upstream-name): Match single URL in
addition to list of URLs.
2016-03-22 17:57:40 +01:00
Ludovic Courtès
522773b700
import: pypi: Emit 'pypi-uri' only when it yields the right URL.
...
Fixes <http://bugs.gnu.org/23062 >.
Reported by Danny Milosavljevic <dannym@scratchpost.org>.
* guix/import/pypi.scm (make-pypi-sexp): Check whether 'pypi-uri'
returns SOURCE-URL and fall back to the full URL otherwise.
* tests/pypi.scm ("pypi->guix-package"): Adjust expected URI
accordingly.
Co-authored-by: Danny Milosavljevic <dannym@scratchpost.org>
2016-03-19 23:54:19 +01:00
Ludovic Courtès
322bb53c7a
import: snix: Use the right 'package-name->name+version'.
...
Fixes a regression introduced in
1b846da8c3
.
* guix/import/snix.scm: Use 'package-name->name+version' from (guix
build utils).
2016-03-06 23:16:35 +01:00
Ben Woodcroft
917a2a58ec
import: Add github-updater.
...
* guix/import/github.scm: New file.
* guix/scripts/refresh.scm (%updaters): Add %GITHUB-UPDATER.
* doc/guix.texi (Invoking guix refresh): Mention it.
* Makefile.am (MODULES): Add gnu/import/github.scm.
2016-02-26 22:06:34 -05:00
Ben Woodcroft
fbc5b815cc
import: gem: Add updater.
...
* guix/import/gem.scm (guix-package->gem-name,
gem-package?, latest-release): New procedures.
(%gem-updater): New variable.
(rubygems-fetch): Wrap body in
'call-with-output-file' and 'with-error-to-port'.
* guix/scripts/refresh.scm (%updaters): Add %GEM-UPDATER.
* doc/guix.texi (Invoking guix refresh): Mention RubyGems.
2016-02-20 20:46:10 +10:00
Mathieu Lirzin
74e667d149
packages: Use '@' in package record printers.
...
* guix/packages.scm <package>: Use '@' in record printer.
* guix/import/cabal.scm <cabal-package>: Likewise
* guix/import/elpa.scm <elpa-package>: Likewise.
* tests/packages.scm: Adapt to it.
2016-01-28 16:31:38 +01:00
Ben Woodcroft
e88d5fa9eb
import: gem: Beautify only the description, not the synopsis.
...
* guix/import/gem.scm (make-gem-sexp): Add synopsis argument.
(gem->guix-package): Pass unbeautified synopsis to make-gem-sexp.
* tests/gem.scm: Adapt it.
2016-01-20 21:52:52 +10:00
Ricardo Wurmus
d0bd632f89
import: Add Bioconductor importer and updater.
...
* guix/import/cran.scm (%bioconductor-updater,
latest-bioconductor-release, bioconductor-package?): New procedures.
(cran->guix-package): Support repositories other than CRAN.
(%bioconductor-url, %bioconductor-svn-url): New variables.
(description->package): Update signature to distinguish between packages
from different repositories.
(latest-release): Rename procedure ...
(latest-cran-release): ... to this.
(cran-package?): Do not assume all R packages are available on CRAN.
* tests/cran.scm: Update tests.
* guix/scripts/import/cran.scm: Add "--archive" option and default to
CRAN.
* guix/scripts/refresh.scm (%updaters): Add "%bioconductor-updater".
* doc/guix.texi: Document Bioconductor importer and updater.
2016-01-20 12:41:28 +01:00
Ben Woodcroft
869cda545d
import: gem: Beautify description field.
...
* guix/import/gem.scm (gem->guix-package): Use 'beautify-description'.
2016-01-14 19:44:40 +10:00
Ben Woodcroft
2028a2c960
import: cran: Move beautify-description to utils module.
...
* guix/import/cran.scm (beautify-description): Move from here...
* guix/import/utils.scm: ... to here.
2016-01-14 19:44:36 +10:00
Ricardo Wurmus
34a75d35bb
import: Rename "cran-fetch" to "fetch-description".
...
* guix/import/cran.scm (cran-fetch): Rename procedure ...
(fetch-description): ... to this.
2016-01-07 17:18:04 +01:00
Ricardo Wurmus
d1c116089b
import: Add package->upstream-name procedure.
...
* guix/import/cran.scm (package->upstream-name): New procedure.
2016-01-07 17:18:02 +01:00
Ricardo Wurmus
be036757bd
import: Drop empty list items.
...
* guix/import/cran.scm (listify): Remove empty strings from result list.
2015-12-21 15:24:54 +01:00
Ricardo Wurmus
0f6b9e9828
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.
2015-12-11 15:35:07 +01:00
Ricardo Wurmus
b6a222757b
import: cran: Match more license strings.
...
* guix/import/cran.scm (string->license): Match more license strings to
license symbols.
2015-12-11 15:35:07 +01:00
Ludovic Courtès
85dce718cb
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.
2015-12-01 23:18:48 +01:00
Federico Beffa
96018e21e7
import: hackage: Handle CRLF end of line style.
...
* guix/import/hackage.scm (hackage-fetch, hackage->guix-package): Use
'canonical-newline-port'.
2015-11-26 18:17:23 +01:00
Federico Beffa
94abc84887
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'.
2015-11-26 18:17:23 +01:00
Federico Beffa
876fd23ab6
import: hackage: Make it resilient to missing final newline.
...
* guix/import/cabal.scm (peek-next-line-indent): Check for missing final
newline.
2015-11-26 18:17:23 +01:00
Federico Beffa
9be54eb1b1
import: hackage: Imporve parsing of tests.
...
* guix/import/cabal.scm (lex-word): Add support for tests with no spaces.
(impl): Rewrite.
2015-11-26 18:17:23 +01:00
Federico Beffa
7716f55c83
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.
2015-11-26 18:17:22 +01:00
Ludovic Courtès
32728adb95
import: pypi: Make downloads silent.
...
* guix/import/pypi.scm (pypi-fetch): Wrap body in
'call-with-output-file' and 'with-error-to-port'.
2015-11-04 00:12:19 +01:00
Ludovic Courtès
d1cb7e9562
import: pypi: Add missing copyright line.
...
* guix/import/pypi.scm: Add missing copyright line for bab020d
.
2015-11-04 00:12:19 +01:00
Cyril Roelandt
bab020d7ca
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
2015-11-03 23:41:25 +01:00
Cyril Roelandt
d8bdd38201
import: pypi: Use "pypi-uri" instead of building the URL manually.
...
* guix/import/pypi.scm (make-pypi-sexp): Use "pypi-uri".
* tests/pypi.scm: Update the tests accordingly.
2015-11-03 21:38:13 +01:00
Ludovic Courtès
3195e19de2
import: gnu: Update to the (guix upstream) API.
...
This is a followup to 0a7c5a0
.
* guix/import/gnu.scm (preferred-archive-type): Use
'upstream-source-archive-types' instead of 'gnu-release-archive-types'.
(gnu-package->sexp): Use 'upstream-source-urls' et al. Update call to
'download-tarball'.
(gnu->guix-package): Use <upstream-source> instead of <gnu-release>.
* guix/upstream.scm (upstream-source-archive-types): Export.
2015-11-03 00:59:28 +01:00
Alex Kost
7e6b490d04
upstream: Add 'description' field to 'upstream-updater'.
...
Suggested by Ludovic Courtès <ludo@gnu.org>.
* guix/upstream.scm (<upstream-updater>): Use 'define-record-type*'.
[description]: New field.
(lookup-updater): Adjust accordingly.
* guix/gnu-maintenance.scm (%gnu-updater): Likewise.
* guix/import/cran.scm (%cran-updater): Likewise.
* guix/import/elpa.scm (%elpa-updater): Likewise.
* po/guix/POTFILES.in: Add guix/scripts/import/cran.scm and
guix/gnu-maintenance.scm.
2015-10-27 21:54:57 +03:00
Paul van der Walt
759756a992
import: hackage: Update GHC libraries for 7.10.2.
...
Update ghc-standard-libraries to match the output of `ghc-pkg list` when
using GHC 7.10.2.
* guix/import/hackage.scm (ghc-standard-libraries): Sort and update list
of core GHC libraries.
2015-10-23 09:10:52 +02:00
Ludovic Courtès
102eac2a0a
import: cran: Add copyright notice.
...
Add notice for commit d882c23.
2015-10-21 14:51:30 +02:00
Ludovic Courtès
053cfdb3d6
import: cran: Avoid HTTP redirect.
...
* guix/import/cran.scm (cran-fetch): Add trailing slash in URL to avoid
HTTP redirect.
2015-10-21 14:44:41 +02:00
Ludovic Courtès
d882c235d9
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.
2015-10-21 14:44:41 +02:00
Ludovic Courtès
a7aac93625
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.
2015-10-21 14:44:38 +02:00
Ludovic Courtès
218622a737
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'.
2015-10-21 14:43:34 +02:00
Ludovic Courtès
72c62716be
import: snix: Adjust names of license attributes.
...
* guix/import/snix.scm (license-variable): Adjust names to current
Nixpkgs.
2015-10-06 23:51:04 +02:00
Ludovic Courtès
e3302fec18
import: pypi: Remove unused procedure.
...
* guix/import/pypi.scm (join): Remove.
2015-10-05 23:10:14 +02:00
Ricardo Wurmus
a52b625152
import: cran-sxml->sexp: Use cran-uri in package expression.
...
* guix/import/cran.scm (cran-sxml->sexp): Use the cran-uri procedure in
the generated package expression.
2015-09-21 10:48:26 +02:00
David Thompson
a96524cc7d
import: gem: Fix minor bug and add unit test.
...
* guix/import/gem.scm (make-gem-sexp): Properly handle an empty list of
licenses. When rendering a list of licenses, cons 'list onto the front of
the expression.
* tests/gem.scm: New file.
* Makefile.am (SCM_TESTS): Add it.
2015-09-01 20:00:01 -04:00
Ricardo Wurmus
e1248602f9
import: Add 'cran' importer.
...
* guix/import/cran.scm: New file.
* guix/scripts/import.scm: Add "cran" to 'importers'.
* guix/scripts/import/cran.scm: New file.
* tests/cran.scm: New file.
* Makefile.am (MODULES): Add 'guix/import/cran.scm' and
'guix/scripts/import/cran.scm'.
(SCM_TESTS): Add 'tests/cran.scm'.
* doc/guix.texi (Invoking guix import): Document it.
* po/guix/POTFILES.in: Add 'guix/scripts/import/cran.scm'.
2015-08-31 15:39:34 +02:00
David Thompson
3aae8145a7
import: Add Ruby gem importer.
...
* gnu/scripts/import.scm (importers): Add "gem".
* gnu/import/gem.scm: New file.
* gnu/scripts/import/gem.scm: New file.
* Makefile.am (MODULES): Add them.
* guix.texi ("invoking guix import"): Document it.
2015-08-27 19:45:06 -04:00
David Thompson
140b304815
import: pypi: Move generally useful procedures to utils module.
...
* guix/import/pypi.scm (make-pypi-sexp): Factorize license to symbol
conversion code.
(string->license, snake-case, guix-hash-url): Move from here...
* guix/import/utils.scm: ... to here.
(license->symbol): New procedure.
2015-08-27 18:02:35 -04:00
Federico Beffa
6544aba5fc
import: elpa: Improve error message reporting.
...
* guix/import/elpa.scm (filter-dependencies): Fix bug.
(call-with-downloaded-file): Add optional parameter 'error-thunk'.
(fetch-package-description): Use it.
2015-08-01 12:36:21 +02:00