diff --git a/sources b/sources index eaa0ff7..002cfd7 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -38b77a85939e6f1cdc19d099d3cbb9d6 zcp-7.1.5.tar.gz +7a47d6cfd35c6d2963a10b1920f08577 zcp-7.1.7.tar.gz diff --git a/zarafa-7.1.4-libvmime092.patch b/zarafa-7.1.4-libvmime092.patch deleted file mode 100644 index 133bf36..0000000 --- a/zarafa-7.1.4-libvmime092.patch +++ /dev/null @@ -1,349 +0,0 @@ -Experimental patch provided by by Michael Kromer -for Zarafa >= 7.1.4, which adds compatibility with current GIT upstream -of libvmime. ---- - inetmapi/ECVMIMEUtils.cpp | 11 +++++++++++ - inetmapi/MAPISMTPTransport.cpp | 19 +++++++++++-------- - inetmapi/SMIMEMessage.cpp | 20 +++++++++----------- - inetmapi/SMIMEMessage.h | 2 +- - inetmapi/VMIMEToMAPI.cpp | 35 ++++++++++++++++++----------------- - inetmapi/inputStreamMAPIAdapter.h | 2 +- - inetmapi/mapiTextPart.cpp | 7 ++++--- - inetmapi/mapiTextPart.h | 2 +- - inetmapi/outputStreamMAPIAdapter.h | 2 +- - inetmapi/vmime_helper.hpp | 8 ++++++++ - 10 files changed, 65 insertions(+), 43 deletions(-) - -Index: zarafa-7.1.4/inetmapi/ECVMIMEUtils.cpp -=================================================================== ---- zarafa-7.1.4.orig/inetmapi/ECVMIMEUtils.cpp -+++ zarafa-7.1.4/inetmapi/ECVMIMEUtils.cpp -@@ -68,6 +68,9 @@ - #include - #include "ECABEntryID.h" - #include "mapi_ptr.h" -+#include -+#include -+#include "vmime_helper.hpp" - - using namespace std; - -@@ -484,3 +487,11 @@ HRESULT ECVMIMESender::sendMail(LPADRBOO - exit: - return hr; - } -+ -+std::string vmime_email_to_string(const vmime::emailAddress &e) -+{ -+ std::string s; -+ vmime::utility::outputStreamStringAdapter adapter(s); -+ e.generate(adapter); -+ return s; -+} -Index: zarafa-7.1.4/inetmapi/MAPISMTPTransport.cpp -=================================================================== ---- zarafa-7.1.4.orig/inetmapi/MAPISMTPTransport.cpp -+++ zarafa-7.1.4/inetmapi/MAPISMTPTransport.cpp -@@ -97,6 +97,9 @@ - #include "vmime/net/tls/TLSSecuredConnectionInfos.hpp" - #endif // VMIME_HAVE_TLS_SUPPORT - -+#include -+#include -+#include "vmime_helper.hpp" - - // Helpers for service properties - #define GET_PROPERTY(type, prop) \ -@@ -167,7 +170,7 @@ void MAPISMTPTransport::connect() - if (m_isSMTPS) // dedicated port/SMTPS - { - ref tlsSession = -- vmime::create (getCertificateVerifier()); -+ tls::TLSSession::create(getCertificateVerifier()); - - ref tlsSocket = - tlsSession->getSocket(m_socket); -@@ -440,10 +443,10 @@ void MAPISMTPTransport::authenticateSASL - case 334: - { - byte_t* challenge = 0; -- int challengeLen = 0; -+ long challengeLen = 0; - - byte_t* resp = 0; -- int respLen = 0; -+ long respLen = 0; - - try - { -@@ -522,7 +525,7 @@ void MAPISMTPTransport::startTLS() - throw exceptions::command_error("STARTTLS", resp->getText()); - - ref tlsSession = -- vmime::create (getCertificateVerifier()); -+ tls::TLSSession::create(getCertificateVerifier()); - - ref tlsSocket = - tlsSession->getSocket(m_socket); -@@ -642,7 +645,7 @@ void MAPISMTPTransport::send(const mailb - bDSN = false; // Disable DSN because the server does not support this. - } - -- strSend = "MAIL FROM: <" + expeditor.getEmail() + ">"; -+ strSend = "MAIL FROM: <" + vmime_email_to_string(expeditor.getEmail()) + ">"; - if (bDSN) { - strSend += " RET=HDRS"; - if (!m_strDSNTrackid.empty()) -@@ -664,7 +667,7 @@ void MAPISMTPTransport::send(const mailb - const mailbox& mbox = *recipients.getMailboxAt(i); - unsigned int code; - -- strSend = "RCPT TO: <" + mbox.getEmail() + ">"; -+ strSend = "RCPT TO: <" + vmime_email_to_string(mbox.getEmail()) + ">"; - if (bDSN) - strSend += " NOTIFY=SUCCESS,DELAY"; - -@@ -676,7 +679,7 @@ void MAPISMTPTransport::send(const mailb - { - sFailedRecip entry; - entry.strRecipName = (WCHAR*)mbox.getName().getConvertedText(charset(CHARSET_WCHAR)).c_str(); // does this work?, or convert to utf-8 then wstring? -- entry.strRecipEmail = mbox.getEmail(); -+ entry.strRecipEmail = vmime_email_to_string(mbox.getEmail()); - entry.ulSMTPcode = code; - entry.strSMTPResponse = resp->getText(); - m_lstFailedRecipients.push_back(entry); -@@ -755,7 +758,7 @@ void MAPISMTPTransport::sendRequest(cons - - ref MAPISMTPTransport::readResponse() - { -- ref resp = SMTPResponse::readResponse(m_socket, m_timeoutHandler); -+ ref resp = SMTPResponse::readResponse(m_socket, m_timeoutHandler, SMTPResponse::state()); - if (m_lpLogger && m_lpLogger->Log(EC_LOGLEVEL_DEBUG)) - m_lpLogger->Log(EC_LOGLEVEL_DEBUG, "> %d %s", resp->getCode(), resp->getText().c_str()); - return resp; -Index: zarafa-7.1.4/inetmapi/SMIMEMessage.cpp -=================================================================== ---- zarafa-7.1.4.orig/inetmapi/SMIMEMessage.cpp -+++ zarafa-7.1.4/inetmapi/SMIMEMessage.cpp -@@ -56,21 +56,19 @@ SMIMEMessage::SMIMEMessage() - { - } - --void SMIMEMessage::generate(vmime::utility::outputStream& os, const std::string::size_type maxLineLength, const std::string::size_type curLinePos, std::string::size_type* newLinePos) const -+const std::string -+SMIMEMessage::generate(const std::string::size_type maxLineLength, -+ const std::string::size_type curLinePos) const - { -- if(!m_body.empty()) { -+ if (m_body.empty()) -+ return vmime::message::generate(maxLineLength, curLinePos); -+ - // Generate headers -- getHeader()->generate(os, maxLineLength); -+ std::string s(getHeader()->generate()); - - // Concatenate S/MIME body without CRLF since it also contains some additional headers -- os << m_body; -- -- if (newLinePos) -- *newLinePos = 0; -- } else { -- // Normal generation -- vmime::message::generate(os, maxLineLength, curLinePos, newLinePos); -- } -+ s += m_body; -+ return s; - } - - void SMIMEMessage::setSMIMEBody(std::string &body) -Index: zarafa-7.1.4/inetmapi/SMIMEMessage.h -=================================================================== ---- zarafa-7.1.4.orig/inetmapi/SMIMEMessage.h -+++ zarafa-7.1.4/inetmapi/SMIMEMessage.h -@@ -78,7 +78,7 @@ class SMIMEMessage : public vmime::messa - public: - SMIMEMessage(); - -- void generate(vmime::utility::outputStream& os, const std::string::size_type maxLineLength = vmime::options::getInstance()->message.maxLineLength(), const std::string::size_type curLinePos = 0, std::string::size_type* newLinePos = NULL) const; -+ const std::string generate(const std::string::size_type maxLineLength = vmime::generationContext::getDefaultContext().getMaxLineLength(), const std::string::size_type curLinePos = 0) const; - - void setSMIMEBody(std::string &body); - -Index: zarafa-7.1.4/inetmapi/VMIMEToMAPI.cpp -=================================================================== ---- zarafa-7.1.4.orig/inetmapi/VMIMEToMAPI.cpp -+++ zarafa-7.1.4/inetmapi/VMIMEToMAPI.cpp -@@ -71,6 +71,7 @@ - #include - #include - #include -+#include "vmime_helper.hpp" - - // mapi - #include -@@ -638,10 +639,11 @@ HRESULT VMIMEToMAPI::handleHeaders(vmime - msgProps[nProps++].Value.lpszW = (WCHAR *)wstrSubject.c_str(); - - // set ReplyTo -- if (!vmHeader->ReplyTo()->getValue().dynamicCast()->isEmpty()) { -+ vmime::ref replyto_mbox = vmHeader->ReplyTo()->getValue().dynamicCast(); -+ if (!replyto_mbox->isEmpty()) { - // First, set PR_REPLY_RECIPIENT_NAMES -- wstrReplyTo = getWideFromVmimeText(vmHeader->ReplyTo()->getValue().dynamicCast()->getName()); -- wstrReplyToMail = m_converter.convert_to(vmHeader->ReplyTo()->getValue().dynamicCast()->getEmail()); -+ wstrReplyTo = getWideFromVmimeText(replyto_mbox->getName()); -+ wstrReplyToMail = m_converter.convert_to(vmime_email_to_string(replyto_mbox->getEmail())); - if (wstrReplyTo.empty()) - wstrReplyTo = wstrReplyToMail; - -@@ -719,10 +721,10 @@ HRESULT VMIMEToMAPI::handleHeaders(vmime - msgProps[nProps++].Value.ft = vmimeDatetimeToFiletime(date); - - // The real sender of the mail -- strFromEmail = vmHeader->From()->getValue().dynamicCast()->getEmail(); -- if (!vmHeader->From()->getValue().dynamicCast()->getName().isEmpty()) { -- wstrFromName = getWideFromVmimeText(vmHeader->From()->getValue().dynamicCast()->getName()); -- } -+ vmime::ref from_mbox = vmHeader->From()->getValue().dynamicCast(); -+ strFromEmail = vmime_email_to_string(from_mbox->getEmail()); -+ if (!from_mbox->getName().isEmpty()) -+ wstrFromName = getWideFromVmimeText(from_mbox->getName()); - - hr = modifyFromAddressBook(&lpRecipProps, &ulRecipProps, strFromEmail.c_str(), wstrFromName.c_str(), MAPI_ORIG, (LPSPropTagArray)&sptaRecipPropsSentRepr); - if (hr == hrSuccess) { -@@ -764,17 +766,16 @@ HRESULT VMIMEToMAPI::handleHeaders(vmime - } - - // The original sender of the mail account (if non sender exist then the FROM) -- strSenderEmail = vmHeader->Sender()->getValue().dynamicCast()->getEmail(); -- if(vmHeader->Sender()->getValue().dynamicCast()->getName().isEmpty() && strSenderEmail.empty()) { -+ vmime::ref sender_mbox = vmHeader->Sender()->getValue().dynamicCast(); -+ strSenderEmail = vmime_email_to_string(sender_mbox->getEmail()); -+ if (sender_mbox->getName().isEmpty() && strSenderEmail.empty()) { - // Fallback on the original from address - wstrSenderName = wstrFromName; - strSenderEmail = strFromEmail; -+ } else if (!sender_mbox->getName().isEmpty()) { -+ wstrSenderName = getWideFromVmimeText(sender_mbox->getName()); - } else { -- if (!vmHeader->Sender()->getValue().dynamicCast()->getName().isEmpty()) { -- wstrSenderName = getWideFromVmimeText(vmHeader->Sender()->getValue().dynamicCast()->getName()); -- } else { -- wstrSenderName = m_converter.convert_to(strSenderEmail); -- } -+ wstrSenderName = m_converter.convert_to(strSenderEmail); - } - - hr = modifyFromAddressBook(&lpRecipProps, &ulRecipProps, strSenderEmail.c_str(), wstrSenderName.c_str(), MAPI_ORIG, (LPSPropTagArray)&sptaRecipPropsSender); -@@ -949,7 +950,7 @@ HRESULT VMIMEToMAPI::handleHeaders(vmime - if (mbReadReceipt && !mbReadReceipt->isEmpty()) - { - wstring wstrRRName = getWideFromVmimeText(mbReadReceipt->getName()); -- wstring wstrRREmail = m_converter.convert_to(mbReadReceipt->getEmail()); -+ wstring wstrRREmail = m_converter.convert_to(vmime_email_to_string(mbReadReceipt->getEmail())); - - if (wstrRRName.empty()) - wstrRRName = wstrRREmail; -@@ -1277,7 +1278,7 @@ HRESULT VMIMEToMAPI::modifyRecipientList - mbx = vmAddress.dynamicCast(); - if (!mbx) - continue; -- strEmail = mbx->getEmail(); -+ strEmail = vmime_email_to_string(mbx->getEmail()); - vmText = mbx->getName(); - } - -@@ -2880,7 +2881,7 @@ std::string VMIMEToMAPI::mailboxToEnvelo - - lMBox.push_back("NIL"); // at-domain-list (source route) ... whatever that means - -- buffer = "\"" + mbox->getEmail() + "\""; -+ buffer = "\"" + vmime_email_to_string(mbox->getEmail()) + "\""; - pos = buffer.find("@"); - if (pos != string::npos) - boost::algorithm::replace_first(buffer, "@", "\" \""); -Index: zarafa-7.1.4/inetmapi/inputStreamMAPIAdapter.h -=================================================================== ---- zarafa-7.1.4.orig/inetmapi/inputStreamMAPIAdapter.h -+++ zarafa-7.1.4/inetmapi/inputStreamMAPIAdapter.h -@@ -51,7 +51,7 @@ - #define INPUT_STREAM_MAPI_ADAPTER_H - - #include "mapidefs.h" --#include -+#include - - class inputStreamMAPIAdapter : public vmime::utility::inputStream { - public: -Index: zarafa-7.1.4/inetmapi/mapiTextPart.cpp -=================================================================== ---- zarafa-7.1.4.orig/inetmapi/mapiTextPart.cpp -+++ zarafa-7.1.4/inetmapi/mapiTextPart.cpp -@@ -83,6 +83,7 @@ - - #include "vmime/emptyContentHandler.hpp" - #include "vmime/stringContentHandler.hpp" -+#include - - - namespace vmime -@@ -123,9 +124,9 @@ const mediaType mapiTextPart::getType() - } - - --int mapiTextPart::getPartCount() const -+size_t mapiTextPart::getPartCount() const - { -- int count = 0; -+ size_t count = 0; - if (!m_plainText->isEmpty()) - count++; - if (!m_text->isEmpty()) -@@ -224,7 +225,7 @@ void mapiTextPart::generateIn(ref p = vmime::create("method"); -- p->parse(m_otherMethod); -+ static_cast >(p)->parse(m_otherMethod); - otherPart->getHeader()->ContentType().dynamicCast()->appendParameter(p); - } - -Index: zarafa-7.1.4/inetmapi/mapiTextPart.h -=================================================================== ---- zarafa-7.1.4.orig/inetmapi/mapiTextPart.h -+++ zarafa-7.1.4/inetmapi/mapiTextPart.h -@@ -257,7 +257,7 @@ public: - */ - const string addObject(ref data, const encoding& enc, const mediaType& type, const string& id, const string& name = string(), const string& loc = string()); - -- int getPartCount() const; -+ size_t getPartCount() const; - - void generateIn(ref message, ref parent) const; - void parse(ref message, ref parent, ref textPart); -Index: zarafa-7.1.4/inetmapi/outputStreamMAPIAdapter.h -=================================================================== ---- zarafa-7.1.4.orig/inetmapi/outputStreamMAPIAdapter.h -+++ zarafa-7.1.4/inetmapi/outputStreamMAPIAdapter.h -@@ -51,7 +51,7 @@ - #define OUTPUT_STREAM_MAPI_ADAPTER_H - - #include "mapidefs.h" --#include -+#include - - class outputStreamMAPIAdapter : public vmime::utility::outputStream { - public: -Index: zarafa-7.1.4/inetmapi/vmime_helper.hpp -=================================================================== ---- /dev/null -+++ zarafa-7.1.4/inetmapi/vmime_helper.hpp -@@ -0,0 +1,8 @@ -+#ifndef vmime_helper_1 -+#define vmime_helper_1 -+ -+#include -+ -+extern std::string vmime_email_to_string(const vmime::emailAddress &); -+ -+#endif /* vmime_helper_1 */ diff --git a/zarafa-webaccess.conf b/zarafa-webaccess.conf index 5c87ea0..e2b702a 100644 --- a/zarafa-webaccess.conf +++ b/zarafa-webaccess.conf @@ -16,6 +16,7 @@ Alias /webaccess /usr/share/zarafa-webaccess/ Require all granted + # Apache 2.2 Order allow,deny Allow from all diff --git a/zarafa.spec b/zarafa.spec index 1f4c063..964dfc5 100644 --- a/zarafa.spec +++ b/zarafa.spec @@ -1,6 +1,6 @@ %global beta_or_rc 0 %global actual_release 1 -%global svnrevision 42059 +%global svnrevision 42779 %global with_search 1 %global with_ldap 1 %global with_xmlto 1 @@ -19,7 +19,7 @@ Summary: Open Source Edition of the Zarafa Collaboration Platform Name: zarafa -Version: 7.1.5 +Version: 7.1.7 %if %{beta_or_rc} Release: 0.%{actual_release}.svn%{svnrevision}%{?dist} %else @@ -45,7 +45,6 @@ Source3: %{name}-webaccess.conf Patch0: zarafa-7.0.9-rpath.patch Patch1: zarafa-7.0.8-va_list.patch Patch2: zarafa-7.1.4-swig20.patch -Patch3: zarafa-7.1.4-libvmime092.patch BuildRequires: bison BuildRequires: gcc-c++ @@ -53,7 +52,7 @@ BuildRequires: byacc BuildRequires: flex BuildRequires: gettext BuildRequires: libical-devel >= 0.42 -BuildRequires: libvmime-devel >= 0.9.0 +BuildRequires: libvmime-devel >= 0.9.0, libvmime(api) <= 20120406 BuildRequires: libxml2-devel BuildRequires: mysql-devel >= 4.1 BuildRequires: ncurses-devel @@ -68,9 +67,6 @@ BuildRequires: boost-devel >= 1.35.0 BuildRequires: boost141-devel %endif BuildRequires: swig -%if 0 -BuildRequires: %{_bindir}/xsubpp -%endif BuildRequires: python-devel >= 2.4 %if %{with_search} @@ -192,6 +188,7 @@ objects, provides a MAPI client library and a C++ programming interface. Summary: POP3/IMAP Gateway for the Zarafa Collaboration Platform Group: System Environment/Daemons Requires: zarafa-common = %{version}-%{release} +Requires: python-MAPI%{?_isa} = %{version}-%{release} Requires(post): /sbin/chkconfig Requires(preun): /sbin/service, /sbin/chkconfig Requires(postun): /sbin/service @@ -273,6 +270,7 @@ or can be setup with a separate list of users. Summary: Mail Spooler for the Zarafa Collaboration Platform Group: System Environment/Daemons Requires: zarafa-common = %{version}-%{release} +Requires: python-MAPI%{?_isa} = %{version}-%{release} Requires(post): /sbin/chkconfig Requires(preun): /sbin/service, /sbin/chkconfig Requires(postun): /sbin/service @@ -318,6 +316,7 @@ technology to give a more interactive feeling to the users. Summary: MAPI implementation and library by Zarafa Group: System Environment/Libraries Requires: zarafa-client%{?_isa} = %{version}-%{release} +Requires: libvmime(abi) <= 20120406 Requires(post): /sbin/ldconfig Requires(postun): /sbin/ldconfig @@ -365,7 +364,6 @@ to interact with Zarafa. touch -c -r aclocal.m4.rpath aclocal.m4 %patch1 -p1 -b .va_list %patch2 -p1 -b .swig20 -%patch3 -p1 -b .libvmime092 %build %if 0%{?rhel}%{?fedora} < 6 @@ -414,7 +412,7 @@ make \ # Nuke all overlefts from licensed, managed or other proprietary items 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,msr-verify,ldapms.cfg,licensed{,.cfg}},za-{acl{set,sync},restore}}.* +rm -f $RPM_BUILD_ROOT%{_mandir}/man?/{zarafa-{backup,restore,report,msr,msr-verify,ldapms.cfg,{licensed,ws}{,.cfg}},za-{acl{set,sync},restore}}.* # Move all the initscripts to their appropriate place and # ensure that all services are off by default at boot time @@ -517,6 +515,9 @@ mv -f $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/webaccess/config.php{.new,} rm -rf $RPM_BUILD_ROOT%{_datadir}/%{name}-webaccess/client/widgets/swfupload/ %endif +# Remove files only required by proprietary web services +rm -rf $RPM_BUILD_ROOT{%{_sysconfdir}/%{name}/ws.cfg,%{_datadir}/zarafa/timezones} + %find_lang %{name} %clean @@ -879,6 +880,11 @@ fi %{python_sitearch}/* %changelog +* Sun Dec 08 2013 Robert Scheck 7.1.7-1 +- Upgrade to 7.1.7 (#1008068) +- Added dependency from gateway and spooler to python-MAPI +- Added requirements to virtual libvmime ABI/API provides + * Mon Aug 05 2013 Robert Scheck 7.1.5-1 - Upgrade to 7.1.5 (#747241, #863498, #926039, #946900) - Added configuration compatibility for Apache 2.2 and 2.4 @@ -886,7 +892,7 @@ fi * Sun Aug 04 2013 Fedora Release Engineering - 7.1.4-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild -* Sat Jul 27 2013 pmachata@redhat.com - 7.1.4-2 +* Sat Jul 27 2013 Petr Machata - 7.1.4-2 - Rebuild for boost 1.54.0 * Sat May 25 2013 Rex Dieter 7.1.4-2