summary refs log tree commit diff
path: root/gnu/system.scm
AgeCommit message (Collapse)Author
2018-05-28file-systems: Remove 'title' field and add <file-system-label>.Ludovic Courtès
The 'title' field was easily overlooked and was an endless source of confusion. Now, the value of the 'device' field is self-contained. * gnu/system/file-systems.scm (<file-system>): Change constructor name to '%file-system'. [title]: Remove. (<file-system-label>): New record type with printer. (report-deprecation, device-expression) (process-file-system-declaration, file-system): New macros. (file-system-title): New procedure. (file-system->spec, spec->file-system): Adjust to handle <file-system-label>. * gnu/system.scm (bootable-kernel-arguments): Add case for 'file-system-label?'. (read-boot-parameters): Likewise. (mapped-device-user): Avoid 'file-system-title'. (fs->boot-device): Remove. (operating-system-boot-parameters): Use 'file-system-device' instead of 'fs->boot-device'. (device->sexp): Add case for 'file-system-label?'. * gnu/bootloader/grub.scm (grub-root-search): Add case for 'file-system-label?'. * gnu/system/examples/bare-bones.tmpl, gnu/system/examples/beaglebone-black.tmpl, gnu/system/examples/lightweight-desktop.tmpl, gnu/system/examples/vm-image.tmpl: Remove uses of 'title'. * gnu/system/vm.scm (virtualized-operating-system): Remove uses of 'file-system-title'. * guix/scripts/system.scm (check-file-system-availability): Likewise, and adjust fix-it hint. (check-initrd-modules)[file-system-/dev]: Likewise. * gnu/build/file-systems.scm (canonicalize-device-spec): Remove 'title' parameter. [canonical-title]: Remove. Match on SPEC's type rather than on CANONICAL-TITLE. (mount-file-system): Adjust caller. * gnu/build/linux-boot.scm (boot-system): Interpret ROOT here. * gnu/services/base.scm (file-system->fstab-entry): Remove use of 'file-system-title'. * doc/guix.texi (File Systems): Remove documentation of the 'title' field. Rewrite documentation of 'device' and document 'file-system-label'.
2018-05-19file-systems: Do not export <file-system>.Ludovic Courtès
* gnu/system/file-systems.scm (<file-system>): Do not export. * gnu/system.scm (operating-system-root-file-system): Use an accessor instead of 'match'.
2018-04-11system: Provide a fall-back PATH for non-login shells started with su(1).Leo Famulari
* gnu/system.scm (operating-system-etc-service): Provide values for ENV_PATH and ENV_SUPATH in '/etc/login.defs'.
2018-03-20gnu: util-linux: Fix CVE-2018-7738 without grafting.Leo Famulari
* gnu/packages/linux.scm (util-linux)[replacement]: Remove field. (util-linux-2.31.1): New variable. * gnu/system.scm (%base-packages): Use util-linux-2.31.1.
2018-03-07services: file-systems: Include 'user-file-systems' service.Ludovic Courtès
Previously the KNOWN-FS value used in 'essential-services' would be incomplete: it would lack all the file systems provided by services that extend 'file-system-service-type' (/sys/fs/cgroup, /proc/sys/fs/binfmt_misc, etc.) Consequently, upon shutdown, 'user-processes' would unmount these file systems before their corresponding service had been stopped; when their corresponding (e.g., 'file-system-/proc/sys/fs/binfmt_misc') was stopped, its 'umount' call would fail. This was harmless in practice, but this patch makes sure things work as intended and file systems are unmounted in the right order. * gnu/services/base.scm (file-system-shepherd-services): Instantiate 'user-file-systems' Shepherd service from here. (user-unmount-service-type, user-unmount-service): Remove. * gnu/system.scm (essential-services): Remove call to 'user-unmount-service'. * gnu/system/install.scm (cow-store-service-type): Adjust comment.
2018-03-02system: Add 'initrd-modules' field.Ludovic Courtès
* gnu/system.scm (<operating-system>)[initrd-modules]: New field. (operating-system-initrd-file): Pass #:linux-modules to 'make-initrd'. * gnu/system/linux-initrd.scm (default-initrd-modules): New procedure. (%base-initrd-modules): New macro. (base-initrd): Add #:linux-modules and honor it. * gnu/system/install.scm (embedded-installation-os): Use 'initrd-modules' instead of 'initrd'. * gnu/tests/install.scm (%raid-root-os): Likewise. * doc/guix.texi (operating-system Reference): Add 'initrd-modules'. (Initial RAM Disk): Document it. Adjust example to not use #:extra-modules.
2018-01-23Merge branch 'master' into core-updatesMark H Weaver
2018-01-21services: Missing services are automatically instantiated.Ludovic Courtès
This simplifies OS configuration: users no longer need to be aware of what a given service depends on. See the discussion at <https://lists.gnu.org/archive/html/guix-devel/2018-01/msg00114.html>. * gnu/services.scm (missing-target-error): New procedure. (service-back-edges): Use it. (instantiate-missing-services): New procedure. * gnu/system.scm (operating-system-services): Call 'instantiate-missing-services'. * tests/services.scm ("instantiate-missing-services") ("instantiate-missing-services, no default value"): New tests. * gnu/services/version-control.scm (cgit-service-type)[extensions]: Add FCGIWRAP-SERVICE-TYPE. * gnu/tests/version-control.scm (%cgit-os): Remove NGINX-SERVICE-TYPE and FCGIWRAP-SERVICE-TYPE instances. * doc/guix.texi (Log Rotation): Remove 'mcron-service-type' in example. (Miscellaneous Services): Remove 'nginx-service-type' and 'fcgiwrap-service-type' in Cgit example.
2018-01-11Merge branch 'master' into core-updatesLeo Famulari
2018-01-09system: Export operating-system-user-kernel-arguments.Danny Milosavljevic
* gnu/system.scm (operating-system-user-kernel-arguments): Export it.
2017-12-31Merge remote-tracking branch 'origin/master' into core-updatesEfraim Flashner
2017-12-22services: 'user-processes-service-type' can now be extended.Ludovic Courtès
* gnu/services/base.scm (user-processes-shepherd-service): New procedure, taken from former 'user-processes-service-type'. Add REQUIREMENTS argument; remove GRACE-DELAY argument. (user-processes-service-type): Redefine in terms of 'service-type'. (user-processes-service): Remove. (file-system-service-type): Extend USER-PROCESSES-SERVICE-TYPE. * gnu/system.scm (essential-services): Use USER-PROCESSES-SERVICE-TYPE directly.
2017-12-05Merge branch 'master' into core-updatesMarius Bakke
2017-11-20Add semicolon in commands that set GUIX_PROFILE.Ludovic Courtès
Fixes <https://bugs.gnu.org/28223>. Reported by Rosebud Uplink <Uplink.Introversion@outlook.com>. * doc/guix.texi (Binary Installation): Add missing semicolon after 'GUIX_PROFILE=' line. (Invoking guix package): Likewise. * gnu/system.scm (operating-system-etc-service)[profile]: Likewise. * guix/build/profiles.scm (build-etc/profile): Likewise.
2017-11-19Merge branch 'master' into core-updatesMarius Bakke
2017-11-13services: guix: Remove dependency on 'lsof'.Ludovic Courtès
This is a followup to b8f59cdc20e9d83ce63523ef917e95fcee07f134: 'list-runtime-roots' no longer depends on 'lsof'. * gnu/services/base.scm (<guix-configuration>)[lsof]: Remove. (guix-shepherd-service): Adjust accordingly. * doc/guix.texi (Base Services): Adjust accordingly. * gnu/system.scm (%base-packages): Remove LSOF.
2017-11-09system: Do not set 'TZ'.Ludovic Courtès
Fixes <https://bugs.gnu.org/29212>. Reported by Diego Nicola Barbato <dnbarbato@posteo.de>. * gnu/system.scm (operating-system-environment-variables): Remove "TZ".
2017-11-02gnu: rfkill: Mark as superseded by util-linux.Efraim Flashner
* gnu/packages/linux.scm (rfkill)[properties]: New field, superseded by util-linux. * gnu/system.scm (%base-packages): Remove rfkill.
2017-10-10system: operating-system-etc-service: Set XCURSOR_PATH.Thomas Danckaert
* gnu/system.scm (operating-system-etc-service): Set XCURSOR_PATH environment variable so that libxcursor finds cursors in user and system profiles. * gnu/packages/xorg.scm (libxcursor): Add a TODO for better handling of XCURSOR_PATH in other profiles.
2017-10-07system: Really filter out Linux device names for the store.Ludovic Courtès
This is a followup to db4e8fd5d4a07d3be8ce68fb96722ef7077c0eee. Fixes <https://bugs.gnu.org/28445>. Reported by Mark H Weaver <mhw@netris.org>. * gnu/system.scm (ensure-not-/dev): New procedure. (read-boot-parameters)[ensure-not-/dev]: Remove. (operating-system-boot-parameters): Use it.
2017-09-21system: <boot-parameters> does not use "/dev" device names.Ludovic Courtès
Fixes <https://bugs.gnu.org/28445>. Reported by Mark H Weaver and Roel Janssen. * gnu/system.scm (read-boot-parameters)[ensure-not-/dev]: New procedure. Use it.
2017-09-20gnu: system: Fix computation of boot parameters for LUKS devices.Andy Wingo
* gnu/system.scm (read-boot-parameters): Fix store-device computation for root devices of type "device", like the LUKS partition described in the manual. From a patch from https://debbugs.gnu.org/cgi/bugreport.cgi?bug=28445#23. Signed-off-by: Andy Wingo <wingo@igalia.com>
2017-09-19system: Create "/etc/hostname".Thomas Danckaert
* gnu/system.scm (operating-system-etc-service): Add a plain-file with the operating-system-host-name.
2017-09-18system: Define 'DICPATH' in /etc/profile.Ludovic Courtès
* gnu/system.scm (operating-system-etc-service) <profile>: Define 'DICPATH'.
2017-09-12system: Add gexp compiler for <operating-system>.Ludovic Courtès
* gnu/system.scm (operating-system-compiler): New procedure.
2017-09-11system: Fix typo in 'read-boot-parameters'.Ludovic Courtès
Fixes a regression introduced in commit 075681d3501082c6e22df8abf29dfe89d85effc1. * gnu/system.scm (read-boot-parameters): For 'root-device', use 'device-sexp->device', not 'device->sexp'.
2017-09-11system: Serialize the UUID type in the "parameters" file.Ludovic Courtès
* gnu/system.scm (read-boot-parameters)[device->sexp]: New procedure. Use it for 'root-device' and 'store-device'. (device->sexp): Serialize the UUID type in addition to its bytevector.
2017-09-11system: Introduce a disjoint UUID type.Ludovic Courtès
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.
2017-08-01Merge branch 'master' into core-updatesMarius Bakke
2017-07-28bootloader: Use <menu-entry> for the bootloader side.Danny Milosavljevic
* gnu/bootloader.scm (menu-entry-device-mount-point): New variable. Export it. (<menu-entry>: New field "device". * gnu/bootloader/grub.scm (grub-confgiuration-file): Handle <menu-entry> entries. * gnu/bootloader/extlinux.scm (extlinux-configuration-file): Handle <menu-entry> entries. * gnu/system.scm (menu->entry->boot-parameters): Delete variable. (boot-parameters->menu-entry): New variable. Export it. (operating-system-bootcfg): Make OLD-ENTRIES a list of <menu-entry>. * guix/script/system.scm (reinstall-bootloader): Fix bootcfg usage. (perform-action): Fix bootcfg usage.
2017-07-23Merge branch 'master' into core-updatesLeo Famulari
2017-07-23gnu: Add support for aarch64's compiled kernel.Efraim Flashner
* gnu/packages/linux.scm (linux-libre)[arguments]: Add to the regex to find and install the aarch64-linux kernel. * gnu/system.scm (system-linux-image-file-name): Add entry for aarch64.
2017-07-23Merge branch 'master' into core-updatesLeo Famulari
2017-07-18system: Add 'newuidmap' and 'newgidmap' to %SETUID-PROGRAMS.宋文武
* gnu/system.scm (%setuid-programs): Add 'newuidmap' and 'newgidmap'.
2017-07-17locale: Demonadify the locale creation API.Ludovic Courtès
* 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.
2017-06-30system: Avoid collision between GMP variants in the global profile.Ludovic Courtès
* gnu/system.scm (%base-packages): Move GUILE-2.2 out of the list passed to 'canonical-package'.
2017-06-30Merge branch 'master' into core-updatesLudovic Courtès
2017-06-30system: Use "@" to refer to the 'shadow' package.Ludovic Courtès
Reported by Mark H Weaver at <https://lists.gnu.org/archive/html/guix-devel/2017-06/msg00349.html>. * gnu/system.scm (%base-packages): Use '@' for shadow. This fixes an error on Guile 2.0 where 'shadow' alone resolves to the (gnu system shadow) module.
2017-06-29Merge branch 'master' into core-updatesLeo Famulari
2017-06-29system: Add 'shadow' to %BASE-PACKAGES.Ludovic Courtès
Suggested by Göktuğ Kayaalp <self@gkayaalp.com>. * gnu/system.scm (%base-packages): Add SHADOW.
2017-06-11Merge branch 'master' into core-updatesMarius Bakke
Conflicts: * gnu/packages/tls.scm (gnutls): Incorporated 3.5.13 graft (88e2511e217f2).
2017-06-10bootloader: Fix rebase error on f96752e commit.Mathieu Othacehe
* gnu/system.scm (menu-entry->boot-parameters): Rename boot-name to bootloader-name.
2017-06-10bootloader: Rename boot-name to bootloader-name.Mathieu Othacehe
* gnu/system (<boot-parameters>)[boot-name]: Rename field to... [bootloader-name]: ... this. Adjust users. * gnu/scripts/system.scm: Adjust accordingly.
2017-06-10Merge branch 'master' into core-updatesMarius Bakke
2017-06-08bootloader: Use menu-entry to define custom bootloader entries.Mathieu Othacehe
* gnu/bootloader.scm (<menu-entry>): New variable. Export associated getters, This record is extracted from grub module. * gnu/bootloader/extlinux.scm (extlinux-configuration-file): Use menu-entry->boot-parameters to convert menu-entry records to boot-parameters. * gnu/bootloader/grub.scm (<menu-entry>): Remove. (boot-parameters->menu-entry): Remove. (grub-configuration-file): Use boot-parameters to create configuration entries. * gnu/system.scm (menu-entry->boot-parameters): New exported procedure.
2017-05-28gnu: Remove workaround for <https://bugs.gnu.org/26238>.Marius Bakke
* gnu/packages/base.scm (coreutils-8.27): Remove variable. * gnu/system.scm (%base-packages): Change back to COREUTILS.
2017-05-19system: Use Guile 2.2 rather than 2.0 in %BASE-PACKAGES.Ludovic Courtès
* gnu/system.scm (%base-packages): Change GUILE-2.0 to GUILE-2.2.
2017-05-16bootloader: Add bootloader name to boot-parameters record.Mathieu Othacehe
* gnu/system.scm (<boot-parameters>)[name]: New field. (boot-parameters-boot-name): Ditto. (operating-system-boot-parameters-file): Add new field. (operating-system-boot-parameters): Ditto. (read-boot-parameters): Ditto.
2017-05-16bootloader: Add extlinux support.Mathieu Othacehe
* gnu/bootloader.scm: New file. * gnu/bootloader/extlinux.scm: New file. * gnu/bootloader/grub.scm: New file. * gnu/local.mk: Build new files. * gnu/system.scm: Adapt to new bootloader api. * gnu/scripts/system.scm: Adapt to new bootloader api. * gnu.scm: Remove (gnu system grub) and replace by (gnu bootloader) and (gnu bootloader grub) modules. * gnu/system/grub.scm: Moved content to gnu/bootloader/grub.scm. * gnu/system/vm: Replace (gnu system grub) module by (gnu bootloader). * gnu/tests.scm: Ditto. * gnu/tests/nfs.scm: Ditto.
2017-05-13system: Export 'read-boot-parameters'.Alex Kost
This partially reverts commit 9530e73b496fefe65dcb936825b6beda79f7fdf2. * gnu/system.scm: Export 'read-boot-parameters' for backward compatibility.