summary refs log tree commit diff
path: root/gnu/installer
AgeCommit message (Collapse)Author
2020-03-26installer: tests: Use a filter to select desktop-environments.Mathieu Othacehe
* 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-23installer: Fix cow-store umount issue.Mathieu Othacehe
* 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-05installer: Fix cow-store umount.Mathieu Othacehe
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-05tests: install: Add "gui-installed-os".Ludovic Courtès
* 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-05installer: Honor /tmp/installer-system-init-options.Ludovic Courtès
* gnu/installer/final.scm (install-system): Honor "/tmp/installer-system-init-options".
2020-03-05installer: Run commands without hopping through the shell.Ludovic Courtès
* 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-05installer: Bypass connectivity check when /tmp/installer-assume-online exists.Ludovic Courtès
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-05installer: Implement a dialog on /var/guix/installer-socket.Ludovic Courtès
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-02-22installer: Log important bits to syslog.Ludovic Courtès
* 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-22installer: Add 'syslog' macro to write to syslog.Ludovic Courtès
* gnu/installer/utils.scm (open-syslog-port, syslog-port): New procedures. (syslog): New macro.
2020-02-12installer: Fix installer restart dialog.Mathieu Othacehe
* 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-12installer: Remove the cow-store overlay after system installation.Mathieu Othacehe
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-01-23installer: Make "TRANSLATORS" comment visible.Ludovic Courtès
* gnu/installer/newt/user.scm (run-root-password-page): Move "TRANSLATORS" comment right above 'G_' call.
2020-01-20installer: Disable F12 hot key.Ludovic Courtès
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-20installer: Makes sure the installer proceeds after hitting "Edit".Ludovic Courtès
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-12installer: Add an "Edit" button on the final page.Ludovic Courtès
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-05installer: Add JFS support.Tobias Geerinckx-Rice
* 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-05installer: Fix typo.Tobias Geerinckx-Rice
* gnu/installer/parted.scm (create-btrfs-file-system): Fix typo in docstring.
2019-12-29installer: Pass '--fallback' to 'guix system init'.Ludovic Courtès
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-09-25installer: Update to Guile-Parted 0.0.2 release.Mathieu Othacehe
* 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-23installer: Fix run-input-page calls.Mathieu Othacehe
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-08-26installer: Hide the Wi-Fi passphrase by default.Tobias Geerinckx-Rice
* gnu/installer/newt/wifi.scm (run-wifi-password-page): Add an #:INPUT-VISIBILITY-CHECKBOX? to the input page.
2019-08-26installer: Show, don't Hide.Tobias Geerinckx-Rice
* 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-07-25maint: Switch to Guile-JSON 3.x.Ludovic Courtès
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-06-08installer: Fix typo.Tobias Geerinckx-Rice
* gnu/installer/newt/network.scm (run-technology-page): Fix plural typo.
2019-06-07installer: Install xterm alongside ratpoison.Ludovic Courtès
* gnu/installer/services.scm (%system-services) <"ratpoison">: Add xterm.
2019-06-07installer: Install companion packages alongside i3.Ludovic Courtès
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-07Add (gnu build locale).Ludovic Courtès
* 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-05installer: Always add '%base-initrd-modules' to 'initrd-modules'.Ludovic Courtès
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-05-29installer: Fix wifi menu crash with hidden SSIDs.Mathieu Othacehe
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-19installer: Fix Guile-Parted crash on i686. v1.0.1Ludovic Courtès
Fixes <https://bugs.gnu.org/35783>. This is a followup to 7d567af46b4e10ffafb1d0f76b524f5781460598. * 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-15installer: Rename 'auto-partition' to 'auto-partition!'.Ludovic Courtès
This is a followup to 7d567af46b4e10ffafb1d0f76b524f5781460598. * 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-15installer: Mount ESP once only.Ludovic Courtès
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-14installer: Add fat16.Danny Milosavljevic
* gnu/installer/newt/partition.scm (run-fs-type-page): Add fat16.
2019-05-14installer: Reflow run-file-textbox-page text.Mathieu Othacehe
* gnu/installer/newt/page.scm (run-file-textbox-page): Reflow text. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org>
2019-05-14installer: Fix docstring.Danny Milosavljevic
* gnu/installer/parted.scm (create-fat32-file-system): Fix docstring.
2019-05-14installer: Add fat16.Danny Milosavljevic
* 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-14installer: Allow for arbitrary long passphrases and passwords.Ludovic Courtès
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-14installer: Create btrfs file system.Danny Milosavljevic
Fixes <https://bugs.gnu.org/35655>. * gnu/installer/parted.scm (create-btrfs-file-system): New procedure. (format-user-partitions): Use it.
2019-05-13installer: Use 'glibc-supported-locales'.Ludovic Courtès
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-09installer: Add missing 'G_' call.Ludovic Courtès
* gnu/installer/newt/user.scm (run-user-page): Add 'G_' call for "User creation".
2019-05-07installer: "Exit" button in user page actually exits.Ludovic Courtès
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-07installer: Add password 'hide' checkbox.Mathieu Othacehe
* 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-06installer: Skip network selection dialogs when there is no choice.Ludovic Courtès
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-06installer: Shrink simple listboxes to their minimum height.Ludovic Courtès
* 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-06installer: Actually translate step descriptions.Ludovic Courtès
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-06installer: Do not sort methods on the partitioning page.Ludovic Courtès
* gnu/installer/newt/partition.scm (run-partioning-page): Pass #:sort-listbox-items? #f so that methods always appear in the same order.
2019-05-06installer: Widen user dialog.Ludovic Courtès
* gnu/installer/newt/user.scm (run-user-add-page)[pad-label]: Increase 2nd argument to 25. [entry-width]: Increase to 35.
2019-05-05installer: Fix typo.Miguel
* gnu/installer/newt/menu.scm (run-menu-page): Add missing space after period. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org>
2019-05-03installer: Do not sort the guided partition schemes in the selection page.Ludovic Courtès
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'.