Bug 253447

Summary: compat-db update (20070819 changes) breaks dependencies
Product: [Fedora] Fedora Reporter: Michal Jaegermann <michal>
Component: compat-dbAssignee: Jindrich Novy <jnovy>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: low    
Version: rawhideCC: pknirsch
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2007-08-25 21:50:36 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Michal Jaegermann 2007-08-19 18:52:34 UTC
Description of problem:

In 20070819 rawhide report there is the following entry:

compat-db-4.5.20-3.fc8
----------------------
* Sat Aug 18 2007 Jindrich Novy <jnovy> 4.5.20-3
- remove db4 provides to workaround RPM obsoletes/provides problem (#111071),
  automatic library provides should be enough for compat-db

Maybe it should but clearly it is not enough.

$ rpm -qR libgda-devel | grep db
db4-devel

and after 'yum update' we have:

Resolving Dependencies
--> Running transaction check
---> Package compat-db.x86_64 0:4.5.20-3.fc8 set to be updated
--> Processing Dependency: db4-devel for package: libgda-devel
--> Finished Dependency Resolution
Error: Unresolveable requirement db4-devel for libgda-devel

Quite possibly there is more as my test installation is very far
from "everything".

What is interesting that "rawhide report: 20070819 changes" does
not seem to mention that breakage.

Version-Release number of selected component (if applicable):
compat-db-4.5.20-3.fc8

Comment 1 Jindrich Novy 2007-08-20 10:09:31 UTC
Please remove the Requires: db4-devel, it is not needed as rpm adds the
dependency itself. Or does libgda use any other part of db4 than the library (I
mean the binaries shipped with db4) so that the Requires is necessary? If this
is the case and you need to build libgda with older db4s, use Buildrequires:
compat-db >= [your db4 version required for libgda]. Thanks.

Comment 2 Michael Schwendt 2007-08-20 10:15:09 UTC
Can't reproduce.

db4 and db4-devel are completely separate packages:
http://koji.fedoraproject.org/koji/buildinfo?buildID=13569


Comment 3 Michael Schwendt 2007-08-20 10:16:53 UTC
> Please remove the Requires: db4-devel, it is not
> needed as rpm adds the dependency itself.

Not true. This is libgda-devel (!) with an explicit dependency
on db4-devel, which is a completely valid and sane thing to do.

Comment 4 Jindrich Novy 2007-08-20 10:23:39 UTC
Strange, the Requires: db4-devel should work perfectly if you need to require
the latest db-4.6.18 and not compat-db as db4 provides the db4-devel subpackage...

Comment 5 Jindrich Novy 2007-08-20 10:25:46 UTC
compat-db should be then completely out of the game as it doesn't provide
anything db4-* any more, only obsoletes the old ones.

Comment 6 Michal Jaegermann 2007-08-20 16:10:33 UTC
> compat-db should be then completely out of the game ....

Possibly; only it does not seem to be.

After recent updates I ended up with the following picture:

db4-4.6.18-1.fc8.x86_64
compat-db-4.5.20-2.fc8.x86_64
libgda-3.0.1-4.fc8.x86_64
libgda-devel-3.0.1-4.fc8.x86_64

but not 'db4-devel'.  Quite possibly because this was provided
by 'compat-db'.  Now if I am trying to run 'yum update' on this
I end up with:

---> Package compat-db.x86_64 0:4.5.20-3.fc8 set to be updated
--> Processing Dependency: db4-devel for package: libgda-devel
--> Finished Dependency Resolution
Error: Unresolveable requirement db4-devel for libgda-devel

So, the issue is with yum/rpm which immediately gives up
after trying 'compat-db' update and does not attempt to resolve
missing 'db4-devel' in some other way?  Or the problem lies in
a tangle of provides/obsoletes?  db4-devel-4.5.20-5.fc7 was
previously present on the system but when compat-db-4.5.20-1.fc8
showed up it got erased. 

I realize that most likely I can force an installation of
'db4-devel' and that should make that trouble to go away but
I do not think that this is the point.

Comment 7 Michal Jaegermann 2007-08-20 16:21:38 UTC
Some idea. 'compat-db-4.5.20-3.fc8' has the following in "provides":
db4 = 4.2.52
db4 = 4.3.29
db4 = 4.5.20
db4-devel = 4.2.52
db4-devel = 4.3.29
db4-devel = 4.5.20

If an update, which drops db4-devel from that list, would add 'db4-devel'
to "requires" would that be enough to untangle that "automatically"
without undue side-effects?  Spurious db4-devel on some installations
does not seem like a big deal.

Comment 8 Jindrich Novy 2007-08-21 09:14:33 UTC
(In reply to comment #7)
> Some idea. 'compat-db-4.5.20-3.fc8' has the following in "provides":
> db4 = 4.2.52
> db4 = 4.3.29
> db4 = 4.5.20
> db4-devel = 4.2.52
> db4-devel = 4.3.29
> db4-devel = 4.5.20

It's not possible, I see only these provides in compat-db-4.5.20-3.fc8.x86_64:

libdb-4.2.so()(64bit)
libdb-4.3.so()(64bit)
libdb-4.5.so()(64bit)
libdb_cxx-4.2.so()(64bit)
libdb_cxx-4.3.so()(64bit)
libdb_cxx-4.5.so()(64bit)
compat-db


> If an update, which drops db4-devel from that list, would add 'db4-devel'
> to "requires" would that be enough to untangle that "automatically"
> without undue side-effects?  Spurious db4-devel on some installations
> does not seem like a big deal.



Comment 9 Michal Jaegermann 2007-08-21 17:02:41 UTC
> It's not possible

You mean that I made a mistake with a version?  Correct. When I
was listing packages in comment #6 I did not make this typo.
I do have compat-db-4.5.20-2.fc8.x86_64 installed and its full
list of provides looks like that:

$ rpm -q --provides compat-db
db4 = 4.2.52
db4 = 4.3.29
db4 = 4.5.20
db4-devel = 4.2.52
db4-devel = 4.3.29
db4-devel = 4.5.20
libdb-4.2.so()(64bit)
libdb-4.3.so()(64bit)
libdb-4.5.so()(64bit)
libdb_cxx-4.2.so()(64bit)
libdb_cxx-4.3.so()(64bit)
libdb_cxx-4.5.so()(64bit)
compat-db = 4.5.20-2.fc8

Again - yes, I know how I can work around that particular gotcha
but the thing is that 'yum update' quite clearly is not.

Comment 10 Michal Jaegermann 2007-08-25 21:50:36 UTC
It looks that after an update to yum-3.2.3-2.fc8 and/or to
yum-metadata-parser-1.1.2-1.fc8 'yum update' finds all packages
which are required to resolve an update of compat-db-4.5.20-2.fc8
to compat-db-4.5.20-3.fc8 and db4-devel together with db4-cxx
gets installed without an extra intervention.