Commit graph

8245 commits

Author SHA1 Message Date
Nicolas Graves
97f6cc4389
build-system: rakudo: Clarify private-keywords.
Some arguments used for lower but not for the builder were passed as
arguments to the builders.  Remove this ambiguity.

* guix/build-system/rakudo.scm (lower)[private-keywords]: Add keywords
  with-prove6? and with-zed?,...
  (rakudo-build): ... removed from here.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-09-04 12:19:55 +02:00
Nicolas Graves
fcdcfa149d
build-system: android-ndk: Improve lower configurability.
* guix/build-system/android-ndk.scm (default-android-build,
default-android-googletest): Add and export variables.
  (lower): Add their respective keywords.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-09-04 12:19:55 +02:00
Nicolas Graves
9073a7e410
build-system: tree-sitter: Improve lower configurability.
* guix/build-system/tree-sitter.scm (default-node,
default-tree-sitter, default-tree-sitter-cli): Add and export variables.
  (lower): Add their respective keywords.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-09-04 12:19:55 +02:00
Nicolas Graves
cf05f12cb7
build-system: copy: Remove dead glibc code.
An unused glibc package made its way into the copy-build-system.
It's confusing, so remove it.

* guix/build-system/copy.scm (default-glibc): Remove variable.
  (lower): Remove glibc keyword.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-09-04 12:19:55 +02:00
Nicolas Graves
571509d5fa
size: Improve error message.
Fixes guix/guix#2429

* guix/scripts/size.scm (file-size): Improve error message.

Change-Id: I0e0f6de1eded8a780d2edc07ce1fbc5c7ff73e25
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-09-04 12:19:53 +02:00
Brian Kubisiak
325689d036
build-system/tree-sitter: Build with -std=c11.
* guix/build/tree-sitter-build-system.scm (install): Switch to
building with -std=c11.

Fixes: guix/guix#2215
Change-Id: I04f3ede07aeaaa9cf95272611d6346295f603b69
Signed-off-by: Danny Milosavljevic <dannym@friendly-machines.com>
2025-09-04 02:27:57 +02:00
Ludovic Courtès
1c235670d8
tests: Reduce build timeout to 3 minutes for Scheme tests.
* guix/tests.scm (open-connection-for-tests): Reduce #:timeout to 3mn.
(call-with-external-store): Likewise.

Change-Id: I4375e070618a5f38a82a1d26f8424bf4abb607e6
2025-09-03 12:34:13 +02:00
Reepca Russelstein
9202921e81
perform-download: Use (ice-9 sandbox) for mirrors.
"guix perform-download" is used to implement the daemon's "download" and
"git-download" builtin builders.  Because these are builtins, it runs without
any additional isolation beyond merely running as a build user.  In such a
context, allowing arbitrary user-supplied code to be evaluated will easily
lead to the build user being taken over, which can then be used to corrupt
future builds, enable exploitation of certain vulnerabilities, and in the case
of the rootless daemon completely take over guix-daemon.

Use (ice-9 sandbox) to ensure that only safe bindings are available during the
evaluation of the content-addressed-mirrors file.

* guix/perform-download.scm (%safe-bindings, %sandbox-module): new variables.
  (syntax-noop): new syntax.
  (eval-content-addressed-mirrors, assert-store-file,
   call-with-input-file/no-symlinks): new procedures.
  (perform-download): use assert-store-file to ensure files are in the store
  before being read.  Use call-with-input-file/no-symlinks for opening
  untrusted files.  Use eval-content-addressed-mirrors to evaluate the
  content-addressed-mirrors file.

Change-Id: I8ed27a95d84dbcc7d72d0d75f172d113f8be6c79
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-09-01 16:13:29 +02:00
Reepca Russelstein
f607aaaaaa
download: Handle content-addressed-mirrors returning #f.
* guix/build/download.scm (url-fetch): don't pass the return value from a
  content-addressed-mirror procedure to 'string->uri' if it is #f.

