Commit graph

195 commits

Author SHA1 Message Date
Ludovic Courtès
7253c2b629
installer: Add #:selection parameter to 'run-checkbox-tree-page'.
* gnu/installer/newt/page.scm (%none-selected): New variable.
(run-checkbox-tree-page): Add #:selection.
[fill-checkbox-tree]: Honor it.
2019-04-28 22:57:07 +02:00
Ludovic Courtès
7dbdbbfd6e
installer: Add missing i18n in the partitioning pages.
* gnu/installer/newt/partition.scm (run-scheme-page): Add missing 'G_'
for ITEMS.
(run-partioning-page): Likewise.
(run-partition-page): Move misplaced call to 'G_'.
2019-04-27 19:31:50 +02:00
Ludovic Courtès
98f035482f
installer: Actually reboot when the user presses "Reboot."
* gnu/installer/newt/final.scm (run-install-success-page): Return
'success.
* gnu/installer.scm (installer-program): Check the result of the 'final
step and reboot upon success.
2019-04-26 14:19:36 +02:00
Ludovic Courtès
9529f7850e
installer: Take 'guix system init' exit code into account.
This allows the installer to distinguish success from failure, and also
ensures the shell that runs 'guix system init' exits upon completion.

* gnu/installer/utils.scm (run-shell-command)[pause]: New procedure.
Add "exec" before COMMAND in the script.  Guard 'invoke' call and handle
'invoke-error?'.  Add call to 'pause' on completion.
* gnu/installer/final.scm (install-system): Remove 'false-if-exception'.
2019-04-26 14:19:36 +02:00
Ludovic Courtès
187122b902
installer: Ask for confirmation of the user passwords.
* gnu/installer/newt/user.scm (run-user-add-page): Add #:name and
 #:home-directory and honor them.  Add call to 'confirm-password'.
2019-04-25 12:23:54 +02:00
Ludovic Courtès
8f2b7e3cb4
installer: Ask for confirmation of the root password.
* gnu/installer/newt/user.scm (confirm-password): New procedure.
(run-root-password-page): Add call to 'confirm-password'.
2019-04-25 12:23:54 +02:00
Ludovic Courtès
453c976501
installer: Use FLAG-PASSWORD for the encryption passphrase confirmation.
* gnu/installer/newt/partition.scm (prompt-luks-passwords)
<password-confirm-page>: Pass #:input-flags to 'run-input-page'.
2019-04-25 12:23:54 +02:00
Ludovic Courtès
e7c7b73320
installer: Preserve order of user accounts.
* gnu/installer/newt/user.scm (run-user-page): Add call to 'reverse'.
2019-04-25 00:45:35 +02:00
Ludovic Courtès
91a7c4998f
installer: Ask for the root account password.
Fixes <https://bugs.gnu.org/35399>.

* gnu/installer/newt/user.scm (run-root-password-page): New procedure.
* gnu/installer/user.scm (users->configuration): Filter out the "root"
account.
* gnu/installer/final.scm (create-user-database): Set 'uid' field in
'user-account' form.
2019-04-25 00:45:35 +02:00
Ludovic Courtès
399c31d40a
installer: 'run-input-page' has a new #:input-flags parameter.
* gnu/installer/newt/page.scm (run-input-page): Add #:input-flags and
honor it.
2019-04-25 00:45:35 +02:00
Ludovic Courtès
898677ed17
installer: Ask for user password and initialize /etc/shadow.
Partly fixes <https://bugs.gnu.org/35399>.

* gnu/installer/user.scm (<user>)[password]: New field.
* gnu/installer/final.scm (%seed): New variable.
(integer->alphanumeric-char, random-string)
(create-user-database): New procedures.
(install-system): Call 'create-user-database'.
* gnu/installer/newt/final.scm (run-install-shell): Add #:users and pass
it to 'install-system'.
(run-final-page): Pass #:users to 'run-install-shell'.
* gnu/installer/newt/user.scm (run-user-add-page): Add password entry.
Pass its result as the 'password' field of <user>.
2019-04-25 00:45:34 +02:00
Ludovic Courtès
3cc033f2a8
installer: Add missing 'G_' for networking message.
* gnu/installer/newt/network.scm (wait-technology-powered): Add missing
'G_'.
2019-04-25 00:45:34 +02:00
Ludovic Courtès
7611074f67
installer: Run 'guix system init' with the right locale.
* gnu/installer/utils.scm (run-shell-command): Add #:locale and honor it.
* gnu/installer/newt/final.scm (run-install-shell): Add 'locale'
parameter; pass it to 'install-system'.
(run-final-page): Obtain locale from RESULT; pass it to 'run-install-shell'.
* gnu/installer/final.scm (install-system): Add 'locale' parameter; pass
it to 'run-shell-command'.
2019-04-23 00:34:47 +02:00
Mathieu Othacehe
33023baac8
installer: Fix skip-to-step issue.
When trying to jump to the first step, DONE-STEPS ends-up being null, which
fails the matching condition.

