This allows ‘guix substitute’ to gracefully handle errors like:
TLS error in procedure 'write_to_session_record_port': Error in the push function
instead of exiting (“`guix substitute' died unexpectedly”).
* guix/scripts/substitute.scm (download-nar)[try-fetch]: Catch
‘network-error?’ too.
Reported-by: Ada Stevenson <adanskana@gmail.com>
Change-Id: I91b92183b0165832645ee37d50c13445f9322525
Fixes <https://issues.guix.gnu.org/66705>.
The strategy used by ‘current-profile’ so far would fail to find the
right profile (the one created by ‘guix pull’ or ‘guix time-machine’) in
cases where said profile is itself included in another profile. This
happens, for instance, when running ‘guix shell -CW -- guix describe’,
which, as a result, would display nothing but the ‘guix’ channel.
This patch fixes that by having ‘current-profile’ not just check for the
presence of a ‘manifest’ file but also parse it to determine whether
it’s a ‘guix pull’ kind of manifest.
* guix/describe.scm (find-profile): New procedure.
(current-profile): Adjust to use it.
Change-Id: I9194f54ce1496a6591e247c76203f497f28c330b
* guix/profiles.scm (sexp->manifest): In the catch-all clause, raise to
‘&profile-error’ in addition to ‘&message’.
Change-Id: Ieb08187b388531c2157bfe67fb1b7319dbbb4ff3
Previously, the nar fallback would always fail on ‘--check’ build
because the output directory in that case is different from the store
file name. This change fixes that.
* guix/build/git.scm (git-fetch-with-fallback): Add #:item parameter and
pass it to ‘download-nar’.
* guix/scripts/perform-download.scm (perform-git-download): Pass #:item
to ‘git-fetch-with-fallback’.
Change-Id: I30fc948718e99574005150bba5215a51ef153c49
This is useful when running a ‘--check’ build, where the output file
name differs from the store file name we are trying to restore.
* guix/build/download-nar.scm (download-nar): Add ‘output’ parameter and
distinguish it from ‘item’.
Change-Id: I42219b6d4c8fd1ed506720301384efc1aa351561
This allows content-addressed access to the checkout, which is
preferable.
* guix/hg-download.scm (hg-fetch): Add call to
‘swh-download-directory-by-nar-hash’ before ‘swh-download’ call.
Change-Id: I2afc8badc1f8bb2c8bdd3a47abbb72d455d93e64
Fixes <https://issues.guix.gnu.org/69070>.
* guix/swh.scm (branch-target): Add clause for 'directory and 'alias.
(lookup-origin-revision): Iterate over all the visits of ORIGIN instead
of just the first one. Handle the case where ‘branch-target’ returns
something other than a release or revision.
* tests/swh.scm ("lookup-origin-revision"): New test.
Change-Id: I7f636739a719908763bca1d3e7376341dd62e816
Until now, ‘save-origin’ would be called only when given a
<git-reference>. With this change, ‘save-origin’ gets called for other
version control systems as well.
* guix/lint.scm (swh-response->warning): New procedure, formerly in
‘check-archival’.
(vcs-origin, save-package-source): New procedures.
(check-archival)[response->warning]: Remove.
Call ‘save-package-source’ in both the Git and the non-Git cases.
* tests/lint.scm ("archival: missing svn revision"): New test.
Change-Id: I535e4ec89488faf83bfa544d5e4935fa73ef54fb
Fixes a bug introduced in 29f3089c84 where
‘guix lint -c archival guile-wisp’ (for instance) would crash with a
match error because ‘lookup-by-nar-hash’ returns a string.
* guix/lint.scm (check-archival): Add SWHID case in the non-Git case.
Change-Id: I66fb060172d372041df47d90a14df168b0fa762d
* gnu/packages/gcc.scm (gcc-7, gcc-10, gcc-11, gcc-12, gcc-13)
[properties]: In compiler-cpu-architectures use the
x86_64-micro-architectures list for i686.
* guix/cpu.scm (cpu->gcc-architecture): Expand the x86_64 case to also
support i686.
Change-Id: I0b820ceb715960db5e702814fa278dc8c619a836
This is the actual micro-architecture designation used by compilers.
* gnu/packages/gcc.scm (%gcc-11-x86_64-micro-architectures): Rename
x86-64-v1 to x86-64.
* gnu/packages/golang.scm (%go-1.18-x86_64-micro-architectures): Same.
* guix/cpu.scm (cpu->micro-architecture-level): Same.
(gcc-architecture->micro-architecture-level): Same.
Change-Id: I19ed556a7e8deb4a77f4c63fca3b794f25092788
* gnu/packages/golang.scm (%go-1.18-x86_64-micro-architectures): Rename
micro-architectures from x86_64-v* to x86-64-v*.
* guix/cpu.scm (cpu->gcc-architecture): Return x86-64 as the fallback.
(cpu->micro-architecture-level): Rename micro-architectures from
x86_64-v* to x86-64-v*.
(gcc-architecture->micro-architecture-level): Same.
Change-Id: I37db65970417c22699ae8097b0361bccf76c1267
* guix/scripts/import/elpa.scm (guix-import-elpa): Unquote-splice the contents
of the package sexp so the matched package definition is returned unchanged.
Change-Id: Iaaa7e72390c73c6d6671811fe9ac284d599b44c6
Signed-off-by: Ricardo Wurmus <rekado@elephly.net>
* guix/cpu.scm (gcc-architecture->micro-architecture-level): Sort
gcc-architectures which have AVX512F support into x86-64-v4.
Change-Id: I8af0ceb692eefec7433e1fd5149379244da799c4
* guix/cpu.scm (cpu->gcc-architecture): Add graniterapids-d,
pantherlake, clearwaterforest, arrowlake-s, yongfeng. Remove
grandridge. Update CPU flags for searching to match architecture.
(gcc-architecture->micro-architecture-level): Adjust listed
architectures and sort in order used above.
Change-Id: I186ab6e396e36c34f7c61827e02f637716993141
Newer (development) builds of Emacs 30 mark a number of functions related to
native compilation as ‘internal’. Since we rely on such functions and there
does not appear to be a high-level replacement at the moment, let's work
around this case.
* guix/build/emacs-utils.scm (emacs-compile-directory): Require comp early
and check if ‘comp-write-bytecode-file’ is available.
Fixes: Upstream renamed comp-write-bytecode-file <https://bugs.gnu.org/69201>
Until now the .go files were generated first, and only after that the .scm
files were installed into the target location. That led to a lot of messages
about `source file ... newer than compiled' if the custom 'check phase tried
to load the compiled files.
Swapping the order of the actions resolves the issue allowing the tests to be
written without lot of noise in the build log.
For final artifacts it was not a problem, since daemon resets the timestamps.
* guix/build/guile-build-system.scm (build): Install .scm before producing
.go.
Change-Id: I3428d144fcbaa6c904ee662193c3bca82589e344
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
The inner (let) was on the same level as the outer one, which was confusing.
* guix/build/guile-build-system.scm (build): Fix indentation.
Change-Id: I701b61747c270b185eac9377b066748baa2b3d20
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
With the previous commit, relative file names are expanded relative to
ELN_DIR -- more or less. To make use of this in emacs-build-system, we must
also pass relative file names.
* guix/build/emacs-build-system.scm (emacs-compile-directory): Compute the
relative file names of the files to compile.
Change-Id: I8983f80fb0fe1573e46748222403ba8873f1599f