Re: [openstack-dev] [devstack] pip 8 no longer over-installs system packages [was: Gate failure]
On 01/20/2016 04:14 PM, Ian Wienand wrote: On 01/20/2016 12:53 PM, Robert Collins wrote: I suspect we'll see fallout in unit tests too, once new images are built. If the images can build ... yeah, dib is not happy about this either Just removing the directory as pip used to do has been enough to keep things going. To be clear, what happens is that pip removes the egg-info file and then overwrites the system installed files. This is, of course, unsafe, but we generally get away with it. Presume we can't remove the system python-* packages for these tools because other bits of the system rely on it. We've been down the path of creating dummy packages before, I think ... that never got very far. Another option would be for us to just keep a list of egg-info files to remove within devstack and more or less do what pip was doing before. Would pip accept maybe a environment flag to restore the old ability to remove based on the egg-info? Is it really so bad given what devstack is doing? I proposed a revert in [1] which I'm sure people will have opinions on. [1] https://github.com/pypa/pip/pull/3389 __ OpenStack Development Mailing List (not for usage questions) Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
Re: [openstack-dev] [devstack] pip 8 no longer over-installs system packages [was: Gate failure]
On 01/20/2016 12:53 PM, Robert Collins wrote: I suspect we'll see fallout in unit tests too, once new images are built. If the images can build ... This was marked as deprecated, I understand, but the removal is very unfortunate [1] considering it's really just a shoot-yourself-in-the-foot operation. From the latest runs, on ubuntu we are using pip to over-install system packages of six requests netaddr PyYAML PyOpenSSL jsonpointer urllib3 PyYAML pyOpenSSL On CentOS it is requests PyYAML enum34 ipaddress numpy The problem is that we can't remove these system packages with the package-manager from the base images, because other packages we need rely on having them installed. Just removing the directory as pip used to do has been enough to keep things going. So, what to do? We can't stay at pip < 8 forever, because I'm sure there will be some pip problem we need to patch soon enough. Presume we can't remove the system python-* packages for these tools because other bits of the system rely on it. We've been down the path of creating dummy packages before, I think ... that never got very far. I really don't know how with the world of devstack plugins we'd deploy a strict global virtualenv. Heaven knows what "creative" things plugins are going to come up with if someone hits this (not that I've proposed anything elegant)... Would pip accept maybe a environment flag to restore the old ability to remove based on the egg-info? Is it really so bad given what devstack is doing? -i [1] https://github.com/pypa/pip/commit/6afc718307fea36b9ffddd376c1395ee1061795c __ OpenStack Development Mailing List (not for usage questions) Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev