aboutsummaryrefslogtreecommitdiff
path: root/gnu/system
Commit message (Collapse)AuthorAge
* pack: Streamline how files are included in tarballs.Maxim Cournoyer2021-07-18
| | | | | | | | | | | | | | | | | | | | | | Thanks to Guillem Jover <guillem@debian.org> on the OFTC's #debian-dpkg channel for helping with troubleshooting. Letting GNU Tar recursively walk the complete files hierarchy side-steps the risks associated with providing a list of file names: 1. Duplicated files in the archive (recorded as hard links by GNU Tar) 2. Missing parent directories. The above would cause dpkg to malfunction, for example by aborting early and skipping triggers when there were missing parent directories. * guix/scripts/pack.scm (self-contained-tarball/builder): Do not call POPULATE-SINGLE-PROFILE-DIRECTORY, which creates extraneous files such as /root. Instead, call POPULATE-STORE and INSTALL-DATABASE-AND-GC-ROOTS individually to more precisely generate the file system. Replace the list of files by the current directory, "." and streamline the way options are passed. * gnu/system/file-systems.scm (reduce-directories): Remove procedure. * tests/file-systems.scm ("reduce-directories"): Remove test.
* gnu: %guile-3.0-static-stripped: Rename to %guile-static-stripped.Efraim Flashner2021-07-08
| | | | | | | | | | * gnu/packages/make-bootstrap.scm (%guile-3.0-static-stripped): Rename to %guile-static-stripped. (%guile-bootstrap-tarball): Adjust accordingly. * gnu/system/linux-initrd.scm (expression->initrd): Use %guile-static-stripped as default guile. * doc/guix.texi (initial RAM disk)[expression->initrd]: Adjust documentation accordingly.
* file-systems: Ensure compared file names are both absolute or relative.Maxim Cournoyer2021-07-03
| | | | | | | * gnu/system/file-systems.scm (file-prefix?): Return #f unless both file names are absolute or relative. Reported-by: Ludovic Courtès <ludo@gnu.org>
* pack: Prevent duplicate files in tar archives.Maxim Cournoyer2021-06-29
| | | | | | | | | | | | | | Tar translate duplicate files in the archive into hard links. These can cause problems, as not every tool support them; for example dpkg doesn't. * gnu/system/file-systems.scm (reduce-directories): New procedure. (file-prefix?): Lift the restriction on file prefix. The procedure can be useful for comparing relative file names. Adjust doc. (file-name-depth): New procedure, extracted from ... (btrfs-store-subvolume-file-name): ... here. * guix/scripts/pack.scm (self-contained-tarball/builder): Use reduce-directories. * tests/file-systems.scm ("reduce-directories"): New test.
* vm: Update deprecated QEMU option syntax.Tobias Geerinckx-Rice2021-06-25
| | | | | | | | Fixes: warning: short-form boolean option 'readonly' deprecated Please use readonly=on instead * gnu/system/vm.scm (common-qemu-options): Use it instead.
* Revert "vm: Autoload (gnu build vm)."Tobias Geerinckx-Rice2021-05-18
| | | | | This reverts commit a67c00f4f7ee0a70fce14a7e1907cce332c85813 in an attempt to fix <http://issues.guix.gnu.org/48496>.
* vm: Remove unused imports.Ludovic Courtès2021-05-17
| | | | * gnu/system/vm.scm (gnu): Remove unused imports.
* vm: Autoload (gnu build vm).Ludovic Courtès2021-05-17
| | | | * gnu/system/vm.scm: Autoload (gnu build vm), which was pulling in (sqlite3).
* system: vm-image.tmpl: Add a crutch to allow refreshing the resolution.Maxim Cournoyer2021-05-10
| | | | | | | | | | | Inspired by https://github.com/jollheef/appvm/commit/1270b2e209bc002e69bbe6351ad5b04b7facfcc8. The price to pay is about 5% of a CPU core usage in the guest in the worst scenario. * gnu/system/examples/vm-image.tmpl (auto-update-resolution-crutch): New mcron job. [services]: Extend the mcron-service with it.
* gnu: system: Add SPICE capability to the VM image.Maxim Cournoyer2021-05-06
| | | | | | * gnu/system/examples/vm-image.tmpl (services) [spice-vdagent-service-type]: Add service. [slim-service-type] <xorg-configuration>: Add the xf86-video-qxl module.
* locale: Remove glibc 2.29 from '%default-locale-libcs'.Ludovic Courtès2021-05-04
| | | | | | | | | | | Having 2.29 is most likely no longer justified. Removing it reduces the closure size returned by: guix size $(guix system build gnu/system/install.scm) from 1.6G to 1.5G. * gnu/system/locale.scm (%default-locale-libcs): Remove GLIBC-2.29.
* system: vm: Add a memory-size argument to system-docker-image.Mathieu Othacehe2021-04-12
| | | | | * gnu/system/vm.scm (system-docker-image): Add a memory-size argument and pass it to expression->derivation-in-linux-vm.
* system: vm: Set a larger value for the msize option of the 9p file system.Maxim Cournoyer2021-04-08
| | | | | | | | | | Fixes <https://issues.guix.gnu.org/47225>. * gnu/system/vm.scm (%default-msize-value): New variable. (%linux-vm-file-systems): Use it as the value of the msize option. (mapping->file-system): Likewise. Reported-by: Leo Famulari <leo@famulari.name>
* system: vm: Use Guile 3.0 in Docker images.Ludovic Courtès2021-02-25
| | | | * gnu/system/vm.scm (system-docker-image): Use GUILE-3.0.
* system: hurd: Have the static networking provision 'networking.Christopher Baines2021-02-22
| | | | | | | | | Some services require networking, I'm looking at the Guix Build Coordinator agent. Networking seems to work in the childhurd VM, so I think this change makes sense. * gnu/system/hurd.scm (%base-services/hurd): Add 'networking to the provision parameter for the static-networking service.
* image: Add rock64 support.Marius Bakke2021-02-21
| | | | | * gnu/system/images/rock64.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Adjust accordingly.
* scripts: system: Accept <image> records as input.Mathieu Othacehe2021-02-17
| | | | | | | | | | | | | | * guix/scripts/system.scm (system-derivation-for-action): Replace "os" argument by "image". Remove "image-size", "image-type", "label" and "volatile-root?" arguments. (perform-action): Ditto. (process-action): Construct the <image> record and pass it to "perform-action" procedure. * tests/guix-system.sh: Adapt accordingly. * gnu/system/images/hurd.scm: Return the default image. * gnu/system/images/novena.scm: Ditto. * gnu/system/images/pine64.scm: Ditto. * gnu/system/images/pinebook-pro.scm Ditto.
* scripts: system: Remove 'vm-image' command.Mathieu Othacehe2021-02-17
| | | | | | | | | | | | | | | Remove the 'vm-image' command that has been superseded by the 'image' command. * gnu/system/vm.scm (system-qemu-image): Remove it. * guix/scripts/system.scm (system-derivation-for-action): Mark 'vm-image' command as deprecated and use the image API to produce the VM image. (perform-action, show-help): Adapt accordingly. * tests/guix-system.sh: Ditto. * doc/guix.texi (Invoking guix system, Running Guix in a VM): Ditto. * etc/completion/fish/guix.fish: Ditto. * etc/completion/zsh/_guix: Ditto.
* images: pinebook-pro: Fix default serial port.Caliph Nomble2021-01-20
| | | | | * gnu/system/images/pinebook-pro.scm (pinebook-pro-barebones-os)[services]: Start agetty on ttyS2 instead of ttyS0.
* services: Do not warn, when duplicate users are eq?.Leo Prikler2021-01-20
| | | | | | * gnu/system/shadow.scm (account-activation): Delete duplicate (eq?) users and groups before transforming them to specs and asserting, that names are unique.
* shadow: End duplicate warnings with new lines.Leo Prikler2021-01-20
| | | | | | | | | The change from formatted message causes the line to no longer automatically be ended. This will need to be reverted once again, when duplicate names become hard errors. * gnu/system/shadow.scm (assert-unique-account-names) (assert-unique-group-names): End format strings in ~%.
* system: Rename 'disk-image' command 'image'.Mathieu Othacehe2021-01-19
| | | | | | | | | | | | | * guix/scripts/system.scm (system-derivation-for-action): Rename 'disk-image' command 'image'. Warn when using the now deprecated 'disk-image' command. (show-help): Adapt accordingly. (guix-system): Ditto. * tests/guix-system.sh: Ditto. * gnu/system/examples/bare-hurd.tmpl: Ditto. * doc/guix.texi (Building the Installation Image, Building the Installation Image for ARM Boards, Invoking guix pack, Invoking guix system): Adapt documentation.
* image: Rename "raw" image-type to "efi-raw".Mathieu Othacehe2021-01-17
| | | | | | | | * gnu/system/image.scm (raw-image-type): Rename to "efi-raw-image-type". * guix/scripts/system.scm (%default-options): Adapt accordingly. * doc/guix.texi: Ditto. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
* services: shepherd: 'shepherd-service-type' requires documentation.Ludovic Courtès2021-01-13
| | | | | | | | | | | | | | | | | * gnu/services/shepherd.scm (shepherd-service-type): Require a 'description' form. * gnu/services/base.scm (root-file-system-service-type) (rngd-service-type, host-name-service-type): (virtual-terminal-service-type, console-keymap-service-type) (syslog-service-type, swap-service-type) (kmscon-service-type): Add description. * gnu/services/networking.scm (dhcp-client-service-type): Likewise. * gnu/system/install.scm (cow-store-service-type): Likewise. * gnu/system/linux-container.scm (dummy-networking-service-type): Likewise. * gnu/system/mapped-devices.scm (device-mapping-service-type): Likewise. * tests/guix-system.sh: Likewise.
* Reapply "system: Assert, that user and group names are unique."Leo Prikler2021-01-13
| | | | | * gnu/system/shadow.scm (assert-unique-account-names) (assert-unique-group-names): Demote formatted-message to warning.
* Revert "system: Assert, that user and group names are unique."Jonathan Brielmaier2021-01-12
| | | | | | | | This reverts commit a3002104a84c60556b6616d100cb98019e48759d, which breaks certain system configurations like: $ guix system reconfigure config.scm guix system: error: the following groups appear more than once: lp
* 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.