From 6f90723b9957378ba05693893276494cca16989b Mon Sep 17 00:00:00 2001 From: Clover Date: Mon, 12 Oct 2026 15:09:21 -0500 Subject: [PATCH 1/2] fix: allow packages from all configured repositories --- archinstall/lib/global_menu.py | 12 +----------- archinstall/lib/packages/packages.py | 28 ++++++---------------------- 2 files changed, 7 insertions(+), 33 deletions(-) diff --git a/archinstall/lib/global_menu.py b/archinstall/lib/global_menu.py index e8e3cc8a54..ba333c7383 100644 --- a/archinstall/lib/global_menu.py +++ b/archinstall/lib/global_menu.py @@ -23,7 +23,6 @@ from archinstall.lib.models.mirrors import MirrorConfiguration from archinstall.lib.models.network import NetworkConfiguration, NicType from archinstall.lib.models.package_types import DEFAULT_KERNEL -from archinstall.lib.models.packages import Repository from archinstall.lib.models.pacman import PacmanConfiguration from archinstall.lib.models.profile import ProfileConfiguration from archinstall.lib.network.network_menu import select_network @@ -584,16 +583,7 @@ async def _select_profile(self, current_profile: ProfileConfiguration | None) -> return await ProfileMenu(preset=current_profile).show() async def _select_additional_packages(self, preset: list[str]) -> list[str]: - config: MirrorConfiguration | None = self._item_group.find_by_key('mirror_config').value - - repositories: set[Repository] = set() - if config: - repositories = set(config.optional_repositories) - - return await select_additional_packages( - preset, - repositories=repositories, - ) + return await select_additional_packages(preset) async def _mirror_configuration(self, preset: MirrorConfiguration | None = None) -> MirrorConfiguration | None: if self._mirror_list_handler is None: diff --git a/archinstall/lib/packages/packages.py b/archinstall/lib/packages/packages.py index 6a98f11a1b..138cae895f 100644 --- a/archinstall/lib/packages/packages.py +++ b/archinstall/lib/packages/packages.py @@ -3,7 +3,7 @@ from archinstall.lib.exceptions import SysCallError from archinstall.lib.log import debug from archinstall.lib.menu.helpers import Loading, Notify, Selection -from archinstall.lib.models.packages import AvailablePackage, LocalPackage, PackageGroup, Repository +from archinstall.lib.models.packages import AvailablePackage, LocalPackage, PackageGroup from archinstall.lib.pacman.pacman import Pacman from archinstall.lib.translationhandler import tr from archinstall.tui.menu_item import MenuItem, MenuItemGroup @@ -62,15 +62,12 @@ def available_package(package: str) -> AvailablePackage | None: @lru_cache -def list_available_packages( - repositories: tuple[Repository, ...], -) -> dict[str, AvailablePackage]: +def list_available_packages() -> dict[str, AvailablePackage]: """ Returns a list of all available packages in the database """ packages: dict[str, AvailablePackage] = {} current_package: list[str] = [] - filtered_repos = [repo.value for repo in repositories] try: Pacman.run('-Sy') @@ -84,8 +81,7 @@ def list_available_packages( if dec_line.startswith('Validated'): if current_package: avail_pkg = _parse_package_output(current_package, AvailablePackage) - if avail_pkg.repository in filtered_repos: - packages[avail_pkg.name] = avail_pkg + packages[avail_pkg.name] = avail_pkg current_package = [] return packages @@ -117,25 +113,13 @@ def _parse_package_output[PackageType: (AvailablePackage, LocalPackage)]( return cls.model_validate(package) -async def select_additional_packages( - preset: list[str] | None = None, - repositories: set[Repository] | None = None, -) -> list[str]: +async def select_additional_packages(preset: list[str] | None = None) -> list[str]: if preset is None: preset = [] - if repositories is None: - repositories = set() - - repositories |= {Repository.Core, Repository.Extra} - - respos_text = ', '.join(r.value for r in repositories) - output = tr('Repositories: {}').format(respos_text) + '\n' - output += tr('Loading packages...') - result = await Loading[dict[str, AvailablePackage]]( - header=output, - data_callback=lambda: list_available_packages(tuple(repositories)), + header=tr('Loading packages...'), + data_callback=list_available_packages, ).show() if result.type_ != ResultType.Selection: From 6282c9b725a787cbfd6c2b15a7cef6809e524c9c Mon Sep 17 00:00:00 2001 From: Clover Date: Mon, 12 Oct 2026 16:03:25 -0500 Subject: [PATCH 2/2] list repos while loading --- archinstall/lib/packages/packages.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/archinstall/lib/packages/packages.py b/archinstall/lib/packages/packages.py index 138cae895f..290a724291 100644 --- a/archinstall/lib/packages/packages.py +++ b/archinstall/lib/packages/packages.py @@ -1,5 +1,6 @@ from functools import lru_cache +from archinstall.lib.command import SysCommand from archinstall.lib.exceptions import SysCallError from archinstall.lib.log import debug from archinstall.lib.menu.helpers import Loading, Notify, Selection @@ -117,8 +118,12 @@ async def select_additional_packages(preset: list[str] | None = None) -> list[st if preset is None: preset = [] + repositories = SysCommand('pacman-conf --repo-list').decode().splitlines() + output = tr('Repositories: {}').format(', '.join(repositories)) + '\n' + output += tr('Loading packages...') + result = await Loading[dict[str, AvailablePackage]]( - header=tr('Loading packages...'), + header=output, data_callback=list_available_packages, ).show()