Change-Id: Ic4f94f86fcfebe6f2e60cb3c4330ce57886ab647
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-09-01 16:13:19 +02:00
Reepca Russelstein
2a333541e8
perform-download: Ensure reading never evaluates code.
Since this is used to implement the "download" and "git-download" builtins,
which are run outside of any chroot, this is trusted code with respect to the
user-supplied strings it reads.

* guix/scripts/perform-download.scm (read/safe): new procedure.
  (perform-download, perform-git-download): use it.
  (guix-perform-download): explicitly set 'read-eval?' to #f and
  'read-hash-procedures' to '().  #f is the default value of 'read-eval?' on
  startup, but set it anyway to be certain.

Change-Id: I93cb8e32607a6f9a559a26c1cbd6b88212ead884
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-09-01 16:13:11 +02:00
Nicolas Graves
d431f4620a
cve: Upgrade to JSON 2.0 feeds.
Fixes guix/guix#2213.  The 1.1-formatted-data is no longer available
from NIST.

* guix/cve.scm (string->date*, <cve-item>,
reference-data->cve-configuration, cpe-match->cve-configuration,
configuration-data->cve-configurations, json->cve-items,
yearly-feed-uri, cve-item->vulnerability): Upgrade to JSON 2.0 feeds
schema.
(<cve>): Remove uneeded record.
* tests/cve-sample.json: Update them. Remove CVE-2019-0005 (no value
added, lots of lines).
* tests/cve.scm (%expected-vulnerabilities): Upgrade accordingly.
(json->cve-items, vulnerabilities->lookup-proc tests): Update accordingly.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-08-31 12:39:24 +02:00
Nicolas Graves
8f310b6f27
gnu: mercurial: Add package and rename former to mercurial/pinned.
Mercurial currently has CVEs. IMHO, it's unsafe to carry them around
in a profile.  However, updating mercurial potential leads to a lot of
rebuilds and I don't want to tackle this right now.

As for other packages, the way forward is to add a variant of the
package only used for hg-fetch, here mercurial/pinned.

* gnu/packages/version-control.scm
(mercurial-check-phase): Add helper variable.
(mercurial): Update to 7.1.
[arguments]: Use gexps.
<#:phases>: Refresh them. Add phase 'add-install-to-pythonpath for
running tests. Run tests after install. Add phase 'configure-check.
<#:imported-modules, #:modules>: Add them for
'add-install-for-pythonpath.k
[native-inputs]: Remove python-nose. Add python-setuptools-next,
python-setuptools-scm-next.
(mercurial/pinned): Inherit from mercurial, but build the exact same
derivation as the previous mercurial variable.

* guix/hg-download.scm (hg-package): Use mercurial/pinned.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-08-31 12:21:12 +02:00
Nicolas Graves
6c71c8dc4a
gnu: subversion: Add package and rename former to subversion/pinned.
Subversion currently has CVEs. IMHO, it's unsafe to carry them around
in a profile. However, updating subversion potential leads to a lot of
rebuilds and I don't want to tackle this right now.

As for other packages, the way forward is to add a variant of the
package only used for svn-fetch, here subversion/pinned.

* gnu/packages/version-control.scm (subversion): Update to 1.14.5.
(subversion/pinned): Inherit from subversion, but build the exact same
derivation as the previous subversion variable.

* guix/svn-download.scm (subversion-package): Use subversion/pinned.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-08-31 12:21:09 +02:00
Ludovic Courtès
df763d6a2d
git-authenticate: Print a clear error message for malformed keys.
Fixes guix/guix#1141.

* guix/git-authenticate.scm (load-keyring-from-blob): Change ‘oid’ to
‘entry’ and adjust accordingly.  Raise a ‘&formatted-message’ error when
‘read-radix-64’ returns #f or EOF.
(load-keyring-from-reference): Adjust accordingly.

Change-Id: Ib88c94dac543caf6b1e0855242ba50063c944765
2025-08-23 16:57:21 +02:00
Romain GARBAGE
20077256fa
import: pypi: Use autoload instead of use-module.
* guix/import/pypi.scm: Use autoload instead of use-module.

Change-Id: I67001e41c398250e74782c06937dadea8402d4d9
Reviewed-by: zimoun, ngraves
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-08-22 19:27:45 +01:00
Romain GARBAGE
0ff24b4037
import: pypi: Resolve unzip package if needed.
Fixes #1066.

