Commit graph

288 commits

Author SHA1 Message Date
Christopher Baines
ac19e038b4
Switch order of the default substitute servers.
The aim here is to improve the user experience.  There's anecdotal evidence
that the network performance for bordeaux is better compared to ci at least
for some users, and I don't know of any issues with rate limiting or access
restriction for bordeaux compared to ci.  It also has IPv6 support.

Additionally, bordeaux generally had more substitutes than ci, particularly
for aarch64-linux and armhf-linux.  This change will offer a very slight
speedup for those substitutes that only bordeaux has.

Bordeaux has been a default substitute server for nearly 3 years now and I
think this change is overdue.  I'm also hopeful that we'll be able to build on
the testing regarding mirrors for bordeaux, and that'll allow potentially
improving the hosting setup (through providing more redundancy) and further
improving substitute fetching for users who currently have issues with
substitute access.

* config-daemon.ac: Switch substitute urls order.
* doc/guix.texi: Ditto.
* etc/guix-install.sh: Ditto.
* gnu/installer/newt/network.scm (wait-service-online): Ditto.
* guix/store.scm (%default-substitute-urls): Ditto.

Change-Id: I4f6d93ae1fc8b03d80b47b18b5749a51f1fde17b
Signed-off-by: Christopher Baines <mail@cbaines.net>
2024-04-03 17:18:38 +01:00
Denys Nykula
961ffca1c7
installer: Restore LatGrkCyr-8x16 console font depending on language.
Partially-Fixes: <https://issues.guix.gnu.org/64006>

* gnu/installer/services.scm (system-services->configuration): When the
LANGUAGE environment variable matches a known native console font, wrap the
base services with modify-services, configuring console-font-service-type to
set the native console font on every tty instead of the default console font.

Signed-off-by: Florian Pelz <pelzflorian@pelzflorian.de>
2023-07-06 15:38:58 +02:00
Josselin Poiret
d9d25bf517
installer: Filter out C.UTF-8 from the list of locales.
* gnu/installer/locale.scm (supported-locales->locales): Filter out C.UTF-8.  It
doesn't follow the other locales' format, and doesn't have a corresponding
iso639 code.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-04-30 23:11:09 +02:00
Ludovic Courtès
495c50008b
installer: final: Delete SQLite WAL and shm files upon completion.
Previously, db.sqlite-{wal,shm} could be left behind after stopping
guix-daemon.  When resuming installation, SQLite could end up behaving
as if transactions visible in the WAL file had been committed, in spite
of having restored SAVED-DATABASE.

Fixes <https://issues.guix.gnu.org/59784>.
Reported by pelzflorian (Florian Pelz) <pelzflorian@pelzflorian.de>.

* gnu/installer/final.scm (install-system): Before restarting
guix-daemon, delete db.sqlite-{wal,shm}.
2022-12-18 01:17:17 +01:00
Ludovic Courtès
9b6703eabe
installer: final: Stop guix-daemon before accessing store database.
As part of fixing <https://issues.guix.gnu.org/59784>, make sure
/var/guix/db.sqlite is only copied while guix-daemon is stopped.

* gnu/installer/final.scm (call-with-mnt-container): Add FIXME comment.
(install-system): Copy DATABASE-FILE and SAVED-DATABASE only when
'guix-daemon' is stopped.  Add logging lines.
2022-12-18 01:17:17 +01:00
Mathieu Othacehe
1ab48edb16
installer: Detect mapped installation devices.
Fixes: <https://issues.guix.gnu.org/59823>

* gnu/installer/parted.scm (mapped-device?,
mapped-device-parent-partition): New procedures.
(eligible-devices): Detect mapped installation devices using the new
procedures.
2022-12-10 11:23:27 +01:00
Ludovic Courtès
591af24ade
installer: Print progress bars and such as soon as \r is read.
Fixes <https://issues.guix.gnu.org/59922>.

Previously progress bars and related things would be buffered by
'run-external-command-with-line-hooks' until \n is read.