* gnu/installer/steps.scm (skip-to-step): Split matching conditions to handle
the empty DONE-STEPS case properly.
2019-04-21 12:12:11 +02:00
Ludovic Courtès
9015e63996
installer: Sort keyboard layouts according to language and translations.
Previously, we would always (1) put English first, and (2) sort the
other layouts based on their English description.  This fixes both
issues.

* gnu/installer/newt/keymap.scm (sort-layouts)[layout<?]: New procedure.
[preferred]: New variable.
Partition according to both the 'name' and 'synopsis' fields.  Sort both
the main layouts and the other layouts according to 'layout<?'.
2019-04-17 15:16:08 +02:00
Ludovic Courtès
818595a974
installer: Parse the 'shortDescription' field from xkeyboard-config.
* gnu/installer/keymap.scm (<x11-keymap-layout>)[synopsis]: New field.
(xkb-rules->models+layouts): Fill out the 'synopsis' field.
2019-04-17 15:13:31 +02:00
Ludovic Courtès
feaa83a377
installer: Translate keyboard layout names.
* gnu/installer.scm (installer-program)[installer-builder]: Call
'bindtextdomain' for "xkeyboard-config".
* gnu/installer/newt/keymap.scm (run-keymap-page): Add calls to
'gettext'.
2019-04-17 15:11:21 +02:00
Ludovic Courtès
14755829dc
installer: Sort items with 'string-locale<?'.
That way "Österreich" comes before "Schweiz" in a German locale (or
pretty much any sane locale.)

* gnu/installer/newt/page.scm (run-listbox-selection-page)[sort-listbox-items]:
Use 'string-locale<?' instead of 'string<=?'.
2019-04-17 11:53:54 +02:00
Ludovic Courtès
7cb7be17af
installer: Look up timezone name translations in "iso_3166-1".
* gnu/installer/newt/timezone.scm (run-timezone-page): Add call to
'gettext' for timezone names.
2019-04-17 11:53:54 +02:00
Ludovic Courtès
7837a57241
installer: Display language and territory names natively.
* gnu/installer.scm (installer-program): Add calls to 'bindtextdomain'.
* gnu/installer/newt/locale.scm (run-locale-page) <language, territory>:
Add calls to 'gettext'.
2019-04-17 11:53:54 +02:00
Ludovic Courtès
2d5867a213
installer: Change language as soon as it has been chosen.
Previously we'd call 'setlocale' only after the complete 'locale' step
had finished.

* gnu/installer/newt/locale.scm (run-language-page): Set the 'LANGUAGE'
environment variable before returning.
2019-04-17 11:53:54 +02:00
Ludovic Courtès
3ad3c55842
installer: Desktop environment page now includes window managers.
* gnu/installer/services.scm (<system-service>)[snippet]: Change to be a
list of sexps and add default value.
[packages]: New field.
(%system-services): Adjust 'snippet' fields to be lists of sexps.
Add Openbox, awesome, i3, and ratpoison.
(system-services->configuration): Adjust 'snippet' handling.  Honor
'packages' field.
2019-04-17 11:53:53 +02:00
Ludovic Courtès
7cd38788e6
installer: Force user to choose exactly one network management method.
Previously, for non-desktop configs, users could choose any number of
network management methods, including 0, 2, or more.

