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