Skip to content

Commit e1efa34

Browse files
authored
Install mkinitcpio explicitly in base packages (#4484)
Prevents pacstrap from picking a different initramfs provider (dracut, booster) when running from a non-Arch host. Fixes #4368
1 parent cb0f3a6 commit e1efa34

1 file changed

Lines changed: 7 additions & 2 deletions

File tree

archinstall/lib/installer.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,12 @@
6161
from archinstall.lib.translationhandler import tr
6262

6363
# Any package that the Installer() is responsible for (optional and the default ones)
64-
__packages__ = ['base', 'sudo', 'linux-firmware'] + [k.value for k in Kernel]
64+
# https://github.com/archlinux/archinstall/issues/4368
65+
# mkinitcpio is listed explicitly so pacstrap installs it deterministically. Otherwise
66+
# pacman picks the first initramfs provider from the host's pacman.conf, which on non-Arch
67+
# hosts (EndeavourOS prefers dracut, etc.) breaks the installer's mkinitcpio() and
68+
# _config_uki() methods that assume mkinitcpio is present in the chroot.
69+
__packages__ = ['base', 'sudo', 'linux-firmware', 'mkinitcpio'] + [k.value for k in Kernel]
6570

6671
# Additional packages that are installed if the user is running the Live ISO with accessibility tools enabled
6772
__accessibility_packages__ = ['brltty', 'espeakup', 'alsa-utils']
@@ -80,7 +85,7 @@ def __init__(
8085
`Installer()` is the wrapper for most basic installation steps.
8186
It also wraps :py:func:`~archinstall.Installer.pacstrap` among other things.
8287
"""
83-
self._base_packages = base_packages or __packages__[:3]
88+
self._base_packages = base_packages or __packages__[:4]
8489
self.kernels = kernels or [DEFAULT_KERNEL.value]
8590
self._disk_config = disk_config
8691

0 commit comments

Comments
 (0)