Commit graph

320 commits

Author SHA1 Message Date
Rutherther
88f0151d9f
installer: kernel: Accept empty list as kernel.
On architectures other than x86_64, the kernel page is not shown.  That means
the kernel will be an empty list. This leads to an exception during
installation.

Followup of 139a69b602, part of #5515.

* gnu/installer/kernel.scm (kernel->configuration): Accept empty kernel.

Change-Id: I7891f189ecc8d557aa9bb900a6633a570e46a3b6
2026-01-21 14:19:46 +01:00
Florian Pelz
ea0c0bec5d
installer: Adjust vertical space in the recommended kernel choice.
Proposed in #5555.

* gnu/installer/newt/kernel.scm (run-kernel-page): Add a newline.

Suggested-by: Ludovic Courtès <ludo@gnu.org>
Change-Id: I50e156e12539ba86cf9aa12ab6ef92ed145b5578
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2026-01-16 20:53:49 +01:00
Rutherther
5ce978fa93
installer: run-kernel-page: Ensure Linux Libre is first.
The list box is automatically sorted, putting Hurd in front of Linux Libre.

* gnu/installer/newt/kernel.scm (run-kernel-page): Do not sort.

Change-Id: Id534560e93eee597e1180d766abb7422cd8e547a
2026-01-16 20:53:48 +01:00
Rutherther
542db8304e
installer: services: Disable desktop page on Hurd and 32-bit x86.
To prevent confusion, remove possibility to choose the desktop services on
both Hurd and 32-bit x86. As the info text suggests, desktop environments are not
available on Hurd. As for x86, there some of the services do not build. While
it is more idiomatic to fix those services, for the 1.5.0 release, use this
workaround to disable the desktop page. This ensures users aren't left
building something that will fail.

* gnu/installer/newt/services.scm
(run-desktop-environments-cbt-page): No longer show special info on Hurd.
(run-desktop-environments-cbt-page/maybe): Call
run-desktop-environments-cbt-page on architectures that support desktop
environments well.
(run-services-page): Call maybe variant of run-desktop-environments-cbt-page.

Change-Id: I4bb636e4d5bf2b73bfaf276fd359c77402c5c5f7
Fixes: #5400
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
Merges: #5503
2026-01-14 10:47:51 +01:00
Rutherther
056dd112aa
installer: partition: Force msdos on Hurd.
Since Hurd always uses Legacy BIOS bootloader, do not offer GPT label.

* gnu/installer/newt/partition.scm (run-label-page): Force MSDOS for Hurd
target.

Change-Id: Ib8bb1175f85e8f6084683a747303e3e19f20be42
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2026-01-14 10:46:41 +01:00
Rutherther
84a018b356
installer: network: Check response code to assess substitute availability.
This is to accomodate following situation:
- The proxy is up
- The substitute server is down

When that happens, 5xx is returned from the proxy, typically either Bad
Gateway or Gateway Timeout. This implies the substitute server is down.

Still, for checking if the user is online, we do not check the response code.
If there is a response, even 4xx, 5xx, it still means the user is online.

* gnu/installer/newt/network.scm
(url-alive?): Add optional argument to to check the response code.
(common-urls-alive?): Add the same argument, passing it to url-alive?
(check-substitute-availability): Assume offline when non-successful http code
returned.

Follow up of 9ea2174ba8.
Change-Id: I52ae8a49407009dd76ad5da3925355770bc25d0c

Change-Id: I99a77cb7332198bae84f28a00a6cc0409d5bf3b9
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
Merges: #5217
2026-01-14 09:16:50 +01:00
Janneke Nieuwenhuizen
0ac92150b1
installer: Add Hurd x86_64 as an option.
* gnu/installer/newt/kernel.scm (run-kernel-page): Rename "Hurd" to "Hurd
32-bit (experimental)".  On 64-bit, also offer "Hurd 64-bit (highly
experimental!)", and make these strings translatable.  Make "Linux Libre" the
first option.  Add a line break after "When in doubt...".  Upon re-entrry,
use pre-selected kernel as the default.  Make sure to always [re]set
%current-target-system, as this page may be revisited and another kernel
choice selected.
* gnu/installer/kernel.scm (kernel->configuration): Update accordingly.
* gnu/installer/final.scm (install-system): Also cater for the 64-bit Hurd by
simply adding --target=(%current-target-system).

