Commit graph

786 commits

Author SHA1 Message Date
Ricardo Wurmus
24dd164ead
import/cran: Record more invalid package names.
* guix/import/cran.scm (invalid-packages): Add more bogus names.

Change-Id: I279996db792ed1677bd596fc7a6b5c1886a0ead4
2025-05-13 14:50:05 +02:00
Ricardo Wurmus
3071ef9397
guix: Update to Bioconductor 3.21.
* guix/build-system/r.scm (bioconductor-uri): Update version in URI to 3.21.
* guix/import/cran.scm (%bioconductor-version): Update to 3.21.

Change-Id: I216576d42d013a00310cc2230e89567ffb1487a2
2025-05-12 08:53:55 +02:00
Nicolas Goaziou
af54888314
guix: texlive importer: Fix recursive calls.
* guix/import/texlive.scm (texlive-recursive-import): Make sure #:guix-name
value accepts only one argument.

Change-Id: Ie3c7f7cee7860e0d926ba95a708f16e147f4d550
2025-05-06 11:25:07 +02:00
Nicolas Goaziou
df887f679f
guix: texlive importer: Improve output for texlive-biber-ms.
* guix/import/texlive.scm (no-bin-propagation-packages): Add "biber-ms".

Change-Id: Id9dadd2194e8d59d68c395b513e4c94673c97bb2
2025-05-06 11:25:07 +02:00
Nicolas Goaziou
9192c195ff
guix: texlive importer: Fix version error when importing a package.
* guix/import/texlive.scm (texlive->guix-package): Use find-version instead of
returning the first version tag.

Change-Id: Ib144d56c034c9ce3e5a4cddcffb78be58cd05e62
2025-05-06 11:25:07 +02:00
Nicolas Goaziou
3cf3880212
guix: texlive importer: Adjust version for meta packages.
* guix/import/texlive.scm (tlpdb->package): Use (package-version
package-source) instead of %texlive-revision when importing a meta package.
* tests/texlive.scm ("texlive->guix-package, meta-package"): Test it.

Change-Id: I2a5d2eb6529dafe0c888b2a7a5a1b38af1160235
2025-05-06 11:25:06 +02:00
Morgan Smith
0772d36076
import/utils: beautify-description: Validate argument.
* guix/import/utils.scm (beautify-description): Fix broken check for
non-strings.  Add a check for empty strings.
* tests/import-utils.scm: Add two tests.

Change-Id: Idf86df02aeb850fcc8808b7c9251082c1f816656
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-04-15 10:21:33 +02:00
Maxim Cournoyer
5af2a0c390
import/pypi: Improve renaming procedure.
A package named upstream like 'tmdb-python' now gets named 'python-tmdb'
instead of 'python-tmdb-python', which is ugly and doesn't match our
convention (info "(guix) Python Modules").

* guix/import/pypi.scm (python->package-name): Turn a -python suffix into a
python- prefix.

Change-Id: I7c0227d569c0afe6b16329d7cedb51728e4365b0
2025-04-14 13:34:00 +09:00
Nicolas Graves via Guix-patches via
d3086f85e0
import: npm-binary: Handle vector of licenses.
* guix/import/npm-binary.scm (<package-revision>)[license]: Handle the
case where a vector of licenses is used.

* tests/npm-binary.scm (foo-json): Redefine as a procedure with
license keyword.
  (test-source-hash): Redefine with direct reference to test-source.
  (foo-sexp): Redefine as a procedure with license keyword.
  (npm-binary->guix-package test): Use foo-json and foo-sexp.
  (npm-binary->guix-package with multiple licenses): Add test.

Change-Id: I9d6adb2ae2820678260fed1a67e91e22feb448b8
Signed-off-by: Jelle Licht <jlicht@fsfe.org>
2025-04-13 14:19:43 +02:00
Nicolas Graves via Guix-patches via
8aca24f41e
import: npm-binary: Improve-style.
* guix/import/binary.scm (resolve-package): Use and-let*.

