summaryrefslogtreecommitdiff
path: root/guix/import
AgeCommit message (Collapse)Author
2021-12-18import: elpa: Support ‘upstream-name’ property.Xinglu Chen
* 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>
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-12-17import: utils: Wrap lines in description.Xinglu Chen
* guix/import/utils.scm (beautify-description): Use ‘fill-paragraph’; add optional ‘length’ argument. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-12-05Merge remote-tracking branch 'origin/master' into core-updates-frozenRicardo Wurmus
2021-12-05import: PyPI: Validate GPG signatures when applicable.Marius Bakke
* guix/import/pypi.scm (<distribution>): Fix funny typo. (latest-release): When the distribution has a cryptographic signature, pass it along to UPSTREAM-SOURCE.
2021-12-01build-system: haskell: Add ‘hackage-uri’ procedure.Xinglu Chen
* 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>
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-11-18import: texlive: Take different package database as optional argument.Ricardo Wurmus
* guix/import/texlive.scm (tlpdb->package): Expect PACKAGE-DATABASE as argument. (texlive->guix-package): Accept PACKAGE-DATABASE keyword.
2021-11-18import: texlive: Print inputs with labels and guixified names.Ricardo Wurmus
* guix/import/texlive.scm (tlpdb->package): Improve handling of propagated-inputs.
2021-11-17Merge branch 'master' into core-updates-frozenLudovic Courtès
2021-11-17import: texlive: Remove leftover 'pk'.Ludovic Courtès
* guix/import/texlive.scm (files->directories): Remove leftover 'pk' call.
2021-11-17import: texlive: Load (gnu packages tex) dynamically.Ludovic Courtès
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
2021-11-17import: Replace texlive importer.Ricardo Wurmus
* 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.
2021-11-12import: utils: Add more licenses and extend their detection.Attila Lendvai
* 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>
2021-11-11import: print: Replace packages and origins in 'arguments'.Ludovic Courtès
* 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.
2021-11-11import: print: Handle patches that are origins.Ludovic Courtès
* 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.
2021-11-11import: print: Correctly handle URI lists.Ludovic Courtès
* 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.
2021-11-11import: print: Properly render packages with origins as inputs.Ludovic Courtès
* 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.
2021-11-11import: cran: Allow imports of a specific version.Ludovic Courtès
* 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.
2021-11-11import: pypi: Allow imports of a specific version.Ludovic Courtès
* 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.
2021-11-08Merge remote-tracking branch 'origin/master' into core-updates-frozenEfraim Flashner
2021-11-07guix: Upgrade to Bioconductor 3.14.Ricardo Wurmus
* guix/build-system/r.scm (bioconductor-uri): Bump Bioconductor version to 3.14. * guix/import/cran.scm (%bioconductor-version): Same.
2021-11-07import: egg: Allow imports of a specific version.Xinglu Chen
* guix/import/egg.scm (eggs-repository): Change URL. (egg-metadata): Accept optional #:version keyword argument. (egg->guix-package): Accept ‘version’ argument. (egg-recursive-import): Add ‘version’ argument and honor it. * guix/scripts/import/egg.scm (guix-import-egg): Parse a specification instead of just a package name. * doc/guix.texi (Invoking guix import): Document it. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-11-06import: elpa: Work around Guile 3.0.[5-7] compiler bug.Ludovic Courtès
Fixes <https://issues.guix.gnu.org/49006>. Reported by Xinglu Chen <public@yoctocell.xyz>. * guix/import/elpa.scm (elpa-package->sexp)[melpa-recipe]: Add call to 'identity'.
2021-11-03Merge remote-tracking branch 'origin/master' into core-updates-frozenEfraim Flashner
2021-11-02import: stackage: Update to release 18.14.Lars-Dominik Braun
* guix/import/stackage.scm (%default-lts-version): Update to 18.14.
2021-10-31Merge remote-tracking branch 'origin/master' into core-updates-frozenEfraim Flashner
2021-10-28import: cran: Use the standard diagnostic procedures.Ludovic Courtès
* guix/import/cran.scm (bioconductor-packages-list) (fetch-description): Use 'warning' instead of 'format'.
2021-10-18Merge remote-tracking branch 'signed/master' into core-updatesMathieu Othacehe
2021-10-15import: pypi: Remove leftover 'pk' call.Ludovic Courtès
This is a followup to 7b75f90c5b0da896c486cae23d19d43e2a03bb56. * guix/import/pypi.scm (make-pypi-sexp)[maybe-upstream-name]: Remove leftover 'pk' call.
2021-10-15import: pypi: Support 'input-changes'.Xinglu Chen
* guix/import/pypi.scm (latest-release): Specify the ‘input-changes’ field. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2021-10-12Merge remote-tracking branch 'origin/master' into core-updates-frozen.Mathieu Othacehe
2021-10-08Revert the #51061 patch series for now.Tobias Geerinckx-Rice
This reverts commits f63c79bf7674df012517f8e9148f94c611e35f32 ..f86f7e24b39928247729020df0134e2e1c4cde62 for more chillax reviewing. See <https://issues.guix.gnu.org/51061#32>.
2021-10-08import: hackage: Support mirror:// URLsLars-Dominik Braun
* guix/import/hackage.scm (guix-package->hackage-name): Support mirror://-style URI’s. (hackage-package?): Ditto.
2021-10-08import: stackage: Support input changes.Lars-Dominik Braun
* guix/import/stackage.scm (latest-lts-release): Rename package to pkg to avoid name conflict and add input-changes.
2021-10-08import: hackage: Update GHC’s standard libraries.Lars-Dominik Braun
* guix/import/hackage.scm (ghc-standard-libraries): Add exceptions library.
2021-10-08import: stackage: Update %default-lts-version to 18.10.Lars-Dominik Braun
* guix/import/stackage.scm (%default-lts-version): Update to 18.10.
2021-10-07import: Add hex.pm importer.Hartmut Goebel
hex.pm is a package repository for Erlang and Elixir. * guix/scripts/import.scm (importers): Add "hexpm". * guix/scripts/import/hexpm.scm, guix/import/hexpm.scm, guix/hexpm-download.scm: New files. * guix/import/utils.scm (source-spec->object): Add "hexpm-fetch" to list of fetch methods. * guix/upstream.scm (package-update/hexpm-fetch): New function. (%method-updates) Add it. * Makefile.am: Add them.
2021-10-07import: crate: Gracefully handle missing license info.Ludovic Courtès
Fixes <https://issues.guix.gnu.org/51048>. Reported by Michael Zappa <me@michzappa.com>. * guix/import/crate.scm (<crate-version>)[license]: Translate 'null to #f. (make-crate-sexp): Handle LICENSE = #f.
2021-10-04import: go: Recognize major version suffixes.Sarah Morgensen
Do not treat major version suffixes (such as "/v3") as repository subdirectories. See <https://golang.org/ref/mod#major-version-suffixes>. * guix/import/go.scm (go-module->guix-package): When determining the unpack path, compare 'root-module-path' to 'module-path-sans-suffix' instead of 'module-path'. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-10-04import: go: Handle extra whitespace in "go-import" meta tags.Sarah Morgensen
Some packages sites use extra whitespace in the content portion of <meta name="go-import" ...> tags, so handle that. Example: <https://k8s.io/api?go-get=1> * guix/import/go.scm (fetch-module-meta-data)[go-import->module-meta]: Use 'string-tokenize' instead of 'string-split'. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-10-02import/minetest: Define an updater for mods on ContentDB.Maxime Devos
Only detecting updates is currently supported. To actually perform the uppdates, a patch like <https://issues.guix.gnu.org/50072#4> is required. * guix/import/minetest.scm (version-style,minetest-package?,latest-minetest-release): New procedures. (%minetest-updater): New updater. * tests/minetest.scm (upstream-source->sexp,expected-sexp,example-package): New procedure. (test-release,test-no-release): New macro's. ("same version","new version (dotted)","new version (date)") ("new version (git -> dotted)","dotted->date","date->dotted") ("no commit informaton, no new release") ("minetest is not a minetest mod") ("technic is a minetest mod") ("upstream-name is required"): New tests. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
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>