This patch ensures that the pinned natively compiled Emacs packages can
actually be found in the respective load path. The rationale for expanding it
mimics the rationale previously applied to load-path for byte compilation: We
want to be able to `guix upgrade' emacs (or similar) without yanking compiled
packages from underneath.
* guix/profiles.scm (emacs-subdirs): Write an additional “line” of code to
deal with ‘native-comp-eln-load-path’.
* guix/packages.scm (input-graft, input-cross-graft): Store the monadic value
of the replacement in the 'replacement' field of <graft> instead of unwrapping
it.
(cumulative-grafts): Turn monadic values in the 'replacement' field of
applicable grafts into derivations.
* tests/packages.scm ("package-grafts, indirect grafts")
("package-grafts, indirect grafts, propagated inputs")
("package-grafts, same replacement twice")
("package-grafts, dependency on several outputs")
("replacement also grafted"): Do not compare <graft> records directly,
compare the relevant fields instead, calling ‘run-with-store’ on the
‘replacement’ field.
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
Change-Id: Idded0a402b8974df1ef2354f1a88c308b9b99777
* gnu/home.scm (%base-home-services): New variable.
(<home-environment>)[services]: Change default to ‘%base-home-services’.
* guix/scripts/home/import.scm (manifest+configuration-files->code): Use
‘%base-home-services’ by default.
* tests/home-import.scm (match-home-environment-no-services)
(match-home-environment-transformations)
(match-home-environment-no-services-nor-packages)
(match-home-environment-bash-service)
(match-home-environment-bash-service-with-alias): Adjust accordingly.
* doc/he-config-bare-bones.scm: Use ‘%base-home-services’.
* doc/guix.texi (Declaring the Home Environment): Add index entry for
‘%base-home-services’.
Change-Id: Id95ede62b97a976aad138bfc4b63fc0bdf37c7de
Move the extra configure flags for cross building out from the build side code and instead
prepend them to the configure-flags.
Use new procedure cmake-system-name-for-target to add support for hurd and
bare-metal targets.
* guix/build/cmake-build-system.scm (configure): Move cross build flags from
here ...
* guix/build-system/cmake.scm (cmake-cross-build): ... to here.
(cmake-system-name-for-target): New procedure.
Change-Id: Ic68acc246e543491ed147e53d47cec5de46b82cb
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Reported by MSavoritias <email@msavoritias.me> in #74992 "guix import go
package definition is not valid". This change fixes it: instead of
"#:go 1.22" will produce "#:go go-1.22".
* guix/import/go.scm (go-module->guix-package): Fix format for #:go key
argument.
Change-Id: I9db0688b8e2970f5e90b415966d39b45505b7c8e
Fixes a type error where ‘find2’ could be passed a <git-reference>
instead of a list of strings (URLs).
* guix/upstream.scm (preferred-upstream-source-url): Return #f and #f
when ‘upstream-source-urls’ does not return a pair.
Change-Id: If43a610fac5f3feb871e0900966d65b4971bd053
This is needed when bind mounting file systems from the initrd guile, or
else you get an error like this:
https://lists.gnu.org/archive/html/help-guix/2021-07/msg00050.html
* guix/build/syscalls.scm (statfs): Add implementation for calling from
guile-static.
* gnu/packages/patches/guile-3.0-linux-syscalls.patch,
gnu/packages/patches/guile-linux-syscalls.patch (statfs-raw): C Function to
support above.
Change-Id: Ibc8f1f27648add90639bd391aff8d61c6a23b884
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Fixes a discrepancy for ‘url-fetch’ packages where upstream provides
several source tarballs. For example, for ‘xorg-server’,
‘package-with-upstream-version’ would pick the “tar.gz” tarball even
though the package definition uses “tar.xz”. It now picks “tar.xz” by
default.
* guix/transformations.scm (package-with-upstream-version):
Add #:preserve-archive-type?. Call ‘preferred-upstream-source’ to honor
it.
Change-Id: Iefa007aba339d81709faf82b7c52a5a2c7a6aad7
* guix/upstream.scm (preferred-upstream-source-url): New procedure.
(package-update/url-fetch): Use it.
Change-Id: I229cdf7668567e30ca156b3d65b77c90ead8bb05
This flag is unsupported in Linux 6.6 and causes ‘kexec_file_load’ to
fail with EINVAL.
Fixes <https://issues.guix.gnu.org/75211>.
* guix/scripts/system/reconfigure.scm (kexec-loading-program): Remove
KEXEC_FILE_DEBUG.
* guix/build/syscalls.scm (KEXEC_FILE_DEBUG): Add comment.
Suggested-by: nathan <nathan_mail@nborghese.com>
Reported-by: Simen Endsjø <contact@simendsjo.me>
Change-Id: Ia48be7f4cfa9c6352908e4bea6472cd648f866ed
Commit 5b08b8fe1019147fe489db17a9a8ae7ebe97f9e9 of Cargo makes the
package field optional. This is the case since Rust 1.22.0.
* guix/build/cargo-build-system.scm (patch-cargo-checksums): Create
.cargo-checksum.json stubs.
Change-Id: I474e8f73b6048e53f22a8d899a8e3e50b5332f60
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
* gnu/packages/cargo-build-system.scm (configure): Add an environment
variable to default to using the system libsodium package.
Change-Id: If4c7de018a60ae5e3fd96e64590acfbc46731d04
The default behavior for 'cargo test' is to build in debug mode, and many test
suites expect support for things provided in this mode such as debug
assertions (see for example:
<https://github.com/google/zerocopy/issues/2143>).
* guix/build-system/cargo.scm (cargo-build): Remove '--release' from
#:cargo-test-flags.
* guix/build/cargo-build-system.scm (check): Likewise.
Change-Id: I8a659c25bd33bc1bdfd88e440bd00bad09a5fc01
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
* guix/build-system/cargo.scm (cargo-triplet): New procedure.
(cargo-build, cargo-cross-build): Add cargo-target.
(lower): Add cargo-target as private keyword.
* guix/build/cargo-build-system.scm (configure): Use cargo-target to set
CARGO_BUILD_TARGET.
Change-Id: I476fa195dce0e9d20d59dda7dd15f050a56a15cb
* guix/import/crate.scm (make-crate-sexp): If a crate has been yanked
then adjust the returned package's source file-name with 'yanked' as
part of the name.
Change-Id: Ib3d16ff2e89a75a7a0755c1f336abadba0189666
This is a followup to ed0cd12a82, which
adds the C.UTF-8 locale to the glibc package, and
ee4e79f871, which changed the default to
“C.UTF-8” for ‘guix’ commands.
Fixes a bug whereby starting ‘guix’ in an environment where the LC_*
variables are unset would start it in the “C” locale:
echo '(pk (setlocale LC_ALL))' | guix shell -CW coreutils -- guix repl
This would lead to breakage for commands such as ‘guix substitute’ that
need to run in a UTF-8 locale.
* gnu/packages/aux-files/guile-launcher.c (main): Try “C.UTF-8” before
“en_US.UTF-8”. Do that also when the current locale is “C”.
* guix/ui.scm (install-locale): Likewise.
Change-Id: I36da4db8f898f1083b33760e1ab46c3a257de811
* guix/build-system/zig.scm (#:parallel-build?,#:parallel-tests?):
New arguments.
* guix/build/zig-build-system.scm (zig-arguments): New procedure.
(bulid): Use it and honor #:parallel-build?.
(check): Use it and honor #:parallel-tests?.
* gnu/packages/zig.scm (zig): Define as zig-0.13.
* gnu/packages/ncdu.scm (ncdu)[arguments]<#:zig>: Unset.
<#:zig-release-type>: Set to "safe".
<#:zig-build-flags>: Add "-Dpie".
* gnu/packages/zig-xyz.scm (river)[arguments]<#:zig>: Use zig-0.10.
(zig-zls)[arguments]<#:zig>: Use zig-0.10.
<#:zig-release-type>: Set to "safe".
Change-Id: I1f0087ff39ea9fecb2ad911019d0525f1e6285f6
* guix/build/zig-build-system.scm (zig-target): New procedure.
(build): Use it to set the target when cross-compiling.
Change-Id: Ic82253ce899055526e894a0cb67738ddbb476574
Modified-by: Hilton Chain <hako@ultrarare.space>
Signed-off-by: Hilton Chain <hako@ultrarare.space>
getenv returns #f if the environment variable does not exist, causing a type
error since string=? expects a string.
* guix/build/pack.scm (assert-utf8-locale): Handle unset environment variable.
Change-Id: Idbe7a33a4c8453b8f4ffe6245c32c1373020fb06
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Fixes a regression introduced in
a3ffb920f1 and revealed by
‘tests/pypi.scm’.
* guix/import/pypi.scm (parse-requires.txt): Reverse REQUIRED-DEPS and
TEST-DEPS when returning.
(parse-wheel-metadata): Likewise.
Change-Id: I2c374505052f0d9e46e7cc1c11d3e97ab522e068
This allows rebooting straight into the new system with ‘reboot -k’.
* guix/scripts/system/reconfigure.scm (kexec-loading-program)
(load-system-for-kexec): New procedures.
* gnu/tests/reconfigure.scm (run-kexec-test): New procedure.
(%test-upgrade-kexec): New variable.
* guix/scripts/system.scm (perform-action): Add #:load-for-kexec?.
Call ‘load-system-for-kexec’.
(show-help, %options): Add ‘--no-kexec’.
(%default-options): Add ‘load-for-kexec?’.
(process-action): Honor it and pass it to ‘perform-action’.
* gnu/machine/ssh.scm (deploy-managed-host): Add call to
‘load-system-for-kexec’.
* doc/guix.texi (Invoking guix system): Document it.
Change-Id: I86d11f1c348e4359bc9e73c86e5aebff60fe875c
* guix/inferior.scm (channel-full-commit): Add #:verify-certificate?
and pass it on.
(cached-channel-instance): Likewise.
Change-Id: I9882660ac9eee2c4d9bb5e227979fd8de10555b1