summaryrefslogtreecommitdiff
path: root/guix/import
AgeCommit message (Collapse)Author
2021-10-02import: stackage: Use the standard diagnostic procedures.Ludovic Courtès
* guix/import/stackage.scm (leave-with-message): Remove. (stackage-lts-info-fetch): Use 'raise' and 'formatted-message'. (stackage->guix-package): Likewise. (latest-lts-release): Use 'warning' instead of 'format'.
2021-10-02import: stackage: Use 'define-json-mapping'.Ludovic Courtès
* guix/import/stackage.scm (<stackage-lts>, <snapshot>) (<stackage-package>): New record types and JSON mappings. (lts-info-packages, stackage-package-name) (stackage-package-version): Remove. (lts-package-version): Rename 'pkgs-info' to 'packages'; assume 'packages' is a list of <stackage-package>. (stackage->guix-package): Use 'stackage-lts-packages' instead of 'lts-info-packages'. Rename 'packages-info' to 'packages'. (latest-lts-release): Likewise. (stackage-package?): Rename to... (stackage-lts-package?): ... this. Adjust to new API. (%stackage-updater)[pred]: Update accordingly. * tests/lint.scm ("haskell-stackage"): Add "snapshot" entry in JSON snippet.
2021-09-30import: pypi: Honor the 'upstream-name' package property.Xinglu Chen
Previously, when a PyPI package had a “-” followed by one or more digits in its name, e.g., “AV-98”, the importer would interpret “98” as the version of the package and thus mistake the “AV-98” package for the “av” package on PyPI. $ ./pre-inst-env guix refresh av-98 following redirection to `https://pypi.org/pypi/av/json'... /home/yoctocell/src/guix/gnu/packages/web-browsers.scm:914:13: av-98 would be upgraded from 1.0.1 to 8.0.3 Setting the ‘upstream-name’ property to “AV-98” would solve the problem. $ ./pre-inst-env guix refresh av-98 /home/yoctocell/src/guix/gnu/packages/web-browsers.scm:914:13: 1.0.1 is already the latest version of av-98 * guix/import/pypi.scm (guix-package->pypi-name): Honor ‘upstream-name’ property. (make-pypi-sexp): Set ‘upstream-name’ property when appropriate. * tests/pypi.scm (test-json): Rename to ... (test-json-1): ... this. (test-json-2): New variable ("guix-package->pypi-name, honor 'upstream-name'"): New test. ("pypi->guix-package, package name contains \"-\" followed by digits"): Likewise. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-09-28import: minetest: Fix typos.Tobias Geerinckx-Rice
* guix/import/minetest.scm (elaborate-contentdb-name): Fix ‘ambiguous’ and ‘thes’ typos. * tests/minetest.scm: Likewise for all tests.
2021-09-27import: stackage: Don’t try to update packages not available on Stackage.Xinglu Chen
Previously, the ‘hackage-package?’ predicate was used which meant that the updater would try to update non-Stackage packages, and lead to messages like these: $ guix refresh -t stackage warning: failed to parse https://hackage.haskell.org/package/hurl/hurl.cabal warning: failed to parse https://hackage.haskell.org/package/idris/idris.cabal Since ‘hurl’ and ‘idris’ aren’t available on the current Stackage LTS release, they should be filtered out before the Stackage updater even tries to update them. * stackage.scm (stackage-package?): New procedure. (%stackage-updater): Use it. Signed-off-by: Lars-Dominik Braun <lars@6xq.net>
2021-09-18import: go: Match "go-import" meta tags anywhere.Sarah Morgensen
Some personal sites forget to put <meta name="go-import" ...> in a <head> element, so look anywhere for them. Partly fixes <https://issues.guix.gnu.org/50595>. Reported by Stephen Paul Weber <singpolyma@singpolyma.net>. * guix/import/go.scm (fetch-module-meta-data): Match "go-import" meta tags anywhere in the page. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-09-18import: go: Improve handling of modules in VCS subdirectories.Sarah Morgensen
Use the supplied module path (instead of the repository root) as the import path for everything except source and homepage URLs. For modules not in the root of a VCS repository, set #:unpack-path to the repository root by default. Partly fixes <https://issues.guix.gnu.org/50595>. Reported by Stephen Paul Weber <singpolyma@singpolyma.net>. * guix/import/go.scm (go-module->guix-package): Use 'module-path' instead of 'root-module-path' for #:import-path. Emit #:unpack-path when #:import-path is not equal to 'root-module-path'. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-09-18import: minetest: Strip "v" prefixes from the version number.Maxime Devos
This fixes one of the issues noted at <https://issues.guix.gnu.org/50425#4>. * guix/import/minetest.scm (release-version): New procedure. (%minetest->guix-package): Call new procedure instead of release-title. * tests/minetest.scm (make-package-sexp): Allow overriding the version number. (make-releases-json): Allow overriding the release title. ("conventional version number") ("v-prefixed version number") ("dates as version number"): New tests. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-09-18import: minetest: Delete duplicate dependencies.Maxime Devos
This fixes one of the issues noted in <https://issues.guix.gnu.org/50425#4>. * guix/import/minetest.scm (import-dependencies): Call 'delete-duplicates' on the resulting list. * tests/minetest.scm ("minetest->guix-package, multiple dependencies implemented by one mod"): New test. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-09-18import: Add 'generic-git' updater.Xinglu Chen
* guix/git.scm (ls-remote-refs): New procedure. * tests/git.scm ("remote-refs" "remote-refs: only tags"): New tests. * guix/import/git.scm: New file. * doc/guix.texi (Invoking guix refresh): Document it. * tests/import-git.scm: New test file. * Makefile.am (MODULES, SCM_TESTS): Register the new files. Co-authored-by: Sarah Morgensen <iskarian@mgsn.dev> Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-09-17Merge branch 'master' into core-updates-frozenMarius Bakke
Conflicts: gnu/packages/bioinformatics.scm gnu/packages/chez.scm gnu/packages/docbook.scm gnu/packages/ebook.scm gnu/packages/gnome.scm gnu/packages/linux.scm gnu/packages/networking.scm gnu/packages/python-web.scm gnu/packages/python-xyz.scm gnu/packages/tex.scm gnu/packages/version-control.scm gnu/packages/xml.scm guix/build-system/dune.scm guix/build-system/go.scm guix/build-system/linux-module.scm guix/packages.scm
2021-09-15import: cabal: Treat identifier names correctly.Xinglu Chen
* guix/import/cabal.scm (is-id): Accept the location as an argument. Don’t check if the identifier name is a reserved keyword unless it is the first word on the line. (lex-word): Adjust accordingly. * tests/hackage ("hackage->guix-package tests flag executable"): Expect it to pass. Fixes: <https://issues.guix.gnu.org/25138> Signed-off-by: Lars-Dominik Braun <lars@6xq.net>
2021-09-10import: elpa: Don't hardcode default branch to 'master'.Xinglu Chen
Otherwise, remotes without a branch named 'master' will cause an error when importing. * guix/import/elpa (git-repository->origin): Fallback to HEAD instead of the 'master' branch. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-09-07import: go: Fix import when import path redirects.Sarah Morgensen
* guix/import/go.scm (fetch-module-meta-data): If no meta entries have a matching import prefix, return the first entry instead of #f. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-09-07import: elpa: Support NonGNU ELPA.Xinglu Chen
* guix/import/elpa.scm (elpa-url): Add NonGNU ELPA URL. * doc/guix.texi (Invoking guix import): Document it. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-09-07Merge branch 'master' into core-updates-frozenLudovic Courtès
2021-09-01import: go: Improve error handling.zimoun
* guix/import/go.scm (go-module->guix-package*): Handle errors, remove memoize. (go-module-recursive-import): Remove 'guard', add memoize. * guix/scripts/import/go.scm (guix-import-go): Adjust. * tests/go.scm: Adjust. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-09-01import: utils: Skip not found packages.Sarah Morgensen
* guix/import/utils.scm (recursive-import): Skip packages when the package returned by 'repo->guix-package' is false. * tests/import-utils.scm: New tests. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-09-01import: go: Return false for package not found.Sarah Morgensen
* guix/import/go.scm (go-module-recursive-import): Explicitly return false when packages are not found. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-07-29Merge branch 'master' into core-updates-frozenMarius Bakke
Conflicts: gnu/packages/bioinformatics.scm gnu/packages/cmake.scm gnu/packages/curl.scm gnu/packages/emacs-xyz.scm gnu/packages/gpodder.scm gnu/packages/music.scm gnu/packages/patches/glibc-bootstrap-system.patch gnu/packages/python-xyz.scm gnu/packages/shells.scm gnu/packages/statistics.scm
2021-08-30build-system: chicken: Add 'egg-uri' procedure.Xinglu Chen
Once Chicken 6 gets released, we can just adjust the URL in the ‘egg-uri’ procedure, instead of having to change the URL for all the Chicken packages. Making things a little more future-proof. * guix/build-system/chicken.scm (egg-uri): New procedure. * guix/import/egg.scm (egg-source-url): Adjust accordingly. (egg->guix-package): Likewise. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
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-08-20guix: Add ContentDB importer.Maxime Devos
* guix/import/contentdb.scm: New file. * guix/scripts/import/contentdb.scm: New file. * tests/contentdb.scm: New file. * Makefile.am (MODULES, SCM_TESTS): Register them. * po/guix/POTFILES.in: Likewise. * doc/guix.texi (Invoking guix import): Document it. Signed-off-by: Leo Prikler <leo.prikler@student.tugraz.at>
2021-08-20import/utils: Recognise GPL-3.0-or-later and friends.Maxime Devos
* guix/import/utils.scm (spdx-string->license): Recognise GPL-N-only and GPL-N-or-later. Likewise for LGPL and AGPL. Signed-off-by: Leo Prikler <leo.prikler@student.tugraz.at>
2021-07-20import: hackage: Emit new-style package inputs.Sarah Morgensen
* guix/import/hackage.scm (hackage-module->sexp)[dependencies] [native-dependencies]: Make into a list of symbols. [maybe-inputs]: Wrap INPUTS in 'list' instead of 'quasiquote'. * tests/hackage.scm (match-ghc-foo) (match-ghc-foo-6) (match-ghc-foo-revision) (match-ghc-foo-import): Adjust accordingly. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
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-20import: gem: Emit new-style package inputs.Sarah Morgensen
* guix/import/gem.scm (make-gem-sexp): Wrap inputs in 'list' instead of 'quasiquote'. * tests/gem.scm ("gem->guix-package") ("gem-recursive-import"): Adjust accordingly. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-07-20import: egg: Emit new-style package inputs.Sarah Morgensen
* guix/import/egg.scm (egg->guix-package): Generate dependency list from a list of symbols. [egg-parse-dependency]: Return a list of symbols. [maybe-inputs]: Wrap INPUTS in 'list' instead of 'quasiquote'. * tests/egg.scm (match-chicken-foo): Adjust accordingly. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-07-19import/print: package->code: Fix license object.itd
* guix/import/print.scm (package->code)<license->code>: Update generated licence object to match record constructor. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-07-18Merge branch 'master' into core-updatesLudovic Courtès
2021-07-18import: go: Fix indentation.Maxim Cournoyer
* guix/import/go.scm: Fix indentation.
2021-07-18import: go: Upgrade go.mod parser.Sarah Morgensen
Upgrade the go.mod parser to handle the full go.mod spec, and to gracefully handle unexpected/malformed syntax. Restructure parser usage, making the parse tree available for other uses. guix/import/go.scm (parse-go.mod): Parse using (ice-9 peg) instead of regex matching for more robustness. Return a list of directives. (go.mod-directives): New procedure. (go.mod-requirements): Likewise. (go-module->guix-package): Use it. (%go.mod-replace-directive-rx): Remove unused variable. tests/go.scm (testing-parse-mod): Adjust accordingly. (go.mod-requirements) (fixture-go-mod-unparseable) (fixture-go-mod-retract) (fixture-go-mod-strings): New variables. ("parse-go.mod: simple") ("parse-go.mod: comments and unparseable lines") ("parse-go.mod: retract") ("parse-go.mod: raw strings and quoted strings") ("parse-go.mod: complete"): New tests. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2021-07-17import: go: Handle multiple go-import meta tags.Sarah Morgensen via Guix-patches via
* guix/import/go.scm (fetch-module-meta-data): Parse all go-import meta tags and return the first 'module-meta' with a matching import prefix. [go-import->module-meta]: Extract parsing into new procedure. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2021-07-17import: go: Fix parsing of pkg.go.dev licenses after site update.Sarah Morgensen via Guix-patches via
* guix/import/go.scm (go-package-licenses): Find license names in 'h2 // div // *text*' elements rather than 'h2 // *text*' elements. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2021-07-11import: elpa: Emit new-style package inputs.Ludovic Courtès
* guix/import/elpa.scm (elpa-package->sexp)[dependencies]: Turn into a list of symbols. [maybe-inputs]: Wrap in 'list' instead of 'quasiquote'.
2021-07-11import: print: Emit new-style package inputs when possible.Ludovic Courtès
* guix/import/print.scm (redundant-input-labels?): New procedure. (package->code)[package-lists->code]: Rename to... [inputs->code]: ... this. When 'redundant-input-labels?' returns true, emit label-less inputs. Adjust callers to new name. * tests/print.scm (pkg-with-inputs): Adjust accordingly.
2021-07-11import: cran: Emit new-style package inputs.Ludovic Courtès
* guix/import/cran.scm (format-inputs): Emit symbols or 'specification->package' calls. (maybe-inputs): Wrap in 'list' instead of 'quasiquote'. * tests/cran.scm ("description->package"): Adjust accordingly.
2021-07-11import: pypi: Emit new-style package inputs.Ludovic Courtès
* guix/import/pypi.scm (maybe-inputs): Wrap PACKAGE-INPUTS in 'list' instead of 'quasiquote'. (compute-inputs)[requirement->package-name/sort]: Return a list of symbols. * tests/pypi.scm ("pypi->guix-package, no wheel") ("pypi->guix-package, wheels"): Adjust accordingly.
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-07-05import: go: Replace tildes with hyphens in package names.Sarah Morgensen
Fixes <https://issues.guix.gnu.org/48111>. * guix/import/go.scm (go-module->guix-package-name): Replace tildes with hyphens. Signed-off-by: Leo Prikler <leo.prikler@student.tugraz.at>
2021-06-28import: go: Fix match-error in 'go-package-description'Sarah Morgensen via Guix-patches via
* guix/import/go.scm (go-package-description): Make sure description* is always a list, so the result is properly matched. Signed-off-by: Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
2021-06-25import: hackage: Support "common" field and importsPhilip Munksgaard
Fixes <https://issues.guix.gnu.org/48701>. * guix/import/cabal.scm (make-cabal-parser): Modify. (is-common): New variable. (lex-common): New procedure. (is-id): Modify. (eval-cabal): Modify. * tests/hackage.scm ("hackage->guix-package test cabal import") New test. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-06-21import: egg: Edit egg->guix-package docstring.Tobias Geerinckx-Rice
* guix/import/egg.scm (egg->guix-package): Edit docstring.
2021-06-19import: launchpad: Fix typo.Brice Waegeneire
* guix/import/launchpad.scm (latest-release): Rename 'origin-github-uri' to 'origin-launchpad-uri'.
2021-06-19import: launchpad: Use repository to retrieve releases.Matthew James Kraai
* guix/import/launchpad.scm (latest-released-version): Use repository instead of package name. (latest-release): Pass repository to latest-released-version. Signed-off-by: Brice Waegeneire <brice@waegenei.re>
2021-06-18import: launchpad: Gracefully handle 404s from api.launchpad.net.Ludovic Courtès
Fixes <https://bugs.gnu.org/49031>. Reported by Emad Alblueshi <emad.albloushi@gmail.com>. * guix/import/launchpad.scm (latest-released-version): Gracefully handle 'json-fetch' returning #f.
2021-06-05guix: Update to Bioconductor 3.13.Ricardo Wurmus
* guix/build-system/r.scm (bioconductor-uri): Update version. * guix/import/cran.scm (%bioconductor-version): Update.
2021-06-03import: Add CHICKEN egg importer.Xinglu Chen
* guix/import/egg.scm: New file. * guix/scripts/import/egg.scm: New file. * tests/egg.scm: New file. * Makefile.am (MODULES, SCM_TESTS): Register them. * po/guix/POTFILES.in: Likewise. * guix/scripts/import.scm (importers): Add egg importer. * doc/guix.texi (Invoking guix import, Invoking guix refresh): Document it. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
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>
2021-05-22import: hackage: Prefix licenses with 'license:'.Xinglu Chen
* guix/import/hackage.scm (string->license): Prefix the value of the license field with ‘license:’. * tests/hackage.scm (match-ghc-foo, match-ghc-foo-6, match-ghc-foo-revision): Adjust accordingly. Signed-off-by: Ludovic Courtès <ludo@gnu.org>