summaryrefslogtreecommitdiff
path: root/gnu/installer
AgeCommit message (Collapse)Author
2022-02-02installer: Use run-command-in-installer in (gnu installer parted).Josselin Poiret
* gnu/installer/parted.scm (remove-logical-devices, create-btrfs-file-system, create-ext4-file-system, create-fat16-file-system, create-fat32-file-system, create-jfs-file-system, create-ntfs-file-system, create-xfs-file-system, create-swap-partition, luks-format-and-open, luks-close): Use run-command-in-installer. (with-null-output-ports): Remove. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-02-02installer: Add installer-specific run command process.Josselin Poiret
* gnu/installer/record.scm (installer)[run-command]: Add field. * gnu/installer/utils.scm (run-command-in-installer): Add parameter. * gnu/installer.scm (installer-program): Parameterize run-command-in-installer with current installer's run-command. * gnu/installer/newt.scm (newt-run-command): New variable. (newt-installer): Use it. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-02-02installer: Capture external commands output.Josselin Poiret
* gnu/installer/utils.scm (run-external-command-with-handler, run-external-command-with-line-hooks): New variables. (run-command): Use run-external-command-with-line-hooks. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-02-02installer: Remove specific logging code.Josselin Poiret
* gnu/installer/final.scm (install-system): Remove command logging to syslog, as this is taken care of by the new facilities. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-02-02installer: Keep PATH inside the install container.Josselin Poiret
* gnu/installer/final.scm (install-system): Set PATH inside the container. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-02-02installer: Un-export syslog syntax.Josselin Poiret
* gnu/installer/utils.scm (syslog): Remove export. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-02-02installer: Use new installer-log-line everywhere.Josselin Poiret
* 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>
2022-02-02installer: Generalize logging facility.Josselin Poiret
* gnu/installer/utils.scm (%syslog-line-hook, open-new-log-port, installer-log-port, %installer-log-line-hook, %display-line-hook, %default-installer-line-hooks, installer-log-line): Add new variables. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-02-02installer: Add crash dump upload support.Mathieu Othacehe
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.
2022-01-14installer: Install the locale before mounting the cow-store.Mathieu Othacehe
Fixes: <https://issues.guix.gnu.org/52831>. Make sure to install the en_US.utf8 fallback locale if the selected locale is not supported. * gnu/installer/final.scm (install-locale): New procedure. (install-system): Call it.
2022-01-14installer: Do not set the locale in run-command.Mathieu Othacehe
Installing the locale inside the container, once the cow-store is mounted, causes the process to keep opened locale files that can later prevent the cow-store umount. * gnu/installer/utils.scm (run-command): Remove locale argument. * gnu/installer/final.scm (install-system): Adapt it.
2022-01-14installer: Remove an unused procedure.Mathieu Othacehe
* gnu/installer/final.scm (kill-cow-users): Remove it.
2022-01-14installer: Check if ci.guix.gnu.org can be reached.Mathieu Othacehe
* gnu/installer.scm (installer-program): Add gnutls extension. * gnu/installer/newt/network.scm (wait-service-online): Check if the CI server can be reached.
2022-01-14installer: Ignore small devices.Mathieu Othacehe
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.
2021-12-28installer: Offer 'gpm-service-type' for non-graphical systems.Leo Famulari
* gnu/installer/services.scm (%system-services): Add the gpm-service-type.
2021-12-28installer: Recommend 'ntp-service-type' for non-graphical systems.Leo Famulari
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.
2021-12-28installer: Offer the CUPS printing service on a dedicated page.Leo Famulari
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.
2021-12-10Merge remote-tracking branch 'signed/master' into core-updatesMathieu Othacehe
2021-12-08Revert "installer: Make LUKS2 the default format for encrypted devices"Tobias Geerinckx-Rice
This reverts commit a82e9f45fd9f7c67123b7064c60065281035c744 at the author's request. We are not quite ready to boot all resulting systems. See <https://logs.guix.gnu.org/guix/2021-12-08.log#231815>.
2021-12-05Merge remote-tracking branch 'origin/master' into core-updates-frozenRicardo Wurmus
2021-12-01installer: parted: Use the swap-space record.Mathieu Othacehe
* gnu/installer/parted.scm (user-partitions->configuration): Use the swap-space record.
2021-12-01installer: Make LUKS2 the default format for encrypted devicesJosselin Poiret
* gnu/installer/parted.scm (luks-format-and-open): Change it. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-11-26installer: Rework installation device detection.Josselin Poiret
* gnu/installer/parted.scm (installation-device): Remove it. * gnu/installer/parted.scm (installer-root-partition-path): Add it. * gnu/installer/parted.scm (non-install-devices): Add installation-device? predicate. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-10-31Merge remote-tracking branch 'origin/master' into core-updates-frozenEfraim Flashner
2021-10-21installer: Reorder file system type listbox.Tobias Geerinckx-Rice
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.
2021-10-12Merge remote-tracking branch 'origin/master' into core-updates-frozen.Mathieu Othacehe
2021-10-01installer: Fix typo in docstrings.Tobias Geerinckx-Rice
* gnu/packages/gnu/installer/parted.scm (force-user-partitions-formatting, format-user-partitions): Fix ‘formating’ docstring typo.
2021-09-23installer: Support XFS.Tobias Geerinckx-Rice
* 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.
2021-09-21installer: keymap: Fix optional fields handling.Mathieu Othacehe
Fixes: <https://issues.guix.gnu.org/50723>. The keymap xml contains optional shortDescription and description fields. The assoc-ref call on those fields can return false, handle it correctly. * gnu/installer/keymap.scm (xkb-rules->models+layouts): Introduce a new "maybe-empty" helper to deal with optional fields. Use it for shortDescription and description fields.
2021-08-29Migrate to the new 'targets' field of bootloader-configuration.Maxim Cournoyer
The old 'target' field is deprecated; adjust the sources to use the new 'targets' one instead. * doc/guix-cookbook.texi<target>: Replace by 'targets'. * gnu/bootloader/grub.scm: Likewise. * gnu/installer/parted.scm: Likewise. * gnu/machine/digital-ocean.scm: Likewise. * gnu/system/examples/asus-c201.tmpl: Likewise * gnu/system/examples/bare-bones.tmpl: Likewise * gnu/system/examples/bare-hurd.tmpl: Likewise * gnu/system/examples/beaglebone-black.tmpl: Likewise * gnu/system/examples/desktop.tmpl: Likewise * gnu/system/examples/docker-image.tmpl: Likewise * gnu/system/examples/lightweight-desktop.tmpl: Likewise * gnu/system/examples/vm-image.tmpl: Likewise * gnu/system/examples/yggdrasil.tmpl: Likewise * gnu/system/hurd.scm: Likewise * gnu/system/images/hurd.scm: Likewise * gnu/system/images/novena.scm: Likewise * gnu/system/images/pine64.scm: Likewise * gnu/system/images/pinebook-pro.scm: Likewise * gnu/system/images/rock64.scm: Likewise * gnu/system/install.scm: Likewise * gnu/system/vm.scm: Likewise * gnu/tests.scm: Likewise * gnu/tests/ganeti.scm: Likewise * gnu/tests/install.scm: Likewise * gnu/tests/nfs.scm: Likewise * gnu/tests/telephony.scm: Likewise * tests/boot-parameters.scm: Likewise * tests/system.scm: Likewise
2021-07-04installer: Unconditionally import (gnu services cups) in config.scm.Tobias Geerinckx-Rice
* gnu/installer/steps.scm (format-configuration): Add cups to the list of GNU service modules.
2021-07-04installer: tests: Expect but do not select other services by default.Tobias Geerinckx-Rice
* gnu/installer/tests.scm (choose-services): Accept a new choose-other-service? keyword argument, defaulting to false. Expect an "Other services" checkbox-list. Update docstring.
2021-06-30installer: Offer the CUPS printing service.Tobias Geerinckx-Rice
* 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.
2021-06-29installer: Fix crash when deleting a free space partition.Mathieu Othacehe
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.
2021-06-23installer: Remove unused procedure.Tobias Geerinckx-Rice
NETWORKING-SYSTEM-SERVICE? was obsoleted in commit 2e55f37c0c8fdfbc413edff61490161648a78dcc. * gnu/installer/services.scm (networking-system-service?): Remove it.
2021-06-17installer: Improve the installation device detection method.Mathieu Othacehe
Fixes: <https://issues.guix.gnu.org/47780>. * gnu/installer/parted.scm (installation-device): New method. (non-install-devices): Remove devices which are reported as read-only by parted or which path is identical to the installation device path returned by the above method.
2021-06-13installer: Fix FAT16 partition mounting.Mathieu Othacehe
The "fat" file-system mount type doesn't exist in Linux. Trying to mount a FAT16 partition with "fat" file-system type returns -ENODEV. Fixes: <https://issues.guix.gnu.org/48419>. * gnu/installer/parted.scm (user-fs-type->mount-type): Use the "vfat" file-system for FAT16 partitions.
2021-06-12installer: Improve install device detection.Mathieu Othacehe
* gnu/installer/parted.scm (non-install-devices): Improve the detection by assuming that any device with the ISO9660 label is the installation device.
2021-06-12installer: Check partitions UUIDs.Mathieu Othacehe
* 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.
2021-06-12installer: Print user partitions.Mathieu Othacehe
* gnu/installer/newt/partition.scm (run-partitioning-page): Print user-partitions to syslog.
2021-04-28tests: Add gui-uefi-installed-os test.Mathieu Othacehe
* gnu/installer/tests.scm (conclude-installation): Rename it into ... (start-installation): ... this new procedure. (complete-installation): New procedure. (choose-partitioning): Add an uefi-support? argument. * gnu/tests/install.scm (uefi-firmware): New procedure. (run-install, qemu-command/writable-image, gui-test-program, installation-target-os-for-gui-tests): Add an uefi-support? argument. (%extra-packages): Add grub-efi, fatfsck/static and dosfstools. (%test-gui-installed-os): New variable.
2021-04-28installer: Add MSDOS disk label support on UEFI systems.Mathieu Othacehe
Fixes: <https://issues.guix.gnu.org/47889>. * gnu/installer/parted.scm (esp-partition?): Remove the MSDOS check. (auto-partition!): On MSDOS disks, check if an ESP partition is present. If that's the case, do not remove it. Otherwise, if UEFI is supported, create one.
2021-04-28installer: Force GPT disk label when UEFI is supported.Mathieu Othacehe
* gnu/installer/newt/partition.scm (run-label-page): Force the GPT disk label when UEFI is supported.
2021-04-14installer: Internationalize comment of the generated config.Ludovic Courtès
* gnu/installer/steps.scm (configuration->file): Pass the comment in the generated file through 'G_'.
2021-01-31installer: Edit desktop selection prompt.Tobias Geerinckx-Rice
* gnu/installer/newt/services.scm (run-desktop-environments-cbt-page): Fix and clarify the #:info-text.
2021-01-12installer: Fix crash in parameters menu.Mathieu Othacehe
Fixes: <https://issues.guix.gnu.org/45378>. * gnu/installer/newt/keymap.scm (run-layout-page): Return false when "Continue" button is pressed. (run-keymap-page): Do not try to compute variants if layout is false. Also do not try to format the result if layout is false. * gnu/installer.scm (compute-keymap-step): Do not apply keymap if "run-keymap-page" returns false.
2020-12-11install: Discover local substitute servers.Mathieu Othacehe
* gnu/installer/substitutes.scm: New file. * gnu/installer/newt/substitutes.scm: New file. * gnu/local.mk (INSTALLER_MODULES): Add them. * po/guix/POTFILES.in: Add gnu/installer/newt/substitutes.scm. * gnu/installer/proxy.scm (with-silent-shepherd): Move to ... * gnu/installer/utils.scm: ... here. * gnu/installer/record.scm (<installer>)[substitutes-page]: New field. * gnu/installer/newt.scm (substitutes-page): New procedure, (newt-installer): register it. * gnu/installer.scm (installer-steps): Add "substitutes-page" step. * gnu/system/install.scm (%installation-services): Add avahi-service-type and enable substitute server discover in guix-service-type. [<name-service-switch>]: Set it to %mdns-host-lookup-nss.
2020-12-11Revert "services: openssh: Warn about 'password-authentication?' default."Ludovic Courtès
This reverts commit aecd2a13cbd8301d0fdeafcacbf69e12cc3f6138 for two reasons: 1. The warning would fire every time (gnu services ssh) is loaded; 2. There's still no clear consensus on the approach to follow as discussed in <https://issues.guix.gnu.org/44808>.
2020-12-07services: openssh: Warn about 'password-authentication?' default.Ludovic Courtès
Fixes <https://bugs.gnu.org/44808>. Reported by Christopher Lemmer Webber <cwebber@dustycloud.org>. * gnu/services/ssh.scm (true-but-soon-false): New procedure. (<openssh-configuration>)[password-authentication?]: Change default to 'true-but-soon-false'. * gnu/installer/services.scm (%system-services): Explicitly set 'password-authentication?' to #f.
2020-11-17installer: Fix device synchronization.Mathieu Othacehe
Reported by Florian Pelz: https://lists.gnu.org/archive/html/guix-devel/2020-11/msg00326.html. * gnu/installer/utils.scm (call-with-time): New procedure, (let/time): new macro. * gnu/installer/parted.scm (with-delay-device-in-use?): Increase the retry count to 16. (non-install-devices): Remove the call to with-delay-device-in-use? as it doesn't return the expected result, and would block much longer now. (free-parted): Log the time required to sync each device.