Red Hat Bugzilla – Bug 1029067
python-celery has a runtime requirement on python-billiard < 3.0, but the spec file does not require any particular version of billiard
Last modified: 2014-01-17 15:24:21 EST
Description of problem:
I installed python-celery, but I cannot start celeryd because it has a runtime dependency on python-billiard, ensuring that <3.0 is installed. The Celery spec file should explicitly require billiard < 3.0, so as to avoid this problem.
Version-Release number of selected component (if applicable):
$ rpm -qa | grep cel
$ rpm -qa | grep bill
Steps to Reproduce:
1. yum install python-celery
Traceback (most recent call last):
File "/usr/bin/celeryd", line 5, in <module>
from pkg_resources import load_entry_point
File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 2809, in <module>
File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 594, in resolve
Installing Celery should require billiard < 3.0 explicitly, instead of requiring any version of billiard.
Also present in Fedora 20 beta (python-celery-3.0.19-4.fc20.noarch).
Randy or Christopher,
sadly, I don't have currently a real testcase. May I ask you to try the following RPM?
(basically, I nuked the runtime-checks, since deps are handled via rpm)
SRPM is here:
If that works, I'd push that to f19, f20 to solve this annoying issue, which I fixed for f21.
I don't have an F20 installation at the moment to try that package out there, and it appears that I don't have a new enough version of Kombu in F19:
Error: Package: python-celery-3.0.19-5.fc20.noarch (/python-celery-3.0.19-5.fc20.noarch)
Requires: python-kombu >= 2.5.10
Installed: python-kombu-2.5.8-1.fc19.noarch (@fedora)
python-kombu = 2.5.8-1.fc19
I didn't take a look in the src RPM, but I am curious whether you added the <3.0 requirement to the src RPM? I believe that Celery developers intentionally put the check on billiards being under version 3, and so eliminating the check may lead to problems with Celery.
Respectfully, I would like to suggest that we should not get rid of the runtime-checks that the Celery developers put into place, as those checks helped us realize our library compatibility problems.
I'd like to second Randy's suggestion that the runtime check not be removed, unless we have confirmation from the upstream project that celery will work with a newer version of billiard. If we do have such confirmation I would like to see a revised Requires declaration on the RPM that expresses what versions of billiard have been certified to work with this version of celery.
One way or another, we need to have confidence that 1) the versions of celery and billiard in F19 will definitely work together, and 2) that if celery does limit the versions we can use, that the limitation is enforced (preferably by the RPM).
I had forgotten that I could just query the RPM for the answer to my question above. It looks like the RPM does not have the requirement on billiard<3.0:
$ rpm -qR -p python-celery-3.0.19-5.fc20.noarch.rpm
python(abi) = 2.7
python-kombu >= 2.5.10
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PartialHardlinkSets) <= 4.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsXz) <= 5.2-1
python-kombu-2.5.16-1.fc20,python-celery-3.0.19-5.fc20,python-billiard-188.8.131.52-1.fc20 has been submitted as an update for Fedora 20.
python-kombu-2.5.16-1.fc19,python-celery-3.0.15-4.fc19,python-billiard-184.108.40.206-1.fc19 has been submitted as an update for Fedora 19.
Package python-kombu-2.5.16-1.fc20, python-celery-3.0.19-5.fc20, python-billiard-220.127.116.11-1.fc20:
* should fix your issue,
* was pushed to the Fedora 20 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing python-kombu-2.5.16-1.fc20 python-celery-3.0.19-5.fc20 python-billiard-18.104.22.168-1.fc20'
as soon as you are able to.
Please go to the following url:
then log in and leave karma (feedback).
I can also confirm that the Celery RPM now has the correct requires:
$ rpm -q --requires python-celery | grep billiard
python-billiard >= 1:22.214.171.124
python-billiard < 1:3.0
Looks great, thanks for the fix!
python-kombu-2.5.16-1.fc19, python-celery-3.0.15-4.fc19, python-billiard-126.96.36.199-1.fc19 has been pushed to the Fedora 19 stable repository. If problems still persist, please make note of it in this bug report.
python-kombu-2.5.16-1.fc20, python-celery-3.0.19-5.fc20, python-billiard-188.8.131.52-1.fc20 has been pushed to the Fedora 20 stable repository. If problems still persist, please make note of it in this bug report.
I tried in fedora 19 today and still have the issue installing celery
# yum install python-celery
---> Package python-celery.noarch 0:3.0.15-4.fc19 will be installed
--> Finished Dependency Resolution
Error: Package: python-celery-3.0.15-4.fc19.noarch (updates)
Requires: python-billiard > 1:184.108.40.206
Installed: 1:python-billiard-220.127.116.11-1.fc19.x86_64 (@updates)
python-billiard = 1:18.104.22.168-1.fc19
Available: python-billiard-22.214.171.124-1.fc19.x86_64 (fedora)
python-billiard = 126.96.36.199-1.fc19
# rpm -qa | grep billiard