* gnu/installer/newt/services.scm (run-networking-cbt-page): Remove
'network-management?' parameter and select only 'networking services.
(run-network-management-page): New procedure.
(run-services-page): Call it when DESKTOP is the empty list.
2019-04-14 23:40:52 +02:00
Ludovic Courtès
6a0287a155
installer: Fix snippet for the DHCP client.
* gnu/installer/services.scm (%system-services): Fix typo in DHCP client
snippet.
2019-04-14 23:40:52 +02:00
Ludovic Courtès
c9776d5bec
installer: Add wpa-supplicant along with NetworkManager and Connman.
* gnu/installer/services.scm (%system-services) <network-manager,
connman>: Add a 'wpa-supplicant-service-type' instance.
(system-services->configuration): Unsplice it.
2019-04-14 17:42:08 +02:00
Ludovic Courtès
8d75e20e4b
installer: Use 'append' and 'list' instead of 'cons*'.
* gnu/installer/services.scm (system-services->configuration): Use
'append' and 'list' instead of 'cons*'.
2019-04-08 10:42:51 +02:00
Ludovic Courtès
469e56b4af
installer: Generate 'set-xorg-configuration' snippet.
* gnu/installer/services.scm (system-services->configuration): Add
'set-xorg-configuration' service.
* gnu/installer/steps.scm (format-configuration): Add 'xorg' service
module.
2019-04-08 10:42:51 +02:00
Ludovic Courtès
7422f5dae1
installer: Xfce service uses the 'service' form.
* gnu/installer/services.scm (%system-services): Adjust Xfce snippet to
use the 'service' form.
2019-04-08 10:42:51 +02:00
Ludovic Courtès
a886eedfae
installer: Adjust welcome page message.
* gnu/installer/newt/welcome.scm (run-welcome-page): Make the message
less scary.
2019-04-07 22:23:51 +02:00
Ludovic Courtès
62b0f044f1
installer: Internationalize service "names".
* gnu/installer/services.scm (%system-services): Mark networking service
names with 'G_'.
* gnu/installer/newt/services.scm (run-networking-cbt-page): Pass
'system-service-name' through 'G_'.
2019-04-07 22:23:51 +02:00
Ludovic Courtès
2e55f37c0c
installer: Offer NM, Connman, and DHCP to non-desktop installs.
* gnu/installer/services.scm (%system-services): Add NetworkManager,
Connman, and the DHCP client.
* gnu/installer/newt/services.scm (run-networking-cbt-page): Add
'network-management?' parameter and honor it.
(run-services-page): Adjust call accordingly.
2019-04-07 22:23:50 +02:00
Ludovic Courtès
7d1030a635
installer: Add dialog to select networking services.
* gnu/installer/newt/services.scm (run-networking-cbt-page): New procedure.
(run-services-page): Call it.
* gnu/installer/services.scm (%system-services): Add OpenSSH and Tor.
(networking-system-service?): New procedure.
* gnu/installer/steps.scm (format-configuration): Add 'networking' and
'ssh' to the service modules.
2019-04-07 18:02:39 +02:00
Ludovic Courtès
75988317b2
installer: Generalize desktop environments to system services.
* gnu/installer/services.scm (<desktop-environment>): Rename to...
(<system-service>): ... this.  Add a 'type' field.
(%desktop-environments): Rename to...
(%system-services): ... this.
(desktop-system-service?): New procedure.
(desktop-environments->configuration): Rename to...
(system-services->configuration): ... this.  Determine the base list of
services based on whether SERVICES contains at least one "desktop"
service.
* gnu/installer/newt/services.scm (run-desktop-environments-cbt-page):
Adjust accordingly.
* gnu/installer.scm (installer-steps): Likewise.
2019-04-07 17:18:04 +02:00
Ludovic Courtès
e8aa4e9511
installer: Remove SLiM-specific instructions.
* gnu/installer/newt/services.scm (run-desktop-environments-cbt-page):
Remove "with F1".
2019-04-07 16:25:07 +02:00
Ludovic Courtès
d155777452
installer: Fix wording for "Internet access."
* gnu/installer/newt/network.scm (run-technology-page): Fix wording for
"Internet access."
2019-04-07 16:21:52 +02:00
Ludovic Courtès
cbd01cff79
installer: Use the normalized codeset in the 'locale' field.
* gnu/installer/locale.scm (normalize-codeset): New procedure.
(locale->locale-string): Use it.
2019-04-07 16:19:09 +02:00
Ludovic Courtès
04d0aa9905
installer: Simplify locale dialogs.
* gnu/installer/newt/locale.scm (run-language-page): Simplify text.
(run-territory-page): Likewise.
(run-codeset-page): Likewise.
(run-locale-page): Don't call 'run-codeset-page' when "UTF-8" is among
the codesets of LOCALES.
2019-04-07 12:11:55 +02:00
Ludovic Courtès
391e0d65d7
services: Deprecate 'xfce-desktop-service'.
* gnu/services/desktop.scm (xfce-desktop-service-type)[default-value]
[description]: New fields.
(xfce-desktop-service): Deprecate.
* gnu/system/examples/desktop.tmpl: Use the (service …) form.
* gnu/installer/services.scm (%desktop-environments): Add TODO comment.
* doc/guix.texi (Desktop Services): Adjust accordingly, and fix spelling
of "Xfce" throughout.
2019-03-27 11:54:06 +01:00
Ludovic Courtès
ee05cc7fe3
services: Deprecate 'gnome-desktop-service'.
* gnu/services/desktop.scm (gnome-desktop-service-type)[default-value]:
New field.
(gnome-desktop-service): Deprecate.
* gnu/installer/services.scm (%desktop-environments): Use the (service …)
form for GNOME.
* gnu/system/examples/desktop.tmpl: Likewise.
* doc/guix.texi (Desktop Services): Adjust accordingly.
2019-03-27 11:54:06 +01:00
Ludovic Courtès
1c155ec76b
installer: Use the (service …) form for MATE.
* gnu/installer/services.scm (%desktop-environments): Use
'mate-desktop-service-type' for MATE.
2019-03-27 11:54:05 +01:00
Ludovic Courtès
c73e554c3f
installer: Ask for confirmation before formatting partitions.
* gnu/installer/newt/page.scm (run-confirmation-page): New procedure.
* gnu/installer/newt/partition.scm (draw-formatting-page): Call it.
2019-03-27 11:54:05 +01:00
Ludovic Courtès
50247be5f4
installer: Produce an 'initrd-modules' field if needed.
* gnu/installer/parted.scm (root-user-partition?): New procedure.
(bootloader-configuration): Use it.
(user-partition-missing-modules, initrd-configuration): New procedures.
(user-partitions->configuration): Call 'initrd-configuration'.o
* gnu/installer.scm (not-config?): Rename to...
(module-to-import?): ... this.  Add cases to exclude non-installer and
non-build (gnu …) modules.
(installer-program)[installer-builder]: Add GUIX to the extension list.
2019-03-27 11:54:05 +01:00
Ludovic Courtès
54043bf23f
installer: Emit 'bootloader' field before 'swap-devices'.
* gnu/installer/parted.scm (user-partitions->configuration): Move
'bootloader' section above 'swap-devices'.
2019-03-27 11:54:05 +01:00
Ludovic Courtès
3191b5f6ba
installer: Set the system's 'keyboard-layout' field.
* gnu/installer/newt/keymap.scm (keyboard-layout->configuration): New
procedure.
* gnu/installer.scm (compute-keymap-step): Return RESULT.
(installer-steps) <'keymap>: Add 'configuration-formatter' field.
(installer-program): Use (gnu installer newt keymap).
* gnu/installer/parted.scm (bootloader-configuration): Set
'keyboard-layout'.
2019-03-25 23:37:05 +01:00
Ludovic Courtès
82f29e5b4f
installer: network: Adjust wording.
* gnu/installer/newt/network.scm (wait-service-online): Adjust wording
of the messages.
2019-03-13 23:12:43 +01:00
Ludovic Courtès
59e8044588
Remove traces of "GuixSD".
* gnu/bootloader/extlinux.scm (extlinux-configuration-file): Remove
mentions of "GuixSD".
* gnu/bootloader/grub.scm (install-grub-efi): Likewise.
* gnu/build/vm.scm (make-iso9660-image): Change default #:volume-id to
"Guix_image".
(initialize-hard-disk): Search for the "Guix_image" label.
* gnu/ci.scm (system-test-jobs, tarball-jobs): Remove "GuixSD".
* gnu/installer/newt/welcome.scm (run-welcome-page): Likewise.
* gnu/packages/audio.scm (supercollider)[description]: Likewise.
* gnu/packages/curl.scm (curl): Likewise.
* gnu/packages/emacs.scm (emacs): Likewise.
* gnu/packages/gnome.scm (network-manager): Likewise.
* gnu/packages/julia.scm (julia): Likewise.
* gnu/packages/linux.scm (alsa-plugins): Likewise.
(powertop, wireless-regdb): Likewise.
* gnu/packages/package-management.scm (guix): Likewise.
* gnu/packages/polkit.scm (polkit): Likewise.
* gnu/packages/tex.scm (texlive-bin): Likewise.
* gnu/services/base.scm (file-systems->fstab): Likewise.
* gnu/services/cups.scm (%cups-activation): Likewise.
* gnu/services/mail.scm (%dovecot-activation): Likewise.
* gnu/services/messaging.scm (prosody-configuration)[log]: Likewise.
* gnu/system/examples/vm-image.tmpl (vm-image-motd): Likewise.
* gnu/system/install.scm (installation-os)[file-systems]: Change root
file system label to "Guix_image".
* gnu/system/mapped-devices.scm (check-device-initrd-modules):
Remove "GuixSD".
* gnu/system/vm.scm (system-docker-image): Likewise.
(system-disk-image)[root-label]: Change to "Guix_image".
* gnu/tests/install.scm (run-install): Remove "GuixSD".
* guix/modules.scm (guix-module-name?): Likewise.
* nix/libstore/optimise-store.cc: Likewise.
2019-03-13 23:12:43 +01:00
Tobias Geerinckx-Rice
2b8c2ff45b
gnu: Remove unused TIMEZONE-LISTBOX-HEIGTH.
* gnu/installer/newt/timezone.scm (timezone-listbox-heigth): Delete
variable.
2019-02-18 01:52:48 +01:00
Tobias Geerinckx-Rice
b83e4a93a2
gnu: Fix some typos in the installer.
* gnu/installer/connman.scm (connman-connect-with-auth): Fix typo in
documentation.
* gnu/installer/newt/keymap.scm (sort-variants): Likewise.
* gnu/installer/newt/page.scm (run-listbox-selection-page): Likewise.
* gnu/installer/parted.scm (mkpart): Likewise.
* gnu/installer/newt/utils.scm (destroy-form-and-pop): Likewise.
* gnu/installer/newt/wifi.scm (run-unknown-error-page): Fix typo.
(wifi-listbox-heigth): Rename to…
(wifi-listbox-height): …this, and adjust caller.
* gnu/installer/timezone.scm (locate-childrens): Rename to…
(locate-children): …this.  Adjust all callers.
2019-02-18 01:52:47 +01:00
Ludovic Courtès
8cca59ee12
installer: Fix manual partitioning.
* gnu/installer/newt/partition.scm (run-partioning-page): When METHOD is
'manual, use 'filter-map' on DEVICES, not 'map', since 'disk-new' can
return #f.
2019-01-17 14:04:28 +01:00
Ludovic Courtès
85caf5f323
installer: "formating" → "formatting".
* gnu/installer/newt/partition.scm,
gnu/installer/parted.scm: Replace "formating" with "formatting".
2019-01-17 14:04:28 +01:00
Ludovic Courtès
938ee975af
installer: Adjust messages on the final page.
* gnu/installer/newt/final.scm (run-config-display-page)
(run-install-success-page, run-install-failed-page): Adjust messages.
2019-01-17 14:04:28 +01:00
Mathieu Othacehe
f40728f9d6
installer: partition: Add encryption password confirmation.
* gnu/installer/newt/partition.scm (prompt-luks-passwords): Add password
confirmation page.
2019-01-17 14:04:27 +01:00
Mathieu Othacehe
cb614af011
installer: keymap: Put English layout and international variant ahead.
* gnu/installer/newt/keymap.scm (sort-layouts): New procedure,
(sort-variants): new procedure,
(run-keymap-page): use the two procedures above to sort layouts and variants.
2019-01-17 14:04:27 +01:00
Mathieu Othacehe
513914b59f
installer: Remove debug popup.
* gnu/installer/newt/partition.scm (run-partioning-page): Remove debug
partition popup.
2019-01-17 14:04:27 +01:00
Mathieu Othacehe
a8c4b68288
installer: welcome: Put "Graphical installer" ahead.
* gnu/installer/newt/welcome.scm (run-welcome-page): Propose "Graphical
  install" before shell based install.
