aboutsummaryrefslogtreecommitdiff
path: root/gnu/installer/newt/parameters.scm
blob: 8fb1aa3abbe847209231f0a81b6c682257f36788 (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.

(define-module (gnu installer newt parameters)
  #:use-module (gnu installer proxy)
  #:use-module (gnu installer steps)
  #:use-module (gnu installer newt page)
  #:use-module (guix build syscalls)
  #:use-module (guix i18n)
  #:use-module (ice-9 match)
  #:use-module (newt)
  #:export (run-parameters-page))

(define (run-proxy-page)
  (define proxy
    (run-input-page (G_ "Please enter the HTTP proxy URL. If you enter an \
empty string, proxy usage will be disabled.")
                    (G_ "HTTP proxy configuration")
                    #:allow-empty-input? #t))
  (if (string=? proxy "")
      (clear-http-proxy)
      (set-http-proxy proxy)))

(define (run-parameters-page keyboard-layout-selection)
  "Run a parameters page allowing to change the keyboard layout"
  (let* ((items
          (list
           (cons (G_ "Change keyboard layout") keyboard-layout-selection)
           (cons (G_ "Configure HTTP proxy") run-proxy-page)
           (cons (G_ "Reboot") reboot)))
         (result
          (run-listbox-selection-page
           #:info-text (G_ "Please choose one of the following parameters or \
press ‘Back’ to go back to the installation process.")
           #:title (G_ "Installation parameters")
           #:listbox-items items
           #:listbox-item->text car
           #:sort-listbox-items? #f
           #:listbox-height 6
           #:button-text (G_ "Back"))))
    (match result
      ((_ . proc)
       (proc))
      (_ #f))))
.scm (%ok-button, %exit-button, %default-buttons, make-newt-buttons, run-textbox-page): Add them. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> Josselin Poiret 2022-02-02installer: Use named prompt to abort or break installer steps....* gnu/installer/steps.scm (run-installer-steps): Set up 'installer-step prompt. * gnu/installer/newt/ethernet.scm (run-ethernet-page) * gnu/installer/newt/final.scm (run-config-display-page, run-install-failed-page) * gnu/installer/newt/keymap.scm (run-layout-page, run-variant-page) * gnu/installer/newt/locale.scm (run-language-page, run-territory-page, run-codeset-page, run-modifier-page, run-locale-page) * gnu/installer/newt/network.scm (run-technology-page, wait-service-online) * gnu/installer/newt/page.scm (run-listbox-selection-page, run-checkbox-tree-page) * gnu/installer/newt/partition.scm (button-exit-action) * gnu/installer/newt/services.scm (run-desktop-environments-cbt-page, run-networking-cbt-page, run-other-services-cbt-page, run-network-management-page) * gnu/installer/newt/timezone.scm (run-timezone-page) * gnu/installer/newt/user.scm (run-user-page) * gnu/installer/newt/welcome.scm (run-menu-page) * gnu/installer/newt/wifi.scm (run-wifi-page): Use the 'installer-step prompt to abort. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> Josselin Poiret 2022-02-02installer: Replace run-command by invoke in newt/page.scm....* gnu/installer/newt/page.scm (edit-file): Replace it. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> Josselin Poiret 2022-02-02installer: Fix run-file-textbox-page when edit-button is #f....* gnu/installer/newt/page.scm (run-file-textbox-page): Check if edit-button is #f. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> Josselin Poiret 2022-02-02installer: Use new installer-log-line everywhere....* gnu/installer.scm (installer-program) * gnu/installer/final.scm (install-locale) * gnu/installer/newt.scm (init) * gnu/installer/newt/final.scm (run-final-page) * gnu/installer/newt/page.scm (run-form-with-clients) * gnu/installer/newt/partition.scm (run-partitioning-page) * gnu/installer/parted.scm (eligible-devices, mkpart, luks-format-and-open, luks-close, mount-user-partitions, umount-user-partitions, free-parted): * gnu/installer/steps.scm (run-installer-steps): * gnu/installer/utils.scm (run-command, send-to-clients): Use it. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> Josselin Poiret 2022-02-02installer: Add crash dump upload support....Suggested-by: Josselin Poiret <dev@jpoiret.xyz> * gnu/installer/dump.scm: New file. * gnu/installer/newt/dump.scm: New file. * gnu/local.mk (INSTALLER_MODULES): Add them. * gnu/installer/record.scm (<installer>)[dump-page]: New field. * gnu/installer/steps.scm (%current-result): New variable. (run-installer-steps): Update it. * gnu/installer.scm (installer-program): Add tar and gip to the installer path. Add guile-webutils and gnutls to the Guile extensions. Generate and send the crash dump report. * gnu/installer/newt.scm (exit-error): Add a report argument. Display the report id. (dump-page): New procedure. (newt-installer): Update it. Mathieu Othacehe 2022-01-14installer: Check if ci.guix.gnu.org can be reached....* gnu/installer.scm (installer-program): Add gnutls extension. * gnu/installer/newt/network.scm (wait-service-online): Check if the CI server can be reached. Mathieu Othacehe 2022-01-14installer: Ignore small devices....Filter the devices that are smaller than 2GiB in the device selection list. * gnu/installer/parted.scm (%min-device-size): New variable. (non-install-devices): Rename it ... (eligible-devices): ... this way. Filter the install device as well as the small devices. * gnu/installer/newt/partition.scm (run-partitioning-page): Adapt it. Mathieu Othacehe 2021-12-28installer: Recommend 'ntp-service-type' for non-graphical systems....We had several bug reports with a root cause of "the clock was incorrect" from users who used the installer to install a non-graphical Guix System. * gnu/installer/services.scm (%system-services): Add the ntp-service-type. * gnu/installer/newt/services.scm (run-system-administration-cbt-page): New variable. (run-services-page): Use run-system-administration-cbt-page when not installing a desktop. * gnu/installer/tests.scm (choose-services): Add and use a choose-misc-service? procedure. * gnu/tests/install.scm (installation-target-os-for-gui-tests)<services>: Add ntp-service-type. Leo Famulari 2021-12-28installer: Offer the CUPS printing service on a dedicated page....Currently, the installer page RUN-OTHER-SERVICES-CBT-PAGE offers to the user all installer services that are not of the types 'desktop', 'network-management', or 'networking'. Concretely, this means that it offers the CUPS printing service, because that is the only service of a different type defined in the installer. In later commits, we will add some services of a new type, and we only want them to be offered when the user is installing a non-graphical system. At least one of these new services (NTP) is part of %DESKTOP-SERVICES. If it was also offered on RUN-OTHER-SERVICES-CBT-PAGE, and the user had configured a system using %DESKTOP-SERVICES, the user could accidentally add NTP to their services twice, which is an error and would break installation. So, this commit makes the RUN-OTHER-SERVICES-CBT-PAGE be more specific about what services to offer. This makes it easier to discriminate between desktop and non-desktop installations, in terms of when a given service is offered. * gnu/installer/newt/services.scm (RUN-OTHER-SERVICES-CBT-PAGE): Rename to ... (RUN-PRINTING-SERVICES-CBT-PAGE): ... new variable, and select only 'document' services. (RUN-SERVICES-PAGE): Adjust accordingly. * gnu/installer/tests.scm (CHOOSE-SERVICES): Adjust accordingly. Leo Famulari 2021-10-21installer: Reorder file system type listbox....Recommending ext4 over btrfs is probably ill-advised nowadays. See the regular bug reports about running out of /gnu/store directory entries, for which the documented fix then breaks booting with GRUB. Instead, just list regular file systems alphabetically. We can bikeshed bcachefs later ;-) Move second-class file systems like NTFS to their own section at the end of the list. * gnu/packages/package-management.scm (run-fs-type-page): Reorder the LISTBOX-ITEMS. Tobias Geerinckx-Rice 2021-09-23installer: Support XFS....* gnu/installer/newt/partition.scm (run-fs-type-page): Add ‘xfs’ to the list box. * gnu/installer/parted.scm (user-fs-type-name, user-fs-type->mount-type) (partition-filesystem-user-type): Add ‘xfs’ mapping. (create-xfs-file-system): New procedure. (format-user-partitions): Use it. * gnu/installer.scm (set-installer-path): Add xfsprogs. Tobias Geerinckx-Rice 2021-06-30installer: Offer the CUPS printing service....* gnu/installer/services.scm (%system-services): Add CUPS. * gnu/installer/newt/services.scm (run-other-services-cbt-page): New procedure. (run-services-page): Call it last. Tobias Geerinckx-Rice 2021-06-29installer: Fix crash when deleting a free space partition....Fixes: <https://issues.guix.gnu.org/49126>. * gnu/installer/newt/partition.scm (run-disk-page): Fix the return value when removing a free space partition. Mathieu Othacehe 2021-06-12installer: Check partitions UUIDs....* gnu/installer/parted.scm (&cannot-read-uuid): New condition. (cannot-read-uuid?, cannot-read-uuid-partition): New procedures. (check-user-partitions): Check that all user-partitions have a valid UUID, raide the above condition otherwise. * gnu/installer/newt/partition.scm (run-disk-page): Run an error page if the &cannot-read-uuid condition is raised. Mathieu Othacehe 2021-06-12installer: Print user partitions....* gnu/installer/newt/partition.scm (run-partitioning-page): Print user-partitions to syslog. Mathieu Othacehe 2021-04-28installer: Force GPT disk label when UEFI is supported....* gnu/installer/newt/partition.scm (run-label-page): Force the GPT disk label when UEFI is supported. Mathieu Othacehe