summary refs log tree commit diff
path: root/gnu/installer
AgeCommit message (Collapse)Author
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.
2022-09-22installer: Exit console-services page with abort-to-prompt.Josselin Poiret
* gnu/installer/newt/services.scm (run-console-services-cbt-page): Do it. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-09-22installer: Ensure luks devices are open when mounting partitions.Josselin Poiret
Partially-Fixes: <https://issues.guix.gnu.org/57983> * gnu/installer/parted.scm (luks-ensure-open): New procedure. (unmount-user-partitions): Ensure luks devices are open. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-09-22installer: Return partitions with crypt password as step result.Josselin Poiret
* gnu/installer/newt/partition.scm (run-partitioning-page): Do it. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-09-22installer: Move <secret> to utils and use it for crypt passwords.Josselin Poiret
* gnu/installer/user.scm (<secret>, secret?, make-secret, secret-content): Move to utils.scm. * gnu/installer/utils.scm (<secret>, secret?, make-secret, secret-content): Moved from user.scm. * gnu/installer/newt/partition.scm (prompt-luks-passwords): Make password a <secret>. * gnu/installer/parted.scm (luks-format-and-open): Unwrap secret. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-09-01installer: Fix segfault on double logical partition removal.Josselin Poiret
* gnu/installer/parted.scm (auto-partition!): Avoid removing logical partitions twice. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-08-14installer: parted: Don't export WITH-DELAY-DEVICE-IN-USE?.Tobias Geerinckx-Rice
* gnu/installer/parted.scm: Remove WITH-DELAY-DEVICE-IN-USE? from the module's export list.
2022-08-08installer: Add comments and vertical space to the generated config.Ludovic Courtès
* gnu/installer/parted.scm (user-partitions->configuration): Introduce vertical space and a comment. * gnu/installer/services.scm (G_): New macro. (%system-services): Add comment for OpenSSH. (system-services->configuration): Add vertical space and comments. * gnu/installer/user.scm (users->configuration): Add comment. * gnu/installer/steps.scm (format-configuration): Add comment. (configuration->file): Expound leading comment. Pass #:format-comment to 'pretty-print-with-comments/splice'.
2022-08-08installer: Render the final configuration with (guix read-print).Ludovic Courtès
* gnu/installer.scm (module-to-import?): Return #t for (guix read-print). * gnu/installer/steps.scm (configuration->file): Use 'pretty-print-with-comments/splice' instead of 'for-each' and 'pretty-print'.
2022-08-05installer: parted: Call set-system before set-flags.Mathieu Othacehe
Parted 3.5 introduces the following regression: - partition-set-flag sets the BIOS_GRUB flag. The partition type is set to PARTITION_BIOS_GRUB_GUID. - partition-set-system resets the partition type to PARTITION_LINUX_DATA_GUID undoing what's done by partition-set-flag. To prevent it, reverse the call order. Fixes: <https://issues.guix.gnu.org/55549>. * gnu/installer/parted.scm (mkpart): Call partition-set-system before partition-set-flag.
2022-08-05installer: parted: Log partition flags.Mathieu Othacehe
* gnu/installer/parted.scm (mkpart): Log them.
2022-05-21Revert "installer: user: Remove useless filtering."Ludovic Courtès
This reverts commit c2125e59d0774cda3e559adeb056459a5f23586b. Fixes <https://issues.guix.gnu.org/55361>.
2022-04-06installer: user: Remove useless filtering.Mathieu Othacehe
* gnu/installer/user.scm (users->configuration): Remove root account filtering that is now performed in the "run-user-add-page" procedure.
2022-04-06installer: user: Forbid root user creation.Mathieu Othacehe
Forbid root user creation as it could lead to a system without any non-priviledged user accouts. Fixes: <https://issues.guix.gnu.org/54666>. * gnu/installer/newt/user.scm (run-user-add-page): Forbid it.
2022-03-01initrd: Use non-hyphenated kernel command-line parameter names.Maxim Cournoyer
This is to make it less surprising, given the common convention sets forth by the kernel Linux command-line parameters. * gnu/build/linux-boot.scm (boot-system): Rename '--load', '--repl', '--root' and '--system' to 'gnu.load', 'gnu.repl', 'root' and 'gnu.system', respectively. Adjust doc. (find-long-option): Adjust doc. * gnu/installer/parted.scm (installer-root-partition-path): Adjust accordingly. * gnu/system.scm (bootable-kernel-arguments): Add a VERSION argument and update doc. Use VERSION to conditionally return old style vs new style initrd arguments. (%boot-parameters-version): Increment to 1. (operating-system-boot-parameters): Adjust doc. (operating-system-boot-parameters-file): Likewise. * gnu/system/linux-initrd.scm (raw-initrd, base-initrd): Likewise. * doc/guix.texi: Adjust doc. * gnu/build/activation.scm (boot-time-system): Adjust accordingly. * gnu/build/hurd-boot.scm (boot-hurd-system): Likewise. * gnu/packages/commencement.scm (%final-inputs-riscv64): Adjust comment.
2022-02-26installer: Continue even if Connman cannot phone home.Florian Pelz
Connman's online check is unreliable for me. * gnu/installer/connman.scm (connman-online?): Accept if connman state is ready instead of online.