all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Herman Rimm via Guix-patches via <guix-patches@gnu.org>
To: 72457@debbugs.gnu.org
Subject: [bug#72457] [PATCH v6 05/12] gnu: system: image: Reduce subprocedure indentation.
Date: Tue, 24 Sep 2024 20:29:12 +0200	[thread overview]
Message-ID: <e6694a63d429a3a00c4cb21287610666104fb6aa.1727201267.git.herman@rimm.ee> (raw)
In-Reply-To: <cover.1727201267.git.herman@rimm.ee>

* gnu/system/image.scm (system-disk-image): Reduce indentation.

Change-Id: I9cf59d3a61d0c6e7e90009e62661f74f774f090a
---
 gnu/system/image.scm | 115 ++++++++++++++++++++++---------------------
 1 file changed, 59 insertions(+), 56 deletions(-)

diff --git a/gnu/system/image.scm b/gnu/system/image.scm
index b58de1db14..6201b36334 100644
--- a/gnu/system/image.scm
+++ b/gnu/system/image.scm
@@ -448,63 +448,66 @@ (define* (system-disk-image image
                     (format #f (G_ "unsupported partition type: ~a")
                             file-system)))))))))
 
+    (define (image-builder partition)
+      "A directory, filled by calling the PARTITION initializer
+procedure, is first created within the store.  Then, an image of this
+directory is created using tools such as 'mke2fs' or 'mkdosfs',
+depending on the partition file-system type."
+      (let ((os (image-operating-system image))
+            (schema (local-file (search-path %load-path
+                                             "guix/store/schema.sql")))
+            (graph (match inputs
+                     (((names . _) ...)
+                      names)))
+            (type (partition-file-system partition)))
+        (with-imported-modules*
+          (let ((initializer (or #$(partition-initializer partition)
+                                 initialize-root-partition))
+                (inputs '#+(cond
+                             ((string-prefix? "ext" type)
+                              (list e2fsprogs fakeroot))
+                             ((or (string=? type "vfat")
+                                  (string-prefix? "fat" type))
+                              (list dosfstools fakeroot mtools))
+                             (else
+                               '())))
+                (image-root (string-append (getcwd) "/tmp-root"))
+                (copy-closures? (not #$(image-shared-store? image))))
+            (sql-schema #$schema)
+
+            (set-path-environment-variable "PATH" '("bin" "sbin") inputs)
+
+            ;; Allow non-ASCII file names--e.g., 'nss-certs'--to be
+            ;; decoded.
+            (setenv "GUIX_LOCPATH"
+                    #+(file-append (libc-utf8-locales-for-target
+                                    (%current-system))
+                                   "/lib/locale"))
+            (setlocale LC_ALL "en_US.utf8")
+
+            (initializer image-root
+                         #:references-graphs '#$graph
+                         #:deduplicate? #f
+                         #:copy-closures? copy-closures?
+                         #:system-directory #$os)
+            ;; There's no point installing a bootloader if we do not
+            ;; populate the store.
+            (when copy-closures?
+              ;; Root-offset isn't necessary: we override 'root.
+              #$(bootloader-configurations->gexp
+                  bootloader-config bootmeta
+                  #:overrides (targets partition)))
+            (make-partition-image #$(partition->gexp partition)
+                                  #$output
+                                  image-root)))))
+
     (define (partition-image partition)
-      ;; Return as a file-like object, an image of the given PARTITION.  A
-      ;; directory, filled by calling the PARTITION initializer procedure, is
-      ;; first created within the store.  Then, an image of this directory is
-      ;; created using tools such as 'mke2fs' or 'mkdosfs', depending on the
-      ;; partition file-system type.
-      (let* ((os (image-operating-system image))
-             (schema (local-file (search-path %load-path
-                                              "guix/store/schema.sql")))
-             (graph (match inputs
-                      (((names . _) ...)
-                       names)))
-             (type (partition-file-system partition))
-             (image-builder
-              (with-imported-modules*
-               (let ((initializer (or #$(partition-initializer partition)
-                                      initialize-root-partition))
-                     (inputs '#+(cond
-                                  ((string-prefix? "ext" type)
-                                   (list e2fsprogs fakeroot))
-                                  ((or (string=? type "vfat")
-                                       (string-prefix? "fat" type))
-                                   (list dosfstools fakeroot mtools))
-                                  (else
-                                    '())))
-                     (image-root (string-append (getcwd) "/tmp-root"))
-                     (copy-closures? (not #$(image-shared-store? image))))
-                 (sql-schema #$schema)
-
-                 (set-path-environment-variable "PATH" '("bin" "sbin") inputs)
-
-                 ;; Allow non-ASCII file names--e.g., 'nss-certs'--to be
-                 ;; decoded.
-                 (setenv "GUIX_LOCPATH"
-                         #+(file-append (libc-utf8-locales-for-target
-                                         (%current-system))
-                                        "/lib/locale"))
-                 (setlocale LC_ALL "en_US.utf8")
-
-                 (initializer image-root
-                              #:references-graphs '#$graph
-                              #:deduplicate? #f
-                              #:copy-closures? copy-closures?
-                              #:system-directory #$os)
-                 ;; no point installing a bootloader if we don't populate store
-                 (when copy-closures?
-                   ;; root-offset isn't necessary - we override 'root
-                   #$(bootloader-configurations->gexp bootloader-config bootmeta
-                       #:overrides (targets partition)))
-                 (make-partition-image #$(partition->gexp partition)
-                                       #$output
-                                       image-root)))))
-        (computed-file "partition.img" image-builder
-                       ;; Allow offloading so that this I/O-intensive process
-                       ;; doesn't run on the build farm's head node.
-                       #:local-build? #f
-                       #:options `(#:references-graphs ,inputs))))
+      "Return as a file-like object, an image of the given PARTITION."
+      (computed-file "partition.img" (image-builder partition)
+                     ;; Allow offloading so that this I/O-intensive process
+                     ;; doesn't run on the build farm's head node.
+                     #:local-build? #f
+                     #:options `(#:references-graphs ,inputs)))
 
     (define (gpt-image? image)
       (eq? 'gpt (image-partition-table-type image)))
-- 
2.45.2





  parent reply	other threads:[~2024-09-24 20:19 UTC|newest]

Thread overview: 114+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-04  3:50 [bug#72457] [PATCH 00/15] Rewrite bootloader subsystem Lilah Tascheter via Guix-patches
2024-08-04  3:55 ` [bug#72457] [PATCH 01/15] guix: scripts: Rewrite reinstall-bootloader to use provenance data Lilah Tascheter via Guix-patches
2024-08-04  3:55 ` [bug#72457] [PATCH 02/15] gnu: Add bootloader target infastructure Lilah Tascheter via Guix-patches
2024-08-04  3:55 ` [bug#72457] [PATCH 03/15] guix: scripts: Remove unused code Lilah Tascheter via Guix-patches
2024-08-04  3:55 ` [bug#72457] [PATCH 04/15] gnu: Core bootloader changes Lilah Tascheter via Guix-patches
2024-08-04  3:55 ` [bug#72457] [PATCH 05/15] gnu: system: Remove useless boot parameters Lilah Tascheter via Guix-patches
2024-08-04  3:55 ` [bug#72457] [PATCH 06/15] gnu: bootloader: Add raspberry pi bootloader Lilah Tascheter via Guix-patches
2024-08-04  3:55 ` [bug#72457] [PATCH 07/15] gnu: system: Fix bootloader crypto device recognition Lilah Tascheter via Guix-patches
2024-08-04  9:22   ` Tomas Volf
2024-08-04  3:55 ` [bug#72457] [PATCH 08/15] gnu: packages: Add pesign Lilah Tascheter via Guix-patches
2024-08-04  3:55 ` [bug#72457] [PATCH 09/15] gnu: packages: Add ukify Lilah Tascheter via Guix-patches
2024-08-04  3:55 ` [bug#72457] [PATCH 10/15] gnu: packages: Add systemd-stub Lilah Tascheter via Guix-patches
2024-08-04  3:55 ` [bug#72457] [PATCH 11/15] gnu: bootloaders: Add uki-efi-bootloader Lilah Tascheter via Guix-patches
2024-08-04  3:55 ` [bug#72457] [PATCH 12/15] gnu: system: Update examples Lilah Tascheter via Guix-patches
2024-08-04  3:55 ` [bug#72457] [PATCH 13/15] doc: Update bootloader documentation Lilah Tascheter via Guix-patches
2024-08-04  3:55 ` [bug#72457] [PATCH 14/15] gnu: tests: Update tests to new targets system Lilah Tascheter via Guix-patches
2024-08-04  3:55 ` [bug#72457] [PATCH 15/15] teams: Add bootloading team Lilah Tascheter via Guix-patches
2024-08-04  8:53 ` [bug#72457] [PATCH 00/15] Rewrite bootloader subsystem Sergey Trofimov
2024-08-04  9:19   ` Sergey Trofimov
2024-08-04 18:05 ` [bug#72457] [PATCH v2 " Lilah Tascheter via Guix-patches
2024-08-04 18:06   ` [bug#72457] [PATCH v2 01/15] guix: scripts: Rewrite reinstall-bootloader to use provenance data Lilah Tascheter via Guix-patches
2024-08-04 18:06   ` [bug#72457] [PATCH v2 02/15] gnu: Add bootloader target infastructure Lilah Tascheter via Guix-patches
2024-08-04 18:06   ` [bug#72457] [PATCH v2 03/15] guix: scripts: Remove unused code Lilah Tascheter via Guix-patches
2024-08-04 18:06   ` [bug#72457] [PATCH v2 04/15] gnu: Core bootloader changes Lilah Tascheter via Guix-patches
2024-08-04 18:06   ` [bug#72457] [PATCH v2 05/15] gnu: system: Remove useless boot parameters Lilah Tascheter via Guix-patches
2024-08-04 18:06   ` [bug#72457] [PATCH v2 06/15] gnu: bootloader: Add raspberry pi bootloader Lilah Tascheter via Guix-patches
2024-08-04 18:06   ` [bug#72457] [PATCH v2 07/15] gnu: system: Fix bootloader crypto device recognition Lilah Tascheter via Guix-patches
2024-08-04 18:06   ` [bug#72457] [PATCH v2 08/15] gnu: packages: Add pesign Lilah Tascheter via Guix-patches
2024-08-04 18:06   ` [bug#72457] [PATCH v2 09/15] gnu: packages: Add ukify Lilah Tascheter via Guix-patches
2024-08-04 18:06   ` [bug#72457] [PATCH v2 10/15] gnu: packages: Add systemd-stub Lilah Tascheter via Guix-patches
2024-08-04 18:06   ` [bug#72457] [PATCH v2 11/15] gnu: bootloaders: Add uki-efi-bootloader Lilah Tascheter via Guix-patches
2024-08-04 18:06   ` [bug#72457] [PATCH v2 12/15] gnu: system: Update examples Lilah Tascheter via Guix-patches
2024-08-04 18:06   ` [bug#72457] [PATCH v2 13/15] doc: Update bootloader documentation Lilah Tascheter via Guix-patches
2024-08-04 18:06   ` [bug#72457] [PATCH v2 14/15] gnu: tests: Update tests to new targets system Lilah Tascheter via Guix-patches
2024-08-04 18:06   ` [bug#72457] [PATCH v2 15/15] teams: Add bootloading team Lilah Tascheter via Guix-patches
2024-08-04 19:52   ` [bug#72457] [PATCH v2 00/15] Rewrite bootloader subsystem Sergey Trofimov
2024-08-04 20:31 ` [bug#72457] [PATCH v3 " Lilah Tascheter via Guix-patches
2024-08-04 20:31   ` [bug#72457] [PATCH v3 01/15] guix: scripts: Rewrite reinstall-bootloader to use provenance data Lilah Tascheter via Guix-patches
2024-08-04 20:31   ` [bug#72457] [PATCH v3 02/15] gnu: Add bootloader target infastructure Lilah Tascheter via Guix-patches
2024-08-04 20:31   ` [bug#72457] [PATCH v3 03/15] guix: scripts: Remove unused code Lilah Tascheter via Guix-patches
2024-08-04 20:31   ` [bug#72457] [PATCH v3 04/15] gnu: Core bootloader changes Lilah Tascheter via Guix-patches
2024-08-04 20:31   ` [bug#72457] [PATCH v3 05/15] gnu: system: Remove useless boot parameters Lilah Tascheter via Guix-patches
2024-08-04 20:31   ` [bug#72457] [PATCH v3 06/15] gnu: bootloader: Add raspberry pi bootloader Lilah Tascheter via Guix-patches
2024-08-04 20:31   ` [bug#72457] [PATCH v3 07/15] gnu: system: Fix bootloader crypto device recognition Lilah Tascheter via Guix-patches
2024-08-04 20:31   ` [bug#72457] [PATCH v3 08/15] gnu: packages: Add pesign Lilah Tascheter via Guix-patches
2024-08-04 20:31   ` [bug#72457] [PATCH v3 09/15] gnu: packages: Add ukify Lilah Tascheter via Guix-patches
2024-08-04 20:31   ` [bug#72457] [PATCH v3 10/15] gnu: packages: Add systemd-stub Lilah Tascheter via Guix-patches
2024-08-04 20:31   ` [bug#72457] [PATCH v3 11/15] gnu: bootloaders: Add uki-efi-bootloader Lilah Tascheter via Guix-patches
2024-08-04 20:31   ` [bug#72457] [PATCH v3 12/15] gnu: system: Update examples Lilah Tascheter via Guix-patches
2024-08-04 20:31   ` [bug#72457] [PATCH v3 13/15] doc: Update bootloader documentation Lilah Tascheter via Guix-patches
2024-08-04 20:32   ` [bug#72457] [PATCH v3 14/15] gnu: tests: Update tests to new targets system Lilah Tascheter via Guix-patches
2024-08-04 20:32   ` [bug#72457] [PATCH v3 15/15] teams: Add bootloading team Lilah Tascheter via Guix-patches
2024-08-05  7:00   ` [bug#72457] [PATCH v3 00/15] Rewrite bootloader subsystem Sergey Trofimov
2024-08-06  2:44 ` [bug#72457] [PATCH v4 " Lilah Tascheter via Guix-patches
2024-08-06  2:44   ` [bug#72457] [PATCH v4 01/15] guix: scripts: Rewrite reinstall-bootloader to use provenance data Lilah Tascheter via Guix-patches
2024-08-06  2:44   ` [bug#72457] [PATCH v4 02/15] gnu: Add bootloader target infastructure Lilah Tascheter via Guix-patches
2024-08-06  2:44   ` [bug#72457] [PATCH v4 03/15] guix: scripts: Remove unused code Lilah Tascheter via Guix-patches
2024-08-06  2:44   ` [bug#72457] [PATCH v4 04/15] gnu: Core bootloader changes Lilah Tascheter via Guix-patches
2024-08-06  2:44   ` [bug#72457] [PATCH v4 05/15] gnu: system: Remove useless boot parameters Lilah Tascheter via Guix-patches
2024-08-06  2:44   ` [bug#72457] [PATCH v4 06/15] gnu: bootloader: Add raspberry pi bootloader Lilah Tascheter via Guix-patches
2024-08-06  2:44   ` [bug#72457] [PATCH v4 07/15] gnu: system: Fix bootloader crypto device recognition Lilah Tascheter via Guix-patches
2024-08-06  2:44   ` [bug#72457] [PATCH v4 08/15] gnu: packages: Add pesign Lilah Tascheter via Guix-patches
2024-08-06  2:44   ` [bug#72457] [PATCH v4 09/15] gnu: packages: Add ukify Lilah Tascheter via Guix-patches
2024-08-06  2:44   ` [bug#72457] [PATCH v4 10/15] gnu: packages: Add systemd-stub Lilah Tascheter via Guix-patches
2024-08-06  2:44   ` [bug#72457] [PATCH v4 11/15] gnu: bootloaders: Add uki-efi-bootloader Lilah Tascheter via Guix-patches
2024-08-06  2:44   ` [bug#72457] [PATCH v4 12/15] gnu: system: Update examples Lilah Tascheter via Guix-patches
2024-08-06  2:44   ` [bug#72457] [PATCH v4 13/15] doc: Update bootloader documentation Lilah Tascheter via Guix-patches
2024-08-06  2:44   ` [bug#72457] [PATCH v4 14/15] gnu: tests: Update tests to new targets system Lilah Tascheter via Guix-patches
2024-08-06  2:44   ` [bug#72457] [PATCH v4 15/15] teams: Add bootloading team Lilah Tascheter via Guix-patches
2024-08-06  6:13   ` [bug#72457] [PATCH v4 00/15] Rewrite bootloader subsystem Sergey Trofimov
2024-08-07  0:11 ` [bug#72457] [PATCH v5 " Lilah Tascheter via Guix-patches
2024-08-07  0:11   ` [bug#72457] [PATCH v5 01/15] guix: scripts: Rewrite reinstall-bootloader to use provenance data Lilah Tascheter via Guix-patches
2024-08-07  0:11   ` [bug#72457] [PATCH v5 02/15] gnu: Add bootloader target infastructure Lilah Tascheter via Guix-patches
2024-08-07  0:11   ` [bug#72457] [PATCH v5 03/15] guix: scripts: Remove unused code Lilah Tascheter via Guix-patches
2024-08-07  0:11   ` [bug#72457] [PATCH v5 04/15] gnu: Core bootloader changes Lilah Tascheter via Guix-patches
2024-08-07  0:11   ` [bug#72457] [PATCH v5 05/15] gnu: system: Remove useless boot parameters Lilah Tascheter via Guix-patches
2024-08-07  0:11   ` [bug#72457] [PATCH v5 06/15] gnu: bootloader: Add raspberry pi bootloader Lilah Tascheter via Guix-patches
2024-08-07  0:11   ` [bug#72457] [PATCH v5 07/15] gnu: system: Fix bootloader crypto device recognition Lilah Tascheter via Guix-patches
2024-08-07  0:11   ` [bug#72457] [PATCH v5 08/15] gnu: packages: Add pesign Lilah Tascheter via Guix-patches
2024-08-07  0:11   ` [bug#72457] [PATCH v5 09/15] gnu: packages: Add ukify Lilah Tascheter via Guix-patches
2024-08-07  0:11   ` [bug#72457] [PATCH v5 10/15] gnu: packages: Add systemd-stub Lilah Tascheter via Guix-patches
2024-08-07  0:11   ` [bug#72457] [PATCH v5 11/15] gnu: bootloaders: Add uki-efi-bootloader Lilah Tascheter via Guix-patches
2024-08-07  0:11   ` [bug#72457] [PATCH v5 12/15] gnu: system: Update examples Lilah Tascheter via Guix-patches
2024-08-07  0:11   ` [bug#72457] [PATCH v5 13/15] doc: Update bootloader documentation Lilah Tascheter via Guix-patches
2024-08-07  0:11   ` [bug#72457] [PATCH v5 14/15] gnu: tests: Update tests to new targets system Lilah Tascheter via Guix-patches
2024-08-07  0:11   ` [bug#72457] [PATCH v5 15/15] teams: Add bootloading team Lilah Tascheter via Guix-patches
2024-08-07  4:52   ` [bug#72457] [PATCH v5 00/15] Rewrite bootloader subsystem Sergey Trofimov
2024-09-06 22:15   ` guix-patches--- via
2024-09-07  5:48     ` Sergey Trofimov
2024-09-07  7:15       ` guix-patches--- via
2024-09-12 18:08 ` [bug#72457] [PATCH v5 01/15] guix: scripts: Rewrite reinstall-bootloader to use provenance data Herman Rimm via Guix-patches via
2024-09-13  7:56   ` Herman Rimm via Guix-patches via
2024-09-15  9:11 ` [bug#72457] [PATCH v5 00/15] Rewrite bootloader subsystem Herman Rimm via Guix-patches via
2024-09-17 22:20   ` Lilah Tascheter via Guix-patches
2024-09-19 15:35     ` Herman Rimm via Guix-patches via
2024-09-19 17:38       ` Herman Rimm via Guix-patches via
2024-09-20  4:44         ` Lilah Tascheter via Guix-patches
2024-09-20  4:56       ` Lilah Tascheter via Guix-patches
2024-09-24 18:29 ` [bug#72457] [PATCH v6 00/12] " Herman Rimm via Guix-patches via
2024-09-24 18:29   ` [bug#72457] [PATCH v6 01/12] gnu: bootloader: Remove obsolete bootloader fields Herman Rimm via Guix-patches via
2024-09-24 18:29   ` [bug#72457] [PATCH v6 02/12] gnu: bootloader: grub: Rewrite entirely Herman Rimm via Guix-patches via
2024-09-24 18:29   ` [bug#72457] [PATCH v6 03/12] gnu: bootloader: Update bootloader-configuration targets field Herman Rimm via Guix-patches via
2024-09-24 18:29   ` [bug#72457] [PATCH v6 04/12] gnu: Core bootloader changes Herman Rimm via Guix-patches via
2024-09-24 18:29   ` Herman Rimm via Guix-patches via [this message]
2024-09-24 18:29   ` [bug#72457] [PATCH v6 06/12] gnu: bootloader: depthcharge: Rewrite completely Herman Rimm via Guix-patches via
2024-09-24 18:29   ` [bug#72457] [PATCH v6 07/12] gnu: bootloader: extlinux: " Herman Rimm via Guix-patches via
2024-09-24 18:29   ` [bug#72457] [PATCH v6 08/12] gnu: bootloader: u-boot: " Herman Rimm via Guix-patches via
2024-09-24 18:29   ` [bug#72457] [PATCH v6 09/12] gnu: bootloader: Add Raspberry Pi bootloader Herman Rimm via Guix-patches via
2024-09-24 18:29   ` [bug#72457] [PATCH v6 10/12] gnu: tests: Update tests to new targets system Herman Rimm via Guix-patches via
2024-09-24 18:29   ` [bug#72457] [PATCH v6 11/12] gnu: system: Update examples Herman Rimm via Guix-patches via
2024-09-24 18:29   ` [bug#72457] [PATCH v6 12/12] doc: Update bootloader documentation Herman Rimm via Guix-patches via
2024-10-18 10:36 ` [bug#72457] A question about this amano.kenji via Guix-patches via
2024-10-19  1:38 ` [bug#72457] What I mentioned above is verified boot amano.kenji via Guix-patches via
2024-10-21  8:32 ` [bug#72457] After further research amano.kenji via Guix-patches via

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=e6694a63d429a3a00c4cb21287610666104fb6aa.1727201267.git.herman@rimm.ee \
    --to=guix-patches@gnu.org \
    --cc=72457@debbugs.gnu.org \
    --cc=herman@rimm.ee \
    /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.