Change-Id: I41688c319ad4a6e73c04cb5bd4ed70365e6c7e4d
Signed-off-by: Jelle Licht <jlicht@fsfe.org>
2025-04-13 14:19:43 +02:00
Nicolas Graves via Guix-patches via
23e001d9cb
import: npm-binary: Improve npm-package->package-sexp.
* guix/import/npm-binary.scm (npm-package->package-sexp): Use record
matching.

Change-Id: If4e60162a84cb8d9694882eab933afa7028b02d7
Signed-off-by: Jelle Licht <jlicht@fsfe.org>
2025-04-13 14:19:43 +02:00
Nicolas Graves via Guix-patches via
4b47728a6b
import: npm-binary: Fix import.
This is a follow-up to 0881a674cce3af6ebe0c1c85000e2726cbe6fc54.

* guix/import/npm-binary.scm (npm-package->package-sexp): Use modify-json.
* tests/npm-binary.scm (npm-binary->guix-package test): Use modify-json.

Change-Id: I70523a890948b218c0d82d94a6edf8775521473e
Signed-off-by: Jelle Licht <jlicht@fsfe.org>
2025-04-13 14:19:43 +02:00
Evgeny Pisemsky
ea6f4ee097
import: pypi: Fix null at home-page.
Reported in #73314: PyPI importer gives null at home-page for some
packages.

* guix/import/pypi.scm (<project-info>): [home-page]: Apply
NON-EMPTY-STRING-OR-FALSE to make it consistence with similar fields,
covering the case when PyPI's JSON file metadata file does not have the
information.

