Description of problem:
I've opened up a Fedora 19 Feature to remove PyXML due to a combination of it being dead upstream for many years and that when it's installed, the python stdlib overwrites its own xml module with PyXML. This combination leads to errors because PyXML's code is older and contains bugs that have been fixed in the stdlib.
I've taken a look at why katello-cli has a dependency on PyXML and it looks like it is due to one usage of the xml module for parsing dates:
$ grep -ri xml . |grep import
./src/katello/client/core/utils.py:from xml.utils import iso8601
There was a similar issue with the subscription-manager package: https://bugzilla.redhat.com/show_bug.cgi?id=844072
I'll attach a patch that should port katello-cli from using PyXML to using python-dateutil
Created attachment 677108 [details]
Patch to switch katello-cli from PyXML to python-dateutil
Created attachment 677109 [details]
Patch for spec file to remove PyXML dep and add python-dateutil
Here's the spec file update that goes along with this. Note that the current version of katello-cli in the rawhide repo seems to fail build for an unrelated reason.
Thanks for patch and reporting.
Sent to upstream:
I expect that when Katello 1.3 is released (due in February) that this code will get to Fedora 19.
Hey, it's the end of February. Do we have a new target for the release?
If we don't have a release date, may I update the fedora Rawhide package with the patch? This is the last package blocking the remove PyXML Feature: https://fedoraproject.org/wiki/Features/RemovePyXML
I'd like to remove PyXML from rawhide before Alpha so that we have more testing that the removal doesn't break anything. If I remove it without this package being fixed, katello will be broken. I don't really want to stop katello from getting testing at alpha when the fix is right here and has been pulled into the upstream tree :-)
The release date is still not set.
OK. I will push new package from katello nightly to rawhide this afternoon.
Thanks! But a repoquery on rawhide shows that katello is still requiring PyXML:
$ repoquery -q --tree-whatrequires PyXML
PyXML-0:0.8.4-29.fc19.x86_64 [cmd line]
\_ katello-cli-common-0:1.1.10-1.fc19.noarch [1: PyXML = 0.8.4-29.fc19]
| \_ katello-cli-0:1.1.10-1.fc19.noarch [1: katello-cli-common = 1.1.10-1.fc19]
| | \_ katello-cli-unit-tests-0:1.1.10-1.fc19.noarch [1: katello-cli = 1.1.10-1.fc19]
\_ katello-cli-unit-tests-0:1.1.10-1.fc19.noarch [1: PyXML = 0.8.4-29.fc19]
Now is the correct afternoon :)
Should be built now: