mirror of
https://git.launchpad.net/~ubuntu-release/britney/+git/britney2-ubuntu
synced 2025-02-13 15:37:02 +00:00
Fix handling of arch:all to arch:any transitions
Given a package where the version in testing is arch:all and uninstallable on architecture $arch and the version in unstable is arch:any but still uninstallable on $arch, we need to ensure that installability checks add the package to $arch's uninstallble list rather than just the list for ${arch}+all. Signed-off-by: Adam D. Barratt <adam@adam-barratt.org.uk>
This commit is contained in:
parent
e3921e2822
commit
e5a80bf76f
34
britney.py
34
britney.py
@ -2277,14 +2277,17 @@ class Britney:
|
||||
for p in [x[0] for x in affected if x[1] == arch]:
|
||||
if p not in binaries[arch][0]: continue
|
||||
r = systems[arch].is_installable(p)
|
||||
if not r and p not in broken:
|
||||
to_check.append(p)
|
||||
broken.add(p)
|
||||
if not r:
|
||||
if p not in broken:
|
||||
to_check.append(p)
|
||||
broken.add(p)
|
||||
if not (skip_archall and binaries[arch][0][p][ARCHITECTURE] == 'all'):
|
||||
nuninst[arch].add(p)
|
||||
elif r and p in broken:
|
||||
to_check.append(p)
|
||||
broken.remove(p)
|
||||
if p not in nuninst[arch]:
|
||||
nuninst[arch].add(p)
|
||||
else:
|
||||
if p in broken:
|
||||
to_check.append(p)
|
||||
broken.remove(p)
|
||||
if not (skip_archall and binaries[arch][0][p][ARCHITECTURE] == 'all'):
|
||||
# if the package was previously arch:all and uninstallable
|
||||
# and has moved to being architecture-dependent, becoming
|
||||
@ -2302,14 +2305,17 @@ class Britney:
|
||||
for p in binaries[arch][0][j][RDEPENDS]:
|
||||
if p in broken or p not in binaries[arch][0]: continue
|
||||
r = systems[arch].is_installable(p)
|
||||
if not r and p not in broken:
|
||||
broken.add(p)
|
||||
to_check.append(p)
|
||||
if not r:
|
||||
if p not in broken:
|
||||
broken.add(p)
|
||||
to_check.append(p)
|
||||
if not (skip_archall and binaries[arch][0][p][ARCHITECTURE] == 'all'):
|
||||
nuninst[arch].add(p)
|
||||
elif r and p in nuninst[arch + "+all"]:
|
||||
broken.remove(p)
|
||||
to_check.append(p)
|
||||
if p not in nuninst[arch]:
|
||||
nuninst[arch].add(p)
|
||||
else:
|
||||
if p in broken:
|
||||
broken.remove(p)
|
||||
to_check.append(p)
|
||||
if not (skip_archall and binaries[arch][0][p][ARCHITECTURE] == 'all'):
|
||||
# if the package was previously arch:all and uninstallable
|
||||
# and has moved to being architecture-dependent, becoming
|
||||
|
Loading…
x
Reference in New Issue
Block a user