summaryrefslogtreecommitdiff
path: root/gnu/system
Commit message (Collapse)AuthorAgeFilesLines
* linux-initrd: Load fscache.ko before the 9p modules.Ludovic Courtès2014-08-151-1/+1
| | | | | * gnu/system/linux-initrd.scm (base-initrd)[virtio-9p-modules]: Add "fscache.ko", required by Linux-libre 3.16.
* system: grub: Change the default default-entry to 0.Mark H Weaver2014-08-131-1/+1
| | | | | * gnu/system/grub.scm (<grub-configuration>)[default-entry]: Change the default to 0.
* system: Add the 'system?' field for user groups.Ludovic Courtès2014-07-252-19/+25
| | | | | | | | | | | | 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.
* install: Add a configuration template to the image.Ludovic Courtès2014-07-242-0/+55
| | | | | | | | | | * 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.
* install: Add a service to back the store with the target disk.Ludovic Courtès2014-07-231-0/+77
| | | | | | | | | | | | | | 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.
* system: Add missing exports to (gnu system file-systems).Mark H Weaver2014-07-231-0/+2
| | | | | * gnu/system/file-systems.scm (%pseudo-terminal-file-system) (%shared-memory-file-system): Add to export list.
* system: Add /dev/shm.Ludovic Courtès2014-07-231-1/+13
| | | | | | | * gnu/system/file-systems.scm (%shared-memory-file-system): New variable. (%base-file-systems): Add it. * doc/guix.texi (File Systems): Document it.
* system: Add 'file-system' decl. for /dev/pts, and use the right options.Ludovic Courtès2014-07-232-3/+27
| | | | | | | | | | | | | | | 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.
* system: Add 'create-mount-point?' file system option.Ludovic Courtès2014-07-231-1/+5
| | | | | | | | | | * 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.
* system: Add '%devtmpfs-file-system' for udev, and '%base-file-systems'.Ludovic Courtès2014-07-222-3/+20
| | | | | | | | | | | | | | | | | 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.
* install: Add wireless-tools package.David Thompson2014-07-191-0/+1
| | | | * gnu/system/install.scm (installation-os): Add wireless-tools to packages.
* linux-initrd: Add AHCI modules.David Thompson2014-07-191-1/+2
| | | | * gnu/system/linux-initrd (linux-modules): Add them.
* install: Show the "System Installation" node.Ludovic Courtès2014-07-171-1/+1
| | | | | * gnu/system/install.scm (log-to-info): Go to the new 'System Installation' node.
* doc: Add "Initial RAM Disk" section.Ludovic Courtès2014-07-171-5/+7
| | | | | * doc/guix.texi (Initial RAM Disk): New node. * gnu/system/linux-initrd.scm (expression->initrd): Adjust docstring.
* services: Add 'console-font-service'.Ludovic Courtès2014-07-171-1/+11
| | | | | | | | * 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.
* install: Remove GNU fdisk from the image.Ludovic Courtès2014-07-141-1/+5
| | | | * gnu/system/install.scm (installation-os): Remove FDISK.
* vm: Make sure disk image initrds load 'usb-storage.ko'.Ludovic Courtès2014-07-141-3/+5
| | | | | | | Reported by David Thompson <dthompson2@worcester.edu>. * gnu/system/vm.scm (system-disk-image): Add usb-storage.ko to the initrd.
* linux-initrd: Allow extra modules to be passed to 'base-initrd'.Ludovic Courtès2014-07-131-1/+8
| | | | | * gnu/system/linux-initrd.scm (base-initrd): Add #:extra-modules parameter.
* vm: Add support for i686.Ludovic Courtès2014-07-131-1/+4
| | | | | | | | | 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.
* system: Allow root to use 'groupadd' & co. without authenticating.Ludovic Courtès2014-07-111-8/+29
| | | | | | | | | 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.
* system: Add "netdev" group.Ludovic Courtès2014-07-111-0/+1
| | | | * gnu/system/shadow.scm (%base-groups): Add "netdev".
* vm: Enable QEMU support in the freestanding VM image.Ludovic Courtès2014-07-041-0/+5
| | | | * gnu/system/vm.scm (system-qemu-image): Add 'initrd' field.
* linux-initrd: Rename 'qemu-initrd' to 'base-initrd'.Ludovic Courtès2014-07-012-10/+9
| | | | | | | | * 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.
* linux-initrd: Disable QEMU networking by default.Ludovic Courtès2014-07-012-4/+5
| | | | | | | | | * 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.
* linux-initrd: Make the virtio kernel modules optional.Ludovic Courtès2014-07-012-6/+17
| | | | | | | | * 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.
* system: Add a 'system?' field to user accounts.Ludovic Courtès2014-06-271-1/+4
| | | | | | | | | | | | | | * 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.
* system: Install /var/guix/profiles/system-1-link on new systems.Ludovic Courtès2014-06-271-5/+10
| | | | | | | | | | | | | | | | * 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.
* system: Support the addition of old entries in the GRUB menu.Ludovic Courtès2014-06-251-3/+13
| | | | | | | * 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.
* install: Use udev.Ludovic Courtès2014-06-241-0/+3
| | | | * gnu/system/install.scm (installation-services): Call 'udev-service'.
* system: Use the default 'groups' field.Ludovic Courtès2014-06-221-7/+0
| | | | | * gnu/system/install.scm (installation-os): Remove 'groups' field. * build-aux/hydra/demo-os.scm: Likewise.
* system: Augment the default set of groups.Ludovic Courtès2014-06-221-1/+22
| | | | | * gnu/system/shadow.scm (%base-groups): New variable. * gnu/system.scm (<operating-system>)[groups]: Use it as the default.
* system: Remove useless 'members' field of 'user-group'.Ludovic Courtès2014-06-222-8/+5
| | | | | | | | * 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.
* install: Add missing argv[0] in Info invocation.Ludovic Courtès2014-06-041-1/+1
| | | | | * gnu/system/install.scm (log-to-info): Add "info" as second argument to 'execl'.
* vm: Add #:name parameter for 'system-disk-image'.Ludovic Courtès2014-06-041-1/+3
| | | | | * gnu/system/vm.scm (system-disk-image): Add #:name parameter; pass it to 'qemu-image'.
* install: Register the hydra.gnu.org key on the installation image.Ludovic Courtès2014-06-041-1/+6
| | | | | | | | * 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.
* system: Define '%base-packages' and use it.Ludovic Courtès2014-06-041-12/+3
| | | | | | | | | | * 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.
* install: Add more useful packages.Ludovic Courtès2014-06-031-3/+5
| | | | | * gnu/system/install.scm (installation-os)[packages]: Add isc-dhcp, net-tools, ddrescue, kbd, and texinfo-4.
* gnu: Merge Parted, fdisk, and ddrescue in (gnu packages disk).Ludovic Courtès2014-06-032-3/+2
| | | | | | | | | | | * 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.
* system: File system sources can be marked as labels or devices.Ludovic Courtès2014-06-033-2/+6
| | | | | | | | | | | | | | | | | * 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'.
* Add (gnu system install).Ludovic Courtès2014-05-311-0/+150
| | | | | * gnu/system/install.scm: New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* vm: disk-image: Specify the root file system using a label.Ludovic Courtès2014-05-301-1/+8
| | | | | | * 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'.
* vm: Allow a volume name to be specified for the root partition.Ludovic Courtès2014-05-291-5/+8
| | | | | | | | | * 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'.
* vm: Disable QEMU networking in the disk image initrd.Ludovic Courtès2014-05-232-2/+10
| | | | | | * 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.
* vm: Add 'system-disk-image'.Ludovic Courtès2014-05-221-2/+38
| | | | * gnu/system/vm.scm (system-disk-image): New procedure.
* vm: Use a para-virtualized disk when creating an image.Ludovic Courtès2014-05-221-1/+1
| | | | | | * 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.
* vm: Make the image format a parameter.Ludovic Courtès2014-05-221-6/+12
| | | | | | | | * 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.
* Add (gnu system file-systems).Ludovic Courtès2014-05-203-1/+74
| | | | | | | | | | | | | 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.
* vm: Make the device name a parameter.Ludovic Courtès2014-05-191-1/+2
| | | | | | | * 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.
* system: Add 'grub-configuration' record.Ludovic Courtès2014-05-181-9/+30
| | | | | | | | | | | * 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.
* system: Make /run/current-system at activation time.Ludovic Courtès2014-05-181-52/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.