summary refs log tree commit diff
path: root/gnu/installer
AgeCommit message (Collapse)Author
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.
2022-02-02installer: Use system-wide guix for system init.Josselin Poiret
* gnu/installer.scm (installer-program): Remove dependency on the guix package for the PATH. * gnu/installer/final.scm (install-system): Set PATH inside container to /run/current-system/profile/bin/. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-02-02installer: Make dump archive creation optional and selective.Josselin Poiret
* gnu/installer.scm (installer-program): Let the installer customize the dump archive. * gnu/installer/dump.scm (prepare-dump, make-dump): Split make-dump in prepare-dump, which copies the files necessary for the dump, and make-dump which creates the archive. * gnu/installer/record.scm (installer): Add report-page field. Change documented return value of exit-error. * gnu/installer/newt.scm (exit-error): Change arguments to be a string containing the error. Let the user choose between exiting and initiating a dump. (report-page): Add new variable. * gnu/installer/newt/page.scm (run-dump-page): New variable. * gnu/installer/newt/dump.scm: Delete it. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-02-02installer: Turn passwords into opaque records.Josselin Poiret
* gnu/installer/user.scm (<secret>, secret?, make-secret, secret-content): Add opaque <secret> record that boxes its contents, with a custom printer that doesn't display anything. * gnu/installer/newt/user.scm (run-user-add-page, run-user-page): Box it. * gnu/installer/final.scm (create-user-database): Unbox it. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-02-02installer: Add error page when running external commands.Josselin Poiret
* gnu/installer/newt.scm (newt-run-command): Add it. * gnu/installer/newt/page.scm (%ok-button, %exit-button, %default-buttons, make-newt-buttons, run-textbox-page): Add them. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-02-02installer: Use named prompt to abort or break installer steps.Josselin Poiret
* gnu/installer/steps.scm (run-installer-steps): Set up 'installer-step prompt. * gnu/installer/newt/ethernet.scm (run-ethernet-page) * gnu/installer/newt/final.scm (run-config-display-page, run-install-failed-page) * gnu/installer/newt/keymap.scm (run-layout-page, run-variant-page) * gnu/installer/newt/locale.scm (run-language-page, run-territory-page, run-codeset-page, run-modifier-page, run-locale-page) * gnu/installer/newt/network.scm (run-technology-page, wait-service-online) * gnu/installer/newt/page.scm (run-listbox-selection-page, run-checkbox-tree-page) * gnu/installer/newt/partition.scm (button-exit-action) * gnu/installer/newt/services.scm (run-desktop-environments-cbt-page, run-networking-cbt-page, run-other-services-cbt-page, run-network-management-page) * gnu/installer/newt/timezone.scm (run-timezone-page) * gnu/installer/newt/user.scm (run-user-page) * gnu/installer/newt/welcome.scm (run-menu-page) * gnu/installer/newt/wifi.scm (run-wifi-page): Use the 'installer-step prompt to abort. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-02-02installer: Replace run-command by invoke in newt/page.scm.Josselin Poiret
* gnu/installer/newt/page.scm (edit-file): Replace it. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-02-02installer: Fix run-file-textbox-page when edit-button is #f.Josselin Poiret
* gnu/installer/newt/page.scm (run-file-textbox-page): Check if edit-button is #f. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-02-02installer: Raise condition when mklabel fails.Josselin Poiret
* gnu/installer/parted.scm (mklabel): Do it. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-02-02installer: Use run-command-in-installer in (gnu installer parted).Josselin Poiret
* 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-close): Use run-command-in-installer. (with-null-output-ports): Remove. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-02-02installer: Add installer-specific run command process.Josselin Poiret
* gnu/installer/record.scm (installer)[run-command]: Add field. * gnu/installer/utils.scm (run-command-in-installer): Add parameter. * gnu/installer.scm (installer-program): Parameterize run-command-in-installer with current installer's run-command. * gnu/installer/newt.scm (newt-run-command): New variable. (newt-installer): Use it. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-02-02installer: Capture external commands output.Josselin Poiret
* gnu/installer/utils.scm (run-external-command-with-handler, run-external-command-with-line-hooks): New variables. (run-command): Use run-external-command-with-line-hooks. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-02-02installer: Remove specific logging code.Josselin Poiret
* gnu/installer/final.scm (install-system): Remove command logging to syslog, as this is taken care of by the new facilities. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>