Commit graph

256 commits

Author SHA1 Message Date
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
Mathieu Othacehe
7a1a10dbd4
installer: tests: Use a filter to select desktop-environments.
* gnu/installer/tests.scm (choose-services): Turn desktop-environments list
into a choose-desktop-environment procedure. This way, it is easier to select
all desktop-environments or none, in the same way as choose-network-service?
and choose-network-management-tool? arguments.
2020-03-26 11:53:50 +01:00
Mathieu Othacehe
f9b6f75d1c
installer: Fix cow-store umount issue.
* gnu/installer/final.scm (kill-cow-users): Ignore exception that could be
raised if a process disappears between reading its pid and its maps file.
2020-03-23 18:46:40 +01:00
Mathieu Othacehe
64704be417
installer: Fix cow-store umount.
This fixes <https://bugs.gnu.org/39712>.

The guix-daemon was preventing the cow-store umount, so restart it.  Some
udevd workers, using cow-store files might also still be around, so have some
umount retries.

* gnu/installer/final.scm (kill-cow-users): New procedure,
(umount-cow-store): restart guix-daemon and kill all processes started from
within the cow-store before trying to umount the store overlay. Also try 5
times to umount the overlay in case it is still busy.
2020-03-05 23:40:24 +01:00
Ludovic Courtès
ccb1a8c437
tests: install: Add "gui-installed-os".
* gnu/installer/tests.scm: New file.
* gnu/local.mk (INSTALLER_MODULES): Add it.
* gnu/tests/install.scm (run-install): Add #:gui-test.  Add (gnu
installer tests) to the marionette imported modules.  Honor GUI-TEST.
Check whether SCRIPT is true.
(%root-password, %syslog-conf): New variable.
(operating-system-with-console-syslog, gui-test-program)
(guided-installation-test): New procedures.
(%extra-packages, installation-os-for-gui-tests)
(%test-gui-installed-os): New variable.
2020-03-05 23:40:23 +01:00
Ludovic Courtès
e458726ab4
installer: Honor /tmp/installer-system-init-options.
* gnu/installer/final.scm (install-system): Honor
"/tmp/installer-system-init-options".
2020-03-05 23:40:23 +01: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
Ludovic Courtès
5c04b00cf4
installer: Log important bits to syslog.
* gnu/installer.scm (installer-program): Log crashes with 'syslog'.
* gnu/installer/parted.scm (luks-format-and-open, luks-close)
(mount-user-partitions, umount-user-partitions): Add 'syslog' calls.
* gnu/installer/steps.scm (run-installer-steps): Log the running step
with 'syslog'.
* gnu/installer/utils.scm (run-shell-command): Add calls to 'syslog'.
2020-02-22 00:45:42 +01:00
Ludovic Courtès
2cf65e1d54
installer: Add 'syslog' macro to write to syslog.
* gnu/installer/utils.scm (open-syslog-port, syslog-port): New
procedures.
(syslog): New macro.
2020-02-22 00:45:42 +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
Mathieu Othacehe
1d02052067
installer: Remove the cow-store overlay after system installation.
Fixes <https://issues.guix.info/issue/39217>.
Fixes <https://issues.guix.info/issue/38447>.

* gnu/installer/final.scm (umount-cow-store): New procedure ...,
(install-system): ... used here, to remove the store overlay so that the
target device is not seen as busy during further umount calls.
2020-02-12 10:49:48 +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
Tobias Geerinckx-Rice
1133596b42
installer: Fix typo.
* gnu/installer/parted.scm (create-btrfs-file-system): Fix typo in docstring.
2020-01-05 02:40:07 +01:00
Ludovic Courtès
a4ee6ac444
installer: Pass '--fallback' to 'guix system init'.
Fixes <https://bugs.gnu.org/38608>.
Reported by Nathan Dehnel <ncdehnel@gmail.com>.

* gnu/installer/final.scm (install-system): Pass '--fallback' to 'guix
system init'.
2019-12-29 18:24:55 +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
Ludovic Courtès
81c3dc3224
maint: Switch to Guile-JSON 3.x.
Guile-JSON 3.x is incompatible with Guile-JSON 1.x, which we relied on
until now: it maps JSON dictionaries to alists (instead of hash tables),
and JSON arrays to vectors (instead of lists).  This commit is about
adjusting all the existing code to this new mapping.

