summaryrefslogtreecommitdiff
path: root/gnu/system
Commit message (Collapse)AuthorAge
* install: Fix typo.Tobias Geerinckx-Rice2017-11-11
| | | | * gnu/system/install.scm (installation-os): Fix typo in comment.
* install: Use overlayfs instead of unionfs.Hartmut Goebel2017-11-08
| | | | | | | | | | | | | | 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.Hartmut Goebel2017-11-08
| | | | | | | | | | | | | | 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.Mathieu Othacehe2017-11-06
| | | | | | | | * 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.Marius Bakke2017-11-01
| | | | * gnu/system/shadow.scm (default-skeletons)[bashrc]: Add return statement.
* system: Test for interactive shell instead of `cat` in skeleton '.bashrc'.Marius Bakke2017-11-01
| | | | | * gnu/system/shadow.scm (default-skeletons)[bashrc]: Wrap $SSH_CLIENT test in a conditional testing for interactive shell.
* vm: Always use GRUB/i386.Ludovic Courtès2017-10-19
| | | | | | | | Fixes <https://bugs.gnu.org/28768>. Reported by Oleg Pykhalov <go.wigust@gmail.com>. * gnu/system/vm.scm (virtualized-operating-system): Override the 'bootloader' field.
* doc: Give an example with a FAT UUID.Ludovic Courtès2017-10-11
| | | | | | * 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".Ludovic Courtès2017-10-11
| | | | | | | | | | | | * 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.Ludovic Courtès2017-10-11
| | | | | | | | | | | 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.Ludovic Courtès2017-10-11
| | | | | | | | | | | | | * 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.Christopher Baines2017-10-08
| | | | | | | | | | | | | | 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.
* file-systems: Add a 'location' field to <file-system>.Ludovic Courtès2017-10-05
| | | | * gnu/system/file-systems.scm (<file-system>)[location]: New field.
* uuid: Add 'uuid=?' and use it.Ludovic Courtès2017-10-05
| | | | | | | * 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=?'.
* vm: Add disk-image-size to <virtual-machine>.Christopher Baines2017-10-04
| | | | | | * 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.Christopher Baines2017-10-04
| | | | | | * 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.
* uuid: Add a parser for FAT32 UUIDs.Ludovic Courtès2017-09-22
| | | | | | | * 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.
* services: Move 'session-environment-service-type' to pam.scm.Ludovic Courtès2017-09-22
| | | | | | | * gnu/services/base.scm (environment-variables->environment-file) (session-environment-service-type) (session-environment-service): Move to... * gnu/system/pam.scm: ... here.
* doc: Use Screen and OpenSSH in the bare-bones example.Ludovic Courtès2017-09-12
| | | | | | | * gnu/system/examples/bare-bones.tmpl (packages): Remove TCPDUMP; add SCREEN and OPENSSH. * doc/guix.texi (Using the Configuration System): Adjust explanation accordingly.
* install: Include the whole bare-bones OS in the image.Ludovic Courtès2017-09-12
| | | | | * gnu/system/install.scm (%installation-services): Load "example/bare-bones.tmpl". Add a 'gc-root-service-type' instance.
* vm: Generate a UUID to identify the root file system.Ludovic Courtès2017-09-11
| | | | | | | | | This makes collisions less likely than when using a label to look up the partition. See <https://bugs.gnu.org/27735>. * gnu/system/vm.scm (operating-system-uuid): New procedure. (system-disk-image): Define 'root-uuid' and use it for the root file system. Pass it to 'iso9660-image' and 'qemu-image'.
* vm: Allow users to specify a UUID for the root partition.Ludovic Courtès2017-09-11
| | | | | * gnu/system/vm.scm (qemu-image): Add #:file-system-uuid parameter; pass it as the 'uuid' field of the root partition.
* uuid: 'uuid' macro supports more UUID types.Ludovic Courtès2017-09-11
| | | | | | * gnu/system/uuid.scm (string->uuid): Turn 'type' into an optional argument. (uuid): Add clauses to allow for an optional 'type' parameter.
* system: Introduce a disjoint UUID type.Ludovic Courtès2017-09-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conceptually a UUID is just a bytevector. However, there's software out there such as GRUB that relies on the string representation of different UUID types (e.g., the string representation of DCE UUIDs differs from that of ISO-9660 UUIDs, even if they are actually bytevectors of the same length). This new <uuid> record type allows us to preserve information about the type of UUID so we can eventually convert it to a string using the right representation. * gnu/system/uuid.scm (<uuid>): New record type. (bytevector->uuid): New procedure. (uuid): Return calls to 'make-uuid'. (uuid->string): Rewrite using 'match-lambda*' to accept a single 'uuid?' argument. * gnu/bootloader/grub.scm (grub-root-search): Check for 'uuid?' instead of 'bytevector?'. * gnu/system.scm (bootable-kernel-arguments): Check whether ROOT-DEVICE is 'uuid?'. (read-boot-parameters): Use 'bytevector->uuid' when the store device is a bytevector. (read-boot-parameters-file): Check for 'uuid?' instead of 'bytevector?'. (device->sexp): New procedure. (operating-system-boot-parameters-file): Use it for 'root-device' and 'store'. (operating-system-bootcfg): Remove conditional in definition of 'root-device'. * gnu/system/file-systems.scm (file-system->spec): Check for 'uuid?' on DEVICE and take its bytevector. * gnu/system/mapped-devices.scm (open-luks-device): Likewise. * gnu/system/vm.scm (iso9660-image): Call 'uuid-bytevector' for the #:volume-uuid argument.
* file-systems: Introduce (gnu system uuid).Ludovic Courtès2017-09-11
| | | | | | | | | | | | | | | * gnu/build/file-systems.scm (sub-bytevector) (latin1->string, %fat32-endianness, fat32-uuid->string) (%iso9660-uuid-rx, string->iso9660-uuid) (iso9660-uuid->string, %network-byte-order) (dce-uuid->string, %uuid-rx, string->dce-uuid) (string->ext2-uuid, string->ext3-uuid, string->ext4-uuid) (vhashq, %uuid-parsers, %uuid-printers, string->uuid) (uuid->string): Move to... * gnu/system/uuid.scm: ... here. New file. * gnu/system/file-systems.scm (uuid): Move to the above file. * gnu/system/vm.scm: Adjust accordingly. * gnu/local.mk (GNU_SYSTEM_MODULES): Add uuid.scm.
* install: Add OpenSSH to the global profile.Ludovic Courtès2017-09-10
| | | | | | Suggested by Jan Nieuwenhuizen. * gnu/system/install.scm (installation-os)[packages]: Add OPENSSH.
* install: Add 'passwd' to $PATH.Ludovic Courtès2017-09-10
| | | | | | Suggested by Jan Nieuwenhuizen. * gnu/system/install.scm (installation-os)[setuid-programs]: Add 'passwd'.
* vm: Call iso9660-image with #:register-closures? as #t.Christopher Baines2017-09-06
| | | | | * gnu/system/vm.scm (system-disk-image): Call iso9660-image with #:register-closures? as #t.
* vm: Add support for registering closures to iso9660-image.Christopher Baines2017-09-06
| | | | * gnu/system/vm.scm (iso9660-image): Add support for registering closures.
* vm: Remove redundant conditional in system-disk-image.Christopher Baines2017-09-04
| | | | | * gnu/system/vm.scm (system-disk-image): Remove redundant conditional for #:file-system-type when calling qemu-image.
* gnu: bootloader: Deprecate "device" field in favor of "target".Andy Wingo2017-08-23
| | | | | | | | | | | | | | | | | | | | | * gnu/bootloader.scm (<bootloader-configuration>): Deprecate "device" field in favor of "target" field. This is mostly a renaming but also a generalization to support UEFI targets being paths to a mounted partition instead of a device name. * gnu/system/examples/bare-bones.tmpl: * gnu/system/examples/desktop.tmpl: * gnu/system/examples/lightweight-desktop.tmpl: * gnu/system/examples/vm-image.tmpl: * gnu/system/install.scm: * gnu/tests.scm: * gnu/tests/install.scm: * gnu/tests/nfs.scm: * tests/system.scm: Adapt all invocations of bootloader-configuration. * guix/scripts/system.scm (perform-action): Rename device argument to bootloader-target. (process-action): Adapt caller. * doc/guix.texi (Proceeding with the Installation): * doc/guix.texi (Bootloader Configuration): Update documentation.
* gnu: grub-efi-bootloader: Specialize grub-install invocation.Andy Wingo2017-08-20
| | | | | | | | | | | | | * gnu/bootloader/grub.scm (install-grub-efi): Fix grub-install invocation for EFI systems. * gnu/system/examples/bare-bones.tmpl: Use the newer "bootloader-configuration" syntax. * gnu/system/examples/desktop.tmpl: Use bootloader-configuration sytax. Also, use the same label for the LUKS-mapped device and the root partition. Remove unneeded "title" field for the file-system based on LUKS; as noted in the manual, the "title" field is ignored for mapped devices. * gnu/system/examples/lightweight-desktop.tmpl: Use bootloader-configuration, and use grub-efi-bootloader.
* vm: Use grub-hybrid's grub-mkrescue.Danny Milosavljevic2017-08-03
| | | | | * gnu/system/vm.scm (system-disk-image): Use grub-hybrid's grub-mkrescue. * gnu/bootlader/grub.scm (grub-mkrescue-bootloader): New variable.
* system: Add 'grep --color' alias in '.bash_profile' skeleton.Ludovic Courtès2017-07-27
| | | | * gnu/system/shadow.scm (default-skeletons)[profile]: Add 'grep' alias.
* system: Add a default '.guile' skeleton.Ludovic Courtès2017-07-25
| | | | * gnu/system/shadow.scm (default-skeletons): Add ".guile".
* vm: Add a <virtual-machine> type and associated gexp compiler.Ludovic Courtès2017-07-20
| | | | | | | | | * gnu/system/vm.scm (system-qemu-image/shared-store-script): Add #:options parameter and honor it. (<virtual-machine>): New record type. (virtual-machine): New macro. (port-forwardings->qemu-options, virtual-machine-compiler): New procedures.
* vm: 'iso9660-image' produces a single-file output.Ludovic Courtès2017-07-18
| | | | | | | | | * gnu/system/vm.scm (expression->derivation-in-linux-vm): Add #:single-file-output? and pass it to 'load-in-linux-vm'. (iso9660-image): Pass #:single-file-output? to 'expression->derivation-in-linux-vm'. * gnu/build/vm.scm (load-in-linux-vm): Add #:single-file-output? and honor it.
* locale: Demonadify the locale creation API.Ludovic Courtès2017-07-17
| | | | | | | | * gnu/system/locale.scm (single-locale-directory): Use 'computed-file' instead of 'gexp->derivation'. (locale-directory): Adjust accordingly and do the same. * gnu/system.scm (operating-system-directory-base-entries): Adjust accordingly.
* gnu: Remove glibc@2.21 and its traces.Ludovic Courtès2017-07-17
| | | | | | | * gnu/packages/base.scm (glibc-2.21): Remove. * gnu/system/locale.scm (localedef-command)[maybe-version-directory]: Remove. Replace call with use of 'package-version'. (single-locale-directory): Remove 'version>=' conditional.
* build, vm: Use a less common label.Tobias Geerinckx-Rice2017-07-17
| | | | | | * gnu/build/vm.scm (initialize-hard-disk): Use "GuixSD_image" as label. * gnu/system/install.scm (installation-os): Likewise. * gnu/system/vm.scm (system-disk-image): Likewise.
* gnu: Rename (gnu packages qemu) to (gnu packages virtualization).宋文武2017-07-15
| | | | | | | | | * gnu/packages/qemu.scm: Rename this ... * gnu/packages/virtualization.scm: ... to this. * gnu/local.mk (GNU_SYSTEM_MODULES), gnu/packages/bootloaders.scm, gnu/packages/debug.scm, gnu/packages/gnome.scm, gnu/system/vm.scm, gnu/tests/install.scm: Adjust accordingly.
* system: Refer to native packages when appropriate.Ludovic Courtès2017-07-11
| | | | | * gnu/system/locale.scm (localedef-command): Use the native LIBC. * gnu/system/shadow.scm (default-skeletons): Use the native GUILE-WM.
* build, vm: Use "GuixSD" or "GUIXSD" as volume label.Danny Milosavljevic2017-07-10
| | | | | | | | | * gnu/build/vm.scm (initialize-hard-disk): Use "GuixSD" as label. * gnu/system/install.scm (installation-os): Use "GuixSD" as label. * gnu/system/vm.scm (system-disk-image): Use "GuixSD" or "GUIXSD" as volume label. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
* guix system: Add file system label and uuid to iso9660-image.Danny Milosavljevic2017-07-07
| | | | | | * gnu/system/vm.scm (system-disk-image): Pass root-label to ... (iso9660-image): ... here. Add keyword arguments #:file-system-label and #:file-system-uuid.
* linux-initrd: Avoid monadic style a bit.Ludovic Courtès2017-07-04
| | | | | | | | * gnu/system/linux-initrd.scm (expression->initrd): Use 'program-file' for 'init'. (flat-linux-module-directory): Use 'computed-file' instead of 'gexp->derivation'. (raw-initrd): Adjust accordingly.
* install: Drop redundant package after c0f5eee4b2cc737be222c4ba331d0.Marius Bakke2017-07-04
| | | | * gnu/system/install.scm (installation-os): Remove SHADOW.
* build: Add iso9660 system image generator.Danny Milosavljevic2017-07-03
| | | | | | | * build-aux/hydra/gnu-system.scm (qemu-jobs): Add 'iso9660-image . * gnu/build/vm.scm (make-iso9660-image): New variable. Export it. * gnu/system/vm.scm (iso9660-image): New variable. Use make-iso9660-image. (system-disk-image): Use iso9660-image.
* linux-initrd: Add isofs if necessary.Danny Milosavljevic2017-07-02
| | | | * gnu/system/linux-initrd.scm (base-initrd): Add isofs.
* install: Re-add /bin/sh.Ludovic Courtès2017-07-02
| | | | | | | | | Reported by Divan Santana <divan@santanas.co.za>. /bin/sh had disappeared in commit 387e175492f960d7d86f34f3b2e43938fa72dbf3. * gnu/system/install.scm (%installation-services): Add 'special-files-service-type' instance.
* vm: Estimate the disk size by default.Ludovic Courtès2017-06-30
| | | | | | | | | | | | | | | * gnu/build/vm.scm (estimated-partition-size): New procedure. * gnu/system/vm.scm (expression->derivation-in-linux-vm): Change #:disk-image-size default to 'guess. [builder]: When DISK-IMAGE-SIZE is 'guess, use 'estimated-partition-size' and compute and estimate of the image size. (qemu-image): Likewise. * guix/build/store-copy.scm (file-size, closure-size): New procedures. * guix/scripts/system.scm (%default-options): Change 'image-size' to 'guess. * doc/guix.texi (Building the Installation Image): Remove '--image-size' flag from example. (Invoking guix system): Document the image size estimate.