Commit graph

123 commits

Author SHA1 Message Date
Mathieu Othacehe
c2396ceb6e
installer: parameters: Add a reboot button.
Suggested by: zimoun <zimon.toutoune@gmail.com>.

* gnu/installer/newt/parameters.scm (run-parameters-page): Add a reboot
button.
2020-11-07 18:17:32 +01:00
Mathieu Othacehe
6dcbbcdab7
installer: Edit partitioning warning message.
* gnu/installer/newt/partition.scm (draw-formatting-page): Add an extra new
line.
2020-11-07 13:19:25 +01:00
Mathieu Othacehe
8338d414b3
installer: Limit listbox height.
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.
2020-11-07 13:19:25 +01:00
Miguel Ángel Arruga Vivas
bc9e66f0fe
installer: Report to the user the formatted partitions.
* 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.
2020-11-02 03:42:08 +01:00
Ludovic Courtès
1c6d985331
installer: Use UUIDs in the 'swap-devices' field.
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.
2020-10-30 01:14:21 +01:00
Ludovic Courtès
6d1fd37182
installer: Log partition formatting.
* gnu/installer/newt/partition.scm (run-partitioning-page): Add 'syslog' call.
2020-10-28 16:24:47 +01:00
Ludovic Courtès
bfb65a6768
installer: Make the network management selection window tighter.
* gnu/installer/newt/services.scm (run-network-management-page): Pass
 #:listbox-height.
2020-10-23 16:35:38 +02:00
Jan (janneke) Nieuwenhuizen
1197b8b20f
installer: Add Emacs EXWM desktop environment.
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.
2020-10-13 21:17:40 +02:00
Tobias Geerinckx-Rice
5e17ae7fbd
installer: Rename RUN-PARTIONING-PAGE.
* gnu/installer/newt/partition.scm (run-partioning-page): Rename to
run-partitioning-page.  Adjust all callers.
2020-09-21 00:31:15 +02:00
Tobias Geerinckx-Rice
e1f3788944
installer: Fix docstring typoes.
* gnu/installer/connman.scm (connman-state, run-locale-page)
(start-swapping, stop-swapping, run-installer-steps): Fix typo in
docstring.
2020-09-21 00:31:15 +02:00
Mathieu Othacehe
8ce6f4dc28
installer: Run the installation inside a container.
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.
2020-09-02 17:05:23 +02:00
Mathieu Othacehe
218a67dfab
installer: Add NTFS support.
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.
2020-07-26 18:35:10 +02:00
Mathieu Othacehe
876a8d9870
installer: final: Make sure 'bold' font files are loaded.
* gnu/installer/newt/final.scm (run-install-shell): Force kmscon to open
'bold' font files, before the cow-store overlay is mounted.
2020-06-14 17:42:36 +02:00
Florian Pelz
7bc71025cc
installer: Include empty variant in keyboard layout selection.
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.
2020-04-09 03:45:22 +00:00
Florian Pelz
91c231a222
installer: Allow Alt+Shift toggle from non-Latin keyboard layouts.
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.
2020-04-09 02:42:54 +00:00
Mathieu Othacehe
ee0ad7803c
installer: Add proxy support.
* 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.
2020-04-08 10:24:02 +02:00
Mathieu Othacehe
07a53bd512
installer: Turn help menu into parameters menu.
* 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.
2020-04-08 10:24:02 +02:00
Ludovic Courtès
e2385584db
installer: Reduce height of the help window.
* gnu/installer/newt/help.scm (run-help-page): Pass #:listbox-height.
2020-04-07 12:31:36 +02:00
Mathieu Othacehe
d52111450a
installer: Adapt to Guile-newt revision 2.
* 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.
2020-04-06 15:06:03 +02:00
Mathieu Othacehe
786c9c39bc
installer: Add a help page.
* 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.
2020-04-06 15:06:03 +02:00
Ludovic Courtès
8a4b11c6a9
installer: Run commands without hopping through the shell.
* 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.
2020-03-05 23:40:23 +01:00
Ludovic Courtès
f901f5d2bc
installer: Bypass connectivity check when /tmp/installer-assume-online exists.
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?'.
2020-03-05 23:40:22 +01:00
Ludovic Courtès
63b8c089c1
installer: Implement a dialog on /var/guix/installer-socket.
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.
2020-03-05 23:40:22 +01:00
Mathieu Othacehe
d008352bfb
installer: Fix installer restart dialog.
* 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.
2020-02-12 10:52:17 +01:00
Ludovic Courtès
6bd072ff66
installer: Make "TRANSLATORS" comment visible.
* gnu/installer/newt/user.scm (run-root-password-page): Move
"TRANSLATORS" comment right above 'G_' call.
2020-01-23 11:26:54 +01:00
Ludovic Courtès
37eda8c044
installer: Disable F12 hot key.
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'.
2020-01-20 23:21:00 +01:00
Ludovic Courtès
48659aa221
installer: Makes sure the installer proceeds after hitting "Edit".
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'.
2020-01-20 23:20:59 +01:00
Ludovic Courtès
9ced0f376b
installer: Add an "Edit" button on the final page.
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'.
2020-01-12 23:26:39 +01:00
Tobias Geerinckx-Rice
8fec416cec
installer: Add JFS support.
* 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.
2020-01-05 02:40:07 +01:00
Mathieu Othacehe
70c7b7c799
installer: Update to Guile-Parted 0.0.2 release.
* 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*.
2019-09-25 16:03:23 +02:00
Mathieu Othacehe
3dd3ac4d83
installer: Fix run-input-page calls.
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?.
2019-09-23 13:55:50 +02:00
Tobias Geerinckx-Rice
3c56d03033
installer: Hide the Wi-Fi passphrase by default.
* gnu/installer/newt/wifi.scm (run-wifi-password-page):
Add an #:INPUT-VISIBILITY-CHECKBOX? to the input page.
2019-08-26 15:56:33 +02:00
Tobias Geerinckx-Rice
55c43108ac
installer: Show, don't Hide.
* 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?.
2019-08-26 15:56:32 +02:00
Tobias Geerinckx-Rice
232a7e69ce
installer: Fix typo.
* gnu/installer/newt/network.scm (run-technology-page): Fix plural typo.
2019-06-08 02:30:25 +02:00
Mathieu Othacehe
694cb8dc62
installer: Fix wifi menu crash with hidden SSIDs.
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>
2019-05-29 11:44:49 +02:00
Ludovic Courtès
d68de958b6
installer: Fix Guile-Parted crash on i686.
Fixes <https://bugs.gnu.org/35783>.
This is a followup to 7d567af46b.