* gnu/installer/utils.scm (run-external-command-with-line-hooks): Use
'read-delimited' rather than 'get-line'.  Pass 'concat as the last
argument.
(%display-line-hook): Remove.
(run-command): Use 'display' instead of '%display-line-hook'.
(%syslog-line-hook): Add "\n" when LINE doesn't end in \n.
(%installer-log-line-hook): Do not add an extra newline.
(installer-log-line): Add an extra newline.
2022-12-09 17:49:22 +01:00
Ludovic Courtès
8c7ea71344
installer: Add comment above the 'packages' field.
* gnu/installer/services.scm (system-services->configuration): Add
heading above the 'packages' field.  Rename 'heading' to
'service-heading'.
2022-11-20 23:20:31 +01:00
Ludovic Courtès
514fedbf39
installer: Report known-unsupported PCI devices.
* gnu/installer/hardware.scm: New file.
* gnu/local.mk (INSTALLER_MODULES): Add it.
* po/guix/POTFILES.in: Add it.
* gnu/installer.scm (installer-steps): Pass #:pci-database to the
'welcome' step procedure.
* gnu/installer/newt.scm (welcome-page): Add #:pci-database and pass it
to 'run-welcome-page'.
* gnu/installer/newt/welcome.scm (check-hardware-support): Add #:pci-database.
Enumerate unsupported PCI devices and run an error page when unsupported
devices are found.
(run-welcome-page): Add #:pci-database and pass it to
'check-hardware-support' and to the recursive call.
* gnu/installer/record.scm (<installer>)[welcome-page]: Adjust comment.
* doc/guix.texi (Hardware Considerations): Mention it.
2022-11-15 12:16:43 +01:00
Ludovic Courtès
6b39c3afcc
installer: Error page width is parameterized.
* gnu/installer/newt/page.scm (run-error-page): Add #:width and honor
it.
2022-11-15 12:16:43 +01:00
Ludovic Courtès
4f7ffb97a4
installer: Warn about hardware support after the welcome page.
This is a followup to 682639c107, which
added the uvesafb upfront, before welcome page had been displayed.

* gnu/installer/newt/welcome.scm (check-hardware-support): New
procedure.
(run-welcome-page): Use it.
2022-11-15 12:16:42 +01:00
Ludovic Courtès
0916a79f8c
installer: Remove unused variable.
* gnu/installer/newt.scm (newt-run-command): Remove
'displayed-command'.
2022-11-09 23:59:42 +01:00
Mathieu Othacehe
62a3756bd9
installer: Skip the backtrace page on user abort.
When the user aborts the installation because a core dump is discovered or the
installation command failed, displaying the abort backtrace doesn't make much
sense. Hide it when the abort condition is &user-abort-error and skip directly
to the dump page.

* gnu/installer/steps.scm (&user-abort-error): New variable.
(user-abort-error?): New procedure.
* gnu/installer/newt/final.scm (run-install-failed-page): Raise a
user-abort-error.
* gnu/installer/newt/welcome.scm (run-welcome-page): Ditto.
* gnu/installer.scm (installer-program): Hide the backtrace page and directly
propose to dump the report when the a &user-abort-error is raised.
2022-11-02 15:52:19 +01:00
Mathieu Othacehe
80387bc7c3
installer: Add core dump support.
Fixes: <https://issues.guix.gnu.org/58733>

* gnu/installer.scm (installer-program): Enable core dump generation.
* gnu/installer/dump.scm (%core-dump): New variable.
(prepare-dump): Copy the core dump file.
* gnu/installer/newt/welcome.scm (run-welcome-page): Propose to report an
installation that previously generated a core dump.
2022-11-02 15:52:19 +01:00
Mathieu Othacehe
ab974ed709
installer: parted: Retry failing read-partition-uuid call.
Fixes: <https://issues.guix.gnu.org/53541>.

