On Jul 18, 2008, at 8:09 AM, Bernhard Rosenkränzer wrote:

Hi,
I finally got around to fixing various problems with apt-rpm when used with
rpm5 -- the last being "apt-get update" hanging because of a bug in
rpm4compat.h.

Now it gets the lists and starts resolving dependencies, but it complains
about the rpm internal dependencies for loads of installed packages:


The following packages have unmet dependencies:
ImageMagick: Depends: VersionedDependencies (<= 3.0.3-1) but it is not
installable
Depends: PayloadFilesHavePrefix (<= 4.0-1) but it is not
installable
               Depends: CompressedFileNames (<= 3.0.4-1) but it is not
installable
Depends: PayloadIsBzip2 (<= 3.0.5-1) but it is not installable
  apr: Depends: PayloadIsLzma (<= 4.4.6-1) but it is not installable
[...]


I nuked these ancient tracking dependencies, the issues have long since vanished.

One can re-add the dependencies in lib/rpmds.c rather easily ...

Of course, the crude hack approach to get it up and running is adding
Provides: VersionedDependencies = 3.0.3-1
Provides: PayloadFilesHavePrefix = 4.0-1
....

to the rpm5 spec file, but I prefer to stay off junk like that. Before digging deeper, does anyone have any ideas why apt is seeing those bogus requirements instead of the correct rpmlib(PayloadIsBzip2) <= 3.0.5-1 type deps? (The
packages are ok, rpm --requires shows the correct deps.)


Yes, you don't want to be adding rpmlib(...) dependencies to packages, very much the wrong thing to do, the rpmlib() dependencies MUST be satisfied by the rpmlib implementation, not from packages. Adding to packages would just raise false expectations.

OTOH, you can retrofit any dependencies by adding to /etc/rpm/sysinfo/ Providename,
that's likely what I would do.

Hmm, but you seem to be asking where the rpmlib(...) wrapping went.

The parser for "name spaces" is in rpmdb/rpmns.c, different classes of dependencies have their foo(...) wrapper parsed off. Look in lib/depends.c unsatisfiedDepends() for the main
usage case for rpmnsParse().

But try re-adding the ancient rpmlib(...) deps in lib/rpmds.c first, that will likely Just Work.

hth

73 de Jeff______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
Developer Communication List                        rpm-devel@rpm5.org

Reply via email to