Skip custom mirror config when keyring sync fails
Check the exit state of archlinux-keyring-wkd-sync.service after waiting for it to finish. If it failed, skip set_mirrors() and continue installation with default mirrors instead of crashing with "GPGME error: No data" during pacman -Syy.
This commit is contained in:
parent
23ff97c2d3
commit
cf478a0b73
|
|
@ -131,6 +131,7 @@ class Installer:
|
||||||
|
|
||||||
self._zram_enabled = False
|
self._zram_enabled = False
|
||||||
self._disable_fstrim = False
|
self._disable_fstrim = False
|
||||||
|
self._keyring_synced = True
|
||||||
|
|
||||||
self.pacman = Pacman(self.target, silent)
|
self.pacman = Pacman(self.target, silent)
|
||||||
|
|
||||||
|
|
@ -228,6 +229,10 @@ class Installer:
|
||||||
while self._service_state('archlinux-keyring-wkd-sync.service') not in ('dead', 'failed', 'exited'):
|
while self._service_state('archlinux-keyring-wkd-sync.service') not in ('dead', 'failed', 'exited'):
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
|
|
||||||
|
if self._service_state('archlinux-keyring-wkd-sync.service') == 'failed':
|
||||||
|
self._keyring_synced = False
|
||||||
|
warn('archlinux-keyring-wkd-sync failed, custom mirror configuration will be skipped')
|
||||||
|
|
||||||
def _verify_boot_part(self) -> None:
|
def _verify_boot_part(self) -> None:
|
||||||
"""
|
"""
|
||||||
Check that mounted /boot device has at minimum size for installation
|
Check that mounted /boot device has at minimum size for installation
|
||||||
|
|
@ -246,6 +251,10 @@ class Installer:
|
||||||
f'Please resize it to at least 200MiB and re-run the installation.',
|
f'Please resize it to at least 200MiB and re-run the installation.',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def keyring_synced(self) -> bool:
|
||||||
|
return self._keyring_synced
|
||||||
|
|
||||||
def sanity_check(
|
def sanity_check(
|
||||||
self,
|
self,
|
||||||
offline: bool = False,
|
offline: bool = False,
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ from archinstall.lib.disk.utils import disk_layouts
|
||||||
from archinstall.lib.general.general_menu import PostInstallationAction, select_post_installation
|
from archinstall.lib.general.general_menu import PostInstallationAction, select_post_installation
|
||||||
from archinstall.lib.global_menu import GlobalMenu
|
from archinstall.lib.global_menu import GlobalMenu
|
||||||
from archinstall.lib.installer import Installer, accessibility_tools_in_use, run_custom_user_commands
|
from archinstall.lib.installer import Installer, accessibility_tools_in_use, run_custom_user_commands
|
||||||
from archinstall.lib.log import debug, error, info
|
from archinstall.lib.log import debug, error, info, warn
|
||||||
from archinstall.lib.menu.util import delayed_warning
|
from archinstall.lib.menu.util import delayed_warning
|
||||||
from archinstall.lib.mirror.mirror_handler import MirrorListHandler
|
from archinstall.lib.mirror.mirror_handler import MirrorListHandler
|
||||||
from archinstall.lib.models import Bootloader
|
from archinstall.lib.models import Bootloader
|
||||||
|
|
@ -98,7 +98,10 @@ def perform_installation(
|
||||||
installation.generate_key_files()
|
installation.generate_key_files()
|
||||||
|
|
||||||
if mirror_config := config.mirror_config:
|
if mirror_config := config.mirror_config:
|
||||||
installation.set_mirrors(mirror_list_handler, mirror_config, on_target=False)
|
if installation.keyring_synced:
|
||||||
|
installation.set_mirrors(mirror_list_handler, mirror_config, on_target=False)
|
||||||
|
else:
|
||||||
|
warn('Skipping custom mirror configuration due to keyring sync failure')
|
||||||
|
|
||||||
installation.minimal_installation(
|
installation.minimal_installation(
|
||||||
optional_repositories=optional_repositories,
|
optional_repositories=optional_repositories,
|
||||||
|
|
@ -109,7 +112,10 @@ def perform_installation(
|
||||||
)
|
)
|
||||||
|
|
||||||
if mirror_config := config.mirror_config:
|
if mirror_config := config.mirror_config:
|
||||||
installation.set_mirrors(mirror_list_handler, mirror_config, on_target=True)
|
if installation.keyring_synced:
|
||||||
|
installation.set_mirrors(mirror_list_handler, mirror_config, on_target=True)
|
||||||
|
else:
|
||||||
|
warn('Skipping target mirror configuration due to keyring sync failure')
|
||||||
|
|
||||||
if config.swap and config.swap.enabled:
|
if config.swap and config.swap.enabled:
|
||||||
installation.setup_swap(algo=config.swap.algorithm)
|
installation.setup_swap(algo=config.swap.algorithm)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue