On 2025-04-24 20:02, Nicolas Graves wrote:

> On 2025-04-24 19:16, ngra...@ngraves.fr wrote:
>
>> On 2025-04-15 19:01, Ludovic Courtès wrote:
>>
>>> Instead of procedure properties (which are a hack, really), you could
>>> add one or two fields to <build-system> and be done with that.
>>
>> That is true, although I was worried about breaking the API.  I'll give
>> that a try, migrating my current approach for this one. 
>
> After some more thought, the issue with this one is that if we set those
> fields, a user might expect that changing them (changing a modules or
> imported-modules field on the <build-system>) will change the
> ones used for the build-system (intuitively, that makes sense).
>
> We should either add a warning that it has no effect on the build
> procedures themselves, or handle them properly -- which means making the
> future lower a thunk returning the current lower.
>
> I'm going to try the second solution, although it's almost as
> far-fetched as using procedure properties IMHO.

Done!

Actually the thunk was not necessary because args were already passed to
the build-bag procedure, and modules and imported-modules were already
used in every bag-build procedures, except for trivial and raw
build-systems.

Patch should look like the one attached, overall pretty simple.

However it does break the build-system API so channels that define a
build-system will have to update too.  I'll investigate now if we can
simply do away without imported-modules at all.

>From 24e6f4a707a557bd82c342a90b28a46f0b2790b6 Mon Sep 17 00:00:00 2001
Message-ID: <24e6f4a707a557bd82c342a90b28a46f0b2790b6.1745531594.git.ngra...@ngraves.fr>
From: Nicolas Graves <ngra...@ngraves.fr>
Date: Tue, 18 Mar 2025 06:13:05 +0100
Subject: [PATCH] build-system: Add default(-imported)-modules fields.

---
 gnu/packages/bootstrap.scm         |  4 +++-
 guix/build-system.scm              | 15 +++++++++++----
 guix/build-system/agda.scm         |  2 ++
 guix/build-system/android-ndk.scm  |  2 ++
 guix/build-system/ant.scm          |  2 ++
 guix/build-system/asdf.scm         |  7 +++++++
 guix/build-system/cargo.scm        |  2 ++
 guix/build-system/channel.scm      |  2 ++
 guix/build-system/chicken.scm      |  2 ++
 guix/build-system/clojure.scm      |  2 ++
 guix/build-system/cmake.scm        |  2 ++
 guix/build-system/composer.scm     |  2 ++
 guix/build-system/copy.scm         |  2 ++
 guix/build-system/dub.scm          |  2 ++
 guix/build-system/dune.scm         |  2 ++
 guix/build-system/elm.scm          |  2 ++
 guix/build-system/emacs.scm        |  2 ++
 guix/build-system/font.scm         |  2 ++
 guix/build-system/glib-or-gtk.scm  |  2 ++
 guix/build-system/gnu.scm          |  2 ++
 guix/build-system/go.scm           |  2 ++
 guix/build-system/guile.scm        |  2 ++
 guix/build-system/haskell.scm      |  2 ++
 guix/build-system/julia.scm        |  2 ++
 guix/build-system/linux-module.scm |  2 ++
 guix/build-system/maven.scm        |  2 ++
 guix/build-system/meson.scm        |  2 ++
 guix/build-system/minetest.scm     |  2 ++
 guix/build-system/minify.scm       |  2 ++
 guix/build-system/mix.scm          |  2 ++
 guix/build-system/mozilla.scm      |  2 ++
 guix/build-system/node.scm         |  2 ++
 guix/build-system/ocaml.scm        |  2 ++
 guix/build-system/perl.scm         |  4 +++-
 guix/build-system/pyproject.scm    |  2 ++
 guix/build-system/python.scm       |  2 ++
 guix/build-system/qt.scm           |  2 ++
 guix/build-system/r.scm            |  2 ++
 guix/build-system/rakudo.scm       |  2 ++
 guix/build-system/rebar.scm        |  2 ++
 guix/build-system/renpy.scm        |  2 ++
 guix/build-system/ruby.scm         |  2 ++
 guix/build-system/scons.scm        |  2 ++
 guix/build-system/texlive.scm      |  2 ++
 guix/build-system/tree-sitter.scm  |  2 ++
 guix/build-system/trivial.scm      |  4 +++-
 guix/build-system/vim.scm          |  2 ++
 guix/build-system/waf.scm          |  2 ++
 guix/build-system/zig.scm          |  2 ++
 49 files changed, 115 insertions(+), 7 deletions(-)

