summaryrefslogtreecommitdiff
path: root/gnu/system
AgeCommit message (Collapse)AuthorFilesLines
3 daysdoc: Move Commentary above module definition.Théo Tyburn15-113/+111
Merges: https://codeberg.org/guix/guix/pulls/9052 Reviewed-by: Ludovic Courtès <ludo@gnu.org> Reviewed-by: Maxim Cournoyer <maxim@guixotic.coop> Signed-off-by: Nguyễn Gia Phong <cnx@loang.net>
7 daysgnu: linux: Use package properties to modularize initrd build.Sergio Pastor Pérez1-31/+16
* doc/guix.texi (operating-system Reference): Document initrd-modules change. (Initial RAM Disk): Inform about deprecation of '%base-initrd-modules' and document 'base-initrd-modules'. * gnu/packages/linux.scm (make-linux*): New argument 'produced-modules'. Handle GEXP in 'defconfig' arguments. (virtio-modules, default-linux-libre-initrd-modules): New variable. (make-linux-libre*): Adjust to instruct 'make-linux*' which modules a Debian configuration will produce. * gnu/system.scm (<operating-system>): Compute default operating systems initrd modules with 'base-initrd-modules'. * gnu/system/linux-initrd.scm (default-initrd-modules): Remove in favor of 'base-initrd-modules' which takes a mandatory kernel argument from which to extract the initrd-modules from the package properties. (base-initrd-modules): New procedure. (%base-initrd-modules): Deprecate in favor of 'base-initrd-modules'.
8 dayssystem: Add hurd-login-service to %base-services/hurd.Yelninei1-1/+2
* gnu/system/hurd.scm (%base-services/hurd): Add hurd-login-service. Merges: https://codeberg.org/guix/guix/pulls/10548 Signed-off-by: Nguyễn Gia Phong <cnx@loang.net>
10 daysimages: wsl2: Make the dummy bootloader configuration lowerable.Dig Gashinsky1-1/+3
"guix system reconfigure" lowers the bootloader configuration and then calls 'derivation->output-path' on the result. A 'plain-file' lowers to a store file name rather than to a derivation, so reconfiguring a WSL2 system fails with "Wrong type argument in position 1 (expecting struct)". Use 'computed-file', which lowers to a derivation. * gnu/system/images/wsl2.scm (dummy-bootloader) [configuration-file-generator]: Return a 'computed-file' instead of a 'plain-file'. Merges: https://codeberg.org/guix/guix/pulls/10514 Reviewed-by: gemmaro <gemmaro.dev@gmail.com> Signed-off-by: Nguyễn Gia Phong <cnx@loang.net>
10 daysimages: wsl2: Do not point the dummy bootloader at /dev/null.Dig Gashinsky1-1/+1
Installing a bootloader configuration replaces the file it is written to. On WSL2 that file is /dev/null, so "guix system reconfigure" replaces the character device with a read-only regular file: afterwards every write to /dev/null fails with EACCES for non-root users, and programs that create it when missing turn it into a plain file that accumulates whatever was meant to be discarded. * gnu/system/images/wsl2.scm (dummy-bootloader)[configuration-file]: Use "/var/lib/wsl-bootloader.cfg" instead of "/dev/null". Merges: https://codeberg.org/guix/guix/pulls/10514 Reviewed-by: gemmaro <gemmaro.dev@gmail.com> Signed-off-by: Nguyễn Gia Phong <cnx@loang.net>
12 daysgnu: xfs-repair/static: Deprecate and rename.Nicolas Graves1-1/+1
* gnu/packages/linux.scm (xfs_repair/static): Rename to xfs-repair/static and deprecate. * etc/manifests/release-minimal.scm (%filesystem-packages): Adapt accordingly. * gnu/system/linux-initrd.scm (file-system-packages): Likewise. Change-Id: Ied616899e811094e52672dd25547471cb2297be6 Signed-off-by: Vagrant Cascadian <vagrant@debian.org>
13 daysfile-systems: Expound '%pseudo-file-system-types'.Ashish SHUKLA1-2/+3
* gnu/system/file-systems.scm (%pseudo-file-system-types): Add "bpf", and "configfs". Signed-off-by: Ludovic Courtès <ludo@gnu.org> Merges: #10461
2026-07-13system: nss: Add protocols database.Dariqq1-0/+3
* gnu/system/nss.scm (<name-service-switch>): Add protocols field. (name-service-switch->string): Add protocols to serialization. * doc/guix.texi (Name Service Switch): Add protocols to list of available databases. Change-Id: Icf77556359680670e12b7add434fac401662266d Signed-off-by: Ludovic Courtès <ludo@gnu.org> Merges: #9293
2026-05-24system: images: rock-4c-plus: remove duplicated serial port service.Denis 'GNUtoo' Carikli1-9/+0
Without this change, the rock-4c-plus boots fine and we can see the serial port output is fine, but only part of what is typed through the serial port reaches the console. This makes it very difficult to type commands. And with this change, the serial port is already activated automatically and in that case we can interact well with the console. * gnu/system/images/rock-4c-plus.scm (rock-4c-plus-barebones-os): remove serial port service. Change-Id: Ieb87f2ed6054b529ffa4399fcf4ec997e3e454a6 Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> Signed-off-by: Vagrant Cascadian <vagrant@debian.org>
2026-05-24file-systems: file-system-needed-for-boot?: Include more mount points.Hilton Chain1-3/+7
This is useful when separating rootfs into many mount points, especially for mounting tmpfs as /. Mount points in this change are found and tested by booting from a clean rootfs with such setup. * gnu/system/file-systems.scm (file-system-needed-for-boot?): Mark /etc, /var/lib and /var/log as needed for boot. Merges: #8345
2026-05-21file-systems: Register /etc/protocols in %network-configuration-files.Maxim Cournoyer1-0/+1
This is also needed in containers for defining the various protocols; its absence would cause error like, for example with Perl: IO::Socket::INET6: sock_info: Bad protocol 'tcp' * gnu/system/file-systems.scm (%network-configuration-files): Register /etc/protocols. Change-Id: I871cd01a0eac4f979d1e6e3614972fac8d1a5e0f
2026-05-19system: hurd-boot: Prepare for runsystem in Guile.Janneke Nieuwenhuizen2-4/+14
Fo guile to run, it needs pipe support: without pipe support it aborts at startup. Pipe support is currently createn in runsystem by creating a passive translator settrans --create /servers/socket/1 /hurd/pflocal However, this needs a writable root file-system, and runsystem is started with a readonly root file-system. This patch enables running guile early in runsystem, and thus prepares for replacing the runsystem shell script with a guile program, by embedding the servers/socket/1 passive translator into the hurd system image using xattr. * gnu/build/hurd-boot.scm (make-hurd-device-nodes): Change optional root parameter to keyword #:root. Add #:hurd keyword parameter. Use it to create servers/socket/1 (pipe) and proc passive xattr translators. * gnu/build/image.scm (initialize-root-partition): Update caller. * gnu/system/image.scm (with-imported-modules*): Include (ice-9 optargs). * gnu/system/images/hurd.scm (hurd-initialize-root-partition): Use it to update caller. * guix/scripts/system.scm (install): Update caller. Change-Id: Ib3a672ae78bd969a2a4c0e33db8e38ccf71238ba Merges: #8609
2026-05-18shadow: use emulate to source profile scriptsTrevor Arjeski1-2/+2
Since 306bd80481 ("system: Source scripts from the /etc/profile.d directory."), /etc/profile a glob which does not silently fail on zsh, which by default does not enable NULL_GLOB. * gnu/system/shadow.scm (%default-zprofile): Use emulate sh to source profile scripts. Change-Id: Ia647682fc7a35afe448d56a99f866f31da0de145 Merges: https://codeberg.org/guix/guix/pulls/8479 Signed-off-by: Nguyễn Gia Phong <cnx@loang.net>
2026-05-16system: virtualized-operating-system: Fix version comparison.Hilton Chain1-3/+3
(string< "6.6" "6.14") => #f * gnu/system/vm.scm (virtualized-operating-system): Use version>=? instead of string< to compare version. Merges: #7959
2026-05-13system: hurd: Add e2fsprogs.Janneke Nieuwenhuizen1-1/+1
* etc/manifests/cross-compile.scm (%base-packages/hurd): Do not remove e2fsprogs. * gnu/system/hurd.scm (%base-packages/hurd): Add e2fsprogs. Change-Id: I45edf91846efed31309c4c30d185606ba68c3140 Co-authored-by: Brian Cully <bjc@spork.org>
2026-05-10system: hurd: Add pciutils to %base-packages/hurd.Janneke Nieuwenhuizen1-2/+3
* gnu/system/hurd.scm (%base-packages/hurd): Add pciutils. Change-Id: Id5d69b83a51a59ca6214a3f7a8b61d53fe9f66d3
2026-04-27linux-container: Add #:child-is-pid1? to ‘eval/container’.Johannes Christ1-2/+8
* gnu/system/linux-container.scm (eval/container): Add `#:child-is-pid1?`. Change-Id: I522783f22a38093d862f5cfad1c68baaacd4ecc5 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-04-17gnu: installer: Use kmscon-8.Anderson Torres1-0/+2
Because kmscon-9 lacks the patch to change keyboared layout in the installer. * gnu/system/install.scm (%installation-services)[kmscon-service-type]: Set kmscon to kmscon-8. Change-Id: Ib12d9ec8f32042dce8ade66bf042ae32a7d05e2c Signed-off-by: Hilton Chain <hako@ultrarare.space> Merges: #7381
2026-04-09guix: Ask LUKS password only once on boot when using GRUB.Danny Milosavljevic1-50/+159
* gnu/bootloader/grub.scm (make-grub-configuration): Modify. * gnu/system/mapped-devices.scm (open-luks-device): Modify. * gnu/tests/install.scm (%encrypted-root-installation-script): Modify. (%encrypted-root-os): Make debugging possible. * doc/guix.texi (Mapped Devices): Cross-reference automatic LUKS master key passing. (BootloaderConfiguration): Document automatic LUKS master key passing via GRUB's (proc)/luks_script. Update extra-initrd documentation. Change-Id: I5be74a524de04232d156e750109707fe7e50c28a
2026-04-07system/nss: Add 'merge' to NSS actions.Maxim Cournoyer1-1/+1
* gnu/system/nss.scm (lookup-action): Add merge. Change-Id: I68ef691fe66f295735d82d72fea82adda3552df3
2026-04-03linux-initrd: Handle builtin modules with different module and file names.Hilton Chain1-1/+5
Previously, modules we want were not normalized before comparing with builtin-modules, which was normalized by file-name->module-name. This made the code unable to find modules like nls_iso8859-1 (normalized to nls_iso8859_1) and usb-storage (normalized to usb_storage) when they're built into the kernel. * gnu/system/linux-initrd.scm (flat-linux-module-directory) [modules-to-lookup]: Normalize module name before comparing with builtin ones. Change-Id: Ifb3ab298b8435c38040a6d58cdb53a3a46eb8ee1 Merges: #7514
2026-03-27linux-initrd: default-initrd-modules: Add nvme.Hilton Chain1-0/+1
This avoids surprises when customizing the kernel ;) * gnu/system/linux-initrd.scm (default-initrd-modules): Add nvme module. Change-Id: I0f26a606f0eb9fda96ade1ca4a798a32b173cbae Merges: #7513
2026-03-23system: examples: devel-hurd: Avoid building graphviz-minimal.Janneke Nieuwenhuizen1-1/+1
This is a follow-up to commit e54d574add30acd4603a7a2e5cd60dd634ba4e12 gnu: guix: Depend on 'graphviz-minimal'. (and subsequent bumping of the guix package). * gnu/system/examples/devel-hurd.tmpl (guix-packages): Also remove graphviz-minimal. Change-Id: Icae506f0a442ae44fbd98dc1974bf6571bddd883
2026-03-20services, tests: Refer to inherited field values where applicable.Ludovic Courtès1-2/+2
* gnu/machine/hetzner.scm (operating-system-authorize): Refer to ‘services’ instead of calling ‘operating-system-user-services’. * gnu/services/virtualization.scm (secret-service-operating-system): Likewise. * gnu/tests.scm (operating-system-with-console-syslog): Likewise. * gnu/tests/avahi.scm (%avahi-os): Likewise. * gnu/tests/base.scm (%test-guix-daemon-unprivileged): Likewise. * gnu/tests/nfs.scm (%nfs-os): Likewise. (run-nfs-full-test): Likewise. * gnu/system/vm.scm (virtualized-operating-system): Refer to ‘initrd-modules’ instead of calling ‘operating-system-initrd-modules’. Change-Id: I00c5f5c1e171b174bf0ca709b2dbd13a2fe161b5
2026-03-13gnu: genimage: Move to flashing-tools.Cayetano Santos1-1/+1
* gnu/packages/genimage.scm: Remove. * packages/patches/genimage-mke2fs-test.patch: Remove. * gnu/local.mk (GNU_SYSTEM_MODULES): Unregister module. (dist_patch_DATA): Unregister patch. * po/packages/POTFILES.in: Unregister module. * gnu/packages/flashing-tools.scm (genimage): Add variable. * gnu/packages/image.scm: Update used module. Merges guix/guix!7045 Change-Id: Iaeafca2b63bcd92f588894543316b968f45c577c
2026-03-09system: hurd: Remove %hurd64-default-* variants.Yelninei3-11/+2
Since 8f852885de485098812450711e81c1f446d3acb6 these are aliases. * gnu/system/hurd.scm (%hurd64-default-operating-system, %hurd64-default-operating-system-kernel): Delete variables. * gnu/system/images/hurd.scm (hurd64-barebones-os): Replace %hurd64-default-operating-system with %hurd-default-operating-system * gnu/system/examples/bare-hurd64.tmpl (%hurd64-os): Same. * gnu/tests/virtualization.scm (%childhurd64-os): Remove usage of %hurd64-default-operating-system-kernel. Merges: #5544. Change-Id: Ie7345cd99dc37712e7a0f7683ad738c194c70fa7
2026-03-06system: examples: bare-hurd64: Remove now unnecessary kernel-arguments.Janneke Nieuwenhuizen1-1/+0
On x86_64-gnu, that only works with RumpDISK, the GRUB bootloader configuration always inserts "noide". * gnu/system/examples/bare-hurd64.tmpl (%hurd64-os)[kernel-arguments]: Remove. Change-Id: Ic648d88ea4171adaa0f932436fbeaadb208cdbfa
2026-02-27system: gdbinit: Save command history by default.Ludovic Courtès1-2/+15
By default, GDB does not save history. This improves on the default. * gnu/system/shadow.scm (%default-gdbinit): Add ‘set history’ commands. (gdb-history-placeholder): New variable. (default-skeletons): Add it. Change-Id: Ie3f9c26098066b4bd896b0593546015a1b429209 Signed-off-by: Ludovic Courtès <ludo@gnu.org> Merges: #6559
2026-02-27system: gdbinit: Fix default ‘debug-file-directory’ for user profiles.Ludovic Courtès1-8/+8
This fixes a bug whereby ‘file-exists?’ would be called on tilde-prefixed directory names before tilde expansion has taken place. As a result, ~/.guix-profile and ~/.guix-home/profile would never be included in ‘debug-file-directory’. * gnu/system/shadow.scm (%default-gdbinit): Remove call to ‘file-exists?’. Change-Id: I3a6bf1fec6bfbf208679d030dd6b380b9c6a4789 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-02-27system: examples: Remove comments on missing login prompt on hurd64.Yelninei2-4/+0
* gnu/system/examples/bare-hurd64.tmpl: Remove outdated comment. * gnu/system/examples/devel-hurd64.tmpl: Remove outdated comment. Merges: https://codeberg.org/guix/guix/pulls/5545 Change-Id: Icd31fe47392263f2629e882c791013679a0fd597 Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-02-24images: Add am335x-evm support.Denis 'GNUtoo' Carikli1-0/+84
* gnu/system/images/am335x-evm.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. Change-Id: Ic3695d9d26a4870500a9bf1b2a3d53d93fed6db6 Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> Signed-off-by: Vagrant Cascadian <vagrant@debian.org>
2026-02-17system: Remove asus-c201.tmp.Andreas Enge1-61/+0
The file transitively depends on vboot-utils, which does not build and which depends on python2. This effectively reverts commit df2a96167fd97b1b2013813127e44b0bd5ca7469 . * gnu/system/examples/asus-c201.tmpl: Remove file. * Makefile.am (EXAMPLES): Unregister file. Change-Id: I90683a01fc53c0491a77670c850c7afe6026c878
2026-02-17system: Remove nintendo-nes-classic-edition installer.Andreas Enge1-6/+0
* gnu/system/install.scm (nintendo-nes-classic-edition-installation-os): Delete variable. * gnu/bootloader/u-boot.scm (u-boot-nintendo-nes-classic-edition-bootloader): Delete variable. Change-Id: I538d1b7d80f4d475c5389bd41cee4ab4358c05c2
2026-02-11system: vm: Remove grub-efi workaround.Efraim Flashner1-11/+0
Bug https://bugs.gnu.org/28768 no longer needs working around. * gnu/system/vm.scm (virtualized-operating-system): Don't override the bootloader of the system configuration used. Change-Id: I495f59a6edd7929e2d47276db53fd86a89ac95e9 Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2026-02-09system: images: Add image names.Efraim Flashner9-0/+9
* gnu/system/images/a20-olinuxino-lime2.scm (a20-olinuxino-lime2-image-type): * gnu/system/images/novena.scm (novena-image-type), * gnu/system/images/orangepi-r1-plus-lts-rk3328.scm (orangepi-r1-plus-lts-rk3328-image-type), * gnu/system/images/pine64.scm (pine64-image-type), * gnu/system/images/pinebook-pro.scm (pinebook-pro-image-type), * gnu/system/images/rock-4c-plus.scm (rock-4c-plus-image-type), * gnu/system/images/rock64.scm (rock64-image-type): Add name field to constructor. * gnu/system/images/unmatched.scm (unmatched-disk-image), * gnu/system/images/visionfive2.scm (visionfive2-disk-image): Add name field. Change-Id: Id64082f912e6346c1f3b47619ce31f129612ff34 Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2026-02-06system: pam: Replace deprecated setuid-program-service-typeSergey Trofimov1-3/+1
* gnu/system/pam.scm (pam-root-service-type): Replace setuid-program-service-type with privileged-... Change-Id: I0a736cc49d8710d4b2b03d3e9761f9daed8b74b1 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-02-06system: skeleton-directory: Remove special cases of directory creation.Hilton Chain1-11/+3
Directories have been supported in skeleton names since d9ea94dc4487fb668f98e512f96506a5eaf566c2. * gnu/system/shadow.scm (default-skeletons): Add directories to skeleton names. (skeleton-directory): Remove special cases of directory creation. Change-Id: I7918498c2ff115ad8d1f5e3472678da1db8b4f2e Signed-off-by: Hilton Chain <hako@ultrarare.space>
2026-02-01system: Add am335x-evm installer.Denis 'GNUtoo' Carikli1-0/+9
* gnu/system/install.scm (am335x-evm-installation-os): New exported variable. Change-Id: I6dbe95f64d2c6f609fbf0e9c09e484f90850c70b Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> Signed-off-by: Vagrant Cascadian <vagrant@debian.org>
2026-02-01system: export rock-4c-plus-installation-os.Denis 'GNUtoo' Carikli1-0/+1
* gnu/system/install.scm (rock-4c-plus-installation-os): Export variable. Change-Id: Id91a9d77e34685a6bd62f2098b3b812e246cb758 Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> Signed-off-by: Vagrant Cascadian <vagrant@debian.org>
2026-01-27system/linux-container: Re-export %namespaces, %writable-/tmp variables.Maxim Cournoyer1-1/+5
* gnu/system/linux-container.scm: Re-export %namespaces and %writable-/tmp, which are from (guix build linux-container). Change-Id: Iaad362247825e30fb6837af013018f2c472c19fa
2026-01-25describe: Define and use ‘modules-from-current-profile’.Ludovic Courtès1-10/+13
Fixes <https://issues.guix.gnu.org/75458>. Fixes a bug whereby bootloader, image, platform, etc. modules would be searched for in locations other than the current profile, possibly leading to incompatible files being loaded. More generally, this bug would break statelessness: depending on what happens to be available in $GUILE_LOAD_PATH, some modules would or would not be loaded. * guix/describe.scm (modules-from-current-profile): New procedure. * gnu/bootloader.scm (bootloader-modules): Use it instead of ‘all-modules’. * gnu/system/image.scm (image-modules): Likewise. (not-config?): Rename to… (neither-config-nor-git?): … this, and add (guix git). Adjust users. * guix/import/utils.scm (build-system-modules): Likewise. * guix/platform.scm (platform-modules): Likewise. * guix/upstream.scm (importer-modules): Likewise. Change-Id: I8ac55a5bcdf54990665c70d0aa558b9b2c2548d4 Signed-off-by: Ludovic Courtès <ludo@gnu.org> Merges: #4859 Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2026-01-25system: hurd: Switch to the Shepherd’s system log.Ludovic Courtès1-2/+2
This is a followup to 8492a3c8962664db4bd0e7475f63be0ef59db87a. * gnu/system/hurd.scm (%base-services/hurd): Replace ‘syslog-service-type’ by ‘shepherd-system-log-service-type’. Change-Id: I3e12087a04f06210bd10b649b29fcf9949c5aa35 Signed-off-by: Ludovic Courtès <ludo@gnu.org> Merges: #2659 Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2026-01-22Merge branch 'version-1.5.0'Rutherther2-156/+308
Change-Id: Id73c0c74600a3da3373b3a37236b505af65bfe31
2026-01-19gnu: %desktop-services: Switch to GDM on 64-bit systems.Rutherther1-8/+10
* 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>
2026-01-16system: install: Add support for more boot devices on AArch64.Rutherther1-2/+36
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
2026-01-16gnu: visionfive2: Update the module commentary.Artyom V. Poptsov1-6/+7
* gnu/system/images/visionfive2.scm: Update the module commentary. Change-Id: If3d12bb0e3ccb9eaced4eb1e3afe636c7b89896f Signed-off-by: Rutherther <rutherther@ditigal.xyz> Merges: #4855
2026-01-16gnu: visionfive2: Update the module commentary.Artyom V. Poptsov1-6/+7
* gnu/system/images/visionfive2.scm: Update the module commentary. Change-Id: If3d12bb0e3ccb9eaced4eb1e3afe636c7b89896f Signed-off-by: Rutherther <rutherther@ditigal.xyz> Merges: #4855
2026-01-14install: Add guix-system-installer executable to system profile.Rutherther1-2/+35
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
2026-01-14install: Show different motd in headless console.Rutherther1-157/+229
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>
2026-01-14install: Register agetty on primary console on AArch64.Rutherther1-0/+11
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>