* gnu/installer/parted.scm (read-partition-uuid/retry): New procedure.
(check-user-partitions): Use it.
2022-10-31 09:34:13 +01:00
pelzflorian (Florian Pelz)
682639c107
installer: welcome: Warn when uvesafb gets used.
There will be false positives: Because the Guix installer uses the
kernel argument modprobe.blacklist=radeon,amdgpu and some AMD graphics
actually work okay according to h-node, these users will get a
false alarm.

* gnu/installer/newt/welcome.scm (run-welcome-page): Warn before showing
the welcome page.
2022-10-25 10:55:33 +02:00
Mathieu Othacehe
bf5e78d59f
installer: Resume newt in exit-error procedure.
Fixes: <https://issues.guix.gnu.org/58734>

* gnu/installer/newt.scm (exit-error): Resume it.
2022-10-23 15:37:57 +02:00
Mathieu Othacehe
00ff6f7c39
installer: Add a missing confirmation page before formatting.
This is a follow-up of: <https://issues.guix.gnu.org/57232>

* gnu/installer/newt/partition.scm (run-label-page): Add a confirmation page
when dealing with an EFI installation.
2022-10-20 17:28:11 +02:00
Mathieu Othacehe
2a5c2a6184
installer: Propose the user to report a "guix system init" failure.
* gnu/installer/newt/final.scm (run-install-failed-page): Add a "Report the
failure" button.
2022-10-20 10:50:50 +02:00
Mathieu Othacehe
96bb00d203
installer: Run the "guix system init" command in a PTY.
Fixes: <https://issues.guix.gnu.org/55360>

* gnu/installer/utils.scm (run-external-command-with-handler/tty): New
procedure.
(run-external-command-with-line-hooks, run-command): Add a TTY? argument.
* gnu/installer/final.scm (install-system): Call run-command with TTY?
argument set to #true.
2022-10-20 10:50:50 +02:00
Andrew Tropin
883fb8f41b
installer: Factorize url-alive? in internet check.
* gnu/installer/newt/network.scm (wait-service-online): Factorize url-alive?
in internet check.
2022-10-17 16:34:07 +04:00
aleksandr barakin
094b357783
installer: Relax internet check availability criteria.
Checks the availability of the mirror bordeaux.guix.gnu.org in addition to
ci.guix.gnu.org.  This allows to proceed the installation if the
ci.guix.gnu.org is unavailable.

* gnu/installer/newt/network.scm (wait-service-online): Relax internet check
availability criteria.

Signed-off-by: Andrew Tropin <andrew@trop.in>
2022-10-17 10:22:15 +04:00
Julien Lepiller
82b0f3755d
guix: Fix typos.
These typos were found and reported through weblate.

* gnu/packages/audio.scm (wildmidi)[description]: Fix typo.
* gnu/packages/games.scm (cgoban)[description]: Fix typo.
* gnu/services/version-control.scm (gitolite-service-type)[description]:
  Fix typo.
* gnu/installer/newt/substitutes.scm (run-substitutes-page): Remove full
  stop at end of title.
* gnu/machine/ssh.scm (machine-ssh-configuration-system): Move
  punctuation outside of quotes.
* guix/scripts/home.scm (process-action): Remove trailing space before
  newline.
* guix/scripts/system.scm (show-help): Fix typo.
* guix/scripts/environment.scm (with-store/maybe): Fix typo.
2022-10-17 07:29:09 +02:00
Mathieu Othacehe
91d817cc17
installer: partition: Add a confirmation page before formatting.
Fixes: <https://issues.guix.gnu.org/57232>.

* gnu/installer/newt/partition.scm (run-label-confirmation-page): New
procedure.
(run-label-page): Call the above procedure before proceeding.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-10-13 10:48:08 +02:00
Mathieu Othacehe
f38e91a84c
installer: tests: Fix typo.
* gnu/installer/tests.scm (edit-configuration-file): Fix it.
2022-09-24 14:15:47 +02:00
Mathieu Othacehe
fe4663ae24
installer: Fix configuration edition during testing.
When the configuration is edited, it looks like there are some leftover
fragments from the input configuration:

