summaryrefslogtreecommitdiff
path: root/gnu/system.scm
AgeCommit message (Collapse)Author
2020-05-29bootloader: grub: Rename the btrfs-subvolume-file-name parameter.Maxim Cournoyer
Following discussion in <https://issues.guix.gnu.org/37305>, it seems more appropriate to give the parameter a more generic name that better describes what it does. * gnu/bootloader/grub.scm (normalize-file): Rename the BTRFS-SUBVOLUME-FILE-NAME parameter to STORE-DIRECTORY-PREFIX, and always assume this argument to be a string. (eye-candy): Likewise. Default STORE-DIRECTORY-PREFIX to "". (grub-configuration-file): Likewise. * gnu/system.scm (operating-system-bootcfg): Adapt.
2020-05-20bootloader: grub: Allow booting from a Btrfs subvolume.Maxim Cournoyer
* gnu/bootloader/grub.scm (strip-mount-point): Remove procedure. (normalize-file): Add procedure. (grub-configuration-file): New BTRFS-SUBVOLUME-FILE-NAME parameter. When defined, prepend its value to the kernel and initrd file names, using the NORMALIZE-FILE procedure. Adjust the call to EYE-CANDY to pass the BTRFS-SUBVOLUME-FILE-NAME argument. Normalize the KEYMAP file as well. (eye-candy): Add a BTRFS-SUBVOLUME-FILE-NAME parameter, and use it, along with the NORMALIZE-FILE procedure, to normalize the FONT-FILE and IMAGE nested variables. Adjust doc. * gnu/bootloader/depthcharge.scm (depthcharge-configuration-file): Adapt. * gnu/bootloader/extlinux.scm (extlinux-configuration-file): Likewise. * gnu/system/file-systems.scm (btrfs-subvolume?) (btrfs-store-subvolume-file-name): New procedures. * gnu/system.scm (operating-system-bootcfg): Specify the Btrfs subvolume file name the store resides on to the `operating-system-bootcfg' procedure, using the new BTRFS-SUBVOLUME-FILE-NAME argument. * doc/guix.texi (File Systems): Add a Btrfs subsection to document the use of subvolumes. * gnu/tests/install.scm (%btrfs-root-on-subvolume-os) (%btrfs-root-on-subvolume-os-source) (%btrfs-root-on-subvolume-installation-script) (%test-btrfs-root-on-subvolume-os): New variables.
2020-05-05Merge branch 'master' into core-updatesMarius Bakke
2020-05-05system: vm: Move operating-system-uuid.Mathieu Othacehe
* gnu/system/vm.scm (operating-system-uuid): Move to ... * gnu/system.scm: ... here.
2020-05-02Merge branch 'master' into core-updatesMarius Bakke
2020-05-01system: Blacklist usbkbd kernel module in default kernel-arguments.Florian Pelz
This is said to avoid a race with the usbhid kernel module. See <https://issues.guix.gnu.org/35574#18>. * gnu/system.scm (%default-modprobe-blacklist): Blacklist it.
2020-05-01system: Blacklist usbmouse kernel module in default kernel-arguments.Florian Pelz
This avoids a race with the bcm5974 kernel module. Fixes <https://bugs.gnu.org/35574>. * gnu/system.scm (%default-modprobe-blacklist): New variable. (<operating-system>)[kernel-arguments]: Default to ... (%default-kernel-arguments): ... this new variable. * doc/guix.texi (operating-system Reference): Document the change.
2020-04-30Merge branch 'master' into core-updatesMarius Bakke
Conflicts: gnu/local.mk gnu/packages/backup.scm gnu/packages/emacs-xyz.scm gnu/packages/guile.scm gnu/packages/lisp.scm gnu/packages/openldap.scm gnu/packages/package-management.scm gnu/packages/web.scm gnu/packages/xorg.scm
2020-04-26services: system: Initial entries are non-monadic.Ludovic Courtès
* gnu/system.scm (operating-system-directory-base-entries): Return a regular, non-monadic value. * gnu/services.scm (system-derivation): Adjust accordingly. * gnu/system/linux-container.scm (container-essential-services): Likewise.
2020-04-26system: 'operating-system-directory-base-entries' uses 'profile'.Ludovic Courtès
* gnu/system.scm (operating-system-directory-base-entries): Use a declarative profile instead of 'profile-derivation'.
2020-04-23Merge branch 'master' into core-updatesMarius Bakke
Conflicts: etc/news.scm gnu/local.mk gnu/packages/bootloaders.scm gnu/packages/linphone.scm gnu/packages/linux.scm gnu/packages/tls.scm gnu/system.scm
2020-04-22system: Automatically adjust linux-module packages to use theDanny Milosavljevic
operating-system's kernel. * gnu/system.scm (package-for-kernel): New procedure. (operating-system-directory-base-entries): Use it. * gnu/tests/linux-module.scm: Test it.
2020-04-22system: Split %BASE-PACKAGES in smaller parts.Brice Waegeneire
* gnu/system.scm: (%base-packages-interactive, %base-packages-linux, %base-packages-networking, %base-packages-utils): New variables. (%base-packages): Use those new variables. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-04-22system: 'operating-system-boot-parameters-file' uses 'scheme-file'.Ludovic Courtès
* gnu/system.scm (operating-system-boot-parameters-file): Use 'scheme-file' instead of 'gexp->file'. (operating-system-directory-base-entries): Adjust accordingly.
2020-04-21Revert "system: Don’t create a module database when no modules are available."Ludovic Courtès
This reverts commit b2fff3b5de7d510fe4809e9a97089dddf2a39ffc. Fixes <https://bugs.gnu.org/40713>. Reported by pkill9 <pkill9@runbox.com>. This commit is incorrect: its effect depends on whether KERNEL's build output is already available in the store, it breaks with non-package kernels as reported at <https://bugs.gnu.org/40713>, and the LINUX-MODULE-DATABASE hook is required at all times since 5c79f238634c5adb6657f1b4b1bb4ddb8bb73ef1 removed the relevant bits from the 'linux-libre' package.
2020-04-08Merge branch 'master' into core-updatesMarius Bakke
Conflicts: etc/news.scm gnu/local.mk gnu/packages/check.scm gnu/packages/cross-base.scm gnu/packages/gimp.scm gnu/packages/java.scm gnu/packages/mail.scm gnu/packages/sdl.scm gnu/packages/texinfo.scm gnu/packages/tls.scm gnu/packages/version-control.scm
2020-04-04system: Don’t create a module database when no modules are available.Ivan Kozlov
* gnu/system.scm (operating-system-directory-base-entries): Don't create a module database when no modules are available. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org>
2020-03-27Merge branch 'master' into core-updatesMarius Bakke
Conflicts: gnu/packages/icu4c.scm gnu/packages/man.scm gnu/packages/python-xyz.scm guix/scripts/environment.scm guix/scripts/pack.scm guix/scripts/package.scm guix/scripts/pull.scm guix/store.scm
2020-03-23system: Export 'operating-system-kernel-loadable-modules'.Brice Waegeneire
* gnu/system.scm: Export 'operating-system-kernel-loadable-modules'. Signed-off-by: Mathieu Othacehe <m.othacehe@gmail.com>
2020-03-22system: Add kernel-loadable-modules to operating-system.Danny Milosavljevic
* gnu/system.scm (<operating-system>): Add kernel-loadable-modules. (operating-system-directory-base-entries): Use it. * doc/guix.texi (operating-system Reference): Document KERNEL-LOADABLE-MODULES. * gnu/build/linux-modules.scm (depmod): New procedure. (make-linux-module-directory): New procedure. Export it. * guix/profiles.scm (linux-module-database): New procedure. Export it. * gnu/tests/linux-modules.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. * gnu/packages/linux.scm (make-linux-libre*)[arguments]<#:phases>[install]: Disable depmod. Remove "build" and "source" symlinks. [native-inputs]: Remove kmod.
2020-03-20system: Switch to Guile 3.0.Marius Bakke
* gnu/system.scm (%base-packages): Change from GUILE-2.2 to GUILE-3.0.
2020-03-18Merge branch 'master' into core-updatesMarius Bakke
2020-03-17gnu: system: Export %sudoers-specification.Maxim Cournoyer
Exporting this variable allows reusing the default value of the `sudoers-file' field when configuring it. * gnu/system.scm (gnu): Export %sudoers-specification. * doc/guix.texi (Invoking guix deploy): Document an example, to use with 'guix deploy'.
2020-03-10Merge branch 'master' into core-updatesMarius Bakke
2020-03-08system: Export 'operating-system' missing fields.Brice Waegeneire
* gnu/system.scm: Export 'operating-system-firmware', 'operating-system-keyboard-layout', 'operating-system-name-service-switch', 'operating-system-pam-services', 'operating-system-setuid-programs', 'operating-system-skeletons', 'operating-system-sudoers-file', 'operating-system-swap-devices'. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-03-04Merge branch 'master' into core-updatesMarius Bakke
2020-03-02file-systems: Add a 'file-system-device->string' procedure.Maxim Cournoyer
* gnu/system/file-systems.scm (file-system-device->string): New procedure. * gnu/system.scm (bootable-kernel-arguments): Use it. * gnu/system/vm.scm (operating-system-uuid): Likewise. * guix/scripts/system.scm (display-system-generation): Likewise.
2020-02-11system: Stop using canonical-package.Mathieu Othacehe
Usage of canonical-package outside of thunked fields breaks cross-compilation, see: https://lists.gnu.org/archive/html/guix-devel/2019-12/msg00410.html. * gnu/installer.scm (installer-program): Remove canonical-package. * gnu/services/base.scm (<nscd-cache>): Ditto, (%base-services): ditto. * gnu/services/xorg.scm: Remove useless canonical-package import. * gnu/system.scm (%base-packages): Remove canonical-package. * gnu/system/install.scm (%installation-services): Ditto, (installation-os): ditto. * gnu/system/locale.scm (single-locale-directory): Ditto.
2020-01-12system: Drop net-tools from %BASE-PACKAGES (replaced by iproute2).Simon Josefsson
* gnu/system.scm (%base-packages): Remove net-tools. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-01-08system: Use the udev-enabled util-linux variant.Marius Bakke
Fixes <https://bugs.gnu.org/37931>. Reported by Bengt Richter <bokr@bokr.com>. * gnu/system.scm (%base-packages): Change from UTIL-LINUX to UTIL-LINUX+UDEV.
2019-12-07services: Add 'provenance-service-type'.Ludovic Courtès
* gnu/services.scm (object->pretty-string) (channel->code, channel->sexp, provenance-file) (provenance-entry): New procedures. (provenance-service-type): New variable. * gnu/system.scm (operating-system-with-provenance): New procedure. * doc/guix.texi (Service Reference): Document 'provenance-service-type'.
2019-12-01system: vm: Support cross-compilation.Mathieu Othacehe
* gnu/system.scm (system-linux-image-file-name): Add support for cross-built systems. Remove system argument that was ignored, (operating-system-kernel-file): adapt by removing ignored os argument. * gnu/system/vm.scm (expression->derivation-in-linux-vm): Add target argument and turn inputs into native-inputs. Pass target to qemu-command and gexp->derivation calls. (iso9660-image): Add target argument and pass it to expression->derivation-in-linux-vm. Remove qemu from inputs as it is not necessary. (qemu-image): Add target argument, also remove qemu from inputs. Pass target argument to expression->derivation-in-linux-vm call.
2019-10-06Merge branch 'master' into core-updatesRicardo Wurmus
2019-10-06system: Add 'mount' and 'umount' to '%setuid-programs'.Ludovic Courtès
Fixes <https://bugs.gnu.org/37569>. Reported by Diego Nicola Barbato <dnbarbato@posteo.de>. * gnu/system.scm (%setuid-programs): Add "mount" and "umount" from util-linux.
2019-09-06Merge branch 'master' into core-updatesMark H Weaver
2019-08-30system: Add 'bootloader-menu-entries' field to <boot-parameters>.Ludovic Courtès
This allows us to keep track of the extra menu entries specified in the OS configuration. * gnu/system.scm (<boot-parameters>)[bootloader-menu-entries]: New field. (read-boot-parameters): Initialize it. (operating-system-boot-parameters): Likewise. (operating-system-boot-parameters-file): Serialize it. * gnu/bootloader.scm (menu-entry->sexp, sexp->menu-entry): New procedures.
2019-07-16system: Write the timezone to /etc/timezone.Timothy Sample
* gnu/system.scm (operating-system-etc-service): Write the operating system timezone to /etc/timezone. Fixes <https://bugs.gnu.org/35746>.
2019-05-15system: Add 'operating-system-with-gc-roots'.Ludovic Courtès
* gnu/tests/install.scm (operating-system-with-gc-roots): Move to... * gnu/system.scm (operating-system-with-gc-roots): ... here. New procedure.
2019-05-10system: Export 'operating-system-default-essential-services'.Ludovic Courtès
* gnu/system.scm (essential-services): Rename to... (operating-system-default-essential-services): ... this. (<operating-system>)[essential-services]: Adjust accordingly.
2019-04-27system: Add boot file systems to /etc/fstab.Ludovic Courtès
* gnu/system.scm (essential-services): Pass FSTAB-SERVICE-TYPE the list of file systems that match 'file-system-needed-for-boot?'.
2019-04-25system: Add guile-readline and guile-colorized to %BASE-PACKAGES.Ludovic Courtès
This adds pretty much nothing to the system closure size. * gnu/system.scm (%base-packages): Add GUILE-READLINE and GUILE-COLORIZED.
2019-04-22system: Change default kernel-arguments to '("quiet").Christopher Baines
This improves the readability of the boot process, especially when using full disk encryption where you're required to enter the passphrase at a particular point. * gnu/system.scm (<operating-system>)[kernel-arguments]: Change the default to '("quiet"). * doc/guix.texi (operating-system Reference): Document this change.
2019-04-15system: Add 'label' field to <operating-system>.Ludovic Courtès
* gnu/system.scm (<operating-system>)[label]: New field. (operating-system-default-label): New procedure. (operating-system-boot-parameters): Use it instead of 'kernel->boot-label'. * doc/guix.texi (operating-system Reference): Document it.
2019-04-14system: Remove "beta" from GRUB menu entries.Ludovic Courtès
* gnu/system.scm (kernel->boot-label): Remove "(beta)".
2019-03-30system: Define 'this-operating-system'.Ludovic Courtès
* gnu/system.scm (<operating-system>): Choose 'this-operating-system' as the 'this' identifier. [essential-services]: Adjust accordingly.
2019-03-25system: Add 'essential-services' field to <operating-system>.Ludovic Courtès
* 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'.
2019-03-24system: Initialize console keyboard layout in the initrd.Ludovic Courtès
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.
2019-03-22system: Fix misleading comments.Ludovic Courtès
* gnu/system.scm (<operating-system>)[skeletons, services]: Fix misleading type comments.
2019-01-17gnu: Add graphical installer support.Mathieu Othacehe
* configure.ac: Require that guile-newt is available. * gnu/installer.scm: New file. * gnu/installer/aux-files/logo.txt: New file. * gnu/installer/build-installer.scm: New file. * gnu/installer/connman.scm: New file. * gnu/installer/keymap.scm: New file. * gnu/installer/locale.scm: New file. * gnu/installer/newt.scm: New file. * gnu/installer/newt/ethernet.scm: New file. * gnu/installer/newt/hostname.scm: New file. * gnu/installer/newt/keymap.scm: New file. * gnu/installer/newt/locale.scm: New file. * gnu/installer/newt/menu.scm: New file. * gnu/installer/newt/network.scm: New file. * gnu/installer/newt/page.scm: New file. * gnu/installer/newt/timezone.scm: New file. * gnu/installer/newt/user.scm: New file. * gnu/installer/newt/utils.scm: New file. * gnu/installer/newt/welcome.scm: New file. * gnu/installer/newt/wifi.scm: New file. * gnu/installer/steps.scm: New file. * gnu/installer/timezone.scm: New file. * gnu/installer/utils.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add previous files. * gnu/system.scm: Export %root-account. * gnu/system/install.scm (%installation-services): Use kmscon instead of linux VT for all tty. (installation-os)[users]: Add the graphical installer as shell of the root account. [packages]: Add font related packages. * po/guix/POTFILES.in: Add installer files.
2019-01-13system: Add sudoedit to %setuid-programs.Meiyo Peng
* gnu/system.scm (%setuid-programs): Add sudoedit. Signed-off-by: Ludovic Courtès <ludo@gnu.org>