* guix/build/guile-build-system.scm: Hide 'delete' from (guix build utils), to
avoid shadowing the builtin.
(invoke-each): Replace current-processor-count with parallel-job-count. The
former would require importing (ice-9 threads).
Change-Id: I7cde3305b9017bfec52ffe50ed124e21cbdceb25
Following discussions in bug #74204.
* guix/build-system/guile.scm (guile-build): Add a #:parallel-build? flag,
defaulting to #f for now.
(guile-cross-build): Likewise.
* guix/build/guile-build-system.scm (build): Honor it.
Change-Id: Ibf12ac098e9dcea83da7b9685796e501df606c6c
Golang project's root may miss any .go files which makes build phase to
fail with error similar to:
no Go files in /tmp/<...>/src/golang.org/x/mod
This change implements a SKIP-BUILD? key parameter which is, by default,
set to #f to invoke build procedure. It is taken from cargo-build-system
* guix/build-system/go.scm (go-build, go-cross-build): Add "skip-build?"
key parameter.
* guix/build/go-build-system.scm (build): Add "skip-build?" key
parameter and implement logic.
Change-Id: I3f41414868a7329cbe99324106427cdae4884d94
Golang projects may contain subdirectories with test files, which can't
be reached by providing just IMPORT-PATH to the test runner. This
change implements a TEST-SUBDIRS key parameter which is by default set
to "import-path/..." to run all available tests in the project, and may
be limited to particular subdirs list.
* guix/build-system/go.scm (go-build, go-cross-build): Add "test-subdirs"
key parameter.
* guix/build/go-build-system.scm (check): Add "test-subdirs" key
parameter and adjust test invokation accordingly.
Change-Id: Ibc107deea060f0d71e6f4e1e37c81d3b7c9992f5
During the build phase "-x" option forces go compiler to generate quite
a noisy build log which does not help too much when the build is failed.
This change makes it optional and governed by #:verbosity key passed to
`build' procedure.
* guix/build/go-build-system.scm (build): Provide a link to online
example. Consolidate options in GOFLAGS environment variable, make "-x"
optional. Add description for "-trimpath" option.
Change-Id: Icf1b03eb79db8a6f79f86f3cc212a53de5aa7c1c
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>
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>
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/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>
More reliable than regular expressions.
* guix/build-system/pyproject.scm (%pyproject-build-system-modules): Add (guix build toml).
(pyproject-build): Add argument #:backend-path.
* guix/build/pyproject-build-system.scm (build): Add support for
auto-detected and override backend-path.
* gnu/packages/python-build.scm (python-tomli)[arguments]: Remove
'add-self-to-path, because it is not necessary any more.
(python-poetry-core): Same.
(python-hatchling): Same.
(python-pdm-backend): Same.
* guix/build/r-build-system.scm (check): Set environment variables to skip
tests that are not suitable for build machines.
Change-Id: Ife612252711247496ac342d606ecc3d1d69b60c9
* guix/build-system/r.scm (r-build): Accept optional TEST-TYPES argument and
pass it to the build phases.
* guix/build/r-build-system.scm (check): Exit R with the return value of
tools:::testInstalledPackage; stop the test suite on the first error; respect
TEST-TYPES argument; dump logs on test failure.
Change-Id: Ia83407ceb2ef2a92cfa02f3a3d661f54cf8c8b40
Importing SRFI-34 overrides RAISE. By default RAISE accepts an exact integer,
so the error condition would not actually be raised; instead a type error
would be raised.
* guix/build/r-build-system.scm (pipe-r): Pass the actual status codes to the
&INVOKE-ERROR condition.
Change-Id: I75ad78eb7692afe26483a5686143dbcb7b65b973
* guix/build/chicken-build-system (build): chdir to the directory containing
sources, and let chicken-install process the current directory.
(install): Switch to define as we do not need any keys.
(check): Remove unused egg-name from the arguments.
Change-Id: I4adf5e2378deab6e3f3b3c128c3cc75ce43f0e8a
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
This is a follow up adjustment, proposed by Maxim Cournoyer
<maxim.cournoyer@gmail.com> in <https://issues.guix.gnu.org/73299>.
* guix/build/go-build-system.scm (fix-embed-files): Improve the grammar
and style, and provide a URL to the raw source file for reference.
Change-Id: I78824b92d70a2431f61d11e8737bca6a2ddea3fa
By allowing the use of test flags, we can more precisely skip failing tests
(for go version >=1.20), disable the vetting stage or select a subset of tests
(e.g. if an upstream flag is provided to skip tests which require a network
connection). At the moment, the only way around these test failures is to
remove the test file completely or patch the code ourselves.
* guix/build-system/go.scm (go-build): Add test-flags variable.
(go-cross-build): Add test-flags variable.
* guix/build/go-build-system.scm (check): Pass the additional test flags to the invoke call.
* doc/guix.texi (go-build-system): Document <#:test-flags> parameter.
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
Change-Id: I4015870fbbc15503cb405fe9ef6032953a5ff17f
As of glibc 2.39, libdl.so and libutil.so are gone (they are part of
libc proper since 2.34), but empty .a files are provided for backward
compatibility with code using -ldl and -lutil. Keep them.
* guix/build/make-bootstrap.scm (make-stripped-libc)[%libc-object-files-rx]:
Mach libdl.a and libutil.a.
Change-Id: I967c6f34a443366224293362b8a2302fe86fd5a0
Previously the second ‘copy-recursively’ call would fail with EEXIST
since glibc@2.39 already provides $includedir/include/mach.
* guix/build/make-bootstrap.scm (make-stripped-libc)[copy-mach-headers]:
Pass #:select? to ‘copy-recursively’ to exclude files already present
under INCDIR.
Change-Id: I7e5a93e46eefa18299c231468c720072468fdb10
* gnu/packages/tex.scm (texlive-libkpathsea)[arguments]<#:phases>: Set
TEXMFCACHE in "texmf.cnf" to "$HOME/.texliveYYYY/texmf-var/" instead of
"{$GUIX_TEXMF}", which creates a "{" directory in the current working
directory.
* guix/build/texlive-build-system.scm (set-texmfvar): New function.
(%standard-phases): Add SET-TEXMFVAR phase.
Change-Id: Idff2fd5279e12d35683c863528aac3b5efa9b22b