2019-01-17 14:04:27 +01:00
Mathieu Othacehe
ebb36deccc
installer: Rename "Ok" buttons to "OK".
* gnu/installer/newt/page.scm: s/Ok/OK/.
* gnu/installer/newt/partition.scm: Ditto.
* gnu/installer/newt/user.scm: Ditto.
2019-01-17 14:04:27 +01:00
Mathieu Othacehe
f297c213a1
installer: parted: Do not call BLKRRPART on loop devices.
* gnu/installer/parted.scm (with-delay-device-in-use?): Return immediately if
the file-name passed as argument designates a loop device.
2019-01-17 14:04:27 +01:00
Mathieu Othacehe
44b2d31c28
installer: Various renamins follow-up.
s/path/file and s/crypt/encrypt.

* gnu/installer/newt/partition.scm: Apply renamings.
* gnu/installer/parted.scm: Ditto.
2019-01-17 14:04:27 +01:00
Mathieu Othacehe
5737ba841b
installer: Various renamings.
1. s/partitionment/partitioning/
2. s/crypted/encrypted/

* gnu/installer.scm (installer-steps): Apply renamings.
* gnu/installer/newt/partition.scm (run-disk-page): ditto,
* gnu/installer/parted.scm (auto-partition): ditto,
(luks-format-and-open): ditto,
(luks-close): ditto,
(user-partitions->configuration): ditto.
2019-01-17 14:04:26 +01:00
Mathieu Othacehe
59e8f3c3ac
installer: parted: Use read-luks-partition-uuid instead of
find-partition-by-luks-uuid.

