aboutsummaryrefslogtreecommitdiff
path: root/gnu/system
Commit message (Collapse)AuthorAge
* system: Assert, that user and group names are unique.Leo Prikler2021-01-11
| | | | | | *gnu/system/shadow.scm (find-duplicates): New variable. (assert-unique-account-names, assert-unique-group-names): New variables. (account-activation): Use them here.
* system: image: Fix root offset on rockchip platforms.Mathieu Othacehe2021-01-10
| | | | | | | | | | | Fixes: <https://issues.guix.gnu.org/45584>. * gnu/system/image.scm (arm32-disk-image, arm64-disk-image): Turn into procedures, taking the root partition offset as argument. * gnu/system/images/novena.scm (novena-image-type): Adapt accordingly. * gnu/system/images/pine64.scm (pine64-image-type): Ditto. * gnu/system/images/pinebook-pro.scm (pinebook-pro-image-type): Use a 9MiB offset for the root partition.
* store-copy: 'populate-store' can optionally deduplicate files.Ludovic Courtès2020-12-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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'.
* install: Discover local substitute servers.Mathieu Othacehe2020-12-11
| | | | | | | | | | | | | | | | * 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.
* linux-initrd: Add bcachefs support.Tobias Geerinckx-Rice2020-12-06
| | | | | | | * 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.
* images: novena: Make boot settings and RTC accessible.Danny Milosavljevic2020-12-05
| | | | | * gnu/system/images/novena.scm (novena-barebones-os)[initrd-modules]: Add i2c-dev.
* image: Fix ISO image production.Mathieu Othacehe2020-12-04
| | | | | | | This is a follow-up of 41f27bf8702838f19b1dc5ffee8eec1d4315d4e6. * gnu/system/image.scm (operating-system-for-image): Force "volatile-root?" to true when producing ISO images.
* images: novena: Replace agetty-service by term-auto.Danny Milosavljevic2020-12-03
| | | | | | * gnu/system/images/novena.scm (novena-barebones-os)[kernel-arguments]: New field. [services]: Remove field.
* images: Add novena-image-type, novena-barebones-raw-image, novena-barebones-os.Danny Milosavljevic2020-12-03
| | | | | * gnu/system/images/novena.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
* mapped-devices: Add 'lvm-device-mapping'.Mikhail Tsykalov2020-11-26
| | | | | | | | | | | | | * 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>
* mapped-devices: Allow target to be list of strings.Mikhail Tsykalov2020-11-26
| | | | | | | | | | | * 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>
* image: Add pinebook-pro support.Mathieu Othacehe2020-11-20
| | | | | | * 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.
* system: vm: Remove unused system-disk-image-in-vm.Maxim Cournoyer2020-11-17
| | | | | | * gnu/system/vm.scm (system-disk-image-in-vm): Remove. Reported-by: Ludovic Courtès <ludo@gnu.org>
* image: Remove conflicting user-provided EFI file system.Maxim Cournoyer2020-11-17
| | | | | | | | | | | 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".
* Merge branch 'version-1.2.0'Ludovic Courtès2020-11-12
|\
| * vm: expression->derivation-in-linux-vm: Run in a UTF-8 locale.Ludovic Courtès2020-11-10
| | | | | | | | | | * gnu/system/vm.scm (expression->derivation-in-linux-vm): Add calls to 'setenv' and 'setlocale'.
| * vm: 'system-qemu-image' forces the use of i386/BIOS GRUB.Ludovic Courtès2020-11-10
| | | | | | | | | | | | | | 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.
| * image: Offload "disk-image" derivations.Ludovic Courtès2020-11-08
| | | | | | | | | | | | | | This is a followup to 99efa804bd6df5de4760ec5974ed2297f1746366. * gnu/system/image.scm (system-disk-image): Pass #:local-build? #f to 'computed-file'.
* | image: Offload "disk-image" derivations.Ludovic Courtès2020-11-08
| | | | | | | | | | | | | | This is a followup to 99efa804bd6df5de4760ec5974ed2297f1746366. * gnu/system/image.scm (system-disk-image): Pass #:local-build? #f to 'computed-file'.
* | uuid: Add support for bcachefs.Tobias Geerinckx-Rice2020-11-07
| | | | | | | | | | * gnu/system/uuid.scm (string->bcachefs-uuid): New exported procedure. (%uuid-parsers, %uuid-printers): Add the ‘bcachefs’ file system type.
* | services: Add yggdrasil-service-type.raingloom2020-11-05
|/ | | | | | | | | | | | * 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>
* vm: system-qemu-image: Fix type error, remove more actual file systems.Ludovic Courtès2020-11-05
| | | | | | * 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.
* image: Allow offloading of "partition.img" and "image.iso" builds.Ludovic Courtès2020-11-03
| | | | | | | | 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.
* system: image: Introduce arm32-raw image type.Mathieu Othacehe2020-11-02
| | | | | | * 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.
* install: Deduplicate packages with %base-package sets.Efraim Flashner2020-10-15
| | | | | | | | | * 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.
* image: Use 'raise' from (srfi srfi-34).Ludovic Courtès2020-10-14
| | | | | | * gnu/system/image.scm: Use (srfi srfi-34) for 'raise'. (lookup-image-type-by-name): Remove extra newline in 'formatted-message' string.
* installer: Add Emacs EXWM desktop environment.Jan (janneke) Nieuwenhuizen2020-10-13
| | | | | | | | | | | | | 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.
* Revert "Revert "install: Pass "modprobe.blacklist=radeon".""Florian Pelz2020-10-11
| | | | | | This reverts commit 73ddcab6075f60ef9b3cd72a35fbf7f5d622b6ef. Blacklisting has become necessary again on my AMD machines, else the installer screen stays black.
* system: hurd: Add diffutils, patch, gawk, tar, gzip, bzip2, xz, and lzip.Jan (janneke) Nieuwenhuizen2020-10-09
| | | | | * gnu/system/hurd.scm (%base-packages/hurd): Add diffutils, patch, gawk, tar, gzip, bzip2, xz, and lzip.
* system: hurd: Include 'guile-3.0-latest' in '%base-packages/hurd'.Jan (janneke) Nieuwenhuizen2020-10-09
| | | | | * gnu/system/hurd.scm (%base-packages/hurd): Change GUILE-3.0 to GUILE-3.0-LATEST.
* system: hurd: Add PAM support with shadow and sudo.Jan (janneke) Nieuwenhuizen2020-10-09
| | | | | | | | | | | * 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.
* images: Add pine64-barebones-raw-image.Mathieu Othacehe2020-10-06
| | | | | * gnu/system/images/pine64.scm (pine64-barebones-raw-image): New variable. * gnu/ci.scm (%guix-system-images): Add it.
* images: Add pine64 support.Mathieu Othacehe2020-10-05
| | | | | | * 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.
* bootloader: Fix u-boot installation.Mathieu Othacehe2020-10-05
| | | | | | | | | | | | | 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.
* system: image: Add qcow2 image type.Mathieu Othacehe2020-10-02
| | | | * gnu/system/image.scm (qcow2-image-type): New variable.
* Instantiate nscd in each system container.Jason Conroy2020-10-01
| | | | | | | | | | * 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>
* system: image: Add image-type support.Mathieu Othacehe2020-09-30
| | | | | | | | | | | | | | | | | | | | | * 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>
* images: hurd: Add hurd-barebones-qcow2-image.Mathieu Othacehe2020-09-29
| | | | * gnu/system/images/hurd.scm (hurd-barebones-qcow2-image): New variable.
* image: Add support for compressed-qcow2 format.Mathieu Othacehe2020-09-29
| | | | | | | | | * 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.
* system: image: Rename ISO9660 files.Mathieu Othacehe2020-09-19
| | | | | * gnu/system/image.scm (system-iso9660-image): Change the default file output name to "image.iso".
* install: Factorize cow-store procedure.Mathieu Othacehe2020-09-02
| | | | | | | | | | 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.
* Revert "system: image: Do not offload image files."Maxim Cournoyer2020-09-01
| | | | | This reverts commit 6a9581741e4ee81226aeb2f1c997df76670a6aab, which is obsoleted by the previous commit.
* guix: system: Add `--label' option.Julien Lepiller2020-08-31
| | | | | | | | | * 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.
* vm: Disable caching for writable file system mappings.Ludovic Courtès2020-08-31
| | | | | | | | 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.
* system: Remove extra line from 'lightweight-desktop.tmpl'.Ludovic Courtès2020-08-28
| | | | | | | This is a followup to c7af96871737ffa0e2be879e200573bc60603c8c. * gnu/system/examples/lightweight-desktop.tmpl: Remove extra 'use-package-modules' line.
* system: image: Do not offload image files.Maxim Cournoyer2020-08-26
| | | | | | | | | | 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.
* Remove "guile-zlib" extension when unused.Mathieu Othacehe2020-08-25
| | | | | | | | | | | | | | | | 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.
* linux-libre: Support module compression.Mathieu Othacehe2020-08-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* file-systems: Leave room for extension in serialized specs.Ludovic Courtès2020-08-03
| | | | | * gnu/system/file-systems.scm (spec->file-system): Ignore extra fields. (file-system->spec): Add comment.
* file-system: Add efivarfs support.Mathieu Othacehe2020-07-31
| | | | | | | | | | | | | | | | | | 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>