Change-Id: I501582988cf58b00bd201c12ad47e9b095988fae
Reported-by: Evgeny Pisemsky <mail@pisemsky.site>
Reviewed-by: Simon Tournier <zimon.toutoune@gmail.com>
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-04-01 08:55:37 +01:00
Maxim Cournoyer
f13f076968
refresh: Add support for partial target versions.
* guix/import/utils.scm (find-version): New procedure.
* guix/scripts/refresh.scm (<update-spec>) [partial?]: New field.
(update-spec-partial?): New accessor.
(update-spec): Add a PARTIAL? optional argument.
(update-specification->update-spec) <update-spec>: Call with its new PARTIAL?
optional argument when FALLBACK-VERSION is provided, i.e. when
'--target-version' was used.
(update-package): Remove the PACKAGE and VERSION positional arguments, and
replace them with UPDATE-SPEC.  Update doc.  Call `package-update' with its
new #:partial-version? argument.
(check-for-package-update) <package-latest-release>: Pass the new
 #:partial-version? argument to it.
(guix-refresh) <update-package>: Adjust call accordingly.
(show-help): Udate doc.
* guix/upstream.scm (package-latest-release): Add #:partial-version? argument,
and apply it to the importer call.
(package-update): Add #:partial-version?> argument.  Update doc.  Pass it to
the `package-latest-release' call.
* guix/gnu-maintenance.scm (rewrite-url): Add #:partial-version? argument.
Update doc.  Crawl URL for newer compatible versions when provided.
(import-html-release): Add #:partial-version? argument, and pass it to the
`rewrite-url' call.  Use `find-version' to find the best version.
(import-release, import-ftp-release, import-gnu-release)
(import-release*): Add #:partial-version? argument and honor it.
(import-html-updatable-release): Add #:partial-version? argument, and pass it
to the `import-html-release' call.
* guix/import/gnome.scm (import-gnome-release)
<#:partial-version?>: Add new argument and honor it.
* guix/import/texlive.scm (latest-texlive-tag): Rename to...
(texlive-tags): ... this, and have it return all tags.
(texlive->guix-package): Adjust accordingly.
(latest-release): Add a #:partial-version? argument.  Update doc.
* guix/import/stackage.scm (latest-lts-release): New #:partial-version?
argument.
* guix/import/pypi.scm (import-release): New #:partial-version? argument; pass
it to `pypi-package->upstream-source'.
* guix/import/opam.scm (latest-release): New #:partial-version? argument.
* guix/import/minetest.scm (latest-minetest-release): New #:partial-version?
argument.
(pypi-package->upstream-source): New #:partial-version? argument.  Update doc.
* guix/import/launchpad.scm (latest-released-version): Rename to...
(release-versions): ... this, making it return all versions.
(import-release) <#:partial-version?>: New argument.
* guix/import/kde.scm (import-kde-release)
<#:partial-version?>: New argument.  Update doc.  Refactor to honor argument.
* guix/import/hexpm.scm (lookup-hexpm): Update doc.
(hexpm-latest-release): Rename to...
(hexpm-releases): ... this; return all release strings.
(hexpm->guix-package): Adjust accordingly.
(import-release): Add and honor a #:partial-version? argument.  Update doc.
* guix/import/hackage.scm (import-release): New #:partial-version? argument.
* guix/import/cpan.scm (latest-release): New #:partial-version? argument.
* guix/import/crate.scm (max-crate-version-of-semver): Improve doc.
(import-release): Add a #:partial-version? argument and honor it.
* guix/import/egg.scm (find-latest-version): Rename to...
(get-versions): ... this, returning all versions.
(egg-metadata): Adjust accordingly.
(egg->guix-package): Likewise.
(import-release): Add a new #:partial-version? argument and honor it.
* guix/import/elpa.scm (latest-release):  New #:partial-version? argument.
* guix/import/gem.scm (get-versions): New procedure.
(import-release): Add a new #:partial-version? argument and honor it.
* guix/import/git.scm (version-mapping): Update doc; streamline a bit.
(latest-tag): Rename to...
(get-tags): ... this, dropping the #:version keyword and returning the complete
tags alist.  Update doc.
(latest-git-tag-version): Rename to...
(get-package-tags): ... this, returning the complete tags alist of the
package.  Update doc.
(import-git-release): Add a new #:partial-version? argument and honor it.
Update doc.
* guix/import/github.scm (latest-released-version): Rename to...
(get-package-tags): ... this, returning all tags.  Update doc.
(import-release): Add a new #:partial-version? argument and honor it.
* guix/import/cran.scm (latest-cran-release)
(latest-bioconductor-release): Add #:partial-version? argument.
* guix/import/composer.scm (latest-version): Delete procedure.
(composer-fetch): Add #:partial-version? keyword and honor it.  Update doc.
(import-release): Likewise.
* guix/import/test.scm (import-release): Add #:partial-version? argument.
* tests/guix-refresh.sh: Add test.
* tests/gem.scm (test-foo-versions-json): New variable.
(package-latest-release): Mock new URL.
* tests/import-git.scm (latest-git-tag-version): New procedure.
* tests/gnu-maintenance.scm (libuv-dist-html)
(libuv-dist-1.46.0-html, libuv-dist-1.44.2-html)
(libuv-html-data): New variables.
(mock-http-fetch/cached): New procedure.
("rewrite-url, without to-version"): Rewrite using the above.
("rewrite-url, partial to-version"): New test.
* doc/guix.texi <"Invoking guix refresh">: Update doc.

Series-to: 75871@debbugs.gnu.org
Change-Id: I092a58b57ac42e54a2fa55e7761e8c6993af8ad4
2025-02-28 13:36:44 +09:00
Maxim Cournoyer
79a46d6537
gnupg: Automatically fallback to 'always policy when non-interactive.
Previously to this change, the 'guix refresh' download
policy (--key-download)would default to 'interactive', which would throw a
backtrace when guix was invoked with its stdin not connected to a peusdo
terminal (tty).  This change makes the new default value 'auto' use
interactive only in an interactive environment, with 'always' used as
fallback.

* doc/guix.texi (Invoking guix refresh): Adjust doc.
* etc/completion/fish/guix.fish: Adjust accordingly.
* etc/completion/zsh/_guix (_guix_list_installed_packages): Likewise.
* guix/gnupg.scm (gnupg-verify*): Change default #:key-download argument value
to 'auto.  Update doc.  Validate argument.  Raise an error in case read-line
returns #<eof>.
* guix/import/gnu.scm (gnu-package->sexp): <#:key-download>: Change default
value to 'auto.
* guix/import/gnu.scm (gnu->guix-package): <#:key-download>: Likewise.
* guix/scripts/import/gnu.scm (%options): Add "auto" to accepted
--key-download values.
(%default-options): Set default key-download option to the 'auto value.
(show-help): Update doc.
* guix/scripts/refresh.scm (show-help): Update doc.
(update-package) <#:key-download>: Change default value to 'auto.  Update doc.
* guix/upstream.scm (download-tarball): <#:key-download>: Likewise.
(package-update): Likewise.

