Age | Commit message (Expand) | Author |
2023-06-02 | environment: Fix unbound-variable bug with '--symlink'....Fixes <https://issues.guix.gnu.org/63845>.
Reported by Maxim Cournoyer <maxim.cournoyer@gmail.com>.
* guix/scripts/environment.scm (launch-environment/container): Reference
'evaluate-populate-directive' before calling 'call-with-container'.
| Ludovic Courtès |
2023-06-02 | read-print: Add 'package/inherit' special form....* guix/read-print.scm (%special-forms): Add 'package/inherit'.
| Ludovic Courtès |
2023-06-02 | ci: Reify the timestamps of evaluations....* guix/ci.scm (<evaluation>)[start-time, checkout-time,
completion-time]: New fields.
| Ludovic Courtès |
2023-06-02 | import/cran: string->license: Add another case for GPLv3+....* guix/import/cran.scm (string->license): Translate "GPL (>=3)" to gpl3+.
| Ricardo Wurmus |
2023-06-02 | import/cran: Libraries should not use CRAN-GUIX-NAME....* guix/import/cran.scm (source-dir->dependencies): Do not use CRAN-GUIX-NAME
when processing result of NEEDED-LIBRARIES-IN-DIRECTORY.
| Ricardo Wurmus |
2023-06-02 | import/cran: Also search Makevars file for libraries....* guix/import/cran.scm (needed-libraries-in-directory): Look at Makevars in
addition to Makevars.in for libraries.
| Ricardo Wurmus |
2023-05-31 | upstream: Honor package properties for ignored and extra inputs....* guix/upstream.scm (update-package-inputs)[filtered-inputs]
[regular-inputs, native-inputs, propagated-inputs]: New procedures.
Use them in 'update-field' calls.
* tests/guix-refresh.sh (GUIX_TEST_UPDATER_TARGETS): Add "libreoffice"
to the dependencies of "the-test-package". Add 'updater-ignored-inputs'
property to "the-test-package".
* doc/guix.texi (Invoking guix refresh): Document it.
| Ludovic Courtès |
2023-05-31 | import: gem: Updater provides input list....* guix/import/gem.scm (import-release): Add 'inputs' field.
* tests/gem.scm ("package-latest-release"): New test.
| Ludovic Courtès |
2023-05-31 | import: gem: Factorize "bundler" special case for name mapping....* guix/import/gem.scm (ruby-package-name): Add "bundler" special case.
(gem->guix-package): Adjust accordingly.
* tests/gem.scm ("gem-recursive-import")
("gem-recursive-import with a specific version"): Remove "ruby-bundler"
from the expected packages.
| Ludovic Courtès |
2023-05-31 | import: elpa: Updater provides input list....* guix/import/elpa.scm (elpa-dependency->upstream-input): New
procedure.
(latest-release): Add 'inputs' field.
* tests/elpa.scm ("package-latest-release"): New test.
| Ludovic Courtès |
2023-05-31 | import: cpan: Updater provides input list....* guix/import/cpan.scm (latest-release): Add 'inputs' field.
* tests/cpan.scm ("package-latest-release"): New test.
| Ludovic Courtès |
2023-05-31 | import: cpan: Represent dependencies as <upstream-input> records....* guix/import/cpan.scm (cpan-name->downstream-name)
(cran-dependency->upstream-input, cran-module-inputs): New procedures.
(cpan-module->sexp)[guix-name, convert-inputs]: Remove.
[maybe-inputs]: Adjust to deal with <upstream-input>.
Use 'cpan-name->downstream-name' instead of 'guix-name'. Add call to
'cpan-module-inputs' and adjust calls to 'maybe-inputs'. No longer emit
input labels.
* tests/cpan.scm ("cpan->guix-package"): Adjust test accordingly.
| Ludovic Courtès |
2023-05-31 | import: cpan: Remove unary 'string-append' call....* guix/import/cpan.scm (package->upstream-name): Remove useless
'string-append'.
| Ludovic Courtès |
2023-05-31 | upstream: Remove <upstream-input-change> and related code....* guix/upstream.scm (<upstream-input-change>): Remove.
(changed-inputs): Remove.
* tests/upstream.scm (test-package, test-new-package)
("changed-inputs returns no changes")
("changed-inputs returns changes to plain input list")
("changed-inputs returns changes to all plain input lists"): Remove.
| Ludovic Courtès |
2023-05-31 | upstream: 'update-package-source' edits input fields....Previously, 'guix refresh r-ggplot2 -u' and similar commands would print
of list of input changes that would have to be made manually. With this
change, 'guix refresh -u' takes care of updating input fields
automatically.
* guix/upstream.scm (update-package-inputs): New procedure.
(update-package-source): Call it when 'upstream-source-inputs' returns
true.
* guix/scripts/refresh.scm (update-package): Remove iteration over the
result of 'changed-inputs'.
* guix/import/test.scm (available-updates): Add support for input
lists.
* tests/guix-refresh.sh (GUIX_TEST_UPDATER_TARGETS): Add input list for
"the-test-package".
Make sure 'guix refresh -u' updates 'inputs' accordingly.
* doc/guix.texi (Invoking guix refresh): Mention it.
| Ludovic Courtès |
2023-05-31 | diagnostics: Factorize 'absolute-location'....* guix/scripts/style.scm (absolute-location): Move to...
* guix/diagnostics.scm (absolute-location): ... here.
* guix/upstream.scm (update-package-source): Use it.
| Ludovic Courtès |
2023-05-31 | upstream: Replace 'input-changes' field by 'inputs'....Returning the expected list of inputs rather than changes relative to
the current package definition is less ambiguous and offers more
possibilities for further processing.
* guix/upstream.scm (<upstream-source>)[input-changes]: Remove.
[inputs]: New field.
(<upstream-input>): New record type.
* guix/upstream.scm (upstream-input-type-predicate)
(input-type-filter, upstream-source-regular-inputs)
(upstream-source-native-inputs, upstream-source-propagated-inputs): New
procedures.
(changed-inputs): Expect an <upstream-source> as its second argument.
Adjust accordingly.
* guix/import/pypi.scm (distribution-sha256): New procedure.
(maybe-inputs): Expect a list of <upstream-input>.
(compute-inputs): Rewrite to return a list of <upstream-input>.
(pypi-package-inputs, pypi-package->upstream-source): New procedures.
(make-pypi-sexp): Use it.
* guix/import/stackage.scm (latest-lts-release): Define 'cabal'.
Replace 'input-changes' field by 'inputs'.
* guix/scripts/refresh.scm (update-package): Use 'changed-inputs'
instead of 'upstream-source-input-changes'.
* tests/cran.scm ("description->package"): Adjust order of inputs.
* tests/pypi.scm (default-sha256, default-sha256/base32): New variables.
(foo-json): Add 'digests' entry.
("pypi->guix-package, no wheel"): Check HASH against DEFAULT-SHA256/BASE32.
("pypi->guix-package, wheels"): Likewise.
("pypi->guix-package, no usable requirement file."): Likewise.
("pypi->guix-package, package name contains \"-\" followed by digits"):
Likewise.
("package-latest-release"): New test.
* tests/upstream.scm (test-package-sexp): Remove.
("changed-inputs returns no changes"): Rewrite to use <upstream-source>.
(test-new-package-sexp): Remove.
("changed-inputs returns changes to plain input list"): Rewrite.
("changed-inputs returns changes to all plain input lists"): Likewise.
("changed-inputs returns changes to labelled input list")
("changed-inputs returns changes to all labelled input lists"): Remove.
* guix/import/cran.scm (maybe-inputs): Expect PACKAGE-INPUTS to be a
list of <upstream-input>.
(source-dir->dependencies): Return a list of <upstream-input>.
(vignette-builders): Likewise.
(uri-helper, cran-package-source-url)
(cran-package-propagated-inputs, cran-package-inputs): New procedures.
(description->package): Use them instead of local definitions.
(latest-cran-release): Replace 'input-changes' field by 'inputs'.
(latest-bioconductor-release): Likewise.
(format-inputs): Remove.
* guix/import/hackage.scm (cabal-package-inputs): New procedure.
(hackage-module->sexp): Use it.
[maybe-inputs]: Expect a list of <upstream-input>.
| Ludovic Courtès |
2023-05-31 | import: json: Add #:timeout to 'json-fetch'....* guix/import/json.scm (json-fetch): Add #:timeout and pass it to
'http-fetch'.
| Ludovic Courtès |
2023-05-31 | import: utils: 'call-with-networking-exception-handler' doesn't unwind....That way backtraces show where the error actually originates from.
* guix/import/utils.scm (call-with-networking-exception-handler):
Rewrite using 'with-exception-handler'.
| Ludovic Courtès |
2023-05-31 | tests: pypi: Rewrite tests using a local HTTP server....* guix/import/pypi.scm (%pypi-base-url): New variable.
(pypi-fetch): Use it.
* tests/pypi.scm (foo-json): Compute URLs relative to '%local-url'.
(test-json-1, test-json-2, test-source-hash): Remove.
(file-dump): New procedure.
(with-pypi): New macro.
("pypi->guix-package, no wheel")
("pypi->guix-package, wheels")
("pypi->guix-package, no usable requirement file.")
("pypi->guix-package, package name contains \"-\" followed by digits"):
Rewrite using 'with-pypi'.
| Ludovic Courtès |
2023-05-31 | tests: http: Allow responses to specify a path....* guix/tests/http.scm (%local-url): Add #:path parameter and honor it.
(call-with-http-server)[responses]: Add extra clause with 'path'.
[bad-request]: New variable.
[server-body]: Handle three-element clauses.
Wrap 'run-server' call in 'parameterize'.
| Ludovic Courtès |
2023-05-31 | transformations: Add "--tune" to "--help-transform"....* guix/transformations.scm (show-transformation-options-help/detailed):
Add '--tune'.
| Ludovic Courtès |
2023-05-31 | guix gc: Round MiBs in user feedback....* guix/scripts/gc.scm (guix-gc): Round MiBs in user feedback.
Signed-off-by: Florian Pelz <pelzflorian@pelzflorian.de>
| Remco van 't Veer |
2023-05-30 | substitute: If a server's nar URL is 404, try the next one(s)....If a substitute server advertises in its narinfo, for example, both a
/zstd and a /lzip URL but the /zstd URL is unreachable, try the /lzip
URL.
Fixes <https://issues.guix.gnu.org/63634>.
* guix/narinfo.scm (narinfo-preferred-uris): New procedure.
(narinfo-best-uri): Rebase on top of it.
* guix/scripts/substitute.scm (download-nar)[try-fetch]: New procedure.
Use 'narinfo-preferred-uris' and 'try-fetch' to attempt all the URLs of
NARINFO.
* tests/substitute.scm (request-substitution): Remove 'parameterize'.
Delete DESTINATION.
("substitute, preferred nar URL is 404, other is 200"): New test.
| Ludovic Courtès |
2023-05-25 | self: Install 'guix-daemon.cil'....* guix/self.scm (selinux-policy): New procedure.
(miscellaneous-files): Add 'daemon' parameter. Add 'guix-daemon.cil'.
(compiled-guix): Adjust call to 'miscellaneous-files'.
| Ludovic Courtès |
2023-05-24 | self: Build against "graphviz-minimal"....Fixes <https://issues.guix.gnu.org/63050>.
Reported by Andreas Enge <andreas@enge.fr>.
* guix/self.scm (%packages): Change "graphviz" to refer to
"graphviz-minimal". Add "font-ghostscript".
(info-manual): Define 'font-ghostscript'.
[build]: Set XDG_DATA_DIRS.
| Ludovic Courtès |
2023-05-22 | substitute: Rethrow with 'raise-exception', not 'throw'....Rethrowing with 'throw' doesn't work as intended when the exception
being rethrown is a SRFI-34 exception.
Fixes <https://issues.guix.gnu.org/55820>.
* guix/scripts/substitute.scm (kind-and-args-exception?): New variable.
(call-with-cached-connection): Rewrite using 'guard' instead of 'catch'
and 'raise' instead of 'throw'.
(system-error?): Use 'kind-and-args-exception?' instead of local
definition.
| Ludovic Courtès |
2023-05-18 | style: Add 'arguments' styling rule....* guix/scripts/style.scm (unquote->ungexp, gexpify-argument-value)
(quote-argument-value, gexpify-argument-tail)
(gexpify-package-arguments): New procedures.
(%gexp-keywords): New variable.
(%options): Add "arguments" case for 'styling-procedure.
(show-stylings): Update.
* tests/style.scm ("gexpify arguments, already gexpified")
("gexpify arguments, non-gexp arguments, margin comment")
("gexpify arguments, phases and flags")
("gexpify arguments, append arguments")
("gexpify arguments, substitute-keyword-arguments")
("gexpify arguments, append substitute-keyword-arguments"): New tests.
* doc/guix.texi (package Reference): For 'arguments', add compatibility
note and link to 'guix style'.
(Invoking guix style): Document the 'arguments' styling rule.
| Ludovic Courtès |
2023-05-18 | refresh: Honor '--key-server'....Previously, the '--key-server' option would be ignored in an invocation
like:
./pre-inst-env guix refresh python-scipy=1.8.1 -t pypi -u \
--key-server=pgp.mit.edu
* guix/upstream.scm (download-tarball): Add #:key-server parameter and
pass it to 'gnupg-verify*'.
(package-update/url-fetch, package-update/git-fetch)
(package-update): Likewise.
* guix/scripts/refresh.scm (update-package): Add #:key-server and pass
it down to 'package-update'.
(guix-refresh): Pass #:key-server to 'update-package'.
| Ludovic Courtès |
2023-05-17 | scripts: import: elpa: Return consistent error code....Fixes <https://bug.gnu.org/58308>.
Reported by Ricardo Wurmus.
* guix/scripts/import/elpa.scm (guix-import-elpa): Return consistent error
code independently of the 'recursive' option.
Signed-off-by: Josselin Poiret <dev@jpoiret.xyz>
| Simon Tournier |
2023-05-17 | scripts: import: elpa: Warn when version is specified....* guix/scripts/import/elpa.scm (guix-import-elpa): Warn when version is
specified.
Signed-off-by: Josselin Poiret <dev@jpoiret.xyz>
| Simon Tournier |
2023-05-11 | download: Refer to the 'guile-gnutls' package and not 'gnutls'....This reinstates c625e5b64d0a6cb7ffbf2ef971d4c990b1f5c5c1, which was
reverted due to a circular dependency:
https://issues.guix.gnu.org/63331
This is a followup to 305794762cbb57d252d5305b69a18cec6528baef, which
removed Guile bindings from 'gnutls'.
* guix/android-repo-download.scm (android-repo-fetch): Refer to
'guile-gnutls instead of 'gnutls.
* guix/cvs-download.scm (cvs-fetch): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/hg-download.scm (hg-fetch): Likewise.
| Ludovic Courtès |
2023-05-09 | Merge branch 'rust-team' | Efraim Flashner |
2023-05-09 | gnu: gcc: Update cpu tuning architectures....* gnu/packages/gcc.scm (%gcc-7.5-armhf-micro-architectures): Add missing
micro-architecture.
(%gcc-10-armhf-micro-architectures): Adjust accordingly.
(%gcc-11-aarch64-micro-architectures): Add missing micro-architecture.
(%gcc-12-aarch64-micro-architectures, %gcc-12-armhf-micro-architectures,
%gcc-12-x86_64-micro-architectures, %gcc-13-aarch64-micro-architectures,
%gcc-13-armhf-micro-architectures, %gcc-13-x86_64-micro-architectures):
New variables.
(gcc-12)[properties]: Use new compiler-cpu-architectures.
* guix/cpu.scm (cpu->gcc-architecture): Update entries for Intel, AMD,
x86_64 fallback and aarch64.
| Efraim Flashner |
2023-05-07 | gnu: rust: Update to 1.67....* gnu/packages/rust.scm (rust): Update to 1.67.
[arguments]: Add a phase to skip tests requiring mercurial. Extend the
custom 'patch-process-tests phase.
(rust-1.64)[arguments]: Adjust 'patch-cargo-checksums phase to patch
another file.
* guix/build/cargo-build-system.scm (package): Adjust to remove
Cargo.toml.orig file if it exists.
| Efraim Flashner |
2023-05-07 | build: cargo-build-system: Don't try to package when skipping build....* guix/build/cargo-build-system.scm (package): If the package isn't
going to be built then use the source instead.
| Efraim Flashner |
2023-05-06 | Revert "download: Refer to the 'guile-gnutls' package and not 'gnutls'."...This reverts commit c625e5b64d0a6cb7ffbf2ef971d4c990b1f5c5c1, which
introduced a circular dependency: the origin of guile-gnutls relies on
'git-download', which would now depend on guile-gnutls.
| Ludovic Courtès |
2023-05-06 | download: Refer to the 'guile-gnutls' package and not 'gnutls'....This is a followup to 305794762cbb57d252d5305b69a18cec6528baef, which
removed Guile bindings from 'gnutls'.
* guix/android-repo-download.scm (android-repo-fetch): Refer to
'guile-gnutls instead of 'gnutls.
* guix/cvs-download.scm (cvs-fetch): Likewise.
* guix/git-download.scm (git-fetch): Likewise.
* guix/hg-download.scm (hg-fetch): Likewise.
| Ludovic Courtès |
2023-05-06 | lint: archival: Warn against non-origin package sources....Suggested by Maxim Cournoyer <maxim.cournoyer@gmail.com>
and Simon Tournier <zimon.toutoune@gmail.com>.
* guix/lint.scm (check-archival): Add 'local-file?' clause. Clarify
message in case (package-source package) is not an origin.
* tests/lint.scm ("archival: not an origin"): New test.
| Ludovic Courtès |
2023-05-06 | build-system: node: Use `--install-links' with `npm install'....Later versions of npm need to explicitly install a copy of local dependencies,
instead of only a symlink.
* guix/build/node-build-system.scm (configure): Add `--install-links' to npm
install invocation.
(install): Ditto.
| Jelle Licht |
2023-05-05 | read-print: Recognize 'wrap-program' and 'wrap-script' as special forms....* guix/read-print.scm (%special-forms): Add 'wrap-program' and
'wrap-script'.
| Ludovic Courtès |
2023-05-05 | read-print: Correctly read "(. x)"....* guix/read-print.scm (read-with-comments): Check whether REST is a pair
before calling 'set-cdr!'.
* tests/read-print.scm ("read-with-comments: half dot notation"): New test.
| Ludovic Courtès |
2023-05-04 | transformations: Add '--with-configure-flag'....* guix/transformations.scm (transform-package-configure-flag): New
procedure.
(%transformation-options, %transformation-options)
(show-transformation-options-help/detailed): Add it.
* tests/transformations.scm ("options->transformation,
with-configure-flag"): New test.
* doc/guix.texi (Package Transformation Options): Document it.
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
| Sarthak Shah |
2023-05-04 | style: Make 'safe' policy less conservative....Previously, a mere (arguments '(#:tests? #f)) would lead
guix style -S inputs --input-simplification=safe
to bail out. It now recognizes such trivial argument lists and
proceeds.
* guix/scripts/style.scm (trivial-package-arguments?): New procedure.
(simplify-package-inputs): Use it in the 'safe case instead of 'null?'.
* tests/style.scm ("input labels, 'safe' policy, trivial arguments"):
New test.
| Ludovic Courtès |
2023-05-04 | profiles: 'texlive-font-maps' gracefully handles lack of texlive inputs....Fixes <https://issues.guix.gnu.org/63043>.
* guix/profiles.scm (texlive-font-maps): Define 'texlive-inputs'.
[build]: Use it.
Return #f when TEXLIVE-INPUTS is empty.
| Ludovic Courtès |
2023-05-04 | import: elpa: Standardize warning message....* guix/import/elpa.scm (melpa-recipe->origin): Standardize warning
message.
| Ludovic Courtès |
2023-05-04 | import: Cosmetic tweaks to 'recursive-import'....* guix/import/utils.scm (recursive-import): Tweak docstring. Simplify
'apply' call.
| Ludovic Courtès |
2023-05-04 | import: elpa: Use the expected repo in recursive imports....* guix/import/elpa.scm (elpa-recursive-import): Pass REPO in calls to
'elpa->guix-package'.
| Ludovic Courtès |
2023-05-04 | import: elpa: 'elpa->guix-package' accepts other keyword arguments....This is a followup to 3c24da4260f28b4ed57efda0296688a50ac94628.
* guix/import/elpa.scm (elpa->guix-package): Add #:allow-other-keys.
| Ludovic Courtès |
2023-05-04 | ftp-client: 'connect*' retries until the timeout has expired....Partly fixes <https://issues.guix.gnu.org/63024>.
Reported by Greg Hogan <code@greghogan.com>
and Timo Wilken <guix@twilken.net>.
* guix/ftp-client.scm (connect*): When 'select' returns an empty set,
try again until TIMEOUT has expired.
| Ludovic Courtès |