mirror of
https://github.com/spalencsar/bearhub.git
synced 2026-07-10 00:44:16 +02:00
[fix][arch] not caching data of installed optdeps
This commit is contained in:
@@ -1263,7 +1263,7 @@ class ArchManager(SoftwareManager):
|
|||||||
progress = 0
|
progress = 0
|
||||||
self._update_progress(context, 1)
|
self._update_progress(context, 1)
|
||||||
|
|
||||||
repo_deps, aur_deps_context = [], []
|
repo_deps, repo_dep_names, aur_deps_context = [], None, []
|
||||||
|
|
||||||
for dep in deps:
|
for dep in deps:
|
||||||
context.watcher.change_substatus(self.i18n['arch.install.dependency.install'].format(bold('{} ({})'.format(dep[0], dep[1]))))
|
context.watcher.change_substatus(self.i18n['arch.install.dependency.install'].format(bold('{} ({})'.format(dep[0], dep[1]))))
|
||||||
@@ -1274,14 +1274,15 @@ class ArchManager(SoftwareManager):
|
|||||||
dep_context.base = dep_src['pkgbase']
|
dep_context.base = dep_src['pkgbase']
|
||||||
aur_deps_context.append(dep_context)
|
aur_deps_context.append(dep_context)
|
||||||
else:
|
else:
|
||||||
repo_deps.append(dep[0])
|
repo_deps.append(dep)
|
||||||
|
|
||||||
if repo_deps:
|
if repo_deps:
|
||||||
|
repo_dep_names = [d[0] for d in repo_deps]
|
||||||
context.watcher.change_substatus(self.i18n['arch.checking.conflicts'].format(bold(context.name)))
|
context.watcher.change_substatus(self.i18n['arch.checking.conflicts'].format(bold(context.name)))
|
||||||
|
|
||||||
all_provided = context.get_provided_map()
|
all_provided = context.get_provided_map()
|
||||||
|
|
||||||
for dep, conflicts in pacman.map_conflicts_with(repo_deps, remote=True).items():
|
for dep, conflicts in pacman.map_conflicts_with(repo_dep_names, remote=True).items():
|
||||||
if conflicts:
|
if conflicts:
|
||||||
for c in conflicts:
|
for c in conflicts:
|
||||||
source_conflict = all_provided.get(c)
|
source_conflict = all_provided.get(c)
|
||||||
@@ -1293,18 +1294,21 @@ class ArchManager(SoftwareManager):
|
|||||||
if not self._request_conflict_resolution(dep, conflict_pkg , context):
|
if not self._request_conflict_resolution(dep, conflict_pkg , context):
|
||||||
return {dep}
|
return {dep}
|
||||||
|
|
||||||
status_handler = TransactionStatusHandler(context.watcher, self.i18n, len(repo_deps), self.logger, percentage=len(repo_deps) > 1)
|
status_handler = TransactionStatusHandler(context.watcher, self.i18n, len(repo_dep_names), self.logger, percentage=len(repo_deps) > 1)
|
||||||
status_handler.start()
|
status_handler.start()
|
||||||
installed, _ = context.handler.handle_simple(pacman.install_as_process(pkgpaths=repo_deps,
|
installed, _ = context.handler.handle_simple(pacman.install_as_process(pkgpaths=repo_dep_names,
|
||||||
root_password=context.root_password,
|
root_password=context.root_password,
|
||||||
file=False),
|
file=False),
|
||||||
output_handler=status_handler.handle)
|
output_handler=status_handler.handle)
|
||||||
|
|
||||||
if installed:
|
if installed:
|
||||||
|
pkg_map = {d[0]: ArchPackage(name=d[0], repository=d[1], maintainer=d[1],
|
||||||
|
categories=self.categories.get(d[0])) for d in repo_deps}
|
||||||
|
disk.save_several(pkg_map, overwrite=True, maintainer=None)
|
||||||
progress += len(repo_deps) * progress_increment
|
progress += len(repo_deps) * progress_increment
|
||||||
self._update_progress(context, progress)
|
self._update_progress(context, progress)
|
||||||
else:
|
else:
|
||||||
return repo_deps
|
return repo_dep_names
|
||||||
|
|
||||||
for aur_context in aur_deps_context:
|
for aur_context in aur_deps_context:
|
||||||
installed = self._install_from_aur(aur_context)
|
installed = self._install_from_aur(aur_context)
|
||||||
|
|||||||
Reference in New Issue
Block a user