Change-Id: I14cb2d2815265b8841c16cf9bcc3857b1024f507
2026-01-14 09:16:49 +01:00
Fredrik Salomonsson
09014b57fd
installer: Add Sway as an option in the Desktop environment page.
* gnu/installer/services.scm (%system-services): desktop-environment for sway
and its minimal companion packages.
* gnu/tests/install.scm (installation-target-desktop-os-for-gui-tests): Add
sway and its companion packages to operating-system packages.

Change-Id: I22f4cb67752ce1a15009680a1ba081fae129d45a
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-11-04 17:49:29 +01:00
Rutherther
1f024990dd
installer: Add KDE Plasma desktop environment.
* gnu/installer/services.scm (%system-services): Add KDE Plasma environment.
* gnu/tests/install.scm
(installation-target-desktop-os-for-gui-tests): Add
plasma-desktop-service-type to operating-system services.
(%test-gui-inst)led-desktop-os-encrypted): Extend side for Plasma.

Change-Id: Iaf55bb85f40865ee5b79abef23a98a3e04a1e244
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-11-03 17:18:39 +01:00
Mathieu Othacehe
93805c657b
tests: installer: Fix gui-installed-desktop-os-encrypted.
* gnu/installer/services.scm (%system-services): Fix a typo.

Fixes: guix/guix#3636

Change-Id: I9b94474124df4da87784157d25fe39a1887c743b
2025-11-02 13:55:59 +01:00
Mathieu Othacehe
e6c9d02ea2
tests: installer: Display the final configuration file.
* gnu/installer/final.scm (install-system): Display the generated
configuration file in the syslog to ease installer tests debugging.

Change-Id: Ia5faf696a5244ece955616b4b9a350d057b93696
2025-11-02 13:54:26 +01:00
Florian Pelz
a685710058
installer: Do not use LatGrkCyr console font for Esperanto.
* gnu/installer/services.scm (system-services->configuration):
Don't match `eo'.

Change-Id: I46ba7dd737141c25ce9a9fcf164ae431e2ed4b33
2025-10-22 10:43:48 +02:00
Florian Pelz
1839efad14
installer: Fix installing services depending on language.
Follow-up to d2475833e4.

* gnu/installer/services.scm (system-services->configuration): Match
on language without territory code.

Change-Id: I70be271217732401be4c62dc472f1ebe4dafb764
2025-10-22 10:43:48 +02:00
Rutherther
344bf876f6
installer: Respect /tmp/installer-assume-online in check-substitute-availability.
Follow up of #2518, where check-substitute-availability has been introduced.

This is mostly for system tests that run without internet access.

* gnu/installer/newt/network.scm (check-substitute-availability): Skip the
check if /tmp/installer-assume-online exists.

Change-Id: I0110390e8c5ce6756f3c22cb770011ea735fe79b
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2025-10-19 12:31:43 +03:00
Rutherther
9ea2174ba8
installer: network: Add step for substitute availability.
Notifies the user if substitutes are not available to
let them know they might have to build a lot of software.

* gnu/installer/newt/network.scm
(check-substitute-availability): Step for checking if substitutes are available.
(run-network-page): Add the step.

Change-Id: Ia7f54b7a5b70b371240b9e732c7eff078d2c2184
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-10-17 12:23:55 +02:00
Rutherther
0b35df4c8b
installer: wait-service-online: Allow user to proceed if offline.
The user may choose to proceed with installation
even if they seem to be offline. This is mostly for cases
where the user if actually online, but the gnu and guix
infrastructure is down. On top of that, if the installer
has all the necessary dependencies the user might not need
internet at all.