* 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>
2019-05-19 11:58:36 +02:00
Ludovic Courtès
1537464819
installer: Rename 'auto-partition' to 'auto-partition!'.
This is a followup to 7d567af46b.

* 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.
2019-05-15 16:36:20 +02:00
Ludovic Courtès
7d567af46b
installer: Mount ESP once only.
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.
2019-05-15 12:18:51 +02:00
Danny Milosavljevic
1a92f1ff1c
installer: Add fat16.
* gnu/installer/newt/partition.scm (run-fs-type-page): Add fat16.
2019-05-14 18:01:10 +02:00
Mathieu Othacehe
2bfb3883b9
installer: Reflow run-file-textbox-page text.
* gnu/installer/newt/page.scm (run-file-textbox-page): Reflow text.

Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org>
2019-05-14 18:01:10 +02:00
Ludovic Courtès
ef250707d3
installer: Allow for arbitrary long passphrases and passwords.
Fixes <https://bugs.gnu.org/35716>.
Reported by sirmacik <sirmacik@wioo.waw.pl>.

* gnu/installer/newt/page.scm (run-input-page): Add FLAG-SCROLL to
INPUT-FLAGS*.
* gnu/installer/newt/user.scm (run-user-add-page): Add FLAG-SCROLL to
ENTRY-PASSWORD.
2019-05-14 12:11:04 +02:00
Ludovic Courtès
fb98e430d4
installer: Add missing 'G_' call.
* gnu/installer/newt/user.scm (run-user-page): Add 'G_' call for "User
creation".
2019-05-09 12:11:36 +02:00
Ludovic Courtès
91936f153a
installer: "Exit" button in user page actually exits.
Fixes <https://bugs.gnu.org/35607>.
Reported by Florian Pelz <pelzflorian@pelzflorian.de>.

* gnu/installer/newt/user.scm (run-user-page): Add 'cond' clause for
ARGUMENT = EXIT-BUTTON.
2019-05-07 12:18:44 +02:00
Mathieu Othacehe
445bd4d5e5
installer: Add password 'hide' checkbox.
* gnu/installer/newt/page.scm (run-input-page)[input-hide-checkbox?]: New
parameter adding a checkbox to toggle password hiding. By default, the
checkbox is active and the password is hence hided.
* gnu/installer/newt/partition.scm (prompt-luks-passwords): Enable the
previous parameter on both password input pages.
* gnu/installer/newt/user.scm (run-root-password-page): Enable the previous
parameter,
(confirm-password): ditto,
(run-user-add-page): add a checkbox to toggle password hiding.
2019-05-07 09:25:45 +02:00
Ludovic Courtès
46c102ca5e
installer: Skip network selection dialogs when there is no choice.
Previously, for a machine that only has wired networking, and only one
such network, we'd have to go through two selection boxes.  Now we just
skip both.

* gnu/installer/newt/ethernet.scm (run-ethernet-page): When
'ethernet-services' returns one element, return it directly without
opening a listbox selection.
* gnu/installer/newt/network.scm (run-technology-page): Likewise.
2019-05-06 23:21:33 +02:00
Ludovic Courtès
d1e5f758e1
installer: Shrink simple listboxes to their minimum height.
* gnu/installer/newt/partition.scm (run-partioning-page): Pass
 #:listbox-height.
(run-scheme-page): Likewise.
(run-device-page): Likewise.
* gnu/installer/newt/network.scm (run-technology-page): Likewise.
* gnu/installer/newt/ethernet.scm (run-ethernet-page): Likewise.
2019-05-06 23:21:33 +02:00
Ludovic Courtès
1d8da896be
installer: Do not sort methods on the partitioning page.
* gnu/installer/newt/partition.scm (run-partioning-page): Pass
 #:sort-listbox-items? #f so that methods always appear in the same
 order.
2019-05-06 23:21:33 +02:00
Ludovic Courtès
04f4bdcd70
installer: Widen user dialog.
* gnu/installer/newt/user.scm (run-user-add-page)[pad-label]: Increase
2nd argument to 25.
[entry-width]: Increase to 35.
2019-05-06 23:21:32 +02:00
Miguel
28b26eca45
installer: Fix typo.
* gnu/installer/newt/menu.scm (run-menu-page): Add missing space after
period.

Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org>
2019-05-05 17:21:18 +02:00
Ludovic Courtès
9d2d9cb14b
installer: Do not sort the guided partition schemes in the selection page.
Previously, the "Everything is one partition" entry would come first in
English but it would be second in French.  This change keeps it the
first choice regardless of the language.

* gnu/installer/newt/partition.scm (run-scheme-page): Pass
 #:sort-listbox-items? to 'run-scheme-page'.
2019-05-03 13:50:49 +02:00