summaryrefslogtreecommitdiff
path: root/gnu/system
AgeCommit message (Collapse)Author
2025-10-01vm: Let ‘%immutable-store’ through.Ludovic Courtès
Fixes guix/guix#1926. ‘guix system vm’ would so far produce a system without the ‘file-system-/gnu/store’ Shepherd service, which is normally provided by ‘%immutable-store’. This would lead to an error for OS configs that explicitly require ‘file-system-/gnu/store’, such as those that use ‘qemu-binfmt-service-type’. * gnu/system/vm.scm (virtualized-operating-system)[user-file-systems]: Remove filtering of TARGET = (%store-prefix). Reported-by: Ashvith Shetty <ashvithshetty0010@zohomail.in> Change-Id: I656df6c3f067e47cd7acd03af437fe757db286d5
2025-09-29gnu: linux-initrd: Fix f2fs module dependenciesDavid Arroyo
The linux kernel has renamed the crc32_generic module to crc32_cryptoapi. This fixes the f2fs-root-os system test. * gnu/system/linux-initrd.scm (file-system-type-modules): update module name Change-Id: I73a135e453434e726ea9d3ff99ab1a83b4810a10 Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2025-09-21system: bare-bones: Remove Cuirass service.Ludovic Courtès
This reverts changes from d72eef9c918144bd892522722be71321d4a5ad97 that were inadvertently committed. * gnu/system/examples/bare-bones.tmpl: Remove Cuirass. Change-Id: I29253dce841479bbddef00756a0f6bd57694dfae
2025-09-18images: Add rock-4c-plus support.Denis 'GNUtoo' Carikli
* gnu/system/images/rock-4c-plus.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. Change-Id: I156f552a26c9b2ca9f46353e3e2f3bf50bd88551 Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> Signed-off-by: Danny Milosavljevic <dannym@friendly-machines.com>
2025-09-18system: Add u-boot-rock-4c-plus-rk3399.Denis 'GNUtoo' Carikli
* gnu/packages/bootloaders.scm (u-boot-rock-4c-plus-rk3399): New variable. * gnu/bootloader/u-boot.scm (u-boot-rock-4c-plus-rk3399-bootloader): New exported variable. * gnu/system/install.scm (rock-4c-plus-installation-os): New exported variable. Change-Id: I37025b248178311ccf8246cb0e02ed9399f9c6ac Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> Signed-off-by: Danny Milosavljevic <dannym@friendly-machines.com>
2025-09-18Reapply "Update Maxim's email address."Maxim Cournoyer
This reverts commit a7db92d9b389cbe565395523882c34c6eff2c21a, this time with the more careful command, to avoid a world rebuild: grep -rl --exclude-dir=build --exclude-dir=patches --exclude=ld-wrapper.in \ --exclude=sitecustomize.py --exclude=guix-emacs.el maxim.cournoyer@gmail.com | xargs sed -i 's/maxim.cournoyer@gmail.com/maxim@guixotic.coop/g' Change-Id: I0871f5cf9ace79e34e78e24154d0da6ea95a3a91
2025-09-18Revert "Update Maxim's email address."Maxim Cournoyer
This reverts commit d0d87a744d724b7e7d5ac013c586039652087bb3. Oops! This caused a world rebuild. Change-Id: I25fff644b2b61d0ee93d69b457b04c72b5b74d15
2025-09-18Update Maxim's email address.Maxim Cournoyer
The change was automated via: git grep -l maxim.cournoyer@gmail.com | xargs sed -i 's/maxim.cournoyer@gmail.com/maxim@guixotic.coop/g' * .mailmap: New entry. Change-Id: Iaa88b1e51c94159c49138fb43910badb990eb169
2025-09-17file-systems: Use ‘no-suid’ and ’no-dev’ for /tmp in the live system.Ludovic Courtès
* gnu/system/file-systems.scm (%base-live-file-systems): Add ‘flags’. Change-Id: I873d9cddd4d7c495d7e2daad0d8528c085a96841
2025-09-05services: cuirass: Add more configuration fields.Ludovic Courtès
* gnu/services/cuirass.scm (<cuirass-configuration>)[parallel-evaluations] [evaluation-ttl, web-threads]: New fields. (cuirass-shepherd-service): Honor them. * doc/guix.texi (Continuous Integration): Document them. Change-Id: I33485b978d2a37ee93230b1d425731e6cb3b80e4
2025-08-30system: image: hurd: Fix typo.Yelninei
* gnu/system/images/hurd.scm: Fix typo in exported variable. Change-Id: I4f7ef293978953aa494c3db4cf66a1f5f89037b4 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-08-17gnu: nss-certs: Relocate to (gnu packages nss).Maxim Cournoyer
This is made so that the source can be shared without introducing module circular dependencies. * gnu/packages/certs.scm (nss-certs) (nss-certs-for-test): Move to... * gnu/packages/nss.scm: ... here. Adjust the module imports via: git grep -l '(gnu packages certs)' | xargs sed 's/(gnu packages certs)/(gnu packages nss)/' -i Change-Id: I56d7bc52ddcdffbced8a162e8db8ea5071b0cb0f
2025-07-24gnu: system: Replace deprecated dhcp client service.Gabriel Wicki
* gnu/system/examples/asus-c201.tmpl, gnu/system/examples/bare-bones.tmpl, gnu/system/examples/beaglebone-black.tmpl, gnu/system/examples/raspberry-pi-64-nfs-root.tmpl, gnu/system/examples/raspberry-pi-64.tmpl, gnu/system/examples/vm-image.tmpl gnu/system/images/orangepi-r1-plus-lts-rk3328.scm, gnu/system/images/pine64.scm, gnu/system/images/rock64.scm, gnu/system/images/unmatched.scm, gnu/system/images/visionfive2.scm, gnu/system/linux-container.scm (services): Replace dhcp-client-service-type with its replacement dhcpcd-service-type. Change-Id: Ib1f31d0a95dfa8ee64cf8c10d617ee53c8637b26
2025-07-18system: examples: devel-hurd64: Fix typo.Janneke Nieuwenhuizen
Suggested by yelninei via IRC. * gnu/system/examples/devel-hurd.tmpl: Fix typo in comment. Change-Id: I4256f530bda30a8792c7dcce3f3bf21780dce6ca
2025-07-18locale: Upgrade ‘%default-locale-libcs’.Ludovic Courtès
This matches the libc users will usually be upgrading from. * gnu/system/locale.scm (%default-locale-libcs): Replace ‘glibc-2.35’ with ‘glibc-2.39’. Change-Id: I21c291054cd0948ced2f17e951e97f6db7116688
2025-07-18mapped-devices: luks: Adjust to support extra arguments.Ludovic Courtès
Fixes <https://issues.guix.gnu.org/70826>. When using ‘luks-device-mapping-with-options’, procedures such as ‘operating-system-boot-mapped-devices’ would fail to identify LUKS mapped devices because they would check whether the mapped device type is ‘eq?’ to ‘luks-device-mapping’. This addresses that by ensuring mapped devices are always of the ‘luks-device-mapping’ type, even when different options are used. * gnu/system/mapped-devices.scm (close-luks-device): Add #:rest. (luks-device-mapping-with-options): Deprecate. * gnu/tests/install.scm (%encrypted-home-os-key-file): Update accordingly. * doc/guix.texi (Mapped Devices): Document use of the ‘arguments’ field of ‘luks-device-mapping’. Remove ‘luks-device-mapping-with-options’ documentation. (Bootloader Configuration): Update example with key file in extra initrd. Change-Id: I5442908cb8ef4e3891dbb053cccf5e42b895486f Reported-by: Tadhg McDonald-Jensen <tadhgmister@gmail.com>
2025-07-18mapped-devices: Add ‘arguments’ field.Ludovic Courtès
Fixes <https://issues.guix.gnu.org/70826>. This allows users to specify extra arguments specific to the underlying mapped device type. * gnu/system/mapped-devices.scm (<mapped-device>)[arguments]: New field. (device-mapping-service-type): Honor it. * guix/scripts/system.scm (check-mapped-devices): Likewise. * gnu/system/linux-initrd.scm (raw-initrd): Likewise. * doc/guix.texi (Mapped Devices): Document it. Reported-by: 45mg <45mg.writes@gmail.com> Change-Id: Idef5a3e68535c412f13bae9a92c81c49053d4f4a
2025-07-17system: examples: devel-hurd64: Remove new Linux-specific dependency.Janneke Nieuwenhuizen
* gnu/system/examples/devel-hurd.tmpl (guix-packages): Also remove slirp4netns; it is a Linux-specific dependency that does not build for the Hurd. Change-Id: I5bca0f44b32d09dd4baa86a6d47d33133a4339c6
2025-06-28gnu: Add %dummy-linux-kernel-for-container.Hilton Chain
* gnu/packages/linux.scm (%dummy-linux-kernel-for-container): New variable. * gnu/system/linux-container.scm (containerized-operating-system): Use it. Change-Id: Ica49a0cd0b8ae4a78ba5fca879ae73f94e64474a
2025-06-27system: skeleton-directory: Create parent directory for target.Hilton Chain
This allows specifying the following skeleton, for example: --8<---------------cut here---------------start------------->8--- `((".config/test.txt" ,[...]) --8<---------------cut here---------------end--------------->8--- * gnu/system/shadow.scm (skeleton-directory): Create parent directory for target. Change-Id: I49649000bd6cdab9060f057b47a5122b17027f10
2025-06-20system: Add zstd to ‘%base-packages/hurd’.Yelninei
Followup to 3f33cb031475c1f21fad357249e49a0cfe4b78eb. * gnu/system/hurd.scm (%base-packages/hurd): Add ‘zstd’. Change-Id: I101ae815b31b1e4f0aae6222fcf2271e8e0043b1 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-06-12system: Adjust return value of bashrc.Mazin AlHaddad
Fixes a regression introduced in c743d646ee9104aa14d066cdf6657a0fac82ebea. Without this, the fish shell integration is broken, and PATH does not include ~/.config/guix/current/bin. * gnu/system/shadow.scm (%default-bashrc): Fix return value. Change-Id: I54170caeef7ae541a4901743fcdcbfb353fa09d4 Signed-off-by: Hilton Chain <hako@ultrarare.space> Modified-by: Hilton Chain <hako@ultrarare.space>
2025-06-04linux-container: ‘containerized-operating-system’ provides ↵Ludovic Courtès
‘loopback’ service. Fixes #420. Previously, in systems produced by ‘guix system container’, the ‘loopback’ Shepherd service would fail to start with EEXIST, because the “lo” interface already exists in the container. This commit provides a fake ‘loopback’ Shepherd service that does nothing. * gnu/system/linux-container.scm (dummy-networking-service-type): Change to honor its configuration value. (containerized-operating-system)[services-to-drop]: Add ‘static-networking-service-type’ in the non-‘shared-network?’ case. [services-to-add]: Add ‘dummy-networking-service-type’ for loopback in the non-‘shared-network?’ case. Reported-by: Antonio Carlos Padoan Junior <acpadoanjr@yahoo.com.br> Change-Id: I326b5f3b5e08f67b6613c186497c44b1e887b02e
2025-06-04install: Adjust for (package-source guix) not being a <channel>.Ludovic Courtès
Fixes guix/guix#422. * gnu/system/install.scm (%installation-services)[guix-package-commit]: New procedure. <guix-configuration>: Use it instead of ‘channel-commit’. Change-Id: I6ed5bc3f21a375e639fabfcbcdaf70b6347d1c5c
2025-05-26system: Factorize bashrc default configuration.Maxim Cournoyer
This factorizes out the remaining bashrc bits from /etc/skel/.bashrc to a the template used for both /etc/bashrc on Guix System and ~/.bashrc for home-bash-service-type. Rationale: The use of /etc/skel introduce state: the file is only copied originally when the user account is created, and never (automatically) refreshed again. * gnu/system.scm (operating-system-etc-service): <profile>: Guard against souring /etc/bashrc in non-interactive, SSH case. <bashrc>: Use %default-bashrc, having migrated the remaining definitions to... * gnu/system/shadow.scm (%default-bashrc): ... here. Factorize aliases to... * gnu/services.scm (%default-bash-aliases): ... here. (%default-bashrc-d-aliases): New variable. (%default-etc-bashrc-d-files): Include it in the default configuration. * gnu/services/base.scm (%base-services): Register etc-bashrc-d-service-type. * gnu/home/services/shells.scm (add-bash-configuration): Do not set PS1, now part of %default-bashrc. (home-bash-configuration) [guix-defaults?]: Update doc. [aliases]: Set %default-bash-aliases as the default value. Update doc. * doc/guix.texi (Shells Home Services): Update documentation. (Service Reference): Update example. Change-Id: I340c614983a78fd20a9c4a9705e7fc542ae9b513
2025-05-26gnu: bash: Define the SYS_BASHRC macro.Maxim Cournoyer
This causes Bash to treat /etc/bashrc as a startup file, removing the need to source /etc/bashrc from ~/.bashrc. * gnu/packages/bash.scm (bash-fixed): New package, with added SYS_BASHRC define. (bash) [replacement]: Use it. * gnu/system/shadow.scm (%default-bashrc): Do not source /etc/bashrc, now done implicitly. Change-Id: I5b0afd7d81653ef19c482e5501efdf7e50ef37c0
2025-05-24system: hurd: Use the regular gnumach as default kernel.Yelninei
* gnu/system/hurd.scm (%hurd-default-operating-system-kernel, %hurd64-default-operating-system-kernel): Set to gnumach. Change-Id: I7d5515c95e2994e2f0c4ae3a43afe4e6575a53ed
2025-05-23maint: Change main repository URL to git.guix.gnu.org.Ludovic Courtès
Throughout, replace “https://git.savannah.gnu.org/git/guix.git” by “https://git.guix.gnu.org/guix.git”. Change-Id: Ieb82464f92a806b85c79e629f952e68c39323740
2025-05-14system: Add sgx group to %base-groups.Maxim Cournoyer
* gnu/system/shadow.scm (%base-groups): Add 'sgx' group. Fixes: <https://issues.guix.gnu.org/70278> Change-Id: I4f9e3c7751ac11f0c7a4283390223778511494f8
2025-05-12linux-container: Do not attempt to lock mounts for ‘guix system container’.Ludovic Courtès
Fixes <https://issues.guix.gnu.org/78356>. * gnu/system/linux-container.scm (container-script): Pass #:lock-mounts? #f to ‘call-with-container’. Reported-by: Rutherther <rutherther@ditigal.xyz> Change-Id: Ie670868147f32baf2c2a94c9c7b1636bc84d0a0a
2025-05-06install: Do not leak local checkout URL.Ludovic Courtès
Fixes <https://issues.guix.gnu.org/67707>. Previously ‘guix describe’ in the installation image would show the URL of the local checkout that was used to build the image. It now shows the default URL. * gnu/system/install.scm (%installation-services): Change channel of ‘guix’ package to inherit from ‘%default-guix-channel’. Change-Id: If848b5a6166904e982e0f9a0780f3e3f53bdfc28
2025-05-05linux-container: Support having a read-only root file system.Ludovic Courtès
Until now, the read-only file system set up by ‘call-with-container’ would always be writable. With this change, it can be made read-only. With this patch, only ‘least-authority-wrapper’ switches to a read-only root file system. * gnu/build/linux-container.scm (remount-read-only): New procedure. (mount-file-systems): Add #:writable-root? and #:populate-file-system and honor them. (run-container): Likewise. (call-with-container): Likewise. * gnu/system/linux-container.scm (container-script): Pass #:writable-root? to ‘call-with-container’. (eval/container): Add #:populate-file-system and #:writable-root? and honor them. * guix/scripts/environment.scm (launch-environment/container): Pass #:writable-root? to ‘call-with-container’. * guix/scripts/home.scm (spawn-home-container): Likewise. * tests/containers.scm ("call-with-container, mnt namespace, read-only root") ("call-with-container, mnt namespace, writable root"): New tests. Change-Id: I603e2fd08851338b737bb16c8af3f765e2538906
2025-05-05linux-container: Add #:mounts to ‘eval/container’.Ludovic Courtès
* gnu/system/linux-container.scm (eval/container): Add #:mounts parameter and honor it. Change-Id: I1d5970f53a3d67db93e937e392f9bf36e75d1573
2025-04-27vm: Account for an upstream change in the name of the Cirrus kernel module.Leo Famulari
* gnu/system/vm.scm (virtualized-operating-system): Choose the module name based on the kernel version Change-Id: I77d70fa44a8d5d2412ae0aaa645fa67146b76432
2025-04-20services: account: Create /var/guix/profiles/per-user/$USER.Ludovic Courtès
* gnu/system/shadow.scm (account-shepherd-service): Create /var/guix/profiles/per-user/$USER in ‘user-homes’ service. Change-Id: I22e66e8a34d63686df9bae64c68df65c8889e72a
2025-04-10gnu: Fix guix system vm --share argument error.Feng Shu
* gnu/system/vm.scm (common-qemu-options): Fix guix system vm --share argument error. Change-Id: I4182e2dbe1b54e6eec2fb6ca53f9345f6d396f14 Signed-off-by: Danny Milosavljevic <dannym@friendly-machines.com>
2025-04-08images: visionfive2: Add support for booting from nvme.Zheng Junjie
* gnu/system/images/visionfive2.scm (visionfive2-barebones-os): [initrd-modules]: Add mmc_block, clk-starfive-jh7110-aon, clk-starfive-jh7110-stg, phy-jh7110-dphy-tx, pcie_starfive and nvme. Change-Id: I1d7ced9bad7e94045ab1caa2315871cd56ca50f4
2025-04-08linux-initrd: Add mmc_block.Zheng Junjie
This module is required when booting from MMC block device. * gnu/system/linux-initrd.scm (default-initrd-modules): Add mmc_block. Change-Id: I91474a62e9d7b5be07e89f657fd59d37d061b127
2025-03-22mapped-devices/luks: Add support for --allow-discards.Sören Tempel
* gnu/system/mapped-devices.scm (open-luks-device): Support opening LUKS devices with the --allow-discards option. * gnu/system/mapped-devices.scm (luks-device-mapping-with-options): Pass through the allow-discards? keyword argument. * doc/guix.texi (Mapped Devices): Update documentation for the luks-device-mapping-with-options procedure. Co-authored-by: Sisiutl <sisiutl@egregore.fun> Modified-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Change-Id: Iff82d7d548486f028d19f6aa35dd30ca194f57cc
2025-03-10install: Use ‘shepherd-system-log-service-type’.Ludovic Courtès
This is a followup to d0510dcd824e1b3fda62a8841e792581d7b8de8d, which wrongfully assumed that this was already the case. * gnu/system/install.scm (%installation-services): Replace ‘syslog-service-type’ by ‘shepherd-system-log-service-type’. Change-Id: I349454b8d005c67d2c6d6b5475f74d16c9006006
2025-03-05vm: Export ‘file-system->mount-tag’ and ‘common-qemu-options’.Ludovic Courtès
* gnu/system/vm.scm (file-system->mount-tag, common-qemu-options): Export. Change-Id: I7228e5c02f07f8c8633a64c86d9c81aa3cb2e8b7
2025-03-05vm: ‘common-qemu-options’ splits command-line tokens.Ludovic Courtès
The result returned so far by ‘common-qemu-options’ assumed that it would be passed to a shell. This is the case when using ‘system-qemu-image/shared-store-script’ but possibly not in other cases. * gnu/system/vm.scm (common-qemu-options): Add #:image-format. [virtfs-option]: Return a list of strings instead of a single "-virtfs xyz" string. Update caller to use ‘append-map’. Separate "-drive" string. Change-Id: Ib07c27e2c4b2d222d7db2c612bb045d330bc7f68
2025-03-05Revert "file-systems: %base-file-systems: Add tmpfs /run."Hilton Chain
This reverts commit e88018be70ffb8ea35819a4c95d44ec20868ca59. Since this change breaks current dbus-service-type, it would be better to wait https://issues.guix.gnu.org/73494 finished.
2025-03-05file-systems: %base-file-systems: Add tmpfs /run.Hilton Chain
* gnu/system/file-systems (%runtime-variable-data): New variable. (%base-file-systems): Add it. * doc/guix.texi (File Systems): Document it. * gnu/services.scm (cleanup-gexp): Adjust accordingly. Change-Id: I3a95e49d396fbb2577026aefc247cfe996c5f267 Modified-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-02-25system: default-skeleton-home-config: Include %base-home-services.Florian Pelz
* gnu/system/shadow.scm (%default-skeleton-home-config): Follow the news entry’s instructions to add %base-home-services. Fixes: <https://issues.guix.gnu.org/75897> Change-Id: Ieef976f9375791502e6156a978a032fbd4c2324d
2025-02-19gnu: Fix some misspellings.Efraim Flashner
Change-Id: I316652aff7418af4b8e83bea24638b1513f8aa97
2025-02-17gnu: guix-configuration: Add a chroot? parameter.Andreas Enge
The parameter should take the values #t, #f or 'default. In a container environment, 'default amounts to #f, otherwise it amounts to #t. * gnu/services/base.scm (guix-configuration)<chroot?>: New field. (guix-shepherd-service): If chroot? is #f, add "--disable-chroot". If it is #t or 'default, do nothing. * gnu/system/linux-container.scm (containerized-operating-system): If chroot? is 'default, replace it by #f. * doc/guix.texi: Document the parameter. Change-Id: I8b9c3f46ad8650fa6ed4acee947b4ae5d002d03d
2025-02-13build: marionette: Make it possible to reboot VM during tests.Maxim Cournoyer
* gnu/build/marionette.scm (make-marionette): Add 'reconnect=1' socket parameter. * gnu/system/vm.scm (common-qemu-options): Remove '-no-reboot' option. Change-Id: I5e100543ddddba0aea3ebe4e2f5cb8b0261c0d73
2025-02-13system/vm: Fix virtual-machine bug.Maxim Cournoyer
The virtual-machine syntax would not accept a single operating-system field, which was puzzling. * gnu/system/vm.scm (virtual-machine): Add a pattern matching a single literal 'operating-system' field and value. Change-Id: If207fd71df3a3f763b2e63229eafa82f63e80773
2025-01-01gnu: pinebook-pro-image-type: augment partition offset.Yarl Baudig
* gnu/system/images/pinebook-pro.scm: augment partition offset to make room for the bootloader. Change-Id: I91a3758243a13960165d40b94efe017e6e059a22 Signed-off-by: Danny Milosavljevic <dannym@friendly-machines.com>