* gnu/installer/parted.scm (user-partition->mapped-device): Replace
read-luks-partition-uuid by find-partition-by-luks-uuid,
(user-partition->file-system): only compute uuid if the partition
is not encrypted.
2019-01-17 14:04:26 +01:00
Mathieu Othacehe
df3664f1ec
installer: Clear screen upon exit.
* gnu/installer/newt.scm (exit): Call clear-screen after newt-finish,
(exit-error): ditto.
2019-01-17 14:04:26 +01:00
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
b624206d6b
installer: partition: Fix swaping and use syscalls.
* gnu/installer/parted.scm (start-swaping): Remove it,
(stop-swaping): Remove it,
(start-swapping): New procedure using swapon syscall,
(stop-swapping): New procedure using swapoff syscall,
(with-mounted-partitions): Use previous start-swapping and stop-swapping
procedures.
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
133c401f77
installer: Display an eventual backtrace in a page.
* gnu/installer.scm (installer-program): Write the backtrace in
"/tmp/last-installer-error" and pass the filename to installer-exit-error.
* gnu/installer/newt.scm (exit-error): Display the file passed above in a textbox.
2019-01-17 14:04:25 +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
479414e1c9
installer: keymap: Do not fail on non-kmscon terminals.
kmscon-update-keymap fails on non kmscon terminals because KEYMAP_UPDATE
environment variable is not defined. As it is convenient to test the installer
on a regular terminal, do nothing if KEYMAP_UPDATE is missing.

