Merge branch 'version-1.5.0' Change-Id: Id73c0c74600a3da3373b3a37236b505af65bfe31
gnu: %desktop-services: Switch to GDM on 64-bit systems. * gnu/services/desktop.scm (desktop-services-for-system): Use gdm on all 64-bit systems. * gnu/services/xorg.scm (set-xorg-configuration): Adapt to desktop-services-for-system change. * gnu/system/examples/desktop.tmpl: Determine the support of Gnome by checking for supported package. Fixes: #5388 Change-Id: I0d512a7c31188cea0335e66f00a6d65ae59d09a4 Signed-off-by: Rutherther <rutherther@ditigal.xyz>
system: install: Add support for more boot devices on AArch64. The state is not great, there are many unsupported devices in the current state. This adds support for much more USB controllers than before and also SD cards. * gnu/system/install.scm (%installation-initrd-modules): Add a lot of new modules to support booting on various devices Change-Id: I523ebe992a7e3740708622899d1209f20eb23e63 Signed-off-by: Rutherther <rutherther@ditigal.xyz> Merges: #5320
gnu: visionfive2: Update the module commentary. * gnu/system/images/visionfive2.scm: Update the module commentary. Change-Id: If3d12bb0e3ccb9eaced4eb1e3afe636c7b89896f Signed-off-by: Rutherther <rutherther@ditigal.xyz> Merges: #4855
gnu: visionfive2: Update the module commentary. * gnu/system/images/visionfive2.scm: Update the module commentary. Change-Id: If3d12bb0e3ccb9eaced4eb1e3afe636c7b89896f Signed-off-by: Rutherther <rutherther@ditigal.xyz> Merges: #4855
install: Add guix-system-installer executable to system profile. To allow users in headless consoles to use the graphical installer, add an executable. This executable is referred to by the console motd, so users in headless setups will get to know about it. * gnu/system/install.scm (installer-command-package): New variable. (%installation-services): Use it, add it to the profile-service-type Change-Id: Id2d07b3f190aa17c99c7667c3bb31ae696499dde Signed-off-by: Rutherther <rutherther@ditigal.xyz> Merges: #5346
install: Show different motd in headless console. motd is shown by the pam module, it doesn't support changing what motd gets displayed easily. The only way to control it is by read permissions on individual motd files, making files unreadable by the user logging in. So instead of that, make a custom script that prints different motd, checking if a temporary file exists. An environment variable would be better suited for this purpose, but those aren't passed through by PAM. * gnu/system/install.scm (%installation-login-pam-service): New variable. Modified login pam service. (%installation-console-login): New variable. Wrapper around login to create a file for PAM rule. (%installation-services): Use new login pam service and wrapper. Change-Id: I5e05e604b3106390181190559ade62ca5e2db216 Signed-off-by: Rutherther <rutherther@ditigal.xyz>
install: Register agetty on primary console on AArch64. This adds the possibility to parse /proc/consoles to find a primary console. Then, on AArch64 this is used in the installation image. On AArch64, the boot usually happens with chosen device tree that contains the serial console. On x86_64, this does not happen so often, so we keep the installation iso minimal there. The primary console is chosen, but there is a fallback to any non-virtual one. Virtual console (/dev/tty0) is skipped, because that one can point to any console, like /dev/tty1 and so on. So it's not safe to register agetty on it. * gnu/build/linux-boot.scm (read-linux-consoles): New variable. * gnu/services/base.scm (default-serial-console): Use primary console as fallback. * gnu/system/install.scm (%installation-services): Add agetty tty for consoles. Change-Id: Iae01f7bc85b5ffdef2e52b1d0710889915b0f54a Signed-off-by: Rutherther <rutherther@ditigal.xyz>
image: Use `unshare` to map root user for btrfs The current version of `mkfs.btrfs` has a regression when combined with `fakeroot` where it does not detect the faked root uid/gid of files when building the filesystem. This produces partition images with `/` owned by the guixbuild user when it should be owned by root. Using `unshare` rather than `fakeroot` resolves this by doing the uid mapping at the kernel level rather than overloading the `stat` function. An equivalent issue was [reported and patched in NixOS](https://github.com/NixOS/nixpkgs/pull/434122) * gnu/build/image.scm (system-disk-image): Import `util-linux` instead of `fakeroot`. * gnu/system/image.scm (make-btrfs-image): Use `unshare --map-root-user` Change-Id: Id4eeaf510f3ec5f4a23b4d700a73e2cf46da40b1 Signed-off-by: Ludovic Courtès <ludo@gnu.org> Merges: #5536
image: operating-system-for-image: Bring back root-fs placeholder. To calculate the UUID in `root-uuid`, the operating-system has to have a root file system, because it's typically used in the operating-system-boot-parameters. Followup of efc32c6684f75531cfd600874ba5d23a0bd643b9 that it partially reverts. * gnu/system/image.scm (operating-system-for-image): Re-introduce root file system to operating-system used to calculate the UUID. Fixes: #5131 Reported-By: Yelninei <yelninei@tutamail.com> Change-Id: Ica2c3d3715cd90fccf3a7484f390b36de3cdfe7f Signed-off-by: Rutherther <rutherther@ditigal.xyz> Merges: #5141 Signed-off-by: Rutherther <rutherther@ditigal.xyz>
system: images: Add A20-OLinuXino-LIME2 image. * gnu/local.mk: Register image. * gnu/system/images/a20-olinuxino-lime2.scm: New file. Change-Id: Ib1370307951d78d3ac119c8ab9a612a8e8a5bd2b Signed-off-by: Danny Milosavljevic <dannym@friendly-machines.com>
image: operating-system-for-image: Bring back root-fs placeholder. To calculate the UUID in `root-uuid`, the operating-system has to have a root file system, because it's typically used in the operating-system-boot-parameters. Followup of efc32c6684f75531cfd600874ba5d23a0bd643b9 that it partially reverts. * gnu/system/image.scm (operating-system-for-image): Re-introduce root file system to operating-system used to calculate the UUID. Fixes: #5131 Reported-By: Yelninei <yelninei@tutamail.com> Change-Id: Ica2c3d3715cd90fccf3a7484f390b36de3cdfe7f Signed-off-by: Rutherther <rutherther@ditigal.xyz> Merges: #5141
Merge branch 'version-1.5.0' Change-Id: I5a36bbdb772c88f71fbe612cf6c445c34088e35c
system: install: Remove current-guix url override. Prefer parameterization of current-guix in release artifacts generation. * gnu/system/install.scm (%installation-service): Use (current-guix) directly in guix service configuration. Change-Id: Ifa363465e6a4f6936d0e51eaf1b33872519e2b0a Signed-off-by: Rutherther <rutherther@ditigal.xyz>
vm-image.tmpl: Remove current-guix url override. This simplifies things thanks to the release artifacts now, they have been rewritten to Guile and can now supply current-guix-package as a parameter, as was intended. That way the checkout is not leaked for the release artifacts. * gnu/system/examples/vm-image.tmpl (guix-package-commit): Remove variable. (operating-system): Use (current-guix) directly. * gnu/system/examples/vm-image-efi.tmpl: Likewise. Change-Id: Iabf1bb5bbb86b9984bfb87ba0543782a6dce3192 Signed-off-by: Rutherther <rutherther@ditigal.xyz>
image: system-iso9660-image: Propagate image-name to derivation name. * gnu/system/image.scm (system-iso9660-image): Use name from image-name instead of hardcoded image.iso. Change-Id: I3cea3857729c2eb7d6728f650db7fb33cf4c8c8a Signed-off-by: Rutherther <rutherther@ditigal.xyz>
linux-initrd: Support more virtio modules in initrd. Adds mmio and scsi modules for virtio. scsi one is needed for using virtio-scsi-pci, that can be a common option on aarch64, where only two options pop up for mounting disks: - virtio-scsi-pci - virtio-blk While virtio-blk should generally be preferred, sometimes virtio-scsi-pci pops up first on the internet, so people can use it. virtio-mmio is a necessity on Aarch64 for virtio-blk to work. * gnu/system/linux-initrd.scm (default-initrd-modules): Add virtio_mmio and virito_scsi. Change-Id: Ia8fabb5594893ef1712359d27d482d9f44dc89c0 Signed-off-by: Rutherther <rutherther@ditigal.xyz>
system: vm-image-efi.tmpl: Add example efi vm image. This is a copy of vm-image.tmpl, but with efi bootloader. Since user ends up with this config in their /run/current-user/configuration.scm and the regular way to continue is to copy that file and reconfigure off of it, it seems better to just keep distinct configuration. Moreover xf86-video-intel is removed, because it doesn't compile on aarch64. * gnu/system/examples/vm-image-efi.tmpl Change-Id: I0f72ac5a775339ee84cb1a4046ca5a8deca0e2ea Signed-off-by: Rutherther <rutherther@ditigal.xyz>
system: installation-os: Support efi-only. Aarch64 doesn't support grub-pc, so we cannot use the regular grub-bootloader, grub-efi-bootloader has to be used. Since neither packages nor bootloader are thunked, there seems to be no other choice than using something from the outside environment, such as an environment variable to decide what bootloader to use. For convenience, a procedure is made to be used from other Guile code, instead of relying on environment variables. * gnu/system/install.scm (make-installation-os): New variable; Use grub-efi-bootloader when efi-only? is #t; Use bootloader package in packages instead of grub-pc. (installation-os): Replace with call of make-installation-os with default arguments. Change-Id: I34ec8da6079617f39805b3e1168bad4a42d84cab Signed-off-by: Rutherther <rutherther@ditigal.xyz>
image: Add /boot/efi filesystem if operating-system specifies it. Instead of forgetting about the /boot/efi system completely, re-add it with proper label. This way lightweight.tmpl, desktop.tmpl still boot when supplied to guix system image. That was the reason for removing /boot/efi file-system in the first place. Removing it however means the target system cannot be reconfigured by default, as the esp is not mounted. * gnu/system/image.scm (partition-has-flag?): New variable. (root-partition?): Use it. (find-partition-with-flag): New variable. (find-root-partition): Use it. (find-esp-partition): New variable. (operating-system-for-image): Add /boot/efi file-system with proper label instead of removing it completely. Change-Id: I3ef2120059d8bbf76170d10ae718cb0de637f453 Signed-off-by: Rutherther <rutherther@ditigal.xyz>