Commit graph

651 commits

Author SHA1 Message Date
Giacomo Leidi
40c2edf91b
build-system: mix: Allow passing test flags.
* guix/build-system/mix.scm (mix-build): Add test-flags keyword
argument and pass it on.
* guix/build/mix-build-system.scm (check): Add test-flags keyword
argument and pass it to Mix.

Change-Id: Ib8243aaaf7a7d02df993cee44f33b36566049e83
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-09-25 22:04:26 +02:00
Maxim Cournoyer
10482f731e
Reapply "Update Maxim's email address."
This reverts commit a7db92d9b3, this time with
the more careful command, to avoid a world rebuild:

grep -rl --exclude-dir=build --exclude-dir=patches --exclude=ld-wrapper.in \
  --exclude=sitecustomize.py --exclude=guix-emacs.el maxim.cournoyer@gmail.com |
  xargs sed -i 's/maxim.cournoyer@gmail.com/maxim@guixotic.coop/g'

Change-Id: I0871f5cf9ace79e34e78e24154d0da6ea95a3a91
2025-09-18 13:44:12 +09:00
Maxim Cournoyer
a7db92d9b3
Revert "Update Maxim's email address."
This reverts commit d0d87a744d. Oops! This
caused a world rebuild.

Change-Id: I25fff644b2b61d0ee93d69b457b04c72b5b74d15
2025-09-18 12:07:31 +09:00
Maxim Cournoyer
d0d87a744d
Update Maxim's email address.
The change was automated via:

  git grep -l maxim.cournoyer@gmail.com |
    xargs sed -i 's/maxim.cournoyer@gmail.com/maxim@guixotic.coop/g'

* .mailmap: New entry.

Change-Id: Iaa88b1e51c94159c49138fb43910badb990eb169
2025-09-18 08:05:19 +09:00
Nicolas Graves
4a33614dd9
build-system: Introduce @* macro for lazy module resolution.
* guix/build-system.scm (@*): New macro for runtime module resolution.
* guix/build-system/agda.scm (default-agda): Use @* instead of
resolve-interface and module-ref.
* guix/build-system/android-ndk.scm (default-android-build,
default-android-googletest): Likewise.
* guix/build-system/ant.scm (default-jdk, default-ant, default-zip):
Likewise.
* guix/build-system/cargo.scm (default-rust): Likewise.
* guix/build-system/chicken.scm (default-chicken): Likewise.
* guix/build-system/composer.scm (default-php,
default-composer-classloader): Likewise.
* guix/build-system/dub.scm (default-ldc, default-dub,
default-pkg-config, default-ld-gold-wrapper): Likewise.
* guix/build-system/elm.scm (default-elm, default-elm-core,
default-elm-json): Likewise.
* guix/build-system/emacs.scm (default-emacs): Likewise.
* guix/build-system/glib-or-gtk.scm (default-glib): Likewise.
* guix/build-system/go.scm (default-go, default-gccgo, make-go-std):
Likewise.
* guix/build-system/haskell.scm (default-haskell): Likewise.
* guix/build-system/julia.scm (default-julia): Likewise.
* guix/build-system/linux-module.scm (default-linux): Likewise.
* guix/build-system/luanti.scm (default-optipng, default-luanti,
default-luanti-game, default-xvfb-run): Likewise. Remove otherwise
unused individual plugin accessor functions.
* guix/build-system/maven.scm (default-maven, default-jdk,
default-maven-plugins): Likewise. Remove otherwise unused individual
plugin accessor functions.
* guix/build-system/meson.scm (default-ninja, default-meson):
Likewise.
* guix/build-system/minify.scm (default-esbuild): Use @* instead of
resolve-interface and module-ref.
* guix/build-system/mix.scm (default-elixir-hex,
default-rebar3, default-elixir): Likewise.
* guix/build-system/node.scm (default-node): Likewise.
* guix/build-system/ocaml.scm (default-ocaml, default-findlib,
default-dune-build-system, default-ocaml4.07,
default-ocaml4.07-findlib ,default-ocaml4.07-dune, default-ocaml4.09,
default-ocaml4.09-findlib, default-ocaml4.09-dune, default-ocaml5.0,
default-ocaml5.0-findlib, default-ocaml5.0-dune): Likewise.
* guix/build-system/perl.scm (default-perl): Likewise.
* guix/build-system/pyproject.scm (default-python): Likewise.
* guix/build-system/qt.scm (default-qtbase): Likewise.
* guix/build-system/r.scm (default-r): Likewise.
* guix/build-system/rakudo.scm (default-rakudo, default-prove6,
default-zef): Likewise.
* guix/build-system/rebar.scm (default-rebar3, default-erlang):
Likewise.
* guix/build-system/renpy.scm (default-renpy): Likewise.
* guix/build-system/ruby.scm (default-ruby): Likewise.
* guix/build-system/scons.scm (default-scons): Likewise.
* guix/build-system/texlive.scm (default-texlive-bin,
texlive-latex-bin): Likewise.
* guix/build-system/tree-sitter.scm (default-guile-json,
default-node, default-tree-sitter, default-tree-sitter-cli): Likewise.
* guix/build-system/vim.scm (default-vim, default-neovim): Likewise.
* guix/build-system/zig.scm (default-zig): Likewise.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-09-04 12:19:55 +02:00
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
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
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
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
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
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
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
nomike
01765b61c4
build-system/guile: Rename %scheme-file-regexp to default-scheme-file-regexp and export.
Follow-up to commit 0559a4b547.

