aboutsummaryrefslogtreecommitdiff
path: root/gnu/system
Commit message (Collapse)AuthorAge
* system: Extend .gdbinit to authorize extensions from /gnu/store/*/lib.Ludovic Courtès2018-01-09
| | | | | * gnu/system/shadow.scm (default-skeletons)["gdbinit"]: Add 'auto-load safe-path' statement.
* linux-boot: Add #:on-error for initrd error handling.Ludovic Courtès2018-01-08
| | | | | | | | | | Suggested by Danny Milosavljevic <dannym@scratchpost.org> in <https://bugs.gnu.org/29922>. * gnu/build/linux-boot.scm (boot-system): Add #:on-error parameter and pass it to 'call-with-error-handling'. * gnu/system/linux-initrd.scm (raw-initrd): Add #:on-error and pass it. (base-initrd): Likewise.
* vm: 'vm-image' images refer to the root file system by UUID.Ludovic Courtès2018-01-07
| | | | | | | | | | | This avoids the hard-coded "/dev/sda1", which only made sense when the image is run with "qemu-system-x86_64 -hda", not when it's passed to Xen, etc. Reported by Andreas Enge <andreas@enge.fr>. * gnu/system/vm.scm (system-qemu-image): Define 'root-uuid', use it as the 'device' field for "/", and pass it to 'qemu-image'.
* file-systems: Move %control-groups from %base-file-systems toMathieu Othacehe2017-12-22
| | | | | | | | %elogind-file-systems. * gnu/system/file-systems.scm (%base-file-systems): Move %control-groups from here, to ... (%elogind-file-systems): ... here.
* file-systems: Do not mount hugetlb cgroup filesystem.Mathieu Othacehe2017-12-22
| | | | | | | | On ARM32 without LPAE support, hugetlb control group is not supported. As it is not needed by elogind, remove it for all platforms. * gnu/system/file-systems.scm (%control-groups): Remove hugetlb from control groups platforms.
* mapped-devices: 'luks-device-mapping' checks its source device.Ludovic Courtès2017-12-22
| | | | | * gnu/system/mapped-devices.scm (check-luks-device): New procedure. (luks-device-mapping)[check]: New field.
* mapped-devices: Add 'location' and 'check' fields.Ludovic Courtès2017-12-22
| | | | | * gnu/system/mapped-devices.scm (<mapped-device>)[location]: New field. (<mapped-device-type>)[check]: New field.
* system: examples: Add missing initrd to beaglebone-black.tmpl.Mathieu Othacehe2017-12-22
| | | | | * gnu/system/examples/beaglebone-black.tmpl (operating-system): Add the initrd with "omap_hsmmc" as an extra-module.
* system: examples: Add a template for BeagleBone Black.Mathieu Othacehe2017-12-18
| | | | | | * gnu/system/examples/beaglebone-black.tmpl: New file. * Makefile.am (EXAMPLES): Add it. * gnu/system/install.scm (/etc/configuration-files): Add it.
* vm: Pass the host's /dev/urandom to the guest at /dev/hwrng.Leo Famulari2017-12-18
| | | | | * gnu/build/vm.scm (load-in-linux-vm): Use QEMU's virtio-rng-pci. * gnu/system/vm.scm (common-qemu-options): Likewise.
* gnu: system: vm: Use loose cache for 9p file system.Christopher Baines2017-12-17
| | | | | | | This improves the performance of the shared store for operations involving lots of files, e.g. searching through the store. * gnu/system/vm.scm (mapping->file-system): Add cache=loose to options.
* system: Add BeagleBone Black installer.Mathieu Othacehe2017-12-15
| | | | | | * gnu/bootloader/u-boot.scm (u-boot-beaglebone-black-bootloader): New exported bootloader. * gnu/system/install.scm (beaglebone-black-installation-os): New exported variable.
* bootloader: Factorize write-file-on-device.Mathieu Othacehe2017-12-15
| | | | | | | | | | | * gnu/bootloader/extlinux.scm (install-extlinux): Factorize bootloader writing in a new procedure write-file-on-device defined in (gnu build bootloader). * gnu/build/bootloader.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add new file. * gnu/system/vm.scm (qemu-img): Adapt to import and use (gnu build bootloader) module during derivation building. * gnu/scripts/system.scm (bootloader-installer-derivation): Ditto.
* vm: Adapt qemu command to ARM.Mathieu Othacehe2017-12-15
| | | | | | | | | | | * gnu/build/vm.scm (load-in-linux-vm): New argument #:target-arm32. Use it to adapt command for qemu-system-arm. This implies to choose a machine ("virt"), use the correct console port "ttyAMA0", disable KVM use that is buggy on some ARM boards (Odroid XU4 for example) and use user mode network stack instead of NIC. Gather all those options in a new variable "arch-specific-flags". * gnu/system/vm.scm (expression->derivation-in-linux-vm): Pass to load-in-linux-vm "#:target-arm32?" argument.
* Merge branch 'version-0.14.0'Ludovic Courtès2017-12-07
|\
| * install: Don't start sshd by default.Ludovic Courtès2017-12-04
| | | | | | | | | | | | | | | | | | | | | | Reported by Christopher Baines <mail@cbaines.net> at <https://lists.gnu.org/archive/html/guix-devel/2017-12/msg00058.html>. * gnu/services/ssh.scm (<openssh-configuration>)[%auto-start?]: New field. (openssh-shepherd-service): Honor it. * gnu/system/install.scm (%installation-services): Set '%auto-start?' to #f for openssh-service-type.
* | gnu, doc, tests: Use ‘bootloader-configuration’ everywhere.Tobias Geerinckx-Rice2017-12-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * doc/guix.texi (Proceeding with the Installation): Replace the old-style ‘grub-configuration’ with the newer ‘bootloader-configuration’ syntax. * gnu/system/examples/vm-image.tmpl: Likewise. * gnu/system/install.scm (installation-os): Likewise. * gnu/tests.scm (%simple-os): Likewise. * gnu/tests/install.scm (%minimal-os, %minimal-os-on-vda, %separate-home-os) (%separate-store-os, %raid-root-os, %encrypted-root-os, %btrfs-root-os): Likewise. * gnu/tests/nfs.scm (%base-os): Likewise. * tests/guix-system.scm (OS_BASE, make_user_config): Likewise. * tests/system.scm (%os, %os-with-mapped-device): Likewise.
* | bootloader: extlinux: Stop using dd binary.Mathieu Othacehe2017-12-04
|/ | | | | | | | * gnu/bootloader/extlinux.scm (dd): Remove it, (install-extlinux): replace dd call by Guile I/O procedures. * gnu/system/vm.scm (qemu-image): Add (ice-9 binary-ports) to used-modules list to provide "get-bytevector-n" and "put-bytevector". * guix/scripts/system.scm (bootloader-installer-derivation): Ditto.
* install: Add colors in 'motd' and 'issue'.Ludovic Courtès2017-12-03
| | | | | | * gnu/system/install.scm (%installation-services)[motd]: Add colors. [services]: Use the "lat9u-16" font. (%issue): Add colors.
* install: Add the prerequisites of 'profile-derivation' as GC roots.Ludovic Courtès2017-12-03
| | | | | * gnu/system/install.scm (%installation-services): Add GLIBC-UTF8-LOCALES, TEXINFO, and GUILE-FINAL as GC roots.
* uuid: Fix typo in comment.Ludovic Courtès2017-12-02
| | | | * gnu/system/uuid.scm: Fix typo in comment.
* system: vm: Fix typo in comment.Mathieu Othacehe2017-12-02
| | | | * gnu/system/vm.scm (qemu-image): Fix typo targetting -> targeting.
* system: vm: Do not add EFI partition on ARM system.Mathieu Othacehe2017-12-01
| | | | | | | | * gnu/system/vm.scm (qemu-img): Do not add EFI partition if we are targetting ARM. UEFI support on u-boot is still experimental, so do not add EFI partition on ARM for now.
* vm: Filter out file systems that refer to UUIDs or labels.Ludovic Courtès2017-11-30
| | | | | * gnu/system/vm.scm (virtualized-operating-system)[user-file-systems]: Filter out things that refer to file system UUIDs or labels.
* vm: Use os-defined initrd intead of base-initrd.Mathieu Othacehe2017-11-26
| | | | | | | | | * gnu/system/vm.scm (system-disk-image, system-qemu-image, virtualized-operating-system): Replace base-initrd by (operating-system-initrd os). The system produced were always using base-initrd even if the user had defined a custom initrd based on raw-initrd in the os declaration.
* 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.