summaryrefslogtreecommitdiff
path: root/gnu/installer
AgeCommit message (Expand)Author
2020-03-23installer: 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. Mathieu Othacehe
2020-03-05installer: 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. Mathieu Othacehe
2020-03-05tests: 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. Ludovic Courtès
2020-03-05installer: Honor /tmp/installer-system-init-options....* gnu/installer/final.scm (install-system): Honor "/tmp/installer-system-init-options". Ludovic Courtès
2020-03-05installer: 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. Ludovic Courtès
2020-03-05installer: 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?'. Ludovic Courtès
2020-03-05installer: 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. Ludovic Courtès
2020-02-22installer: 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'. Ludovic Courtès
2020-02-22installer: Add 'syslog' macro to write to syslog....* gnu/installer/utils.scm (open-syslog-port, syslog-port): New procedures. (syslog): New macro. Ludovic Courtès
2020-02-12installer: 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. Mathieu Othacehe
2020-02-12installer: 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. Mathieu Othacehe
2020-01-23installer: Make "TRANSLATORS" comment visible....* gnu/installer/newt/user.scm (run-root-password-page): Move "TRANSLATORS" comment right above 'G_' call. Ludovic Courtès
2020-01-20installer: 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'. Ludovic Courtès
2020-01-20installer: 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'. Ludovic Courtès
2020-01-12installer: 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'. Ludovic Courtès
2020-01-05installer: 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. Tobias Geerinckx-Rice
2020-01-05installer: Fix typo....* gnu/installer/parted.scm (create-btrfs-file-system): Fix typo in docstring. Tobias Geerinckx-Rice
2019-12-29installer: 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'. Ludovic Courtès
2019-09-25installer: 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*. Mathieu Othacehe
2019-09-23installer: 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?. Mathieu Othacehe
2019-08-26installer: 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. Tobias Geerinckx-Rice
2019-08-26installer: 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?. Tobias Geerinckx-Rice
2019-07-25maint: 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. Ludovic Courtès
2019-06-08installer: Fix typo....* gnu/installer/newt/network.scm (run-technology-page): Fix plural typo. Tobias Geerinckx-Rice
2019-06-07installer: Install xterm alongside ratpoison....* gnu/installer/services.scm (%system-services) <"ratpoison">: Add xterm. Ludovic Courtès
2019-06-07installer: 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. Ludovic Courtès
2019-06-07Add (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'. Ludovic Courtès
2019-06-05installer: 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. Ludovic Courtès
2019-05-29installer: 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> Mathieu Othacehe
2019-05-19installer: Fix Guile-Parted crash on i686....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> Ludovic Courtès
2019-05-15installer: Rename 'auto-partition' to 'auto-partition!'....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. Ludovic Courtès
2019-05-15installer: 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. Ludovic Courtès
2019-05-14installer: Add fat16....* gnu/installer/newt/partition.scm (run-fs-type-page): Add fat16. Danny Milosavljevic
2019-05-14installer: 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> Mathieu Othacehe
2019-05-14installer: Fix docstring....* gnu/installer/parted.scm (create-fat32-file-system): Fix docstring. Danny Milosavljevic
2019-05-14installer: 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. Danny Milosavljevic
2019-05-14installer: 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. Ludovic Courtès
2019-05-14installer: 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. Danny Milosavljevic
2019-05-13installer: 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. Ludovic Courtès
2019-05-09installer: Add missing 'G_' call....* gnu/installer/newt/user.scm (run-user-page): Add 'G_' call for "User creation". Ludovic Courtès
2019-05-07installer: "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. Ludovic Courtès
2019-05-07installer: 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. Mathieu Othacehe
2019-05-06installer: 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. Ludovic Courtès
2019-05-06installer: 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. Ludovic Courtès
2019-05-06installer: 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. Ludovic Courtès
2019-05-06installer: 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. Ludovic Courtès
2019-05-06installer: Widen user dialog....* gnu/installer/newt/user.scm (run-user-add-page)[pad-label]: Increase 2nd argument to 25. [entry-width]: Increase to 35. Ludovic Courtès
2019-05-05installer: Fix typo....* gnu/installer/newt/menu.scm (run-menu-page): Add missing space after period. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org> Miguel
2019-05-03installer: 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'. Ludovic Courtès
2019-05-03installer: 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. Ludovic Courtès