[entropy.server] make dep_rewrite also affect conflicts
This makes possible to remove or edit conflict dependencies
This commit is contained in:
@@ -7442,10 +7442,15 @@ class Server(Client):
|
||||
|
||||
# pkg_meta['conflicts'] is a frozenset
|
||||
conflicts = set(pkg_meta['conflicts'])
|
||||
remove_conflicts = set()
|
||||
|
||||
new_dependencies = []
|
||||
remove_dependencies = set()
|
||||
|
||||
for dep_string, dep_value in pkg_meta['pkg_dependencies']:
|
||||
pkg_deps = [(dep_str, dep_val, False) in pkg_meta['pkg_dependencies']]
|
||||
pkg_deps += [(confl, None, True) in pkg_meta['conflicts']]
|
||||
|
||||
for dep_string, dep_value, is_conflict in pkg_deps:
|
||||
|
||||
dep_string_matched = False
|
||||
matched_pattern = False
|
||||
@@ -7480,7 +7485,12 @@ class Server(Client):
|
||||
if number_of_subs_made:
|
||||
dep_string_matched = True
|
||||
if new_dep_string and (new_dep_string != "-"):
|
||||
new_dependencies.append((new_dep_string, dep_value))
|
||||
|
||||
if is_conflict:
|
||||
conflicts.add(new_dep_string)
|
||||
else:
|
||||
new_dependencies.append((new_dep_string, dep_value))
|
||||
|
||||
self.output(
|
||||
"%s: %s => %s" % (
|
||||
teal(_("replaced")),
|
||||
@@ -7515,7 +7525,11 @@ class Server(Client):
|
||||
)
|
||||
|
||||
if dep_string_matched:
|
||||
remove_dependencies.add(dep_string)
|
||||
if is_conflict:
|
||||
remove_conflicts.add(dep_string)
|
||||
else:
|
||||
remove_dependencies.add(dep_string)
|
||||
|
||||
elif (not dep_string_matched) and matched_pattern:
|
||||
self.output(
|
||||
"%s: %s :: %s" % (
|
||||
@@ -7528,6 +7542,7 @@ class Server(Client):
|
||||
header = darkred(" !x!x!x! ")
|
||||
)
|
||||
|
||||
# Update dependencies
|
||||
pkg_dependencies = []
|
||||
for dep_string, dep_value in pkg_meta['pkg_dependencies']:
|
||||
if dep_string in remove_dependencies:
|
||||
@@ -7537,6 +7552,9 @@ class Server(Client):
|
||||
pkg_dependencies.extend(new_dependencies)
|
||||
pkg_meta['pkg_dependencies'] = tuple(pkg_dependencies)
|
||||
|
||||
# Update conflicts
|
||||
conflicts -= remove_conflicts
|
||||
|
||||
# save conflicts metadata back in place
|
||||
pkg_meta['conflicts'] = frozenset(conflicts)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user