summaryrefslogtreecommitdiff
path: root/gnu/system
Commit message (Collapse)AuthorAge
* scripts: system: Add support for container network sharing.Christopher Baines2019-05-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a port of the functionality in the Guix environment command to the guix system container command. This requires additional changes to the operating-system definitions used, in particular, networking related services may need removing if the host network is shared. * guix/scripts/system.scm (system-derivation-for-action): Add #:container-shared-network? argument. (perform-action): Add #:container-shared-network? argument. (show-help): Add "-N, --network" help information. (%options): Add network option. (process-action): Call perform-action with #:container-shared-network?. * gnu/system/linux-container.scm (%network-configuration-files): New variable. (container-script): Add support for returning a container script that shares the host network. * gnu/system.scm (essential-services): Add #:container-shared-network? argument. (operating-system-services): Add #:container-shared-network? argument. (operating-system-etc-service): Add #:container-shared-network? argument, and support for ommiting some configuration if the network is shared. (operating-system-activation-script): Add #:container-shared-network? argument, and pass this through to the operating-system-services procedure. (operating-system-boot-script): Add #:container-shared-network? argument, and pass this through to the operating-system-services procedure. (operating-system-derivation): Add the #:container-shared-network? argument, and pass this through to the operating-system-services procedure. (operating-system-profile): Add the #:container-shared-network? argument, and pass this through to the operating-system-services procedure.
* vm: Build ISOs and VM images in a UTF-8 environment.Ludovic Courtès2019-05-01
| | | | | | | | Fixes a bug whereby building an image containing non-ASCII file names would fail due to improper decoding of file names. * gnu/system/vm.scm (iso9660-image, qemu-image): Set GUIX_LOCPATH and call 'setlocale' in the build environment.
* vm-image: Add 'label' field.Ludovic Courtès2019-05-01
| | | | * gnu/system/examples/vm-image.tmpl (label): New field.
* vm-image: Add 'nss-certs' to the global package set.Ludovic Courtès2019-04-28
| | | | * gnu/system/examples/vm-image.tmpl (packages): Add NSS-CERTS.
* vm-image: Allow for password-less sudo.Ludovic Courtès2019-04-27
| | | | * gnu/system/examples/vm-image.tmpl (sudoers-file): New field.
* vm-image: Mention 'info guix' in the MOTD.Ludovic Courtès2019-04-27
| | | | * gnu/system/examples/vm-image.tmpl (vm-image-motd): Mention 'info guix'.
* vm-image: Add a font to the global profile.Ludovic Courtès2019-04-27
| | | | | * gnu/system/examples/vm-image.tmpl (packages): Add FONT-BITSTREAM-VERA, for use by xfce-terminal, IceCat, etc.
* doc: Update bit about SSH in the VM.Ludovic Courtès2019-04-27
| | | | | | | * doc/guix.texi (Running Guix in a VM): Remove mentions of 'lsh-server'; mention 'openssh-service-type' and add a cross-reference. * gnu/system/examples/vm-image.tmpl (services): Add a commented-out line for 'openssh-service-type'.
* vm-image: Remove NetworkManager & co. and add the DHCP client.Ludovic Courtès2019-04-26
| | | | | * gnu/system/examples/vm-image.tmpl (services): Remove wpa-supplicant, cups-pk-helper, and NetworkManager. Add DHCP-CLIENT-SERVICE-TYPE.
* vm-image: Use the actual file name of the current file.Ludovic Courtès2019-04-26
| | | | | * gnu/system/examples/vm-image.tmpl (this-file): Use 'basename' and 'current-source-location'.
* system: Provide a new VM image configuration.Ludovic Courtès2019-04-26
| | | | | * gnu/system/examples/vm-image.tmpl: Rewrite. * doc/guix.texi (Running Guix in a VM): Adjust accordingly.
* vm: 'system-disk-image' no longer requires the OS to define the "/" file system.Ludovic Courtès2019-04-25
| | | | | | | | | | Previously 'guix system disk-image' would fail if the OS didn't define a "/" file system, even though it actually overrides that file system. * gnu/system/vm.scm (system-disk-image)[root-uuid]: Turn into a procedure. Call 'root-uuid' on a variant of OS with a "/" file system and inherit from that.
* install: Add node name in Castellano.Ludovic Courtès2019-04-25
| | | | * gnu/system/install.scm (%installation-node-names): Add "es".
* linux-container: Remove '%containerized-shepherd-service' hack.Ludovic Courtès2019-04-23
| | | | | | | | | This hack worked around a defect in the Shepherd 0.5.0 and is no longer needed. * gnu/services/shepherd.scm (%containerized-shepherd-service): Remove. * gnu/system/linux-container.scm (container-essential-services): Don't use it.
* services: account: Make 'user-homes' a one-shot service.Ludovic Courtès2019-04-23
| | | | | * gnu/system/shadow.scm (account-shepherd-service): Add 'one-shot?' field. Return #t from 'start'.
* install: Pass "quiet" to the kernel.Ludovic Courtès2019-04-23
| | | | | | This is a followup to 5582aa8e31bf88f981caedeb4fbbb758486b6ca7. * gnu/system/install.scm (installation-os)[kernel-arguments]: Add "quiet".
* install: Pass "modprobe.blacklist=radeon".Ludovic Courtès2019-04-21
| | | | * gnu/system/install.scm (installation-os)[kernel-arguments]: New field.
* install: Provide a meaningful label.Ludovic Courtès2019-04-15
| | | | * gnu/system/install.scm (installation-os)[label]: New field.
* vm: Do not mount /xchg with "cache=loose".Ludovic Courtès2019-04-14
| | | | | | | | Fixes <https://bugs.gnu.org/33639>. * gnu/system/vm.scm (%linux-vm-file-systems): Remove "cache=loose" for /xchg. (system-docker-image): Remove 'sync' call, now unneeded, and which was probably insufficient.
* install: Use a font with more glyphs on tty2.Ludovic Courtès2019-04-12
| | | | | * gnu/system/install.scm (%installation-services): For 'console-font-service-type', use LatGrkCyr-8x16 on tty2.
* installer: Choosing a locale opens the translated manual on tty2.Ludovic Courtès2019-04-12
| | | | | | | | | | | | | Suggested by Florian Pelz. * gnu/system/install.scm (%installation-node-names): New variable. (log-to-info): Expect the chosen locale as an argument. Compute the language, Info file name, and node name. Install the locale. (documentation-shepherd-service): Add 'locale' parameter to the 'start' action and honor it. Set GUIX_LOCPATH and TERM as environment variables for the process. * gnu/installer.scm (apply-locale): Use (gnu services herd). Call 'stop-service' and 'start-service' with the chosen locale.
* install: Add standalone documentation service.Ludovic Courtès2019-04-12
| | | | | | | | * gnu/system/install.scm (log-to-info): Add 'tty' and 'user' parameters. Open the tty and change UIDs/GIDs. (documentation-shepherd-service): New procedure. (%documentation-users, documentation-service-type): New variables. (%installation-services): Use it instead of 'mingetty-service'.
* doc: Adjust desktop instructions for GDM.Ludovic Courtès2019-04-10
| | | | * gnu/system/examples/desktop.tmpl: Adjust comment that referred to SLiM.
* install: Tweak motd.Ludovic Courtès2019-04-07
| | | | * gnu/system/install.scm (%installation-services): Tweak motd.
* install: Remove "GuixSD".Ludovic Courtès2019-04-07
| | | | | * gnu/system/install.scm (%installation-services): Remove "Guix System Distribution" from motd.
* services: xorg: Add 'set-xorg-configuration'.Ludovic Courtès2019-04-05
| | | | | | | | * gnu/services/xorg.scm (gdm-service-type)[compose, extend]: New fields. (set-xorg-configuration): New procedure. * doc/guix.texi (Keyboard Layout): Use it. (X Window): Document it. * gnu/system/examples/desktop.tmpl: Add 'keyboard-layout' fields.
* gnu: Add example system configuration for asus-c201.Timothy Sample2019-04-03
| | | | | | | * gnu/system/examples/asus-c201.tmpl: New file. * Makefile.am (EXAMPLES): Add it. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* system: Fix typo in desktop example.Ludovic Courtès2019-03-28
| | | | | | | The typo was introduced in 391e0d65d7129d53c025963d2758724e75626eb4. * gnu/system/examples/desktop.tmpl: Use XFCE-DESKTOP-SERVICE-TYPE, not XFCE-DESKTOP-SERVICE.
* vm: Ask QEMU for more RAM in the VM that makes ISO9660 images.Ludovic Courtès2019-03-27
| | | | | * gnu/system/vm.scm (iso9660-image): Pass #:memory-size to 'expression->derivation-in-linux-vm'.
* services: Deprecate 'xfce-desktop-service'.Ludovic Courtès2019-03-27
| | | | | | | | | | * gnu/services/desktop.scm (xfce-desktop-service-type)[default-value] [description]: New fields. (xfce-desktop-service): Deprecate. * gnu/system/examples/desktop.tmpl: Use the (service …) form. * gnu/installer/services.scm (%desktop-environments): Add TODO comment. * doc/guix.texi (Desktop Services): Adjust accordingly, and fix spelling of "Xfce" throughout.
* services: Deprecate 'gnome-desktop-service'.Ludovic Courtès2019-03-27
| | | | | | | | | | * gnu/services/desktop.scm (gnome-desktop-service-type)[default-value]: New field. (gnome-desktop-service): Deprecate. * gnu/installer/services.scm (%desktop-environments): Use the (service …) form for GNOME. * gnu/system/examples/desktop.tmpl: Likewise. * doc/guix.texi (Desktop Services): Adjust accordingly.
* system: Add 'essential-services' field to <operating-system>.Ludovic Courtès2019-03-25
| | | | | | | | | | | | | | | | | | * gnu/system.scm (<operating-system>)[essential-services]: New field. (operating-system-directory-base-entries): Remove #:container? keyword and keep only the not-container branch. (essential-services): Likewise. (operating-system-services): Likewise, and call 'operating-system-essential-services' instead of 'essential-services'. (operating-system-activation-script): Remove #:container?. (operating-system-boot-script): Likewise. (operating-system-derivation): Likewise. * gnu/system/linux-container.scm (container-essential-services): New procedure. (containerized-operating-system): Use it and set the 'essential-services' field. (container-script): Remove call to 'operating-system-derivation'. * gnu/system/vm.scm (system-docker-image): Likewise. * doc/guix.texi (operating-system Reference): Document 'essential-services'.
* accounts: Add default value for the 'home-directory' field of <user-account>.Ludovic Courtès2019-03-25
| | | | | | | | | | | | | | | | | | * gnu/system/accounts.scm (<user-account>)[home-directory]: Mark as thunked and add a default value. (default-home-directory): New procedure. * doc/guix.texi (User Accounts): Remove 'home-directory' from example. * gnu/system/examples/bare-bones.tmpl: Likewise. * gnu/system/examples/beaglebone-black.tmpl: Likewise. * gnu/system/examples/desktop.tmpl: Likewise. * gnu/system/examples/docker-image.tmpl: Likewise. * gnu/system/examples/lightweight-desktop.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, %encrypted-root-os, %btrfs-root-os): Likewise. * tests/accounts.scm ("allocate-passwd") ("allocate-passwd with previous state"): Likewise.
* system: Initialize console keyboard layout in the initrd.Ludovic Courtès2019-03-24
| | | | | | | | | | | | | | | | | Partially fixes <https://bugs.gnu.org/25453>. * gnu/system.scm (<operating-system>)[keyboard-layout]: New field. (operating-system-initrd-file): Pass #:keyboard-layout to MAKE-INITRD. * gnu/system/linux-initrd.scm (raw-initrd): Add #:keyboard-layout. Pass #:keymap-file to 'boot-system'. (base-initrd): Add #:keyboard-layout. [helper-packages]: Add LOADKEYS-STATIC when KEYBOARD-LAYOUT is true. Pass #:keyboard-layout to 'raw-initrd'. * gnu/build/linux-boot.scm (boot-system): Add #:keymap-file and honor it. * doc/guix.texi (operating-system Reference): Document the 'keyboard-layout' field. (Initial RAM Disk): Update 'raw-initrd' and 'base-initrd' documentation.
* vm: 'virtualized-operating-system' inherits from the user's bootloader config.Ludovic Courtès2019-03-24
| | | | | * gnu/system/vm.scm (virtualized-operating-system): Inherit from the bootloader of OS.
* Add (gnu system keyboard).Ludovic Courtès2019-03-24
| | | | | | * gnu/system/keyboard.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. * gnu.scm (%public-modules): Add it.
* vm: 'system-docker-image' calls 'sync' before rebooting.Ludovic Courtès2019-03-22
| | | | | | Previously we could end up silently building truncated tarballs. * gnu/system/vm.scm (system-docker-image)[build]: Add call to 'sync'.
* vm: 'expression->derivation-in-linux-vm' leads to a kernel panic upon failure.Ludovic Courtès2019-03-17
| | | | | | | | Partially fixes <https://bugs.gnu.org/34276>. Reported by Tobias Geerinckx-Rice <me@tobias.gr>. * gnu/system/vm.scm (expression->derivation-in-linux-vm)[loader]: Call 'exit' when USER-BUILDER exits with a non-zero code.
* linux-container: 'containerized-operating-system' removes "useless" services.Ludovic Courtès2019-03-13
| | | | | | | | | Fixes <https://bugs.gnu.org/34211>. Reported by Efraim Flashner <efraim@flashner.co.il>. * gnu/system/linux-container.scm (containerized-operating-system) [useless-services]: New variable. Add 'services' field.
* linux-modules: Factorize 'missing-modules'.Ludovic Courtès2019-03-13
| | | | | * gnu/build/linux-modules.scm (missing-modules): New procedure. * gnu/system/mapped-devices.scm (check-device-initrd-modules): Use it.
* Remove traces of "GuixSD".Ludovic Courtès2019-03-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * gnu/bootloader/extlinux.scm (extlinux-configuration-file): Remove mentions of "GuixSD". * gnu/bootloader/grub.scm (install-grub-efi): Likewise. * gnu/build/vm.scm (make-iso9660-image): Change default #:volume-id to "Guix_image". (initialize-hard-disk): Search for the "Guix_image" label. * gnu/ci.scm (system-test-jobs, tarball-jobs): Remove "GuixSD". * gnu/installer/newt/welcome.scm (run-welcome-page): Likewise. * gnu/packages/audio.scm (supercollider)[description]: Likewise. * gnu/packages/curl.scm (curl): Likewise. * gnu/packages/emacs.scm (emacs): Likewise. * gnu/packages/gnome.scm (network-manager): Likewise. * gnu/packages/julia.scm (julia): Likewise. * gnu/packages/linux.scm (alsa-plugins): Likewise. (powertop, wireless-regdb): Likewise. * gnu/packages/package-management.scm (guix): Likewise. * gnu/packages/polkit.scm (polkit): Likewise. * gnu/packages/tex.scm (texlive-bin): Likewise. * gnu/services/base.scm (file-systems->fstab): Likewise. * gnu/services/cups.scm (%cups-activation): Likewise. * gnu/services/mail.scm (%dovecot-activation): Likewise. * gnu/services/messaging.scm (prosody-configuration)[log]: Likewise. * gnu/system/examples/vm-image.tmpl (vm-image-motd): Likewise. * gnu/system/install.scm (installation-os)[file-systems]: Change root file system label to "Guix_image". * gnu/system/mapped-devices.scm (check-device-initrd-modules): Remove "GuixSD". * gnu/system/vm.scm (system-docker-image): Likewise. (system-disk-image)[root-label]: Change to "Guix_image". * gnu/tests/install.scm (run-install): Remove "GuixSD". * guix/modules.scm (guix-module-name?): Likewise. * nix/libstore/optimise-store.cc: Likewise.
* activation: Build account databases with (gnu build accounts).Ludovic Courtès2019-03-07
| | | | | | | | | | | * gnu/build/activation.scm (enumerate, current-users, current-groups) (add-group, add-user, modify-user, ensure-user): Remove. (activate-users+groups)[touch, activate-user]: Remove. [make-home-directory]: New procedure. Rewrite in terms of 'user+group-databases', 'write-group', etc. * gnu/build/install.scm (directives): Remove "/root". * gnu/system/shadow.scm (account-activation): Remove (setenv "PATH" ...) expression, which is now unneeded.
* activation: Operate on <user-account> and <user-group> records.Ludovic Courtès2019-03-07
| | | | | | | | | | | | * gnu/system/accounts.scm (sexp->user-group, sexp->user-account): New procedures. * gnu/system/shadow.scm (account-activation): Call them in the arguments to 'activate-users+groups'. (account-shepherd-service): Likewise. * gnu/build/activation.scm (activate-users+groups): Expect a list of <user-account> and a list of <user-group>. Replace uses of 'match' on tuples with calls to record accessors. (activate-user-home): Likewise.
* system: Add (gnu system accounts).Ludovic Courtès2019-03-07
| | | | | | | | | | The (gnu system accounts) module is meant to be used both on the build- and on the host-side. * gnu/system/shadow.scm <top level>: Call 'default-shell'. (<user-account>, <user-group>): Move to... * gnu/system/accounts.scm: ... here. New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add system/accounts.scm.
* pack, vm: Fix incorrect use of 'package-transitive-propagated-inputs'.Ludovic Courtès2019-02-11
| | | | | | | | | | In practice the error was not triggered because 'package-transitive-propagated-inputs' currently returns the empty list for these two packages. * guix/scripts/pack.scm (gcrypt-sqlite3&co): Remove labels from the result. * gnu/system/vm.scm (gcrypt-sqlite3&co): Likewise.
* install: Use (gnu package certs) module for the nss-certs package.Pierre Neidhardt2019-02-10
| | | | * gnu/system/install.scm: Use (gnu package certs).
* install: Add nss-certs to the image.Pierre Neidhardt2019-02-10
| | | | * gnu/system/install.scm (installation-os)[packages]: Add nss-certs.
* gnu: Replace all cons* with beginner-friendly (append (list ...)).Pierre Neidhardt2019-01-23
| | | | | | | | | | | * gnu/system/examples/bare-bones.tmpl (services): Do it. * gnu/system/examples/beaglebone.tmpl (packages): Do it. (services): Do it. * gnu/system/examples/desktop.tmpl (packages): Do it. (services): Do it. * gnu/system/examples/lightweight-desktop.tmpl (file-systems): Do it. (packages): Do it. * gnu/system/examples/vm-image.tmpl (packages): Do it.
* gnu: Fix missing EFI entry in "desktop" example.Pierre Neidhardt2019-01-23
| | | | | * gnu/system/examples/desktop.tmpl (file-systems): Add EFI file-system.
* vm: Remove unnecessary import.Ludovic Courtès2019-01-22
| | | | * gnu/system/vm.scm: Remove unnecessary (guix scripts pack) import.