rpms/zarafa/EL-5 zarafa-6.40.0-clucene.patch, NONE, 1.1 zarafa-6.40.0-krb5.patch, NONE, 1.1 zarafa-6.40.0-openssl.patch, NONE, 1.1 zarafa-6.40.0-package.patch, NONE, 1.1 zarafa-6.40.0-undefined-symbol.patch, NONE, 1.1 zarafa-webaccess.conf, NONE, 1.1 zarafa.logrotate, NONE, 1.1 .cvsignore, 1.6, 1.7 sources, 1.6, 1.7 zarafa.spec, 1.6, 1.7 zarafa-6.30.10-chmod.patch, 1.1, NONE zarafa-6.30.10-undefined-symbol.patch, 1.1, NONE zarafa-6.30.4-brodowski.patch, 1.1, NONE zarafa-6.30.4-package.patch, 1.1, NONE zarafa-6.30.4-perl.patch, 1.1, NONE

Robert Scheck robert at fedoraproject.org
Thu Jun 10 19:50:35 UTC 2010


Author: robert

Update of /cvs/pkgs/rpms/zarafa/EL-5
In directory cvs01.phx2.fedoraproject.org:/tmp/cvs-serv16689/EL-5

Modified Files:
	.cvsignore sources zarafa.spec 
Added Files:
	zarafa-6.40.0-clucene.patch zarafa-6.40.0-krb5.patch 
	zarafa-6.40.0-openssl.patch zarafa-6.40.0-package.patch 
	zarafa-6.40.0-undefined-symbol.patch zarafa-webaccess.conf 
	zarafa.logrotate 
Removed Files:
	zarafa-6.30.10-chmod.patch 
	zarafa-6.30.10-undefined-symbol.patch 
	zarafa-6.30.4-brodowski.patch zarafa-6.30.4-package.patch 
	zarafa-6.30.4-perl.patch 
