all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Timothy Sample <samplet@ngyro.com>
To: 54394@debbugs.gnu.org
Cc: Timothy Sample <samplet@ngyro.com>
Subject: [bug#54394] [PATCH core-updates 03/12] gnu-bootstrap: Allow multiple module directories.
Date: Mon, 14 Mar 2022 16:57:02 -0600	[thread overview]
Message-ID: <20220314225712.19869-3-samplet@ngyro.com> (raw)
In-Reply-To: <87v8wg40dl.fsf@ngyro.com>

* guix/build/gnu-bootstrap.scm (bootstrap-configure,
bootstrap-build, bootstrap-install): Treat the 'modules' argument as
a list of directories.
* gnu/packages/commencement.scm (bootar, gash-boot,
gash-utils-boot): Adjust call sites.
---
 gnu/packages/commencement.scm | 18 +++++++++---------
 guix/build/gnu-bootstrap.scm  | 21 ++++++++++++---------
 2 files changed, 21 insertions(+), 18 deletions(-)

diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index 644db8cc58..fd3a9c37e7 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -121,9 +121,9 @@ (define bootar
                  (invoke guile "--no-auto-compile" source)
                  (chdir "bootar"))))
            (replace 'configure (bootstrap-configure "Bootar" ,version
-                                                    "." "scripts"))
-           (replace 'build (bootstrap-build "."))
-           (replace 'install (bootstrap-install "." "scripts"))))))
+                                                    '(".") "scripts"))
+           (replace 'build (bootstrap-build '(".")))
+           (replace 'install (bootstrap-install '(".") "scripts"))))))
     (inputs `(("guile" ,%bootstrap-guile)))
     (home-page "https://git.ngyro.com/bootar")
     (synopsis "Tar decompression and extraction in Guile Scheme")
@@ -158,9 +158,9 @@ (define gash-boot
          (modify-phases %standard-phases
            (replace 'configure
              (bootstrap-configure "Gash" ,(package-version gash)
-                                  "gash" "scripts"))
-           (replace 'build (bootstrap-build "gash"))
-           (replace 'install (bootstrap-install "gash" "scripts"))
+                                  '("gash") "scripts"))
+           (replace 'build (bootstrap-build '("gash")))
+           (replace 'install (bootstrap-install '("gash") "scripts"))
            (add-after 'install 'install-symlinks
              (lambda* (#:key outputs #:allow-other-keys)
                (let ((out (assoc-ref outputs "out")))
@@ -222,9 +222,9 @@ (define gash-utils-boot
                (delete-file "scripts/template.in")))
            (replace 'configure
              (bootstrap-configure "Gash-Utils" ,(package-version gash-utils)
-                                  "gash" "scripts"))
-           (replace 'build (bootstrap-build "gash"))
-           (replace 'install (bootstrap-install "gash" "scripts"))
+                                  '("gash") "scripts"))
+           (replace 'build (bootstrap-build '("gash")))
+           (replace 'install (bootstrap-install '("gash") "scripts"))
            ;; XXX: The scripts should add Gash to their load paths and
            ;; this phase should not exist.
            (add-after 'install 'copy-gash
diff --git a/guix/build/gnu-bootstrap.scm b/guix/build/gnu-bootstrap.scm
index 7ca6ae8458..b4257a3717 100644
--- a/guix/build/gnu-bootstrap.scm
+++ b/guix/build/gnu-bootstrap.scm
@@ -25,6 +25,7 @@
 
 (define-module (guix build gnu-bootstrap)
   #:use-module (guix build utils)
+  #:use-module (srfi srfi-1)
   #:use-module (system base compile)
   #:export (bootstrap-configure
             bootstrap-build
@@ -32,7 +33,7 @@ (define-module (guix build gnu-bootstrap)
 
 (define (bootstrap-configure name version modules scripts)
   "Create a procedure that configures an early bootstrap package.  The
-procedure will search the MODULES directory and configure all of the
+procedure will search each directory in MODULES and configure all of the
 '.in' files with NAME and VERSION.  It will then search the SCRIPTS
 directory and configure all of the '.in' files with the bootstrap
 Guile and its module and object directories."
@@ -52,9 +53,8 @@ (define (bootstrap-configure name version modules scripts)
                     (substitute* target
                       (("@PACKAGE_NAME@") name)
                       (("@VERSION@") version))))
-                (find-files modules
-                            (lambda (fn st)
-                              (string-suffix? ".in" fn))))
+                (append-map (lambda (dir) (find-files dir "\\.in$"))
+                            modules))
       (for-each (lambda (template)
                   (format #t "Configuring ~a~%" template)
                   (let ((target (string-drop-right template 3)))
@@ -71,7 +71,7 @@ (define (bootstrap-configure name version modules scripts)
 
 (define (bootstrap-build modules)
   "Create a procedure that builds an early bootstrap package.  The
-procedure will search the MODULES directory and compile all of the
+procedure will search each directory in MODULES and compile all of the
 '.scm' files."
   (lambda _
     (add-to-load-path (getcwd))
@@ -81,13 +81,15 @@ (define (bootstrap-build modules)
                        (dir (dirname scm)))
                   (format #t "Compiling ~a~%" scm)
                   (compile-file scm #:output-file go)))
-              (find-files modules "\\.scm$"))
+              (append-map (lambda (dir) (find-files dir "\\.scm$"))
+                          modules))
     #t))
 
 (define (bootstrap-install modules scripts)
   "Create a procedure that installs an early bootstrap package.  The
-procedure will install all of the '.scm' and '.go' files in the MODULES
-directory, and all the executable files in the SCRIPTS directory."
+procedure will install all of the '.scm' and '.go' files in each of the
+directories in MODULES, and all the executable files in the SCRIPTS
+directory."
   (lambda* (#:key inputs outputs #:allow-other-keys)
     (let* ((out (assoc-ref outputs "out"))
            (guile-dir (assoc-ref inputs "guile"))
@@ -105,7 +107,8 @@ (define (bootstrap-install modules scripts)
                     (install-file scm (string-append moddir "/" dir))
                     (format #t "Installing ~a~%" go)
                     (install-file go (string-append godir "/" dir))))
-                (find-files modules "\\.scm$"))
+                (append-map (lambda (dir) (find-files dir "\\.scm$"))
+                            modules))
       (for-each (lambda (script)
                   (format #t "Installing ~a~%" script)
                   (install-file script (string-append out "/bin")))
-- 
2.34.0





  parent reply	other threads:[~2022-03-14 22:58 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-14 22:47 [bug#54394] [PATCH core-updates 00/12] Remove old GNU utilities from early bootstrap Timothy Sample
2022-03-14 22:57 ` [bug#54394] [PATCH core-updates 01/12] gnu: hello-mesboot: Downgrade to 2.10 Timothy Sample
2022-03-16 17:25   ` [bug#54394] [PATCH core-updates 00/12] Remove old GNU utilities from early bootstrap Ludovic Courtès
2022-03-14 22:57 ` [bug#54394] [PATCH core-updates 02/12] gnu-bootstrap: Configure PACKAGE_NAME Timothy Sample
2022-03-14 22:57 ` Timothy Sample [this message]
2022-03-14 22:57 ` [bug#54394] [PATCH core-updates 04/12] gnu: gash-utils: Update to 0.2.0 Timothy Sample
2022-03-14 22:57 ` [bug#54394] [PATCH core-updates 05/12] gnu: bootar: Update to 1b Timothy Sample
2022-03-14 22:57 ` [bug#54394] [PATCH core-updates 06/12] gnu: gash: Update to 0.3.0 Timothy Sample
2022-03-14 22:57 ` [bug#54394] [PATCH core-updates 07/12] gnu: gash-utils-boot: Create 'echo' wrapper Timothy Sample
2022-03-14 22:57 ` [bug#54394] [PATCH core-updates 08/12] gnu: bzip2-mesboot: Remove package Timothy Sample
2022-03-14 22:57 ` [bug#54394] [PATCH core-updates 09/12] gnu: sed-mesboot0: " Timothy Sample
2022-03-14 22:57 ` [bug#54394] [PATCH core-updates 10/12] gnu: binutils-mesboot0: Update to 2.20.1a Timothy Sample
2022-03-14 22:57 ` [bug#54394] [PATCH core-updates 11/12] gnu: %boot-tcc-inputs: Remove extra "gash-utils" Timothy Sample
2022-03-14 22:57 ` [bug#54394] [PATCH core-updates 12/12] gnu: commencement: Remove many old utilities Timothy Sample
2022-03-15 10:34   ` Maxime Devos
2022-03-15 19:35     ` Timothy Sample
2022-03-16 17:25 ` [bug#54394] [PATCH core-updates 00/12] Remove old GNU utilities from early bootstrap Ludovic Courtès
2022-03-16 17:32 ` Ludovic Courtès
2022-03-19 19:53   ` bug#54394: " Timothy Sample
2022-03-21 15:17     ` [bug#54394] " Ludovic Courtès
2022-03-20 11:38 ` Jan Nieuwenhuizen
2022-03-20 11:48 ` Jan Nieuwenhuizen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220314225712.19869-3-samplet@ngyro.com \
    --to=samplet@ngyro.com \
    --cc=54394@debbugs.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.