- Upgrade to 7.0.4

- Added patch for rebuilding with PHP 5.4 (thanks to Remi Collet)
- Work around crashs by reducing open file descriptors (#760888)
This commit is contained in:
Robert Scheck 2012-01-13 01:28:55 +01:00
commit d4b9b96d28
3 changed files with 183 additions and 6 deletions

View file

@ -0,0 +1,36 @@
Patch by Robert Scheck <robert@fedoraproject.org> for Zarafa >= 7.0.4, which works around
the issue that Zarafa is using up to 8192 open file descriptors, while the system glibc is
allowing at maximum 1024. Of course glibc supports more open file descriptors, however the
usage seems to be non-POSIX conform and non-portable. Finally a check was implemented into
glibc by upstream developers to catch such strange usage cases. That check causes Zarafa
to fail with a segmentation fault when built with -D_FORTIFY_SOURCE=2 and glibc-2.14.90-8
or newer (actually Fedora 16 with updates and newer).
This patch is a workaround until gSOAP parts are updated/changed/rewritten to use poll(2)
instead of select(2). Lowering FD_SETSIZE was suggested by Milo Oostergo from Zarafa B.V.
--- zarafa-7.0.4/provider/soap/soapdefs.h 2011-12-22 01:02:31.000000000 +0100
+++ zarafa-7.0.4/provider/soap/soapdefs.h.fd_setsize 2012-01-12 22:36:40.000000000 +0100
@@ -8,6 +8,6 @@
#include <bits/types.h>
#undef __FD_SETSIZE
-#define __FD_SETSIZE 8192
+#define __FD_SETSIZE 1024
#endif // ndef SOAPDEFS_H_
--- zarafa-7.0.4/common/platform.h 2011-12-22 01:02:34.000000000 +0100
+++ zarafa-7.0.4/common/platform.h.fd_setsize 2012-01-12 22:37:03.000000000 +0100
@@ -52,10 +52,10 @@
// We have to include this now in case select.h is included too soon.
- // Increase our maximum amount of file descriptors to 8192
+ // Increase our maximum amount of file descriptors to 1024
#include <bits/types.h>
#undef __FD_SETSIZE
- #define __FD_SETSIZE 8192
+ #define __FD_SETSIZE 1024
// Log the pthreads locks
#define DEBUG_PTHREADS 0

130
zarafa-7.0.4-php54.patch Normal file
View file

@ -0,0 +1,130 @@
Patch by Robert Scheck <robert@fedoraproject.org> for Zarafa >= 7.0.4, which fixes building of the PHP
extension of Zarafa with PHP >= 5.4.0. It is heavily based on the work of Remi Collet. Fedora 17+ will
ship PHP >= 5.4.0, so the changes are here mandatory. According to /usr/include/php/main/php3_compat.h
the "typedef zval pval;" definition exists for ages and I wasn't able to figure out any build issue in
Red Hat Enterprise Linux 5 (as oldest supported version of Zarafa 7.0.x) during my tests. References:
- https://github.com/remicollet/remirepo/blob/1e741d6002a34add940c15711cf061c35d4c9e91/zarafa/zarafa-7.0.3-php54.patch
- http://forums.zarafa.com/viewtopic.php?f=22&t=7826
--- zarafa-7.0.4/php-ext/ECImportContentsChangesProxy.cpp 2011-12-22 01:02:33.000000000 +0100
+++ zarafa-7.0.4/php-ext/ECImportContentsChangesProxy.cpp.php54 2012-01-08 23:58:33.000000000 +0100
@@ -150,9 +150,9 @@
HRESULT ECImportContentsChangesProxy::Config(LPSTREAM lpStream, ULONG ulFlags) {
HRESULT hr = hrSuccess;
- pval *pvalFuncName;
- pval *pvalReturn;
- pval *pvalArgs[2];
+ zval *pvalFuncName;
+ zval *pvalReturn;
+ zval *pvalArgs[2];
MAKE_STD_ZVAL(pvalFuncName);
MAKE_STD_ZVAL(pvalReturn);
@@ -192,9 +192,9 @@
HRESULT ECImportContentsChangesProxy::UpdateState(LPSTREAM lpStream) {
HRESULT hr = hrSuccess;
- pval *pvalFuncName;
- pval *pvalReturn;
- pval *pvalArgs[1];
+ zval *pvalFuncName;
+ zval *pvalReturn;
+ zval *pvalArgs[1];
MAKE_STD_ZVAL(pvalFuncName);
MAKE_STD_ZVAL(pvalReturn);
@@ -228,9 +228,9 @@
}
HRESULT ECImportContentsChangesProxy::ImportMessageChange(ULONG cValues, LPSPropValue lpPropArray, ULONG ulFlags, LPMESSAGE * lppMessage) {
- pval *pvalFuncName;
- pval *pvalReturn;
- pval *pvalArgs[3];
+ zval *pvalFuncName;
+ zval *pvalReturn;
+ zval *pvalArgs[3];
IMessage *lpMessage = NULL;
HRESULT hr = hrSuccess;
@@ -287,9 +287,9 @@
HRESULT ECImportContentsChangesProxy::ImportMessageDeletion(ULONG ulFlags, LPENTRYLIST lpSourceEntryList) {
HRESULT hr = hrSuccess;
- pval *pvalFuncName;
- pval *pvalReturn;
- pval *pvalArgs[2];
+ zval *pvalFuncName;
+ zval *pvalReturn;
+ zval *pvalArgs[2];
MAKE_STD_ZVAL(pvalFuncName);
MAKE_STD_ZVAL(pvalReturn);
@@ -323,9 +323,9 @@
HRESULT ECImportContentsChangesProxy::ImportPerUserReadStateChange(ULONG cElements, LPREADSTATE lpReadState) {
HRESULT hr = hrSuccess;
- pval *pvalFuncName;
- pval *pvalReturn;
- pval *pvalArgs[1];
+ zval *pvalFuncName;
+ zval *pvalReturn;
+ zval *pvalArgs[1];
MAKE_STD_ZVAL(pvalFuncName);
MAKE_STD_ZVAL(pvalReturn);
--- zarafa-7.0.4/php-ext/ECImportHierarchyChangesProxy.cpp 2011-12-22 01:02:33.000000000 +0100
+++ zarafa-7.0.4/php-ext/ECImportHierarchyChangesProxy.cpp.php54 2012-01-08 23:58:33.000000000 +0100
@@ -147,9 +147,9 @@
HRESULT ECImportHierarchyChangesProxy::Config(LPSTREAM lpStream, ULONG ulFlags) {
HRESULT hr = hrSuccess;
- pval *pvalFuncName;
- pval *pvalReturn;
- pval *pvalArgs[2];
+ zval *pvalFuncName;
+ zval *pvalReturn;
+ zval *pvalArgs[2];
MAKE_STD_ZVAL(pvalFuncName);
MAKE_STD_ZVAL(pvalReturn);
@@ -189,9 +189,9 @@
HRESULT ECImportHierarchyChangesProxy::UpdateState(LPSTREAM lpStream) {
HRESULT hr = hrSuccess;
- pval *pvalFuncName;
- pval *pvalReturn;
- pval *pvalArgs[1];
+ zval *pvalFuncName;
+ zval *pvalReturn;
+ zval *pvalArgs[1];
MAKE_STD_ZVAL(pvalFuncName);
MAKE_STD_ZVAL(pvalReturn);
@@ -225,9 +225,9 @@
}
HRESULT ECImportHierarchyChangesProxy::ImportFolderChange(ULONG cValues, LPSPropValue lpPropArray) {
- pval *pvalFuncName;
- pval *pvalReturn;
- pval *pvalArgs[1];
+ zval *pvalFuncName;
+ zval *pvalReturn;
+ zval *pvalArgs[1];
HRESULT hr = hrSuccess;
MAKE_STD_ZVAL(pvalFuncName);
@@ -265,9 +265,9 @@
HRESULT ECImportHierarchyChangesProxy::ImportFolderDeletion(ULONG ulFlags, LPENTRYLIST lpSourceEntryList) {
HRESULT hr = hrSuccess;
- pval *pvalFuncName;
- pval *pvalReturn;
- pval *pvalArgs[2];
+ zval *pvalFuncName;
+ zval *pvalReturn;
+ zval *pvalArgs[2];
MAKE_STD_ZVAL(pvalFuncName);
MAKE_STD_ZVAL(pvalReturn);

View file

@ -1,6 +1,6 @@
%global beta_or_rc 0
%global actual_release 2
%global svnrevision 30515
%global actual_release 1
%global svnrevision 31235
%global with_clucene 1
%global with_ldap 1
%global with_xmlto 1
@ -12,13 +12,14 @@
%if 0%{?rhel}%{?fedora} > 4
%{?filter_setup:
%filter_provides_in %{_libdir}/%{name}/.*\.so$
%filter_provides_in %{_libdir}/php/modules/.*\.so$
%filter_setup
}
%endif
Summary: Open Source Edition of the Zarafa Collaboration Platform
Name: zarafa
Version: 7.0.3
Version: 7.0.4
%if %{beta_or_rc}
Release: 0.%{actual_release}.svn%{svnrevision}%{?dist}
%else
@ -43,6 +44,8 @@ Source3: %{name}-webaccess.conf
Patch0: zarafa-6.40.5-rpath.patch
Patch1: zarafa-7.0.3-boost149.patch
Patch2: zarafa-7.0.4-php54.patch
Patch3: zarafa-7.0.4-fd_setsize.patch
BuildRequires: bison
BuildRequires: gcc-c++
@ -369,6 +372,8 @@ to interact with Zarafa.
touch -c -r aclocal.m4.rpath aclocal.m4
%patch1 -p1 -b .boost149
touch -c -r configure.ac.boost149 configure.ac
%patch2 -p1 -b .php54
%patch3 -p1 -b .fd_setsize
%build
%if 0%{?rhel}%{?fedora} < 6
@ -377,7 +382,7 @@ export LDFLAGS="$LDFLAGS -L%{_libdir}/boost141"
%endif
%if 0%{?fedora} > 15
export LDFLAGS="$LDFLAGS -L%{_libdir}/clucene09"
export LDFLAGS="$RPM_LD_FLAGS -L%{_libdir}/clucene09"
%endif
%configure \
@ -421,7 +426,7 @@ make \
install-ajax-webaccess
# Nuke all overlefts from licensed, managed or other proprietary items
rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/{license,licensed.cfg,report-ca}
rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/{%{name}/{license,licensed.cfg,report-ca},cron.daily/%{name}-client-update}
rm -f $RPM_BUILD_ROOT%{_mandir}/man?/{zarafa-{backup,restore,report,msr,ldapms.cfg,licensed{,.cfg}},za-aclsync}.*
# Move all the initscripts to their appropriate place and
@ -675,6 +680,7 @@ fi
%files client -f %{name}.lang
%defattr(-,root,root,-)
%{_libdir}/libzarafaclient.so
%{_libdir}/libzarafasync.so.*
%files common
%defattr(-,root,root,-)
@ -709,7 +715,7 @@ fi
%{_libdir}/libcommon_ssl.a
%{_libdir}/libcommon_util.a
%{_libdir}/libfreebusy.a
%{_libdir}/libzarafasync.a
%{_libdir}/libzarafasync.so
%{_includedir}/icalmapi/
%{_includedir}/inetmapi/
%{_includedir}/mapi4linux/
@ -874,6 +880,11 @@ fi
%endif
%changelog
* Fri Jan 13 2012 Robert Scheck <robert@fedoraproject.org> 7.0.4-1
- Upgrade to 7.0.4
- Added patch for rebuilding with PHP 5.4 (thanks to Remi Collet)
- Work around crashs by reducing open file descriptors (#760888)
* Sat Dec 17 2011 Robert Scheck <robert@fedoraproject.org> 7.0.3-2
- Enabled non-optional build of epoll socket handling (#760888)