mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 21:38:07 -05:00
image: Add Hurd support.
* gnu/system/image.scm (hurd-disk-image): New exported variable, (root-offset, root-label): new variables, (esp-partition, root-partition): adapt accordingly, (find-image): add Hurd support.
This commit is contained in:
parent
6cea61f2fa
commit
c77b92859f
2 changed files with 40 additions and 5 deletions
|
@ -161,6 +161,8 @@ (define* (initialize-root-partition root
|
|||
references-graphs
|
||||
(register-closures? #t)
|
||||
system-directory
|
||||
(make-device-nodes
|
||||
make-essential-device-nodes)
|
||||
#:allow-other-keys)
|
||||
"Initialize the given ROOT directory. Use BOOTCFG and BOOTCFG-LOCATION to
|
||||
install the bootloader configuration.
|
||||
|
@ -172,6 +174,9 @@ (define* (initialize-root-partition root
|
|||
(populate-root-file-system system-directory root)
|
||||
(populate-store references-graphs root)
|
||||
|
||||
;; Populate /dev.
|
||||
(make-device-nodes root)
|
||||
|
||||
(when register-closures?
|
||||
(for-each (lambda (closure)
|
||||
(register-closure root
|
||||
|
|
|
@ -43,6 +43,7 @@ (define-module (gnu system image)
|
|||
#:use-module (gnu packages genimage)
|
||||
#:use-module (gnu packages guile)
|
||||
#:autoload (gnu packages gnupg) (guile-gcrypt)
|
||||
#:use-module (gnu packages hurd)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages mtools)
|
||||
#:use-module ((srfi srfi-1) #:prefix srfi-1:)
|
||||
|
@ -54,6 +55,7 @@ (define-module (gnu system image)
|
|||
#:export (esp-partition
|
||||
root-partition
|
||||
|
||||
hurd-disk-image
|
||||
efi-disk-image
|
||||
iso9660-image
|
||||
|
||||
|
@ -91,6 +93,26 @@ (define root-partition
|
|||
(flags '(boot))
|
||||
(initializer (gexp initialize-root-partition))))
|
||||
|
||||
(define hurd-initialize-root-partition
|
||||
#~(lambda* (#:rest args)
|
||||
(apply initialize-root-partition
|
||||
(append args
|
||||
(list #:make-device-nodes
|
||||
make-hurd-device-nodes)))))
|
||||
|
||||
(define hurd-disk-image
|
||||
(image
|
||||
(format 'disk-image)
|
||||
(partitions
|
||||
(list (partition
|
||||
(size 'guess)
|
||||
(offset root-offset)
|
||||
(label root-label)
|
||||
(file-system "ext2")
|
||||
(file-system-options '("-o" "hurd" "-O" "ext_attr"))
|
||||
(flags '(boot))
|
||||
(initializer hurd-initialize-root-partition))))))
|
||||
|
||||
(define efi-disk-image
|
||||
(image
|
||||
(format 'disk-image)
|
||||
|
@ -145,12 +167,14 @@ (define-syntax-rule (with-imported-modules* gexp* ...)
|
|||
(with-imported-modules `(,@(source-module-closure
|
||||
'((gnu build vm)
|
||||
(gnu build image)
|
||||
(gnu build linux-boot)
|
||||
(guix store database))
|
||||
#:select? not-config?)
|
||||
((guix config) => ,(make-config.scm)))
|
||||
#~(begin
|
||||
(use-modules (gnu build vm)
|
||||
(gnu build image)
|
||||
(gnu build linux-boot)
|
||||
(guix store database)
|
||||
(guix build utils))
|
||||
gexp* ...))))
|
||||
|
@ -525,10 +549,16 @@ (define (find-image file-system-type)
|
|||
"Find and return an image that could match the given FILE-SYSTEM-TYPE. This
|
||||
is useful to adapt to interfaces written before the addition of the <image>
|
||||
record."
|
||||
(mlet %store-monad ((target (current-target-system)))
|
||||
(mbegin %store-monad
|
||||
(return
|
||||
(match file-system-type
|
||||
("iso9660" iso9660-image)
|
||||
(_ efi-disk-image)))))
|
||||
(_ (cond
|
||||
((and target
|
||||
(hurd-triplet? target))
|
||||
hurd-disk-image)
|
||||
(else
|
||||
efi-disk-image))))))))
|
||||
|
||||
;;; image.scm ends here
|
||||
|
|
Loading…
Reference in a new issue