Change-Id: Id1ca8fd6d453ca4bc5b372534445e3beab9133a8
Fixes: https://issues.guix.gnu.org/76112
Reviewed-by: Ludovic Courtès <ludo@gnu.org>
2025-02-28 13:36:44 +09:00
Efraim Flashner
e582903481
guix: Fix some misspellings.
Change-Id: Ia036217dadc1624c5f0d59fd44f646d46315c1f3
2025-02-19 11:28:40 +02:00
Ekaitz Zarraga
b609498bcf
guix: import: allow empty description
* guix/import/utils.scm (beautify-description)[new-words]: Don't fail
  the `match` when the package has an empty description.

Change-Id: I23e9cfeae1da98bb8705fcfc8ff81906d272d72e
2025-02-16 11:11:15 +01:00
Ricardo Wurmus
729bfe3689
import/utils: Wrap terms starting with @ in descriptions.
* tests/import-utils.scm ("beautify-description: escape @stuff"): Add test.
* guix/import/utils.scm (beautify-description): Also wrap terms in @code{...}
that start with an escaped @.

Change-Id: I424f626635b821af6f4c16c97b8724cdaf99de45
2025-02-11 22:13:10 +01:00
Ricardo Wurmus
36c9996b75
import/utils: Escape @ in synopses.
* tests/import-utils.scm ("beautify-synopsis: escape @"): Add tests.
* guix/import/utils.scm (beautify-synopsis): Replace @ with @@.

Change-Id: I011d61687a098b5b50f44c1acd6f0a4eea06e9f0
2025-02-11 22:13:10 +01:00
Herman Rimm
6b55b971c8
import: crate: Comment out missing dependencies.
* guix/import/crate.scm (package-names->package-inputs): Emit comments.
(make-crate-sexp): Make input into comment if missing.
(crate->guix-package): Take #:mark-missing? argument.
[dependency-name+missing+version+yanked]: Mark as missing.  Rename from
dependency-name+version+yanked.
[sort-map-dependencies]: Adjust.
[remove-missing+yanked-info]: Remove missing info.  Rename from
remove-yanked-info.
* guix/scripts/import/crate.scm (show-help): Explain --mark-missing.
(%options): Add mark-missing option.
(guix-import-crate): Pass mark-missing option as #:mark-missing?.
* doc/guix.texi (Invoking guix import): Document --mark-missing.
* tests/crate.scm ("crate->guix-package-marks-missing-packages"): Add
test.

Change-Id: I065d394e1c04fdc332b8f7f8b9fcbd87c14c6512
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-02-09 18:20:41 +01:00
Herman Rimm
aca2ac3e3d
import: crate: Refactor find-package-version.
* guix/import/crate.scm (crate->guix-package)[find-package-version]:
Move to top-level.
[dependency-name+version+yanked]: Adjust.
(find-package-version): Take allow-yanked? argument.  Use (let) loop,
match, if instead of map, filter, min-element.

Change-Id: I1d05f55a027241e7c5f62cc98a50a09b5639bdcf
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2025-01-26 09:59:57 +02:00
Herman Rimm
17477101dd
import: crate: Fix find-package-version.
Fixes bug from 5ce1512b0f, where the
earliest existing package (if any) was returned instead.  See also:

https://issues.guix.gnu.org/68346#3-lineno97

* guix/import/crate.scm (crate->guix-package)[find-package-version]:
Invert boolean expression.

