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
Ludovic Courtès
dee2b3bdb9
import: pypi: Improve warning message.
...
* guix/import/pypi.scm (guess-requirements): Add missing newline and quotes in
warning.
2015-07-21 21:14:33 +02:00
Federico Beffa
d8b6fcdeda
import: cabal: Make token recognition case-insensitive.
...
* guix/import/cabal.scm (make-rx-matcher): Add optional parameter FLAG.
(is-property, is-flag, is-src-repo, is-exec, is-test-suite, is-benchmark,
is-lib, is-else, is-if): Make test case-insensitive.
2015-07-08 10:53:05 +02:00
Federico Beffa
7f74a931dd
import: Add 'elpa' importer.
...
* guix/import/elpa.scm: New file.
* guix/scripts/import.scm: Add "elpa" to 'importers'.
* guix/scripts/import/elpa.scm: New file.
* Makefile.am (MODULES): Add 'guix/import/elpa.scm' and
'guix/scripts/import/elpa.scm'.
(SCM_TESTS): Add 'tests/elpa.scm'.
* doc/guix.texi (Invoking guix import): Document it.
* tests/elpa.scm: New file.
* po/guix/POTFILES.in: Add 'guix/scripts/import/elpa.scm'.
2015-07-08 10:53:05 +02:00
Cyril Roelandt
ff986890ec
import: pypi: Detect inputs.
...
* guix/import/pypi.scm (python->package-name, maybe-inputs, compute-inputs,
guess-requirements): New procedures.
* guix/import/pypi.scm (guix-hash-url): Now takes a filename instead of an
URL as input.
* guix/import/pypi.scm (make-pypi-sexp): Now tries to generate the inputs
automagically.
* tests/pypi.scm: Update the test.
2015-06-24 22:47:59 +02:00
Federico Beffa
a415474873
import: hackage: Refactor parsing code and add new options.
...
* guix/import/cabal.scm: New file.
* guix/import/hackage.scm: Update to use the new Cabal parsing module.
* tests/hackage.scm: Update tests.
* guix/scripts/import/hackage.scm: Add new '--cabal-environment' and '--stdin'
options.
* doc/guix.texi: ... and document them.
* Makefile.am (MODULES): Add 'guix/import/cabal.scm',
'guix/import/hackage.scm' and 'guix/scripts/import/hackage.scm'.
(SCM_TESTS): Add 'tests/hackage.scm'.
2015-06-09 09:48:38 +02:00
Eric Bavier
47945cf353
import: cpan: Fix license string for Artistic license.
...
* guix/import/cpan.scm (string->license): Remove extraneous "_0"
suffix for Artistics licenses.
2015-04-19 19:48:52 -05:00
Federico Beffa
b29455cfe7
import: Add hackage importer.
...
* guix/import/hackage.scm: New file.
* tests/hackage.scm: New file.
2015-04-08 17:31:11 +02:00
Mark H Weaver
431b28d9dc
import: cpan: Change %corelist into a promise.
...
Fixes compilation failures in 'guix pull'.
* guix/import/cpan.scm (%corelist): Change it to a promise by wrapping it with
'delay'.
(cpan-module->sexp): Adapt uses of %corelist by wrapping with 'force'.
2015-02-20 16:28:05 -05:00
Eric Bavier
e92a4ad928
import: cpan: Use cpan mirror url.
...
* guix/import/cpan.scm (cpan-module->sexp)[source-url]: Substitute cpan mirror
url.
2015-02-18 23:53:46 -06:00
Eric Bavier
a0c2c4b45b
import: cpan: Sort inputs.
...
* guix/import/cpan.scm (cpan-module->sexp)[convert-inputs]: Sort returned list
of inputs.
2015-02-18 23:53:46 -06:00
Eric Bavier
2491d58962
import: cpan: Adjust licenses.
...
* guix/import/cpan.scm (string->license): Add artistic2.0. Use
'(package-license perl) for "perl_5" as is our convention.
2015-02-18 23:53:46 -06:00
Eric Bavier
66392e475d
import: cpan: Use corelist to filter dependencies.
...
* guix/import/cpan.scm (%corelist): New variable.
(module->dist-name, core-module?): New procedures.
(cpan-module->sexp)[convert-inputs]: Use them. Include "test" dependencies
in converted inputs.
* doc/guix.texi (Invoking guix import)[cpan]: Mention corelist filtering.
2015-02-18 23:53:46 -06:00
Eric Bavier
d45dc6da5c
import: Add CPAN importer.
...
* guix/import/cpan.scm, guix/scripts/import/cpan.scm, tests/cpan.scm:
New files.
* Makefile.am (MODULE)[HAVE_GUILE_JSON]: Add them.
* guix/scripts/import.scm (importers): Add cpan.
* doc/guix.texi (Requirements): Mention `guix import cpan` as a user
of guile-json.
(Invoking guix import): Document new `guix import cpan` command.
2015-01-09 10:38:26 -06:00
Eric Bavier
1ff2619bc1
import: Factorize utility functions.
...
* guix/import/pypi.scm (hash-table->alist, flatten, assoc-ref*,
url-fetch, json-fetch): Pull procedures from here into...
* guix/import/utils.scm: Here and...
* guix/import/json.scm: Here. New file.
* Makefile.am (MODULE)[HAVE_GUILE_JSON]: Add it.
* guix/import/gnu.scm (file-sha256): Move from here to...
* guix/hash.scm: Here.
* tests/pypi.scm (pypi->guix-package): Update mock module reference.
2015-01-09 10:33:24 -06:00
Eric Bavier
c6cb82f5d5
import: gnu: Propagate the key-download argument.
...
* guix/import/gnu.scm (gnu->guix-package): Pass the key-download
argument on to gnu-package->sexp.
2015-01-09 10:33:24 -06:00
Ludovic Courtès
2cdda52b1a
import: gnu: Write the hash in nix-base32 format.
...
* guix/import/gnu.scm (gnu-package->sexp): Use
'bytevector->nix-base32-string', not 'bytevector->base32-string'.
2014-11-25 18:01:59 +01:00
Ludovic Courtès
7047133f07
import: Add GNU importer.
...
Suggested by Karl Berry <karl@gnu.org>
and Andreas Enge <andreas@enge.fr>.
* guix/import/gnu.scm, guix/scripts/import/gnu.scm: New files.
* Makefile.am (MODULES): Add them.
* guix/scripts/import.scm (importers): Add "gnu".
* guix/gnu-maintenance.scm (gnu-release-archive-types): New procedure.
(download-tarball): Export.
2014-11-11 15:31:35 +01:00
Ludovic Courtès
467a3c93db
import: pypi: Gracefully handle non-existent packages.
...
Fixes <http://bugs.gnu.org/18831 >.
Reported by Ian Denhardt <ian@zenhack.net>.
* guix/import/pypi.scm (url-fetch, json-fetch, pypi-fetch): Augment
docstring to mention #f on failure.
(pypi->guix-package): Likewise, and actually return #f on failure.
* guix/scripts/import/pypi.scm (guix-import-pypi): Call 'leave' when
'pypi->guix-package' returns #f.
2014-11-05 17:56:39 +01:00
Ludovic Courtès
7dbe096c63
import: snix: Handle license attributes.
...
* guix/import/snix.scm (snix-derivation->guix-package)[license-variable]:
Move to...
(license-variable): ... here. Handle license attributes.
2014-10-29 14:03:46 +01:00
Cyril Roelandt
68b18aae6a
guix import pypi: Fix a typo in a docstring.
...
* guix/import/pypi.scm (snake-case): Fix documentation.
2014-10-22 02:47:29 +02:00
Cyril Roelandt
a5ffa812b8
guix import pypi: do not add "python-" to a package name if it's already there.
...
* guix/import/pypi.scm (make-pypi-sexp): test whether the package name starts
with "python-" before modifying it.
2014-10-22 02:47:29 +02:00
Cyril Roelandt
cf690129b4
guix import pypi: add the Apache License 2.0
...
* guix/import/pypi.scm (string->license): add ASL2.0.
2014-10-22 02:47:29 +02:00
David Thompson
1b3e968512
import: Add PyPI importer.
...
* guix/snix.scm: Delete.
* guix/import/snix.scm: New file.
* guix/import/pypi.scm: New file.
* guix/import/utils.scm: New file.
* guix/scripts/import/nix.scm: New file.
* guix/scripts/import/pypi.scm: New file.
* tests/pypi.scm: New file.
* tests/snix.scm: Import (guix import snix) module.
* guix/scripts/import.scm (%default-options, %options): Delete.
(%standard-import-options, importers): New variables.
(show-help): List importers.
(guix-import): Factor out Nix-specific logic. Delegate to correct importer
based upon first argument.
* configure.ac (HAVE_GUILE_JSON): New conditional.
* Makefile.am (MODULES): Add new files and remove 'guix/snix.scm'.
(SCM_TESTS): Add 'tests/pypi.scm' if guile-json is installed.
2014-09-29 19:30:28 -04:00