* gnu/installer/newt/network.scm (wait-oservice-online): Add choice window for
user to continue if offline.

Change-Id: Id8868ad42a6874d31b64765457f8a3d3b08ebd6c
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-10-17 12:23:55 +02:00
Rutherther
55584781e9
installer: wait-service-online: More urls to check user is online.
Provide more space for failure.

* gnu/installer/newt/network.scm (wait-service-online)
[common-urls-alive?]: Renamed from ci-available?

Change-Id: Icf68683dd72c66570eeafaeb0e7871237f0936c9
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-10-17 12:23:54 +02:00
Rutherther
e59a33a6c0
installer: wait-service-online: Assume online for http errorful codes.
The general idea of the step is to check if user is online.
Even if the servers return errorful codes such as 504, the
user is online.

* gnu/installer/newt/network.scm (wait-service-online)[url-alive?]: Return #t
for all urls that return valid http response.

Change-Id: Iad06bb444ed9971bc438092ff6341fce99e77e07
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-10-17 12:23:54 +02:00
Gabriel Wicki
52c18505a0
gnu: installer: Replace deprecated dhcp client service.
* gnu/installer/services.scm(system-service) [snippet]: Replace dhcp service.

Change-Id: Ia345704ebcea747b91fd3c357437d2479a5c11c2
2025-07-24 18:46:50 +02:00
Efraim Flashner
214aa26e5c
gnu: installer: Remove enlightenment desktop option.
* gnu/installer/services.scm (%system-services): Remove
enlightenment-desktop-service-type.
* gnu/tests/install.scm (installation-target-desktop-os-for-gui-tests):
Remove enlightenment-desktop-service-type.
* etc/manifests/cross-compile.scm (%system-packages): Remove
enlightenment.
* etc/manifests/release.scm (%system-packages): Remove enlightenment.

Change-Id: I79cd8fc13ea0fda5eef72aee783b26edc77dcb5e
2025-06-30 11:41:56 +03:00
Andy Tai
38011da03d
installer: Include icewm as a desktop environment.
* gnu/installer/services.scm (%system-services): Include icewm as a desktop
environment.
* gnu/tests/install.scm (installation-target-desktop-os-for-gui-tests): Add
icewm to the list of packages.
* etc/manifests/release.scm: (%system-packages): Add icewm.

Change-Id: I881c1dd4289281e51c81d83fac785ef064e6ff6a
Signed-off-by: Christopher Baines <mail@cbaines.net>
2025-03-01 22:22:34 +00:00
Efraim Flashner
66daf46b41
gnu: Fix some misspellings.
Change-Id: I316652aff7418af4b8e83bea24638b1513f8aa97
2025-02-19 11:21:47 +02:00
Florian Pelz
d2475833e4
install: Change the territory when we have learned it.
Typically, the LANGUAGE has already been set in the run-language-page
step.  But for languages like pt, we must know the territory.

* gnu/installer/newt/locale.scm (run-territory-page): Call ‘setenv’ for
the ‘LANGUAGE’ variable.

Change-Id: Ie6308c359e0bdb2d37fac0c844cfd879e96e231a
2024-11-20 16:02:06 +01:00
Janneke Nieuwenhuizen
711855cb00
installer: Add static-networking template.
* gnu/installer/services.scm (%system-services): Add
static-networking-service-type.

Change-Id: Iec6336f8d1f49e8b801e978d5c9eeb4f83a6e748
2024-11-11 07:28:35 +01:00
Janneke Nieuwenhuizen
687a2ccabc
installer: Add "Kernel" page to select the Hurd.
This adds a "Kernel" page to the installer with the option to (cross-) install
the Hurd, if applicable (only available on x86 machines for now).

