[Pkg-ganeti-devel] Ganeti package

Apollon Oikonomopoulos apoikos at gmail.com
Sun Jul 14 20:19:57 UTC 2013


On 09:20 Sat 13 Jul     , Iustin Pop wrote:
> On Sat, Jul 13, 2013 at 01:09:21AM +0300, Apollon Oikonomopoulos wrote:
> > Well, in that case we should ship the whole application modulo the 
> > RAPI client as a private module under /usr/share/ganeti. This will 
> > probably complicate things wrt. PYTHONPATH though. OTOH, 
> > Build-Depending on python (not -all) would not guarantee 
> > cross-version support for the RAPI client (see below).
> 
> I'm a bit confused here. Wouldn't the python packaging solve
> automatically the PYTHONPATH isses? Or rather, I thought no matter how
> the modules are handled (private or public), the packaging handles that
> and it's transparent to the application.

Private modules are private, exactly because they are not installed 
under sys.path. In order for the application to make use of its own 
modules without overriding sys.path, the whole application must live in 
the private module path and everything must be symlinked from there (the 
python interpreter does a readlink() on start and uses the real 
application path, see [1] for an example).  In the case of ganeti this 
would mean:

 /usr/share/ganeti2/ganeti/__init__.py
 /usr/share/ganeti2/ganeti/rpc.py
 /usr/share/ganeti2/ganeti/daemon.py
 ...
 /usr/share/ganeti2/gnt-group
 /usr/share/ganeti2/gnt-instance
 ...
 /usr/sbin/gnt-instance -> /usr/share/ganeti2/gnt-instance
 /usr/sbin/gnt-group -> /usr/share/ganeti2/gnt-group

And then ganeti RAPI client would ship:
 /usr/share/pyshared/ganeti/rapi/client.py


Ideally, this layout should be provided by `make install', as is 
provided by distutils for example.

I'll try to make a PoC in a separate branch to see how easily it can be 
done without messing with the build system itself.

[1] https://wiki.debian.org/Python/Packaging#Example_2:_Python_application 

While we're at it, I've converted the package to dh sequencer, split the 
documentation into ganeti2-doc and converted debian/copyright to Format 
1.0. I haven't pushed anything out yet, will probably push everything 
tomorrow in a different branch for review. Still, I would like your 
advice on the following:

The original debian/copyright states that the packaging work under 
debian/ is released under GPL, pointing to /usr/share/common-licenses/GPL
which is GPLv3 (or later), while Ganeti itself is GPLv2 (or later).  
While there is nothing wrong with this, I just want to make sure this is 
intensional.

Cheers,
/A



More information about the Pkg-ganeti-devel mailing list