Example content of config.scm after edition:

  #:imported-modules
  '((gnu services herd)
    (guix build utils)
    (guix combinators)))

unted".  The unique
  ;; file system identifiers there ("UUIDs") can be obtained
  ;; by running 'blkid' in a terminal.

...

This is strange because call-with-output-file uses the O_TRUNC flag which
resets the file size to zero. Remove the configuration file before writing it
as a work-around.

* gnu/installer/tests.scm (edit-configuration-file): Remove the configuration
file before re-writing it.
2022-09-24 12:48:16 +02:00
Josselin Poiret
2e8b4f9bfa
installer: Exit console-services page with abort-to-prompt.
* gnu/installer/newt/services.scm (run-console-services-cbt-page): Do it.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-09-22 16:28:12 +02:00
Josselin Poiret
fd942712d8
installer: Ensure luks devices are open when mounting partitions.
Partially-Fixes: <https://issues.guix.gnu.org/57983>

* gnu/installer/parted.scm (luks-ensure-open): New procedure.
(unmount-user-partitions): Ensure luks devices are open.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-09-22 16:27:19 +02:00
Josselin Poiret
d77612a91b
installer: Return partitions with crypt password as step result.
* gnu/installer/newt/partition.scm (run-partitioning-page): Do it.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-09-22 16:00:44 +02:00
Josselin Poiret
4814ec284f
installer: Move <secret> to utils and use it for crypt passwords.
* gnu/installer/user.scm (<secret>, secret?, make-secret, secret-content): Move
to utils.scm.
* gnu/installer/utils.scm (<secret>, secret?, make-secret, secret-content):
Moved from user.scm.
* gnu/installer/newt/partition.scm (prompt-luks-passwords): Make password a
<secret>.
* gnu/installer/parted.scm (luks-format-and-open): Unwrap secret.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-09-22 16:00:29 +02:00
Josselin Poiret
4989f6acff
installer: Fix segfault on double logical partition removal.
* gnu/installer/parted.scm (auto-partition!): Avoid removing logical
partitions twice.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-09-01 18:43:28 +02:00
Tobias Geerinckx-Rice
d59442f24e
installer: parted: Don't export WITH-DELAY-DEVICE-IN-USE?.
* gnu/installer/parted.scm: Remove WITH-DELAY-DEVICE-IN-USE? from the
module's export list.
2022-08-14 02:00:02 +02:00
Ludovic Courtès
ff9522fb69
installer: Add comments and vertical space to the generated config.
* gnu/installer/parted.scm (user-partitions->configuration): Introduce
vertical space and a comment.
* gnu/installer/services.scm (G_): New macro.
(%system-services): Add comment for OpenSSH.
(system-services->configuration): Add vertical space and comments.
* gnu/installer/user.scm (users->configuration): Add comment.
* gnu/installer/steps.scm (format-configuration): Add comment.
(configuration->file): Expound leading comment.  Pass #:format-comment
to 'pretty-print-with-comments/splice'.
2022-08-08 11:54:25 +02:00
Ludovic Courtès
cd1a98b928
installer: Render the final configuration with (guix read-print).
* gnu/installer.scm (module-to-import?): Return #t for (guix read-print).
* gnu/installer/steps.scm (configuration->file): Use
'pretty-print-with-comments/splice' instead of 'for-each' and 'pretty-print'.
2022-08-08 11:54:24 +02:00
Mathieu Othacehe
3c381af76a
installer: parted: Call set-system before set-flags.
Parted 3.5 introduces the following regression:

- partition-set-flag sets the BIOS_GRUB flag. The partition type is set to
PARTITION_BIOS_GRUB_GUID.

- partition-set-system resets the partition type to PARTITION_LINUX_DATA_GUID
undoing what's done by partition-set-flag.

To prevent it, reverse the call order.

