mirror of
https://github.com/spalencsar/bearhub.git
synced 2026-07-08 13:14:17 +02:00
[fix][arch] not checking if the are other installed providers for the target package
This commit is contained in:
@@ -14,9 +14,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
|||||||
- regressions (from **0.9.4**)
|
- regressions (from **0.9.4**)
|
||||||
- resetting the main configuration when tray mode is active [#118](https://github.com/vinifmor/bauh/issues/118)
|
- resetting the main configuration when tray mode is active [#118](https://github.com/vinifmor/bauh/issues/118)
|
||||||
- bauh-cli crashing (https://github.com/vinifmor/bauh/issues/118)
|
- bauh-cli crashing (https://github.com/vinifmor/bauh/issues/118)
|
||||||
- Arch
|
- Arch: not checking if **pacman-mirrors** is available before starting to download repository packages (when multi-threaded download is enabled) [#117](https://github.com/vinifmor/bauh/issues/117)
|
||||||
- not checking if **pacman-mirrors** is available before starting to download repository packages (when multi-threaded download is enabled) [#117](https://github.com/vinifmor/bauh/issues/117)
|
- Arch
|
||||||
|
- uninstall: not checking if the are other installed providers for the target package
|
||||||
|
|
||||||
## [0.9.4] 2020-05-29
|
## [0.9.4] 2020-05-29
|
||||||
|
|
||||||
|
|||||||
@@ -972,6 +972,27 @@ class ArchManager(SoftwareManager):
|
|||||||
|
|
||||||
required_by = self.deps_analyser.map_all_required_by({context.name}, set())
|
required_by = self.deps_analyser.map_all_required_by({context.name}, set())
|
||||||
|
|
||||||
|
if required_by:
|
||||||
|
target_provided = pacman.map_provided(pkgs={context.name}).keys()
|
||||||
|
|
||||||
|
if target_provided:
|
||||||
|
required_by_deps = pacman.map_all_deps(required_by, only_installed=True)
|
||||||
|
|
||||||
|
if required_by_deps:
|
||||||
|
all_provided = pacman.map_provided()
|
||||||
|
|
||||||
|
for pkg, deps in required_by_deps.items():
|
||||||
|
target_required_by = 0
|
||||||
|
for dep in deps:
|
||||||
|
if dep in target_provided:
|
||||||
|
dep_providers = all_provided.get(dep)
|
||||||
|
|
||||||
|
if dep_providers:
|
||||||
|
target_required_by += 1 if not dep_providers.difference(target_provided) else 0
|
||||||
|
|
||||||
|
if not target_required_by:
|
||||||
|
required_by.remove(pkg)
|
||||||
|
|
||||||
self._update_progress(context, 50)
|
self._update_progress(context, 50)
|
||||||
|
|
||||||
to_uninstall = set()
|
to_uninstall = set()
|
||||||
|
|||||||
Reference in New Issue
Block a user