* m4/guix.m4 (GUIX_CHECK_GUILE_JSON): New macro.
* configure.ac: Use it.
* doc/guix.texi (Requirements): Mention the Guile-JSON version.
* guix/git-download.scm (git-fetch)[guile-json]: Use GUILE-JSON-3.
* guix/import/cpan.scm (string->license): Expect vectors instead of
lists.
(module->dist-name): Use 'json-fetch' instead of 'json-fetch-alist'.
(cpan-fetch): Likewise.
* guix/import/crate.scm (crate-fetch): Likewise, and call 'vector->list'
for DEPS.
* guix/import/gem.scm (rubygems-fetch): Likewise.
* guix/import/json.scm (json-fetch-alist): Remove.
* guix/import/pypi.scm (pypi-fetch): Use 'json-fetch' instead of
'json-fetch-alist'.
(latest-source-release, latest-wheel-release): Call 'vector->list' on
RELEASES.
* guix/import/stackage.scm (stackage-lts-info-fetch): Use 'json-fetch'
instead of 'json-fetch-alist'.
(lts-package-version): Use 'vector->list'.
* guix/import/utils.scm (hash-table->alist): Remove.
(alist->package): Pass 'vector->list' on the inputs fields, and default
to the empty vector.
* guix/scripts/import/json.scm (guix-import-json): Remove call to
'hash-table->alist'.
* guix/swh.scm (define-json-reader): Expect pair? or null? instead of
hash-table?.
[extract-field]: Use 'assoc-ref' instead of 'hash-ref'.
(json->branches): Use 'map' instead of 'hash-map->list'.
(json->checksums): Likewise.
(json->directory-entries, origin-visits): Call 'vector->list' on the
result of 'json->scm'.
* tests/import-utils.scm ("alist->package with dependencies"): New test.
* gnu/installer.scm (build-compiled-file)[builder]: Use GUILE-JSON-3.
* gnu/installer.scm (installer-program)[installer-builder]: Likewise.
* gnu/installer/locale.scm (iso639->iso639-languages): Use 'assoc-ref'
instead of 'hash-ref', and pass vectors through 'vector->list'.
(iso3166->iso3166-territories): Likewise.
* gnu/system/vm.scm (system-docker-image)[build]: Use GUILE-JSON-3.
* guix/docker.scm (manifest, config): Adjust for Guile-JSON 3.
* guix/scripts/pack.scm (docker-image)[build]: Use GUILE-JSON-3.
* guix/import/github.scm (fetch-releases-or-tags): Update docstring.
(latest-released-version): Use 'assoc-ref' instead of 'hash-ref'.  Pass
the result of 'fetch-releases-or-tags' to 'vector->list'.
* guix/import/launchpad.scm (latest-released-version): Likewise.
2019-07-25 00:16:41 +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
Ludovic Courtès
d998902214
installer: Install xterm alongside ratpoison.
* gnu/installer/services.scm (%system-services) <"ratpoison">: Add
xterm.
2019-06-07 22:32:19 +02:00
Ludovic Courtès
676eb5880e
installer: Install companion packages alongside i3.
Fixes <http://bugs.gnu.org/36008>.
Suggested by Giovanni Biscuolo <g@xelera.eu>.

* gnu/installer/services.scm (%system-services) <"i3">: Add i3status,
dmenu, and st.
2019-06-07 22:32:10 +02:00
Ludovic Courtès
15ec93a783
Add (gnu build locale).
* gnu/build/locale.scm: New file.
* gnu/local.mk (MODULES_NOT_COMPILED): Add it.
* gnu/installer/locale.scm (normalize-codeset): Remove.
* gnu/system/locale.scm (localedef-command): Remove.
(single-locale-directory): Use (gnu build locale).
(glibc-supported-locales)[build]: Likewise, and remove
'read-supported-locales'.
2019-06-07 21:50:18 +02:00
Ludovic Courtès
0b051bacb3
installer: Always add '%base-initrd-modules' to 'initrd-modules'.
Fixes <https://bugs.gnu.org/36099>.
Reported by Jonathan Brielmaier <jonathan.brielmaier@web.de>.

* gnu/installer/parted.scm (initrd-configuration): Add
%BASE-INITRD-MODULES to the 'initrd-modules' field.
2019-06-05 17:27:22 +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
Danny Milosavljevic
b7488b321d
installer: Fix docstring.
* gnu/installer/parted.scm (create-fat32-file-system): Fix docstring.
2019-05-14 18:01:09 +02:00
Danny Milosavljevic
628d09ae53
installer: Add fat16.
* gnu/installer/parted.scm (user-fs-type-name): Add fat16.
(user-fs-type->mount-type): Add fat16.
(create-fat16-file-system): New procedure.
(format-user-partitions): Use it.
2019-05-14 18:01:08 +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
Danny Milosavljevic
c5b1377840
installer: Create btrfs file system.
Fixes <https://bugs.gnu.org/35655>.

