[Kolab-devel] Reworking pykolab, setup-kolab and packaging
Paul Boddie
paul at boddie.org.uk
Sat Dec 21 14:48:01 CET 2013
On Saturday 21. December 2013 08.32.47 Richard wrote:
> Paul, Hans,
>
> Op vrijdag 20 december 2013 12:14:14 schreef Paul Boddie:
> >
> > Yes, I saw this before, but I then started to wonder about the apparently
> > separate kolab-setup script that was being mentioned and where this was
> > (or whether it is just another name for setup-kolab).
>
> The latter, just type kolab<tab><tab> and find all the goodies avaiable for
> kolab, in this case including kolab-setup. kolab-setup = setup-kolab
I'm not sure this tab-completion trick will work on Debian with the packages
we have today. ;-)
> > There are some things in
> > these scripts which are very useful additions, but other things are
> > probably superfluous in Debian in some ways, particularly if the
> > appropriate packages are already configured (MySQL coming to mind again).
>
> It's plugin driven. If a check is not needed, do not distribute it or
> disable the check:
>
> kolab-scripts> cat pre-setup.conf
> # Disable checks that are stored in /usr/share/kolab/pre-setup.d/
> # The checks are enabled by default and can (only) be disabled by assigning
> # the value "disable" to the check's filename (with hyphens (-) replaced by
> # underscores and the .sh suffix removed).
> #
> # Example for check (filename): kolab-check-update-pkgs.sh
> # kolab_run_update_pkgs=disable
>
> Include in kolab-pre.conf
> check_sql_database=disable
>
> and the mysql database will be disabled.
>
> If another another check is desired, just drop it in the directory
> /usr/share/kolab/pre-setup.d, determine the order it has to be executed
> with KPS_CHECK_ORDER and that's it (KPS: Kolab Pre Setup).
So the aim of kolab-pre-setup is to make sure that setup-kolab won't do any
inappropriate things to the configuration of certain components and that it
will have required packages and components installed, but that it still
requires setup-kolab to do its work?
Looking at check-cyrus-rpm.sh, for example, I see that the script checks the
origin of the Cyrus package and offers to get the right one. On Debian, the
aim here would be to make this happen within the existing packaging metadata,
although I admit that this could be awkward - I don't know what the exact
situation with the different Cyrus variants is, myself, but I know it was
mentioned recently on this list - but merging any forked packages with the
"proper" ones (or having a cleaner way of adding Kolab customisations to them)
would be an essential part of getting Kolab into Debian, which should be the
goal.
I think this pre-setup stuff is very useful as a way of documenting the
installation requirements of Kolab, but I still think that setup-kolab should
be able to deal with some of the common installation issues. Moving
distribution-specific things out of setup-kolab may well be necessary, and
eliminating setup-kolab may eventually happen if it turns out that it doesn't
really do anything any more, but I worry about work that is common to all
distributions being duplicated and the risk that some distributions don't keep
up and no longer do the necessary setup work as the upstream code changes.
My feeling is that making setup-kolab do the right thing by changing its code
directly is probably better than adding external code to encourage it to do
the right thing. But there will obviously be a need to make sure that setup-
kolab isn't going to try and configure things that aren't installed, and my
approach (which perhaps approximates to this pre-setup stuff) is to leverage
the packaging system and to call setup-kolab to configure specific components
(not everything at once) to achieve this goal.
Perhaps what we need to do is to catalogue the requirements for a usable Kolab
installation - done largely by the pre-setup work already, I suppose - and
determine what each distribution needs to do to satisfy those requirements. It
may well be the case that many of them are satisfied during the normal process
of installing Kolab's dependencies on some systems, but actually confirming
this might be useful.
Paul
More information about the devel
mailing list