RPM

RPM python-api problem

Bug #955106 reported by Anton Kirilenko
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
RPM
New
Undecided
Unassigned

Bug Description

I've got a directory with 193 packages. Some of them have their versions newer than installed ones, others - older.

$ rpm -U ./* --nosignature --oldpackage
error: Failed dependencies:
        lib64mesaglut3 conflicts with lib64freeglut3-2.8.0-1.x86_64
        libXmuu.so.1()(64bit) is needed by (installed) xset-1.2.1-2.x86_64
        libXmuu.so.1()(64bit) is needed by (installed) xauth-1.0.5-2.x86_64
        libXmuu.so.1()(64bit) is needed by (installed) xrdb-1.0.9-1.x86_64
        libXmuu.so.1()(64bit) is needed by (installed) xsetroot-1.1.0-2.x86_64
        libXmuu.so.1()(64bit) is needed by (installed) xhost-1.0.4-2.x86_64
        libXmuu.so.1()(64bit) is needed by (installed) x11perf-1.5.3-2.x86_64
        libXmuu.so.1()(64bit) is needed by (installed) smproxy-1.0.4-2.x86_64
        libXmuu.so.1()(64bit) is needed by (installed) xkill-1.0.3-3.x86_64

I've got a python script, that creates a transaction,that installs all this files with the equivalent flags. And what I've got (script output after ts.check() ):

There are some unresolved dependencies:
        Package python-scipy-0.10.1-1 requires libamd.so.2.2.2()(64bit)
        Package libmtp-utils-1.1.2-3 requires lib64mtp9-1.1.2-3
        Package libmtp-utils-1.1.2-3 requires libmtp.so.9()(64bit)
        Package imagemagick-6.7.5.0-1 requires lib64magick5-6.7.5.0
        Package imagemagick-6.7.5.0-1 requires libMagickCore.so.5()(64bit)
        Package imagemagick-6.7.5.0-1 requires libMagickWand.so.5()(64bit)
        Package lib64nss-devel-3.13.3-0.1 requires lib64freebl3-2:3.13.3-0.1:2011.0
        Package lib64mtp-devel-1.1.2-3 requires lib64mtp9-1.1.2-3
        Package xset-1.2.1-2 requires libXmuu.so.1()(64bit)
        Package xauth-1.0.5-2 requires libXmuu.so.1()(64bit)
        Package xrdb-1.0.9-1 requires libXmuu.so.1()(64bit)
        Package xsetroot-1.1.0-2 requires libXmuu.so.1()(64bit)
        Package xhost-1.0.4-2 requires libXmuu.so.1()(64bit)
        Package x11perf-1.5.3-2 requires libXmuu.so.1()(64bit)
        Package smproxy-1.0.4-2 requires libXmuu.so.1()(64bit)
        Package xkill-1.0.3-3 requires libXmuu.so.1()(64bit)
        Package libreoffice-core-3.4.3-2.6 requires libsoftokn3.so()(64bit)

Why do these lists differ so mach? How is it possible?

python-rpm and rpm version: 5.3.12-0.20110712.2.2

Tags: python
Revision history for this message
Anton Kirilenko (anton-kirilenko) wrote :
Revision history for this message
Anton Kirilenko (anton-kirilenko) wrote :

output of the

rpm -U ./* --nosignature --oldpackage -vv

command can be found in attachment

Revision history for this message
Jeff Johnson (n3npq) wrote :

There are some differences between the original report
and the attached log.txt.

In the attached log.txt there are these dependency assertion failures:

error: Failed dependencies:
        lib64mesaglut3 conflicts with lib64freeglut3-2.8.0-1.x86_64
        libXmuu.so.1()(64bit) is needed by (installed) xset-1.2.1-2.x86_64
        libXmuu.so.1()(64bit) is needed by (installed) xauth-1.0.5-2.x86_64
        libXmuu.so.1()(64bit) is needed by (installed) xrdb-1.0.9-1.x86_64
        libXmuu.so.1()(64bit) is needed by (installed) xsetroot-1.1.0-2.x86_64
        libXmuu.so.1()(64bit) is needed by (installed) xhost-1.0.4-2.x86_64
        libXmuu.so.1()(64bit) is needed by (installed) x11perf-1.5.3-2.x86_64
        libXmuu.so.1()(64bit) is needed by (installed) smproxy-1.0.4-2.x86_64
        libXmuu.so.1()(64bit) is needed by (installed) xkill-1.0.3-3.x86_64

Revision history for this message
Jeff Johnson (n3npq) wrote :

The quick-and-dirty fix is this:
    1) Remove the conflicting package. Some command like this:
            rpm -evv `rpm -q --whatprovides lib64mesaglut3`
         There is likely a need for an Obsoletes: in the lib64freeglut3-2.8.0-1.x86_64
          package (but that's just a guess: I do not have a full context or deep understanding).
    2) Stub-in the missing dependencies like this
            mkdir -p /etc/rpm/sysinfo
            echo "libXmuu.so.1()(64bit)" >> /etc/rpm/sysinfo/Providename

Is there a package that has
    Provides: libXmuu.so.1()(64bit)
installed? Try running
    rpm -q --whatprovides "libXmuu.so.1()(64bit)"

Note that the --oldpackage option is a "downgrade" and isn't well
supported in RPM.

Revision history for this message
Jeff Johnson (n3npq) wrote :

Re: your question
    Why do these lists differ so mach? How is it possible?

I cannot answer without seeing your python script.

Meanwhile -- if you add -vv -- RPM is heavily instrumented
with debugging messages, and so most questions involved
in developing with python bindings can be answered by
comparing behaviors with the RPM command line and checking
what is different.

Turn on -vv (or other debugging) and examine the differences in output.

Revision history for this message
Jeff Johnson (n3npq) wrote :

Here's 2 guesses (I cannot tell without script and reproducer: I'm guessing)
 at what is wrong:

     Mandriva has added Distepoch/Disttag.
     There have been other Mandriva changes to RPM (which should be seen by rpm-python)
      and to perl-URPM (which may need to be done equivalently in rpm-python).

But in general, the rpm-python bindings are the thinnest possible wrapping
onto the C functions in RPM libraries. You SHOULD get the same answer
from the bindings as you do from RPM libraries. There's no "weird" just
a lot of gory details.

Jeff Johnson (n3npq)
tags: added: python
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.