summaryrefslogtreecommitdiff
path: root/gnu/installer
AgeCommit message (Collapse)Author
2025-11-03installer: Add KDE Plasma desktop environment.Rutherther
* gnu/installer/services.scm (%system-services): Add KDE Plasma environment. * gnu/tests/install.scm (installation-target-desktop-os-for-gui-tests): Add plasma-desktop-service-type to operating-system services. (%test-gui-inst)led-desktop-os-encrypted): Extend side for Plasma. Change-Id: Iaf55bb85f40865ee5b79abef23a98a3e04a1e244 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-11-02tests: installer: Fix gui-installed-desktop-os-encrypted.Mathieu Othacehe
* gnu/installer/services.scm (%system-services): Fix a typo. Fixes: guix/guix#3636 Change-Id: I9b94474124df4da87784157d25fe39a1887c743b
2025-11-02tests: installer: Display the final configuration file.Mathieu Othacehe
* gnu/installer/final.scm (install-system): Display the generated configuration file in the syslog to ease installer tests debugging. Change-Id: Ia5faf696a5244ece955616b4b9a350d057b93696
2025-10-22installer: Do not use LatGrkCyr console font for Esperanto.Florian Pelz
* gnu/installer/services.scm (system-services->configuration): Don't match `eo'. Change-Id: I46ba7dd737141c25ce9a9fcf164ae431e2ed4b33
2025-10-22installer: Fix installing services depending on language.Florian Pelz
Follow-up to d2475833e4ca8238a8254b774a94bd8d973e8cb5. * gnu/installer/services.scm (system-services->configuration): Match on language without territory code. Change-Id: I70be271217732401be4c62dc472f1ebe4dafb764
2025-10-19installer: Respect /tmp/installer-assume-online in ↵Rutherther
check-substitute-availability. Follow up of #2518, where check-substitute-availability has been introduced. This is mostly for system tests that run without internet access. * gnu/installer/newt/network.scm (check-substitute-availability): Skip the check if /tmp/installer-assume-online exists. Change-Id: I0110390e8c5ce6756f3c22cb770011ea735fe79b Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2025-10-17installer: network: Add step for substitute availability.Rutherther
Notifies the user if substitutes are not available to let them know they might have to build a lot of software. * gnu/installer/newt/network.scm (check-substitute-availability): Step for checking if substitutes are available. (run-network-page): Add the step. Change-Id: Ia7f54b7a5b70b371240b9e732c7eff078d2c2184 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-10-17installer: wait-service-online: Allow user to proceed if offline.Rutherther
The user may choose to proceed with installation even if they seem to be offline. This is mostly for cases where the user if actually online, but the gnu and guix infrastructure is down. On top of that, if the installer has all the necessary dependencies the user might not need internet at all. * gnu/installer/newt/network.scm (wait-oservice-online): Add choice window for user to continue if offline. Change-Id: Id8868ad42a6874d31b64765457f8a3d3b08ebd6c Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-10-17installer: wait-service-online: More urls to check user is online.Rutherther
Provide more space for failure. * gnu/installer/newt/network.scm (wait-service-online) [common-urls-alive?]: Renamed from ci-available? Change-Id: Icf68683dd72c66570eeafaeb0e7871237f0936c9 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-10-17installer: wait-service-online: Assume online for http errorful codes.Rutherther
The general idea of the step is to check if user is online. Even if the servers return errorful codes such as 504, the user is online. * gnu/installer/newt/network.scm (wait-service-online)[url-alive?]: Return #t for all urls that return valid http response. Change-Id: Iad06bb444ed9971bc438092ff6341fce99e77e07 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-07-24gnu: installer: Replace deprecated dhcp client service.Gabriel Wicki
* gnu/installer/services.scm(system-service) [snippet]: Replace dhcp service. Change-Id: Ia345704ebcea747b91fd3c357437d2479a5c11c2
2025-06-30gnu: installer: Remove enlightenment desktop option.Efraim Flashner
* gnu/installer/services.scm (%system-services): Remove enlightenment-desktop-service-type. * gnu/tests/install.scm (installation-target-desktop-os-for-gui-tests): Remove enlightenment-desktop-service-type. * etc/manifests/cross-compile.scm (%system-packages): Remove enlightenment. * etc/manifests/release.scm (%system-packages): Remove enlightenment. Change-Id: I79cd8fc13ea0fda5eef72aee783b26edc77dcb5e
2025-03-01installer: Include icewm as a desktop environment.Andy Tai
* gnu/installer/services.scm (%system-services): Include icewm as a desktop environment. * gnu/tests/install.scm (installation-target-desktop-os-for-gui-tests): Add icewm to the list of packages. * etc/manifests/release.scm: (%system-packages): Add icewm. Change-Id: I881c1dd4289281e51c81d83fac785ef064e6ff6a Signed-off-by: Christopher Baines <mail@cbaines.net>
2025-02-19gnu: Fix some misspellings.Efraim Flashner
Change-Id: I316652aff7418af4b8e83bea24638b1513f8aa97
2024-11-20install: Change the territory when we have learned it.Florian Pelz
Typically, the LANGUAGE has already been set in the run-language-page step. But for languages like pt, we must know the territory. * gnu/installer/newt/locale.scm (run-territory-page): Call ‘setenv’ for the ‘LANGUAGE’ variable. Change-Id: Ie6308c359e0bdb2d37fac0c844cfd879e96e231a
2024-11-11installer: Add static-networking template.Janneke Nieuwenhuizen
* gnu/installer/services.scm (%system-services): Add static-networking-service-type. Change-Id: Iec6336f8d1f49e8b801e978d5c9eeb4f83a6e748
2024-11-11installer: Add "Kernel" page to select the Hurd.Janneke Nieuwenhuizen
This adds a "Kernel" page to the installer with the option to (cross-) install the Hurd, if applicable (only available on x86 machines for now). * gnu/installer/newt.scm (kernel-page): New procedure. (newt-installer)[kernel-page]: New field. * gnu/installer/kernel.scm, gnu/installer/newt/kernel.scm: New files. * gnu/local.mk (INSTALLER_MODULES): Add them. * gnu/installer.scm (installer-steps): Use them to select kernel if applicable. * gnu/installer/newt/partition.scm (run-label-page): Default to "msdos" when instaling the Hurd. (run-fs-type-page): Add ext2 for the hurd. (run-partitioning-page-partition): Remove `entire-encrypted' option when installing the Hurd. * gnu/installer/services.scm (system-services->configuration): Cater for the Hurd with %base-services/hurd, and with %base-packages/hurd that must always be set. (%system-services): Change to procedure. When installing the the Hurd, do not recommend `ntp-service-type' and USE `openssh-sans-x' package for `openssh-service-type'. (system-service-none): New variable. * gnu/installer/newt/services.scm (run-network-management-page): Include it when installing the Hurd. (run-desktop-environments-cbt-page): When installing the Hurd, recommend to not select any desktop enviroment. Update users. * gnu/installer/parted.scm (efi-installation?): Return #f when installing for the Hurd. (create-ext2-file-system): New procedure. (user-fs-type-name, user-fs-type->mount-type, partition-filesystem-user-type, format-user-partitions): Support `ext2'. (<user-partition> partition->user-partition): Use `ext2' when installing the Hurd. (auto-partition!): Likewise. No swap partition when installing the Hurd. * gnu/installer/final.scm (install-system): Cater for cross installation of the Hurd. (bootloader-configuration): Use `grub-minimal-bootloader' when installing the Hurd. (user-partition-missing-modules): Cater for empty user-partitions. (initrd-configuration, user-partitions->configuration): Cater for the Hurd. * gnu/installer/steps.scm (format-configuration, configuration->file): Cater for the Hurd. * gnu/system/hurd.scm (%desktop-services/hurd): New variable. * gnu/installer/tests.scm (choose-kernel): New procedure. * gnu/tests/install.scm (gui-test-program): Use it. Change-Id: Ifafb27b8a2f933944c77223a27ec151757237e36
2024-11-11installer: Add dry-run?Janneke Nieuwenhuizen
This allows running the installer without root privileges. Do something like ./pre-inst-env guix repl ,use (guix) ,use (gnu installer) (installer-program #:dry-run? #t) ,build $1 => "/gnu/store/...-installer-program" and run /gnu/store/...-installer-program * gnu/installer/newt.scm (locale-page): Add #:dry-run? parameter. (keymap-page): Likewise. * gnu/installer/newt/keymap.scm (run-keymap-page): Likewise. * gnu/installer/steps.scm (run-installer-steps): Likewise. Use it to skip writing to socket. * gnu/installer/newt/final.scm (run-final-page): Rename to... (run-final-page-install): ...this. (dry-run-final-page, run-final-page): New procedures. * gnu/installer/parted.scm (bootloader-configuration): Cater for empty user partitions. * gnu/installer/utils.scm (dry-run-command): New procedure. * gnu/installer.scm (compute-locale-step): Add #:dry-run? parameter. Use it to avoid actually applying locale. (compute-keymap-step): Add dry-run? parameter. Pass it to keymap-page. (installer-program): Add #:dry-run? parameter. If #:true avoid writing to /proc, use dry-run-command, skip sync and reboot, and pass dry-run? to... (installer-steps): ...here. Add #:dry-run? parameter. Use it to disable skip network, substitutes, partitioning pages, and pass it to... compute-locale-step, compute-keymap-step, and final-page. Change-Id: I0ff4c3b0a0c69539af617c27ba37654beed44619
2024-11-11installer: Use `%' for parameter %run-command-in-installer.Janneke Nieuwenhuizen
* gnu/installer/utils.scm (run-command-in-installer): Rename to... (%run-command-in-installer): ...this. * gnu/installer.scm (installer-program): Update accordingly. * gnu/installer/parted.scm (remove-logical-devices, create-btrfs-file-system, create-ext4-file-system, create-fat16-file-system, create-fat32-file-system, create-jfs-file-system, create-ntfs-file-system, create-xfs-file-system, create-swap-partition, luks-format-and-open, luks-ensure-open, luks-close): Update accordingly. Change-Id: I96ebc59ebc85fd8ebccb0cc57130b4e7532d287f
2024-11-11installer: Fix file-name typos.Janneke Nieuwenhuizen
* gnu/installer/newt/page.scm (run-dump-page): Typo file-name. * gnu/installer/utils.scm (open-new-log-port): Likewise. Change-Id: I837991a0ee5054b3afa8328205e23ac6f9fbae8d
2024-11-11installer: Use "partitioning-page" consistently.Janneke Nieuwenhuizen
Having `partition-page' function call `RUN-partititionING-page' where all other proxy functions call `RUN-<name>' hurts my brain while refactoring. * gnu/installer/record.scm (<installer>)[partition-page]: Rename to... [partitioning-page]: ...this. * gnu/installer/newt.scm (partitioning-page, newt-installer): Update accordingly. * gnu/installer.scm (installer-steps): Update accordingly. Change-Id: I6b2f3459a3d0a7a89260224b7d8438676e3411ba
2024-11-11installer: Remove unused (newt) imports.Janneke Nieuwenhuizen
* gnu/installer/newt/ethernet.scm, gnu/installer/newt/keymap.scm, gnu/installer/newt/locale.scm, gnu/installer/newt/parameters.scm, gnu/installer/newt/services.scm: Remove (newt). Change-Id: Ia6624aaf73491024da54b8ffee7358941b187fdf
2024-08-31installer: Create ext4 file systems with ‘-O large_dir’.Ludovic Courtès
* gnu/installer/parted.scm (create-ext4-file-system): Pass ‘-O large_dir’ to ‘mkfs.ext4’. Change-Id: Ie34039ed03f273505e7f7fb5c3241120e3395ba2
2024-04-18system: Remove nss-certs from OS templates, adjust doc.Maxim Cournoyer
This is a follow-up to commit 86afaadb51 ("system: Add 'nss-certs' to %base-packages-networking.") * doc/guix-cookbook.texi (Running Guix on a Linode Server): Remove nss-certs from operating system's packages field. (Running Guix on a Kimsufi Server): Likewise. * doc/guix.texi (Using the Configuration System): Likewise. (X.509 Certificates): Adjust to mention nss-certs *is* part of %base-packages. * gnu/installer/services.scm (%system-services): Remove recommendation to install nss-certs. * gnu/system/examples/bare-bones.tmpl (host-name): Remove obsolete comments. * gnu/system/examples/desktop.tmpl (packages): Remove nss-certs. * gnu/system/examples/lightweight-desktop.tmpl (packages): Likewise. * gnu/system/examples/plasma.tmpl (packages): Likewise. * gnu/system/examples/raspberry-pi-64-nfs-root.tmpl (packages): Likewise. * gnu/system/examples/raspberry-pi-64.tmpl (packages): Likewise. * gnu/system/examples/vm-image.tmpl (packages): Likewise. * gnu/system/images/orangepi-r1-plus-lts-rk3328.scm (packages): Likewise. * gnu/system/images/pine64.scm (packages): Likewise. * gnu/system/install.scm (installation-os) [packages]: Likewise. Change-Id: If09123a69b987178bcb0aab61c4570c14fc1286f
2024-04-03Switch order of the default substitute servers.Christopher Baines
The aim here is to improve the user experience. There's anecdotal evidence that the network performance for bordeaux is better compared to ci at least for some users, and I don't know of any issues with rate limiting or access restriction for bordeaux compared to ci. It also has IPv6 support. Additionally, bordeaux generally had more substitutes than ci, particularly for aarch64-linux and armhf-linux. This change will offer a very slight speedup for those substitutes that only bordeaux has. Bordeaux has been a default substitute server for nearly 3 years now and I think this change is overdue. I'm also hopeful that we'll be able to build on the testing regarding mirrors for bordeaux, and that'll allow potentially improving the hosting setup (through providing more redundancy) and further improving substitute fetching for users who currently have issues with substitute access. * config-daemon.ac: Switch substitute urls order. * doc/guix.texi: Ditto. * etc/guix-install.sh: Ditto. * gnu/installer/newt/network.scm (wait-service-online): Ditto. * guix/store.scm (%default-substitute-urls): Ditto. Change-Id: I4f6d93ae1fc8b03d80b47b18b5749a51f1fde17b Signed-off-by: Christopher Baines <mail@cbaines.net>
2023-07-06installer: Restore LatGrkCyr-8x16 console font depending on language.Denys Nykula
Partially-Fixes: <https://issues.guix.gnu.org/64006> * gnu/installer/services.scm (system-services->configuration): When the LANGUAGE environment variable matches a known native console font, wrap the base services with modify-services, configuring console-font-service-type to set the native console font on every tty instead of the default console font. Signed-off-by: Florian Pelz <pelzflorian@pelzflorian.de>
2023-04-30installer: Filter out C.UTF-8 from the list of locales.Josselin Poiret
* gnu/installer/locale.scm (supported-locales->locales): Filter out C.UTF-8. It doesn't follow the other locales' format, and doesn't have a corresponding iso639 code. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-12-18installer: final: Delete SQLite WAL and shm files upon completion.Ludovic Courtès
Previously, db.sqlite-{wal,shm} could be left behind after stopping guix-daemon. When resuming installation, SQLite could end up behaving as if transactions visible in the WAL file had been committed, in spite of having restored SAVED-DATABASE. Fixes <https://issues.guix.gnu.org/59784>. Reported by pelzflorian (Florian Pelz) <pelzflorian@pelzflorian.de>. * gnu/installer/final.scm (install-system): Before restarting guix-daemon, delete db.sqlite-{wal,shm}.
2022-12-18installer: final: Stop guix-daemon before accessing store database.Ludovic Courtès
As part of fixing <https://issues.guix.gnu.org/59784>, make sure /var/guix/db.sqlite is only copied while guix-daemon is stopped. * gnu/installer/final.scm (call-with-mnt-container): Add FIXME comment. (install-system): Copy DATABASE-FILE and SAVED-DATABASE only when 'guix-daemon' is stopped. Add logging lines.
2022-12-10installer: Detect mapped installation devices.Mathieu Othacehe
Fixes: <https://issues.guix.gnu.org/59823> * gnu/installer/parted.scm (mapped-device?, mapped-device-parent-partition): New procedures. (eligible-devices): Detect mapped installation devices using the new procedures.
2022-12-09installer: Print progress bars and such as soon as \r is read.Ludovic Courtès
Fixes <https://issues.guix.gnu.org/59922>. Previously progress bars and related things would be buffered by 'run-external-command-with-line-hooks' until \n is read. * gnu/installer/utils.scm (run-external-command-with-line-hooks): Use 'read-delimited' rather than 'get-line'. Pass 'concat as the last argument. (%display-line-hook): Remove. (run-command): Use 'display' instead of '%display-line-hook'. (%syslog-line-hook): Add "\n" when LINE doesn't end in \n. (%installer-log-line-hook): Do not add an extra newline. (installer-log-line): Add an extra newline.
2022-11-20installer: Add comment above the 'packages' field.Ludovic Courtès
* gnu/installer/services.scm (system-services->configuration): Add heading above the 'packages' field. Rename 'heading' to 'service-heading'.
2022-11-15installer: Report known-unsupported PCI devices.Ludovic Courtès
* gnu/installer/hardware.scm: New file. * gnu/local.mk (INSTALLER_MODULES): Add it. * po/guix/POTFILES.in: Add it. * gnu/installer.scm (installer-steps): Pass #:pci-database to the 'welcome' step procedure. * gnu/installer/newt.scm (welcome-page): Add #:pci-database and pass it to 'run-welcome-page'. * gnu/installer/newt/welcome.scm (check-hardware-support): Add #:pci-database. Enumerate unsupported PCI devices and run an error page when unsupported devices are found. (run-welcome-page): Add #:pci-database and pass it to 'check-hardware-support' and to the recursive call. * gnu/installer/record.scm (<installer>)[welcome-page]: Adjust comment. * doc/guix.texi (Hardware Considerations): Mention it.
2022-11-15installer: Error page width is parameterized.Ludovic Courtès
* gnu/installer/newt/page.scm (run-error-page): Add #:width and honor it.
2022-11-15installer: Warn about hardware support after the welcome page.Ludovic Courtès
This is a followup to 682639c107908426fe6bf0a1b8404b98b7820290, which added the uvesafb upfront, before welcome page had been displayed. * gnu/installer/newt/welcome.scm (check-hardware-support): New procedure. (run-welcome-page): Use it.
2022-11-09installer: Remove unused variable.Ludovic Courtès
* gnu/installer/newt.scm (newt-run-command): Remove 'displayed-command'.
2022-11-02installer: Skip the backtrace page on user abort.Mathieu Othacehe
When the user aborts the installation because a core dump is discovered or the installation command failed, displaying the abort backtrace doesn't make much sense. Hide it when the abort condition is &user-abort-error and skip directly to the dump page. * gnu/installer/steps.scm (&user-abort-error): New variable. (user-abort-error?): New procedure. * gnu/installer/newt/final.scm (run-install-failed-page): Raise a user-abort-error. * gnu/installer/newt/welcome.scm (run-welcome-page): Ditto. * gnu/installer.scm (installer-program): Hide the backtrace page and directly propose to dump the report when the a &user-abort-error is raised.
2022-11-02installer: Add core dump support.Mathieu Othacehe
Fixes: <https://issues.guix.gnu.org/58733> * gnu/installer.scm (installer-program): Enable core dump generation. * gnu/installer/dump.scm (%core-dump): New variable. (prepare-dump): Copy the core dump file. * gnu/installer/newt/welcome.scm (run-welcome-page): Propose to report an installation that previously generated a core dump.
2022-10-31installer: parted: Retry failing read-partition-uuid call.Mathieu Othacehe
Fixes: <https://issues.guix.gnu.org/53541>. * gnu/installer/parted.scm (read-partition-uuid/retry): New procedure. (check-user-partitions): Use it.
2022-10-25installer: welcome: Warn when uvesafb gets used.pelzflorian (Florian Pelz)
There will be false positives: Because the Guix installer uses the kernel argument modprobe.blacklist=radeon,amdgpu and some AMD graphics actually work okay according to h-node, these users will get a false alarm. * gnu/installer/newt/welcome.scm (run-welcome-page): Warn before showing the welcome page.
2022-10-23installer: Resume newt in exit-error procedure.Mathieu Othacehe
Fixes: <https://issues.guix.gnu.org/58734> * gnu/installer/newt.scm (exit-error): Resume it.
2022-10-20installer: Add a missing confirmation page before formatting.Mathieu Othacehe
This is a follow-up of: <https://issues.guix.gnu.org/57232> * gnu/installer/newt/partition.scm (run-label-page): Add a confirmation page when dealing with an EFI installation.
2022-10-20installer: Propose the user to report a "guix system init" failure.Mathieu Othacehe
* gnu/installer/newt/final.scm (run-install-failed-page): Add a "Report the failure" button.
2022-10-20installer: Run the "guix system init" command in a PTY.Mathieu Othacehe
Fixes: <https://issues.guix.gnu.org/55360> * gnu/installer/utils.scm (run-external-command-with-handler/tty): New procedure. (run-external-command-with-line-hooks, run-command): Add a TTY? argument. * gnu/installer/final.scm (install-system): Call run-command with TTY? argument set to #true.
2022-10-17installer: Factorize url-alive? in internet check.Andrew Tropin
* gnu/installer/newt/network.scm (wait-service-online): Factorize url-alive? in internet check.
2022-10-17installer: Relax internet check availability criteria.aleksandr barakin
Checks the availability of the mirror bordeaux.guix.gnu.org in addition to ci.guix.gnu.org. This allows to proceed the installation if the ci.guix.gnu.org is unavailable. * gnu/installer/newt/network.scm (wait-service-online): Relax internet check availability criteria. Signed-off-by: Andrew Tropin <andrew@trop.in>
2022-10-17guix: Fix typos.Julien Lepiller
These typos were found and reported through weblate. * gnu/packages/audio.scm (wildmidi)[description]: Fix typo. * gnu/packages/games.scm (cgoban)[description]: Fix typo. * gnu/services/version-control.scm (gitolite-service-type)[description]: Fix typo. * gnu/installer/newt/substitutes.scm (run-substitutes-page): Remove full stop at end of title. * gnu/machine/ssh.scm (machine-ssh-configuration-system): Move punctuation outside of quotes. * guix/scripts/home.scm (process-action): Remove trailing space before newline. * guix/scripts/system.scm (show-help): Fix typo. * guix/scripts/environment.scm (with-store/maybe): Fix typo.
2022-10-13installer: partition: Add a confirmation page before formatting.Mathieu Othacehe
Fixes: <https://issues.guix.gnu.org/57232>. * gnu/installer/newt/partition.scm (run-label-confirmation-page): New procedure. (run-label-page): Call the above procedure before proceeding. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-09-24installer: tests: Fix typo.Mathieu Othacehe
* gnu/installer/tests.scm (edit-configuration-file): Fix it.
2022-09-24installer: Fix configuration edition during testing.Mathieu Othacehe
When the configuration is edited, it looks like there are some leftover fragments from the input configuration: Example content of config.scm after edition: #:imported-modules '((gnu services herd) (guix build utils) (guix combinators))) unted". The unique ;; file system identifiers there ("UUIDs") can be obtained ;; by running 'blkid' in a terminal. ... This is strange because call-with-output-file uses the O_TRUNC flag which resets the file size to zero. Remove the configuration file before writing it as a work-around. * gnu/installer/tests.scm (edit-configuration-file): Remove the configuration file before re-writing it.