* guix/build-system/guile.scm (%scheme-file-regexp): Rename to...
(default-scheme-file-regexp): ...this.  Export.

Change-Id: Ia4cfe59b4d0e9fda9555268f5c22e153123fc2c6
Signed-off-by: Danny Milosavljevic <dannym@friendly-machines.com>
2025-07-26 19:11:49 +02:00
Nicolas Graves
0559a4b547
build-system: guile: Remove unused build defaults.
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>
2025-07-16 23:50:51 +02:00
Nicolas Graves
8897360fb3
build-system: guile: Make #:documentation-file-regexp configurable.
* guix/build/guile-build-system.scm
  (install-documentation): Unset documentation-file-regexp keyword
  default.
  (%documentation-file-regexp): Move variable to...
* guix/build-system/guile.scm
  (%documentation-file-regexp): New variable.
  (guile-build, guile-cross-build): Use it.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-07-16 23:50:51 +02:00
Liliana Marie Prikler
abbdfbb775
gnu: Rename minetest to luanti.
* gnu/packages/luanti.scm: New file.
(luanti, luanti-server, luanti-topic, luanti-moreores, luanti-sound-api-core)
(luanti-basic-materials, luanti-coloredwood, luanti-ethereal)
(luanti-homedecor-modpack, luanti-mesecons, luanti-mineclone, luanti-mobs)
(luanti-mobs-animal, luanti-mobs-monster, luanti-pipeworks, luanti-technic)
(luanti-throwing, luanti-throwing-arrows, luanti-worldedit)
(luanti-unifieddyes, luanti-unified-inventory, luanti-advtrains)
(luanti-basic-trains, luanti-oneblock, luanti-wielded-light): New variables.
* gnu/packages/minetest.scm:
(minetest, minetest-server, minetest-topic, minetest-moreores)
(minetest-sound-api-core, minetest-basic-materials, minetest-coloredwood)
(minetest-ethereal, minetest-homedecor-modpack, minetest-mesecons)
(minetest-mineclone, minetest-mobs, minetest-mobs-animal)
(minetest-mobs-monster, minetest-pipeworks, minetest-technic)
(minetest-throwing, minetest-throwing-arrows, minetest-worldedit)
(minetest-unifieddyes, minetest-unified-inventory, minetest-advtrains)
(minetest-basic-trains, minetest-oneblock, minetest-wielded-light): Deprecate
in favor of the above.
(minetest-game): Move to…
* gnu/packages/luanti.scm (minetest-game): … here.
* gnu/local.mk (GNU_SYSTEM_MODULES): Register luanti.scm.
* guix/build-system/luanti.scm: New file.
(luanti-mod-build-system): New public variable.
* guix/build-system/minetest.scm (minetest-mod-build-system): Deprecate in
favor of luanti-mod-build-system.
* guix/build/luanti-build-system.scm: New file, renamed from…
* guix/build/minetest-build-system.scm: … this. Deprecate in favor of
luanti-build-system.
* guix/import/luanti.scm: New file, renamed from guix/import/minetest.scm.
(%contentdb-api): Switch to “https://content.luanti.org/api/”.
(luanti-package?, latest-luanti-release, luanti->guix-package)
(luanti-recursive-import, %luanti-updater): New public variables.
* guix/import/minetest.scm (minetest-package?, latest-minetest-release)
(minetest->guix-package, minetest-recursive-import, %minetest-updater):
Deprecate in favor of the luanti variants above.
* guix/scripts/import/luanti.scm: New file, renamed from
guix/scripts/import/minetest.scm.
(guix-import-luanti): New public variable.
* guix/scripts/import/minetest.scm (guix-import-minetest): Deprecate in favor
of guix-import-luanti.
* tests/minetest.scm: Rename to…
* tests/luanti.scm: … this.
* Makefile.am (MODULES, SCM_TESTS): Adjust accordingly.
* etc/teams.scm (games): Adjust accordingly.
* CODEOWNERS: Adjust accordingly.
2025-07-13 13:54:01 +02:00
Nicolas Graves
4557e8f581
build-system/pyproject: Export default-sanity-check.py.
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>
2025-07-08 12:09:34 +01:00
jgart
4aff859183
guix: asdf: Add asdf-build-system/clasp.
* guix/build-system/asdf.scm (asdf-build-system/clasp): New variable.
[native-search-paths]: Add search paths.

