Commit Graph

74 Commits

Author SHA1 Message Date
Mathieu Othacehe bf304dbcea
installer: partionment: Add encryption support.
* gnu/installer.scm (set-installer-path): Add cryptsetup.
* gnu/installer/newt/partition.scm (prompt-luks-passwords): New procedure,
(run-partioning-page): Add the possibility to set encryption to "On" on a
partition and choose a label, add a new partition scheme: "Guided - using the
entire disk with encryption", prompt for encryption passwords before
proceeding to formating.
* gnu/installer/parted.scm (<user-partition>)[crypt-label],
[crypt-password]: New fields,
(partition-description): add the encryption label,
(user-partition-description): add an encryption field,
(auto-partition): add two partitioning schemes: entire-crypted-root and
entire-crypted-root-home,
(call-with-luks-key-file): new procedure,
(user-partition-upper-path): new procedure,
(luks-format-and-open): new procedure,
(luks-close): new procedure,
(format-user-partitions): format and open luks partitions before creating
file-system.
(mount-user-partitions): use the path returned by user-partition-upper-path,
(umount-user-partitions): close the luks partitions,
(user-partition->file-system): set device field to label for luks partitions
and to uuid for the rest,
(user-partition->mapped-device): new procedure,
(user-partitions->configuration): add mapped-devices field.
2019-01-17 14:04:26 +01:00
Mathieu Othacehe 71cd8a5870
installer: partition: Fix typo.
* gnu/installer/newt/partition.scm (run-disk-page): Fix typo.
2019-01-17 14:04:26 +01:00
Mathieu Othacehe a7b2a4649f
installer: menu: Fix typo.
* gnu/installer/newt/menu.scm (run-menu-page): Fix typo.
2019-01-17 14:04:26 +01:00
Mathieu Othacehe ee4004b392
installer: partition: Precise when using Manual/Guided partionment.
* gnu/installer/newt/partition.scm (run-disk-page)[guided?]: New argument.
Use guided? to determine if we are proceeding to a guided or a manuel
partitioning and precise it the title and info-text.
2019-01-17 14:04:26 +01:00
Mathieu Othacehe 3d0f6a055c
installer: Make exit button optional for run-file-textbox-page.
* gnu/installer/newt/page.scm (run-file-textbox-page)[exit-button?]: New argument.
2019-01-17 14:04:25 +01:00
Mathieu Othacehe d700d131be
installer: Make sure every sentence is dot terminated.
gnu/installer/newt/hostname.scm: Finish sentences by a dot.
gnu/installer/newt/network.scm: Ditto.
gnu/installer/newt/page.scm: Ditto.
gnu/installer/newt/partition.scm: Ditto.
gnu/installer/newt/user.scm: Ditto.
gnu/installer/newt/wifi.scm: Ditto.
2019-01-17 14:04:25 +01:00
Mathieu Othacehe cbeb27025f
installer: partition: Differenciate Back button from Exit button.
* gnu/installer/newt/partition.scm (run-label-page): Pass the button text as
an argument,
(run-disk-page): Call run-label-page with the appropriate button text.
2019-01-17 14:04:25 +01:00
Mathieu Othacehe 77c00b1e57
installer: network: Do not show an empty technology list.
If no technology is detected, ask the user if he prefers to continue or to
exit the installer.

* gnu/installer/newt/network.scm (run-technology-page): Run a choice-window if
technology-items procedure returns an empty list.
2019-01-17 14:04:25 +01:00
Mathieu Othacehe 9e58d4e90e
installer: keymap: Fix keymap selection of layouts with not variant.
* gnu/installer/newt/keymap.scm (run-keymap-page): Test if the layout has no
variant at 'variant step, instead of raising a condition at 'layout step.
2019-01-17 14:04:25 +01:00
Mathieu Othacehe 7d812901da
installer: Turn "Cancel" buttons into "Exit" buttons.
This change and previous ones were,
Suggested-by: Thorsten Wilms <t_w_@freenet.de>
here: https://lists.gnu.org/archive/html/guix-devel/2018-11/msg00330.html

