[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