* gnu/installer/newt.scm (kernel-page): New procedure.
(newt-installer)[kernel-page]: New field.
* gnu/installer/kernel.scm,
gnu/installer/newt/kernel.scm: New files.
* gnu/local.mk (INSTALLER_MODULES): Add them.
* gnu/installer.scm (installer-steps): Use them to select kernel if
applicable.
* gnu/installer/newt/partition.scm (run-label-page): Default to "msdos" when
instaling the Hurd.
(run-fs-type-page): Add ext2 for the hurd.
(run-partitioning-page-partition): Remove `entire-encrypted' option when
installing the Hurd.
* gnu/installer/services.scm (system-services->configuration): Cater for the
Hurd with %base-services/hurd, and with %base-packages/hurd that must always
be set.
(%system-services): Change to procedure.  When installing the the Hurd, do not
recommend `ntp-service-type' and USE `openssh-sans-x' package for
`openssh-service-type'.
(system-service-none): New variable.
* gnu/installer/newt/services.scm (run-network-management-page): Include it
when installing the Hurd.
(run-desktop-environments-cbt-page): When installing the Hurd, recommend to
not select any desktop enviroment.  Update users.
* gnu/installer/parted.scm (efi-installation?): Return #f when installing for
the Hurd.
(create-ext2-file-system): New procedure.
(user-fs-type-name, user-fs-type->mount-type, partition-filesystem-user-type,
format-user-partitions): Support `ext2'.
(<user-partition> partition->user-partition): Use `ext2' when installing the
Hurd.
(auto-partition!): Likewise.  No swap partition when installing the Hurd.
* gnu/installer/final.scm (install-system): Cater for cross installation of
the Hurd.
(bootloader-configuration): Use `grub-minimal-bootloader' when installing the
Hurd.
(user-partition-missing-modules): Cater for empty user-partitions.
(initrd-configuration, user-partitions->configuration): Cater for the Hurd.
* gnu/installer/steps.scm (format-configuration,
configuration->file): Cater for the Hurd.
* gnu/system/hurd.scm (%desktop-services/hurd): New variable.
* gnu/installer/tests.scm (choose-kernel): New procedure.
* gnu/tests/install.scm (gui-test-program): Use it.