Change-Id: I3631fa0d55112fd6440d2b500dddc4d04ead78e6
Signed-off-by: jgart <jgart@dismail.de>
2025-06-25 15:23:16 -04:00
Morgan Smith
00025ab4ac
guix: emacs-build-system: Add #:lisp-directory.
* guix/build-system/emacs.scm (emacs-build): Add #:lisp-directory.
* guix/build/emacs-build-system.scm (unpack): Change into lisp-directory
after unpacking.

Change-Id: I3991af7188de72b29b1c6985ffe7185216cedb35
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2025-06-15 16:56:50 +02:00
Liliana Marie Prikler
d1ac3f1947
build-system: emacs: Guess test framework.
* guix/build/emacs-build-system (check-command): New variable.
(check): Use it.
* guix/build-system/emacs.scm (emacs-build)[test-command]: Set to #f.
2025-06-15 16:56:45 +02:00
Liliana Marie Prikler
3455034376
build-system: emacs: Enable tests when not cross-compiling.
This is a first effort towards making emacs-build-system more suitable for
cross-compilation.

* guix/build-system/emacs.scm (emacs-build)[#:tests?]: Enable when not
cross-compiling.
* gnu/packages/emacs-xyz.scm (emacs-ac-php, emacs-chatgpt-shell)
(emacs-inspector, emacs-tree-inspector, emacs-pug-mode, emacs-llama)
(emacs-magit, emacs-ezf, emacs-speed-type, emacs-graphql)
(emacs-fb2-reader, emacs-ample-regexps, emacs-rescript-mode)
(emacs-relative-buffers, emacs-emms, emacs-aio, emacs-async)
(emacs-latex-extra, emacs-auto-themer, emacs-bm, emacs-varuga)
(emacs-ellama, emacs-org-fc, emacs-go-mode, emacs-dash, emacs-undo-fu-session)
(emacs-s, emacs-lemon, emacs-fringe-helper, emacs-git-link)
(emacs-explain-pause-mode, emacs-zig-mode, emacs-calc-currency)
(emacs-string-inflection, emacs-ob-go, emacs-robot-log, emacs-rspec)
(emacs-sqlite3-api, emacs-shx, emacs-el-job, emacs-elisp-demos)
(emacs-sudo-edit, emacs-subed, emacs-deferred, emacs-company-lsp, emacs-jack)
(emacs-elquery, emacs-cov, emacs-god-mode, emacs-org-pomodoro)
(emacs-eglot-tempel, emacs-dumbparens, emacs-perspective, emacs-realgud)
(emacs-hydra, emacs-avy, emacs-lispy, emacs-clojure-mode, emacs-qt-pro-mode)
(emacs-sphinx-doc, emacs-julia-mode, emacs-js2-mode, emacs-nodejs-repl)
(emacs-projectile, emacs-skeletor, emacs-elfeed, emacs-elfeed-org)
(emacs-mocker, emacs-find-file-in-project, emacs-pyvenv, emacs-elpy)
(emacs-rainbow-delimiters, emacs-visual-fill-column, emacs-visual-replace)
(emacs-wucuo, emacs-yaml, emacs-yari, emacs-wgrep, emacs-islisp-mode)
(emacs-lua-mode, emacs-evil-collection, emacs-evil-owl, emacs-evil-exchange)
(emacs-evil-lion, emacs-evil-expat), emacs-monky, emacs-org, emacs-ht)
(emacs-yasnippet, emacs-memoize, emacs-use-package, emacs-xmlgen)
(emacs-cc-mode, emacs-php-mode, emacs-evil-surround, emacs-org-transclusion)
(emacs-json-reformat, emacs-display-wttr, emacs-git-messenger)
(emacs-enh-ruby-mode, emacs-browse-at-remote, emacs-tiny, emacs-unidecode)
(emacs-circe, emacs-evil-quickscope, emacs-groovy-modes, emacs-kotlin-mode_)
(emacs-kv, emacs-auth-source-pass, emacs-emacsql, emacs-org-recur)
(emacs-org-super-agenda, emacs-ts, emacs-circadian, emacs-eldev, emacs-citar)
(emacs-loop, emacs-elisp-refs, emacs-esup, emacs-macrostep, emacs-parent-mode)
(emacs-helpful, emacs-suggest, emacs-auto-yasnippet)
(emacs-git-auto-commit-mode, emacs-devil, emacs-devil-multiedit)
(emacs-go-translate, emacs-langtool, emacs-helm-company, emacs-picpocket)
(emacs-srht, emacs-github-review, emacs-deadgrep, emacs-adoc-mode)
(emacs-racer, emacs-sesman, emacs-buttercup, emacs-cort, emacs-annalist)
(emacs-general, emacs-libmpdel, emacs-navigel, emacs-eat, emacs-detached)
(emacs-repology, emacs-bfuture, emacs-undo-propose-el, emacs-tco-el)
(emacs-vdiff, emacs-exwm-firefox, emacs-rjsx-mode, emacs-dash-docs)
(emacs-casual-lib, emacs-evil-numbers, emacs-evil-traces, emacs-ox-tufte)
(emacs-org-jira, emacs-systemd-mode, emacs-doom-themes, emacs-exiftool)
(emacs-qrencode, emacs-org-journal, emacs-weblorg, emacs-execline)
(emacs-webpaste, emacs-keystore-mode, emacs-ein, emacs-straight-el)
(emacs-vundo, emacs-org-cliplink, emacs-x509-mode)[arguments]:
Remove #:tests?.
(emacs-f, emacs-shut-up, emacs-ansi, emacs-commander)
(emacs-ert-runner)[arguments]: Add #:tests? #f.
(emacs-with-editor, emacs-tablist, emacs-pkg-info, emacs-el-x, emacs-helm)
(emacs-xelb, emacs-repo): Likewise.
2025-06-15 16:56:45 +02:00
Morgan Smith
cea0ecb60b
build-system/emacs: Provide allowed and disallowed references.
* guix/build-system/emacs.scm (emacs-build): Pass #:allowed-references and

