Fix upgrading replaced packages regression
This commit is contained in:
@@ -125,3 +125,7 @@ def remove_obsoleted_packages():
|
|||||||
if obsoletes:
|
if obsoletes:
|
||||||
if remove(obsoletes, ignore_dep=True, ignore_safety=True):
|
if remove(obsoletes, ignore_dep=True, ignore_safety=True):
|
||||||
raise Exception(_("Obsoleted packages remaining"))
|
raise Exception(_("Obsoleted packages remaining"))
|
||||||
|
|
||||||
|
def remove_replaced_packages(replaced):
|
||||||
|
if remove(replaced, ignore_dep=True, ignore_safety=True):
|
||||||
|
raise Exception(_("Replaced package remains"))
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ def find_upgrades(packages, replaces):
|
|||||||
|
|
||||||
# pisi up has "not installed but replacement package" as argument
|
# pisi up has "not installed but replacement package" as argument
|
||||||
if i_pkg in replaces.values():
|
if i_pkg in replaces.values():
|
||||||
for i, u in replaces:
|
for i, u in replaces.items():
|
||||||
if i_pkg == u:
|
if i_pkg == u:
|
||||||
i_pkg = i
|
i_pkg = i
|
||||||
u_pkg = u
|
u_pkg = u
|
||||||
@@ -59,8 +59,8 @@ def find_upgrades(packages, replaces):
|
|||||||
ctx.ui.info(_('Package %s is not installed.') % i_pkg, True)
|
ctx.ui.info(_('Package %s is not installed.') % i_pkg, True)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if not packagedb.has_package(i_pkg):
|
if not packagedb.has_package(u_pkg):
|
||||||
ctx.ui.info(_('Package %s is not available in repositories.') % i_pkg, True)
|
ctx.ui.info(_('Package %s is not available in repositories.') % u_pkg, True)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
pkg = packagedb.get_package(u_pkg)
|
pkg = packagedb.get_package(u_pkg)
|
||||||
@@ -81,7 +81,7 @@ def find_upgrades(packages, replaces):
|
|||||||
ctx.ui.info(_('Package %s is already at the latest release %s.')
|
ctx.ui.info(_('Package %s is already at the latest release %s.')
|
||||||
% (pkg.name, pkg.release), True)
|
% (pkg.name, pkg.release), True)
|
||||||
else:
|
else:
|
||||||
if build < pkg.build:
|
if build < pkg.build or u_pkg != i_pkg:
|
||||||
Ap.append(u_pkg)
|
Ap.append(u_pkg)
|
||||||
else:
|
else:
|
||||||
ctx.ui.info(_('Package %s is already at the latest build %s.')
|
ctx.ui.info(_('Package %s is already at the latest build %s.')
|
||||||
@@ -160,6 +160,7 @@ def upgrade_pkg_names(A = []):
|
|||||||
if conflicts:
|
if conflicts:
|
||||||
operations.remove.remove_conflicting_packages(conflicts)
|
operations.remove.remove_conflicting_packages(conflicts)
|
||||||
|
|
||||||
|
operations.remove.remove_replaced_packages(replaces.keys())
|
||||||
operations.remove.remove_obsoleted_packages()
|
operations.remove.remove_obsoleted_packages()
|
||||||
|
|
||||||
for path in paths:
|
for path in paths:
|
||||||
|
|||||||
Reference in New Issue
Block a user