aboutsummaryrefslogtreecommitdiff
path: root/gnu/installer/newt
Commit message (Collapse)AuthorAge
* installer: Recommend 'ntp-service-type' for non-graphical systems.Leo Famulari2021-12-28
| | | | | | | | | | | | | | | | We had several bug reports with a root cause of "the clock was incorrect" from users who used the installer to install a non-graphical Guix System. * gnu/installer/services.scm (%system-services): Add the ntp-service-type. * gnu/installer/newt/services.scm (run-system-administration-cbt-page): New variable. (run-services-page): Use run-system-administration-cbt-page when not installing a desktop. * gnu/installer/tests.scm (choose-services): Add and use a choose-misc-service? procedure. * gnu/tests/install.scm (installation-target-os-for-gui-tests)<services>: Add ntp-service-type.
* installer: Offer the CUPS printing service on a dedicated page.Leo Famulari2021-12-28
| | | | | | | | | | | | | | | | | | | | | | | | Currently, the installer page RUN-OTHER-SERVICES-CBT-PAGE offers to the user all installer services that are not of the types 'desktop', 'network-management', or 'networking'. Concretely, this means that it offers the CUPS printing service, because that is the only service of a different type defined in the installer. In later commits, we will add some services of a new type, and we only want them to be offered when the user is installing a non-graphical system. At least one of these new services (NTP) is part of %DESKTOP-SERVICES. If it was also offered on RUN-OTHER-SERVICES-CBT-PAGE, and the user had configured a system using %DESKTOP-SERVICES, the user could accidentally add NTP to their services twice, which is an error and would break installation. So, this commit makes the RUN-OTHER-SERVICES-CBT-PAGE be more specific about what services to offer. This makes it easier to discriminate between desktop and non-desktop installations, in terms of when a given service is offered. * gnu/installer/newt/services.scm (RUN-OTHER-SERVICES-CBT-PAGE): Rename to ... (RUN-PRINTING-SERVICES-CBT-PAGE): ... new variable, and select only 'document' services. (RUN-SERVICES-PAGE): Adjust accordingly. * gnu/installer/tests.scm (CHOOSE-SERVICES): Adjust accordingly.
* installer: Reorder file system type listbox.Tobias Geerinckx-Rice2021-10-21
| | | | | | | | | | | | | | | Recommending ext4 over btrfs is probably ill-advised nowadays. See the regular bug reports about running out of /gnu/store directory entries, for which the documented fix then breaks booting with GRUB. Instead, just list regular file systems alphabetically. We can bikeshed bcachefs later ;-) Move second-class file systems like NTFS to their own section at the end of the list. * gnu/packages/package-management.scm (run-fs-type-page): Reorder the LISTBOX-ITEMS.
* installer: Support XFS.Tobias Geerinckx-Rice2021-09-23
| | | | | | | | | | * gnu/installer/newt/partition.scm (run-fs-type-page): Add ‘xfs’ to the list box. * gnu/installer/parted.scm (user-fs-type-name, user-fs-type->mount-type) (partition-filesystem-user-type): Add ‘xfs’ mapping. (create-xfs-file-system): New procedure. (format-user-partitions): Use it. * gnu/installer.scm (set-installer-path): Add xfsprogs.
* installer: Offer the CUPS printing service.Tobias Geerinckx-Rice2021-06-30
| | | | | | | * gnu/installer/services.scm (%system-services): Add CUPS. * gnu/installer/newt/services.scm (run-other-services-cbt-page): New procedure. (run-services-page): Call it last.
* installer: Fix crash when deleting a free space partition.Mathieu Othacehe2021-06-29
| | | | | | | Fixes: <https://issues.guix.gnu.org/49126>. * gnu/installer/newt/partition.scm (run-disk-page): Fix the return value when removing a free space partition.
* installer: Check partitions UUIDs.Mathieu Othacehe2021-06-12
| | | | | | | | | * gnu/installer/parted.scm (&cannot-read-uuid): New condition. (cannot-read-uuid?, cannot-read-uuid-partition): New procedures. (check-user-partitions): Check that all user-partitions have a valid UUID, raide the above condition otherwise. * gnu/installer/newt/partition.scm (run-disk-page): Run an error page if the &cannot-read-uuid condition is raised.
* installer: Print user partitions.Mathieu Othacehe2021-06-12
| | | | | * gnu/installer/newt/partition.scm (run-partitioning-page): Print user-partitions to syslog.
* installer: Force GPT disk label when UEFI is supported.Mathieu Othacehe2021-04-28
| | | | | * gnu/installer/newt/partition.scm (run-label-page): Force the GPT disk label when UEFI is supported.
* installer: Edit desktop selection prompt.Tobias Geerinckx-Rice2021-01-31
| | | | | * gnu/installer/newt/services.scm (run-desktop-environments-cbt-page): Fix and clarify the #:info-text.
* installer: Fix crash in parameters menu.Mathieu Othacehe2021-01-12
| | | | | | | | | | | Fixes: <https://issues.guix.gnu.org/45378>. * gnu/installer/newt/keymap.scm (run-layout-page): Return false when "Continue" button is pressed. (run-keymap-page): Do not try to compute variants if layout is false. Also do not try to format the result if layout is false. * gnu/installer.scm (compute-keymap-step): Do not apply keymap if "run-keymap-page" returns false.
* install: Discover local substitute servers.Mathieu Othacehe2020-12-11
| | | | | | | | | | | | | | | | * gnu/installer/substitutes.scm: New file. * gnu/installer/newt/substitutes.scm: New file. * gnu/local.mk (INSTALLER_MODULES): Add them. * po/guix/POTFILES.in: Add gnu/installer/newt/substitutes.scm. * gnu/installer/proxy.scm (with-silent-shepherd): Move to ... * gnu/installer/utils.scm: ... here. * gnu/installer/record.scm (<installer>)[substitutes-page]: New field. * gnu/installer/newt.scm (substitutes-page): New procedure, (newt-installer): register it. * gnu/installer.scm (installer-steps): Add "substitutes-page" step. * gnu/system/install.scm (%installation-services): Add avahi-service-type and enable substitute server discover in guix-service-type. [<name-service-switch>]: Set it to %mdns-host-lookup-nss.
* installer: parameters: Add a reboot button.Mathieu Othacehe2020-11-07
| | | | | | | Suggested by: zimoun <zimon.toutoune@gmail.com>. * gnu/installer/newt/parameters.scm (run-parameters-page): Add a reboot button.
* installer: Edit partitioning warning message.Mathieu Othacehe2020-11-07
| | | | | * gnu/installer/newt/partition.scm (draw-formatting-page): Add an extra new line.
* installer: Limit listbox height.Mathieu Othacehe2020-11-07
| | | | | | | | | | | | | | | | | | Fixes: <https://issues.guix.gnu.org/44428>. * gnu/installer/newt.scm (init): Print screen size. * gnu/installer/newt/page.scm (default-listbox-height): New variable. (run-listbox-selection-page): Use it. * gnu/installer/newt/wifi.scm (wifi-listbox-height): Ditto. * gnu/installer/newt/network.scm (run-technology-page): Set the maximum listbox height to 5. * gnu/installer/newt/ethernet.scm (run-ethernet-page): Ditto. * gnu/installer/newt/final.scm (run-config-display-page): Change listbox height. * gnu/installer/newt/partition.scm (run-disk-page): Ditto. * gnu/installer/newt/welcome.scm (display-logo?): New procedure. (run-menu-page): Use it. * gnu/installer/steps.scm (%configuration-file-width): Remove it.
* installer: Report to the user the formatted partitions.Miguel Ángel Arruga Vivas2020-11-02
| | | | | | | * gnu/installer/newt/partitions.scm (define-module): Use (ice-9 format). (draw-formatting-page): Add parameter partitions and provide the list of formatted partitions to the user. (run-partitioning-page): Provide user-partitions to draw-formatting-page.
* installer: Use UUIDs in the 'swap-devices' field.Ludovic Courtès2020-10-30
| | | | | | | | | | | | | | | | | | | Note: This change requires an updated 'guix' package that contains Linux-swap support in (gnu build file-systems). * gnu/installer/parted.scm (user-partitions->configuration): Use UUIDs in the 'swap-devices' field. * gnu/installer/newt/final.scm (run-final-page)[wait-for-clients]: New procedure. Use it. * gnu/installer/tests.scm (choose-partitioning): Wait for 'starting-final-step' message and move configuration file dialog handling to... (conclude-installation): ... here. Send over PORT the reply corresponding to 'starting-final-step'. * gnu/tests/install.scm (gui-test-program): When ENCRYPTED? is false, invoke 'swaplabel' in the marionette. (installation-target-os-for-gui-tests): When ENCRYPTED? is false, except a fixed UUID.
* installer: Log partition formatting.Ludovic Courtès2020-10-28
| | | | * gnu/installer/newt/partition.scm (run-partitioning-page): Add 'syslog' call.
* installer: Make the network management selection window tighter.Ludovic Courtès2020-10-23
| | | | | * gnu/installer/newt/services.scm (run-network-management-page): Pass #:listbox-height.
* installer: Add Emacs EXWM desktop environment.Jan (janneke) Nieuwenhuizen2020-10-13
| | | | | | | | | | | | | Suggested by zenny via IRC. * gnu/installer/services.scm (%system-services): Add emacs, emacs-exwm, emacs-desktop-environment. * etc/release-manifest.scm (%system-packages): Likewise. * gnu/system/examples/lightweight-desktop.tmpl: Likewise. * gnu/tests/install.scm (installation-target-desktop-os-for-gui-tests) [packages]: Likewise * gnu/installer/newt/services.scm (run-desktop-environments-cbt-page): Make one entry taller.
* installer: Rename RUN-PARTIONING-PAGE.Tobias Geerinckx-Rice2020-09-21
| | | | | * gnu/installer/newt/partition.scm (run-partioning-page): Rename to run-partitioning-page. Adjust all callers.
* installer: Fix docstring typoes.Tobias Geerinckx-Rice2020-09-21
| | | | | | * gnu/installer/connman.scm (connman-state, run-locale-page) (start-swapping, stop-swapping, run-installer-steps): Fix typo in docstring.
* installer: Run the installation inside a container.Mathieu Othacehe2020-09-02
| | | | | | | | | | | | | | | | | | | When the store overlay is mounted, other processes such as kmscon, udev and guix-daemon may open files from the store, preventing the underlying install support from being umounted. See: https://lists.gnu.org/archive/html/guix-devel/2018-12/msg00161.html. To avoid this situation, mount the store overlay inside a container, and run the installation from within that container. * gnu/build/shepherd.scm (fork+exec-command/container): New procedure. * gnu/services/base.scm (guix-shepherd-service): Support an optional PID argument passed to the "start" method. If that argument is passed, ensure that guix-daemon enters the given PID MNT namespace by using fork+exec-command/container procedure. * gnu/installer/final.scm (umount-cow-store): Remove it, (install-system): run the installation from within a container. * gnu/installer/newt/final.scm (run-install-shell): Remove the display hack.
* installer: Add NTFS support.Mathieu Othacehe2020-07-26
| | | | | | | | | | | | This adds support for creating and editing NTFS partitions. It is however not possible yet to create root NTFS partitions, as overlaying on top of a fuse partition does not seem supported. * gnu/installer.scm (installer-program): Add "ntfs-3g" to the inputs. * gnu/installer/parted.scm (user-fs-type-name, user-fs-type->mount-type, partition-filesystem-user-type, create-ntfs-file-system, format-user-partitions): Add NTFS support. * gnu/installer/newt/partition.scm (run-fs-type-page): Add NTFS support.
* installer: final: Make sure 'bold' font files are loaded.Mathieu Othacehe2020-06-14
| | | | | * gnu/installer/newt/final.scm (run-install-shell): Force kmscon to open 'bold' font files, before the cow-store overlay is mounted.
* installer: Include empty variant in keyboard layout selection.Florian Pelz2020-04-09
| | | | | | | | Previously for Azerbaijani, no Latin layout but only the Cyrillic variant could be selected. * gnu/installer/newt/keymap.scm (add-empty-variant): New procedure. (run-keymap-page): Use it to insert an empty variant.
* installer: Allow Alt+Shift toggle from non-Latin keyboard layouts.Florian Pelz2020-04-09
| | | | | | | | | | | | | | | | | Fixes <https://bugs.gnu.org/40493>. * gnu/installer/newt/keymap.scm (%non-latin-layouts): New variable. (%non-latin-variants): New variable. (%latin-layout+variants): New variable. (toggleable-latin-layout): New procedure to compute combined layouts. (run-keymap-page): Use it. (keyboard-layout->configuration): Apply it in config.scm. (run-layout-page): Mention Alt+Shift. * gnu/installer/keymap.scm (kmscon-update-keymap): Pass on XKB options. * gnu/installer/record.scm (<installer>): Adjust code comments. * gnu/installer.scm (apply-keymap): Pass on XKB options. (installer-steps): Adjust code comments. * gnu/packages/patches/kmscon-runtime-keymap-switch.patch: Apply XKB options.
* installer: Add proxy support.Mathieu Othacehe2020-04-08
| | | | | | | | * gnu/installer/proxy.scm: New file. * gnu/local.mk (INSTALLER_MODULES): Add it. * po/guix/POTFILES.in: Add it. * gnu/installer/newt/parameters.scm (run-proxy-page): New procedure, (run-parameters-page): add the previous procedure to the parameters menu.
* installer: Turn help menu into parameters menu.Mathieu Othacehe2020-04-08
| | | | | | | | | | | * gnu/local.mk (INSTALLER_MODULES): Rename help.scm into parameters.scm. * po/guix/POTFILES.in: Ditto. * gnu/installer/record.scm (<installer>): Rename help-menu into parameter-menu and help-page into parameters-page. * gnu/installer/newt/parameters.scm: Renamed from help.scm. Update information messages. * gnu/installer/newt.scm: Update accordingly. * gnu/installer/newt/keymap.scm: Ditto.
* installer: Reduce height of the help window.Ludovic Courtès2020-04-07
| | | | * gnu/installer/newt/help.scm (run-help-page): Pass #:listbox-height.
* installer: Adapt to Guile-newt revision 2.Mathieu Othacehe2020-04-06
| | | | | | | | * gnu/installer/newt/page.scm (run-input-page): Remove component argument that is not longer passed to the procedure passed to 'add-component-callback', (run-listbox-selection-page): ditto. * gnu/installer/newt/user.scm (run-user-add-page): Ditto, (run-user-add-page): ditto.
* installer: Add a help page.Mathieu Othacehe2020-04-06
| | | | | | | | | | | | | | | | | | | | * gnu/installer/newt/help.scm: New file. * gnu/local.mk (INSTALLER_MODULES): Add it. * po/guix/POTFILES.in: Add it. * gnu/installer/record.scm (<installer>): Add 'help-menu' and 'help-page' fields, (installer-help-menu, installer-help-page): new exported procedures. * gnu/installer/newt.scm (init): Set the help line, (help-menu, help-page): new procedures used ... (newt-installer): ... here. * gnu/installer/newt/keymap.scm (run-layout-page): Add a context argument to differenciate the help context from the main one, (run-keymap-page): add a context argument and pass it to run-layout-page. * gnu/installer.scm (compute-keymap-step): Add a context argument and pass it to 'installer-keymap-page', (installer-steps): set the help menu and pass the appropriate context to compute-keymap-step calls, (guile-newt): update to revision 2.
* installer: Run commands without hopping through the shell.Ludovic Courtès2020-03-05
| | | | | | | | | | * gnu/installer/utils.scm (run-shell-command): Rename to... (run-command): Remove call to 'call-with-temporary-output-file' and hop through Bash. Expect COMMAND to be a list of strings rather than a string. * gnu/installer/final.scm (install-system): Turn INSTALL-COMMAND into a list of strings and pass it to 'run-command'. * gnu/installer/newt/page.scm (edit-file): Likewise.
* installer: Bypass connectivity check when /tmp/installer-assume-online exists.Ludovic Courtès2020-03-05
| | | | | | | | This is useful for automated tests. * gnu/installer/newt/network.scm (wait-service-online)[online?]: New procedure. Check for /tmp/installer-assume-online. Use it instead of 'connman-online?'.
* installer: Implement a dialog on /var/guix/installer-socket.Ludovic Courtès2020-03-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This will allow us to automate testing of the installer. * gnu/installer/utils.scm (%client-socket-file) (current-server-socket, current-clients): New variables. (open-server-socket, call-with-server-socket): New procedure. (with-server-socket): New macro. (run-shell-command): Add call to 'send-to-clients'. Select on both current-input-port and current-clients. * gnu/installer/steps.scm (run-installer-steps): Wrap 'call-with-prompt' in 'with-socket-server'. Call 'sigaction' for SIGPIPE. * gnu/installer/newt/page.scm (watch-clients!, close-port-and-reuse-fd) (run-form-with-clients, send-to-clients): New procedures. (draw-info-page): Add call to 'run-form-with-clients'. (run-input-page): Likewise. Handle EXIT-REASON equal to 'exit-fd-ready. (run-confirmation-page): Likewise. (run-listbox-selection-page): Likewise. Define 'choice->item' and use it. (run-checkbox-tree-page): Likewise. (run-file-textbox-page): Add call to 'run-form-with-clients'. Handle 'exit-fd-ready'. * gnu/installer/newt/partition.scm (run-disk-page): Pass #:client-callback-procedure to 'run-listbox-selection-page'. * gnu/installer/newt/user.scm (run-user-page): Call 'run-form-with-clients'. Handle 'exit-fd-ready'. * gnu/installer/newt/welcome.scm (run-menu-page): Define 'choice->item' and use it. Call 'run-form-with-clients'. * gnu/installer/newt/final.scm (run-install-success-page) (run-install-failed-page): When (current-clients) is non-empty, call 'send-to-clients' without displaying a choice window.
* installer: Fix installer restart dialog.Mathieu Othacehe2020-02-12
| | | | | | | | * gnu/installer/newt/final.scm (run-install-failed-page): Propose between installer resume or restart. Do actually resume the installation by raising an &installer-step-abort condition if "Resume" button is pressed. Otherwise, keep going as the installer will be restarted by login. * gnu/installer.scm (installer-program): Remove the associated TODO comment.
* installer: Make "TRANSLATORS" comment visible.Ludovic Courtès2020-01-23
| | | | | * gnu/installer/newt/user.scm (run-root-password-page): Move "TRANSLATORS" comment right above 'G_' call.
* installer: Disable F12 hot key.Ludovic Courtès2020-01-20
| | | | | | | | | | | | | Fixes <https://bugs.gnu.org/38562>. Reported by Brice Waegeneire <brice@waegenei.re>. Previously, pressing F12 or shift-F2 in one of those forms would cause it to exit, usually with the default value #t because the caller had not provided a useful hotkey "callback". * gnu/installer/newt/page.scm (run-input-page, run-confirmation-page) (run-listbox-selection-page, run-checkbox-tree-page) (run-file-textbox-page): Pass #:flags FLAG-NOF12 to 'make-form'.
* installer: Makes sure the installer proceeds after hitting "Edit".Ludovic Courtès2020-01-20
| | | | | | | | | | Fixes <https://bugs.gnu.org/39199>. Reported by Jonathan Brielmaier <jonathan.brielmaier@web.de>. * gnu/installer/newt/page.scm (run-file-textbox-page): Move 'loop' to the beginning of the body. Do not call 'loop' from the 'dynamic-wind' exit handler as we would not return the value of the second call to 'loop'.
* installer: Add an "Edit" button on the final page.Ludovic Courtès2020-01-12
| | | | | | | | | | | | | | | | Fixes <https://bugs.gnu.org/36885>. Reported by <lukasbf@tutanota.com>. * gnu/installer/newt/page.scm (edit-file): New procedure. (run-file-textbox-page): Add #:edit-button? and #:editor-locale parameters. Remove 'file-text' and add 'edit-button', and add it to the horizontal stacked grid when EXIT-BUTTON? is true. Wrap body in 'loop'. Handle case where ARGUMENT is EDIT-BUTTON by calling 'loop'. * gnu/installer/newt/final.scm (run-config-display-page): Add #:locale parameter. Pass #:edit-button? and #:editor-locale to 'run-file-textbox-page'. (run-final-page): Pass LOCALE to 'run-config-display-page'.
* installer: Add JFS support.Tobias Geerinckx-Rice2020-01-05
| | | | | | | | | | * gnu/installer/newt/partition.scm (run-fs-type-page): Add ‘jfs’ to the list box. * gnu/installer/parted.scm (user-fs-type-name, user-fs-type->mount-type) (partition-filesystem-user-type): Add ‘jfs’ mapping (create-jfs-file-system): New procedure. (format-user-partitions): Use it. * gnu/installer.scm (set-installer-path): Add jfsutils.
* installer: Update to Guile-Parted 0.0.2 release.Mathieu Othacehe2019-09-25
| | | | | | | | | * gnu/installer/parted.scm (data-partition?, metadata-partition?, freespace-partition?, normal-partition?, extended-partition?, logical-partition?): Remove, as now provided by Guile-Parted. * gnu/installer/newt/partition.scm (run-disk-page): Remove disk-destroy calls, replace disk-delete-all by disk-remove-all-partitions and disk-delete-partition by disk-remove-partition*.
* installer: Fix run-input-page calls.Mathieu Othacehe2019-09-23
| | | | | | | | This fixes 55c43108 commit that renamed input-hide-checkbox? into input-visibility-checkbox?. * gnu/installer/newt/partition.scm (prompt-luks-passwords): Rename input-hide-checkbox? into input-visibility-checkbox?.
* installer: Hide the Wi-Fi passphrase by default.Tobias Geerinckx-Rice2019-08-26
| | | | | * gnu/installer/newt/wifi.scm (run-wifi-password-page): Add an #:INPUT-VISIBILITY-CHECKBOX? to the input page.
* installer: Show, don't Hide.Tobias Geerinckx-Rice2019-08-26
| | | | | | | * gnu/installer/newt/user.scm (run-user-add-page): Change the input visibility checkbox's text to ‘Show’, and default to unchecked. * gnu/installer/newt/page.scm (run-input-page): Likewise. Rename INPUT-HIDE-CHECKBOX? argument to INPUT-VISIBILITY-CHECKBOX?.
* installer: Fix typo.Tobias Geerinckx-Rice2019-06-08
| | | | * gnu/installer/newt/network.scm (run-technology-page): Fix plural typo.
* installer: Fix wifi menu crash with hidden SSIDs.Mathieu Othacehe2019-05-29
| | | | | | | | | | This fixes https://issues.guix.gnu.org/issue/35622. * gnu/installer/connman.scm (<service>): Mention that name may be false. * gnu/installer/newt/wifi.scm (wifi-services): Filter out wifi services without name. Co-authored by: Pierre Neidhardt <mail@ambrevar.xyz>
* installer: Fix Guile-Parted crash on i686.Ludovic Courtès2019-05-19
| | | | | | | | | | | | | Fixes <https://bugs.gnu.org/35783>. This is a followup to 7d567af46b4e10ffafb1d0f76b524f5781460598. * gnu/installer/parted.scm (auto-partition!): Append ESP-PARTITION, when it is true, to the result of 'create-adjacent-partitions!'. * gnu/installer/newt/partition.scm (run-partioning-page): Remove 'initial-partitions' variable, and remove call to 'create-special-user-partitions'. Co-authored-by: Mathieu Othacehe <m.othacehe@gmail.com>
* installer: Rename 'auto-partition' to 'auto-partition!'.Ludovic Courtès2019-05-15
| | | | | | | | | | | This is a followup to 7d567af46b4e10ffafb1d0f76b524f5781460598. * gnu/installer/parted.scm (create-adjacent-partitions): Rename to... (create-adjacent-partitions!): ... this. Make private. (auto-partition): Rename to... (auto-partition!): ... this. * gnu/installer/newt/partition.scm (run-partioning-page): Adjust accordingly.
* installer: Mount ESP once only.Ludovic Courtès2019-05-15
| | | | | | | | | | | | Fixes <https://bugs.gnu.org/35731>. * gnu/installer/newt/partition.scm (run-partioning-page)[run-page]: Introduce 'initial-partitions' variable. Previously we'd call 'disk-partitions' after 'auto-partition' had done its job of creating new partitions, and thus its result would contain the just-created partitions. Consequently, 'create-special-user-partitions' would return the ESP partition we just created, and thus it would appear twice in the list.