summaryrefslogtreecommitdiff
path: root/gnu/system
AgeCommit message (Collapse)Author
2022-09-24system: images: Add wsl2 module.Alex Griffin
* gnu/system/images/wsl2.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. * doc/guix.texi ("System Images"): Document it. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-09-24system: image: Add wsl2 support.Alex Griffin
* gnu/image.scm (<image>)[format]: Add wsl2 support. * gnu/system/image.scm (wsl2-image, wsl2-image-type): New variables. (image->root-file-system): Add wsl2 image support. (system-image): Ditto.
2022-09-24system: image: Add tarball support.Alex Griffin
* gnu/image.scm (<image>)[fields]: Add tarball to the supported formats. * gnu/system/image.scm (tarball-image, tarball-image-type): New variables. (system-tarball-image): New procedure. (image->root-file-system): Add tarball image support. (system-image): Ditto. * doc/guix.texi ("System Images"): Document it. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-09-24platforms: x86: Rename Hurd hurd to i586-gnu.Mathieu Othacehe
* guix/platforms/x86.scm (hurd): Rename it to ... (i586-gnu): ... this variable. * gnu/system/images/hurd.scm (hurd-disk-image, hurd-barebones-disk-image, hurd-barebones-qcow2-image): Adapt those.
2022-09-24image: Make the operating-system field mandatory.Mathieu Othacehe
Make the operating-system field mandatory as creating an image without it makes no sense. Introduce a new macro, image-without-os for the specific cases where the image is only created to be inherited from afterwards. * gnu/image.scm (<image>)[operating-system]: Make it mandatory. * gnu/system/image.scm (image-without-os): New macro. (efi-disk-image, efi32-disk-image, iso9660-image, docker-image, raw-with-offset-disk-image): Use it. * gnu/system/images/hurd.scm (hurd-disk-image): Ditto.
2022-09-16system: install: Do not load amdgpu in the installer image.Antero Mejr
* gnu/system/install.scm (installation-os): Add amdgpu to modprobe.blacklist. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-09-07system: images: Define the platform in image-types.Mathieu Othacehe
Running the following command where my-pine.scm contains an operating-system declaration: guix system image --image-type=pine64-raw my-pine.scm returns: guix system: error: package linux-libre-arm64-generic@5.18.19 does not support x86_64-linux That's because there's no platform defined in the pine64-raw image-type, hence the guix system image tries to build the image for the host architecture. * gnu/system/images/novena.scm (novena-image-type): Use the armv7-linux platform. * gnu/system/images/pine64.scm (pine64-image-type): Use the aarch64-linux platform. * gnu/system/images/pinebook-pro.scm (pinebook-pro-image-type): Use the aarch64-linux platform. * gnu/system/images/rock64.scm (rock64-image-type): Use the aarch64-linux platform.
2022-09-07system: image: Update my copyright.Mathieu Othacehe
* gnu/system/image.scm: Update it.
2022-09-07system: image: Remove an unused variable.Mathieu Othacehe
* gnu/system/image.scm (sytem-image): Remove it.
2022-08-10gnu: system: file-systems: Add shared flag.Oleg Pykhalov
* gnu/build/file-systems.scm (mount-flags->bit-mask, mount-file-system): Handle shared flag. * gnu/system/file-systems.scm (invalid-file-system-flags): Add shared to known flags. * guix/build/syscalls.scm (MS_SHARED): New variable. * doc/guix.texi (File Systems): Document shared flag.
2022-08-09linux-container: container-script: Parse command line options.Ricardo Wurmus
* gnu/system/linux-container.scm (container-script): Accept command line options to bind mount host directories into the container. * doc/guix.texi (Invoking guix system): Document options.
2022-08-09maint: Use a pretty version string in ISO and VM images.Ludovic Courtès
* gnu/system/examples/vm-image.tmpl: Use the 'GUIX_DISPLAYED_VERSION' environment variable in 'label'. * gnu/system/install.scm (%installation-os): Likewise. * Makefile.am (release): Set 'GUIX_DISPLAYED_VERSION'.
2022-08-09system: install: Always use 'current-guix'.Ludovic Courtès
Fixes <https://issues.guix.gnu.org/53210>. Reported by Mathieu Othacehe <othacehe@gnu.org>. * gnu/system/install.scm (%installation-services): Set 'guix' to use (current-guix) in 'guix-configuration'. * gnu/system/examples/vm-image.tmpl: Likewise. * gnu/tests/install.scm (operating-system-with-current-guix): Remove. (run-install, installation-os-for-gui-tests): Remove its uses. * Makefile.am (release): Remove intermediate use of 'update-guix-package.scm' and subsequent 'git commit' invocation.
2022-07-01image: Raise an error when an image lacks a bootable partition.Ludovic Courtès
* gnu/system/image.scm (find-root-partition): Raise an error when 'find' returns #f.
2022-07-01image: Avoid use of the deprecated 'gpt' option of genimage.Ludovic Courtès
* gnu/system/image.scm (system-disk-image)[genimage-type-options]: Use 'partition-table-type' instead of the deprecated 'gpt' option.
2022-07-01image: Add default value for partition initializer.Ludovic Courtès
Previously, the default value would lead to a wrong-type-to-apply crash. * gnu/system/image.scm (system-disk-image)[image-builder]: When 'partition-initializer' returns #f, fall back to INITIALIZE-ROOT-PARTITION. * gnu/tests/base.scm (run-root-unmount-test)[test-image]: Remove 'initializer' field of partition. * gnu/image.scm (<partition>)[initializer]: Add comment.
2022-07-01image: 'system-image' throws when given an incorrect image format.Ludovic Courtès
Previously 'system-image' would return *unspecified* in that case, leading to a wrong-type-arg error crash down the road. * gnu/system/image.scm (system-image): Add 'else' clause.
2022-06-24image: Add support for 32bit UEFI.Denis 'GNUtoo' Carikli
* gnu/bootloader/grub.scm (grub-efi32-bootloader): New variable. (install-grub-efi32): New variable. * gnu/build/bootloader.scm (install-efi): Add a 'targets' keyword argument. (install-efi-loader): Likewise. * gnu/build/image.scm (initialize-efi32-partition): New procedure. * gnu/packages/bootloaders.scm (grub-efi32): New variable. * gnu/system/image.scm (esp32-partition): New variable (efi32-disk-image): New variable. (efi32-raw-image-type): New variable. (system-disk-image)[partition-image]: Set '#:grub-efi32' when calling the partition initializer. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-06-07gnu: install: Add uvesafb service only on targets that support v86d.Josselin Poiret
Fixes <https://issues.guix.gnu.org/55806>. * gnu/system/install.scm (%installation-services): Refactor into a procedure, so that it can capture the system it's installing for. Conditionally add uvesafb-service-type based on whether v86d is supported by the target architecture. (installation-os)[services]: Use the %installation-service procedure. (uvesafb-shepherd-service): Remove %host-type checks. Signed-off-by: Florian Pelz <pelzflorian@pelzflorian.de>
2022-05-31gnu: Remove wicd.Maxim Cournoyer
The last release is from 2017, stuck on Python 2. * gnu/packages/wicd.scm: Delete file. * gnu/packages/patches/wicd-bitrate-none-fix.patch: Delete file. * gnu/packages/patches/wicd-get-selected-profile-fix.patch: Likewise. * gnu/packages/patches/wicd-urwid-1.3.patch: Likewise. * gnu/packages/patches/wicd-wpa2-ttls.patch: Likewise. * gnu/local.mk: De-register them. * gnu/services/networking.scm: Remove wicd service... * doc/guix.texi: ... and its documentation. * gnu/system/linux-container.scm (containerized-operating-system) <services-to-drop>: Remove wicd-service-type.
2022-05-31image: Add fat32 support.Pavel Shlyak
* gnu/build/image.scm (make-vfat-image): Pass fs-bits as an argument and force 1kb logical sector size only if "ESP" flag is set. (make-partition-image): Add "fat32" partition type, support explicit "fat16" type with vfat alias. * gnu/system/image.scm (partition->dos-type partition): Return file system IDs for "fat16" and "fat32" partitions. (partition->gpt-type partition): Ditto. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-05-25images: hurd: Adjust module imports.Efraim Flashner
Follow-up to a9dcd60bc11afb3934c11fbad159a16f0f223fd1. * gnu/system/images/hurd.scm: Adjust module imports to changes in code structure.
2022-05-25Move (gnu platform) and (gnu platforms ...) to guix/.Josselin Poiret
* gnu/platform.scm: * gnu/platforms/arm.scm: * gnu/platforms/hurd.scm: * gnu/platforms/mips.scm: * gnu/platforms/powerpc.scm: * gnu/platforms/riscv.scm: * gnu/platforms/s390.scm: * gnu/platforms/x86.scm: Move to guix/. * Makefile.am: * doc/guix.texi (Porting to a New Platform): * etc/release-manifest.scm: * gnu/ci.scm: * gnu/image.scm: * gnu/local.mk: * gnu/packages/bioinformatics.scm: * gnu/packages/bootstrap.scm: * gnu/packages/cross-base.scm: * gnu/packages/instrumentation.scm: * gnu/packages/linux.scm: * gnu/system/image.scm: * gnu/system/images/hurd.scm: * gnu/system/images/novena.scm: * gnu/system/images/pine64.scm: * gnu/system/images/pinebook-pro.scm: * gnu/system/images/rock64.scm: * guix/scripts/build.scm: * guix/scripts/system.scm: * guix/self.scm: Update (gnu platform...) to (guix platform...). Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-05-23image: Add bootable flag support.Pavel Shlyak
* gnu/build/image.scm (sexp->partition): Add flags support. * gnu/system/image.scm (partition->gexp): Ditto. (system-disk-image): Set the genimage bootable flag if it is part of the partition flags. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-05-23system: image: Support GPT vfat partitions.Pavel Shlyak
* gnu/system/image.scm (system-disk-image): Support them. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-05-23system: image: Support MBR vfat partitions.Pavel Shlyak
* gnu/system/image.scm (system-disk-image): Support them. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-05-23system: image: Tweak error message.Mathieu Othacehe
* gnu/system/image.scm (system-disk-image): Tweak it.
2022-05-23system: image: Fix indentation.Mathieu Othacehe
* gnu/system/image.scm: Fix it.
2022-05-18services: Add more description fields.Ludovic Courtès
* gnu/services.scm (simple-service): Add 'description' field. * gnu/services/base.scm (udev-rules-service): Likewise. * gnu/system/install.scm (configuration-template-service-type): Likewise. * gnu/tests.scm (marionette-service-type): Likewise.
2022-05-01file-systems: Avoid load-time warnings when attempting to load (guix store).Ludovic Courtès
This makes sure warnings like "incompatible bytecode version" don't go through when looking for (guix store). * gnu/system/file-systems.scm (%store-prefix): Parameterize 'current-warning-port' around 'resolve-module' call.
2022-04-08mapped-devices: Ensure 'cryptsetup open' gets a tty.Ludovic Courtès
Fixes <https://issues.guix.gnu.org/54770>. Regression introduced in 400c9ed3d779308e56038305d40cd93acb496180. Previously, for an encrypted /home (say), "cryptsetup open" would be invoked by shepherd, with /dev/null as its standard input. It would thus run in non-interactive mode and, instead of asking for a passphrase, fail with: Nothing to read on input. This change ensures it runs in interactive mode. * gnu/build/file-systems.scm (system*/console, system*/tty): New procedures. * gnu/system/mapped-devices.scm (open-luks-device): Use 'system*/tty' instead of 'system*'.
2022-04-08system: hurd: Fix bogus 'initrd-modules' field.Ludovic Courtès
Reported by kitzman on #guix. * gnu/system/hurd.scm (%hurd-default-operating-system)[initrd-modules]: Set to the empty list.
2022-03-19linux-container: Add #:guest-uid and #:guest-gid to 'eval/container'.Ludovic Courtès
* gnu/system/linux-container.scm (eval/container): Add #:guest-uid and #:guest-gid and honor them.
2022-03-19linux-container: 'eval/container' honors #:namespaces.Ludovic Courtès
* gnu/system/linux-container.scm (eval/container): Pass #:namespaces to 'call-with-container'.
2022-03-15images: novena: Fix build.Mathieu Othacehe
* gnu/system/images/novena.scm (novena-barebones-os)[kernel]: Use the linux-libre-arm-generic kernel. [initrd-modules]: Do not specify any modules as sdhci-esdhc-imx, ahci_imx and i2c-dev are built-in in the arm-generic kernel.
2022-03-09system: hurd: Move the Shepherd before the Hurd in %BASE-PACKAGES/HURD.Ludovic Courtès
* gnu/system/hurd.scm (%base-packages/hurd): Move SHEPHERD before HURD.
2022-03-01initrd: Use non-hyphenated kernel command-line parameter names.Maxim Cournoyer
This is to make it less surprising, given the common convention sets forth by the kernel Linux command-line parameters. * gnu/build/linux-boot.scm (boot-system): Rename '--load', '--repl', '--root' and '--system' to 'gnu.load', 'gnu.repl', 'root' and 'gnu.system', respectively. Adjust doc. (find-long-option): Adjust doc. * gnu/installer/parted.scm (installer-root-partition-path): Adjust accordingly. * gnu/system.scm (bootable-kernel-arguments): Add a VERSION argument and update doc. Use VERSION to conditionally return old style vs new style initrd arguments. (%boot-parameters-version): Increment to 1. (operating-system-boot-parameters): Adjust doc. (operating-system-boot-parameters-file): Likewise. * gnu/system/linux-initrd.scm (raw-initrd, base-initrd): Likewise. * doc/guix.texi: Adjust doc. * gnu/build/activation.scm (boot-time-system): Adjust accordingly. * gnu/build/hurd-boot.scm (boot-hurd-system): Likewise. * gnu/packages/commencement.scm (%final-inputs-riscv64): Adjust comment.
2022-02-15system: Add helper file-system-mount-point-predicate.Josselin Poiret
* gnu/system/file-systems.scm (file-system-mount-point-predicate): Add it. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-02-09Revert kernel modules changes to support the Coreboot framebufferLeo Famulari
These changes broke the creation of the 'linux-modules-database' for all kernel series besides 5.15, 5.4, and 5.10, like this: ------ gnu/build/linux-modules.scm:257:5: kernel module not found "framebuffer_coreboot" "/gnu/store/yff45fr6q93mw44zdql9ffr95zcvwxcn-linux-libre-4.9.299/lib/modules" ------ We should support the coreboot framebuffer, but we need to test that change more completely before deploying it. This effectively reverts the following commits: 1dfe8c372163d481ebebb97dd3b4cafa49906b28 "gnu: linux-libre: Build simplefb into all x86{,_64} kernels." bc09e7ab569d5306ce99c5525150695c9d539ef0 "gnu: linux-libre: Support the Coreboot framebuffer." Fixes <https://issues.guix.gnu.org/52667> "System reconfiguration fails to build linux-modules.drv".
2022-01-14system: locale: Use only the current glibc.Mathieu Othacehe
* gnu/system/locale.scm (%default-locale-libcs): Remove glibc-2.31.
2022-01-14system: vm: Change the writable image name.Mathieu Othacehe
* gnu/system/vm.scm (system-qemu-image/shared-store-script): Change it.
2022-01-06services: Consistently use SDDM rather than GDM on non-x86_64.Chris Marusich
This is a follow-up to 49599fab564f203b8e92d32e9b28c99e99849bfb. Fixes: <https://issues.guix.gnu.org/52908>. * gnu/services/xorg.scm (set-xorg-configuration)[login-manager-service-type]: When the current system or target system begins with the string "x86_64", use gdm-service-type as before; otherwise, use sddm-service-type. * gnu/system/examples/vm-image.tmpl (services): Add sddm-service-type to the list of service types to remove.
2022-01-06system: vm: Restore default RAM size to 512MB.Mathieu Othacehe
* gnu/system/vm.scm (system-qemu-image/shared-store-script): Restore it.
2022-01-05doc: Only use GDM and GNOME on x86_64.Ricardo Wurmus
* gnu/system/examples/desktop.tmpl: Only use gnome-desktop-service-type and the default login manager in set-xorg-configuration when the target system is x86_64.
2022-01-01system: Allow 'chfn' to change the user's full name.Ludovic Courtès
Fixes <https://issues.guix.gnu.org/52539>. Reported by Jacob First <jacob.first@member.fsf.org>. * gnu/build/accounts.scm (allocate-passwd): Add comment as to why 'real-name' is taken from PREVIOUS. Add (not system?) to the condition. * gnu/system.scm (operating-system-etc-service) <login.defs>: Add "CHFN_RESTRICT". * gnu/system.scm (%setuid-programs): Add "chfn". * gnu/system/pam.scm (base-pam-services): Add "chfn". * doc/guix.texi (User Accounts): Document it.
2021-12-25gnu: linux-libre: Build simplefb into all x86{,_64} kernels.Tobias Geerinckx-Rice
This attempts to mitigate <https://issues.guix.gnu.org/52667>. It makes linux-libre@5.15 consistent with older versions which do not support a modular simplefb, allowing a single %base-initrd-modules simple list for all of them. Unlike CONFIG_FB_SIMPLE=m, CONFIG_FB_SIMPLE=y conflicts with CONFIG_DRM_SIMPLEDRM, so the latter is now disabled. Let us hope it is not missed. * gnu/packages/aux-files/linux-libre/5.15-i686.conf, gnu/packages/aux-files/linux-libre/5.15-x86_64.conf: Unset CONFIG_DRM_SIMPLEDRM to build in CONFIG_FB_SIMPLE=y. * gnu/system/linux-initrd.scm (default-initrd-modules): Remove "simplefb".
2021-12-23Remove VM generation dead-code.Mathieu Othacehe
This code duplicates the (gnu system image) and (gnu build image) code. Using VM for image generation is not needed, not portable and really slow. Remove all the VM image generation code to make sure that only the image API is used. * gnu/build/vm.scm: Remove it. Move the qemu-command procedure to ... * gnu/build/marionette.scm: ... here. * gnu/local.mk (GNU_SYSTEM_MODULES): Adapt it. * tests/modules.scm: Ditto. * gnu/tests/install.scm: Ditto. * gnu/system/vm.scm: Adapt it and remove expression->derivation-in-linux-vm, qemu-img, system-qemu-image/shared-store and system-docker-image procedures. * doc/guix.texi (G-Expressions): Adapt it.
2021-12-23system: vm: Use the image API to generate QEMU images.Mathieu Othacehe
Also add a volatile? argument to the virtual-machine record. When volatile? is true generate a QEMU script that mounts an overlay on top of a read only storage. When volatile? is false, use a persistent, read-write storage. * gnu/system/vm.scm (common-qemu-options): Add a rw-image? argument to use a persistent storage. (system-qemu-image/shared-store-script): Add a volatile? argument and honor it. Use the image API to build the QEMU image. (<virtual-machine>)[volatile?]: New field. (virtual-machine-compiler): Pass the volatile? argument to the system-qemu-image/shared-store-script procedure.
2021-12-23system: image: Add docker support.Mathieu Othacehe
* gnu/system/image.scm (docker-image, docker-image-type): New variables. (system-docker-image): New procedure. (image->root-file-system): Add docker image support. (system-image): Ditto.
2021-12-19doc: Add group configuration exampleDenis 'GNUtoo' Carikli
* gnu/system/examples/desktop.tmpl: Add group configuration example. Signed-off-by: Ludovic Courtès <ludo@gnu.org>