# temporary fix %define _requires_exceptions perl(Crypt::SmbHash) %define _provides_exceptions perl(Crypt::SmbHash) Name: kolab-server Summary: Kolab Groupware Server License: GPL Version: 1.0 Release: 0.68mdk Group: System/Servers URL: http://kroupware.org # SVN repository is here: # https://svn2.revolutionlinux.com/kolab/ Source0: kolab-%{version}.tar.bz2 Source1: mkntpwd.tar.bz2 Patch0: kolab-1.0-slapd.conf.template.diff.bz2 PreReq: apache2 PreReq: cyrus-imapd PreReq: cyrus-imapd-utils PreReq: cyrus-sasl PreReq: openldap-servers PreReq: postfix PreReq: proftpd PreReq: rpm-helper Requires: apache2-mod_dav Requires: apache2-mod_ldap Requires: apache2-mod_php Requires: apache2-mod_ssl Requires: openldap-clients Requires: perl-Convert-ASN1 Requires: perl-Cyrus Requires: perl-Net-Netmask Requires: perl-Term-ReadKey Requires: perl-ldap Requires: php-ini Requires: php-ldap Requires: php-xml %define libsasl %mklibname sasl 2 Requires: %{libsasl}-plug-plain # For net getlocalsid Requires: samba-common # For smbclient Requires: samba-client BuildRoot: %{_tmppath}/%{name}-%{version}-root %description Kolab is the KDE Groupware Server that provides full groupware features to either KDE Kolab clients or Microsoft Outlook[tm] clients running on Windows[tm] using the Toltec Connector http://www.toltec.co.za. It can also use Aethera, from TheKompany.com, a multi-platform client that works on Windows, Linux and Mac OS X. In addition it is a robust and flexible general imap mail server with LDAP addressbook and nice web gui for administration. This version of Kolab has been re-written to also be able to support PAM and Samba users, making it an integrated Windows NT replacement solution. %prep %setup -q -n kolab -a1 %patch0 -p0 # strip away annoying ^M find . -type f|xargs file|grep 'CRLF'|cut -d: -f1|xargs perl -p -i -e 's/\r//' find . -type f|xargs file|grep 'text'|cut -d: -f1|xargs perl -p -i -e 's/\r//' %build pushd mkntpwd %make CFLAGS="%{optflags}" popd %install rm -rf %{buildroot} install -d %{buildroot}%{_sysconfdir}/kolab install -d %{buildroot}%{_initrddir} install -d %{buildroot}%{_sbindir} install -d %{buildroot}%{_var}/spool/kolab install -d %{buildroot}%{_var}/www/html/kolab/freebusy install -d %{buildroot}%{_var}/www/html/kolab/locks install -m0755 kolab-server %{buildroot}%{_initrddir} install -m0644 *.template %{buildroot}%{_sysconfdir}/kolab/ install -m0755 kolab %{buildroot}%{_sbindir} install -m0644 kolab.conf %{buildroot}%{_sysconfdir}/kolab/ install -m0644 *.schema %{buildroot}%{_sysconfdir}/kolab/ install -m0755 kolab_bootstrap %{buildroot}%{_sbindir} install -m0755 kolab_bootstrap.real %{buildroot}%{_sbindir} install -m0755 workaround.sh %{buildroot}%{_sysconfdir}/kolab/ install -m0755 kolab-fixperms.sh %{buildroot}%{_sysconfdir}/kolab/ install -m0755 incrementuid.pl %{buildroot}%{_sysconfdir}/kolab/ install -m0755 samba-sync %{buildroot}%{_sysconfdir}/kolab/ install -m0755 incrementuid.pl %{buildroot}%{_sysconfdir}/kolab/ install -m0755 incrementuid.pl %{buildroot}%{_sysconfdir}/kolab/ cp -a smbldap-tools %{buildroot}%{_sysconfdir}/kolab/ cp -a smb-fake.conf %{buildroot}%{_sysconfdir}/kolab/ cp -a deletescripts %{buildroot}%{_sysconfdir}/kolab/ cp -r admin/ %{buildroot}%{_var}/www/html/kolab/ # gets overwritten later install -m0755 kolab_sslcert.sh %{buildroot}%{_sysconfdir}/kolab/ cat << EOF > README This is the first draft of the kolab-server. The web interface should work, namely adding/removing/modifying users, and the LDAP authentication should work with Apache, PHP and cyrus-imap. There's still some work to do, specially testing postfix and proftpd. To test it, do the following: 1) /usr/sbin/kolab_bootstrap -b (note the manager password) 2) service kolab-server start 3) point your browser to https://localhost/kolab/admin and login as user "manager", with the password chosen in step 1. 4) create/modify/delete users 5) close all your browser windows, then return back to the web administration site, but log in as a regular user you just created, to test the forwarding and vacation functions, changing password, etc. 6) point your mail client smtp and imap servers to localhost, and try to send yourself some mail, and read it. To test the calendaring functions, you'll need the kroupware client, or Microsoft Outlook with the Binary connector (proprietary). EOF # temporary fix find %{buildroot} -type f | xargs perl -pi -e "s|mkntpwd|kolab-mkntpwd|g" install -m0755 mkntpwd/mkntpwd %{buildroot}%{_sbindir}/kolab-mkntpwd %post %{_sysconfdir}/kolab/kolab-fixperms.sh %_post_service kolab-server echo "For a fresh installation please initialize Kolab and run '%{_sbindir}/kolab_bootstrap -b'." echo "If you upgraded from a previous version simply refresh Kolab and run '%{_sbindir}/kolab -o -v'." echo "In every case execute 'service kolab-server restart'" %preun %_preun_service kolab-server %clean rm -rf %{buildroot} %files %defattr(-,root,root) %doc README todo %attr(0755,root,root) %{_initrddir}/kolab-server %dir %config %{_sysconfdir}/kolab %config(noreplace) %{_sysconfdir}/kolab/*.template %config(noreplace) %{_sysconfdir}/kolab/*.schema %config(noreplace) %{_sysconfdir}/kolab/*.conf %config(noreplace) %{_sysconfdir}/kolab/deletescripts/kolab.conf.dist %attr(0755,root,root) %{_sysconfdir}/kolab/kolab-fixperms.sh %attr(0755,root,root) %{_sysconfdir}/kolab/samba-sync %attr(0755,root,root) %{_sysconfdir}/kolab/deletescripts/scrapldap %attr(0755,root,root) %{_sysconfdir}/kolab/deletescripts/restore %attr(0755,root,root) %{_sysconfdir}/kolab/deletescripts/scrapallmailboxes %attr(0755,root,root) %{_sysconfdir}/kolab/workaround.sh %attr(0755,root,root) %{_sysconfdir}/kolab/incrementuid.pl %attr(0755,root,root) %{_sysconfdir}/kolab/kolab_sslcert.sh %attr(0755,root,root) %{_sbindir}/* %dir %{_var}/www/html/kolab %{_var}/www/html/kolab/* %dir %{_var}/spool/kolab %attr(-,apache,apache) %{_var}/www/html/kolab/admin/lam/sess %{_sysconfdir}/kolab/smbldap-tools %changelog * Thu Feb 24 2005 Oden Eriksson <oeriksson@mandrakesoft.com> 1.0-0.68mdk - strip away annoying ^M - don't require the external smbldap-tools package, use another temporary fix. - added P0 (buchan) - misc rpmlint fixes * Wed Feb 23 2005 Oden Eriksson <oeriksson@mandrakesoft.com> 1.0-0.67mdk - require smbldap-tools as it provides mkntpwd and samba don't * Tue Feb 22 2005 Oden Eriksson <oeriksson@mandrakesoft.com> 1.0-0.66mdk - filter out deps and reqs for perl(Crypt::SmbHash) as it collides with samba/perl-Crypt-SmbHash * Mon Jan 24 2005 Jean-Michel Dault <jmdault@mandrakesoft.com> 1.0-0.65mdk - add samba group mapping to group kolabusr - don't use smb.conf, but rather, write file to smb-kolab.conf in order not to overwrite the original config * Mon Jan 24 2005 Jean-Michel Dault <jmdault@mandrakesoft.com> 1.0-0.64mdk - generate smb.conf from template * Mon Jan 24 2005 Jean-Michel Dault <jmdault@mandrakesoft.com> 1.0-0.63mdk - Integrate IdealX scripts with Kolab * Tue Jan 18 2005 Jean-Michel Dault <jmdault@mandrakesoft.com> 1.0-0.62mdk - Handle groups: when you add a user, you can choose a posix group, and it will automatically add it to the group. Switch groups/remove also works. - Integrate LAM (LDAP Account Manager) into Kolab. Use the same layout, the same configuration as Kolab. * Tue Jan 4 2005 Jean-Michel Dault <jmdault@mandrakesoft.com> 1.0-0.61mdk - Add config for amavisd-new in kolab. If /var/lib/amavis/amavisd.pid, we add the right lines in main.cf * Wed Oct 27 2004 Jean-Michel Dault <jmdault@mandrakesoft.com> 1.0-0.60mdk - add givenName in user/create_user.php - add more indexes in slapd.conf - add sizelimit -1 in slapd.conf - rearrange clam+spamassassin documentation * Wed Oct 27 2004 Jean-Michel Dault <jmdault@mandrakesoft.com> 1.0-0.59mdk - add altnamespace in imapd.conf - deal with aliases without domain part - list all email addresses in postfix/virtual so we can have a catch-all address for a domain - change check_relay_domains for reject_unauth_destination in main.cf - add myorigin=$mydomain so we don't redirect to an external smtp the non-qualified e-mail addresses (ie: root) * Thu Oct 21 2004 Jean-Michel Dault <jmdault@mandrakesoft.com> 1.0-0.58mdk - deal with either dc=host,dc=domain,dc=name or dc=domain=dc=name - deal with samba_sid in kolab_bootstrap - deletescripts fixes * Thu Oct 21 2004 Jean-Michel Dault <jmdault@mandrakesoft.com> 1.0-0.57mdk - put deletescripts in /etc/kolab * Thu Oct 21 2004 Jean-Michel Dault <jmdault@mandrakesoft.com> 1.0-0.56mdk - requires openldap-clients * Mon Oct 4 2004 Jean-Michel Dault <jmdault@mandrakesoft.com> 1.0-0.55mdk - Fix Samba SID * Fri Sep 24 2004 Jean-Michel Dault <jmdault@mandrakesoft.com> 1.0-0.54mdk - Fix certificate usage - Fix kolab.conf * Thu Sep 23 2004 Jean-Michel Dault <jmdault@mandrakesoft.com> 1.0-0.53mdk - Add more stuff for PDC support - Fix Quota for new kolab schema - Add /freebusy alias in Apache - Remove smtpd_sasl_path, this was broken!!! - Fix convert from LAM, stripslashes sambaHomePath - Require samba-client (smbclient) and samba-common (net getlocalsid) * Mon Aug 23 2004 Jean-Michel Dault <jmdault@mandrakesoft.com> 1.0-0.52mdk - Modify slapd.conf and mod_ssl.conf *after* certificate generation - Require samba-server (for mkntpwd) - Fix lastname required message - Do not die if we can't create a mailbox, because it always fail if we add an inter-domain trust account that contains a dollar sign. - Integrate P0 * Sat Aug 21 2004 Thierry Vignaud <tvignaud@mandrakesoft.com> 1.0-0.51mdk - patch 0: typo fix in init script * Wed Aug 18 2004 Jean-Michel Dault <jmdault@mandrakesoft.com> 1.0-0.50mdk - major rewrite: - use the new schema from Kolab 2.0 - fix a huge number of bugs - don't mess with existing LDAP config, create a new DB - integrate with Samba and pam_ldap - when re-running kolab_boostrap, only modify the entries that should be changed - ask for password every time kolab_boostrap runs - do not use cn=first last as the main key for users, but use uid and ou. - Create ou=Groups, ou=People, ou=Hosts - uidNumber auto-increment - use LDAP V3 - new checkbox that toggles between kolab user and kolab+pam+samba user - synchronize passwords between Kolab, pam_ldap and samba - don't lose the extra LDAP attributes and objectClasses of a user! - users can be converted from phpLDAPadmin or other LDAP front-end, as long as they have inetOrgPerson - use ssha passwords instead of plaintext - don't regenerate certificate if hostname didn't change - use kolab ssl certificate for apache as well (required for easy import of ssl certificate in Outlook) - warn that administrators and maintainers are role accounts that should not be used for e-mail. - administrator can forbid users to modify their phone/address/etc, this is good when using these fields for billing, or in schools, where you don't want that information public. - better e-mail validation - permit users to change their own e-mails - administators can create unlimited e-mail aliases - if mail is user or user@domain, don't add it to the aliases file - unlimited virtual e-mails (define in admin/include/virtual.php) * Tue May 25 2004 Jean-Michel Dault <jmdault@mandrakesoft.com> 1.0-0.23mdk - Security release, don't use quotes around mode 640 in perl chown command. * Tue May 25 2004 Jean-Michel Dault <jmdault@mandrakesoft.com> 1.0-0.22mdk - Security release, fix permissions in kolab_boostrap.real instead of kolab_bootstrap * Tue May 25 2004 Jean-Michel Dault <jmdault@mandrakesoft.com> 1.0-0.21mdk - Fix permissions in kolab_bootstrap as well * Tue May 25 2004 Jean-Michel Dault <jmdault@mandrakesoft.com> 1.0-0.20mdk - Security release, fix /etc/kolab/kolab.conf as 640 root.root * Fri May 14 2004 Jean-Michel Dault <jmdault@mandrakesoft.com> 1.0-0.19mdk - Security release, fix file permissions and ownership [Patch 3] * Wed Apr 28 2004 Laurent MONTEL <lmontel@mandrakesoft.com> 1.0-0.18mdk - Fix used under AMD64 * Fri Apr 16 2004 Gwenole Beauchesne <gbeauchesne@mandrakesoft.com> 1.0-0.17mdk - fix deps * Thu Mar 25 2004 Jean-Michel Dault <jmdault@mandrakesoft.com> 1.0-0.16mdk - revert to original, ugly, incompatible kolab schema - include a tar.bz2 of tentative schemas so other people can hack them. * Thu Mar 25 2004 Jean-Michel Dault <jmdault@mandrakesoft.com> 1.0-0.15mdk - really fix schema =( * Thu Mar 25 2004 Jean-Michel Dault <jmdault@mandrakesoft.com> 1.0-0.14mdk - kolab needs a slightly modified version of core.schema, etc. Put those modified schemas in /etc/kolab so people can still use their LDAP server for other things while satifsying kolab at the same time * Thu Mar 25 2004 Jean-Michel Dault <jmdault@mandrakesoft.com> 1.0-0.13mdk - change /var/run/openldap-slurp for /var/lib/ldap - get rid of TLS_CACERT in /etc/openldap/ldap.conf - use schemas from openldap - wrap apache directives in <Ifmodule> directives so we don't break httpd2 -t * Wed Mar 23 2004 Jean-Michel Dault <jmdault@mandrakesoft.com> 1.0-0.12mdk - fix user manager ACL so we can use phpLDAPAdmin, LDIF import, or other user import tools. * Sun Mar 21 2004 Jean-Michel dault <jmdault@mandrakesoft.com> 1.0-0.11mdk - fix vacation (was crashing php when no @domain part in email) - remove german message and shorten the english one to a generic two-line message. - fix bug 8988 (error in readme) and 8989 (chgrp kolab) * Fri Feb 13 2004 Jean-Michel Dault <jmdault@mandrakesoft.com> 1.0-0.10mdk - fixes for new Postfix - change "Primary Email Address" for "UserName" in php frontend since we don't use the "@domain" part in the ldap database, and it can confuse people. * Thu Jan 29 2004 Jean-Michel Dault <jmdault@mandrakesoft.com> 1.0-0.9mdk - replace /etc/kolab/kolab by /usr/sbin/kolab * Thu Jan 29 2004 Jean-Michel Dault <jmdault@mandrakesoft.com> 1.0-0.8mdk - apache needs a restart, not a reload * Thu Jan 29 2004 Jean-Michel Dault <jmdault@mandrakesoft.com> 1.0-0.7mdk - reload apache correctly * Thu Jan 29 2004 Jean-Michel Dault <jmdault@mandrakesoft.com> 1.0-0.6mdk - fix lmtpd socket permissions * Thu Jan 29 2004 Jean-Michel Dault <jmdault@mandrakesoft.com> 1.0-0.5mdk - source /etc/init.d/functions and replace echo by gprintf - misc fixes to kolab_backup and rc.kolab * Thu Jan 29 2004 Jean-Michel Dault <jmdault@mandrakesoft.com> 1.0-0.4mdk - really use initscripts - check config at most actions instead of just start. However, don't do it for stop, since it's used to make sure all services are stopped, before bootstrap. - create a script to backup the existing config before bootstrap - fix ldap to start as user ldap, not user root - modify templates for postfix and cyrus according to Luca Berra's suggestions. * Wed Jan 14 2004 Jean-Michel Dault <jmdault@mandrakesoft.com> 1.0-0.3mdk - The lmtp in /var/spool/kolab is a socket, not a directory! - fix rc script to use /etc/init.d scripts and not reinvent the wheel in most cases (still sasl and proftpd to fix) * Tue Jan 06 2004 Jean-Michel Dault <jmdault@mandrakesoft.com> 1.0-0.2mdk - fix requires (thanks Camille!) - fix post_service and preun_service - update README * Mon Dec 22 2003 Jean-Michel Dault <jmdault@mandrakesoft.com> 1.0-0.1mdk - initial Mandrake release, most of the work taken from Buchan Milne's spec file. - Major testing and debugging went into this release, specially on the web administration part, but there's still a lot of work to do to make all the server components work well together. - Read the README file in the documentation for more info.