* guix/import/pypi.scm (unzip-command): New variable.
(guess-requirements): Use unzip-command.

Change-Id: I1b6b85d0a22836bad77d6c5d050ccf639118d21a
Reviewed-by: zimoun, ngraves
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-08-22 19:27:13 +01:00
Hilton Chain
92d130e035
import: crate: Stop importing dependencies from crates.io.
* guix/scripts/import/crate.scm (show-help, %options, guix-import-crate)
[--recursive, --recursive-dev-dependencies, --mark-missing]: Remove options.
* doc/guix.texi (Invoking guix import)[crate]: Adjust accordingly.
Mention packaging workflow.
* guix/import/crate.scm (make-crate-sexp): Don't use "rust-" prefix and semver
suffix for package name.
[#:cargo-inputs, #:cargo-development-inputs, #:build?]: Remove arguments.
(crate->guix-package)[#:include-dev-deps?, #:mark-missing?]: Remove arguments.
(<crate-dependency>): Remove data type.
(make-crate-dependency, crate-dependency?, json->crate-dependency)
(crate-version-dependencies, package-names->package-inputs)
(maybe-cargo-inputs, maybe-cargo-development-inputs, maybe-arguments)
(version->semver-prefix, find-package-version, crate-recursive-import): Remove
procedures.
* tests/crate.scm (test-foo-crate, test-bar-crate): Adjust for modified tests.
(test-foo-dependencies, test-bar-dependencies, test-root-crate)
(test-root-dependencies, test-intermediate-a-crate)
(test-intermediate-a-dependencies, test-intermediate-b-crate)
(test-intermediate-b-dependencies, test-intermediate-c-crate)
(test-intermediate-c-dependencies, test-leaf-alice-crate)
(test-leaf-alice-dependencies, test-leaf-bob-crate)
(test-leaf-bob-dependencies, rust-leaf-bob-3, rust-leaf-bob-3.0.2-yanked):
Remove variables.
("crate->guix-package yanked", "crate->guix-package only yanked available"): New
tests.
("crate->guix-package"): Adjust accordingly.
("crate->guix-package-marks-missing-packages", "crate-recursive-import")
("crate-recursive-import-honors-existing-packages")
("crate-import-only-yanked-available"): Remove tests.

Change-Id: Ib1d24511ed0ea1a2373f53de12e06afa7950a7d7
2025-08-21 19:09:04 +08:00
Hilton Chain
efaa3e681e
build-system: cargo: Deprecate #:cargo-inputs and #:cargo-development-inputs.
* guix/build-system/cargo.scm (lower): Emit warning when using #:cargo-inputs
or #:cargo-development-inputs.
* doc/guix.texi (Build Systems)[cargo-build-system]: Deprecate #:cargo-inputs
and #:cargo-development-inputs.

Change-Id: I43ed66e04c55368159aed309367c4ac278d8cc58
2025-08-21 19:09:04 +08:00
Jean-Pierre De Jesus DIAZ
f0560f865a
gnu: tree-sitter: Update to 0.25.3.
* gnu/packages/tree-sitter.scm (tree-sitter): Update to 0.25.3.
[arguments]<#:phases>: Add 'patch-_ts_dup-visibility for linking with Rust
bindings.
(tree-sitter-cli)[source]: Keep files required for building bindings.
[inputs]: Use ‘cargo-inputs’.
[arguments]: Remove #:cargo-inputs, #:cargo-development-inputs.
<#:cargo-test-flags>: Adjust failing tests to skip.
<#:cargo-install-paths>: Add "cli".
<#:phases>: Merge 'patch-node and 'patch-dot into 'patch-references.
Update their references and use ‘search-input-file’.
Remove modification of 'install, #:cargo-install-paths now takes care of the
installation.
* gnu/packages/rust-crates.scm (lookup-cargo-inputs)[tree-sitter-cli]: New
entry.
* guix/build/tree-sitter-build-system.scm
(patch-dependencies): Drop `peerDependencies' from package.json.
(build): Remove deprecated ‘--no-bindings’ option.
(check): Set CC.
(install): Add `src' to include directories in order for external
scanners to find `tree_sitter/parser.h'.

Co-authored-by: Hilton Chain <hako@ultrarare.space>
Change-Id: I3941a1785be8deb60f288fcd5983255f075f9215
Signed-off-by: Hilton Chain <hako@ultrarare.space>
2025-08-21 19:08:32 +08:00
Hilton Chain
12e0b9e9e4
import: crate: Add ‘--lockfile’ option.
* guix/import/crate.scm (cargo-inputs-from-lockfile)
find-cargo-inputs-location, extract-cargo-inputs): New procedures.
* guix/scripts/import/crate.scm (%options): Add ‘--lockfile’ option.
(show-help): Add it.
(guix-import-crate): Use it.
* doc/guix.texi (Invoking guix import): Document it.

Change-Id: I291478e04adf9f2df0bf216425a5e8aeba0bedd9
2025-08-21 19:08:21 +08:00
Hilton Chain
f27fb840c2
import: crate: Add Cargo.lock parser.
* guix/import/crate/cargo-lock.scm: New file.
* Makefile.am (MODULES): Regisiter it.
* etc/teams.scm (rust)[#:scope]: Add it.
* CODEOWNERS: Add it.
* guix/import/crate.scm (cargo-lock->expressions): New procedure.
* tests/crate.scm (temp-file): New variable.
("crate-lockfile-import"): New test.

Co-authored-by: Murilo <murilo@disroot.org>
Co-authored-by: Luis Guilherme Coelho <lgcoelho@disroot.org>
Change-Id: I95421e9e2ba11a671b4bc4e1323c6d31a1b012c5
2025-08-21 19:08:21 +08:00
Hilton Chain
4e8eab6fe4
build/cargo: Accept rust-sysroot from native-inputs.
This is a workaround to support Rust cross-compilation in build systems other
than cargo-build-system.  Since there's no interface for target-inputs, using
native-inputs makes most sense.

* guix/build-system/cargo.scm (lower)[bag]<target-inputs>: Label rust-sysroot
with its package name.
* guix/build/cargo-build-system.scm (configure): Use it.
When cross-compiling, accept rust-sysroot from native-inputs if there's none
in inputs.

Change-Id: I5cb63c8c815d3a2c9f0ece01857254f6d0090dd1
2025-08-21 19:08:21 +08:00
Hilton Chain
765a369c5e
build-system: cargo: Export ‘cargo-triplet’.
This will make Rust cross compilation support in other build systems easier.

* guix/build-system/cargo.scm (cargo-triplet): Export.
Make ‘target’ argument optional.

Change-Id: I226bf4a7d8065eb7911da148d0cdf3352a47bde6
2025-08-21 19:08:21 +08:00
Hilton Chain
b1440e1f37
build-system: cargo: Add ‘cargo-inputs’.
* gnu/packages/rust-crates.scm: New file.
* gnu/packages/rust-sources.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Regisiter them.
* guix/build-system/cargo.scm (define-cargo-inputs): New macro.
(crate-source, cargo-inputs): New procedures.
* guix/import/crate.scm: Hide ‘crate-source’ from (guix build-system cargo).
* etc/teams/rust/audit-rust-crates: New file.
* etc/teams/rust/cleanup-crates.sh: New file.
* etc/teams/rust/rust-crates.tmpl: New file.
* etc/teams/rust/unpack-new-crates.sh: New file.

Change-Id: I2f2d705a3e376ed3c646f31b824052a2278d4fb3
2025-08-21 19:08:20 +08:00
Hilton Chain
a51c34a22a
build/cargo: Unconditionally use system gettext.
No special value is required for this environment variable.

* guix/build/cargo-build-system.scm (configure): Set GETTEXT_SYSTEM
unconditionally.

Change-Id: Id40fecaf75fa76c7b7f1404db226fa1ca6a45a5e
2025-08-21 19:08:20 +08:00
Hilton Chain
99dbcf8c4e
build/cargo: Use sytsem oniguruma.
* guix/build/cargo-build-system.scm (configure): Set RUSTONIG_SYSTEM_LIBONIG.

Change-Id: I02624d98ade15d65965f46555e5a210a7630dd5d
2025-08-21 19:08:20 +08:00
Hilton Chain
836b7a05ec
build/cargo: Use system libsqlite3.
* guix/build/cargo-build-system.scm (configure): Set
LIBSQLITE3_SYS_USE_PKG_CONFIG.

Change-Id: I9a8a5818992ee687ec67abadffef67ce1533c6d3
2025-08-21 19:08:20 +08:00
Hilton Chain
9ba78f3ccf
build/cargo: Don't vendor self.
* guix/build/cargo-build-system.scm (crate-src?, configure): Exclude self.
* gnu/packages/gnome.scm (librsvg)[#:phases]: Remove ‘dont-vendor-self’.
* gnu/packages/python-crypto.scm (python-cryptography)[#:arguments]: Likewise.
* gnu/packages/python-xyz.scm (python-libcst)[#:arguments]: Likewise.
* gnu/packages/syndication.scm (newsboat)[#:arguments]: Likewise.
* gnu/packages/antivirus.scm (clamav)[#:arguments]: Likewise.

Change-Id: I5e01721fb705937f5fcf858c21b6d7e27ade6c10
2025-08-21 19:08:20 +08:00
Hilton Chain
a087db5f83
build/cargo: Support directory source inputs.
* guix/build/cargo-build-system.scm (cargo-package?): New procedure.
(crate-src?): Support directory source inputs.
(configure): Likewise.

Change-Id: If2bd318b44ed765baec69309f25d320edceee116

Fixes: https://codeberg.org/guix/guix/issues/753
2025-08-21 19:08:20 +08:00
Efraim Flashner
c8456eff68
build/cargo: Don't try to unpack sanity-check.py.
* guix/build/cargo-build-system.scm (crate-src?): Also don't try to
check python scripts for Cargo.toml.

Change-Id: I001a89b83d2e472706b1263007be45d1153c140f
2025-08-21 19:08:20 +08:00
Hilton Chain
8292d0d477
build/cargo: Set default value of arguments for build phases.
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
2025-08-21 19:08:19 +08:00
Hilton Chain
5494343bfc
build-system: cargo: Support installing Cargo workspace.
*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
2025-08-21 19:08:19 +08:00
Hilton Chain
878bdd7fb6
build-system: cargo: Support packaging Cargo workspace.
* 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
2025-08-21 19:08:19 +08:00
Hilton Chain
5d294e2023
build/cargo: Print out all non-empty binary files.
* 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
2025-08-21 19:08:19 +08:00
Hilton Chain
0ee848e2ee
build/cargo: Pass ‘--offline’ to cargo.
This will make error messages more helpful.

* guix/build/cargo-build-system.scm (build, check, package, install): Pass
‘--offline’ to cargo.

Change-Id: Ic95f603b793319f99c9c1fbce43f773bfc8126c0
2025-08-21 19:08:19 +08:00
Hilton Chain
bb01612462
import: crate: crate-name->package-name: Move to (guix build-system cargo).
* guix/import/crate.scm (crate-name->package-name): Move to...
* guix/build-system/cargo.scm (crate-name->package-name): ...here and export.

Change-Id: Ie9813179d6c40d159956cc1e2ae59a74dea0a42d
2025-08-21 19:08:19 +08:00
Hilton Chain
d9b767640c
scripts: import: Skip existing definition for ‘--insert’ option.
* guix/scripts/import.scm (guix-import): Skip existing definition for
‘--insert’ option.

Change-Id: I2c4242669f974b263a018ab0cf56538bd7c81d06
2025-08-21 19:08:19 +08:00
Hilton Chain
2ca0b957f2
scripts: import: Pass "--insert" to importers.
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
2025-08-21 19:08:19 +08:00
Hilton Chain
6094090db2
scripts: import: Support expressions defined by 'define.
* 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
2025-08-21 19:08:18 +08:00
Hilton Chain
115accdb26
scripts: import: Add two newlines for ‘--insert’ option.
For consistency with ‘insert-expression’.

* guix/scripts/import.scm (guix-import): Add two newlines after inserting.

Change-Id: I55b45ca137d175fdf6ee5c0bb2b6b1ca8385750d
2025-08-21 19:08:18 +08:00
Hilton Chain
a6598a9019
scripts: import: Correct behavior for ‘--insert’ option.
The info manual documents ‘--insert=FILE’, but it wasn't actually supported.

* guix/scripts/import.scm (show-help): Add missing ‘FILE’.
(guix-import): Accept ‘--insert=FILE’.

Change-Id: I540d5feae3fe49c00e9bd6f7a8649ffe0d6e006d
2025-08-21 19:08:18 +08:00
ngraves
274b71bdce
build-system/go: Fix substitutable? inconsistency.
This inconsistency blocks https://codeberg.org/guix/guix/pulls/133

* guix/build-system/go.scm (go-build): Fix substitutable? inconsistency.

Change-Id: Ie47448bfa350458b291c4a5bddd8844317a66d30
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-08-11 21:42:39 +01:00
Efraim Flashner
bca2819807
guix: lint: Fix typos in module.
Fixes bug #1825 and other typos.

* guix/lint.scm (check-wrapper-inputs, check-derivation,
%local-checkers): Fix typos.

Change-Id: Ic97e277fb7ede651bed2510dfa8a11fce7c8a61b
2025-08-06 12:14:23 +03:00
Efraim Flashner
86a7cd424e
gnu: go-1.23: Add aarch64 micro-architecture compiler support.
* 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
2025-08-06 12:02:52 +03:00
Efraim Flashner
58ba5668f4
guix: cpu: Recognize CPUs through GCC-15.
* guix/cpu.scm (cpu->gcc-architecture)[x86_64]: Match with new
cpu-family.  Update matched CPUs.
[aarch64]: Update matched CPUs.
(gcc-architecture->micro-architecture-level): Add new gcc architectures.

Change-Id: Ib8fef3787a8db0d70e6bd2eef539beacc81d4e7a
2025-08-06 12:02:52 +03:00
Arun Isaac
cddc61ce95
lint: Improve grammar of minimal variant warning message.
* guix/lint.scm (check-inputs-should-use-a-minimal-variant): Add "be" in
warning message.
2025-08-04 17:00:31 +01:00
Greg Hogan
f361e7fa4a
gnu: cmake-build: Retry failed tests.
* guix/build-system/cmake.scm (cmake-build, cmake-cross-build),
* guix/build-system/qt.scm (qt-build, qt-cross-build): Add
test-repeat-until-pass? and test-repeat-until-pass-count fields.
* guix/build/cmake-build-system.scm (check): Add and use new fields.
* doc/guix.texi: Document new parameters.

Change-Id: I046dfc86a18fb2a2be4ae362c1226c2f8cab129c
2025-08-04 04:11:27 +00:00
Greg Hogan
27b14dee50
gnu: ninja: Update to 1.13.1.
* gnu/packages/ninja (ninja): Rename to ...
(ninja-pinned): ... this and update to 1.13.1.
[arguments]<#:tests?>: Disable.
[inputs]: Add re2c.
(ninja): Inherit from ninja/pinned.
* guix/build-system/cmake.scm, guix/build-system/meson.scm,
guix/build-system/qt.scm (default-ninja): Use ninja/pinned.
* gnu/packages/build-tools.scm (meson)[inputs],
(meson-python)[propagated-inputs]: Replace ninja with ninja/pinned.
* gnu/packages/python-xyz.scm (python-dbus-python, python-scikit-build)
[native-inputs]: Replace ninja with ninja/pinned.

Change-Id: I1b0291a37e83280ed66fd8042df962ada6d475be
2025-08-04 04:11:19 +00:00
Greg Hogan
5da1d852c2
build-system/cmake: Use CMake.
* 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
2025-08-03 23:36:40 +00:00
Cayetano Santos
9e3bdb02d8
licenses: Add CERN Open Hardware Licence.
* 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>
2025-08-03 10:58:14 +02:00