gnu/installer/newt/ethernet.scm: Turn cancel into exit.
gnu/installer/newt/final.scm: Ditto.
gnu/installer/newt/keymap.scm: Ditto.
gnu/installer/newt/locale.scm: Ditto.
gnu/installer/newt/network.scm: Ditto.
gnu/installer/newt/page.scm: Ditto.
gnu/installer/newt/partition.scm: Ditto.
gnu/installer/newt/services.scm: Ditto.
gnu/installer/newt/timezone.scm: Ditto.
gnu/installer/newt/user.scm: Ditto.
gnu/installer/newt/wifi.scm: Ditto.
2019-01-17 14:04:25 +01:00
Mathieu Othacehe 30cf5e0426
installer: locale: Set English as the default language.
* gnu/installer/newt/locale.scm (sort-languages): New procedure ...
(run-locale-page)[locale-steps]: ... used here to make english the default
language.
2019-01-17 14:04:24 +01:00
Mathieu Othacehe 30b4df8627
installer: locale: Make clear that the point is to select a glibc locale.
* gnu/installer/newt/locale.scm (run-language-page): Be more specific about
what is a locale and what are the different steps involved in the info messages.
2019-01-17 14:04:24 +01:00
Mathieu Othacehe 54754efc91
installer: Fix compute calls.
* gnu/installer/newt/keymap.scm (run-keymap-page): Add missing argument to
compute procedure.
* gnu/installer/newt/network.scm (run-network-page): Ditto.
2019-01-17 14:04:24 +01:00
Mathieu Othacehe 35e99a23b5
installer: Remove group selection in user page.
Assume that the user's group is always "users".

* gnu/installer/newt/user.scm (run-user-add-page): Remove group fields,
(run-user-page): ditto.
2019-01-17 14:04:24 +01:00
Mathieu Othacehe 69a934f23a
installer: Add partitioning support.
* gnu/installer.scm (installer-steps): Add partitioning step.
* gnu/installer/newt.scm (newt-installer): Add partition-page field.
* gnu/installer/newt/partition.scm: New file.
* gnu/installer/parted.scm: New file.
* gnu/installer/record (installer): New partition-page field.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add new files.
* po/guix/POTFILES.in: Add new files.
2019-01-17 14:04:24 +01:00
Mathieu Othacehe fb1675cbca
installer: Fix ethernet connection.
* gnu/installer/newt/ethernet.scm (connect-ethernet-service): Return the
service passed as parameter.
2019-01-17 14:04:23 +01:00
Mathieu Othacehe 6aa625c2f8
installer: Redirect to TTY3 root shell for unguided install.
* gnu/installer/newt/welcome.scm (run-welcome-page): Switch to TTY3 for
unguided shell based install.
2019-01-17 14:04:23 +01:00
Mathieu Othacehe 29d8d9196b
installer: Add new pages.
* gnu/installer/newt/page.scm (run-scale-page): New exported procedure,
(run-checkbox-tree-page): ditto,
(run-file-textbox-page): ditto.
2019-01-17 14:04:23 +01:00
Mathieu Othacehe b51bde71a9
installer: Add services page.
Add a page to select services, for now only desktop environments choice is
available.

* gnu/installer.scm (steps): Add services step.
* gnu/installer/newt.scm (newt-installer): Add services-page field.
* gnu/installer/newt/services.scm: New file.
* gnu/installer/record.scm (installer): Add services-page field.
* gnu/installer/services.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add new files.
* po/guix/POTFILES.in: Add new files.
2019-01-17 14:04:23 +01:00
Mathieu Othacehe c088b2e47f
installer: Do not ask for keyboard model.
Suppose that the keyboard model is "pc105".

