[ovs-dev] [PATCH] Debian: Transition to dh_python2

Simon Horman horms at verge.net.au
Fri Aug 26 00:46:20 UTC 2011


On Thu, Aug 25, 2011 at 04:28:32PM -0700, Ben Pfaff wrote:
> On Fri, Aug 26, 2011 at 08:25:30AM +0900, Simon Horman wrote:
> > On Wed, Aug 24, 2011 at 10:06:29AM -0700, Ben Pfaff wrote:
> > > The Python libraries that Open vSwitch installs have been "private"
> > > libraries, in the sense that they are only really meant to be used by
> > > other parts of Open vSwitch.  Maybe that's a mistake; I guess that
> > > there is no good reason that they cannot be used by other software.
> > > But that's why, until now anyhow, they have been installed in
> > > /usr/share/openvswitch/python instead of a system Python directory.
> > > 
> > > It looks like this patch moves them to
> > > /usr/share/pyshared/python-openvswitch.  At least, that is where I see
> > > them when I build and install python-openvswitch.  The "pyshared" in
> > > the name makes it sound like this is a "public" directory, which isn't
> > > what we've wanted to do so far.
> > > 
> > > However, maybe the name is misleading.  This directory doesn't seem to
> > > be public, because this patch breaks "/etc/init.d/openvswitch-ipsec
> > > start":
> > > 
> > >     blp at hardrock:~/db$ sudo /etc/init.d/openvswitch-ipsec start
> > >     Starting ovs-monitor-ipsec:Traceback (most recent call last):
> > >       File "/usr/share/openvswitch/scripts/ovs-monitor-ipsec", line 35, in <module>
> > > 	from ovs.db import error
> > >     ImportError: No module named ovs.db
> > >      failed!
> > >     blp at hardrock:~/db$ 
> > 
> > I see that error too.
> > 
> > I accidently uploaded a version of 1.2.1-1 that included the dh_python2
> > transition and thus it is currently broken. I will revert the dh_python2
> > change and upload 1.2.1-2.
> > 
> > > That init script invokes python as:
> > > 
> > >     PYTHONPATH=/usr/share/openvswitch/python \
> > >            /usr/share/openvswitch/scripts/ovs-monitor-ipsec \
> > >            --pidfile-name=$PIDFILE --detach --monitor \
> > >            unix:/var/run/openvswitch/db.sock
> > > 
> > > The easy fix would be to update the PYTHONPATH variable setting, but I
> > > know little enough about Python packaging that I wonder whether this
> > > is the correct fix.
> > 
> > It seems that /usr/share/openvswitch/python doesn't exist in 1.2.0-1.
> > But ovs-monitor-ipsec starts regardless.
> 
> It sounds like what happens is this:
> 
> 	* I thought that the OVS Python libraries were private and in
>           /usr/share/openvswitch/python.
> 
> 	* They were actually public and somewhere else (hence the
>           PYTHONPATH really didn't do anything).
> 
> 	* Your patch made them actually private in some different
>           location, so now it doesn't work.

I think that you are correct, though I am unsure why
the OVS python libraries were public.

> I guess the correct fix, to fold into your patch, could be either:
> 
> 	* Make them actually public.
> 
> 	* Fix up the PYTHONPATH line above to whatever location they
>           are now installed privately into.
> 
> I think that either one is OK from my point of view.

I have found that a solution is to install the python libraries into
/usr/share/pyshared/ovs/ rather than /usr/share/pyshared/python-openvswitch/ovs/



More information about the dev mailing list