summary refs log tree commit diff
path: root/gnu/system
AgeCommit message (Collapse)Author
2020-12-15store-copy: 'populate-store' can optionally deduplicate files.Ludovic Courtès
Until now deduplication was performed as an additional pass after copying files, which involve re-traversing all the files that had just been copied. * guix/store/deduplication.scm (copy-file/deduplicate): New procedure. * tests/store-deduplication.scm ("copy-file/deduplicate"): New test. * guix/build/store-copy.scm (populate-store): Add #:deduplicate? parameter and honor it. * tests/gexp.scm ("gexp->derivation, store copy"): Pass #:deduplicate? #f to 'populate-store'. * gnu/build/image.scm (initialize-root-partition): Pass #:deduplicate? to 'populate-store'. Pass #:deduplicate? #f to 'register-closure'. * gnu/build/vm.scm (root-partition-initializer): Likewise. * gnu/build/install.scm (populate-single-profile-directory): Pass #:deduplicate? #f to 'populate-store'. * gnu/build/linux-initrd.scm (build-initrd): Likewise. * guix/scripts/pack.scm (self-contained-tarball)[import-module?]: New procedure. [build]: Pass it as an argument to 'source-module-closure'. * guix/scripts/pack.scm (squashfs-image)[build]: Wrap in 'with-extensions'. * gnu/system/linux-initrd.scm (expression->initrd)[import-module?]: New procedure. [builder]: Pass it to 'source-module-closure'. * gnu/system/install.scm (cow-store-service-type)[import-module?]: New procedure. Pass it to 'source-module-closure'.
2020-12-11install: Discover local substitute servers.Mathieu Othacehe
* gnu/installer/substitutes.scm: New file. * gnu/installer/newt/substitutes.scm: New file. * gnu/local.mk (INSTALLER_MODULES): Add them. * po/guix/POTFILES.in: Add gnu/installer/newt/substitutes.scm. * gnu/installer/proxy.scm (with-silent-shepherd): Move to ... * gnu/installer/utils.scm: ... here. * gnu/installer/record.scm (<installer>)[substitutes-page]: New field. * gnu/installer/newt.scm (substitutes-page): New procedure, (newt-installer): register it. * gnu/installer.scm (installer-steps): Add "substitutes-page" step. * gnu/system/install.scm (%installation-services): Add avahi-service-type and enable substitute server discover in guix-service-type. [<name-service-switch>]: Set it to %mdns-host-lookup-nss.
2020-12-06linux-initrd: Add bcachefs support.Tobias Geerinckx-Rice
* gnu/system/linux-initrd.scm (file-system-packages): Add bcachefs-tools/static. (file-system-type-modules): Add an entry for the "bcachefs" type and module.
2020-12-05images: novena: Make boot settings and RTC accessible.Danny Milosavljevic
* gnu/system/images/novena.scm (novena-barebones-os)[initrd-modules]: Add i2c-dev.
2020-12-04image: Fix ISO image production.Mathieu Othacehe
This is a follow-up of 41f27bf8702838f19b1dc5ffee8eec1d4315d4e6. * gnu/system/image.scm (operating-system-for-image): Force "volatile-root?" to true when producing ISO images.
2020-12-03images: novena: Replace agetty-service by term-auto.Danny Milosavljevic
* gnu/system/images/novena.scm (novena-barebones-os)[kernel-arguments]: New field. [services]: Remove field.
2020-12-03images: Add novena-image-type, novena-barebones-raw-image, novena-barebones-os.Danny Milosavljevic
* gnu/system/images/novena.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
2020-11-26mapped-devices: Add 'lvm-device-mapping'.Mikhail Tsykalov
* gnu/system/mapped-devices.scm (lvm-device-mapping, open-lvm-device, close-lvm-device): New variables. * gnu/tests/install.scm (%lvm-separate-home-os, %lvm-separate-home-os-source, %lvm-separate-home-installation-script, %test-lvm-separate-home-os): New variables. * gnu/system/linux-initrd.scm (raw-initrd): Add (srfi srfi-1) to initrd expression. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-11-26mapped-devices: Allow target to be list of strings.Mikhail Tsykalov
* gnu/system/mapped-devices.scm (<mapped-device>): Rename constructor to %mapped-device. [target]: Remove field. [targets]: New field. Adjust users. (mapped-device-compatibility-helper, mapped-device): New macros. (mapped-device-target): New deprecated procedure. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-11-20image: Add pinebook-pro support.Mathieu Othacehe
* gnu/system/images/pinebook-pro.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. * gnu/ci.scm (%guix-system-images): Add pinebook-pro-barebones-raw-image.
2020-11-17system: vm: Remove unused system-disk-image-in-vm.Maxim Cournoyer
* gnu/system/vm.scm (system-disk-image-in-vm): Remove. Reported-by: Ludovic Courtès <ludo@gnu.org>
2020-11-17image: Remove conflicting user-provided EFI file system.Maxim Cournoyer
When the image type is "raw" or derived from it (such as "qcow2"), an ESP partition and file system is already added by the image generator. If a conflicting user-provided EFI file system is provided, it causes the boot to fail, as happens for the lightweight-desktop.tmpl and desktop.tmpl templates under gnu/system/examples. * gnu/system/image.scm (operating-system-for-image): Remove file systems whose mount point is "/boot/efi".
2020-11-12Merge branch 'version-1.2.0'Ludovic Courtès
2020-11-10vm: expression->derivation-in-linux-vm: Run in a UTF-8 locale.Ludovic Courtès
* gnu/system/vm.scm (expression->derivation-in-linux-vm): Add calls to 'setenv' and 'setlocale'.
2020-11-10vm: 'system-qemu-image' forces the use of i386/BIOS GRUB.Ludovic Courtès
Fixes <https://bugs.gnu.org/44511>. Reported by Maxim Cournoyer <maxim.cournoyer@gmail.com>. * gnu/system/vm.scm (system-qemu-image): Add 'bootloader' field to OS.
2020-11-08image: Offload "disk-image" derivations.Ludovic Courtès
This is a followup to 99efa804bd6df5de4760ec5974ed2297f1746366. * gnu/system/image.scm (system-disk-image): Pass #:local-build? #f to 'computed-file'.
2020-11-08image: Offload "disk-image" derivations.Ludovic Courtès
This is a followup to 99efa804bd6df5de4760ec5974ed2297f1746366. * gnu/system/image.scm (system-disk-image): Pass #:local-build? #f to 'computed-file'.
2020-11-07uuid: Add support for bcachefs.Tobias Geerinckx-Rice
* gnu/system/uuid.scm (string->bcachefs-uuid): New exported procedure. (%uuid-parsers, %uuid-printers): Add the ‘bcachefs’ file system type.
2020-11-05services: Add yggdrasil-service-type.raingloom
* gnu/services/networking.scm (yggdrasil-configuration) (yggdrasil-configuration?, yggdrasil-configuration-package) (yggdrasil-configuration-auto-conf, yggdrasil-configuration-log-level) (yggdrasil-configuration-log-to): New procedures. (yggdrasil-service-type): New variable. * doc/guix.texi: Document it. * gnu/system/examples/yggdrasil.tmpl: Provide example. Signed-off-by: Julien Lepiller <julien@lepiller.eu>
2020-11-05vm: system-qemu-image: Fix type error, remove more actual file systems.Ludovic Courtès
* gnu/system/vm.scm (system-qemu-image)[file-systems-to-keep]: Check whether SOURCE is a string before calling 'string-prefix?'. Remove UUIDs and file system labels as well.
2020-11-03image: Allow offloading of "partition.img" and "image.iso" builds.Ludovic Courtès
This builds are extremely I/O-intensive so they'd rather not run on the head node of the build farm. * gnu/system/image.scm (system-disk-image, system-iso9660-image): Pass #:local-build? #f.
2020-11-02system: image: Introduce arm32-raw image type.Mathieu Othacehe
* gnu/system/image.scm (arm32-disk-image, arm32-image-type): New variables. (arm64-disk-image): Inherit from arm32-disk-image. (arm64-image-type): Change name to 'arm64-raw.
2020-10-15install: Deduplicate packages with %base-package sets.Efraim Flashner
* gnu/system.scm (%base-packages-interactive): Add nvi. * gnu/system/install.scm (installation-os)[packages]: Remove parted, gptfdisk, ddrescue, cryptsetup, mdadm, dosfstools, btrfs-progs, f2fs-tools, jfstools, openssh, wireless-tools, iw, wpa-supplicant-minimal, iproute, bash-completion, nvi. Add %base-packages-disk-utilities.
2020-10-14image: Use 'raise' from (srfi srfi-34).Ludovic Courtès
* gnu/system/image.scm: Use (srfi srfi-34) for 'raise'. (lookup-image-type-by-name): Remove extra newline in 'formatted-message' string.
2020-10-13installer: Add Emacs EXWM desktop environment.Jan (janneke) Nieuwenhuizen
Suggested by zenny via IRC. * gnu/installer/services.scm (%system-services): Add emacs, emacs-exwm, emacs-desktop-environment. * etc/release-manifest.scm (%system-packages): Likewise. * gnu/system/examples/lightweight-desktop.tmpl: Likewise. * gnu/tests/install.scm (installation-target-desktop-os-for-gui-tests) [packages]: Likewise * gnu/installer/newt/services.scm (run-desktop-environments-cbt-page): Make one entry taller.
2020-10-11Revert "Revert "install: Pass "modprobe.blacklist=radeon".""Florian Pelz
This reverts commit 73ddcab6075f60ef9b3cd72a35fbf7f5d622b6ef. Blacklisting has become necessary again on my AMD machines, else the installer screen stays black.
2020-10-09system: hurd: Add diffutils, patch, gawk, tar, gzip, bzip2, xz, and lzip.Jan (janneke) Nieuwenhuizen
* gnu/system/hurd.scm (%base-packages/hurd): Add diffutils, patch, gawk, tar, gzip, bzip2, xz, and lzip.
2020-10-09system: hurd: Include 'guile-3.0-latest' in '%base-packages/hurd'.Jan (janneke) Nieuwenhuizen
* gnu/system/hurd.scm (%base-packages/hurd): Change GUILE-3.0 to GUILE-3.0-LATEST.
2020-10-09system: hurd: Add PAM support with shadow and sudo.Jan (janneke) Nieuwenhuizen
* gnu/system.scm (hurd-default-essential-services): Add setuid-program-service-type. * gnu/system/hurd.scm (%base-packages/hurd): Add shadow, sudo. (%setuid-programs/hurd): New variable. (%hurd-default-operating-system)[setuid-program]: Use it. [pam-services, sudoers-file]: Remove overrides; enabling regular defaults. * gnu/system/examples/bare-hurd.tmpl (%hurd-os)[users]: New field. [services]: Do not disable PAM in SSH.
2020-10-06images: Add pine64-barebones-raw-image.Mathieu Othacehe
* gnu/system/images/pine64.scm (pine64-barebones-raw-image): New variable. * gnu/ci.scm (%guix-system-images): Add it.
2020-10-05images: Add pine64 support.Mathieu Othacehe
* gnu/system/images/pine64.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. * gnu/system/image.scm (arm64-disk-image, arm64-image-type): New variables.
2020-10-05bootloader: Fix u-boot installation.Mathieu Othacehe
This is a follow-up of f19cf27c2b9ff92e2c0fd931ef7fde39c376adaa. The bootloader installation must be done on the final disk-image, hence using "disk-image-installer" instead of "installer" callback. * gnu/bootloader/u-boot.scm: Turn all installer callbacks into disk-image-installer callbacks. * gnu/build/bootloader.scm (write-file-on-device): Open the output file with 'no-truncate and 'no-create options. * gnu/system/image.scm (with-imported-modules*): Add (gnu build bootloader) module.
2020-10-02system: image: Add qcow2 image type.Mathieu Othacehe
* gnu/system/image.scm (qcow2-image-type): New variable.
2020-10-01Instantiate nscd in each system container.Jason Conroy
* gnu/system/linux-container.scm (%nscd-container-caches): New variable. (containerized-operating-system): Instantiate nscd-service with smaller caches and add it to the generated operating-system, replacing any nscd-service specified by the caller. * gnu/system/file-systems.scm: (%network-file-mappings): Remove "/var/run/nscd". Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2020-09-30system: image: Add image-type support.Mathieu Othacehe
* gnu/system/image.scm (image-with-os): New macro. Rename the old "image-with-os" procedure to ... (image-with-os*): ... this new procedure, (system-image): adapt according, (raw-image-type, iso-image-type, uncompressed-iso-image-type %image-types): new variables, (lookup-image-type-by-name): new procedure. (find-image): remove it. * gnu/system/images/hurd.scm (hurd-image-type): New variable, use it to define ... (hurd-disk-image): ... this variable, using "os->image" procedure. * gnu/tests/install.scm (run-install): Rename installation-disk-image-file-system-type parameter to installation-image-type, use os->config instead of find-image to compute the image passed to system-image, (%test-iso-image-installer) adapt accordingly, (guided-installation-test): ditto. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2020-09-29images: hurd: Add hurd-barebones-qcow2-image.Mathieu Othacehe
* gnu/system/images/hurd.scm (hurd-barebones-qcow2-image): New variable.
2020-09-29image: Add support for compressed-qcow2 format.Mathieu Othacehe
* gnu/build/image.scm (convert-disk-image): New procedure. (genimage): Remove target argument. * gnu/system/image.scm (system-disk-image): Add support for 'compressed-qcow2 image format. Call "convert-disk-image" to apply image conversions on the final image. Add "qemu-minimal" to the build inputs. (system-image): Also add support for 'compressed-qcow2.
2020-09-19system: image: Rename ISO9660 files.Mathieu Othacehe
* gnu/system/image.scm (system-iso9660-image): Change the default file output name to "image.iso".
2020-09-02install: Factorize cow-store procedure.Mathieu Othacehe
Move the cow-store procedure from the service declaration in (gnu system install) to (gnu build install), so that it can be called from within a different context than Shepherd. * gnu/build/install.scm (mount-cow-store, unmount-cow-store): New procedures. * gnu/system/install.scm (make-cow-store): Remove it, (cow-store-service-type): adapt it accordingly.
2020-09-01Revert "system: image: Do not offload image files."Maxim Cournoyer
This reverts commit 6a9581741e4ee81226aeb2f1c997df76670a6aab, which is obsoleted by the previous commit.
2020-08-31guix: system: Add `--label' option.Julien Lepiller
* guix/scripts/system.scm (%options): Add `--label'. (system-derivation-for-action): Take a #:label key to set volume ID. (perform-action): Take a #:label key. (%default-options): Add default label value. (process-action): Pass label value from command-line to perform-action. * gnu/system/image.scm (image-with-label): New procedure.
2020-08-31vm: Disable caching for writable file system mappings.Ludovic Courtès
Fixes <https://bugs.gnu.org/43062>. Reported by elaexuotee@wilsonb.com. * gnu/system/vm.scm (mapping->file-system)[options]: Disable loose caching when WRITABLE? is true.
2020-08-28system: Remove extra line from 'lightweight-desktop.tmpl'.Ludovic Courtès
This is a followup to c7af96871737ffa0e2be879e200573bc60603c8c. * gnu/system/examples/lightweight-desktop.tmpl: Remove extra 'use-package-modules' line.
2020-08-26system: image: Do not offload image files.Maxim Cournoyer
Image files can be very large (multiple gigabytes), and the process of generating them is primarily I/O bound. As disk access is typically faster than network access, it makes sense build them locally. * gnu/system/image.scm (system-disk-image): Pass the #:local-build? #t parameter to computed-file calls dealing with generating image files. (system-iso9660-image): Likewise.
2020-08-25Remove "guile-zlib" extension when unused.Mathieu Othacehe
This is a follow-up of 755f365b02b42a5d1e8ef3000dadef069553a478. As (zlib) is autoloaded in (gnu build linux-modules), "guile-zlib" is needed as an extension only when it is effectively used. * gnu/installer.scm (installer-program): Remove "guile-zlib" from the extensions. * gnu/machine/ssh.scm (machine-check-initrd-modules): Ditto. * gnu/services.scm (activation-script): Ditto. * gnu/services/base.scm (default-serial-port): Ditto, (agetty-shepherd-service): ditto, (udev-service-type): ditto. * gnu/system/image.scm (gcrypt-sqlite3&co): Ditto. * gnu/system/shadow.scm (account-shepherd-service): Ditto.
2020-08-25linux-libre: Support module compression.Mathieu Othacehe
This commit adds support for GZIP compression for linux-libre kernel modules. The initrd modules are kept uncompressed as the initrd is already compressed as a whole. The linux-libre kernel also supports XZ compression, but as Guix does not have any available bindings for now, and the compression time is far more significant, GZIP seems to be a better option. * gnu/build/linux-modules.scm (modinfo-section-contents): Use 'call-with-gzip-input-port' to read from a module file using '.gz' extension, (strip-extension): new procedure, (dot-ko): adapt to support compression, (ensure-dot-ko): ditto, (file-name->module-name): ditto, (find-module-file): ditto, (load-linux-module*): ditto, (module-name->file-name/guess): ditto, (module-name-lookup): ditto, (write-module-name-database): ditto, (write-module-alias-database): ditto, (write-module-device-database): ditto. * gnu/installer.scm (installer-program): Add "guile-zlib" to the extensions. * gnu/machine/ssh.scm (machine-check-initrd-modules): Ditto. * gnu/services.scm (activation-script): Ditto. * gnu/services/base.scm (default-serial-port): Ditto, (agetty-shepherd-service): ditto, (udev-service-type): ditto. * gnu/system/image.scm (gcrypt-sqlite3&co): Ditto. * gnu/system/linux-initrd.scm (flat-linux-module-directory): Add "guile-zlib" to the extensions and make sure that the initrd only contains uncompressed module files. * gnu/system/shadow.scm (account-shepherd-service): Add "guile-zlib" to the extensions. * guix/profiles.scm (linux-module-database): Ditto.
2020-08-03file-systems: Leave room for extension in serialized specs.Ludovic Courtès
* gnu/system/file-systems.scm (spec->file-system): Ignore extra fields. (file-system->spec): Add comment.
2020-07-31file-system: Add efivarfs support.Mathieu Othacehe
Tools such as efibootmgr rely on the deprecated /sys/firmware/efi/vars API as well as on the new /sys/firmware/efi/efivars API. The latter needs to be mounted. Reported by Keyhenge here: https://lists.gnu.org/archive/html/bug-guix/2020-04/msg00274.html Here is the efivarfs documentation: https://www.kernel.org/doc/Documentation/filesystems/efivarfs.txt. * gnu/system/file-systems.scm (%efivars-file-system): New exported variable, (%base-file-systems): add it. * gnu/system/install.scm (%efivars-file-system): Add it. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2020-07-31file-system: Add mount-may-fail? option.Mathieu Othacehe
* gnu/system/file-systems.scm (<file-system>): Add a mount-may-fail? field. (file-system->spec): adapt accordingly, (spec->file-system): ditto. * gnu/build/file-systems.scm (mount-file-system): If 'system-error is raised and mount-may-fail? is true, ignore it. Otherwise, re-raise the exception. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2020-07-31file-systems: Add %debug-file-system.Mathieu Othacehe
* gnu/system/file-systems.scm (%debug-file-system): New variable, (%base-file-systems): add it.