Description of problem: I was trying to install calamari-server using latest Ubuntu build. calamari-server couldn't be installed as it depends on python-attrs and it's not available in repo. How reproducible: Always
Ken - please take a look
Here is how we hit this bug: Calamari pins carbon to 0.9.15, which depends on unversioned Twisted. Pip installs Twisted-17.1.0, which depends on Automat>=0.3.0. On Feb 8th, the Automat developer released 0.5.0, which brings in attrs: https://github.com/glyph/automat/pull/39 So when Pip installs Automat (now 0.5.0), this pulls in attrs. When dh_python2 parses Automat's requires.txt, it translates "attrs" to "python-attrs" in ${Depends:python}. For historical reasons, Ubuntu names the binary deb "python-attr" instead of "python-attrs", so Apt cannot find the package and the operation fails. The best fix would probably be to filter python-attrs out of ${Depends:python} entirely, because we bundle attrs 16.3.0 in Calamari now, but I don't know how to do that with dh_python2. Let's take the easier way out and pull in the system python-attr package instead with /debian/pydist-overrides. That's what we've already done with msgpack_python -> python-msgpack.
Upon further investigation, adding python-attr to /debian/pydist-overrides will work for Xenial, but this will still cause Apt to fail on Trusty with Calamari 1.5. This breaks the upgrade process from RH Ceph Storage 1.3.z -> 2.y. I'm going to try dropping ${Depends:python} from /debian/control and hard-coding the small list of deps that dh_python2 would ordinarily add there.
Proposed fix upstream: https://github.com/ceph/calamari/pull/507
merged upstream as https://github.com/ceph/calamari/releases/tag/v1.5.2
Hi Ken, Since the python-attr package was not added as part of the repo, there is a dependency on some external repo. Will there be a problem if nodes are not connected to the internet, maybe in a ISO install scenario? Thanks, Tejas
With Calamari v1.5.2, Apt should not try to pull in "python-attr" nor "python-attrs". The dependency is just gone.
(In reply to Ken Dreyer (Red Hat) from comment #13) > With Calamari v1.5.2, Apt should not try to pull in "python-attr" nor > "python-attrs". The dependency is just gone. However we are still seeing that the python-attr package is still getting installed as part of calamari installation. Thanks, Tejas
@Ken, can you please check and reply to comment 14?
(In reply to Tejas from comment #14) > However we are still seeing that the python-attr package is still getting > installed as part of calamari installation. That is because Calamari depended/still depends on the "python-twisted" system package. In Xenial, python-twisted_16.0.0-1 Depends on python-attr. (In Trusty, python-twisted_13.2.0-1ubuntu1 does not Depend on python-attr, so it won't be a problem on upgrades from RH Ceph Storage 1.3 -> 2.) The direct calamari-server -> python-attr dependency is gone. (check with "dpkg -I calamari-server | grep Depends"). So I can "apt-get install calamari-server" on both Xenial and Trusty now. (In reply to Tejas from comment #12) > Will there be a problem if nodes are not connected to the internet, maybe in a > ISO install scenario? Even when using an ISO and a non-internet-connected cluster, customers must always ensure that the Ubuntu main repo content is available somehow to satisfy dependencies, whether they do that through apt-mirror or some other way. This is a requirement to install any software in this scenario, including RH Ceph Storage. It's also critical for keeping systems up-to-date with security updates.
Thanks Ken for clarifying. Moving to Verified.
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://rhn.redhat.com/errata/RHBA-2017-0514.html