* gnu/installer.scm (apply-keymap): Remove model ...
* gnu/installer/newt/keymap.scm (run-keymap-page): passed here.
(run-model-page): remove procedure
* gnu/installer/record.scm (installer): Edit keymap-page prototype in comment.
* gnu/installer/keymap.scm (default-keyboard-model): New exported parameter.
2019-01-17 14:04:23 +01:00
Mathieu Othacehe dc5f3275ec
installer: Add configuration formatter.
* gnu/installer.scm (installer-steps): Add configuration-formatter procedures.
* gnu/installer/final.scm: New file.
* gnu/installer/locale.scm (locale->configuration): New exported procedure.
* gnu/installer/newt.scm (newt-installer): Add final page.
* gnu/installer/newt/final.scm: New file.
* gnu/installer/record.scm (installer): Add final-page field.
* gnu/installer/timezone.scm (posix-tz->configuration): New exported
procedure.
* gnu/installer/steps.scm (installer-step): Rename configuration-proc field to
configuration-formatter.
(%installer-configuration-file): New exported parameter,
(%installer-target-dir): ditto,
(%configuration-file-width): ditto,
(format-configuration): new exported procedure,
(configuration->file): new exported procedure.
2019-01-17 14:04:22 +01:00
Mathieu Othacehe 5cdb6bd2db
installer: Remove "selection" from all titles.
* gnu/installer/newt/hostname.scm (run-hostname-page): Remove selection from
page title,
(run-variant-page): ditto.
* gnu/installer/newt/keymap.scm (run-layout-page): Ditto.
* gnu/installer/newt/locale.scm (run-layout-page): Ditto,
(run-territory-page): ditto,
(run-codeset-page): ditto,
(run-modifier-page): ditto
* gnu/installer/newt/network.scm (run-territory-page): Ditto.
* gnu/installer/newt/timezone.scm (run-timezone-page): Ditto.
* gnu/installer/newt/wifi.scm (run-wifi-page): Ditto.
2019-01-17 14:04:22 +01:00
Mathieu Othacehe 113bdf6ae1
installer: Rewrite welcome page.
The welcome page is the only page using absolute positioning for the newt
components, so that the page occupies all the screen space. This is becoming
too hard to manage, so switch to grid management like elsewhere, even if the
result is less appealing.

Also add an info text to the page with a mention on how to switch back to the
original installer.

* gnu/installer/newt/welcome.scm (run-menu-page): Use a vertically stacked
grid instead of hard window placement.
2019-01-17 14:04:21 +01:00
Mathieu Othacehe d0f3a672dc
gnu: Add graphical installer support.
* configure.ac: Require that guile-newt is available.
* gnu/installer.scm: New file.
* gnu/installer/aux-files/logo.txt: New file.
* gnu/installer/build-installer.scm: New file.
* gnu/installer/connman.scm: New file.
* gnu/installer/keymap.scm: New file.
* gnu/installer/locale.scm: New file.
* gnu/installer/newt.scm: New file.
* gnu/installer/newt/ethernet.scm: New file.
* gnu/installer/newt/hostname.scm: New file.
* gnu/installer/newt/keymap.scm: New file.
* gnu/installer/newt/locale.scm: New file.
* gnu/installer/newt/menu.scm: New file.
* gnu/installer/newt/network.scm: New file.
* gnu/installer/newt/page.scm: New file.
* gnu/installer/newt/timezone.scm: New file.
* gnu/installer/newt/user.scm: New file.
* gnu/installer/newt/utils.scm: New file.
* gnu/installer/newt/welcome.scm: New file.
* gnu/installer/newt/wifi.scm: New file.
* gnu/installer/steps.scm: New file.
* gnu/installer/timezone.scm: New file.
* gnu/installer/utils.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add previous files.
* gnu/system.scm: Export %root-account.
* gnu/system/install.scm (%installation-services): Use kmscon instead of linux
VT for all tty.
(installation-os)[users]: Add the graphical installer as shell of the root
account.
[packages]: Add font related packages.
* po/guix/POTFILES.in: Add installer files.
2019-01-17 14:04:20 +01:00