Verifies that when only one of multiple license strings is recognized,
the resulting list has the correct license followed by one instance
of the symbol 'unknown-license!
* tests/import/gem.scm (test-mixed-licenses-json): New fixture.
("gem->guix-package with mixed valid and gibberish licenses"):
New test.
Change-Id: I33a003d50ba20d30360b52c448ae28ad9d37233b
Merges: https://codeberg.org/guix/guix/pulls/8276
Reviewed-by: Carlo Zancanaro <carlo@zancanaro.id.au>
Signed-off-by: Nguyễn Gia Phong <cnx@loang.net>
Exercises the map in 4f78d33f0 where every license
string is unrecognized, so the resulting package should have
(license (list unknown-license! unknown-license!)).
* tests/import/gem.scm (test-gibberish-licenses-json): New fixture.
("gem->guix-package with gibberish license identifiers"): New test.
Change-Id: I85cbb0574f9393749a84f4cf5818d4c1083a8476
Reviewed-by: Carlo Zancanaro <carlo@zancanaro.id.au>
Signed-off-by: Nguyễn Gia Phong <cnx@loang.net>
Similar to what was done for the crate importer in 263a267b75.
* guix/import/gem.scm (string->license): Try spdx-string->license first,
returning symbols instead of license objects. Fall back
to the existing hardcoded table for non-SPDX strings.
(make-gem-sexp): Remove license->symbol calls;
licenses are now symbols directly.
* tests/import/gem.scm (test-spdx-json): New fixture.
("gem->guix-package with SPDX license identifiers"): New test.
Change-Id: I5fa0ebdfd3a3393eab5ef0554ed09887a89bc107
Reviewed-by: Carlo Zancanaro <carlo@zancanaro.id.au>
Signed-off-by: Nguyễn Gia Phong <cnx@loang.net>
The RubyGems API returns "homepage_uri": null for gems with no homepage.
guile-json parses JSON null as the Guile symbol 'null', which passes
through into the generated package sexp as (home-page null)—an unbound
variable error at evaluation time.
* tests/import/gem.scm (test-no-homepage-json): New fixture.
("gem->guix-package, bald homepage_uri"): New test.
* guix/import/gem.scm (non-empty-string-or-false): New procedure.
(<gem>)[home-page]: Use it.
* guix/import/utils.scm (non-empty-string-or-false):
New exported procedure, moved to here...
* guix/import/gem.scm (non-empty-string-or-false): ...from here...
* guix/import/pypi.scm (non-empty-string-or-false): ...and here.
Change-Id: If8f2ca32834d762c753797067ef87937503ff9f9
Reviewed-by: Carlo Zancanaro <carlo@zancanaro.id.au>
Signed-off-by: Nguyễn Gia Phong <cnx@loang.net>
After this commit, when both modules are imported:
- if pyproject is imported before, the warning is 'pypi-uri' is
deprecated, use '(@ (guix build-system pyproject) pypi-uri)' instead
- if python is imported before, the warning is `pypi-uri' imported from
both (guix build-system python) and (guix build-system pyproject)
This seems convenient enough to warn for deprecation in the short term,
while avoiding any breaking changes.
* guix/build-system/pyproject.scm (pypi-uri): Move the procedure from
(guix build-system python) here.
* guix/build-system/python (pypi-uri): Drop definition, import it
from (guix build-system pyproject) and deprecate it.
* gnu/packages/openldap.scm: Reorder modules to get the right warning.
* gnu/packages/pypy.scm: Likewise.
* gnu/packages/*.scm : Drop module (guix build-system python).
* tests/import/pypi.scm: Likewise.
Merges: https://codeberg.org/guix/guix/pulls/7448
Change-Id: Ib42f53bc545052eb7918a25afe9db6d5fc2cb834
Reviewed-by: Nguyễn Gia Phong <cnx@loang.net>
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
* guix/import/utils.scm (tarball-url->git-repository-url): New procedure.
* guix/scripts/style.scm (url-fetch->git-fetch)[transform-source]: Add
‘repository-url’ parameter.
Use ‘tarball-url->git-repository-url’ when ‘home-page’ is not a Git URL.
(transform-to-git-fetch): Rename ‘home-page’ to ‘repository-url’.
* tests/import/utils.scm ("tarball-url->git-repository-url, guile"): New test.
* tests/style.scm ("url-fetch->git-fetch, mirror:// URL"): New test.
Change-Id: I4f8ca7c67a58f917d69380678b62c00962b0f9cd
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* guix/import/cpan.scm (cpan-module->sexp): Fill in description field in
template.
* tests/import/cpan.scm (test-source): Update test to account for change in
description text.
Change-Id: I3bc3e4c2cc90f7a1f1f0d56e9213b6a1d0b8e841
Signed-off-by: jgart <jgart@dismail.de>
* guix/import/cran.scm (import-pattern): Also match on single quotes.
(needed-vignettes-inputs-in-directory): Use EXTRACT-IMPORTS.
* tests/import/cran.scm: Add test.
Change-Id: Ie69027992519bd8d886860346f4a359514d8e822
* guix/import/pypi.scm (unzip-command): Use invoke instead of
system*.
(read-wheel-metadata): Adapt accordingly.
(guess-requirements-from-wheel): Improve readability.
* tests/import/pypi.scm (parse-wheel-metadata): Add test (used to
isolate the issue in another test).
(pypi->guix-package, no wheel): Remove python-wheel from the result.
(pypi->guix-package, no usable requirement file, no wheel.): Likewise.
(pypi->guix-package, package name contains \"-\" followed by digits):
Likewise.
(package-latest-release): Likewise.
(pypi->guix-package, no requires.txt, but wheel): Likewise. Also
improve readability.
Change-Id: I49e6ae549437a068acd85fa0f13471bc0af5a399
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
This distinguishes them from manually added ones. When committing changes,
these ‘TODO REVIEW’ comments should be addressed and removed first.
If you're working with Rust packaging, please update your local Guix to this
commit to apply the change.
* guix/import/crate.scm (cargo-lock->expressions): Generate comments with
‘TODO REVIEW:’ prefix.
* tests/import/crate.scm ("crate-lockfile-import"): Don't check the exact
comment string.
* doc/guix-cookbook.texi (Common Workflow for Rust Packaging),
* gnu/packages/rust-crates.scm: Adjust accordingly.
Change-Id: I76b914b49be46d04cc61b101b6bc9e31cadb7f07
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
Merges: #4567
Fixes a regression introduced in d66e9698a1.
* tests/import/pypi.scm ("pypi->guix-package, no wheel")
("pypi->guix-package, no wheel, no requires.txt, but pyproject.toml")
("pypi->guix-package, no wheel, but requires.txt and pyproject.toml")
("pypi->guix-package, no requires.txt, but wheel.")
("pypi->guix-package, no usable requirement file, no wheel.")
("pypi->guix-package, package name contains \"-\" followed by digits"): Change
‘home-page’ to ‘https://’.
Fixes: guix/guix#4646
Reported-by: Rutherther <rutherther@ditigal.xyz>
Change-Id: Id3ddac832d9688f2eb8a055c13f62a9642a20766
When running `make dist`, it is checked that there are no store paths in
the resulting dist folder. Specifically through the
`assert-no-store-file-names` target.
I think that this target makes sense and this commit has workarounds for
currently embedded store paths. Two of those are comments. Maybe the
target could be changed to ignore those in the future. But the hash is
not important, so just replace it with <hash>.
As for crate tests, I decided to split the string instead of removing
it, although it seems to me it might safely be removed, but I am not
completely sure about the intent here.
* gnu/packages/astronomy.scm (python-jplephem-2.22): Remove store hash
from comment.
* gnu/packages/golang-build.scm (golang-org-x-exp): Likewise.
* tests/import/crate.scm (temp-file): Split store path's hash.
Change-Id: I709f29a9dfab626d194c41d12e53e0380a148217
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
This procedure tries to generate a <origin> sexp from a single url and
version.
* guix/import/utils.scm (generate-git-source): Add procedure.
* tests/import/utils.scm: Add tests for generate-git-source.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This function was missing one argument.
* guix/import/utils.scm (default-git-error): Add and document location
argument.
* tests/import/utils.scm: Add tests for default-git-error.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>