Fixes: <https://issues.guix.gnu.org/55549>.

* gnu/installer/parted.scm (mkpart): Call partition-set-system before
partition-set-flag.
2022-08-05 08:57:20 +02:00
Mathieu Othacehe
eb0277e7e3
installer: parted: Log partition flags.
* gnu/installer/parted.scm (mkpart): Log them.
2022-08-05 08:57:20 +02:00
Ludovic Courtès
48c748226e
Revert "installer: user: Remove useless filtering."
This reverts commit c2125e59d0.

Fixes <https://issues.guix.gnu.org/55361>.
2022-05-21 00:15:08 +02:00
Mathieu Othacehe
c2125e59d0
installer: user: Remove useless filtering.
* gnu/installer/user.scm (users->configuration): Remove root account filtering
that is now performed in the "run-user-add-page" procedure.
2022-04-06 21:19:08 +02:00
Mathieu Othacehe
2bfb27af56
installer: user: Forbid root user creation.
Forbid root user creation as it could lead to a system without any
non-priviledged user accouts.

Fixes: <https://issues.guix.gnu.org/54666>.

* gnu/installer/newt/user.scm (run-user-add-page): Forbid it.
2022-04-06 21:19:07 +02:00
Maxim Cournoyer
0dc019e19a
initrd: Use non-hyphenated kernel command-line parameter names.
This is to make it less surprising, given the common convention sets forth by
the kernel Linux command-line parameters.

* gnu/build/linux-boot.scm (boot-system): Rename '--load', '--repl', '--root'
and '--system' to 'gnu.load', 'gnu.repl', 'root' and 'gnu.system',
respectively.  Adjust doc.
(find-long-option): Adjust doc.
* gnu/installer/parted.scm (installer-root-partition-path): Adjust accordingly.
* gnu/system.scm (bootable-kernel-arguments): Add a VERSION argument and
update doc.  Use VERSION to conditionally return old style vs new style initrd
arguments.
(%boot-parameters-version): Increment to 1.
(operating-system-boot-parameters): Adjust doc.
(operating-system-boot-parameters-file): Likewise.
* gnu/system/linux-initrd.scm (raw-initrd, base-initrd): Likewise.
* doc/guix.texi: Adjust doc.
* gnu/build/activation.scm (boot-time-system): Adjust accordingly.
* gnu/build/hurd-boot.scm (boot-hurd-system): Likewise.
* gnu/packages/commencement.scm (%final-inputs-riscv64): Adjust comment.
2022-03-01 10:30:17 -05:00
Florian Pelz
cc11905568
installer: Continue even if Connman cannot phone home.
Connman's online check is unreliable for me.

* gnu/installer/connman.scm (connman-online?): Accept if
connman state is ready instead of online.
2022-02-26 15:56:55 +01:00
Josselin Poiret
4943ac86e4
installer: Use system-wide guix for system init.
* 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-02 16:46:44 +01:00
Josselin Poiret
ad55ccf9b1
installer: Make dump archive creation optional and selective.
* 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-02 16:46:44 +01:00
Josselin Poiret
112ef30b84
installer: Turn passwords into opaque records.
* 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-02 16:46:44 +01:00
Josselin Poiret
7cbd95a9f6
installer: Add error page when running external commands.
* 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-02 16:46:44 +01:00
Josselin Poiret
726d0bd2f3
installer: 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>
2022-02-02 16:46:44 +01:00
Josselin Poiret
ed6567abbf
installer: 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>
2022-02-02 16:46:43 +01:00
Josselin Poiret
dad9a1c0b2
installer: 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>
2022-02-02 16:46:43 +01:00
Josselin Poiret
0a74509a69
installer: Raise condition when mklabel fails.
* gnu/installer/parted.scm (mklabel): Do it.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-02-02 16:46:43 +01:00
Josselin Poiret
af59e53631
installer: Use run-command-in-installer in (gnu installer parted).
* 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-02 16:46:43 +01:00