Re: [openstack-dev] [devstack] pip 8 no longer over-installs system packages [was: Gate failure]

2016-01-19 Thread Ian Wienand

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]

2016-01-19 Thread Ian Wienand

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