Change-Id: Ib9a35a7b2115365b96675fb7ca3914b0ae7e67c7
Reviewed-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2025-06-15 16:56:45 +02:00
Hilton Chain
14e0c9817d
build-system: zig: Expose #:zig-build-target.
* guix/build-system/zig.scm (zig-build, zig-cross-build)[#:zig-build-target]:
Expose.

Change-Id: Iedb75eced4ebc512251348246459653d5e4b9cd2
2025-05-26 10:41:03 +08:00
Ricardo Wurmus
3071ef9397
guix: Update to Bioconductor 3.21.
* guix/build-system/r.scm (bioconductor-uri): Update version in URI to 3.21.
* guix/import/cran.scm (%bioconductor-version): Update to 3.21.

Change-Id: I216576d42d013a00310cc2230e89567ffb1487a2
2025-05-12 08:53:55 +02:00
Maxim Cournoyer
f87204b2b2
build/cmake: Add #:implicit-inputs? and #:implicit-cross-inputs? arguments.
* guix/build-system/cmake.scm (lower) <#:implicit-inputs?>
<#:implicit-cross-inputs?>: New arguments.

Change-Id: I1f077f78f5836ce325827e7ef8d58ba554a8ed4f
Reviewed-by: Greg Hogan <code@greghogan.com>
2025-05-02 09:53:54 +09:00
Nicolas Graves
ac026164be
build-system: android-ndk: Improve style.
Like in other build-systems, make proper procedures to resolve the
build-system build-inputs bindings.

* guix/build-system/android-ndk.scm (default-android-build,
default-android-googletest): Add procedures.
(lower): Use them.

Signed-off-by: Christopher Baines <mail@cbaines.net>
2025-04-28 07:55:06 +01:00
Nicolas Graves
97a25bb484
build-system: ruby: Improve ruby-cross-build style.
* guix/build-system/ruby.scm
(ruby-cross-build): Use with-imported-modules around the
ruby-cross-build builder gexp.

Change-Id: I1051124f034f2082ccef531e9bcf37913d5a9449
Signed-off-by: Christopher Baines <mail@cbaines.net>
2025-04-28 07:55:06 +01:00
Nicolas Graves
9092b1f59b
build-system: waf: Improve waf-build style.
* guix/build-system/waf.scm
(waf-build): Use with-imported-modules around the waf-build builder gexp.

Change-Id: Id242046eb4bfef90dba60d7c3b1b68597ddf502e
Signed-off-by: Christopher Baines <mail@cbaines.net>
2025-04-28 07:55:06 +01:00
Nicolas Graves
4c4e29cebb
build-system: glib-or-gtk: Improve glib-or-gtk-cross-build style.
* guix/build-system/glib-or-gtk.scm
(glib-or-gtk-cross-build): Use with-imported-modules around the
glib-or-gtk-cross-build builder gexp.

Change-Id: I8eaa032ffc0a3f8dbf02c96a4ecee85475c32111
Signed-off-by: Christopher Baines <mail@cbaines.net>
2025-04-28 07:55:06 +01:00
Nicolas Graves
aa7b1abf2c
build-system: gnu: Improve gnu-cross-build style.
* guix/build-system/gnu.scm
(gnu-cross-build): Use with-imported-modules around the
gnu-cross-build builder gexp.

Change-Id: I47246571b1d84a82a67a8c289fd5ad4b5a3b5aeb
Signed-off-by: Christopher Baines <mail@cbaines.net>
2025-04-28 07:55:06 +01:00
Nicolas Graves
1f25dff3e1
build-system/tree-sitter: Add guile-json extension.
* guix/build-system/tree-sitter.scm (default-guile-json): New variable.
(tree-sitter-cross-build, tree-sitter-build): Use guile-json extension.

Signed-off-by: Jelle Licht <jlicht@fsfe.org>
Change-Id: Ib6124d7bde26e6c6711905a651858e9d99a61a1f
2025-04-13 14:19:43 +02:00
Nicolas Graves
7cc5ddf763
build-system/node: Add guile-json extension.
* guix/build-system/node.scm (default-guile-json): New variable.
(node-build): Use guile-json extension.

Signed-off-by: Jelle Licht <jlicht@fsfe.org>
Change-Id: I68eb291410fc4943395c876ba702360b4cd7be4f
2025-04-13 14:19:43 +02:00
Daniel Khodabakhsh
86caf257e7
build-system/node: Switch to (json).
Replace (guix build json) with (json) in node-build-system

* guix/build/node-build-system.scm
(jsobject-ref, jsobject-update, jsobject-union, newest,
unkeyed->keyed): Remove unused functions.
(with-atomic-json-file-replacement): Switch to (json) module.  Move
file argument as a second optional argument.
(alist-update): Switch to (json) module.  Remove optional default
argument.
(patch-dependencies, delete-dependencies, build): Switch to (json)
module.  Arguments are unchanged.

* guix/build-system/node.scm (%node-build-system-modules): Switch
to (json) module.

* gnu/packages/node-xyz.scm (node-acorn, node-addon-api,
node-serialport-bindings, node-sqlite3): Adapt package custom
<#:phases> to the replacement.

Change-Id: I9fd5152a98b6a241d414e9a94ab179c9cabcfb85
Signed-off-by: Jelle Licht <jlicht@fsfe.org>
2025-04-13 14:19:34 +02:00
Christopher Baines
0807035449
build-system: go: Support parallel options for cross builds.
Since these options were added for normal builds, those packages that used
these options couldn't be cross built.  Supporting these options in
go-cross-build restores this functionality.

* guix/build-system/go.scm (go-cross-build): Support the #:parallel-build? and
 #:parallel-tests? keyword arguments.

Change-Id: I9768c9562246b61c2ea875a3d5a42809924f3a7d
2025-03-25 18:20:53 +00:00
Christopher Baines
15615db61b
build-system: asdf: Don't search and replace inputs when unnecessary.
If the new-name matches the original name, just use the original package.
This avoids situations where there are several packages matching the name and
the behaviour will be inconsistent, occasionally picking different packages.

Since there are multiple glibc packages currently, I'm seeing this behaviour
with cl-posix-mqueue and ecl-cl-posix-mqueue, occasionally they'll use the
hurd glibc variant.

* guix/build-system/asdf.scm (package-with-build-system): Use the original
input packages unless the new-name differs.

Change-Id: I08a1f3ad1290689b5497d31950ada4dc0bfa3a3a
2025-03-03 14:13:52 +00:00
Tomas Volf
93d49dcd1c
build: glib-or-gtk: Export %glib-or-gtk-build-system-default-modules.
The list of modules used by default was not public, so users of this build
system had to pick between copy&pasting the list, or using
%glib-or-gtk-build-system-modules.  The former is sub-optimal, since it is
hard to keep it in sync.  The latter is just wrong and leads to basically
fall-backing to gnu-build-system.

The solution is to export the default list giving the users option to use it
directly.

* guix/build-system/glib-or-gtk.scm
(%glib-or-gtk-build-system-default-modules): Renamed from %default-modules.
(define-module): Export it.
(glib-or-gtk-build), (glib-or-gtk-cross-build): Use it.

Change-Id: I331b2a3f0bdc3ce14eb9f2f80605e7873369168d
Signed-off-by: Andreas Enge <andreas@enge.fr>
2025-02-17 13:17:48 +01:00
Maxim Cournoyer
58f5c9ad82
build/guile: Disable parallel build for now.
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
2025-02-13 00:07:21 +09:00
Sharlatan Hellseher
75437dbb76
Merge remote-tracking branch 'origin/go-team'
Change-Id: I3672a7dc248a41b1a83e4c488523f62cf1806710
2025-01-26 20:55:06 +00:00
Zheng Junjie
137e7eb683
build-system: go: Add loongarch64 support.
* guix/build-system/go.scm (go-target): Add loongarch64 case.

Change-Id: I5186e9d8c93f3524341119dcb478168676d6a66d
2025-01-25 11:55:58 +08:00
Zheng Junjie
0514dc658c
build-system: meson: Add loongarch64 support.
* guix/build-system/meson.scm (make-machine-alist): Add loongarch64 case.

Change-Id: Ib5a28b678d41550a9798494785c91c3f3a9f533c
2025-01-25 11:55:47 +08:00
Sharlatan Hellseher
c149fc769c
build-system/go: Add skip-build? option key.
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
2025-01-21 23:41:52 +00:00
Sharlatan Hellseher
1e4a22c4d7
build-system/go: Add test-subdirs option key.
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
2025-01-21 23:41:52 +00:00