summaryrefslogtreecommitdiff
path: root/gnu/installer
AgeCommit message (Collapse)Author
2022-02-02installer: Use system-wide guix for system init.Josselin Poiret
* gnu/installer.scm (installer-program): Remove dependency on the guix package for the PATH. * gnu/installer/final.scm (install-system): Set PATH inside container to /run/current-system/profile/bin/. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-02-02installer: Make dump archive creation optional and selective.Josselin Poiret
* gnu/installer.scm (installer-program): Let the installer customize the dump archive. * gnu/installer/dump.scm (prepare-dump, make-dump): Split make-dump in prepare-dump, which copies the files necessary for the dump, and make-dump which creates the archive. * gnu/installer/record.scm (installer): Add report-page field. Change documented return value of exit-error. * gnu/installer/newt.scm (exit-error): Change arguments to be a string containing the error. Let the user choose between exiting and initiating a dump. (report-page): Add new variable. * gnu/installer/newt/page.scm (run-dump-page): New variable. * gnu/installer/newt/dump.scm: Delete it. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-02-02installer: Turn passwords into opaque records.Josselin Poiret
* gnu/installer/user.scm (<secret>, secret?, make-secret, secret-content): Add opaque <secret> record that boxes its contents, with a custom printer that doesn't display anything. * gnu/installer/newt/user.scm (run-user-add-page, run-user-page): Box it. * gnu/installer/final.scm (create-user-database): Unbox it. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-02-02installer: Add error page when running external commands.Josselin Poiret
* gnu/installer/newt.scm (newt-run-command): Add it. * gnu/installer/newt/page.scm (%ok-button, %exit-button, %default-buttons, make-newt-buttons, run-textbox-page): Add them. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-02-02installer: Use named prompt to abort or break installer steps.Josselin Poiret
* 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>
2022-02-02installer: Replace run-command by invoke in newt/page.scm.Josselin Poiret
* gnu/installer/newt/page.scm (edit-file): Replace it. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-02-02installer: Fix run-file-textbox-page when edit-button is #f.Josselin Poiret
* gnu/installer/newt/page.scm (run-file-textbox-page): Check if edit-button is #f. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-02-02installer: Raise condition when mklabel fails.Josselin Poiret
* gnu/installer/parted.scm (mklabel): Do it. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
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.