* guix/build/cargo-build-system.scm (crate-src?): Also don't try to
check python scripts for Cargo.toml.
Change-Id: I001a89b83d2e472706b1263007be45d1153c140f
This will make it easier to use these phases in other bulid systems.
* guix/build/cargo-build-system.scm (unpack-rust-crates, configure, build)
(package, install): Set default value for arguments specific to this build
system.
Change-Id: I1dde1b063d8eee57967903abd2fce94574211a0a
*guix/build-system/cargo.scm (cargo-build, cargo-cross-build)
[#:cargo-install-paths]: New argument.
* guix/build/cargo-build-system.scm (install): Use it.
* doc/guix.texi (Build Systems)[cargo-build-system]: Document it.
Change-Id: I74ed1972a5716da05afeac8edb2b0e4b6834bf40
* guix/build-system/cargo.scm (cargo-build, cargo-cross-build)
[#:cargo-package-crates]: New argument.
* guix/build/cargo-build-system.scm (package): Use it.
* doc/guix.texi (Build Systems)[cargo-build-system]: Document it.
Change-Id: I45ccd95e90827d47127015cb0bda2d41f792335b
* guix/build/cargo-build-system.scm (%standard-phases): Move
‘unpack-rust-crates’ after ‘unpack’.
Move ‘check-for-pregenerated-files’ after ‘configure’.
(check-for-pregenerated-files): Only check non-empty files.
Print out binary files.
Run in parallel.
Don't fail to keep compatibility for phase order change.
Change-Id: I0a332fe843e97687324bd908fa111422a63e475d
This will make error messages more helpful.
* guix/build/cargo-build-system.scm (build, check, package, install): Pass
‘--offline’ to cargo.
Change-Id: Ic95f603b793319f99c9c1fbce43f773bfc8126c0
So that importers can adjust the file before inserting.
* guix/scripts/import.scm (%standard-import-options): Add ‘--file-to-insert’.
(guix-import): Pass it to importers when ‘--insert’ is set.
Change-Id: I8e7a18ee8e0f96d7fc5688a207a7a5390ad2fa30
* guix/utils.scm (find-definition-location): New procedure.
(find-definition-insertion-location): Define with it.
* guix/scripts/import.scm (import-as-definitions, guix-import): Support
expressions defined by 'define.
Change-Id: I03118e1a3372028b4f0530964aba871b4a1a4d25
For consistency with ‘insert-expression’.
* guix/scripts/import.scm (guix-import): Add two newlines after inserting.
Change-Id: I55b45ca137d175fdf6ee5c0bb2b6b1ca8385750d
* gnu/packages/golang.scm (%go-1.23-arm64-micro-architectures): New
variable.
(go-1.23)[compiler-cpu-architectures]: Add aarch64 micro-architectures.
* guix/transformations.scm (tuning-compiler): Update the go optimizer to
also support GOARM64.
Change-Id: I8825f9857e07c1634ea346d5a16ae9550f340e65
* guix/build/cmake-build-system.scm (configure): Add and use generator
field to configure the build system. Create and use CMake variable cache
file. Set the CMake variable BUILD_TESTING to the value of TESTS? so
that a package can optionally build tests. Set CMAKE_COLOR_DIAGNOSTICS
to ON. Set max load for parallel builds.
(build, install): New function.
(check): Replace call to gnu-build's non-parallelizable check with
function using cmake's ctest.
(%standard-phase): Add new build and install functions as phases.
* guix/build-system/cmake.scm (cmake-build, cmake-cross-build),
* guix/build-system/qt.scm (qt-build, qt-cross-build): Add generator
and test-exclude fields and remove unused test-target field.
* doc/guix.texi: Document new parameters.
* guix/build-system/cmake.scm (cmake-build),
* guix/build-system/qt.scm (qt-build): Add ninja to build-inputs.
Change-Id: Ifa8174c91f0fdc030ac5813e98f7c21cba1a7725
* guix/licenses.scm (ohl2-s): New variable.
(ohl2-p): New variable.
(ohl2-w): New variable.
* guix/import/utils.scm (%spdx-license-identifiers): Add references to them.
Change-Id: I212332041b6438af0ea7b869e38665147f6ce798
Signed-off-by: Danny Milosavljevic <dannym@friendly-machines.com>
* guix/scripts/offload.scm (choose-build-machine): Display amount of
free space using more specific units.
(check-machine-status): Same.
Change-Id: I93ebbf3115f15dacf57be7e63350bfbe8a3974b6
* guix/ui.scm (number->size): New procedure.
* guix/scripts/gc.scm (guix-gc)[actions]: Display the amount of
collected-garbage using more specific units.
[ensure-free-space]: Display the size using an appropriate size unit.
* nix/libstore/gc.cc (deletePathRecursive, removeUnusedLinks): Same.
* nix/libstore/optimise-store.cc (showBytes): Move function ...
* nix/libstore/misc.cc: ... to here. Expand to adjust the output based
on the amount of bytes received.
Change-Id: Idceb1a13f8e45f959d327f53d1a8accb29d2678b
Since qtwebengine and qtbase are not installed into the same prefix,
the default path for QtWebEngineProcess won't work. Fix it so that
we no longer need to set QTWEBENGINEPROCESS_PATH anymore.
* gnu/packages/qt.scm (qtwebengine-5, qtwebengine) [arguments]:
Substitute 'QLibraryInfo::LibraryExecutablesPath' in substitute-source phase.
[native-search-paths]: Remove QTWEBENGINEPROCESS_PATH.
* guix/build/qt-utils.scm (variables-for-wrapping): Remove
QTWEBENGINEPROCESS_PATH.
Change-Id: Ie0dfaf8c2355a679e2a3ddeacf09654830f9ab2f
Reviewed-by: Maxim Cournoyer <maxim.cournoyer@gmail>
A nice feature of offload builds is that Guix will throttle the start of
new jobs based on the overload-threshold. There is no equivalent for
local builds, so one must either run builds in serial (--max-jobs=1) and
endure single-threaded builds or run concurrent builds and watch the
system overload as it runs multiple multi-threaded builds.
From a benchmark comparing the compilation of concurrent Folly builds,
the "max-load" option reduced the overall time by 8.3%. Memory use also
drops considerably since we are only running 1/4 of the processes at any
time.
* guix/build/gnu-build-system.scm (build, check): Set max load.
Change-Id: I97f1e3e59880b6ed23faed2038eb5279415e9c95
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* guix/build/gnu-build-system.scm (configure): Use ‘search-input-file’
instead of ‘assoc-ref’ when looking for bash.
* gnu/packages/commencement.scm (%boot-gash-inputs): Update comment.
Change-Id: Ie95e95cfeb9f004fd304ff2af471ea5840af2b2e
* guix/build/utils.scm (wrap-program): Set the value of the -a option of
`exec' in the wrapper to ${0##*/} instead of $0, to use its base name instead
of the complete file name.
Fixes: https://issues.guix.gnu.org/73405
Change-Id: Iec5984d4d934c8df88a90ff653947f7d07413ae4
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This allows compiling modules with unicode in their names.
* guix/gexp.scm (compiled-modules): Attempt to set LC_CTYPE to C.UTF-8.
Change-Id: Ie92a57fe1c3b45d1c7a5e8865fcf291c5f590c11
Signed-off-by: Janneke Nieuwenhuizen <janneke@gnu.org>
Support for non-ASCII characters was mixed. Some gexp forms did support them,
while others did not. Combined with current value for
%default-port-conversion-strategy, that sometimes led to unpleasant surprises.
Fixes#73660, see <https://issues.guix.gnu.org/73660>.
* guix/gexp.scm (gexp->derivation): Default LC_CTYPE to C.UTF-8.
(gexp->script, text-file*): Set port encoding to UTF-8.
Change-Id: Ie92a57fe1c3b45d1c7a5e8865fcf291c5f590c11
Signed-off-by: Janneke Nieuwenhuizen <janneke@gnu.org>
Fixes <https://issues.guix.gnu.org/70826>.
This allows users to specify extra arguments specific to the underlying
mapped device type.
* gnu/system/mapped-devices.scm (<mapped-device>)[arguments]: New field.
(device-mapping-service-type): Honor it.
* guix/scripts/system.scm (check-mapped-devices): Likewise.
* gnu/system/linux-initrd.scm (raw-initrd): Likewise.
* doc/guix.texi (Mapped Devices): Document it.
Reported-by: 45mg <45mg.writes@gmail.com>
Change-Id: Idef5a3e68535c412f13bae9a92c81c49053d4f4a
* guix/lint.scm (check-compiler-for-target): Adjust the logic when
checking the make-flags to actually determine if it is a gexp or not.
* tests/lint.scm (compiler-for-target: looks through G-expressions): Fix
test.
Change-Id: I0040cf29c8197d394e63ac90b2fba7ca5bcb5861
Defaults should be set in guix/build-system/guile.scm rather than
guix/build/guile-build-system.scm, to disambiguate at first sight
where those defaults are set.
* guix/build-system/guile.scm (guile-build)
<#:not-compiled-file-regexp>: Add default.
* guix/build/guile-build-system.scm (build): Remove unused keyword
defaults.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Fixesguix/guix#664.
This is necessary when running ‘guix-daemon’ as an unprivileged user and
also when running ‘guix weather’ as an unprivileged user.
* guix/pki.scm (ensure-acl): Make ‘%acl-file’ #o644.
* guix/scripts/archive.scm (authorize-key): Likewise.
* guix/ssh.scm (remote-authorize-signing-key): Likewise.
Change-Id: I3c979b2cdf52e7cb657d8fafa244c58854e7fb67
* gnu/packages/patches/luanti-paths.patch: New file.
* gnu/packages/luanti.scm (luanti)[source]: Use it.
[#:phases]<check>: Use LUANTI_GAME_PATH.
[native-search-paths]: Rename “MINETEST_GAME_PATH” to “LUANTI_GAME_PATH”.
Rename “MINETEST_MOD_PATH” to “LUANTI_MOD_PATH”.
* gnu/local.mk (dist_patch_DATA): Adjust accordingly.
* guix/build/luanti-build-system.scm (check): Use LUANTI_MOD_PATH.
There is currently no convenient way to inject our sanity-check.py
script in the inputs of a project that extends another build-system
with pyproject components. Thus we usually don't run sanity-check for
such cases (it's only python build and install).
This patch improves a bit this issue by exposing our script. Since it
doesn't change derivations, this doesn't lead to rebuilds and can be
merged in master.
* guix/build-system/pyproject.scm
(sanity-check.py): Replace variable by...
(default-sanity-check.py): Add exported procedure replacing and
extending former sanity-check.py.
(lower)[sanity-check.py]: Add and use argument.
Change-Id: I422d3d2d53b59548099d381feae9b956f5e2e07a
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
This is a follow-up to 23cbbe6860
* guix/records.scm: Remove autoload target-most-positive-fixnum.
Change-Id: I0e5b38382e3152c5f44a6626e618b4c7b027595d
* guix/import/nuget.scm (fetch-repo-info-from-snupkg): Use http-fetch, and
guard. Dont use mkstemp, just put-bytevector to file.
Change-Id: Ied9d64651d0ccd7875a9d80ac085cf5947c40c4c
Reviewed-by: Danny Milosavljevic <dannym@friendly-machines.com>
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>