summaryrefslogtreecommitdiff
path: root/guix/import
AgeCommit message (Expand)Author
2022-05-22import: Add Elm importer....* guix/import/elm.scm, guix/scripts/import/elm.scm: New files. * Makefile.am (MODULES): Add them. * guix/scripts/import.scm (importers): Add "elm". * doc/guix.texi (Invoking guix import): Document Elm importer. * doc/contributing.texi (Elm Packages): Mention it. * tests/elm.scm ("(guix import elm)"): New test group. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Philip McGrath
2022-05-22import: json: Accept '#:http-fetch' in 'json-fetch'....For example, supplying 'http-fetch/cached' would enable caching. * guix/import/json.scm (json-fetch): Add '#:http-fetch' argument. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Philip McGrath
2022-04-11import: opam: Factor out source import....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> Julien Lepiller
2022-04-11import: opam: Accept tabulations....* guix/import/opam.scm (SP, SP2): Accept tabulation as whitespace. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Julien Lepiller
2022-04-04import: pypi: Use new style for the conditional unzip input....* guix/import/pypi.scm (make-pypi-sexp)<unzip>: Use new style. Maxim Cournoyer
2022-03-07import: hackage: Use SRFI-71 instead of SRFI-11....* guix/import/hackage.scm (read-cabal-and-hash) (hackage-fetch-and-hash, hackage-fetch) (hackage->guix-package): Use 'let' and 'let*' instead of 'let-values' and 'let*-values'. Ludovic Courtès
2022-03-07import: hackage: Avoid pointless use of 'compose'....* guix/import/hackage.scm (hackage-module->sexp): Unroll pointless calls to 'compose'. (hackage->guix-package): Likewise. Ludovic Courtès
2022-03-07import: cran: Return multiple values for unknown packages....Partly fixes <https://bugs.gnu.org/44115>. * guix/import/pypi.scm (cran->guix-package): Return 'values'. Signed-off-by: Ludovic Courtès <ludo@gnu.org> zimoun
2022-03-07import: elpa: Return multiple values for unknown packages....Partly fixes <https://bugs.gnu.org/44115>. * guix/import/elpa.scm (elpa->guix-package): Return values. Signed-off-by: Ludovic Courtès <ludo@gnu.org> zimoun
2022-03-07import: hackage: Return multiple values for unknown packages....Partly fixes <https://bugs.gnu.org/44115>. * guix/import/hackage.scm (hackage->guix-package): Return 'values'. Signed-off-by: Ludovic Courtès <ludo@gnu.org> zimoun
2022-03-07import: pypi: Return multiple values for unknown packages....Partly fixes <https://bugs.gnu.org/44115>. * guix/import/pypi.scm (pypi->guix-package): Return two values when PROJECT is false. Co-authored-by: Ludovic Courtès <ludo@gnu.org> zimoun
2022-03-07import: pypi: Gracefully handle missing project home page....Fixes <https://issues.guix.gnu.org/54259>. Reported by Ricardo Wurmus <rekado@elephly.net>. * guix/import/pypi.scm (pypi->guix-package): Upon 'missing-source-error?', raise '&fix-hint' only if 'project-info-home-page' returns a non-empty string. Ludovic Courtès
2022-03-06import: github: Reuse HTTP connection for the /tags URL fallback....* guix/import/github.scm (fetch-releases-or-tags): Call 'open-connection-for-uri' and reuse the same connection for the two 'http-fetch' calls. * .dir-locals.el (scheme-mode): Add 'call-with-port'. Ludovic Courtès
2022-03-06import: github: Gracefully handle rate limit exhaustion....Previously, 'guix refresh' would literally crash when the rate limit was reached due to the call to 'error'. With this change, the updater notices when the rate limit is reached and it turns itself into a no-op until the rate limit has been reset. When running "guix refresh" (with no arguments), the 'github' updater gets used until the rate limit has been reached, after which "guix refresh" automatically picks up the next valid updater, typically 'generic-git'. * guix/import/github.scm (fetch-releases-or-tags): Use 'http-fetch' directly instead of 'json-fetch' to let 'http-get-error?' exceptions through. Handle 403 errors with an 'X-RateLimit-Remaining' header. (%rate-limit-reset-time): New variable. (update-rate-limit-reset-time!, request-rate-limit-reached?): New procedures. (latest-released-version): Remove calls to 'error'. Ludovic Courtès
2022-02-08import: utils: Harden beautify-description....* 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> Alice BRENON
2022-02-02import: pypi: Display a hint upon "no source release" errors....Fixes <https://issues.guix.gnu.org/49083>. * guix/import/pypi.scm (pypi->guix-package): Upon 'missing-source-error?', raise a compound condition with a hint. Ludovic Courtès
2022-01-26import: pypi: Convert hyphens to underscores in PyPI URLs if needed....* guix/import/pypi.scm (find-project-url): New function. (make-pypi-sexp): Use find-project-url. * tests/pypi.scm (foo-json): New procedure. (test-json-1, test-json-2): Define in terms of it. ("find-project-url, with numpy", "find-project-url, uWSGI"): ("find-project-url, flake8-array-spacing") ("find-project-url, foo/goo"): New tests. Co-authored-by: Ludovic Courtès <ludo@gnu.org> Vivien Kraus
2022-01-20import/texlive: Add helper to check installed files....* guix/import/texlive.scm (files-differ?): New procedure. Ricardo Wurmus
2022-01-20guix: import/cran: Cast booleans....This is needed due to a change in file-hash*. * guix/import/cran.scm (description->package): Ensure that GIT? and HG? are booleans. Ricardo Wurmus
2022-01-16import/github: Test it....* Makefile.am (SCM_TESTS): Register new tests. * guix/import/github.scm (%github-api): New variable. (fetch-releases-or-tags): Use the new variable. * tests/import-github.scm: New file with tests. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Maxime Devos
2022-01-16import/github: Return <git-reference> objects for git-fetch origins....* guix/import/github.scm (latest-released-version): Also return the tag. (latest-release): Use this information to return <git-reference> objects when appropriate. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Maxime Devos
2022-01-13import: texlive: Remove labels from 'propagated-inputs' field....* guix/import/texlive.scm (tlpdb->package): Remove labels from 'propagated-inputs' field. * tests/texlive.scm ("texlive->guix-package"): Adjust accordingly. Ludovic Courtès
2022-01-10import: texlive: Remove more specific entries with the same prefix....* guix/import/texlive.scm (files->directories): Ensure that any more specific directory is removed if a parent directory is in the list of provided locations. Ricardo Wurmus
2022-01-09import: go: Correctly report diagnostics upon version mismatch....* guix/import/go.scm (strip-v-prefix, ensure-v-prefix) (validate-version): New procedures. (go-module->guix-package): Use 'validate-version' when defining 'version*'. Remove 'else' clause in SRFI-34 guard. Ludovic Courtès
2022-01-06upstream: Support updating and fetching 'git-fetch' origins....Updaters need to be modified to return 'git-reference' objects. This patch modifies the 'generic-git' and 'minetest' updater, but others might need to be modified as well. * guix/git.scm (git-reference->git-checkout): New procedure. * guix/upstream.scm (package-update/git-fetch): New procedure. (<upstream-source>)[urls]: Document it can be a 'git-reference'. (%method-updates): Add 'git-fetch' mapping. (update-package-source): Support 'git-reference' sources. (upstream-source-compiler/url-fetch): Split off from ... (upstream-source-compiler): ... this, and call ... (upstream-source-compiler/git-fetch): ... this new procedure if the URL field contains a 'git-reference'. * guix/import/git.scm (latest-git-tag-version): Always return two values and document that the tag is returned as well. (latest-git-release)[urls]: Use the 'git-reference' instead of the repository URL. * guix/import/minetest.scm (latest-minetest-release)[urls]: Don't wrap the 'git-reference' in a list. * tests/minetest.scm (upstream-source->sexp): Adjust to new convention. Co-authored-by: Maxime Devos <maximedevos@telenet.be> Signed-off-by: Ludovic Courtès <ludo@gnu.org> Sarah Morgensen
2022-01-06import: Factorize file hashing....* guix/import/cran.scm (vcs-file?, file-hash): Remove procedures. (description->package): Use 'file-hash*' instead. * guix/import/elpa.scm (vcs-file?, file-hash): Remove procedures. (git-repository->origin, elpa-package->sexp): Use 'file-hash* instead'. * guix/import/go.scm (vcs-file?, file-hash): Remove procedures. (git-checkout-hash): Use 'file-hash*' instead. * guix/import/minetest.scm (file-hash): Remove procedure. (make-minetest-sexp): Use 'file-hash*' instead. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Sarah Morgensen
2022-01-05import: elpa: Also check NonGNU ELPA for updates....* guix/import/elpa.scm (latest-release): Determine the repository based on the URL of the source. (package-from-gnu.org?): Rename to ... (elpa-repository): ...this; memoize. (package-from-elpa-repository?): New procedure. (%elpa-updater): Adjust accordingly. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Xinglu Chen
2021-12-18import: elpa: Support ‘upstream-name’ property....* guix/import/elpa.scm: (guix-package->elpa-name): New procedure. (latest-release): Use it. * tests/elpa.scm ("guix-package->elpa-name: without 'upstream-name' property") ("guix-package->elpa-name: with 'upstream-name' property"): Test it. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Xinglu Chen
2021-12-17import: Beautify descriptions when appropriate....* 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> Xinglu Chen
2021-12-17import: utils: Wrap lines in description....* guix/import/utils.scm (beautify-description): Use ‘fill-paragraph’; add optional ‘length’ argument. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Xinglu Chen
2021-12-05Merge remote-tracking branch 'origin/master' into core-updates-frozenRicardo Wurmus
2021-12-05import: PyPI: Validate GPG signatures when applicable....* guix/import/pypi.scm (<distribution>): Fix funny typo. (latest-release): When the distribution has a cryptographic signature, pass it along to UPSTREAM-SOURCE. Marius Bakke
2021-12-01build-system: haskell: Add ‘hackage-uri’ procedure....* guix/build-system/haskell (hackage-uri): New procedure. * guix/import/hackage.scm (hackage-module->sexp, latest-release): Use it. * 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> Xinglu Chen
2021-11-23Merge branch 'master' into core-updates-frozenLudovic Courtès
2021-11-22import: opam: Fix error on unknown field value....* guix/import/opam.scm (metadata-ref): Return #f if field is present, but its content is of unknown form. Julien Lepiller
2021-11-19import: opam: Warn instead of leave when fetching fails....* guix/import/opam.scm (opam-featch): Warn instead of leave when fetching fails. Signed-off-by: Julien Lepiller <julien@lepiller.eu> zimoun
2021-11-18import: texlive: Take different package database as optional argument....* guix/import/texlive.scm (tlpdb->package): Expect PACKAGE-DATABASE as argument. (texlive->guix-package): Accept PACKAGE-DATABASE keyword. Ricardo Wurmus
2021-11-18import: texlive: Print inputs with labels and guixified names....* guix/import/texlive.scm (tlpdb->package): Improve handling of propagated-inputs. Ricardo Wurmus
2021-11-17Merge branch 'master' into core-updates-frozenLudovic Courtès
2021-11-17import: texlive: Remove leftover 'pk'....* guix/import/texlive.scm (files->directories): Remove leftover 'pk' call. Ludovic Courtès
2021-11-17import: texlive: Load (gnu packages tex) dynamically....Fixes a bug whereby 'guix pull' would fail with this guix-extra.drv build failure: ice-9/eval.scm:163:9: ERROR: 1. &formatted-message: format: "~a: patch not found\n" arguments: ("nettle-3.5-check-_pkcs1_sec_decrypt-msg-len.patch") Reported by ekaitz on #guix. Regression introduced in 3b1a12c5bff5a0c108284d19a6982bdf663bbceb. * guix/import/texlive.scm: Autoload (gnu packages tex). fixlet Ludovic Courtès
2021-11-17import: Replace texlive importer....* guix/import/texlive.scm (fetch-sxml, sxml->package): Remove procedures. (tlpdb-file, tlpdb, files->directories, tlpdb->package): New procedures. (string->license): Add case for lpplgpl license combination. (guix-name): Remove COMPONENT argument. (texlive->guix-package): Use new procedures. (texlive-recursive-import): New procedure. * guix/scripts/import/texlive.scm (show-help, %options): Remove --archive option. (guix-import-texlive): Adjust call of texlive->guix-package. * doc/guix.texi (Invoking guix import): Update documentation. Ricardo Wurmus
2021-11-12import: utils: Add more licenses and extend their detection....* guix/import/utils.scm (spdx-string->license): Identify more licenses (CC-BY-4.0, Freetype, HPND). * guix/licenses.scm: Add a comment that mentions "MIT" so that people who grep for MIT end up there. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Attila Lendvai
2021-11-11import: print: Replace packages and origins in 'arguments'....* guix/import/print.scm (package->code)[variable-reference] [object->code]: New procedures. [package-lists->code]: Rewrite in terms of 'object->code'. Pass the 'arguments' field through 'object->code'. * tests/print.scm (pkg-with-arguments, pkg-with-arguments-source): New variables. ("package with arguments"): New test. Ludovic Courtès
2021-11-11import: print: Handle patches that are origins....* guix/import/print.scm (package->code)[source->code]: Handle patches that are origins. * tests/print.scm (pkg-with-origin-input): Add 'patches' field. (pkg-with-origin-patch, pkg-with-origin-patch-source): New variables. ("package with origin patch"): New test. Ludovic Courtès
2021-11-11import: print: Correctly handle URI lists....* guix/import/print.scm (package->code)[factorized-uri-code]: New procedure. [source->code]: Use it, and factorize URI when it's a list. * tests/print.scm (pkg-with-origin-input): Check origin URI to a list. Ludovic Courtès
2021-11-11import: print: Properly render packages with origins as inputs....* guix/import/print.scm (package->code)[source->code]: Check whether VERSION is true before calling 'factorize-uri'. [package-lists->code]: Add clause for inputs that are origins. * tests/print.scm (pkg-with-origin-input, pkg-with-origin-input-source): New variables. ("package with origin input"): New test. Ludovic Courtès
2021-11-11import: cran: Allow imports of a specific version....* guix/import/cran.scm (download): Handle the case where URL is a list. (fetch-description-from-tarball): New procedure. (fetch-description): Add #:version parameter. Honor it when REPOSITORY is 'cran. Use 'fetch-description-from-tarball' when REPOSITORY is 'bioconductor. (description->package): SOURCE-URL may now be a list. (cran->guix-package): Pass VERSION to 'fetch-description'. (cran-recursive-import): Add #:version parameter. * guix/scripts/import/cran.scm (guix-import-cran): Expect a spec rather than a mere package name. * doc/guix.texi (Invoking guix import): Document it. Ludovic Courtès
2021-11-11import: pypi: Allow imports of a specific version....* guix/import/pypi.scm (latest-version): New procedure. (latest-source-release): Rename to... (source-release): ... this. Add 'version' parameter. (latest-wheel-release): Rename to... (wheel-release): ... this. Add 'version' parameter. (pypi->guix-package): Honor 'version' parameter. (pypi-recursive-import): Add 'version' parameter and honor it. * guix/scripts/import/pypi.scm (guix-import-pypi): Expect a spec. Pass it to 'package-name->name+version'. Pass the 'version' parameter. * tests/pypi.scm ("pypi->guix-package, no wheel"): Exercise the #:version parameter. * doc/guix.texi (Invoking guix import): Document it. Ludovic Courtès
2021-11-08Merge remote-tracking branch 'origin/master' into core-updates-frozenEfraim Flashner