Log Message:
Upgrade to 6.40.0 (#564135, #565252, #600993)


zarafa-6.40.0-clucene.patch:
 configure.ac |   16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

--- NEW FILE zarafa-6.40.0-clucene.patch ---
Patch by Robert Scheck <robert at fedoraproject.org> for zarafa >= 6.40.0, which adds
some more flexibility to detect CLucene headers and libraries. Right now, Zarafa is
linking static to CLucene, which is a no-go at Fedora. That means CLucene on Fedora
doesn't provide static library files at all. To keep Zarafa's behaviour for their
own builds, the patch looks for "libclucene.a" and links static; otherwise (Fedora)
it links dynamically using -lclucene. More details about static linking and Fedora:
http://fedoraproject.org/wiki/Packaging:Guidelines#Packaging_Static_Libraries

Zarafa's internal CLucene build for Zarafa seems to violate upstream's decision, as
CLucene upstream decided with 0.9.20 release to put "CLucene/clucene-config.h" file
into /usr/lib{,64}/CLucene/clucene-config.h because of arch-specific values. Fedora
is shipping CLucene using upstream's decision, thus ./configure needs to handle the
include path with GCC CPP, too. To avoid CPP telling "rejected by the preprocessor"
as of the missing include path (/usr/include is standard, but /usr/lib{,64} isn't),
$CXXCPP needs to be temporarily extended to contain this special path as well.

--- zarafa-6.40.0/configure.ac			2010-06-06 14:47:37.000000000 +0200
+++ zarafa-6.40.0/configure.ac.clucene		2010-06-06 15:16:18.000000000 +0200
@@ -394,17 +394,26 @@
   [CLUCENE_INCLUDE_PREFIX=${withval}],[CLUCENE_INCLUDE_PREFIX=/usr/include])
 cflags_keep=$CFLAGS
 cxxflags_keep=$CXXFLAGS
+cxxcpp_keep=$CXXCPP
 if test "x$CLUCENE_LIB_PREFIX" != "x"; then
    CFLAGS="$CFLAGS -I$CLUCENE_LIB_PREFIX"
    CXXFLAGS="$CFLAGS -I$CLUCENE_LIB_PREFIX"
+   CXXCPP="$CXXCPP -I$CLUCENE_LIB_PREFIX"
 fi
 if test "x$CLUCENE_INCLUDE_PREFIX" != "x"; then
    CFLAGS="$CFLAGS -I$CLUCENE_INCLUDE_PREFIX"
    CXXFLAGS="$CFLAGS -I$CLUCENE_INCLUDE_PREFIX"
+   CXXCPP="$CXXCPP -I$CLUCENE_INCLUDE_PREFIX"
+fi
+if test -e "${CLUCENE_LIB_PREFIX}/libclucene.a"; then
+  AC_CHECK_LIB(clucene, [open],
+    [ CLUCENE_LIBS="${CLUCENE_LIB_PREFIX}/libclucene.a" ],
+    [ WITH_CLUCENE=no ])
+else
+  AC_CHECK_LIB(clucene, [open],
+    [ CLUCENE_LIBS="-lclucene" ],
+    [ WITH_CLUCENE=no ])
 fi
-AC_CHECK_LIB(clucene, [open],
-  [ CLUCENE_LIBS="${CLUCENE_LIB_PREFIX}/libclucene.a" ],
-  [ WITH_CLUCENE=no ])
 AC_CHECK_HEADERS([CLucene.h],
   [ CLUCENE_CFLAGS="-DLUCENE_DISABLE_MEMTRACKING" ],
   [ WITH_CLUCENE=no ])
@@ -419,6 +428,7 @@
 AC_SUBST(CLUCENE_LIBS)
 CFLAGS=$cflags_keep
 CXXFLAGS=$cxxflags_keep
+CXXCPP=$cxxcpp_keep
 AC_LANG_POP
 
 # Check for google perftools tcmalloc availability

zarafa-6.40.0-krb5.patch:
 ECKrbAuth.cpp |    1 -
 1 file changed, 1 deletion(-)

--- NEW FILE zarafa-6.40.0-krb5.patch ---
Patch by Robert Scheck <robert at fedoraproject.org> for zarafa >= 6.40.0, which removes a
wrong include causing a build failure on native Fedora 11 and/or later as well as on RHEL
4 and/or later. According to some Kerberos people, "com_err.h" is already included by the
"krb5.h" include and thus doesn't need to be included once more.

The build failure on RHEL/Fedora is caused due the non-existence of this include, on RHEL/
Fedora, only "<et/com_err.h>" would be available. If you really need the "com_err.h" for
some other Linux distributions (where I didn't find a real difference so far), you have to
conditionalize the include using preprocessor flags after detection in ./configure.

--- zarafa-6.40.0/provider/libserver/ECKrbAuth.cpp	2010-05-31 19:28:59.000000000 +0200
+++ zarafa-6.40.0/provider/libserver/ECKrbAuth.cpp.krb5	2010-06-05 21:48:51.000000000 +0200
@@ -58,7 +58,6 @@
 // error_message() is wrongly typed in c++ context
 extern "C" {
 #include <krb5.h>
-#include <com_err.h>
 }
 
 ECRESULT ECKrb5AuthenticateUser(const std::string &strUsername, const std::string &strPassword, std::string *lpstrError)

zarafa-6.40.0-openssl.patch:
 stdsoap2.cpp |    7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

--- NEW FILE zarafa-6.40.0-openssl.patch ---
Patch by Robert Scheck <robert at fedoraproject.org> for zarafa >= 6.40.0, which adds some
forward compatibility regarding OpenSSL 1.0.0. Without this patch, compiling while using
OpenSSL 1.0.0 will fail with "stdsoap2.cpp:4095: error: invalid conversion from 'const
X509V3_EXT_METHOD*' to 'X509V3_EXT_METHOD*'". Right now, Fedora 12 and/or later as well
as RHEL 6 and/or later are using OpenSSL 1.0.0 and thus depend on this patch. In order to
get OpenSSL 0.9.x and OpenSSL 1.0.0 working, the preprocessor condition is required.

--- zarafa-6.40.0/provider/soap/stdsoap2.cpp		2010-05-31 19:28:55.000000000 +0200
+++ zarafa-6.40.0/provider/soap/stdsoap2.cpp.openssl	2010-06-05 21:29:00.000000000 +0200
@@ -4092,7 +4092,12 @@
           { X509_EXTENSION *ext = X509_get_ext(peer, i);
             const char *ext_str = OBJ_nid2sn(OBJ_obj2nid(X509_EXTENSION_get_object(ext)));
             if (ext_str && !strcmp(ext_str, "subjectAltName"))
-            { X509V3_EXT_METHOD *meth = X509V3_EXT_get(ext);
+            {
+#if (OPENSSL_VERSION_NUMBER >= 0x10000000L)
+              const X509V3_EXT_METHOD *meth = X509V3_EXT_get(ext);
+#else 
+              X509V3_EXT_METHOD *meth = X509V3_EXT_get(ext);
+#endif
               void *ext_data;
 #if (OPENSSL_VERSION_NUMBER >= 0x0090800fL)
               const unsigned char *data;

zarafa-6.40.0-package.patch:
 ECtools/Makefile.am |    4 ----
 Makefile.am         |    8 --------
 configure.ac        |   13 -------------
 3 files changed, 25 deletions(-)

--- NEW FILE zarafa-6.40.0-package.patch ---
Patch by Robert Scheck <robert at fedoraproject.org> for zarafa >= 6.40.0, which only
removes the paths from autoconf/automake related files, that don't exist in the OSS
version of Zarafa. Having these paths not removed causes autoreconf to fail, but a
re-run of autoreconf is needed in order to get the rpaths completely out of all the
libraries and binaries built during the make process.

--- zarafa-6.40.0/configure.ac			2010-05-31 15:45:19.000000000 +0200
+++ zarafa-6.40.0/configure.ac.package		2010-06-06 02:48:22.000000000 +0200
@@ -772,19 +772,6 @@
 		version
 		specialbuild
 ])
-dnl non-oss files
-if test -d `dirname $0`/licensed; then
-AC_CONFIG_FILES([
-		liblicense/Makefile
-		licensed/Makefile
-		ECtools/zarafa-backup/Makefile
-		ECtools/zarafa-backup/helpers/Makefile
-		ECtools/zarafa-report/Makefile
-		ECtools/libarchiver/Makefile
-		ECtools/zarafa-archiver/Makefile
-		debian/zarafa.install
-])
-fi
 
 AC_OUTPUT
 
--- zarafa-6.40.0/Makefile.am			2010-05-31 15:45:19.000000000 +0200
+++ zarafa-6.40.0/Makefile.am.package		2010-06-06 02:51:29.000000000 +0200
@@ -1,9 +1,5 @@
 AUTOMAKE_OPTIONS = 1.9 foreign
 
-if ! OSS_ONLY
-PROSUBS = liblicense licensed
-endif
-
 SUBDIRS = common libfreebusy zarafa-libsync mapi4linux $(PROSUBS) provider libicalmapi inetmapi php-ext spooler gateway caldav ECtools installer po doc
 
 if WITH_PERL
@@ -17,10 +13,6 @@
 common/ecversion.h: versionheader.sh
 	sh ${top_srcdir}/versionheader.sh > common/ecversion.h
 
-if ! OSS_ONLY
-CLEANFILES=common/ecversion.h
-endif
-
 dist-hook:
 	find $(distdir) -type d -name .svn -exec rm -rf {} \; 2>/dev/null || true
 if OSS_ONLY
--- zarafa-6.40.0/ECtools/Makefile.am		2010-05-31 15:45:18.000000000 +0200
+++ zarafa-6.40.0/ECtools/Makefile.am.package	2010-06-06 02:48:37.000000000 +0200
@@ -1,7 +1,3 @@
-if ! OSS_ONLY
-PROSUBS = zarafa-backup zarafa-report libarchiver zarafa-archiver 
-endif
-
 if WITH_TESTTOOLS
 TESTSUBS = ECTestTools
 endif

zarafa-6.40.0-undefined-symbol.patch:
 Makefile.am  |    4 +++-
 m4lguids.cpp |   14 --------------
 2 files changed, 3 insertions(+), 15 deletions(-)

--- NEW FILE zarafa-6.40.0-undefined-symbol.patch ---
Re-merged patch by Robert Scheck <robert at fedoraproject.org> for zarafa >= 6.40.0, which corrects
the linking between the libraries. Without this patch, any PHP usage causes the PHP error message
"undefined symbol: _ZN10ECMemTable6CreateEP14_SPropTagArrayjPPS_". The second hunk is required to
avoid linking errors like "(.rodata+0x0): multiple definition of `IID_IUnknown'". This patch was
originally by Michel de Ron (Zarafa); http://forums.zarafa.com/viewtopic.php?f=1&t=2418&start=15
is providing some more details and information.

--- zarafa-6.40.0/mapi4linux/src/Makefile.am			2010-05-31 15:44:42.000000000 +0200
+++ zarafa-6.40.0/mapi4linux/src/Makefile.am.undefined-symbol	2010-06-08 22:32:12.000000000 +0200
@@ -3,7 +3,9 @@
 AM_CPPFLAGS = $(DEBUGFLAGS) -DLINUX -I$(top_srcdir)/mapi4linux/include -I$(top_srcdir)/provider/common -I${top_srcdir}/common -I${top_srcdir}/libfreebusy
 AM_LDFLAGS = $(DL_LIBS) -export-symbols ${top_srcdir}/mapi4linux/src/mapi-exports.sym
 
-libmapi_la_LIBADD = ${top_builddir}/common/libcommon_util.la
+libmapi_la_LIBADD = ${top_builddir}/common/libcommon_util.la \
+	${top_builddir}/common/libcommon_mapi.la \
+	$(PROG_LIBS)
 
 # required because we're exporting extern "C" functions and want to filter with 'export-symbols'
 CXXLD=--tag=none gcc
--- zarafa-6.40.0/mapi4linux/src/m4lguids.cpp			2010-05-31 19:28:56.000000000 +0200
+++ zarafa-6.40.0/mapi4linux/src/m4lguids.cpp.undefined-symbol	2010-06-08 22:47:30.000000000 +0200
@@ -48,19 +48,5 @@
  */
 
 #include "platform.h"
-#define USES_IID_IUnknown
-#define USES_IID_IStream
-#define USES_IID_ISequentialStream
-#define USES_IID_IProfAdmin
-#define USES_IID_IProviderAdmin
-#define USES_IID_IMAPIAdviseSink
-#define USES_IID_IMsgServiceAdmin
-#define USES_IID_IProfSect
-#define USES_IID_IMAPISession
-#define USES_IID_IMAPIProp
-#define USES_IID_IMAPIFolder
-#define USES_IID_IMAPITable
-#include <initguid.h>
-
 #include "mapiguid.h"
 #include "m4l.mapiutil.h"


--- NEW FILE zarafa-webaccess.conf ---
#
# Zarafa Webaccess featuring a 'Look & Feel' similar to Outlook
#

Alias /webaccess /usr/share/zarafa-webaccess/

# Following Apache and PHP settings need to be set to work correct
#
<Directory /usr/share/zarafa-webaccess/>
    # Some apache settings
    Options -Indexes +FollowSymLinks

    # Register globals must be off
    php_flag register_globals off

    # Magic quotes must be off
    php_flag magic_quotes_gpc off
    php_flag magic_quotes_runtime off

    # The maximum POST limit. To upload large files, this value must
    # be larger than upload_max_filesize.
    php_value post_max_size 31M
    php_value upload_max_filesize 30M

    # Short open tags must be on
    php_flag short_open_tag on

    # Uncomment for debugging purposes only. Make sure Apache/PHP can
    # write to this file or no errors will be logged!
#    php_flag log_errors on
#    php_value error_log /var/lib/zarafa-webaccess/error_log
</Directory>


--- NEW FILE zarafa.logrotate ---
/var/log/zarafa/SERVICE.log {
	weekly
	missingok
	rotate 52
	compress
	delaycompress
	notifempty
	postrotate
			killall -HUP zarafa-SERVICE 2> /dev/null || true
	endscript
	create 0644 zarafa zarafa
}



Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/zarafa/EL-5/.cvsignore,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -p -r1.6 -r1.7
--- .cvsignore	1 May 2010 12:14:13 -0000	1.6
+++ .cvsignore	10 Jun 2010 19:50:34 -0000	1.7
@@ -1 +1 @@
-zarafa-6.30.14.tar.gz
+zarafa-6.40.0.tar.gz


Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/zarafa/EL-5/sources,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -p -r1.6 -r1.7
--- sources	1 May 2010 12:14:13 -0000	1.6
+++ sources	10 Jun 2010 19:50:35 -0000	1.7
@@ -1 +1 @@
-fa3183f71027b8025373b05f27aaf742  zarafa-6.30.14.tar.gz
+389d195eb7659ccd05769208686e4b0d  zarafa-6.40.0.tar.gz


Index: zarafa.spec
===================================================================
RCS file: /cvs/pkgs/rpms/zarafa/EL-5/zarafa.spec,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -p -r1.6 -r1.7
--- zarafa.spec	1 May 2010 12:14:13 -0000	1.6
+++ zarafa.spec	10 Jun 2010 19:50:35 -0000	1.7
@@ -26,15 +26,15 @@
 # 5. Build locally
 # 6. Build in mock for;
 #    a) fedora-rawhide-x86_64,
-#    b) fedora-12-x86_64,
-#    c) fedora-11-x86_64,
-#    d) epel-5-x86_64,
-#    e) epel-4-x86_64
+#    b) fedora-13-x86_64,
+#    c) fedora-12-x86_64,
+#    d) epel-6-x86_64,
+#    e) epel-5-x86_64
 #
 #    or scratch build in koji;
 #
-#    for tag in dist-f13 dist-f12-updates-candidate dist-f11-updates-candidate \
-#               dist-5E-epel dist-4E-epel; do
+#    for tag in dist-f14 dist-f13-updates-candidate dist-f12-updates-candidate \
+#               dist-6E-epel dist-5E-epel; do
 #        echo "- $tag: `koji build --scratch --nowait $tag $srpm 2>&1 | grep \"Task info\" | awk '{print $3}'`"
 #    done
 #
@@ -43,19 +43,19 @@
 # = Final Release =
 #
 # NOTE: A final release of a version, or multiple final releases of the
-# same version, of Zarafa 6.30.10 requires one unique tarball, probably
-# named similar to zarafa-6.30.10.tar.gz.
+# same version, of Zarafa 6.40.0 requires one unique tarball, probably
+# named similar to zarafa-6.40.0.tar.gz.
 #
 # Once this tarball is used for an RPM package that is actually released,
 # the .tar.gz source should not change anymore. You may, though, include
-# patches for the 6.30.10 RPM package in this .spec and bumping the release
+# patches for the 6.40.0 RPM package in this .spec and bumping the release
 # number.
 #
 # When you do so, however, you will need to take into account upgrade paths
-# between distribution versions. E.g., when releasing 6.30.10-2 to F-11, you
-# would also need to release 6.30.10-2 to F-12.
+# between distribution versions. E.g., when releasing 6.40.0-2 to F-12, you
+# would also need to release 6.40.0-2 to F-13.
 #
-# An alternative is to release 6.30.10.1 with a zarafa-6.30.10.1.tar.gz (yet
+# An alternative is to release 6.40.1 with a zarafa-6.40.1.tar.gz (yet
 # again ensuring there is an upgrade path to later distribution versions)
 #
 # The point behind this has to do with reproducibility, though admittedly,
@@ -82,13 +82,13 @@
 #      again just for appearances sake, possibly preserving the important
 #      messages from each beta_or_rc type of changelog entries, e.g.:
 #
-#      * Some Time Your Name <your at email> - 6.30.10-0.1svn12345
+#      * Some Time Your Name <your at email> - 6.40.0-0.1svn12345
 #      - Improve packaging
 #
 #      might, in a final release, become:
 #
-#      * Some Time Zarafa Release Engineering <releng at zarafa.com> - 6.30.10-1
-#      - Release 6.30.10
+#      * Some Time Zarafa Release Engineering <releng at zarafa.com> - 6.40.0-1
+#      - Release 6.40.0
 #      - Improve packaging
 #
 #    - Possibly change only the release tag for the most recent changelog
@@ -100,15 +100,15 @@
 # 5. Build locally
 # 6. Build in mock for;
 #    a) fedora-rawhide-x86_64,
-#    b) fedora-12-x86_64,
-#    c) fedora-11-x86_64,
-#    d) epel-5-x86_64,
-#    e) epel-4-x86_64
+#    b) fedora-13-x86_64,
+#    c) fedora-12-x86_64,
+#    d) epel-6-x86_64,
+#    e) epel-5-x86_64
 #
 #    or scratch build in koji;
 #
-#    for tag in dist-f13 dist-f12-updates-candidate dist-f11-updates-candidate \
-#               dist-5E-epel dist-4E-epel; do
+#    for tag in dist-f14 dist-f13-updates-candidate dist-f12-updates-candidate \
+#               dist-6E-epel dist-5E-epel; do
 #        echo "- $tag: `koji build --scratch --nowait $tag $srpm 2>&1 | grep \"Task info\" | awk '{print $3}'`"
 #    done
 #
@@ -117,13 +117,15 @@
 
 %define beta_or_rc      0
 %define actual_release  1
-%define svnrevision     20002
+%define svnrevision     20653
+%define with_clucene    1
 %define with_ldap       1
 %define with_xmlto      1
+%define php_apiver      %((echo 0; php -i 2>/dev/null | sed -n 's/^PHP API => //p') | tail -1)
 
-Summary:            Zarafa Outlook Sharing and Open Source Collaboration
+Summary:            The Open Source Zarafa Collaboration Platform
 Name:               zarafa
-Version:            6.30.14
+Version:            6.40.0
 %if %{beta_or_rc}
 Release:            0.%{actual_release}.svn%{svnrevision}%{?dist}
 %else
@@ -140,14 +142,15 @@ URL:                http://www.zarafa.co
 # http://www.zarafa.com/download-community -> "Zarafa Source Package"
 Source0:            %{name}-%{version}.tar.gz
 Source1:            %{name}.ini
+Source2:            %{name}.logrotate
+Source3:            %{name}-webaccess.conf
 
-Patch0:             zarafa-6.30.4-package.patch
-# Patch 1, 2 and 3 were sent to upstream
-Patch1:             zarafa-6.30.4-perl.patch
-Patch2:             zarafa-6.30.10-undefined-symbol.patch
-Patch3:             zarafa-6.30.10-chmod.patch
-# http://www.brodowski.org/zarafa/php-mapi/6.30.10.18495/18495_patch.diff
-Patch10:            zarafa-6.30.4-brodowski.patch
+Patch0:             zarafa-6.40.0-package.patch
+# Patch 1, 2, 3 and 4 were sent to upstream
+Patch1:             zarafa-6.40.0-undefined-symbol.patch
+Patch2:             zarafa-6.40.0-openssl.patch
+Patch3:             zarafa-6.40.0-krb5.patch
+Patch4:             zarafa-6.40.0-clucene.patch
 
 BuildRequires:      bison
 BuildRequires:      gcc-c++
@@ -160,19 +163,14 @@ BuildRequires:      libxml2-devel
 BuildRequires:      mysql-devel >= 4.1
 BuildRequires:      ncurses-devel
 BuildRequires:      pam-devel
-BuildRequires:      php-devel
+BuildRequires:      php-devel >= 4.3
 BuildRequires:      libtool, automake, autoconf
+BuildRequires:      %{_includedir}/uuid/uuid.h
+BuildRequires:      %{_includedir}/curl/curl.h
+BuildRequires:      %{_bindir}/xsubpp
 
-%if 0%{?fedora} > 8
-BuildRequires:      libcurl-devel
-BuildRequires:      perl-devel
-%else
-BuildRequires:      curl-devel
-BuildRequires:      perl
-%endif
-
-%if 0%{?fedora} >= 12
-BuildRequires:      libuuid-devel
+%if %{with_clucene}
+BuildRequires:      clucene-core-devel >= 0.9.21b-1
 %endif
 
 %if %{with_ldap}
@@ -183,7 +181,7 @@ BuildRequires:      openldap-devel
 BuildRequires:      xmlto
 %endif
 
-# The normal zarafa package pulls in all of zarafa
+# The normal zarafa package pulls in all of zarafa except indexer
 Requires:           zarafa(ical) = %{version}-%{release}
 Requires:           zarafa(dagent) = %{version}-%{release}
 Requires:           zarafa(gateway) = %{version}-%{release}
@@ -196,49 +194,56 @@ Requires:           zarafa(config) = %{v
 BuildRoot:          %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
 %description
-Zarafa Outlook Sharing is a Microsoft Exchange replacement. The Open Source
-Collaboration provides an integration with your existing Linux mail server,
-native mobile phone support by ActiveSync compatibility and a webaccess with
-'Look & Feel' similar to Outlook using Ajax. Including an IMAP4 and a POP3
-gateway as well as an iCal/CalDAV gateway, Zarafa can combine the usability
-with the stability and flexibility of a Linux server.
+The Zarafa Collaboration Platform is a Microsoft Exchange replacement. The
+Open Source Collaboration provides an integration with your existing Linux
+mail server, native mobile phone support by ActiveSync compatibility and a
+webaccess with 'Look & Feel' similar to Outlook using Ajax. Including an
+IMAP and a POP3 gateway as well as an iCal/CalDAV gateway, the Zarafa Open
+Source Collaboration can combine the usability with the stability and the
+flexibility of a Linux server.
 
 The proven Zarafa groupware solution is using MAPI objects, provides a MAPI
 client library as well as programming interfaces for C++, PHP and Perl. The
 other Zarafa related packages need to be installed to gain all the features
-and benefits of Zarafa Outlook Sharing and Open Source Collaboration.
+and benefits of the Zarafa Collaboration Platform (ZCP).
 
 ##
-## Zarafa Client
+## Zarafa Client library
 ##
 %package client
-Summary:            Zarafa Client Library
+Summary:            The Zarafa Client library
 Group:              System Environment/Libraries
 Requires:           zarafa(common) = %{version}-%{release}
 Provides:           zarafa(client) = %{version}-%{release}
 
 %description client
-Zarafa client libraries for use with integrated MAPI clients.
+The zarafa-client package provides the Zarafa Client library, which gets
+used by the Open Source MAPI (Messaging Application Programming Interface)
+implementation of Zarafa as provider between MAPI and Zarafa.
 
 ##
-## Zarafa Common files
+## Common Zarafa files and directories
 ##
 %package common
-Summary:            Zarafa common files
-Group:              System Environment/Daemons
+Summary:            Common Zarafa files and directories
+Group:              Applications/Productivity
 Requires(pre):      shadow-utils
 Provides:           zarafa(common) = %{version}-%{release}
+%if 0%{?rhel}%{?fedora} > 5
+BuildArch:          noarch
+%endif
 
 %description common
-Common files and directories required by most Zarafa packages.
+The zarafa-common package provides the filesystem structure and includes
+common files required by most other Zarafa packages. It also provides the
+creation of the zarafa user for the different Zarafa services.
 
 ##
 ## Zarafa Delivery Agent
 ##
 %package dagent
-Summary:            Zarafa Delivery Agent
+Summary:            The Zarafa Delivery Agent
 Group:              System Environment/Daemons
-Requires:           zarafa(client) = %{version}-%{release}
 Requires:           zarafa(common) = %{version}-%{release}
 Requires(post):     /sbin/chkconfig
 Requires(preun):    /sbin/service
@@ -248,12 +253,13 @@ Provides:           zarafa(dagent) = %{v
 Provides:           zarafa(config::dagent) = %{version}-%{release}
 
 %description dagent
-The delivery agent delivers e-mails into the Zarafa server.
-It can be used to trigger the local mailer or act as the LMTP
+The zarafa-dagent package includes the Zarafa Delivery Agent to import
+e-mail messages from Internet Mail format to Zarafa. The Zarafa Delivery
+Agent can be used trigger the local mailer (MDA) or even act as the LMTP
 server.
 
 ##
-## Zarafa Development Headers
+## Zarafa development files
 ##
 %package devel
 Summary:            Development files for several Zarafa libraries
@@ -264,18 +270,16 @@ Provides:           %{name}-static = %{v
 
 %description devel
 The zarafa-devel package includes header files and libraries necessary for
-developing programs which use features from the Zarafa Outlook Sharing and
-Open Source Collaboration. The proven Zarafa groupware solution is using
-MAPI objects, provides a MAPI client library and programming interfaces for
-C++, PHP and Perl.
+developing own programs which use functions and interfaces from the Zarafa
+Collaboration Platform. The Zarafa Open Source Collaboration is using MAPI
+objects, provides a MAPI client library and a C++ programming interface.
 
 ##
-## Zarafa Gateway
+## Zarafa POP3/IMAP Gateway service
 ##
 %package gateway
-Summary:            Zarafa Gateway server (POP3/IMAP access)
+Summary:            The Zarafa POP3/IMAP Gateway service
 Group:              System Environment/Daemons
-Requires:           zarafa(client) = %{version}-%{release}
 Requires:           zarafa(common) = %{version}-%{release}
 Requires(post):     /sbin/chkconfig
 Requires(preun):    /sbin/service
@@ -285,19 +289,19 @@ Provides:           zarafa(gateway) = %{
 Provides:           zarafa(config::gateway) = %{version}-%{release}
 
 %description gateway
-The gateway enables other e-mail clients to connect through
-POP3 or IMAP to the Zarafa server to read their e-mail. With
-IMAP, it is also possible to view the contents of shared
-folders and subfolders. The gateway can be configured to
-listen for POP3, POP3S, IMAP and/or IMAPS.
+The zarafa-gateway package includes the Zarafa POP3/IMAP Gateway service
+to enable regular non-MAPI e-mail clients to connect through POP3 or IMAP
+to the Zarafa server to access their e-mails. Using IMAP, it is possible
+as well to view the contents of shared folders and subfolders. The Zarafa
+POP3/IMAP Gateway service can be configured to listen for POP3, POP3S,
+IMAP and/or IMAPS.
 
 ##
-## Zarafa iCal/CalDAV server
+## Zarafa iCal/CalDAV gateway
 ##
 %package ical
 Summary:            The Zarafa iCal/CalDAV gateway
 Group:              System Environment/Daemons
-Requires:           zarafa(client) = %{version}-%{release}
 Requires:           zarafa(common) = %{version}-%{release}
 Requires(post):     /sbin/chkconfig
 Requires(preun):    /sbin/service
@@ -309,13 +313,37 @@ Provides:           zarafa(config::ical)
 Provides:           zarafa(config::caldav) = %{version}-%{release}
 
 %description ical
-The iCal/CalDAV gateway enables users to retrieve their
-calendar using iCalendar compliant clients. The iCal/CalDAV
-gateway can be configured to listen for HTTP and HTTPS
-requests.
+The zarafa-ical package includes the Zarafa iCal/CalDAV gateway service
+to enable users to access their calendar using iCalendar (RFC 2445/5545)
+or CalDAV (RFC 4791) compliant clients. The iCal/CalDAV gateway service
+can be configured to listen for HTTP and HTTPS requests.
+
+%if %{with_clucene}
+##
+## Zarafa Indexing service
+##
+%package indexer
+Summary:            The Zarafa Indexing service
+Group:              System Environment/Daemons
+Requires:           zarafa(common) = %{version}-%{release}, file
+Requires:           catdoc, libxslt, lynx, unzip, %{_bindir}/pdftotext
+Requires(post):     /sbin/chkconfig
+Requires(preun):    /sbin/service
+Requires(preun):    /sbin/chkconfig
+Requires(postun):   /sbin/service
+Provides:           zarafa(indexer) = %{version}-%{release}
+Provides:           zarafa(config::indexer) = %{version}-%{release}
+
+%description indexer
+The zarafa-indexer package includes the Zarafa Indexing service for fast
+and full-text searching. Using CLucene search engine, this service makes
+an index per user of messages and attachments for the Zarafa server. At
+search queries, the server will use this index to quickly find messages,
+items and even in contents of attached documents.
+%endif
 
 ##
-## Zarafa CalDAV package, merely an alias for zarafa-ical
+## Zarafa CalDAV gateway (merely an alias for zarafa-ical)
 ##
 %package caldav
 Summary:            The Zarafa iCal/CalDAV gateway
@@ -323,18 +351,17 @@ Group:              System Environment/D
 Requires:           zarafa(ical) = %{version}-%{release}
 
 %description caldav
-The iCal/CalDAV gateway enables users to retrieve their
-calendar using iCalendar compliant clients. The iCal/CalDAV
-gateway can be configured to listen for HTTP and HTTPS
-requests.
+The zarafa-caldav package includes the Zarafa CalDAV gateway service to
+enable users to access their calendar using iCalendar (RFC 2445/5545) or
+CalDAV (RFC 4791) compliant clients. The iCal/CalDAV gateway service can
+be configured to listen for HTTP and HTTPS requests.
 
 ##
-## Zarafa Monitor Service
+## Zarafa Monitoring service
 ##
 %package monitor
-Summary:            Zarafa Monitoring service
+Summary:            The Zarafa Monitoring service
 Group:              System Environment/Daemons
-Requires:           zarafa(client) = %{version}-%{release}
 Requires:           zarafa(common) = %{version}-%{release}
 Requires(post):     /sbin/chkconfig
 Requires(preun):    /sbin/service
@@ -344,14 +371,15 @@ Provides:           zarafa(monitor) = %{
 Provides:           zarafa(config::monitor) = %{version}-%{release}
 
 %description monitor
-The monitor checks user mailbox sizes. When a quotum is reached
-the monitor sends a quota notification email.
+The zarafa-monitor package includes the Zarafa Monitoring service which
+is responsible for checking the users store (mailbox) size, and sending
+them (and administrators) a warning e-mail when limits are exceeded.
 
 ##
-## Zarafa Backend Server
+## Zarafa Server service
 ##
 %package server
-Summary:            Zarafa Backend Server
+Summary:            The main Zarafa Server service
 Group:              System Environment/Daemons
 Requires:           zarafa(common) = %{version}-%{release}
 Requires(post):     /sbin/chkconfig
@@ -363,15 +391,17 @@ Provides:           zarafa(config) = %{v
 Provides:           zarafa(config::server) = %{version}-%{release}
 
 %description server
-The Zarafa groupware backend server
+The zarafa-server package includes the main Zarafa Server and Storage
+process. It contacts a database server and provides services to Zarafa
+clients. The user base can be either retrieved from an external source
+or can be setup with a separate list of users.
 
 ##
-## Zarafa Spooler Service
+## Zarafa Spooler service
 ##
 %package spooler
-Summary:            Zarafa Spooler Service
+Summary:            The Zarafa Spooler service
 Group:              System Environment/Daemons
-Requires:           zarafa(client) = %{version}-%{release}
 Requires:           zarafa(common) = %{version}-%{release}
 Requires(post):     /sbin/chkconfig
 Requires(preun):    /sbin/service
@@ -381,80 +411,130 @@ Provides:           zarafa(spooler) = %{
 Provides:           zarafa(config::spooler) = %{version}-%{release}
 
 %description spooler
-The spooler sends all pending Zarafa e-mail to the recipients,
-from the Outbox of a user/all users.
+The zarafa-spooler package includes the Zarafa Spooler service which is
+responsible for converting the Zarafa e-mails from outboxes to Internet
+Mail and send it using the configured SMTP server to the recipients.
 
 ##
 ## Zarafa Utilities
 ##
 %package utils
-Summary:            Zarafa Utilities
+Summary:            Zarafa Utilities for administration and management
 Group:              Applications/System
-Requires:           zarafa(client) = %{version}-%{release}
 Requires:           zarafa(common) = %{version}-%{release}
 Provides:           zarafa(utils) = %{version}-%{release}
 
 %description utils
-Administration utilities for the Zarafa Groupware environment
-including reporting and password management.
+The zarafa-utils package includes various administration and management
+utilities for the Zarafa Open Source Collaboration environment including
+reporting, user and password management.
 
 ##
-## MAPI System Libraries
+## Zarafa Webaccess
+##
+%package webaccess
+Summary:            Zarafa Webaccess featuring a 'Look & Feel' similar to Outlook
+Group:              Applications/Productivity
+Requires:           httpd
+Requires:           php >= 4.3
+Requires:           php(mapi) = %{version}-%{release}
+%if 0%{?rhel}%{?fedora} > 5
+BuildArch:          noarch
+%endif
+
+%description webaccess
+Zarafa Webaccess features the familiar Outlook 'Look & Feel' interface
+and you can keep using the features in Outlook that have always allowed
+you to work efficiently. View your e-mail, calendar and contacts via a
+web browser. And opening your colleagues calendar or sending a meeting
+request is only a piece of cake. The Zarafa Webaccess is using the ajax
+technology to give a more interactive feeling to the users.
+
+##
+## MAPI library
 ##
 %package -n libmapi
-Summary:            Mapi libraries by Zarafa
+Summary:            MAPI implementation and library by Zarafa
 Group:              System Environment/Libraries
 Requires:           zarafa(client) = %{version}-%{release}
 Requires(post):     /sbin/ldconfig
 Requires(postun):   /sbin/ldconfig
 
 %description -n libmapi
-MAPI libraries by Zarafa.
+The libmapi package provides the Open Source MAPI (Messaging Application
+Programming Interface) implementation by Zarafa. The MAPI is a messaging
+architecture and a Component Object Model based API for Microsoft Windows
+which allows control over the messaging system on the client computer,
+creation and management of messages, management of the client mailbox,
+service providers, etc. This MAPI implementation by Zarafa is also known
+as MAPI4Linux.
 
 ##
-## MAPI Perl extension
+## Perl MAPI extension
 ##
-%package -n perl-libmapi
-Summary:            Perl Mapi extension libraries by Zarafa
-Group:              System Environment/Libraries
-Requires:           perl
+%package -n perl-MAPI
+Summary:            The Perl MAPI extension by Zarafa
+Group:              Development/Libraries
+Requires:           perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
+Provides:           perl-libmapi = %{version}-%{release}
+Obsoletes:          perl-libmapi < 6.40.0-1
 
-%description -n perl-libmapi
-Perl MAPI extension libraries by Zarafa.
+%description -n perl-MAPI
+The perl-MAPI package contains the Perl MAPI extension to provide access
+to Microsoft MAPI functions while using Perl.
 
 ##
-## MAPI PHP Extension
+## PHP MAPI extension
 ##
 %package -n php-mapi
-Summary:            A PHP Mapi client by Zarafa
-Group:              Applications/Communications
+Summary:            The PHP MAPI extension by Zarafa
+Group:              Development/Languages
 # Bug: Without mod_ssl, reloading httpd causes core dump
 Requires:           mod_ssl
+%if 0%{?rhel}%{?fedora} > 4
+%if 0%{?php_zend_api}
+Requires:           php(zend-abi) = %{php_zend_api}, php(api) = %{php_core_api}
+%else
+Requires:           php-api = %{php_apiver}
+%endif
+%else
 Requires:           php >= 4.3
+%endif
 Provides:           php(mapi) = %{version}-%{release}
 
 %description -n php-mapi
-PHP MAPI extension by Zarafa to enable MAPI communication in PHP.
+The php-mapi package contains the PHP MAPI extension to provide access to
+Microsoft MAPI functions while using PHP. Although not all MAPI functions
+and interfaces are supported so far, most functions have a PHP counterpart
+in this extension. Using this PHP MAPI extension, developers can create
+e.g. webbased e-mail and calendaring systems and interfaces with existing
+PHP projects, using the MAPI functions like a normal MAPI program.
 
 %prep
 %setup -q
 %patch0 -p1 -b .package
-%patch1 -p1 -b .perl
-%patch2 -p1 -b .symbol
-%patch3 -p1 -b .chmod
-#%%patch10 -p5 -b .brodowski
+%patch1 -p1 -b .undefined-symbol
+%patch2 -p1 -b .openssl
+%patch3 -p1 -b .krb5
+%patch4 -p1 -b .clucene
 
 # Needed to get rid of rpath
 libtoolize --force
 autoreconf --force --install
 
 %build
-CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -g -ggdb"
-export CFLAGS
+export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -g -ggdb"
 %configure \
     --with-userscript-prefix=%{_sysconfdir}/%{name}/userscripts \
     --with-quotatemplate-prefix=%{_sysconfdir}/%{name}/quotamail \
-%if 0%{?rhel} > 0
+    --with-indexerscripts-prefix=%{_datadir}/%{name}/indexerscripts \
+%if %{with_clucene}
+    --with-clucene-lib-prefix=%{_libdir} \
+    --with-clucene-include-prefix=%{_includedir} \
+%else
+    --with-clucene-lib-prefix= \
+%endif
+%if 0%{?rhel}%{?fedora} < 6
     --enable-release \
 %endif
     --disable-static \
@@ -465,56 +545,52 @@ make %{?_smp_mflags}
 %install
 rm -rf $RPM_BUILD_ROOT
 make \
-%if 0%{?rhel} > 0
+%if 0%{?rhel}%{?fedora} < 6
     docdir=%{_datadir}/doc/%{name}/ \
     datarootdir=%{_datadir} \
 %endif
     DESTDIR=$RPM_BUILD_ROOT \
     INSTALL='install -p' \
-    install
+    install \
+    install-ajax-webaccess
 
 # Nuke all overlefts from licensed, managed or other proprietary items
-rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/report-ca
+rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/{license,licensed.cfg,report-ca}
 rm -f $RPM_BUILD_ROOT%{_mandir}/man?/zarafa-{backup,restore,report,ldapms.cfg,licensed{,.cfg}}.*
 
 # Move all the initscripts to their appropriate place and
 # ensure that all services are off by default at boot time
+rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/init.d/
 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d/
-for service in server spooler dagent gateway monitor ical; do
-    if [ -f $RPM_BUILD_ROOT%{_datadir}/doc/%{name}/%{name}-$service.init.fc ]; then
-        sed -e 's at 345@-@' $RPM_BUILD_ROOT%{_datadir}/doc/%{name}/%{name}-$service.init.fc > \
+for service in dagent gateway ical indexer monitor server spooler; do
+    if [ -f installer/linux/%{name}-$service.init.rhel ]; then
+        sed -e 's at 345@-@' installer/linux/%{name}-$service.init.rhel > \
             $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d/%{name}-$service
         chmod 755 $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d/%{name}-$service
-        touch -c -r $RPM_BUILD_ROOT{%{_datadir}/doc/%{name}/%{name}-$service.init.fc,%{_sysconfdir}/rc.d/init.d/%{name}-$service}
+        touch -c -r installer/linux/%{name}-$service.init.rhel $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d/%{name}-$service
     fi
 done
 
 # Move the configuration files to their correct place and handle
 # /usr/lib vs. /usr/lib64 for all architectures correct and set
 # run_as_user, run_as_group and local_admin_users values correct
-for config in $RPM_BUILD_ROOT%{_datadir}/doc/%{name}/*.cfg; do
+for config in $RPM_BUILD_ROOT%{_datadir}/doc/%{name}/example-config/*.cfg; do
     config=$(basename $config)
-    if [ -f $RPM_BUILD_ROOT%{_datadir}/doc/%{name}/$config ]; then
+    if [ -f $RPM_BUILD_ROOT%{_datadir}/doc/%{name}/example-config/$config ]; then
         sed -e 's@\(run_as_\(user\|group\)[[:space:]]*=\).*@\1 %{name}@' -e 's@/usr/lib/zarafa@%{_libdir}/%{name}@' \
             -e 's@\(local_admin_users[[:space:]]*=[[:space:]]*root.*\)@\1 %{name}@' \
-                $RPM_BUILD_ROOT%{_datadir}/doc/%{name}/$config > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/$config
+                $RPM_BUILD_ROOT%{_datadir}/doc/%{name}/example-config/$config > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/$config
         chmod 640 $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/$config
-        touch -c -r $RPM_BUILD_ROOT%{_datadir}/doc/%{name}/$config $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/$config
+        touch -c -r $RPM_BUILD_ROOT%{_datadir}/doc/%{name}/example-config/$config $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/$config
     fi
 done
 
-# Move the logrotate configuration file to it's correct place
-mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/
-sed -e 's@\(}\)@        create 0644 %{name} %{name}\n\1@' -e '1,6d' \
-  $RPM_BUILD_ROOT%{_datadir}/doc/%{name}/%{name}.logrotate > $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/%{name}
-touch -c -r $RPM_BUILD_ROOT%{_datadir}/doc/%{name}/%{name}.logrotate $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/%{name}
-
-# Install the PHP module configuration file appropriate
-mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/php.d/
-install -p -m 644 %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/php.d/%{name}.ini
-
-# Create missing userscript directories for packaging them
-mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/userscripts/{create,delete}{user,group,company}.d/
+# Move the logrotate configuration file to its correct place
+rm -f $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/*
+for service in dagent gateway ical indexer licensed monitor server spooler; do
+    sed -e "s at SERVICE@$service@" %{SOURCE2} >> $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/%{name}
+done
+touch -c -r %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/%{name}
 
 # Move the userscripts to their correct place and symlink them
 mkdir -p $RPM_BUILD_ROOT%{_datadir}/%{name}/userscripts/
@@ -526,18 +602,56 @@ done
 
 # Create the data directory and install some files into
 mkdir -p $RPM_BUILD_ROOT%{_datadir}/%{name}/
-install -p -m 755 installer/linux/db-{calc-storesize,convert-attachments-to-files} $RPM_BUILD_ROOT%{_datadir}/%{name}/
-install -p -m 755 installer/linux/ssl-certificates.sh $RPM_BUILD_ROOT%{_datadir}/%{name}/
+install -p -m 644 installer/linux/db-{calc-storesize,convert-attachments-to-files} $RPM_BUILD_ROOT%{_datadir}/%{name}/
+install -p -m 644 installer/linux/ssl-certificates.sh $RPM_BUILD_ROOT%{_datadir}/%{name}/
+%if %{with_ldap}
+install -p -m 644 installer/linux/{db-upgrade-objectsid-to-objectguid,ldap-switch-sendas}.pl $RPM_BUILD_ROOT%{_datadir}/%{name}/
 install -p -m 644 installer/ldap/%{name}.schema $RPM_BUILD_ROOT%{_datadir}/%{name}/
+%else
+rm -f $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/ldap.{active-directory,openldap,propmap}.cfg
+rm -f $RPM_BUILD_ROOT%{_mandir}/man5/%{name}-ldap.cfg.5*
+%endif
 
 # Create the default log and lib directory for packaging
 mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/{log,lib}/%{name}/
 
 # Remove all libtool .la files to avoid packaging of them
-rm -f $RPM_BUILD_ROOT%{_libdir}/{,php/modules,%{name}}/*.la
+rm -f $RPM_BUILD_ROOT{%{_libdir}/{,php/modules,php4,%{name}},%{perl_vendorarch}/auto/MAPI}/*.la
 
 # Remove files that are anyway in %doc or %{_datadir}/%{name}/
-rm -rf $RPM_BUILD_ROOT%{_datadir}/doc/%{name}/
+rm -rf $RPM_BUILD_ROOT%{_datadir}/doc/%{name}{,-indexer}/
+
+# Remove unwanted/unused files that shouldn't exist anyway...
+rm -f $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/%{name}-indexer
+
+# Move Indexer/CLucene related files to its correct places
+%if %{with_clucene}
+mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/indexerscripts/
+mv -f $RPM_BUILD_ROOT{%{_datadir},%{_sysconfdir}}/%{name}/indexerscripts/attachments_parser.db
+for helper in attachments_parser xmltotext.xslt zmktemp; do
+    ln -s ../../..%{_datadir}/%{name}/indexerscripts/$helper $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/indexerscripts/$helper
+done
+%else
+rm -f $RPM_BUILD_ROOT{%{_sysconfdir}/{rc.d/init.d,sysconfig},%{_mandir}/man?}/%{name}-indexer*
+rm -rf $RPM_BUILD_ROOT{%{_sysconfdir}/%{name}/indexer.cfg,%{_datadir}/%{name}/indexerscripts/}
+%endif
+
+# Move the webaccess configuration file to its correct place
+mv -f $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/webaccess{-ajax,}
+rm -f $RPM_BUILD_ROOT%{_datadir}/%{name}-webaccess/config.php
+ln -sf ../../..%{_sysconfdir}/%{name}/webaccess/config.php $RPM_BUILD_ROOT%{_datadir}/%{name}-webaccess/config.php
+
+# Install the apache configuration file for webaccess
+mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/httpd/conf.d/
+install -p -m 644 %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/httpd/conf.d/%{name}-webaccess.conf
+
+# Move the webaccess plugins directory to its correct place
+rm -rf $RPM_BUILD_ROOT{%{_datadir},%{_localstatedir}/lib}/%{name}-webaccess/plugins
+mkdir -p $RPM_BUILD_ROOT%{_datadir}/%{name}-webaccess/plugins/
+
+# Remove unwanted language connectors and webaccess files
+rm -f $RPM_BUILD_ROOT%{_datadir}/%{name}-webaccess/client/widgets/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.{cfm,pl}
+rm -f $RPM_BUILD_ROOT%{_datadir}/%{name}-webaccess/{.htaccess,%{name}-webaccess.conf}
 
 %find_lang %{name}
 
@@ -554,15 +668,22 @@ exit 0
 # Ensure correct log file ownership after upgrade from official packages
 chown %{name}:%{name} %{_localstatedir}/log/%{name}/dagent.* > /dev/null 2>&1 || :
 
+%post gateway
+[ $1 -eq 1 ] && /sbin/chkconfig --add %{name}-gateway
+# Ensure correct log file ownership after upgrade from official packages
+chown %{name}:%{name} %{_localstatedir}/log/%{name}/gateway.* > /dev/null 2>&1 || :
+
 %post ical
 [ $1 -eq 1 ] && /sbin/chkconfig --add %{name}-ical
 # Ensure correct log file ownership after upgrade from official packages
 chown %{name}:%{name} %{_localstatedir}/log/%{name}/ical.* > /dev/null 2>&1 || :
 
-%post gateway
-[ $1 -eq 1 ] && /sbin/chkconfig --add %{name}-gateway
+%if %{with_clucene}
+%post indexer
+[ $1 -eq 1 ] && /sbin/chkconfig --add %{name}-indexer
 # Ensure correct log file ownership after upgrade from official packages
-chown %{name}:%{name} %{_localstatedir}/log/%{name}/gateway.* > /dev/null 2>&1 || :
+chown %{name}:%{name} %{_localstatedir}/log/%{name}/indexer.* > /dev/null 2>&1 || :
+%endif
 
 %post monitor
 [ $1 -eq 1 ] && /sbin/chkconfig --add %{name}-monitor
@@ -587,17 +708,25 @@ if [ $1 -eq 0 ]; then
     /sbin/chkconfig --del %{name}-dagent
 fi
 
+%preun gateway
+if [ $1 -eq 0 ]; then
+    /sbin/service %{name}-gateway stop > /dev/null 2>&1 || :
+    /sbin/chkconfig --del %{name}-gateway
+fi
+
 %preun ical
 if [ $1 -eq 0 ]; then
     /sbin/service %{name}-ical stop > /dev/null 2>&1 || :
     /sbin/chkconfig --del %{name}-ical
 fi
 
-%preun gateway
+%if %{with_clucene}
+%preun indexer
 if [ $1 -eq 0 ]; then
-    /sbin/service %{name}-gateway stop > /dev/null 2>&1 || :
-    /sbin/chkconfig --del %{name}-gateway
+    /sbin/service %{name}-indexer stop > /dev/null 2>&1 || :
+    /sbin/chkconfig --del %{name}-indexer
 fi
+%endif
 
 %preun monitor
 if [ $1 -eq 0 ]; then
@@ -622,15 +751,22 @@ if [ $1 -ne 0 ]; then
     /sbin/service %{name}-dagent condrestart > /dev/null 2>&1 || :
 fi
 
+%postun gateway
+if [ $1 -ne 0 ]; then
+    /sbin/service %{name}-gateway condrestart > /dev/null 2>&1 || :
+fi
+
 %postun ical
 if [ $1 -ne 0 ]; then
     /sbin/service %{name}-ical condrestart > /dev/null 2>&1 || :
 fi
 
-%postun gateway
+%if %{with_clucene}
+%postun indexer
 if [ $1 -ne 0 ]; then
-    /sbin/service %{name}-gateway condrestart > /dev/null 2>&1 || :
+    /sbin/service %{name}-indexer condrestart > /dev/null 2>&1 || :
 fi
+%endif
 
 %postun monitor
 if [ $1 -ne 0 ]; then
@@ -664,10 +800,9 @@ fi
 
 %files common
 %defattr(-,root,root,-)
-%doc installer/licenseagreement/AGPL-3 doc/performance-tuning.txt
 %dir %{_sysconfdir}/%{name}/
 %config(noreplace) %{_sysconfdir}/logrotate.d/%{name}
-%dir %{_libdir}/%{name}/
+%config(noreplace) %{_sysconfdir}/sysconfig/%{name}
 %{_mandir}/man1/%{name}.1*
 %dir %{_datadir}/%{name}/
 %dir %attr(0755,%{name},%{name}) %{_localstatedir}/lib/%{name}/
@@ -679,6 +814,7 @@ fi
 %{_bindir}/%{name}-autorespond
 %{_bindir}/%{name}-dagent
 %config(noreplace) %attr(0640,%{name},%{name}) %{_sysconfdir}/%{name}/dagent.cfg
+%config(noreplace) %{_sysconfdir}/%{name}/autorespond
 %{_sysconfdir}/rc.d/init.d/%{name}-dagent
 %{_mandir}/man1/%{name}-dagent.1*
 %{_mandir}/man5/%{name}-dagent.cfg.5*
@@ -689,14 +825,16 @@ fi
 %{_libdir}/libicalmapi.so
 %{_libdir}/libinetmapi.so
 %{_libdir}/libmapi.so
-%{_libdir}/libperlmapi.so
 %{_libdir}/libcommon_mapi.a
 %{_libdir}/libcommon_ssl.a
 %{_libdir}/libcommon_util.a
 %{_libdir}/libfreebusy.a
+%{_libdir}/libzarafasync.a
 %{_includedir}/icalmapi/
 %{_includedir}/inetmapi/
 %{_includedir}/mapi4linux/
+%{_includedir}/libfreebusy/
+%{_includedir}/libzarafasync/
 %{_includedir}/%{name}/
 %{_libdir}/pkgconfig/%{name}.pc
 
@@ -718,6 +856,26 @@ fi
 %{_mandir}/man1/%{name}-ical.1*
 %{_mandir}/man5/%{name}-ical.cfg.5*
 
+%if %{with_clucene}
+%files indexer
+%defattr(-,root,root,-)
+%doc installer/licenseagreement/AGPL-3
+%{_bindir}/%{name}-indexer
+%config(noreplace) %attr(0640,%{name},%{name}) %{_sysconfdir}/%{name}/indexer.cfg
+%{_sysconfdir}/rc.d/init.d/%{name}-indexer
+%dir %{_sysconfdir}/%{name}/indexerscripts/
+%config(noreplace) %{_sysconfdir}/%{name}/indexerscripts/attachments_parser.db
+%{_sysconfdir}/%{name}/indexerscripts/attachments_parser
+%{_sysconfdir}/%{name}/indexerscripts/xmltotext.xslt
+%{_sysconfdir}/%{name}/indexerscripts/zmktemp
+%dir %{_datadir}/%{name}/indexerscripts/
+%{_datadir}/%{name}/indexerscripts/attachments_parser
+%{_datadir}/%{name}/indexerscripts/xmltotext.xslt
+%{_datadir}/%{name}/indexerscripts/zmktemp
+%{_mandir}/man1/%{name}-indexer.1*
+%{_mandir}/man5/%{name}-indexer.cfg.5*
+%endif
+
 %files monitor
 %defattr(-,root,root,-)
 %doc installer/licenseagreement/AGPL-3
@@ -758,6 +916,7 @@ fi
 %config(noreplace) %{_sysconfdir}/%{name}/userscripts/createcompany.d/00createpublic
 %config(noreplace) %{_sysconfdir}/%{name}/userscripts/createuser.d/00createstore
 %{_datadir}/%{name}/userscripts/
+%dir %{_libdir}/%{name}/
 %{_libdir}/%{name}/dbplugin.so
 %{_libdir}/%{name}/unixplugin.so
 %{_mandir}/man1/%{name}-server.1*
@@ -765,8 +924,11 @@ fi
 %{_mandir}/man5/%{name}-unix.cfg.5*
 %if %{with_ldap}
 %{_datadir}/%{name}/%{name}.schema
+%{_datadir}/%{name}/db-upgrade-objectsid-to-objectguid.pl
+%{_datadir}/%{name}/ldap-switch-sendas.pl
 %config(noreplace) %attr(0640,%{name},%{name}) %{_sysconfdir}/%{name}/ldap.active-directory.cfg
 %config(noreplace) %attr(0640,%{name},%{name}) %{_sysconfdir}/%{name}/ldap.openldap.cfg
+%config(noreplace) %attr(0640,%{name},%{name}) %{_sysconfdir}/%{name}/ldap.propmap.cfg
 %{_libdir}/%{name}/ldapplugin.so
 %{_mandir}/man5/%{name}-ldap.cfg.5*
 %endif
@@ -784,6 +946,7 @@ fi
 %defattr(-,root,root,-)
 %doc installer/licenseagreement/AGPL-3
 %{_bindir}/%{name}-admin
+%{_bindir}/%{name}-cfgchecker
 %{_bindir}/%{name}-fsck
 %{_bindir}/%{name}-passwd
 %{_bindir}/%{name}-stats
@@ -791,10 +954,22 @@ fi
 %{_datadir}/%{name}/db-convert-attachments-to-files
 %{_datadir}/%{name}/ssl-certificates.sh
 %{_mandir}/man1/%{name}-admin.1*
+%{_mandir}/man1/%{name}-cfgchecker.1*
 %{_mandir}/man1/%{name}-fsck.1*
 %{_mandir}/man1/%{name}-passwd.1*
 %{_mandir}/man1/%{name}-stats.1*
 
+%files webaccess
+%defattr(-,root,root,-)
+%doc installer/licenseagreement/AGPL-3
+%config(noreplace) %{_sysconfdir}/httpd/conf.d/%{name}-webaccess.conf
+%dir %{_sysconfdir}/%{name}/
+%dir %{_sysconfdir}/%{name}/webaccess/
+%config(noreplace) %{_sysconfdir}/%{name}/webaccess/config.php
+%{_datadir}/%{name}-webaccess/
+%dir %{_localstatedir}/lib/%{name}-webaccess/
+%attr(-,apache,apache) %dir %{_localstatedir}/lib/%{name}-webaccess/tmp/
+
 %files -n libmapi
 %defattr(-,root,root,-)
 %doc installer/licenseagreement/AGPL-3
@@ -802,10 +977,11 @@ fi
 %{_libdir}/libinetmapi.so.*
 %{_libdir}/libmapi.so.*
 
-%files -n perl-libmapi
+%files -n perl-MAPI
 %defattr(-,root,root,-)
 %doc installer/licenseagreement/AGPL-3
-%{_libdir}/libperlmapi.so.*
+%{perl_vendorarch}/MAPI.pm
+%{perl_vendorarch}/auto/MAPI/
 
 %files -n php-mapi
 %defattr(-,root,root,-)
@@ -819,6 +995,9 @@ fi
 %endif
 
 %changelog
+* Thu Jun 10 2010 Robert Scheck <robert at fedoraproject.org> 6.40.0-1
+- Upgrade to 6.40.0 (#564135, #565252, #600993)
+
 * Sat May 01 2010 Robert Scheck <robert at fedoraproject.org> 6.30.14-1
 - Upgrade to 6.30.14
 


--- zarafa-6.30.10-chmod.patch DELETED ---


--- zarafa-6.30.10-undefined-symbol.patch DELETED ---


--- zarafa-6.30.4-brodowski.patch DELETED ---


--- zarafa-6.30.4-package.patch DELETED ---


--- zarafa-6.30.4-perl.patch DELETED ---



More information about the scm-commits mailing list