Change-Id: I1d05f55a027241e7c5f62cc98a50a09b5639bdcf
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2025-01-26 09:59:22 +02:00
Sharlatan Hellseher
f0adcca9db
import/go: Fix #:go formation.
Reported by MSavoritias <email@msavoritias.me> in #74992 "guix import go
package definition is not valid".  This change fixes it: instead of
"#:go 1.22" will produce "#:go go-1.22".

* guix/import/go.scm (go-module->guix-package): Fix format for #:go key
argument.

Change-Id: I9db0688b8e2970f5e90b415966d39b45505b7c8e
2025-01-12 19:39:39 +00:00
宋文武
e74040b73c
import: git: Do not search pre-release words in tag prefix.
This fixes tags like 'xfce4-dev-tools-4.20.0'.

* tests/import-git.scm ("latest-git-tag-version: prefix contains pre-release
words"): New test.
* guix/import/git.scm (latest-tag): Don't filter out pre-releases tags.
(version-mapping): Filter out pre-releases tags from versions.
* gnu/packages/xfce.scm (garcon, thunar-archive-plugin, xfce4-dev-tools):
Remove FIXME comments for the 'generic-git' updater.

Change-Id: I7683200fa451d7fad153aa08fa9d5761688de01d
2025-01-12 14:18:03 +08:00
Efraim Flashner
66a1a1fe22
Merge remote-tracking branch 'origin/rust-team'
Change-Id: Ib21a0ea59fb2ae4e802552057227c636f24a6f8c
2025-01-09 10:54:36 +02:00
Herman Rimm
c62d5e77e7
import: texlive: Use downstream-package-name.
* guix/import/texlive.scm (texlive-recursive-import): Use
downstream-package-name.

Change-Id: Ic4ce685e8fc36f0b72797d3ce2d5bc89fc17b7ea
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-01-06 15:59:21 +01:00
Simon Tournier
57fa06352e
import: go: Warn instead of error out when Git fails.
* guix/import/go.scm (git-checkout-hash): Return some hash although updating
the cache fails.

Change-Id: I87e7701023a5f76f5d1494827473616e6a1275aa
2025-01-06 12:15:17 +01:00
Efraim Flashner
67950f46ef
import: crate: Make it clearer when a crate has been yanked.
* guix/import/crate.scm (make-crate-sexp): If a crate has been yanked
then adjust the returned package's source file-name with 'yanked' as
part of the name.

Change-Id: Ib3d16ff2e89a75a7a0755c1f336abadba0189666
2025-01-06 12:14:08 +02:00
Herman Rimm
f6b85da0b9
import: utils: Move downstream-package-name to (guix utils).
* guix/import/elpa.scm: Import (guix utils).
* guix/import/texlive.scm: Import (guix utils).
* guix/import/utils.scm (downstream-package-name): Move to ...
* guix/utils.scm (downstream-package-name): ... here.

Change-Id: If56a452f64ed06c8bb06a96a283a5067cb54d602
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-12-30 13:49:57 +01:00
Herman Rimm
01c4e02e33
import: texlive: Remove guix-name.
* guix/import/texlive.scm (guix-name): Remove.
(list-upstream-inputs, tlpdb->package): Use downstream-package-name.

Change-Id: I8f04d27a42f762c5604cb8874042fabbbe1e9873
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-12-30 13:49:57 +01:00
Herman Rimm
a805c60151
import: utils: Rename guix-name to downstream-package-name.
* guix/import/cran.scm (cran-guix-name): Adjust.
* guix/import/crate.scm (crate-name->package-name): Adjust.
* guix/import/elpa.scm (elpa-guix-name): Adjust.
* guix/import/npm-binary.scm (npm-name->name): Adjust.
* guix/import/utils.scm (downstream-package-name): Add procedure.
[description]: Use definite article, uppercase 'name' argument.
(guix-name): Deprecate.

Change-Id: I374892be18fbeaae1bc051b8d0c79ca4c33ed8c4
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-12-30 13:49:57 +01:00
Ludovic Courtès
4ebc1aba19
import: pypi: Preserve order of dependencies from ‘requires.txt’ and wheel.
Fixes a regression introduced in
a3ffb920f1 and revealed by
‘tests/pypi.scm’.

* guix/import/pypi.scm (parse-requires.txt): Reverse REQUIRED-DEPS and
TEST-DEPS when returning.
(parse-wheel-metadata): Likewise.

Change-Id: I2c374505052f0d9e46e7cc1c11d3e97ab522e068
2024-12-30 11:01:54 +01:00
Lars-Dominik Braun
a3ffb920f1
import: pypi: Move deduplication to final processing step.
* guix/import/pypi.scm (parse-requires.txt): Remove deduplication.
(parse-wheel-metadata): Remove deduplication.
(compute-inputs): Instead do it here on all the collected inputs.

Change-Id: I2504cc693e9bf2e4cc44fd37b5823904dbaaa925
Reviewed-by: Ludovic Courtès <ludo@gnu.org>
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2024-12-16 19:28:44 +00:00
Lars-Dominik Braun
c904350a81
import: pypi: Default to setuptools as build system input.
* guix/import/pypi.scm (guess-requirements): Default to setuptools if
pyproject.toml does not exist.

Change-Id: I600bd0a44342847878e3a2a7041bd7e7c7d30769
Reviewed-by: Ludovic Courtès <ludo@gnu.org>
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2024-12-16 19:28:34 +00:00
Lars-Dominik Braun
d7890af335
import: pypi: Add python-wheel to native inputs if setuptools is used.
* guix/import/pypi.scm (compute-inputs): Add missing python-wheel if
necessary.

Change-Id: Iedad213a6684856e48349289c4d9beba953f396b
Reviewed-by: Ludovic Courtès <ludo@gnu.org>
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2024-12-16 19:28:08 +00:00
Lars-Dominik Braun
8bb3bb19c2
import: pypi: Support extracting dependencies from pyproject.toml.
* guix/import/pypi.scm (guess-requirements): Support extracting
dependencies from pyproject.toml.
* tests/pypi.scm: ("pypi->guix-package, no requires.txt, but wheel."):
Renamed from "pypi->guix-package, wheels", remove requires.txt file,
because the current implementation cannot detect invalid files.
("pypi->guix-package, no usable requirement file, no wheel."): Renamed
from "pypi->guix-package, no usable requirement file.".
(test-pyproject.toml): New variable.
("pypi->guix-package, no wheel, no requires.txt, but pyproject.toml"):
New test.
("pypi->guix-package, no wheel, but requires.txt and pyproject.toml"):
Ditto.

Change-Id: Ib525750eb6ff4139a8209420042b28ae3c850764
Reviewed-by: Ludovic Courtès <ludo@gnu.org>
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2024-12-16 19:27:43 +00:00
Maxim Cournoyer
97dccd6449
import/pypi: Fix project URL discovery when the project name contains periods.
* guix/import/pypi.scm (find-project-url): Add an extra candidate rewriting
periods to underscores in the project name.

Change-Id: I7e3afc63bcc87fafa40fcff2b394b90633d23067
2024-12-16 09:54:23 +09:00
Maxim Cournoyer
2c9867fde5
import/utils: Replace '.' by '-' in snake-case procedure.
* guix/import/utils.scm (snake-case): Replace '.' by '-'.  Update doc.

Change-Id: I46f2e066c82849627464d0690549288ebbc4e926
Reviewed-by: Ludovic Courtès <ludo@gnu.org>
2024-12-16 09:54:23 +09:00
Ricardo Wurmus
8c97926a01
import/cran: Enhance import pattern.
* guix/import/cran.scm (import-pattern): Comment; capture direct namespace
imports as well as silent imports.

Change-Id: Ia54035d6f230d695aa950adb3e691cbce4f2d416
2024-12-03 17:00:01 +01:00
Ricardo Wurmus
1261bf83b8
import/cran: Also add set-HOME phase when R.cache exists.
* guix/import/cran.scm (phases-for-inputs): Add "R.cache" to the list.

Change-Id: Ia65beb7cd535de10b024d108a97db0169045fe1f
2024-12-03 17:00:01 +01:00
Ricardo Wurmus
ddb2a9572e
import/cran: Recurse for all R packages.
* guix/import/cran.scm (description->package): Return all R packages, not just
all propagated inputs.

Change-Id: Id1c6ded681e25e29dcef8f8aed1a6be47b36c4a0
2024-12-03 16:59:56 +01:00
Ricardo Wurmus
f0a93b18b4
import/cran: Restore memoization for download procedure.
Fixes <https://issues.guix.gnu.org/44256>.

* guix/import/cran.scm (cran-package-inputs): Avoid passing "#:method #f", so
that there is only one memoization key in the default case.
(fetch-description): Use the full list returned by BIOCONDUCTOR-URI.

Change-Id: I532812b14f4e4d9542bfb9248555be1b09f7d92f
2024-12-03 16:59:56 +01:00
Ricardo Wurmus
eac2074a6d
import/cran: Detect test and vignette inputs.
* guix/import/cran.scm (import-pattern): New variable.
(needed-test-inputs-in-directory, needed-vignettes-inputs-in-directory): New
procedures.
(source-dir->dependencies): Add native inputs from result of
NEEDED-TEST-INPUTS-IN-DIRECTORY and NEEDED-VIGNETTES-INPUTS-IN-DIRECTORY.
(cran-package-inputs): Clean up and delete duplicates from source-derived
inputs.

Change-Id: Id139c144fc6e866e4aaf8f05201b0d2687744fb6
2024-12-03 16:59:54 +01:00
Ricardo Wurmus
4a06a1aca3
import/cran: Set HOME when R.rsp is among inputs.
* guix/import/cran.scm (phases-for-inputs): Also add 'set-HOME phase when
R.rsp is among the inputs.

Change-Id: Ib00d981cc623da8ec487086913570f937a76aeb5
2024-12-03 16:59:54 +01:00
Ricardo Wurmus
8bee3a5910
import: utils: Wrap function names in @code.
* guix/import/utils.scm (beautify-description): Adjust to include "()" in
@code wrapper.
* tests/import-utils.scm ("beautify-description: wrap function names in
@code"): New test.

Change-Id: I2b58728571a18ce8302c1b6f98b0c16dbe5931c3
2024-12-03 16:59:54 +01:00
Ricardo Wurmus
d72df9bebb
guix: Update to Bioconductor 3.20.
* guix/build-system/r.scm (bioconductor-uri): Update URL.
* guix/import/cran.scm (%bioconductor-version): Update.

Change-Id: I66a02957991bcfe15dcf56806244e56222c3f1c3
2024-12-03 16:57:22 +01:00
Ricardo Wurmus
ed1266ea8c
import/crate: Fix typo.
guix/import/crate.scm (lookup-crate): Fix typo in docstring.

Change-Id: I5492387b93b27ab42999d5984fa7f02e8bee11e2
2024-12-02 10:28:59 +01:00
Ludovic Courtès
da9c3195ed
import: gnome: Keep going upon HTTP errors.
* guix/import/gnome.scm (import-gnome-release): Do not re-raise
condition C, emit a warning instead.

Change-Id: I9a7c337a17d1f7ed4677398e7b0f383befca7d74
2024-12-01 20:14:15 +01:00
Ekaitz Zarraga
294386674c
import: egg: Fix recursive imports.
Fixes #74565.

* guix/import/egg.scm (egg-recursive-import) <#:repo->guix-package>: Add
`#:allow-other-keys`.

Change-Id: I97ad2d1aaf664c8dc18965eb2a497aa0a76062d7
2024-11-28 19:44:54 +01:00
zero@fedora
2d3bf6a2a3
import: cpan: Support recursive imports.
* guix/import/cpan.scm (cpan-module->sexp): Return two values.
(cpan->guix-package): Add #:version.  Return two values.
(cpan-recursive-import): New procedure.
* guix/scripts/import/cpan.scm (show-help, %options): Add ‘-r’.
(guix-import-cpan): Adjust accordingly.

Change-Id: Id167c7ddd079f4e04650ce7cc1692a9de36cd8fe
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-11-23 16:23:19 +01:00