install: Fix typo.
* gnu/system/install.scm (installation-os): Fix typo in comment.
install: Use overlayfs instead of unionfs.
I dediced to keep adding /tmp as tmpfs since I was not able to trigger bug
while still using unionfs, so I could not verify whether this mount is still
needed with overlayfs. Mapping /tmp to tmpfs does not harm, so we are on the
save side.
* gnu/system/install.scm (make-cow-store): Mount /gnu/store without additional
read-only bind-mount, since in overlayfs the "lower" level is always
read-only. Add work-dir required by overlayfs. No need to sleep anymore
since now using the mount syscall. [unionfs]: Remove now unused function.
(%installation-services): Update comment.
(installation-os)[file-systems]: Update comment.
build: Use overlayfs instead of unionfs.
Overlayfs is part of the kernel, while unionfs needs FUSE. This also reduces
the size of the initrd by ca. 4.3% (487K).
* gnu/build/linux-boot.scm (mount-root-file-system): Remove optional parameter
"unionfs"; mount using overlayfs instead of unionfs; new directory layout
requied by overlayfs; update documentation.
[mark-as-not-killable]: Remove now unused function
* gnu/system/linux-initrd.scm (file-system-packages): Remove now unused
packages "unionfs-fuse/static" and thus unused related 'if'.
(linux-modules): Replace "fuse" by "overlay".
system: vm: Use 2^32 - 1 as hash size.
* gnu/system/vm.scm (operating-system-uuid): Use 2^32 - 1 instead of
2^32 as hash size.
On some 32 bit system (ARM for example), 2^32 exceeds hash max
size (ULONG_MAX = 2^32 - 1).
system: Return early in skeleton '.bashrc' when the shell is non-interactive.
* gnu/system/shadow.scm (default-skeletons)[bashrc]: Add return statement.
system: Test for interactive shell instead of `cat` in skeleton '.bashrc'.
* gnu/system/shadow.scm (default-skeletons)[bashrc]: Wrap $SSH_CLIENT test in
a conditional testing for interactive shell.
doc: Give an example with a FAT UUID.
* gnu/system/examples/lightweight-desktop.tmpl <file-systems>: Add a
UUID for the /boot/efi partition.
* doc/guix.texi (Using the Configuration System): Mention it.
uuid: Change "fat32" to "fat".
* gnu/system/uuid.scm (%fat32-endianness): Rename to...
(%fat-endianness): ... this.
(fat32-uuid->string): Rename to...
(fat-uuid->string): ... this.
(%fat32-uuid-rx): Rename to..
(%fat-uuid-rx): ... this.
(string->fat32-uuid): Rename to...
(string->fat-uuid): ... this.
(%uuid-parsers, %uuid-printers): Add 'fat16.
file-systems: Preserve UUID types when serializing.
Reported by Roel Janssen <roel@gnu.org>
at <https://lists.gnu.org/archive/html/help-guix/2017-09/msg00094.html>.
* gnu/system/file-systems.scm (file-system->spec): When DEVICE is a
UUID, serialize it in a way that preserves its type.
(spec->file-system): Adjust accordingly.
* gnu/build/file-systems.scm (canonicalize-device-spec): Add case for
when SPEC is 'uuid?'.
file-systems: 'mount-file-system' now takes a <file-system> object.
* gnu/build/file-systems.scm (mount-file-system): Rename 'spec' to 'fs'
and assume it's a <file-system>.
* gnu/build/linux-boot.scm (boot-system): Assume MOUNTS is a list of
<file-system> and adjust accordingly.
* gnu/build/linux-container.scm (mount-file-systems): Remove
'file-system->spec' call.
* gnu/services/base.scm (file-system-shepherd-service): Add
'spec->file-system' call. Add (gnu system file-systems) to 'modules'.
* gnu/system/linux-initrd.scm (raw-initrd): Use (gnu system
file-systems). Add 'spec->file-system' call for #:mounts.
linux-initrd: Ensure that the guile used in the initrd is referenced.
By referencing guile from the initrd output explicitly, it will be present in
the store when this initrd is used. If the exact guile used within the initrd
isn't present in the store, then after root is switched during the boot
process, loading modules (such as (ice-9 popen)) won't work.
This fixes guix-patches bug #28399, "Fix mysql activation, and add a basic
test".
* gnu/system/linux-initrd.scm (expression->initrd)[builder]: Write out a file
called references in to the initrd output, which includes the store path for
guile.
Merge branch 'master' into staging
file-systems: Add a 'location' field to <file-system>.
* gnu/system/file-systems.scm (<file-system>)[location]: New field.
uuid: Add 'uuid=?' and use it.
* gnu/system/uuid.scm (uuid=?): New procedure.
* tests/uuid.scm ("uuid=?"): New test.
* gnu/build/file-systems.scm (partition-uuid-predicate)
(luks-partition-uuid-predicate): Use it instead of 'bytevector=?'.
Merge branch 'master' into staging
vm: Add disk-image-size to <virtual-machine>.
* gnu/system/vm.scm (<virtual-machine>): Add disk-image-size.
(port-forwardings->qemu-options): Use disk-image-size from
<virtual-machine>.
vm: Add a minimum root size.
* gnu/system/vm.scm (qemu-image): When guessing the root-size, use a lower
bound of 20 MiB, otherwise the root file system size is sometimes 0 MiB in
size.
Merge branch 'master' into staging
uuid: Add a parser for FAT32 UUIDs.
* gnu/system/uuid.scm (%fat32-uuid-rx): New variable.
(string->fat32-uuid): New procedure.
(%uuid-parsers): Add it.
* tests/uuid.scm ("uuid, FAT32, format preserved"): New test.