[Pulp-dev] vagrant up on master is broken by python-lxml dep solving

Michael Hrivnak mhrivnak at redhat.com
Tue Dec 20 21:51:36 UTC 2016


When I try to "vagrant up" with all git repos on "master", I get an
exciting explosion with this error at the core:

raise exc\r\ndnf.exceptions.DepsolveError: installed package
python2-lxml-3.7.0-1.fc24.x86_64 obsoletes python-lxml < 3.7.0-1.fc24
provided by python-lxml-3.4.4-4.fc24.x86_64

The steps leading up to this are that the setup:

- scrapes pulp spec files for Requires statements
- finds one for "python-lxml" in the pulp_rpm spec file
- tries to use dnf to install python-lxml, among many other dependencies

dnf doesn't like this one bit. I think it comes down to ambiguity over
these two points:

python2-lxml is installed on the system and "Provides" python-lxml
python-lxml is also an available RPM, but it's obsoleted by python2-lxml

When I run "dnf install python-lxml", it matches the RPM with that exact
name, not the already-installed RPM that merely "Provides" that name, and
then complains

But if I install something that "Requires: python-lxml", like
pulp-rpm-plugins, dnf happily resolves that as you might expect.

Reading the man page for dnf, that behavior matches what is described in
the "SPECIFYING PACKAGES" section:

"Failing to match the input argument to an existing package name based on
the patterns above, DNF tries to see if the argument matches an existing
provide."

dnf does match the argument to a package name, and when it encounters a dep
solving error, it does not go back and continue its matching algorithm. It
never gets to the point of trying to match the argument to a "provide".

So what should we do? This seems to be a quirk of F24 that might be unusual.

- We could change our spec file for F24+ to "Require: python2-lxml"
- We could handle this as a special case in the ansible facts, and modify
the value before trying to use it with dnf.
- $YOUR_IDEA_HERE

What do you all think?

Michael
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/pulp-dev/attachments/20161220/d9813712/attachment.htm>


More information about the Pulp-dev mailing list