Suse-packages
From Kolab wiki
kolab packages to suse packages howto
This is just a note, of an investigation whether the kolab openpkg packages are present in or can be mapped to suse.
Target distribution is: suse-9.2.
Start with aliasing kolab's rpm command:
alias kpm="/kolab/bin/openpkg rpm"
The kolab openpkg distribution consist in total of 76 packages.
kolab specific packages:
kpm -qa --qf "%{NAME}\n" | grep kolab
This results in:
perl-kolab kolabd kolab-resource-handlers kolab-webadmin
Packages patch by the kolab project:
kpm -qa | grep _kolab$
This results (Januari 2005) in:
postfix-2.1.5-2.2.0_kolab imapd-2.2.8-2.2.1_kolab apache-1.3.31-2.2.3_kolab
It would be nice to know what has been changed to these packages...
In case of imapd, some perl modules have been added, check with:
kpm -ql imapd | grep perl | sed s,/kolab/lib/perl/vendor_perl/5.8.5/i686-linux/,,
This results in:
Cyrus/IMAP.pm Cyrus/IMAP/Admin.pm Cyrus/IMAP/IMSP.pm Cyrus/IMAP/Shell.pm Cyrus/SIEVE/managesieve.pm auto/Cyrus/IMAP/IMAP.bs auto/Cyrus/IMAP/IMAP.so auto/Cyrus/SIEVE/managesieve/managesieve.bs auto/Cyrus/SIEVE/managesieve/managesieve.so
It actually seems that these files are delivered by suse rpm: perl-Cyrus-IMAP, as can be seen at: [perl-Cyrus-IMAP listing].
Some packages can be skipped from the list as one knows that those are needed to build the openpkg environment only, or are the packages provided by the kolab project.
kpm -qa --qf "%{NAME}\n" | grep -E "openpkg|gpg-pubkey|kolab" | sort
The result is 8 packages:
gpg-pubkey kolab-resource-handlers kolab-webadmin kolabd openpkg openpkg-tools perl-kolab perl-openpkg
This means that 69 packages must be matched into suse ones... (There are actually some packages involved in setting up the openpkg environment and building the kolab packages. This is explained in the [binary rpms installation howto ].
Some packages have the same name on kolab and suse, so that is easy. You can e.g. create a file that lists all the rpms by name, version and release, with rpm -qp --qf "%{NAME},%{VERSION},%{RELEASE}". The kolab packages can than be matched with the information in the file that has been created.
The following packages (39 in total) matches the kolab packages:
autoconf automake binutils bison bzip2 clamav db diffutils expat file flex gcc gdbm gettext gmp grep gzip imap libxml libxslt lzo m4 make mm ncurses openssl patch pcre perl perl-ldap postfix procmail readline sed sharutils spamassassin texinfo vim zlib
Most of these packages seem to have the right version. There are 2 packages that have noticable differences:
kolab suse --------------------------- pcre 5.0 4.5 perl-ldap 0.32 0.29
To obtain the kolab openldap version use: kpm -qi openldap.
The packages that could not be easily mapped are listed below. In some cases, kolab files are being provided by suse using -devel- packages. These packages are not made part of the list.
apache -> apache2
libxml -> libxml2
php -> php4 and php4-pear
sasl -> cyrus-sasl, cyrus-sasl-crammd5, cyrus-sasl-digestmd5,
cyrus-sasl-plain, cyrus-sasl-saslauth
proftpd -> vsftpd (not fully true, it's like the ftp functionality is
provided by vsftpd)
openldap -> openldap2-client and openldap2
libiconv -> glibc
getopt -> util-linux
dron -> is a dropin replacement for 'cron'
amavisd -> amavisd-new-2.1.2-5, suse misses addon pkg amavislogsumm
imapd -> cyrus-imapd
Packages not provided by suse:
php-smarty
fsl -> is a dropin replacement for syslog (fsl is required by
procmail openldap sasl postfix imapd spamassassin,
according kpm -q --whatrequires fsh)
dbtool -> notneeded by any package (according to kpm -q --whatrequires
dbtool)
pth -> needed by openldap (according rpm -q --whatrequires pth)
The rest of the kolab packages are (18) perl packages, delivering
a total of more than 3000 files. As openpkg perl packages have a
lot of perl modules combined and suse keeps the perl modules seperated
it is quite hard to map the packages....
In this case the following trick can be used to get an idea of the perl modules used by the kolab project....
for PKG in $(kpm -qa --qf "%{NAME}\n" | grep kolab); do
for FILE in $(kpm -ql $PKG) do
file $FILE
done
done | grep -i perl | grep -v directory | cut -d: -f1
This gives the following result:
/kolab/lib/perl/vendor_perl/5.8.5/Kolab.pm /kolab/lib/perl/vendor_perl/5.8.5/Kolab/Conf.pm /kolab/lib/perl/vendor_perl/5.8.5/Kolab/Cyrus.pm /kolab/lib/perl/vendor_perl/5.8.5/Kolab/DirServ.pm /kolab/lib/perl/vendor_perl/5.8.5/Kolab/LDAP.pm /kolab/lib/perl/vendor_perl/5.8.5/Kolab/LDAP/Backend.pm /kolab/lib/perl/vendor_perl/5.8.5/Kolab/LDAP/Backend/ad.pm /kolab/lib/perl/vendor_perl/5.8.5/Kolab/LDAP/Backend/dirservd.pm /kolab/lib/perl/vendor_perl/5.8.5/Kolab/LDAP/Backend/slurpd.pm /kolab/lib/perl/vendor_perl/5.8.5/Kolab/Mailer.pm /kolab/lib/perl/vendor_perl/5.8.5/Kolab/Util.pm /kolab/bin/kolabpasswd /kolab/etc/kolab/kolab /kolab/etc/kolab/kolab_bootstrap /kolab/etc/kolab/kolab_smtpdpolicy /kolab/etc/kolab/kolabquotawarn /kolab/sbin/kolabconf /kolab/sbin/kolabd /kolab/var/kolab/php/pear/docs/SOAP/example/tcp_daemon.pl /kolab/var/kolab/www/fbview/turba/scripts/ldap/addou.pl
The result above is stored in a file called 'kolab-perl-files'.
One more step to go to determine the perl modules used by kolab....
grep ^use $(cat kolab-perl-files) | cut -d: -f2- | sed -e 's,^use ,,' -e 's, .*,,' -e 's,;,,' -e 's,::,/,g' | sort -u
With the following output:
Convert/ASN1 Cyrus/IMAP/Admin Data/Dumper DB_File Fcntl File/Copy File/Temp Getopt/Std IO/File IO/Select IO/Socket/INET Kolab Kolab/Conf Kolab/Cyrus Kolab/DirServ Kolab/LDAP Kolab/LDAP/Backend Kolab/Mailer Kolab/Util Mail/IMAPClient Mail/Message MIME/Body MIME/Entity MIME/Parser Net/hostent Net/LDAP Net/LDAP/ASN Net/LDAP/Constant Net/LDAP/Control Net/LDAP/Entry Net/LDAP/LDIF Net/LDAPS Net/Netmask POSIX SOAP/Transport/TCP Socket Sys/Hostname Sys/Syslog Term/ReadKey Time/Local Time/localtime UNIVERSAL URI warnings
Most of the perl modules listed above can be mapped to suse packages. One way to do the mapping is to create a file that lists the relation between the all perl packages, delivered by the distribution, and the files provided by those packages. Just grep in the package versus file - file for the perl modules that are listing above. For suse this results in the following packages:
perl perl-Convert-ASN1 perl-ldap perl-ldap-ssl perl-MIME-tools perl-Net-Netmask perl-SOAP-Lite perl-TermReadKey perl-URI (most likely)
Let's assume that their versions are okay...
Two modules could not be mapped, those are: Mail/IMAPClient and Mail/Message, Those are to be included in the distribution.
Conclusion
It seems that most of the required packages by the kolab project are availabe on suse. The missing ones are: php-smarty and perl modules Mail/IMAPClient and Mail/Message.
The two perl modules are available now for SuSE 9.2 and SuSE 9.1 . I hope they will work fine :)
The impact of the packages fsl and pth should be investigated (do they influence other packages during compilation, are fsl and pth needed by kolab or is openldap as compiled by suse good enough (PS: pth seems to be removed in kolab2-rc2. fsl can simply be removed if you want the normal syslog based logging as provided by SUSE).
Are the changes made to postfix, imapd, amavisd and apache applied upstream? More information about this on the Kolab-major-app-patches wiki page. There are [some patched applications] available for suse.
What is impact that kolab uses apache and proftp and suse respectively apache2 and vsftpd?
dbtool provides tools to maintain the OpenLDAP BDB-backend (sleepycat bdb) one might need need i.e. db_recover, which IIRC is in the package dbtool.
Should the packages perl-ldap and pcre be updated in suse, or are the suse versions good enough?