Change-Id: Ifafb27b8a2f933944c77223a27ec151757237e36
2024-11-11 07:28:35 +01:00
Janneke Nieuwenhuizen
9aeb8e3dee
installer: Add dry-run?
This allows running the installer without root privileges.  Do something like

    ./pre-inst-env guix repl
    ,use (guix)
    ,use (gnu installer)
    (installer-program #:dry-run? #t)
    ,build $1
    =>
    "/gnu/store/...-installer-program"

and run

    /gnu/store/...-installer-program

* gnu/installer/newt.scm (locale-page): Add #:dry-run? parameter.
(keymap-page): Likewise.
* gnu/installer/newt/keymap.scm (run-keymap-page): Likewise.
* gnu/installer/steps.scm (run-installer-steps): Likewise.  Use it to skip
writing to socket.
* gnu/installer/newt/final.scm (run-final-page): Rename to...
(run-final-page-install): ...this.
(dry-run-final-page, run-final-page): New procedures.
* gnu/installer/parted.scm (bootloader-configuration): Cater for empty user
partitions.
* gnu/installer/utils.scm (dry-run-command): New procedure.
* gnu/installer.scm (compute-locale-step): Add #:dry-run? parameter.  Use it
to avoid actually applying locale.
(compute-keymap-step): Add dry-run? parameter.  Pass it to
keymap-page.
(installer-program): Add #:dry-run? parameter.  If #:true
avoid writing to /proc, use dry-run-command, skip sync and reboot, and pass
dry-run? to...
(installer-steps): ...here.  Add #:dry-run? parameter.  Use it to disable
skip network, substitutes, partitioning pages, and pass it to...
compute-locale-step, compute-keymap-step, and final-page.

Change-Id: I0ff4c3b0a0c69539af617c27ba37654beed44619
2024-11-11 07:28:35 +01:00
Janneke Nieuwenhuizen
cca544513b
installer: Use `%' for parameter %run-command-in-installer.
* gnu/installer/utils.scm (run-command-in-installer): Rename to...
(%run-command-in-installer): ...this.
* gnu/installer.scm (installer-program): Update accordingly.
* 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-ensure-open, luks-close):
Update accordingly.

Change-Id: I96ebc59ebc85fd8ebccb0cc57130b4e7532d287f
2024-11-11 07:28:34 +01:00
Janneke Nieuwenhuizen
e57bc3bcde
installer: Fix file-name typos.
* gnu/installer/newt/page.scm (run-dump-page): Typo file-name.
* gnu/installer/utils.scm (open-new-log-port): Likewise.

Change-Id: I837991a0ee5054b3afa8328205e23ac6f9fbae8d
2024-11-11 07:28:34 +01:00
Janneke Nieuwenhuizen
31f687f258
installer: Use "partitioning-page" consistently.
Having `partition-page' function call `RUN-partititionING-page' where all
other proxy functions call `RUN-<name>' hurts my brain while refactoring.

* gnu/installer/record.scm (<installer>)[partition-page]: Rename to...
[partitioning-page]: ...this.
* gnu/installer/newt.scm (partitioning-page, newt-installer): Update
accordingly.
* gnu/installer.scm (installer-steps): Update accordingly.

Change-Id: I6b2f3459a3d0a7a89260224b7d8438676e3411ba
2024-11-11 07:28:34 +01:00
Janneke Nieuwenhuizen
f7aa7acc22
installer: Remove unused (newt) imports.
* gnu/installer/newt/ethernet.scm,
gnu/installer/newt/keymap.scm,
gnu/installer/newt/locale.scm,
gnu/installer/newt/parameters.scm,
gnu/installer/newt/services.scm: Remove (newt).

Change-Id: Ia6624aaf73491024da54b8ffee7358941b187fdf
2024-11-11 07:28:34 +01:00
Ludovic Courtès
98545ea115
installer: Create ext4 file systems with ‘-O large_dir’.
* gnu/installer/parted.scm (create-ext4-file-system): Pass
‘-O large_dir’ to ‘mkfs.ext4’.

Change-Id: Ie34039ed03f273505e7f7fb5c3241120e3395ba2
2024-08-31 19:06:38 +02:00
Maxim Cournoyer
65e8472a4b
system: Remove nss-certs from OS templates, adjust doc.
This is a follow-up to commit 86afaadb51 ("system: Add 'nss-certs' to
%base-packages-networking.")

* doc/guix-cookbook.texi (Running Guix on a Linode Server): Remove nss-certs
from operating system's packages field.
(Running Guix on a Kimsufi Server): Likewise.
* doc/guix.texi (Using the Configuration System): Likewise.
(X.509 Certificates): Adjust to mention nss-certs *is* part of %base-packages.
* gnu/installer/services.scm (%system-services): Remove recommendation to
install nss-certs.
* gnu/system/examples/bare-bones.tmpl (host-name): Remove obsolete comments.
* gnu/system/examples/desktop.tmpl (packages): Remove nss-certs.
* gnu/system/examples/lightweight-desktop.tmpl (packages): Likewise.
* gnu/system/examples/plasma.tmpl (packages): Likewise.
* gnu/system/examples/raspberry-pi-64-nfs-root.tmpl (packages): Likewise.
* gnu/system/examples/raspberry-pi-64.tmpl (packages): Likewise.
* gnu/system/examples/vm-image.tmpl (packages): Likewise.
* gnu/system/images/orangepi-r1-plus-lts-rk3328.scm (packages): Likewise.
* gnu/system/images/pine64.scm (packages): Likewise.
* gnu/system/install.scm (installation-os) [packages]: Likewise.

Change-Id: If09123a69b987178bcb0aab61c4570c14fc1286f
2024-04-18 10:43:06 -04:00
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