Opened 13 years ago
Closed 13 years ago
#21 closed defect (fixed)
Libc header conflict with db.h and libintl.h
Reported by: | Yuri Dario | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | |
Component: | other | Version: | |
Severity: | Keywords: | ||
Cc: |
Description
libc 0.6.3 is shipping with old db and gettext headers, and has the libraries included in the runtime dll.
when db4 4.8 and gettext 0.18 devel packages are installed, this triggers a file conflict with existing files.
rpm/yum (correctly) cannot upgrade files from a different package.
the above headers are then put into a separate subpackage, db1-devel and gettext0-devel.
These packages are declared obsolete by db4-devel and gettext-devel, thus if you install libc-devel, it triggers direct installation of db4-devel and gettext-devel.
This is because yum cannot erase a package and install a new one at the same time, so we cannot declare a virtual package (e.g. db-devel) for them.
This is not the best approach, because original db.h and libintl.h are fine for many packages. But we are not adding new requirements to the installed system because db4.dll and kintl.dll are already a requirement for rpm and other core tools.
(changeset:175) the conflicting headers are in db1-devel-0.6.3 and gettext-devel-0.6.3.
They are not marked as required by libc, so users will automatically update to db4 and gettext-0.18 if they need them.
Marking them as Required will prevent automatic upgrade from db1 to db4, because obsolete forces the package upgrade, but fails because libc still requires db1-devel.
I think that if db4-devel obsoletes db1-devel it still allow the installation, but does not work...