Commit graph

196 commits

Author SHA1 Message Date
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