gnu: cmake-build: Prevent stalls initiating tests.
* guix/build/cmake-build-system.scm (check): Set minimum bound for
test-load so that system tasks do not prevent low-core machines from
starting execution of the test suite.
Change-Id: I8751bb5b42c2a66f160117729fcb5648a635341c
gnu: Remove mercurial/pinned.
* gnu/packages/version-control.scm (mercurial/pinned): Delete variable.
(mercurial-check-phase): Move into mercurial.
* guix/hg-download.scm (hg-package): Use mercurial.
Change-Id: I4303308554cc67b73c88a46c89577f79c84e0f15
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
gnu: Remove subversion/pinned.
* gnu/packages/version-control.scm (subversion/pinned): Delete variable.
* guix/svn-download.scm (subversion-package): Use subversion
Change-Id: I6b683147bd40b53d41d072ab99ce04012227c726
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
graph: graphml backend: simplification
I don't see the necessity of this string-replace-substring/object->string
dance and the result is ill-formed with another node type than package.
* guix/graph.scm (emit-graphml-node): simplfify.
(emit-graphml-edge): simplify.
Change-Id: If7520a9829ad5f6ebcc5357b201ab58d6e43b735
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
import: pypi: Improve home-page detection.
A lot of python imports are generated with a #f home-page, despite the
license being visible on PyPi. Fix this.
* guix/import/pypi.scm
(<project-info>): Add fields project-info-project-home-page and
project-info-project-source.
(make-pypi-sexp): Use them.
Change-Id: I661ffffc2aca37b4d42f7b7e3faa5537171523d4
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
import: pypi: Use git-fetch when possible.
* guix/import/pypi.scm (make-pypi-source, make-source): New
procedures.
(make-pypi-sexp): Use them.
Change-Id: I6136f701c313b7f0356bb7fdb73140e97a3adabe
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
import: pypi: Enforce home-page https prefix.
* guix/import/pypi.scm (make-pypi-sexp): Improve home-page handling to
enforce an https:// prefix, even in the case where upstream uses http://.
Change-Id: Iff4164a5f1ddc96af67ca7b092d3b9bbd6e2a827
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
import: pypi: Improve license detection.
A lot of python packages are generated with an #f license, despite the
license being on pypi and in metadata. Fix this.
* gnu/import/pypi.scm (find-license): Add procedure.
(make-pypi-sexp): Use procedure find-license.
Change-Id: Ia8e476f85a4b9193a0634de7a9bd66e40dcf2d44
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
ui: Change module import suggestion string.
Change-Id: I16c61985969ecf714ebc3323089cfac38d5835bb
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
shell: Ensure graft? is used in profile cache key.
Fixes #2932.
Pass graft? to cache-key functions to not forget about it again,
like with the (%graft?) parameter.
* guix/scripts/shell.scm
(profile-file-cache-key): Accept graft? argument instead of %graft? parameter.
(profile-spec-cache-key): Likewise.
(profile-cached-gc-root): Pass graft? argument from opts to
profile-file-cache-key and profile-spec-cache-key.
Change-Id: I9654bb2c59864d39ba7070ea0f19d922513ef024
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
import/gnu: Unquote the hash computation of the source.
* guix/import/gnu.scm (gnu-package->sexp): Unquote the hash computation of the
source.
Change-Id: I871fae5ab43ec571689083a6a563d9dc17a89b55
build-system: cargo: Pass features to manifest-targets.
* guix/build/cargo-build-system.scm (manifest-targets): Pass features to
manifest-targets.
Change-Id: Id1a11d75d16389b92124fc49d2102d6aec935f64
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
build-system: cargo: Migrate to `cargo metadata`.
cargo read-manifest complains about its deprecation. The replacement
is cargo metadata --no-deps --format-version 1, see
https://github.com/rust-lang/cargo/issues/13629#cargo-read-manifest
* guix/build/cargo-build-system.scm (manifest-targets): Refresh using
`cargo metadata`.
(has-executable-target?): Refresh accordingly.
Change-Id: I4cd4881d37523a7ac1f70e68df457ceb9075c1c3
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
build-system: cargo: Migrate to (json).
Fixes guix/guix#2620.
* guix/build-system/cargo.scm (%cargo-build-system-modules): Remove
(guix build json).
(cargo-guile-json): New procedure.
(cargo-build, cargo-cross-build): Add guile-json extension.
* guix/build/cargo-build-system.scm (manifest-targets): Adjust to using
(json).
Change-Id: I832a5555e63520241d3a4c4ccd2dcf860573dbab
Change-Id: I545f72b00f17e88ad19fe33870785367cac63ac4
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
build-system: pyproject: Migrate to (json).
Since (json) is imported in Guix, we remove gradually the old (guix
build json) module.
* guix/build-system/pyproject.scm (%pyproject-build-system-modules):
Remove (guix build json).
(pyproject-guile-json): New procedure.
(pyproject-build): Add guile-json extension, fix configure-flags
argument.
* guix/build/pyproject-build-system.scm (build): Refresh procedure
replacing (guix build json) procedures with (json) ones.
Change-Id: I3aede51f971b27104340816b60cf53174a9bd332
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
build-system: pyproject: Add -sP flags for entry-point wrapper.
Fixes guix/guix#1118.
-P: prevents adding current working directory or script's directory to
the search path for modules.
-s: Prevent USER site-packages
directory (~/.local/lib/pythonX.Y[t]/site-packages) from being
included in the search path for modules.
* guix/build/pyproject-build-system (create-entrypoints)
[create-script]: Add -sP flags, improve pythonic style.
Change-Id: Iabc7bb59bf08be1e0c662a069a30ae17a53c7fd5
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
build-system: pyproject: Normalize entry point import.
The standard is using from instead of import and it indeed allows to
avoid some side-effects in some cases, see
https://packaging.python.org/en/latest/specifications/entry-points/#use-for-scripts
* guix/build/pyproject-build-system (create-entrypoints)
[create-script]: Add -sP flags, improve pythonic style.
* gnu/packages/video.scm (python-yewtube)[arguments]<#:phases>: Remove
phase 'patch-script.
Change-Id: I995454c774666ed474b2418c18ec36c4f53bf015
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
guix: toml: Fix keys with embedded escape codes.
Quoted keys are treated by the specification like ordinary strings,
so escape codes must be handled as well.
* guix/build/toml.scm (eval-value): Move string escape handling…
(eval-value): …here.
(eval-toml-file): Un-escape quoted keys.
* tests/toml.scm ("parse-toml: Quoted keys with escapes"): New testcase.
Fixes: guix/guix#2414
Change-Id: I612e415cc93207bbdd18b6ec8279255fee16670a
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
gnu-maintenance: ‘generic-html’ recognizes ‘release-file-regexp’ property.
* guix/gnu-maintenance.scm (package-release-file?): New procedure.
(tarball->version): Add optional parameter and honor it.
(import-html-release): Use ‘package-release-file?’ and pass second argument to
‘tarball->version’.
* tests/gnu-maintenance.scm ("latest-html-release, 'release-file-regexp' property")
("latest-html-release, invalid 'release-file-regexp' property"): New tests.
* doc/guix.texi (Invoking guix refresh): Document it.
Change-Id: Ia9328418fdd2faf118e4ec9d5fbde4a279e100ed
Reviewed-by: Maxim Cournoyer <maxim@guixotic.coop>