diff --git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm
index 79ef8a5f412..a362b7a6d18 100644
--- a/gnu/packages/bootstrap.scm
+++ b/gnu/packages/bootstrap.scm
@@ -570,7 +570,7 @@ (define (make-guile-wrapper bash guile-real)
 
 (define* (make-raw-bag name
                        #:key source inputs native-inputs outputs
-                       system target)
+                       system target imported-modules modules)
   (bag
     (name name)
     (system system)
@@ -590,6 +590,8 @@ (define %bootstrap-guile
   (let ((raw (build-system
                (name 'raw)
                (description "Raw build system with direct store access")
+               (default-imported-modules '())
+               (default-modules '())
                (lower make-raw-bag))))
    (package
      (name "guile-bootstrap")
diff --git a/guix/build-system.scm b/guix/build-system.scm
index a4dcdc52d85..5719d05c0e9 100644
--- a/guix/build-system.scm
+++ b/guix/build-system.scm
@@ -24,6 +24,8 @@ (define-module (guix build-system)
             build-system?
             build-system-name
             build-system-description
+            build-system-default-imported-modules
+            build-system-default-modules
             build-system-lower
 
             bag
@@ -44,9 +46,11 @@ (define-module (guix build-system)
 
 (define-record-type* <build-system> build-system make-build-system
   build-system?
-  (name        build-system-name)         ; symbol
-  (description build-system-description)  ; short description
-  (lower       build-system-lower))       ; args ... -> bags
+  (name                     build-system-name)              ; symbol
+  (description              build-system-description)       ; short description
+  (default-imported-modules build-system-default-imported-modules)
+  (default-modules          build-system-default-modules)
+  (lower                    build-system-lower))            ; args ... -> bags
 
 ;; "Bags" are low-level representations of "packages".  The system and target
 ;; of a bag is fixed when it's created.  This is because build systems may
@@ -92,8 +96,11 @@ (define* (make-bag build-system name
 This is the mechanism by which a package is \"lowered\" to a bag, which is the
 intermediate representation just above derivations."
   (match build-system
-    (($ <build-system> _ description lower)
+    (($ <build-system>
+        _ description default-imported-modules default-modules lower)
      (apply lower name
+            #:imported-modules default-imported-modules
+            #:modules default-modules
             #:system system
             #:source source
             #:inputs inputs
diff --git a/guix/build-system/agda.scm b/guix/build-system/agda.scm
index 26f0ede0397..3d7727e1ef1 100644
--- a/guix/build-system/agda.scm
+++ b/guix/build-system/agda.scm
@@ -121,4 +121,6 @@ (define agda-build-system
     (name 'agda)
     (description
      "Build system for Agda libraries")
+    (default-imported-modules %default-agda-imported-modules)
+    (default-modules          %default-agda-modules)
     (lower lower)))
diff --git a/guix/build-system/android-ndk.scm b/guix/build-system/android-ndk.scm
index fc82213b491..6a6b28b03a5 100644
--- a/guix/build-system/android-ndk.scm
+++ b/guix/build-system/android-ndk.scm
@@ -117,4 +117,6 @@ (define android-ndk-build-system
     (name 'android-ndk)
     (description
      "Android NDK build system, to build Android NDK packages")
+    (default-imported-modules %default-android-ndk-imported-modules)
+    (default-modules          %default-android-ndk-modules)
     (lower lower)))
diff --git a/guix/build-system/ant.scm b/guix/build-system/ant.scm
index c7714b948db..6e96e5c380b 100644
--- a/guix/build-system/ant.scm
+++ b/guix/build-system/ant.scm
@@ -159,6 +159,8 @@ (define ant-build-system
   (build-system
     (name 'ant)
     (description "The standard Ant build system")
+    (default-imported-modules %default-ant-imported-modules)
+    (default-modules          %default-ant-modules)
     (lower lower)))
 
 ;;; ant.scm ends here
diff --git a/guix/build-system/asdf.scm b/guix/build-system/asdf.scm
index 7b3e234ab64..5c4041fe004 100644
--- a/guix/build-system/asdf.scm
+++ b/guix/build-system/asdf.scm
@@ -36,6 +36,7 @@ (define-module (guix build-system asdf)
   #:use-module (guix deprecation)
   #:use-module (ice-9 match)
   #:use-module (srfi srfi-1)
+  #:use-module (srfi srfi-26)
   #:use-module (gnu packages)
   #:export (%default-asdf-imported-modules
             %default-asdf-modules
@@ -337,18 +338,24 @@ (define asdf-build-system/sbcl
   (build-system
     (name 'asdf/sbcl)
     (description "The build system for ASDF binary packages using SBCL")
+    (default-imported-modules %default-asdf-imported-modules)
+    (default-modules          %default-asdf-modules)
     (lower (lower "sbcl"))))
 
 (define asdf-build-system/ecl
   (build-system
     (name 'asdf/ecl)
     (description "The build system for ASDF binary packages using ECL")
+    (default-imported-modules %default-asdf-imported-modules)
+    (default-modules          %default-asdf-modules)
     (lower (lower "ecl"))))
 
 (define asdf-build-system/source
   (build-system
     (name 'asdf/source)
     (description "The build system for ASDF source packages")
+    (default-imported-modules %default-asdf-imported-modules)
+    (default-modules          %default-asdf-modules)
     (lower lower/source)))
 
 (define sbcl-package->cl-source-package
diff --git a/guix/build-system/cargo.scm b/guix/build-system/cargo.scm
index 297053b1dc5..9f79a9ba034 100644
--- a/guix/build-system/cargo.scm
+++ b/guix/build-system/cargo.scm
@@ -383,4 +383,6 @@ (define cargo-build-system
     (name 'cargo)
     (description
      "Cargo build system, to build Rust crates")
+    (default-imported-modules %default-cargo-imported-modules)
+    (default-modules          %default-cargo-modules)
     (lower lower)))
diff --git a/guix/build-system/channel.scm b/guix/build-system/channel.scm
index 0607dcf4d75..1d07d02c63f 100644
--- a/guix/build-system/channel.scm
+++ b/guix/build-system/channel.scm
@@ -77,5 +77,7 @@ (define channel-build-system
                                 #:commit ,commit))))))
     (build-system (name 'channel)
                   (description "Turn a channel instance into a package.")
+                  (default-imported-modules '())
+                  (default-modules          '())
                   (lower lower))))
 
diff --git a/guix/build-system/chicken.scm b/guix/build-system/chicken.scm
index cf9d5557596..0c16fd9a977 100644
--- a/guix/build-system/chicken.scm
+++ b/guix/build-system/chicken.scm
@@ -129,4 +129,6 @@ (define chicken-build-system
     (name 'chicken)
     (description
      "Build system for Chicken Scheme programs")
+    (default-imported-modules %default-chicken-imported-modules)
+    (default-modules          %default-chicken-modules)
     (lower lower)))
diff --git a/guix/build-system/clojure.scm b/guix/build-system/clojure.scm
index c50476be2c9..9868ff2c9b4 100644
--- a/guix/build-system/clojure.scm
+++ b/guix/build-system/clojure.scm
@@ -181,6 +181,8 @@ (define clojure-build-system
   (build-system
     (name 'clojure)
     (description "Simple Clojure build system using plain old 'compile'")
+    (default-imported-modules %default-clojure-imported-modules)
+    (default-modules          %default-clojure-modules)
     (lower lower)))
 
 ;;; clojure.scm ends here
diff --git a/guix/build-system/cmake.scm b/guix/build-system/cmake.scm
index f00c0b0a5db..2890bbde837 100644
--- a/guix/build-system/cmake.scm
+++ b/guix/build-system/cmake.scm
@@ -269,6 +269,8 @@ (define cmake-build-system
   (build-system
     (name 'cmake)
     (description "The standard CMake build system")
+    (default-imported-modules %default-cmake-imported-modules)
+    (default-modules          %default-cmake-modules)
     (lower lower)))
 
 ;;; cmake.scm ends here
diff --git a/guix/build-system/composer.scm b/guix/build-system/composer.scm
index b9a55cd2d79..edcf6e8f50a 100644
--- a/guix/build-system/composer.scm
+++ b/guix/build-system/composer.scm
@@ -167,6 +167,8 @@ (define composer-build-system
   (build-system
     (name 'composer)
     (description "The standard Composer build system")
+    (default-imported-modules %default-composer-imported-modules)
+    (default-modules          %default-composer-modules)
     (lower lower)))
 
 ;;; composer.scm ends here
diff --git a/guix/build-system/copy.scm b/guix/build-system/copy.scm
index 56f4f36ae9c..cba8413a98a 100644
--- a/guix/build-system/copy.scm
+++ b/guix/build-system/copy.scm
@@ -141,6 +141,8 @@ (define copy-build-system
   (build-system
     (name 'copy)
     (description "The standard copy build system")
+    (default-imported-modules %default-copy-imported-modules)
+    (default-modules          %default-copy-modules)
     (lower lower)))
 
 ;;; copy.scm ends here
diff --git a/guix/build-system/dub.scm b/guix/build-system/dub.scm
index 11977d33b56..832d586565e 100644
--- a/guix/build-system/dub.scm
+++ b/guix/build-system/dub.scm
@@ -142,4 +142,6 @@ (define dub-build-system
     (name 'dub)
     (description
      "DUB build system, to build D packages")
+    (default-imported-modules %default-dub-imported-modules)
+    (default-modules          %default-dub-modules)
     (lower lower)))
diff --git a/guix/build-system/dune.scm b/guix/build-system/dune.scm
index 79d335c4359..d5a8c6dbe73 100644
--- a/guix/build-system/dune.scm
+++ b/guix/build-system/dune.scm
@@ -168,6 +168,8 @@ (define dune-build-system
   (build-system
     (name 'dune)
     (description "The standard Dune build system")
+    (default-imported-modules %default-dune-imported-modules)
+    (default-modules          %default-dune-modules)
     (lower lower)))
 
 ;;; dune.scm ends here
diff --git a/guix/build-system/elm.scm b/guix/build-system/elm.scm
index b9177b60b66..d8f2b706e8c 100644
--- a/guix/build-system/elm.scm
+++ b/guix/build-system/elm.scm
@@ -208,4 +208,6 @@ (define elm-build-system
   (build-system
     (name 'elm)
     (description "The Elm build system")
+    (default-imported-modules %default-elm-imported-modules)
+    (default-modules          %default-elm-modules)
     (lower lower)))
diff --git a/guix/build-system/emacs.scm b/guix/build-system/emacs.scm
index 53ee94b29ec..2646dee740a 100644
--- a/guix/build-system/emacs.scm
+++ b/guix/build-system/emacs.scm
@@ -135,6 +135,8 @@ (define emacs-build-system
   (build-system
     (name 'emacs)
     (description "The build system for Emacs packages")
+    (default-imported-modules %default-emacs-imported-modules)
+    (default-modules          %default-emacs-modules)
     (lower lower)))
 
 ;;; emacs.scm ends here
diff --git a/guix/build-system/font.scm b/guix/build-system/font.scm
index 02e8c21c064..a00fe8cba14 100644
--- a/guix/build-system/font.scm
+++ b/guix/build-system/font.scm
@@ -123,6 +123,8 @@ (define font-build-system
   (build-system
     (name 'font)
     (description "The build system for font packages")
+    (default-imported-modules %default-font-imported-modules)
+    (default-modules          %default-font-modules)
     (lower lower)))
 
 ;;; font.scm ends here
diff --git a/guix/build-system/glib-or-gtk.scm b/guix/build-system/glib-or-gtk.scm
index 6a2212529c3..3ac3993136b 100644
--- a/guix/build-system/glib-or-gtk.scm
+++ b/guix/build-system/glib-or-gtk.scm
@@ -285,4 +285,6 @@ (define glib-or-gtk-build-system
      "The GNU Build System—i.e., ./configure && make && make install,
 augmented with definition of suitable environment variables for glib and gtk+
 in program wrappers.")
+    (default-imported-modules %default-glib-or-gtk-imported-modules)
+    (default-modules          %default-glib-or-gtk-modules)
     (lower lower)))
diff --git a/guix/build-system/gnu.scm b/guix/build-system/gnu.scm
index 865301a92cf..1788aa2fbb6 100644
--- a/guix/build-system/gnu.scm
+++ b/guix/build-system/gnu.scm
@@ -572,4 +572,6 @@ (define gnu-build-system
     (name 'gnu)
     (description
      "The GNU Build System—i.e., ./configure && make && make install")
+    (default-imported-modules %default-gnu-imported-modules)
+    (default-modules          %default-gnu-modules)
     (lower lower)))
diff --git a/guix/build-system/go.scm b/guix/build-system/go.scm
index a4651f47244..60242545351 100644
--- a/guix/build-system/go.scm
+++ b/guix/build-system/go.scm
@@ -344,4 +344,6 @@ (define go-build-system
     (name 'go)
     (description
      "Build system for Go programs")
+    (default-imported-modules %default-go-imported-modules)
+    (default-modules          %default-go-modules)
     (lower lower)))
diff --git a/guix/build-system/guile.scm b/guix/build-system/guile.scm
index 1dd3a3f999c..0dffa522d13 100644
--- a/guix/build-system/guile.scm
+++ b/guix/build-system/guile.scm
@@ -189,4 +189,6 @@ (define guile-build-system
   (build-system
     (name 'guile)
     (description "The build system for simple Guile packages")
+    (default-imported-modules %default-guile-imported-modules)
+    (default-modules          %default-guile-modules)
     (lower lower)))
diff --git a/guix/build-system/haskell.scm b/guix/build-system/haskell.scm
index 23d39b545fa..e3930a504b0 100644
--- a/guix/build-system/haskell.scm
+++ b/guix/build-system/haskell.scm
@@ -193,6 +193,8 @@ (define haskell-build-system
   (build-system
     (name 'haskell)
     (description "The standard Haskell build system")
+    (default-imported-modules %default-haskell-imported-modules)
+    (default-modules          %default-haskell-modules)
     (lower lower)))
 
 ;;; haskell.scm ends here
diff --git a/guix/build-system/julia.scm b/guix/build-system/julia.scm
index 39367c2645f..10e768ce8a2 100644
--- a/guix/build-system/julia.scm
+++ b/guix/build-system/julia.scm
@@ -126,6 +126,8 @@ (define julia-build-system
   (build-system
    (name 'julia)
    (description "The build system for Julia packages")
+   (default-imported-modules %default-julia-imported-modules)
+   (default-modules          %default-julia-modules)
    (lower lower)))
 
 ;;; julia.scm ends here
diff --git a/guix/build-system/linux-module.scm b/guix/build-system/linux-module.scm
index c62fa7a5662..2ec8ed2c620 100644
--- a/guix/build-system/linux-module.scm
+++ b/guix/build-system/linux-module.scm
@@ -260,6 +260,8 @@ (define linux-module-build-system
   (build-system
     (name 'linux-module)
     (description "The Linux module build system")
+    (default-imported-modules %default-linux-module-imported-modules)
+    (default-modules          %default-linux-module-modules)
     (lower lower)))
 
 ;;; linux-module.scm ends here
diff --git a/guix/build-system/maven.scm b/guix/build-system/maven.scm
index 98cb3223a0d..030f39e31d3 100644
--- a/guix/build-system/maven.scm
+++ b/guix/build-system/maven.scm
@@ -200,6 +200,8 @@ (define maven-build-system
   (build-system
     (name 'maven)
     (description "The standard Maven build system")
+    (default-imported-modules %default-maven-imported-modules)
+    (default-modules          %default-maven-modules)
     (lower lower)))
 
 ;;; maven.scm ends here
diff --git a/guix/build-system/meson.scm b/guix/build-system/meson.scm
index 076f2aafd97..654cfac25b5 100644
--- a/guix/build-system/meson.scm
+++ b/guix/build-system/meson.scm
@@ -376,6 +376,8 @@ (define meson-build-system
   (build-system
     (name 'meson)
     (description "The standard Meson build system")
+    (default-imported-modules %default-meson-imported-modules)
+    (default-modules          %default-meson-modules)
     (lower lower)))
 
 ;;; meson.scm ends here
diff --git a/guix/build-system/minetest.scm b/guix/build-system/minetest.scm
index 7dbd8993bd0..6537965cfe8 100644
--- a/guix/build-system/minetest.scm
+++ b/guix/build-system/minetest.scm
@@ -99,6 +99,8 @@ (define minetest-mod-build-system
   (build-system
     (name 'minetest-mod)
     (description "The build system for minetest mods")
+    (default-imported-modules %default-minetest-imported-modules)
+    (default-modules          %default-minetest-modules)
     (lower lower-mod)))
 
 ;;; minetest.scm ends here
diff --git a/guix/build-system/minify.scm b/guix/build-system/minify.scm
index 47ddd886131..7f5234c6611 100644
--- a/guix/build-system/minify.scm
+++ b/guix/build-system/minify.scm
@@ -112,6 +112,8 @@ (define minify-build-system
   (build-system
     (name 'minify)
     (description "The trivial JavaScript minification build system")
+    (default-imported-modules %default-minify-imported-modules)
+    (default-modules          %default-minify-modules)
     (lower lower)))
 
 ;;; minify.scm ends here
diff --git a/guix/build-system/mix.scm b/guix/build-system/mix.scm
index b96c200c281..d9b1422ebfb 100644
--- a/guix/build-system/mix.scm
+++ b/guix/build-system/mix.scm
@@ -174,6 +174,8 @@ (define* (lower name
 (define mix-build-system
   (build-system (name 'mix)
                 (description "The standard Mix build system")
+                (default-imported-modules %default-mix-imported-modules)
+                (default-modules          %default-mix-modules)
                 (lower lower)))
 
 ;;; mix.scm ends here
diff --git a/guix/build-system/mozilla.scm b/guix/build-system/mozilla.scm
index bead1bf5bbc..868e9fe4950 100644
--- a/guix/build-system/mozilla.scm
+++ b/guix/build-system/mozilla.scm
@@ -47,6 +47,8 @@ (define mozilla-build-system
   (build-system
     (name 'mozilla)
     (description "The build system for Mozilla software using the Autotools")
+    (default-imported-modules %default-gnu-imported-modules)
+    (default-modules          %default-gnu-modules)
     (lower lower-mozilla)))
 
 ;;; mozilla.scm ends here
diff --git a/guix/build-system/node.scm b/guix/build-system/node.scm
index b17e91b13b0..0de4a6897e8 100644
--- a/guix/build-system/node.scm
+++ b/guix/build-system/node.scm
@@ -135,4 +135,6 @@ (define node-build-system
   (build-system
     (name 'node)
     (description "The Node build system")
+    (default-imported-modules %default-node-imported-modules)
+    (default-modules          %default-node-modules)
     (lower lower)))
diff --git a/guix/build-system/ocaml.scm b/guix/build-system/ocaml.scm
index 49e878b9724..b2f841cb551 100644
--- a/guix/build-system/ocaml.scm
+++ b/guix/build-system/ocaml.scm
@@ -321,6 +321,8 @@ (define ocaml-build-system
   (build-system
     (name 'ocaml)
     (description "The standard OCaml build system")
+    (default-imported-modules %default-ocaml-imported-modules)
+    (default-modules          %default-ocaml-modules)
     (lower lower)))
 
 ;;; ocaml.scm ends here
diff --git a/guix/build-system/perl.scm b/guix/build-system/perl.scm
index 1d66bf8e5a8..75c4f96b00e 100644
--- a/guix/build-system/perl.scm
+++ b/guix/build-system/perl.scm
@@ -213,12 +213,14 @@ (define builder
                       #:inputs #$inputs
                       #:native-inputs #+(input-tuples->gexp build-inputs)))))
  (mbegin %store-monad
-    (return builder)))
+   (return builder)))
 
 (define perl-build-system
   (build-system
     (name 'perl)
     (description "The standard Perl build system")
+    (default-imported-modules %default-perl-imported-modules)
+    (default-modules          %default-perl-modules)
     (lower lower)))
 
 ;;; perl.scm ends here
diff --git a/guix/build-system/pyproject.scm b/guix/build-system/pyproject.scm
index 61c7267faef..d6a8bc4c446 100644
--- a/guix/build-system/pyproject.scm
+++ b/guix/build-system/pyproject.scm
@@ -149,6 +149,8 @@ (define pyproject-build-system
   (build-system
     (name 'pyproject)
     (description "The PEP517-compliant Python build system")
+    (default-imported-modules %default-pyproject-imported-modules)
+    (default-modules          %default-pyproject-modules)
     (lower lower)))
 
 ;;; pyproject.scm ends here
diff --git a/guix/build-system/python.scm b/guix/build-system/python.scm
index 4916374f59c..e442e9fd39a 100644
--- a/guix/build-system/python.scm
+++ b/guix/build-system/python.scm
@@ -222,6 +222,8 @@ (define python-build-system
   (build-system
     (name 'python)
     (description "The standard Python build system")
+    (default-imported-modules %default-python-imported-modules)
+    (default-modules          %default-python-modules)
     (lower lower)))
 
 ;;; python.scm ends here
diff --git a/guix/build-system/qt.scm b/guix/build-system/qt.scm
index d3441d86bc1..be9057208a8 100644
--- a/guix/build-system/qt.scm
+++ b/guix/build-system/qt.scm
@@ -280,4 +280,6 @@ (define qt-build-system
     (description
      "The CMake build system augmented with definition of suitable environment
 variables for Qt and KDE in program wrappers.")
+    (default-imported-modules %default-qt-imported-modules)
+    (default-modules          %default-qt-modules)
     (lower lower)))
diff --git a/guix/build-system/r.scm b/guix/build-system/r.scm
index 24929d6665c..5d8db95cf3a 100644
--- a/guix/build-system/r.scm
+++ b/guix/build-system/r.scm
@@ -152,6 +152,8 @@ (define r-build-system
   (build-system
     (name 'r)
     (description "The standard R build system")
+    (default-imported-modules %default-r-imported-modules)
+    (default-modules          %default-r-modules)
     (lower lower)))
 
 ;;; r.scm ends here
diff --git a/guix/build-system/rakudo.scm b/guix/build-system/rakudo.scm
index a88e80d0f32..b5137ce0e68 100644
--- a/guix/build-system/rakudo.scm
+++ b/guix/build-system/rakudo.scm
@@ -142,6 +142,8 @@ (define rakudo-build-system
   (build-system
     (name 'rakudo)
     (description "The standard Rakudo build system")
+    (default-imported-modules %default-rakudo-imported-modules)
+    (default-modules          %default-rakudo-modules)
     (lower lower)))
 
 ;;; rakudo.scm ends here
diff --git a/guix/build-system/rebar.scm b/guix/build-system/rebar.scm
index e80b2b477f5..3858066f8cd 100644
--- a/guix/build-system/rebar.scm
+++ b/guix/build-system/rebar.scm
@@ -154,4 +154,6 @@ (define rebar-build-system
   (build-system
     (name 'rebar)
     (description "The standard Rebar build system")
+    (default-imported-modules %default-rebar-imported-modules)
+    (default-modules          %default-rebar-modules)
     (lower lower)))
diff --git a/guix/build-system/renpy.scm b/guix/build-system/renpy.scm
index 91bbc62ffae..5afa6d2e913 100644
--- a/guix/build-system/renpy.scm
+++ b/guix/build-system/renpy.scm
@@ -119,4 +119,6 @@ (define renpy-build-system
   (build-system
     (name 'renpy)
     (description "The Ren'py build system")
+    (default-imported-modules %default-renpy-imported-modules)
+    (default-modules          %default-renpy-modules)
     (lower lower)))
diff --git a/guix/build-system/ruby.scm b/guix/build-system/ruby.scm
index 48cc3ed18b3..fd4e1eccb70 100644
--- a/guix/build-system/ruby.scm
+++ b/guix/build-system/ruby.scm
@@ -123,4 +123,6 @@ (define ruby-build-system
   (build-system
     (name 'ruby)
     (description "The standard Ruby build system")
+    (default-imported-modules %default-ruby-imported-modules)
+    (default-modules          %default-ruby-modules)
     (lower lower)))
diff --git a/guix/build-system/scons.scm b/guix/build-system/scons.scm
index 2dd0861e495..2f329c75827 100644
--- a/guix/build-system/scons.scm
+++ b/guix/build-system/scons.scm
@@ -133,6 +133,8 @@ (define scons-build-system
   (build-system
     (name 'scons)
     (description "The standard SCons build system")
+    (default-imported-modules %default-scons-imported-modules)
+    (default-modules          %default-scons-modules)
     (lower lower)))
 
 ;;; scons.scm ends here
diff --git a/guix/build-system/texlive.scm b/guix/build-system/texlive.scm
index f67a47e62e1..cc97c265366 100644
--- a/guix/build-system/texlive.scm
+++ b/guix/build-system/texlive.scm
@@ -166,6 +166,8 @@ (define texlive-build-system
   (build-system
     (name 'texlive)
     (description "The build system for TeX Live packages")
+    (default-imported-modules %default-texlive-imported-modules)
+    (default-modules          %default-texlive-modules)
     (lower lower)))
 
 ;;; texlive.scm ends here
diff --git a/guix/build-system/tree-sitter.scm b/guix/build-system/tree-sitter.scm
index 8e4d2b2bb46..6ae0bd39abe 100644
--- a/guix/build-system/tree-sitter.scm
+++ b/guix/build-system/tree-sitter.scm
@@ -199,6 +199,8 @@ (define tree-sitter-build-system
   (build-system
     (name 'tree-sitter)
     (description "The Tree-sitter grammar build system")
+    (default-imported-modules %default-tree-sitter-imported-modules)
+    (default-modules          %default-tree-sitter-modules)
     (lower lower)))
 
 ;;; tree-sitter.scm ends here
diff --git a/guix/build-system/trivial.scm b/guix/build-system/trivial.scm
index e08884baf1f..0512e30cbc6 100644
--- a/guix/build-system/trivial.scm
+++ b/guix/build-system/trivial.scm
@@ -26,7 +26,7 @@ (define-module (guix build-system trivial)
 
 (define* (lower name
                 #:key source inputs native-inputs outputs system target
-                guile builder (modules '()) allowed-references)
+                guile builder (modules '()) imported-modules allowed-references)
   "Return a bag for NAME."
   (bag
     (name name)
@@ -94,4 +94,6 @@ (define trivial-build-system
     (name 'trivial)
     (description
      "Trivial build system, to run arbitrary Scheme build expressions")
+    (default-imported-modules '())
+    (default-modules          '())
     (lower lower)))
diff --git a/guix/build-system/vim.scm b/guix/build-system/vim.scm
index 968633b3f73..8da5067dee0 100644
--- a/guix/build-system/vim.scm
+++ b/guix/build-system/vim.scm
@@ -166,6 +166,8 @@ (define builder
 (define vim-build-system
   (build-system (name 'vim)
                 (description "The standard Vim build system")
+                (default-imported-modules %default-vim-imported-modules)
+                (default-modules          %default-vim-modules)
                 (lower lower)))
 
 ;;; vim.scm ends here
diff --git a/guix/build-system/waf.scm b/guix/build-system/waf.scm
index 78d45353874..53f44f22385 100644
--- a/guix/build-system/waf.scm
+++ b/guix/build-system/waf.scm
@@ -125,6 +125,8 @@ (define waf-build-system
   (build-system
     (name 'waf)
     (description "The standard waf build system")
+    (default-imported-modules %default-waf-imported-modules)
+    (default-modules          %default-waf-modules)
     (lower lower)))
 
 ;;; waf.scm ends here
diff --git a/guix/build-system/zig.scm b/guix/build-system/zig.scm
index b25e7ad2dd5..474c7422a81 100644
--- a/guix/build-system/zig.scm
+++ b/guix/build-system/zig.scm
@@ -218,4 +218,6 @@ (define zig-build-system
     (name 'zig)
     (description
      "Zig build system, to build Zig packages")
+    (default-imported-modules %default-zig-imported-modules)
+    (default-modules          %default-zig-modules)
     (lower lower)))
-- 
2.49.0

Also, I'll try to split the
https://lists.sr.ht/~ngraves/devel/%3c20250319173238.7969-1-ngra...@ngraves.fr%3E
patch series :

1) some patches are improvements independent of wherever I try to do with
partial builds.  They can already be reviewed now independently from the rest.
2) some patches are standardizing improvements for the names :
  - %XXX-build-system-modules --> %default-XXX-imported-modules
  - %XXX-modules or %default-modules --> %default-XXX-modules
  - is that a fine standardizing change or should I go through a GCD?
3) some patches are about the core of 68315 (allowing monadic bag-build).

-- 
Best regards,
Nicolas Graves

Reply via email to