* gnu/installer/keymap.scm (kmscon-update-keymap): Do nothing if KEYMAP_UPDATE
is not defined.
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
47c9480165
installer: Add user module.
* gnu/installer/user.scm: New file.
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
b4658c258e
installer: Add hostname.
* gnu/installer/hostname.scm: New file.
* gnu/installer.scm (installer-program): Use new module above.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add new file.
* po/guix/POTFILES.in: Add new file.
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
3ad8f7757c
installer: Add new utils.
* gnu/installer/utils.scm (nearest-exact-integer): New exported procedure,
(read-percentage): ditto,
(run-shell-command): ditto.
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
a49d633c0c
installer: Move everything to the build side.
* gnu/installer.scm: Rename to ...
* gnu/installer/record.scm: ... this.
* gnu/installer/build-installer.scm: Move everything to the build side and
rename to gnu/installer.scm.
* gnu/installer/newt.scm: Remove all the gexps and add depencies to newt
modules as this code will only be used on the build side by now.
* gnu/local.mk (GNU_SYSTEM_MODULES): Adapt it,
(dist_installer_DATA): New rule to install installer's aux-files.
* gnu/system/install.scm (%installation-services): Use only
'installer-program' from (gnu installer). The installer is now choosen on the
build side.
* guix/self.scm (*system-modules*): Restore previous behaviour and add all
installer files to #:extra-files field of the scheme-node.
* po/guix/POTFILES.in: Adapt it.
2019-01-17 14:04:21 +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
a79617468e
gnu: installer: Launch the installer as kmscon login-program.
Source /etc/environment just before starting the installer. The login program
is supposed to load the environment variables of this file through PAM, but as
we replace it by the installer, they are no longer available. This is mostly
useful for the LANG environment variable.

* gnu/installer/build-installer.scm (installer-program-launcher): New exported
procedure.
* gnu/system/install.scm (%installation-services): Restore most of the origin
code. kmscon is only started on TTY1, and the graphical installer is the
login-program.
2019-01-17 14:04:21 +01:00
Mathieu Othacehe
9b9a5e3283
installer: newt: Locate the logo within local-file.
* gnu/installer/newt.scm (logo): Remove it,
(welcome-page): Use a relative path to locate the logo.
2019-01-17 14:04:20 +01:00
Mathieu Othacehe
ba32109a28
installer: newt: Use scheme-modules* instead of scheme-modules.
* gnu/installer/newt.scm (modules): Use scheme-modules*.
2019-01-17 14:04:20 +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