Hi!
Same test environment, same packages, same variations, new game: Obsoletes
Packages available in i368, x86_64 and noarch:
* Installed packages: zsh-1-1.arch - iarch
* Obsoleting packages (obsoletes: zsh): zsh-ng-0.3-1.arch - oarch
Additional there is
* A package requiring obsoleting package(s) (requires: zsh-ng):
superzippy-3.5-3.noarch - ro
Each test calls runOperation with 3 parameters:
* Command list
* Packages installed in the rpmdb
* Packages available in the repository
There is always one "yum update" test case that should handle the obsoletes
and then we have one test cases where the obsoleting package(s) are required
by the to be installed package ro (aka superzippy aka "Requires Obsolete").
testObsoletenoarchToMultiarch - works
runOperation(['update'], [inoarch], [oi386, ox86_64])
oi386, ox86_64 # ox86_64 only would be an alternative policy
testObsoletenoarchToMultiarchForDependency
runOperation(['install', 'superzippy'], [inoarch], [p.oi386, p.ox86_64,
p.ro])
#ox86_64, ro
inoarch, ox86_64, ro
# likely to run into file conflicts, additional test case indicates
that "yum update" doesn't fix that problem as the obsolete is already
installed - yes, this is the "right behavior"
testObsoletei386ToMultiarch - works
runOperation(['update'], [ii386], [oi386, ox86_64])
oi386
testObsoletei386ToMultiarchForDependency
runOperation(['install', 'superzippy'], [ii386], [oi386, ox86_64, ro])
#ox86_64, ro
ii386, ox86_64, ro
# similar to the case above - see below
testObsoletei386ToMultiarchForDependencyFix # try if it goes away with "yum
update"
runOperation(['update'], [ii386, ox86_64, ro], [oi386, ox86_64])
ii386, ox86_64, ro
# yes, the obsolete is already installed - not removing ii386 is the
right thing here - but that doesn't help us...
testObsoletex86_64ToMultiarch - works
runOperation(['update'], [ix86_64], [oi386, ox86_64])
ox86_64
testObsoletex86_64ToMultiarchForDependency
runOperation(['install', 'superzippy'], [ix86_64], [oi386, ox86_64, ro])
#ox86_64, ro
ix86_64, ox86_64, ro
# ...
testObsoleteMultiarchToMultiarch - works
runOperation(['update'], [ii386, ix86_64], [oi386, ox86_64])
oi386, ox86_64
testObsoleteMultiarchToMultiarchForDependency
runOperation(['install', 'superzippy'], [ii386, ix86_64], [oi386,
ox86_64, ro])
#oi386, ox86_64, ro
ii386, ix86_64, ox86_64, ro
# ...
testObsoleteMultiarchTonoarch - works
runOperation(['update'], [ii386, ix86_64], [onoarch])
onoarch
testObsoleteMultiarchTonoarchForDependency
runOperation(['install', 'superzippy'], [ii386, ix86_64], [onoarch, ro])
#onoarch, ro
ii386, ix86_64, onoarch, ro
# ...
Looks like packages added for dependency are not checked as possible
obsoletes. This explains all of the problems seen above. Normal obsoletes
seam to work quite well. Unfortunately the (correctly implemented!)
obsoletes semantic doesn't clean up the problems created by the installs for
dependencies.
Opinions?
Florian
_______________________________________________
Yum-devel mailing list
[email protected]
https://lists.dulug.duke.edu/mailman/listinfo/yum-devel