* guix/gexp.scm (<scheme-file>)[load-path?]: New field.
(scheme-file): Add #:set-load-path? and honor it.
(scheme-file-compiler): Pass #:set-load-path? to 'gexp->file'.
* doc/guix.texi (G-Expressions): Document it.
Fixes <https://bugs.gnu.org/37679>.
Reported by Gábor Boskovits <boskovits@gmail.com>.
* guix/tests/git.scm (call-with-environment-variables): New procedure.
(with-environment-variables): New macro.
(populate-git-repository)[git]: Wrap (git-command) invocation in
'call-with-temporary-directory' and 'with-environment-variables'.
Rather than libgc version 8. This should avoid crashes that can occur,
particularly when loading data in to the Guix Data Service [1].
1: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=40525
* gnu/packages/guile.scm (guile-3.0/libgc-7): New variable.
* guix/self.scm (specification->package): Use guile-3.0/libgc-7 for guile.
I (nckx) have revoked all RSA subkeys, in favour of my older and
freshly-refreshed ECDSA ones. This was merely a precaution: to my
knowledge all my RSA private keys have been carefully destroyed and
were never compromised. This commit keeps ‘make authenticate’ happy.
* guix/gnupg.scm (revkeysig-rx): New variable for revoked keys.
(gnupg-verify): Parse it.
(gnupg-status-good-signature?): Accept it as ‘good’ for our purposes.
* build-aux/git-authenticate.scm (%committers): Clarify nckx's subkeys.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Various places while downloading or compiling guix prints
the source URL. This change makes the URL easier to use by
placing a space between the URL and the trailing dots.
Signed-off-by: Marius Bakke <mbakke@fastmail.com>
* guix/import/json.scm (json->code): Convert JSON arrays to lists of package
definitions.
(json->scheme-file): Write all expressions to the target file.
* guix/import/utils.scm (alist->package): Accept optional list of known
inputs, which are excluded from the specification lookup.
* guix/import/print.scm (package->code)[package-lists->code]: Handle inputs
which are just symbols.
Partly fixes <https://bugs.gnu.org/40574>.
Reported by Jan Nieuwenhuizen <janneke@gnu.org>.
Previously, we'd choose at expansion time whether to use the Hurd or the
Linux variant, taking the cross-compilation target into account. This
would lead to the wrong decision when (guix build syscalls) is evaluated
while we're cross-compiling to GNU/Hurd.
This is a followup to 1ab9e483391f8b62b873833ea71cb0074efa03e7.
* guix/build/syscalls.scm (define-generic-identifier)
(read-dirent-header, %struct-dirent-header, sizeof-dirent-header):
Remove.
(readdir*): Rename to...
(readdir-procedure): ... this, and add parameters.
(readdir*): Define as a call to 'readdir-procedure' as a function of
%HOST-TYPE.
This allows 'doc/build.scm' to keep using '@@' for these. (This sets a
bad example, don't follow it.)
* guix/self.scm (prevent-inlining!): New macro.
<top level>: Use it for 'file-append*', 'translate-texi-manuals', and
'info-manual'.
Fixes <https://bugs.gnu.org/40115>.
Previously the result of `guix build -s $system $package' would depend on the
system Guix was built for if $package or one of its dependencies used
'url-fetch/tarbomb' or 'url-fetch/zipbomb' as the origin method of its
source (e.g. `guix build -s i686-linux ffmpeg' on i686-linux would build a
different derivation than on x86_64-linux).
This patch fixes this by explicitly passing the correct system and guile to
'gexp->derivation'.
* guix/download.scm (url-fetch/tarbomb): Pass #:system system and
#:guile-for-build guile to 'gexp->derivation', where guile is the derivation
of guile for system.
(url-fetch/zipbomb): Likewise.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* guix/build-system/go.scm (build-flags): New argument.
* guix/build/go-build-system.scm (build): Use apply to pass the
additional arguments to invoke.
Reported by Jan (janneke) Nieuwenhuizen <janneke@gnu.org>.
* guix/records.scm (define-record-type*): Use
'target-most-positive-fixnum' on Guile 3 instead of 'most-positive-fixnum'.
Previously, we'd just print an ugly backtrace when running on Guile 3
because the '%exception throw would not be caught anywhere.
Reported by Arne Babenhauserheide <arne_bab@web.de>
in <https://bugs.gnu.org/40496>.
* guix/scripts/system/reconfigure.scm (install-bootloader-program): In
'catch' handler, match '%exception and use 'raise-exception' instead of
'throw' to rethrow in that case.
As discussed on #guix, this should wait until 1.1.0 is branched off to avoid
having to update translations.
This reverts commit 9f1b787120b1b81abffaf0fa13fdbdf4cca39f2d.
Various places while downloading or compiling guix prints
the source URL. This change makes the URL easier to use by
placing a space between the URL and the trailing dots.
Signed-off-by: Marius Bakke <mbakke@fastmail.com>
Previously, "TESTS=installed-os guix build -m etc/system-tests.scm"
would repeat the "Computing Guix derivation" phase ~5 times due to the
fact that there were several call paths, within a build-accumulator,
leading to (package-derivation store guix).
* guix/channels.scm (with-trivial-build-handler): New procedure.
(build-from-source): Wrap 'build' call in 'with-trivial-build-handler'.
This ensures the stack is not unwound before the exception is re-thrown,
as was the case since 8ed597f4a261fe188de82cd1f5daed83dba948eb, leading
to '&store-protocol-error' being uncaught by 'with-error-handling'
in (guix scripts build) & co.
* guix/store.scm (call-with-store): Define 'thunk'. Add 'cond-expand'
to use 'with-exception-handler' on 'guile-3' and 'catch' otherwise.