[Kolab-devel] New with Kolab (Hello all)

Richard Bos ml at radoeka.nl
Thu Mar 15 20:23:57 CET 2007


Op donderdag 15 maart 2007 11:41, schreef Jonathan Carter:
> > It would be good to have good native Debian packages, but you must
> > understand the effort it will take to put them up to the same quality
> > with Kolab Server/OpenPKG.
>
> Understood. What we're doing at the moment is doing a OpenPKG
> installation, remove the parts we won't need in our Kolab distribution,
> and then packaging the /kolab system in about 15 packages. Things that
> are removed from /kolab include /RPM, /includes, /info and /local. Then
> we do an rpm -qa to get a list of all the packages, and then use a
> simple for loop to remove all the packages from /kolab and place it in a
> directory for later packaging:
>
> for file in `/kolab/bin/openpkg rpm -ql $1`; do
>    echo Moving $file;
>    tar --no-recursion -c $file | tar -C /data/kolab-pkg/$1/ -x
> done
>
> You have to use tar, since cp and mv doesn't play too nicely with
> recuring directories that are used by multiple packages.

Wow that looks cumbersome....  If you do all this, why not just put in some 
energy into the dist_conf/debian and just have the everything native for 
debian.

> I ran across a problem, where some files remained behind in the /kolab
> system, there was also a problem where some files were apparently
> installed by two different rpm packages (Debian doesn't allow that), so
> I filtered duplicates out of /kolab to prevent later problems.
>
> for directory in `ls -1 /data/kolab-pkg`; do
>      for file in `cd /data/kolab-pkg/$directory ; find`; do
>          cd /
>          rm -f $file;
>      done
> done
>
> Agter that, I combine a *lot* of the packages, for example, I combine
> the contents of all the perl-* directories to form one perl directory
> that will be packaged, and all the horde- and PEAR- packages were
> combined for a horde package too.
>
> I then ended up with the following packages:
>
> 2.2K  impi-kolab-server_2.1-rc1_i386.deb
> 442K  kolab-amavisd_2.1-rc1_i386.deb
> 5.9M  kolab-apache_2.1_rc-1_i386.deb
>   12M  kolab-clamav_2.1_rc-1_i386.deb
>   53M  kolab-core_2.1-rc1_i386.deb
>   36M  kolab-cyrus-imapd_2.1-rc1_i386.deb
> 117K  kolabd_2.1-rc1_i386.deb
>   23M  kolab-horde_2.1-rc1_i386.deb
> 5.9M  kolab-openldap_2.1-rc1_i386.deb
>   21M  kolab-perl_2.1-rc1_i386.deb
> 8.4M  kolab-php_2.1-rc1_i386.deb
>   32M  kolab-postfix_2.1-rc1_i386.deb
> 876K  kolab-proftpd_2.1-rc1_i386.deb
>   51K  kolab-resource-handlers_2.1-rc1_i386.deb
> 2.2M  kolab-sasl_2.1-rc1_i386.deb
> 692K  kolab-spamassassin_2.1-rc1_i386.deb
> 204K  kolab-webadmin_2.1-rc1_i386.deb

Hmm, this does not look like the right approach to obtain native packages...  
I can imagine that debian has already a amavisd, cyrus-imap, perl, you name 
it already.  Or am I mistaken.

> impi-kolab server is just a meta-package that contains the other
> packages as dependencies, which includes the rc script, and some
> postinst foo that creates the users and sets up the host system. BTW, I
> had to made some changes to the rc script to be LSB compliant:
>
> 1. I had to add the following section:
>
> ### BEGIN INIT INFO
> # Provides:          kolab
> # Required-Start:    $syslog
> # Required-Stop:     $syslog
> # Should-Start:      $local_fs
> # Should-Stop:       $local_fs
> # Default-Start:     2 3 4 5
> # Default-Stop:      0 1 6
> # Short-Description: Kolab groupware environment
> # Description:       Kolab groupware environment,
> #                    customised for Impi Linux.
> ### END INIT INFO
>
> 2. LSB requires you to have a restart and a force-reload option as well,
> so I added:
>
>    restart ) exec /kolab/etc/rc all stop && /etc/rc all start ;;
>    force-reload ) exec /kolab/etc/rc all stop && /etc/rc all start ;;
>
> Not sure if there's a better way do to #2, suggestions are welcome, it
> would be nice to get the LSB compliance in upstream Kolab, although it's
> understandable that LSB isn't that important when your system is meant
> to run on just about every Unix system that is currently supported :) 

I don't agree what state above.  It is very important for the kolab versions 
that run natively on suse and gentoo.  As such there is a script in kolab 
cvs, that that care for this;
you could have used the kolabsrv.in script, that is part of kolab cvs.  Find 
it here:
http://kolab.org/cgi-bin/viewcvs-kolab.cgi/server/kolabd/kolabd/dist_conf/kolabsrv.in?rev=1.7&content-type=text/vnd.viewcvs-markup
It prepared to be shared among distributions, so change what is needed to get 
it working on Debian.  Others will profit from your changes as well.

> >> We don't really want Kolab in /kolab since it's not FHS'sy[6] place to
> >> put it, and upstream would never approve of it either.
> >
> > I think that this is a minor issue, as far as I remember FHS was not made
> > for such situations having another system layer in there. A standard
> > followed too strictly become a problem itself as well. :)
> > You can place Kolab Server with OpenPKG anywhere, just use a symlink
> > from /kolab to it.
>
> Yes, I moved everything to /usr/lib/kolab, and the postinst script for
> impi-kolab-server simply creates the /kolab symlink, which means that
> the package doesn't have to copy a single file into /. Lintian and Linda
> still points out that a lot of the files in /usr/lib/kolab doesn't
> belong there, if we're really going to get pedantic over FHS compliance,
> we'll have to split the files up and create symlinks, as done with the
> Firefox packages.

See above, try to the dist_conf/debian:
http://kolab.org/cgi-bin/viewcvs-kolab.cgi/server/kolabd/kolabd/dist_conf/debian?rev=1.8&content-type=text/vnd.viewcvs-markup
Have it updated to the latest and greates kolab version and you are done with 
it.

-- 
Richard Bos
Without a home the journey is endless




More information about the devel mailing list