* gnu/installer/parted.scm (create-btrfs-file-system): New procedure.
(format-user-partitions): Use it.
2019-05-14 00:44:03 +02:00
Ludovic Courtès
76269f6bc4
installer: Use 'glibc-supported-locales'.
The list of locales supported by glibc is now built from source.

* gnu/installer/locale.scm (locale-string->locale): Add optional
'codeset' parameter and honor it.
(supported-locales->locales): Rewrite to 'read' from SUPPORTED-LOCALES.
* gnu/installer.scm (compute-locale-step): Pass the result of
'glibc-supported-locales' instead of the "aux-files/SUPPORTED" file.
* gnu/installer/aux-files/SUPPORTED: Remove.
* gnu/local.mk (dist_installer_DATA): Remove it.
2019-05-13 23:46:08 +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
7ae9979cff
installer: Actually translate step descriptions.
Until now, step descriptions in the menu that shows up when hitting
"Exit" would not be translated.  That's because the 'G_' procedure was
called once and for all when the installer was started.

* gnu/installer/steps.scm (<installer-step>)[description]: Add the
'thunked' attribute.
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
Ludovic Courtès
ecb0df6817
installer: Ensure 'packages' field is a superset of '%base-packages'.
Fixes <https://bugs.gnu.org/35541>.
Reported by Florian Pelz <pelzflorian@pelzflorian.de>.

* gnu/installer/services.scm (system-services->configuration): Generate
a snippet that appends PACKAGES to %BASE-PACKAGES.
2019-05-03 13:50:49 +02:00
Meiyo Peng
772bcb1cf0
installer: Fix typo in docstring.
* gnu/installer/newt/wifi.scm (draw-scanning-page): Fix typo in docstring.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2019-04-29 09:48:40 +02:00
Ludovic Courtès
d779de1817
installer: Tell the user where the config file is.
* gnu/installer/newt/final.scm (strip-prefix): New procedure.
(run-config-display-page): Add a sentence showing where the config file
is stored.
2019-04-28 22:57:08 +02:00
Ludovic Courtès
ada4aeb068
installer: Fix handling of user password mismatches.
Previously, if we had a password mismatch, the 'password' field would
end up containing a <user> record instead of the actual password.

* gnu/installer/newt/user.scm (confirm-password): Make TRY-AGAIN
optional and adjust docstring.
(run-user-add-page): Move 'confirm-password' call one level higher.
2019-04-28 22:57:07 +02:00
Ludovic Courtès
0e8e963d73
installer: User accounts can now have a "real name."
* gnu/installer/newt/user.scm (run-user-add-page): Add #:real-name.  Add
a label and entry for the real name and initialize the 'real-name' field
of the <user> record.
* gnu/installer/final.scm (create-user-database): Set the 'comment'
field of the <user-account> record.
2019-04-28 22:57:07 +02:00
Ludovic Courtès
43c1c44a11
installer: User can have a "real name".
* gnu/installer/user.scm (<user>)[real-name]: New field.
(users->configuration)[use->sexp]: Turn it into a 'comment' field.
2019-04-28 22:57:07 +02:00
Ludovic Courtès
ed5a5d38cf
installer: Improve layout of the partitioning page.
Previously the "listbox" would be unnecessarily high, leaving too little
space for the German translation of the text above.

* gnu/installer/newt/partition.scm (run-disk-page): Increase
 #:info-textbox-width and pass #:listbox-height.
2019-04-28 22:57:07 +02:00
Ludovic Courtès
113bc08172
installer: Add 'nss-certs' to the networking services.
Fixes <https://bugs.gnu.org/35469>.
Reported by Florian Pelz <pelzflorian@pelzflorian.de>.

* gnu/installer/services.scm (%system-services): Add service for
'nss-certs', with 'recommended?' set to #t.
2019-04-28 22:57:07 +02:00
Ludovic Courtès
1d9fcdacf9
installer: Recommended services are pre-selected.
* gnu/installer/services.scm (<system-service>)[recommended?]: New
field.
* gnu/installer/newt/services.scm (run-desktop-environments-cbt-page):
Pass #:selection to 'run-checkbox-tree-page', computed from the
'recommended?' field of each service.
(run-networking-cbt-page): Likewise.
2019-04-28 22:57:07 +02:00
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