summaryrefslogtreecommitdiff
path: root/guix/import/opam.scm
AgeCommit message (Collapse)Author
2022-04-11import: opam: Factor out source import.Julien Lepiller
This also ensures a package can be imported even when it does not specify a URL. * guix/import/opam.scm (opam->guix-source): New procedure. (opam->guix-package): Use it. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-04-11import: opam: Accept tabulations.Julien Lepiller
* guix/import/opam.scm (SP, SP2): Accept tabulation as whitespace. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-02-08import: utils: Harden beautify-description.Alice BRENON
* guix/import/utils.scm (beautify-description): Handle non-string arguments. [use-modules]: Explicitly import G_ from (guix i18n) and make (guix ui) import explicit. * guix/import/opam.scm: [use-modules] Make imports explicit for module (guix import utils). Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-12-17import: Beautify descriptions when appropriate.Xinglu Chen
* guix/import/elpa.scm (elpa-package->sexp) * guix/import/gnu.scm (gnu-package->sexp) * guix/import/hackage.scm (hackage-module->sexp) * guix/import/minetest.scm (make-minetest-sexp) * guix/import/opam.scm (opam->guix-package) * guix/import/pypi.scm (make-pypi-sexp): Beautify descriptions. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-11-23Merge branch 'master' into core-updates-frozenLudovic Courtès
2021-11-22import: opam: Fix error on unknown field value.Julien Lepiller
* guix/import/opam.scm (metadata-ref): Return #f if field is present, but its content is of unknown form.
2021-11-19import: opam: Warn instead of leave when fetching fails.zimoun
* guix/import/opam.scm (opam-featch): Warn instead of leave when fetching fails. Signed-off-by: Julien Lepiller <julien@lepiller.eu>
2021-09-07Merge branch 'master' into core-updates-frozenLudovic Courtès
2021-08-21guix: opam: More flexibility in the importer.Alice BRENON
* guix/scripts/import/opam.scm: Pass all instances of --repo as a list to the importer. * guix/import/opam.scm (opam-fetch): Stop expecting "expanded" repositories and call get-opam-repository instead to keep values "symbolic" as long as possible and factorize. (get-opam-repository): Use the same repository source as CLI opam does (i.e. HTTP-served index.tar.gz instead of git repositories). (find-latest-version): Be more flexible on the repositories structure instead of expecting packages/PACKAGE-NAME/PACKAGE-NAME.VERSION/. * tests/opam.scm: Update the call to opam->guix-package since repo is now expected to be a list and remove the mocked get-opam-repository deprecated by the support for local folders by the actual implementation. * doc/guix.texi: Document the new semantics and valid arguments for the --repo option. Signed-off-by: Julien Lepiller <julien@lepiller.eu>
2021-07-20import: opam: Emit new-style package inputs.Sarah Morgensen
* guix/import/opam.scm (opam->guix-package): Wrap INPUTS and NATIVE-INPUTS in 'list' instead of 'quasiquote'. (dependency-list->inputs): Return a list of symbols. * tests/opam.scm ("opam->guix-package"): Adjust accordingly. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-07-05guix: opam: Allow for whitespace at the start of an opam file.Julien Lepiller
* guix/import/opam.scm (records): Accept whitespace at the beginning.
2021-05-28import: opam: Generate license for package.Xinglu Chen
* guix/import/opam.scm (opam->guix-package): Generate license for the ‘license’ field. * tests/opam.scm (test-opam-file): Update accordingly. ("opam->guix-package"): Likewise. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-12-08import: opam: Adjust test to latest 'opam->guix-package' changes.Ludovic Courtès
This is a followup to a8dccd4bdc1e58219d4ba08fe1649bf0b8325f44, which broke the test. * guix/import/opam.scm (get-opam-repository): Prevent inlining. * tests/opam.scm ("opam->guix-package"): Mock 'get-opam-repository'.
2020-12-08guix: opam: Add coq support in the importer.Julien Lepiller
* guix/import/opam.scm (get-opam-repository): Add support for coq repositories. (ocaml-name->guix-name): Properly name coq package. * doc/guix.texi (Invoking guix import): Document it.
2020-12-08guix: opam: Add --repo argument to importer.Julien Lepiller
* guix/scripts/import/opam.scm (guix-import-opam): Pass --repo argument to recursive and non-recursive importers. * guix/import/opam.scm (get-opam-repository): Select proper repository location depending on a new repo argument. (opam->guix-package): Use get-opam-repository in the procedure body.
2020-12-08guix: opam: Pass default repository to recursive importer.Julien Lepiller
* guix/import/opam.scm (opam->guix-package): Rename #:repository key to #:repo. (opam-recursive-import): Pass #:repo keyword. * tests/opam.scm (opam->guix-package): Rename #:repository to #:repo.
2020-12-08guix: opam: Filter implicit inputs.Julien Lepiller
* guix/import/opam.scm (opam->guix-package, depends->inputs): Filter out implicit inputs.
2020-12-08guix: opam: Remove stray `pk'.Julien Lepiller
* guix/import/opam.scm (opam->guix-package): Remove stray `pk'.
2020-12-02import: utils: 'recursive-import' accepts an optional version parameter.Martin Becze
This adds a key VERSION to 'recursive-import' and moves the parameter REPO to a key. This also changes all the places that rely on 'recursive-import'. * guix/import/utils.scm (recursive-import): Add the VERSION key. Make REPO a key. (package->definition): Add optional 'append-version?'. * guix/scripts/import/crate.scm (guix-import-crate): Add the VERSION key. * guix/import/crate.scm (crate->guix-package): Add the VERSION key. (crate-recursive-import): Pass VERSION to recursive-import, remove now unnecessary code. * guix/import/cran.scm (cran->guix-package, cran-recursive-import): Change the REPO parameter to a key. * guix/import/elpa.scm (elpa->guix-package, elpa-recursive-import): Likewise. * guix/import/gem.scm (gem->guix-package, recursive-import): Likewise. * guix/import/opam.scm (opam-recurive-import): Likewise. * guix/import/pypi.scm (pypi-recursive-import): Likewise. * guix/import/stackage.scm (stackage-recursive-import): Likewise. * guix/scripts/import/cran.scm (guix-import-cran): Likewise. * guix/scripts/import/elpa.scm (guix-import-elpa): Likewise. * tests/elpa.scm (eval-test-with-elpa): Likewise. * tests/import-utils.scm (recursive-import): Likewise. Co-authored-by: Hartmut Goebel <h.goebel@crazy-compilers.com>
2020-10-02import: opam: Report groups in syntax tree.Julien Lepiller
* guix/import/opam.scm (group-pat): Report in syntax tree. (dependency->input, dependency->native-input, dependency->name): consider the case of a group.
2020-10-01guix: opam: Fix syntax.Julien Lepiller
* guix/import/opam.scm (STRCHR, comment, choice): Fix syntax. (group-pat): Add syntax. (opam->guix-package): Suppport "archive" keyword.
2020-05-25git: 'update-cached-checkout' returns the commit relation.Ludovic Courtès
* guix/git.scm (update-cached-checkout): Add #:starting-commit parameter. Call 'commit-relation' when #:starting-commit is true. Always return the relation or #f as the third value. (latest-repository-commit): Adjust accordingly. * guix/import/opam.scm (get-opam-repository): Likewise. * tests/channels.scm ("latest-channel-instances includes channel dependencies") ("latest-channel-instances excludes duplicate channel dependencies"): Update mock of 'update-cached-checkout' accordingly.
2020-03-17guix: import: opam: Use a default repository.Julien Lepiller
* guix/import/opam.scm (opam->guix-package): Use a default value for `repository`.
2020-01-17import: opam: Avoid uses of '@@' in tests.Ludovic Courtès
* guix/import/opam.scm (string-pat, multiline-string, list-pat) (dict, condition): Export. (opam-fetch): Add optional 'repository' parameter. (opam->guix-package): Add #:repository parameter and pass it to 'opam-fetch'. * tests/opam.scm ("opam->guix-package"): Remove use of 'mock' and pass TEST-REPO to 'opam->guix-package' instead. ("parse-strings", "parse-multiline-strings") ("parse-lists", "parse-dicts", "parse-conditions"): Remove uses of '@@', which are no longer needed.
2019-11-30guix: import: Fix importing dune project.Julien Lepiller
* guix/import/opam.scm: Detect dune projects from dependencies, then filter dune from dependencies.
2019-11-30guix: import: Fix opam importer.Julien Lepiller
* guix/import/opam.scm: Allow line breaks in strings.
2019-09-04import: opam: Use propagated-inputs instead of inputs.Julien Lepiller
* guix/import/opam.scm (opam->guix-package): Use propagated-inputs instead of inputs.
2019-09-04import: opam: Remove initial "v" in some version numbers.Julien Lepiller
* guix/import/opam.scm (opam-fetch): Remove initial "v" in some version numbers.
2019-04-10import: opam: Use dune-build-system when possible.Julien Lepiller
* guix/import/opam.scm (opam->guix-package): Detect when dune can be used.
2019-04-10import: opam: Add more patterns to opam file parser.Julien Lepiller
* guix/import/opam.scm: Add more patterns to peg parser. (choice-pat choice condition-not condition-paren): New patterns. (ground-value condition-content condition-var): Update patterns.
2019-03-23import: opam: Also update dune packages.Julien Lepiller
* guix/import/opam.scm (opam-package?): Also accept packages that use the dune build system.
2019-02-05import: opam: Work around janestreet version numbers.Julien Lepiller
janestreet reversionned its packages and prefixed them with "v". Let the importer know about that and choose "v" versions first. * guix/import/opam.scm (find-latest-version): Work around version rewrite from janestreet. (opam->guix-package): Do not pass "v" to version number.
2019-02-05import: opam: Replace "_" with "-" in imported names.Julien Lepiller
* guix/import/opam.scm (ocaml-name->guix-name): Replace "_" with "-". (opam->guix-packages): Add upstream name when we cannot guess it properly.
2019-02-05import: opam: Fix conditions.Julien Lepiller
* guix/import/opam.scm (condition-eq, condition-neq): The first argument can be empty. * tests/opam.scm: Add test case.
2019-01-07import: opam: Parse comments.Julien Lepiller
* guix/import/opam.scm: Add comment support in parser.
2019-01-07import: opam: Add updater.Julien Lepiller
* guix/import/opam.scm (%opam-updater): New variable.
2019-01-07import: opam: Add recursive option.Julien Lepiller
* guix/script/import/opam.scm: Add recursive option. * guix/import/opam.scm (opam->guix-package): return two values. (opam-recursive-import): New variable.
2018-12-17import: Update opam importer.Julien Lepiller
* guix/import/opam.scm: Update importer for opam 2. * tests/opam.scm: Update tests for the opam 2 importer.
2018-07-10guix: Add opam importer.Julien Lepiller
* guix/scripts/import.scm (importers): Add opam. * guix/scripts/import/opam.scm: New file. * guix/import/opam.scm: New file. * tests/opam.scm: New file. * Makefile.am: Add them. * doc/guix.texi (Invoking guix import): Document it.