aboutsummaryrefslogtreecommitdiff
path: root/gnu/system
AgeCommit message (Collapse)Author
2014-07-25system: Add the 'system?' field for user groups.Ludovic Courtès
Suggested by Mark H. Weaver. * gnu/system/shadow.scm (<user-group>)[system?]: New field. (%base-groups): Introduce 'system-group' macro, and use it. * gnu/system.scm (user-group->gexp): Pass the 'system?' field. * guix/build/activation.scm (add-group): Add #:system? and honor it. (activate-users+groups): Handle the 'system?' field. * gnu/system/file-systems.scm (%tty-gid): Choose an ID below 1000. * doc/guix.texi (User Accounts): Document the 'system?' field.
2014-07-24install: Add a configuration template to the image.Ludovic Courtès
* gnu/system/os-config.tmpl: New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add it * gnu/system/install.scm (configuration-template-service): New procedure. (installation-services): Call it. * doc/guix.texi (System Installation): Mention configuration-template.scm, and @include gnu/system/os-config.tmpl.
2014-07-23install: Add a service to back the store with the target disk.Ludovic Courtès
Fixes <http://bugs.gnu.org/18061>. Reported by Adam Pribyl <pribyl@lowlevel.cz>. * gnu/services/dmd.scm (dmd-configuration-file)[config]: Import (guix build utils). * gnu/system/install.scm (make-cow-store, cow-store-service): New procedures. (installation-services): Use it. (%backing-directory): New variable. * doc/guix.texi (System Installation): Add the 'deco start cow-store /mnt' phase.
2014-07-23system: Add missing exports to (gnu system file-systems).Mark H Weaver
* gnu/system/file-systems.scm (%pseudo-terminal-file-system) (%shared-memory-file-system): Add to export list.
2014-07-23system: Add /dev/shm.Ludovic Courtès
* gnu/system/file-systems.scm (%shared-memory-file-system): New variable. (%base-file-systems): Add it. * doc/guix.texi (File Systems): Document it.
2014-07-23system: Add 'file-system' decl. for /dev/pts, and use the right options.Ludovic Courtès
Fixes <http://bugs.gnu.org/18081>. * gnu/system/file-systems.scm (%devtmpfs-file-system): Add 'needed-for-boot?' field. (%tty-gid, %pseudo-terminal-file-system): New variables. (%base-file-systems): Add %PSEUDO-TERMINAL-FILE-SYSTEM. * gnu/services/base.scm (udev-service): Remove dependency on 'file-system-/dev'. * gnu/system/shadow.scm (%base-groups): Add 'id' field for group 'tty'. * guix/build/linux-initrd.scm (boot-system): Remove 'mount' call for /dev/pts. * doc/guix.texi (File Systems): Add %pseudo-terminal-file-system.
2014-07-23system: Add 'create-mount-point?' file system option.Ludovic Courtès
* gnu/system/file-systems.scm (<file-system>)[create-mount-point?]: New field. * gnu/services/base.scm (file-system-service): Add #:create-mount-point? parameter and honor it. * gnu/system.scm (other-file-system-services): Update 'file-system-service' call accordingly. * doc/guix.texi (File Systems): Document it.
2014-07-22system: Add '%devtmpfs-file-system' for udev, and '%base-file-systems'.Ludovic Courtès
Suggested by Adam Pribyl <pribyl@lowlevel.cz>. * gnu/services/base.scm (udev-service)[requirement]: Add 'file-system-/dev'. * gnu/system/file-systems.scm (%devtmpfs-file-system, %base-file-systems): New variables. * gnu/system/install.scm (installation-services)[file-systems]: Use %base-file-systems. * build-aux/hydra/demo-os.scm (file-systems): Likewise. * doc/guix.texi (System Installation): Show %BASE-FILE-SYSTEMS in the example. (Using the Configuration System): Likewise. (File Systems): Document %base-file-systems, %devtmpfs-file-system, %binary-format-file-system, and %fuse-control-file-system.
2014-07-19install: Add wireless-tools package.David Thompson
* gnu/system/install.scm (installation-os): Add wireless-tools to packages.
2014-07-19linux-initrd: Add AHCI modules.David Thompson
* gnu/system/linux-initrd (linux-modules): Add them.
2014-07-17install: Show the "System Installation" node.Ludovic Courtès
* gnu/system/install.scm (log-to-info): Go to the new 'System Installation' node.
2014-07-17doc: Add "Initial RAM Disk" section.Ludovic Courtès
* doc/guix.texi (Initial RAM Disk): New node. * gnu/system/linux-initrd.scm (expression->initrd): Adjust docstring.
2014-07-17services: Add 'console-font-service'.Ludovic Courtès
* gnu/services/base.scm (unicode-start, console-font-service): New procedures. (%base-services): Call 'console-font-service' for TTY1 to TTY6. * gnu/system/install.scm (installation-services): Add comment about the console font. Call 'console-font-service' for TTY1 to TTY6.
2014-07-14install: Remove GNU fdisk from the image.Ludovic Courtès
* gnu/system/install.scm (installation-os): Remove FDISK.
2014-07-14vm: Make sure disk image initrds load 'usb-storage.ko'.Ludovic Courtès
Reported by David Thompson <dthompson2@worcester.edu>. * gnu/system/vm.scm (system-disk-image): Add usb-storage.ko to the initrd.
2014-07-13linux-initrd: Allow extra modules to be passed to 'base-initrd'.Ludovic Courtès
* gnu/system/linux-initrd.scm (base-initrd): Add #:extra-modules parameter.
2014-07-13vm: Add support for i686.Ludovic Courtès
Partially fixes <http://bugs.gnu.org/18002>. Reported by David Thompson <dthompson2@worcester.edu>. * guix/build/vm.scm (qemu-command): Add optional 'system' parameter. Special-case "^i[3456]86$". * gnu/system/vm.scm (system-qemu-image/shared-store-script): Use it.
2014-07-11system: Allow root to use 'groupadd' & co. without authenticating.Ludovic Courtès
This fixes a bug whereby, if #:allow-root-passwords was #f, 'groupadd' would ask for a password. This is particularly problematic during activation. * gnu/system/linux.scm (rootok-pam-service): New procedure. (base-pam-services): Use it for all the user* and group* commands.
2014-07-11system: Add "netdev" group.Ludovic Courtès
* gnu/system/shadow.scm (%base-groups): Add "netdev".
2014-07-04vm: Enable QEMU support in the freestanding VM image.Ludovic Courtès
* gnu/system/vm.scm (system-qemu-image): Add 'initrd' field.
2014-07-01linux-initrd: Rename 'qemu-initrd' to 'base-initrd'.Ludovic Courtès
* gnu/system/linux-initrd.scm (qemu-initrd): Rename to... (base-initrd): ... this. * gnu/system.scm (<operating-system>)[initrd]: Update accordingly. * gnu/system/vm.scm (expression->derivation-in-linux-vm, system-disk-image, virtualized-operating-system): Likewise.
2014-07-01linux-initrd: Disable QEMU networking by default.Ludovic Courtès
* gnu/system/linux-initrd.scm (qemu-initrd): Remove default value for #:qemu-networking?. * gnu/system/vm.scm (expression->derivation-in-linux-vm): Pass #:qemu-networking? #t. (system-disk-image): Remove #:qemu-networking? #f. (virtualized-operating-system): Pass #:qemu-networking? #t.
2014-07-01linux-initrd: Make the virtio kernel modules optional.Ludovic Courtès
* gnu/system/linux-initrd.scm (qemu-initrd): Add #:virtio? parameter. Use it. * gnu/system/vm.scm (expression->derivation-in-linux-vm): Pass 'qemu-initrd' #:virtio?. (virtualized-operating-system): Likewise.
2014-06-27system: Add a 'system?' field to user accounts.Ludovic Courtès
* gnu/system/shadow.scm (<user-account>)[system?]: New field. * gnu/system.scm (user-account->gexp): Add it. * guix/build/activation.scm (add-user): Add #:system? parameter and honor it. (activate-users+groups): Handle the 'system?' part of user tuples. Pass it to 'add-user'. Don't create PROFILE-DIR when SYSTEM? is true. * gnu/services/dbus.scm (dbus-service): Add 'system?' field for "messagebus" account. * gnu/services/base.scm (guix-build-accounts): Likewise. * gnu/services/avahi.scm (avahi-service): Likewise.
2014-06-27system: Install /var/guix/profiles/system-1-link on new systems.Ludovic Courtès
* guix/build/install.scm (directives): Add /var/guix/profiles/system. (populate-root-file-system): Add 'system' parameter. Create /var/guix/profiles/system-1-link. * guix/scripts/system.scm (install): Pass OS-DIR to 'populate-root-file-system'. * guix/build/vm.scm (initialize-root-partition): Add #:system-directory parameter, and pass it to 'populate-root-file-system'. (initialize-hard-disk): Add #:system-directory parameter, and pass it to 'initialize-root-partition'. * gnu/system/vm.scm (qemu-image): Add #:os-derivation parameter and pass it to 'initialize-hard-disk'. (system-disk-image, system-qemu-image, system-qemu-image/shared-store): Pass #:os-derivation to 'qemu-image.
2014-06-25system: Support the addition of old entries in the GRUB menu.Ludovic Courtès
* gnu/system.scm (operating-system-grub.cfg): Add 'old-entries' parameter. Pass it to 'grub-configuration-file'. * gnu/system/grub.scm (grub-configuration-file): Add #:old-entries parameter. Honor it.
2014-06-24install: Use udev.Ludovic Courtès
* gnu/system/install.scm (installation-services): Call 'udev-service'.
2014-06-22system: Use the default 'groups' field.Ludovic Courtès
* gnu/system/install.scm (installation-os): Remove 'groups' field. * build-aux/hydra/demo-os.scm: Likewise.
2014-06-22system: Augment the default set of groups.Ludovic Courtès
* gnu/system/shadow.scm (%base-groups): New variable. * gnu/system.scm (<operating-system>)[groups]: Use it as the default.
2014-06-22system: Remove useless 'members' field of 'user-group'.Ludovic Courtès
* gnu/system/shadow.scm (<user-group>)[members]: Remove field. * gnu/system/install.scm (installation-os)[users]: Remove 'members' fields. Use 'supplementary-groups' for 'guest'. * build-aux/hydra/demo-os.scm (users): Likewise. * gnu/services/base.scm (guix-service): Remove 'members' field.
2014-06-04install: Add missing argv[0] in Info invocation.Ludovic Courtès
* gnu/system/install.scm (log-to-info): Add "info" as second argument to 'execl'.
2014-06-04vm: Add #:name parameter for 'system-disk-image'.Ludovic Courtès
* gnu/system/vm.scm (system-disk-image): Add #:name parameter; pass it to 'qemu-image'.
2014-06-04install: Register the hydra.gnu.org key on the installation image.Ludovic Courtès
* gnu/services/base.scm (hydra-key-authorization): New procedure. (guix-service): Add #:authorize-hydra-key? parameter; honor it using 'hydra-key-authorization'. * gnu/system/install.scm (installation-services): Pass #:authorize-hydra-key? #t.
2014-06-04system: Define '%base-packages' and use it.Ludovic Courtès
* gnu/system.scm (<operating-system>)[packages]: Change default value to %BASE-PACKAGES. (%base-packages): New variable. * gnu/system/install.scm (installation-os): Use it when defining the 'packages' field. * doc/guix.texi (Using the Configuration System): Use %BASE-PACKAGES in example. Remove now unneeded module imports. Explain this.
2014-06-03install: Add more useful packages.Ludovic Courtès
* gnu/system/install.scm (installation-os)[packages]: Add isc-dhcp, net-tools, ddrescue, kbd, and texinfo-4.
2014-06-03gnu: Merge Parted, fdisk, and ddrescue in (gnu packages disk).Ludovic Courtès
* gnu/packages/parted.scm: Rename to... * gnu/packages/disk.scm: ... this. New file. Merge with... * gnu/packages/fdisk.scm: ... this; remove file; * gnu/packages/ddrescue.scm: ... and this; remove file. * gnu/system/install.scm, gnu/system/vm.scm: Adjust accordingly. * gnu-system.am (GNU_SYSTEM_MODULES): Remove gnu/packages/{parted,fdisk,ddrescue}.scm and add gnu/packages/disk.scm.
2014-06-03system: File system sources can be marked as labels or devices.Ludovic Courtès
* gnu/system/file-systems.scm (<file-system>)[title]: New field. * gnu/services/base.scm (file-system-service): Add #:title parameter. In 'start' gexp, use 'canonicalize-device-spec' and honor TITLE. * gnu/system.scm (other-file-system-services, operating-system-root-file-system, operating-system-initrd-file): Adjust accordingly. * gnu/system/linux-initrd.scm (file-system->spec): Likewise. * gnu/system/vm.scm (system-disk-image): Add 'title' field for the root file system. * guix/build/linux-initrd.scm (mount-file-system): Expect the second element of SPEC to be the title. (boot-system)[root-mount-point?, root-fs-type]: Likewise. * gnu/services/dmd.scm (dmd-configuration-file): Select 'canonicalize-device-spec'.
2014-05-31Add (gnu system install).Ludovic Courtès
* gnu/system/install.scm: New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add it.
2014-05-30vm: disk-image: Specify the root file system using a label.Ludovic Courtès
* gnu/system/vm.scm (system-disk-image)[root-label]: New variable. Use it for the root file system, and pass it as #:file-system-label to 'qemu-image'.
2014-05-29vm: Allow a volume name to be specified for the root partition.Ludovic Courtès
* guix/build/vm.scm (format-partition): Add #:label parameter, and honor it. (initialize-hard-disk): Add #:file-system-label parameter, and pass it to 'format-partition'. * gnu/system/vm.scm (qemu-image): Add #:file-system-label parameter and pass it to 'initialize-hard-disk'.
2014-05-23vm: Disable QEMU networking in the disk image initrd.Ludovic Courtès
* gnu/system/linux-initrd.scm (qemu-initrd): Add #:qemu-networking? parameter and honor it. * gnu/system/vm.scm (system-disk-image): Pass #:qemu-networking #f.
2014-05-22vm: Add 'system-disk-image'.Ludovic Courtès
* gnu/system/vm.scm (system-disk-image): New procedure.
2014-05-22vm: Use a para-virtualized disk when creating an image.Ludovic Courtès
* guix/build/vm.scm (load-in-linux-vm): When MAKE-DISK-IMAGE?, use '-drive ...,if=virtio' for better performance. * gnu/system/vm.scm (qemu-image): Use /dev/vda instead of /dev/sda.
2014-05-22vm: Make the image format a parameter.Ludovic Courtès
* guix/build/vm.scm (load-in-linux-vm): Add #:disk-image-format parameter; add 'image-file' variable. Honor DISK-IMAGE-FORMAT. * gnu/system/vm.scm (expression->derivation-in-linux-vm): Add #:disk-image-format parameter, and honor it. (qemu-image): Likewise.
2014-05-20Add (gnu system file-systems).Ludovic Courtès
This fixes a circular dependency between (gnu system) and (gnu system linux-initrd), where the latter could end up being compiled before 'file-system-type' was defined as a macro. * gnu/system.scm (<file-system>, %fuse-control-file-system, %binary-format-file-system): Move to... * gnu/system/file-systems.scm: ... here. New file. * build-aux/hydra/demo-os.scm, gnu/system/linux-initrd.scm, gnu/system/vm.scm: Use it. * gnu-system.am (GNU_SYSTEM_MODULES): Add it.
2014-05-19vm: Make the device name a parameter.Ludovic Courtès
* guix/build/vm.scm (initialize-partition-table): Honor 'device' parameter. (initialize-hard-disk): Add 'device' parameter and honor it. * gnu/system/vm.scm (qemu-image): Adjust accordingly.
2014-05-18system: Add 'grub-configuration' record.Ludovic Courtès
* gnu/system/grub.scm (<grub-configuration>): New record type. (grub-configuration-file): Add 'config' parameter; remove #:default-entry and #:timeout. Honor CONFIG. * gnu/system.scm (<operating-system>): Remove 'bootloader-entries' field; remove default value for 'bootloader' field. (operating-system-grub.cfg): Pass the 'bootloader' field to 'grub-configuration-file'. * build-aux/hydra/demo-os.scm (bootloader): New field.
2014-05-18system: Make /run/current-system at activation time.Ludovic Courtès
* gnu/system.scm (etc-directory): Change default value of #:profile. Change contents of SHELLS. Use /run/current-system/profile/{s,}bin in BASHRC. (operating-system-boot-script)[%modules]: Add (guix build linux-initrd). Add call to 'activate-current-system' in gexp. (operating-system-initrd-file, operating-system-grub.cfg): New procedures. (operating-system-derivation): Don't build grub.cfg here and remove it from the file union. * gnu/system/vm.scm (qemu-image): Remove #:populate. (operating-system-build-gid, operating-system-default-contents): Remove. (system-qemu-image): Remove call to 'operating-system-default-contents'. Use 'operating-system-grub.cfg' to get grub.cfg. Add GRUB.CFG to #:inputs. (system-qemu-image/shared-store): Likewise, but don't add GRUB.CFG to #:inputs. (system-qemu-image/shared-store-script): Pass --system kernel option. * guix/build/activation.scm (%booted-system, %current-system): New variables. (boot-time-system, activate-current-system): New procedures. * guix/build/install.scm (evaluate-populate-directive): Add case for ('directory name uid gid mode). (directives, populate-root-file-system): New procedures. * guix/build/vm.scm (initialize-hard-disk): Replace calls to 'evaluate-populate-directive' by a call to 'populate-root-file-system'. * gnu/services/dmd.scm (dmd-configuration-file): Use /run/current-system/profile/bin. * gnu/services/xorg.scm (slim-service): Likewise.
2014-05-15system: Add (guix build install) module.Ludovic Courtès
* guix/build/vm.scm (install-grub, evaluate-populate-directive, reset-timestamps, register-closure): Move to... * guix/build/install.scm: ... here. New file. * Makefile.am (MODULES): Add it. * gnu/system/vm.scm (expression->derivation-in-linux-vm): Add (guix build install) to #:modules.
2014-05-15vm: Support initialization of the store DB when the store is shared.Ludovic Courtès
* gnu/system/vm.scm (qemu-image): Rename #:inputs-to-copy to #:inputs, and #:initialize-store? to #:register-closures?. Add #:copy-inputs?. Adjust build gexp accordingly. (system-qemu-image): Remove #:initialize-store? argument and add #:copy-inputs?. (system-qemu-image/shared-store): Add #:inputs, #:register-closures?, and #:copy-inputs? arguments. * guix/build/vm.scm (register-closure): New procedure. (MS_BIND): New variable. (initialize-hard-disk): Rename #:initialize-store? to #:register-closures?, #:closures-to-copy to #:closures, and add #:copy-closures?. Add 'target-directory' and 'target-store' variables. Call 'populate-store' only when COPY-CLOSURES?. Bind-mount the store to TARGET-STORE when REGISTER-CLOSURES? and not COPY-CLOSURES?. Add call to 'register-closure'.