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..290a724291 100644 --- a/archinstall/lib/packages/packages.py +++ b/archinstall/lib/packages/packages.py @@ -1,9 +1,10 @@ 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 -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 +63,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 +82,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 +114,17 @@ 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' + 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=output, - data_callback=lambda: list_available_packages(tuple(repositories)), + data_callback=list_available_packages, ).show() if result.type_ != ResultType.Selection: