diff options
Diffstat (limited to 'gnu/build')
-rw-r--r-- | gnu/build/hurd-boot.scm | 20 | ||||
-rw-r--r-- | gnu/build/image.scm | 26 |
2 files changed, 29 insertions, 17 deletions
diff --git a/gnu/build/hurd-boot.scm b/gnu/build/hurd-boot.scm index aea2ac3307..adc8b4ce16 100644 --- a/gnu/build/hurd-boot.scm +++ b/gnu/build/hurd-boot.scm @@ -191,7 +191,8 @@ set." "10.0.2.15" ;the default QEMU guest IP "--netmask" "255.255.255.0" "--gateway" "10.0.2.2" - "--ipv6" "/servers/socket/16")))) + "--ipv6" "/servers/socket/16")) + ("proc" ("/hurd/procfs" "--stat-mode=444")))) (define devices '(("dev/full" ("/hurd/null" "--full") #o666) @@ -232,17 +233,22 @@ set." #o666))) (for-each scope-set-translator servers) - (mkdir* (scope "dev/vcs/1")) - (mkdir* (scope "dev/vcs/2")) - (mkdir* (scope "dev/vcs/2")) - (rename-file (scope "/dev/console") (scope "/dev/console-")) + (mkdir* "dev/vcs/1") + (mkdir* "dev/vcs/2") + (mkdir* "dev/vcs/2") + (rename-file (scope "dev/console") (scope "dev/console-")) (for-each scope-set-translator devices) (false-if-EEXIST (symlink "/dev/random" (scope "dev/urandom"))) - (mkdir* (scope "dev/fd")) + (mkdir* "dev/fd") (false-if-EEXIST (symlink "/dev/fd/0" (scope "dev/stdin"))) (false-if-EEXIST (symlink "/dev/fd/1" (scope "dev/stdout"))) - (false-if-EEXIST (symlink "/dev/fd/2" (scope "dev/stderr")))) + (false-if-EEXIST (symlink "/dev/fd/2" (scope "dev/stderr"))) + + ;; Make sure /etc/mtab is a symlink to /proc/mounts. + (false-if-exception (delete-file (scope "etc/mtab"))) + (mkdir* (scope "etc")) + (symlink "/proc/mounts" (scope "etc/mtab"))) (define* (boot-hurd-system #:key (on-error 'debug)) diff --git a/gnu/build/image.scm b/gnu/build/image.scm index e7b0418182..d8efa73f16 100644 --- a/gnu/build/image.scm +++ b/gnu/build/image.scm @@ -131,20 +131,23 @@ given CONFIG file." (define* (register-closure prefix closure #:key (deduplicate? #t) (reset-timestamps? #t) - (schema (sql-schema))) + (schema (sql-schema)) + (wal-mode? #t)) "Register CLOSURE in PREFIX, where PREFIX is the directory name of the target store and CLOSURE is the name of a file containing a reference graph as produced by #:references-graphs.. As a side effect, if RESET-TIMESTAMPS? is true, reset timestamps on store files and, if DEDUPLICATE? is true, -deduplicates files common to CLOSURE and the rest of PREFIX." +deduplicates files common to CLOSURE and the rest of PREFIX. Pass WAL-MODE? +to call-with-database." (let ((items (call-with-input-file closure read-reference-graph))) (parameterize ((sql-schema schema)) (with-database (store-database-file #:prefix prefix) db - (register-items db items - #:prefix prefix - #:deduplicate? deduplicate? - #:reset-timestamps? reset-timestamps? - #:registration-time %epoch))))) + #:wal-mode? wal-mode? + (register-items db items + #:prefix prefix + #:deduplicate? deduplicate? + #:reset-timestamps? reset-timestamps? + #:registration-time %epoch))))) (define* (initialize-efi-partition root #:key @@ -164,14 +167,16 @@ deduplicates files common to CLOSURE and the rest of PREFIX." (register-closures? #t) system-directory make-device-nodes + (wal-mode? #t) #:allow-other-keys) "Initialize the given ROOT directory. Use BOOTCFG and BOOTCFG-LOCATION to install the bootloader configuration. If REGISTER-CLOSURES? is true, register REFERENCES-GRAPHS in the store. If DEDUPLICATE? is true, then also deduplicate files common to CLOSURES and the -rest of the store when registering the closures. SYSTEM-DIRECTORY is the name -of the directory of the 'system' derivation." +rest of the store when registering the closures. SYSTEM-DIRECTORY is the name +of the directory of the 'system' derivation. Pass WAL-MODE? to +register-closure." (populate-root-file-system system-directory root) (populate-store references-graphs root) @@ -184,7 +189,8 @@ of the directory of the 'system' derivation." (register-closure root closure #:reset-timestamps? #t - #:deduplicate? deduplicate?)) + #:deduplicate? deduplicate? + #:wal-mode? wal-mode?)) references-graphs)) (when bootloader-installer |