Hello community,

here is the log from the commit of package kopano for openSUSE:Factory checked 
in at 2018-09-03 10:36:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kopano (Old)
 and      /work/SRC/openSUSE:Factory/.kopano.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kopano"

Mon Sep  3 10:36:28 2018 rev:16 rq:632741 version:8.6.7.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/kopano/kopano.changes    2018-08-07 
09:43:40.525372392 +0200
+++ /work/SRC/openSUSE:Factory/.kopano.new/kopano.changes       2018-09-03 
10:36:31.736890537 +0200
@@ -1,0 +2,15 @@
+Sun Aug 26 11:18:40 UTC 2018 - [email protected]
+
+- Update to new snapshot 8.6.7.2
+  * Fixes:
+  * gateway, spooler: (re-)activate RFC 2047 header generation
+    (Outlook is still unable to read the RFC 2231 headers that
+    are generated normally) [KC-1226]
+  * srvadm: make --purge-softdelete=0 work
+  * Enhancements:
+  * dagent: advertise 8BITMIME/RFC6152 support [KS-41452]
+  * dagent/client: fixed broken umlauts in PR_EC_BODY_FILTERED
+    when input was not UTF-8 [KC-1225]
+
+
+-------------------------------------------------------------------

Old:
----
  kopanocore-8.6.6.1.tar.xz

New:
----
  kopanocore-8.6.7.2.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ kopano.spec ++++++
--- /var/tmp/diff_new_pack.lUTEry/_old  2018-09-03 10:36:32.900893548 +0200
+++ /var/tmp/diff_new_pack.lUTEry/_new  2018-09-03 10:36:32.900893548 +0200
@@ -17,10 +17,10 @@
 #
 
 
-%define version_unconverted 8.6.6.1
+%define version_unconverted 8.6.7.2
 
 Name:           kopano
-Version:        8.6.6.1
+Version:        8.6.7.2
 Release:        0
 Summary:        Groupware server suite
 License:        AGPL-3.0-only

++++++ PKGBUILD ++++++
--- /var/tmp/diff_new_pack.lUTEry/_old  2018-09-03 10:36:32.928893620 +0200
+++ /var/tmp/diff_new_pack.lUTEry/_new  2018-09-03 10:36:32.932893631 +0200
@@ -1,5 +1,5 @@
 pkgname=kopano
-pkgver=8.6.6.1
+pkgver=8.6.7.2
 pkgrel=0
 pkgdesc='Kopano'
 arch=('x86_64')

++++++ _service ++++++
--- /var/tmp/diff_new_pack.lUTEry/_old  2018-09-03 10:36:32.944893662 +0200
+++ /var/tmp/diff_new_pack.lUTEry/_new  2018-09-03 10:36:32.944893662 +0200
@@ -3,8 +3,8 @@
                <param name="scm">git</param>
                <param 
name="url">https://stash.kopano.io/scm/kc/kopanocore.git</param>
                <param name="revision">kc-8.6.x</param>
-               <param name="parent-tag">kopanocore-8.6.6</param>
-               <param name="versionformat">8.6.6.@TAG_OFFSET@</param>
+               <param name="parent-tag">kopanocore-8.6.7</param>
+               <param name="versionformat">8.6.7.@TAG_OFFSET@</param>
 
                <!-- Regex used to rewrite the version which is applied after
                     versionformat [kopanocore-8.5.80] and after the implicit

++++++ debian.changelog ++++++
--- /var/tmp/diff_new_pack.lUTEry/_old  2018-09-03 10:36:32.960893703 +0200
+++ /var/tmp/diff_new_pack.lUTEry/_new  2018-09-03 10:36:32.960893703 +0200
@@ -1,4 +1,4 @@
-kopano (8.6.6.1-0) unstable; urgency=low
+kopano (8.6.7.2-0) unstable; urgency=low
 
   * Current release.
 

++++++ kopano.dsc ++++++
--- /var/tmp/diff_new_pack.lUTEry/_old  2018-09-03 10:36:33.616895400 +0200
+++ /var/tmp/diff_new_pack.lUTEry/_new  2018-09-03 10:36:33.616895400 +0200
@@ -1,7 +1,7 @@
 Format: 1.0
 Source: kopano
 Architecture: any all
-Version: 8.6.6.1-0
+Version: 8.6.7.2-0
 DEBTRANSFORM-RELEASE: 1
 Maintainer: Kopano Development <[email protected]>
 Homepage: https://kopano.com

++++++ kopanocore-8.6.6.1.tar.xz -> kopanocore-8.6.7.2.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kopanocore-8.6.6.1/ECtools/srvadm.cpp 
new/kopanocore-8.6.7.2/ECtools/srvadm.cpp
--- old/kopanocore-8.6.6.1/ECtools/srvadm.cpp   2018-08-03 09:36:26.000000000 
+0200
+++ new/kopanocore-8.6.7.2/ECtools/srvadm.cpp   2018-08-17 10:11:59.000000000 
+0200
@@ -29,7 +29,7 @@
 #include <kopano/stringutil.h>
 
 using namespace KC;
-static int opt_purge_deferred, opt_purge_softdelete;
+static int opt_purge_deferred, opt_purge_softdelete = -1;
 static unsigned int opt_cache_bits;
 static const char *opt_config_file, *opt_host, *opt_clear_cache;
 static std::unique_ptr<ECConfig> adm_config;
@@ -114,7 +114,7 @@
                return adm_clear_cache(srvctx.m_svcadm);
        if (opt_purge_deferred)
                return adm_purge_deferred(srvctx.m_svcadm);
-       if (opt_purge_softdelete)
+       if (opt_purge_softdelete >= 0)
                return adm_purge_softdelete(srvctx.m_svcadm);
        return MAPI_E_CALL_FAILED;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kopanocore-8.6.6.1/RELNOTES.txt 
new/kopanocore-8.6.7.2/RELNOTES.txt
--- old/kopanocore-8.6.6.1/RELNOTES.txt 2018-08-03 09:36:26.000000000 +0200
+++ new/kopanocore-8.6.7.2/RELNOTES.txt 2018-08-17 10:11:59.000000000 +0200
@@ -1,3 +1,25 @@
+8.6.x
+=====
+Fixes:
+* dagent/client: fixed broken umlauts in PR_EC_BODY_FILTERED
+  when input was not UTF-8 [KC-1225]
+
+
+8.6.7 (2018-08-14)
+==================
+Fixes:
+* gateway, spooler: (re-)activate RFC 2047 header generation
+  (Outlook is still unable to read the RFC 2231 headers that
+  are generated normally) [KC-1226]
+* srvadm: make --purge-softdelete=0 work
+Enhancements:
+* dagent: advertise 8BITMIME/RFC6152 support [KS-41452]
+Changes:
+* PHP function mapi_icaltomapi now returns MAPI_E_TABLE_EMPTY
+  rather than MAPI_E_INVALID_PARAMETER when the .ics file has no (usable)
+  appointments. [KC-1227]
+
+
 8.6.6 (2018-07-31)
 ==================
 Fixes:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kopanocore-8.6.6.1/common/database.cpp 
new/kopanocore-8.6.7.2/common/database.cpp
--- old/kopanocore-8.6.6.1/common/database.cpp  2018-08-03 09:36:26.000000000 
+0200
+++ new/kopanocore-8.6.7.2/common/database.cpp  2018-08-17 10:11:59.000000000 
+0200
@@ -458,7 +458,7 @@
                return KCERR_DATABASE_ERROR;
        }
        m_bMysqlInitialize = true;
-       my_bool value = reconnect;
+       char value = reconnect;
        mysql_options(&m_lpMySQL, MYSQL_OPT_RECONNECT, &value);
        return erSuccess;
 }
@@ -509,7 +509,7 @@
        /* Callers without reconnect will emit different messages. */
        auto ers = mysql_error(&m_lpMySQL);
 #ifdef HAVE_MYSQL_GET_OPTION
-       my_bool reconn = false;
+       char reconn = false;
        if (mysql_get_option(&m_lpMySQL, MYSQL_OPT_RECONNECT, &reconn) == 0 && 
reconn)
 #else
        if (m_lpMySQL.reconnect)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kopanocore-8.6.6.1/configure.ac 
new/kopanocore-8.6.7.2/configure.ac
--- old/kopanocore-8.6.6.1/configure.ac 2018-08-03 09:36:26.000000000 +0200
+++ new/kopanocore-8.6.7.2/configure.ac 2018-08-17 10:11:59.000000000 +0200
@@ -1,5 +1,5 @@
 AC_PREREQ(2.60)
-AC_INIT([kopano], [8.6.6], [[email protected]])
+AC_INIT([kopano], [8.6.7], [[email protected]])
 
 dnl ABI tags are used to prevent inadvertent mixing of wildly different
 dnl versions of KC components without knowing it.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kopanocore-8.6.6.1/inetmapi/VMIMEToMAPI.cpp 
new/kopanocore-8.6.7.2/inetmapi/VMIMEToMAPI.cpp
--- old/kopanocore-8.6.6.1/inetmapi/VMIMEToMAPI.cpp     2018-08-03 
09:36:26.000000000 +0200
+++ new/kopanocore-8.6.7.2/inetmapi/VMIMEToMAPI.cpp     2018-08-17 
10:11:59.000000000 +0200
@@ -2380,7 +2380,8 @@
                }
                /*
                 * PR_HTML is a PT_BINARY, and can handle 0x00 bytes
-                * (e.g. in case of UTF-16 encoding).
+                * (e.g. in case of UTF-32 encoding).
+                * PR_BODY_HTML could only carry UTF-16 reliably.
                 */
 
                // write codepage for PR_HTML property
@@ -2389,6 +2390,11 @@
                        sCodepage.Value.ul = 65001;
                        strHTML = m_converter.convert_to<std::string>("UTF-8", 
strHTML, rawsize(strHTML), cs_cand[cs_best].c_str());
                        ec_log_info("No Win32 CPID for \"%s\" - upgrading 
text/html MIME body to UTF-8", cs_cand[cs_best].c_str());
+               } else if (m_dopt.html_safety_filter) {
+                       sCodepage.Value.ul = 65001;
+                       strHTML = m_converter.convert_to<std::string>("UTF-8", 
strHTML, rawsize(strHTML), cs_cand[cs_best].c_str());
+                       /* libtidy only knows a very limited subset */
+                       ec_log_debug("Upgrading HTML to UTF-8 because of 
libtidy");
                }
 
                if (bAppendBody && m_mailState.bodyLevel == BODY_HTML && 
m_mailState.ulLastCP && sCodepage.Value.ul != m_mailState.ulLastCP) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kopanocore-8.6.6.1/inetmapi/inetmapi.cpp 
new/kopanocore-8.6.7.2/inetmapi/inetmapi.cpp
--- old/kopanocore-8.6.6.1/inetmapi/inetmapi.cpp        2018-08-03 
09:36:26.000000000 +0200
+++ new/kopanocore-8.6.7.2/inetmapi/inetmapi.cpp        2018-08-17 
10:11:59.000000000 +0200
@@ -77,6 +77,8 @@
                return;
 
        vmime::generationContext::getDefaultContext().setWrapMessageId(false);
+       /* Sucky Outlook _still_ does not know RFC 2231. */
+       
vmime::generationContext::getDefaultContext().setEncodedParameterValueMode(vmime::generationContext::EncodedParameterValueModes::PARAMETER_VALUE_RFC2231_AND_RFC2047);
        // need to have a unique indentifier in the mediaType
        
vmime::textPartFactory::getInstance()->registerType<vmime::mapiTextPart>(vmime::mediaType(vmime::mediaTypes::TEXT,
 "mapi"));
        // init our random engine for random message id generation
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kopanocore-8.6.6.1/librosie/librosie.cpp 
new/kopanocore-8.6.7.2/librosie/librosie.cpp
--- old/kopanocore-8.6.6.1/librosie/librosie.cpp        2018-08-03 
09:36:26.000000000 +0200
+++ new/kopanocore-8.6.7.2/librosie/librosie.cpp        2018-08-17 
10:11:59.000000000 +0200
@@ -121,6 +121,10 @@
        return rosie_strip_nodes(tdoc, tidyGetRoot(tdoc));
 }
 
+/*
+ * @in:                Input HTML, which must be encoded as UTF-8. (<meta> is 
ignored.)
+ * @output:    Output HTML, also UTF-8.
+ */
 bool rosie_clean_html(const std::string &in, std::string *const out,
     std::vector<std::string> *const errors)
 {
@@ -144,6 +148,7 @@
        tidyOptSetBool(tdoc, TidyHideComments, yes); /* they don't help */
        tidyOptSetBool(tdoc, TidyReplaceColor, yes);
        tidyOptSetBool(tdoc, TidyPreserveEntities, yes);
+       tidySetCharEncoding(tdoc, "utf8");
 
        rc = tidySetErrorBuffer(tdoc, &errbuf); /* capture diagnostics */
        if (rc != 0 && errors != NULL)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kopanocore-8.6.6.1/m4lcommon/CommonUtil.cpp 
new/kopanocore-8.6.7.2/m4lcommon/CommonUtil.cpp
--- old/kopanocore-8.6.6.1/m4lcommon/CommonUtil.cpp     2018-08-03 
09:36:26.000000000 +0200
+++ new/kopanocore-8.6.7.2/m4lcommon/CommonUtil.cpp     2018-08-17 
10:11:59.000000000 +0200
@@ -2381,7 +2381,7 @@
                return kc_perror("MAPIInitialize", ret);
        if (user == nullptr)
                user = pass = KOPANO_SYSTEM_USER;
-       ret = HrOpenECSession(&~m_session, "storeadm", PROJECT_VERSION,
+       ret = HrOpenECSession(&~m_session, m_app_misc, PROJECT_VERSION,
              user, pass, m_host, m_ses_flags, m_ssl_keyfile, m_ssl_keypass);
        if (ret != hrSuccess)
                return kc_perror("OpenECSession", ret);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kopanocore-8.6.6.1/php-ext/main.cpp 
new/kopanocore-8.6.7.2/php-ext/main.cpp
--- old/kopanocore-8.6.6.1/php-ext/main.cpp     2018-08-03 09:36:26.000000000 
+0200
+++ new/kopanocore-8.6.7.2/php-ext/main.cpp     2018-08-17 10:11:59.000000000 
+0200
@@ -7009,6 +7009,10 @@
        MAPI_G(hr) = lpIcalToMapi->ParseICal(icalMsg, "utf-8", "UTC", mailuser, 
0);
        if (MAPI_G(hr) != hrSuccess)
                goto exit;
+       if (lpIcalToMapi->GetItemCount() == 0) {
+               MAPI_G(hr) = MAPI_E_TABLE_EMPTY;
+               goto exit;
+       }
        MAPI_G(hr) = lpIcalToMapi->GetItem(0, 0, lpMessage);
        if (MAPI_G(hr) != hrSuccess)
                goto exit;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kopanocore-8.6.6.1/php7-ext/main.cpp 
new/kopanocore-8.6.7.2/php7-ext/main.cpp
--- old/kopanocore-8.6.6.1/php7-ext/main.cpp    2018-08-03 09:36:26.000000000 
+0200
+++ new/kopanocore-8.6.7.2/php7-ext/main.cpp    2018-08-17 10:11:59.000000000 
+0200
@@ -7047,6 +7047,15 @@
        MAPI_G(hr) = lpIcalToMapi->ParseICal(icalMsg, "utf-8", "UTC", mailuser, 
0);
        if (MAPI_G(hr) != hrSuccess)
                goto exit;
+       if (lpIcalToMapi->GetItemCount() == 0) {
+               /*
+                * Since there are 0 appointments in the message, GetItem(0)
+                * would fail with MAPI_E_INVALID_PARAMETER. Try giving
+                * something more appropriate.
+                */
+               MAPI_G(hr) = MAPI_E_TABLE_EMPTY;
+               goto exit;
+       }
        MAPI_G(hr) = lpIcalToMapi->GetItem(0, 0, lpMessage);
        if (MAPI_G(hr) != hrSuccess)
                goto exit;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kopanocore-8.6.6.1/provider/client/ECMessage.cpp 
new/kopanocore-8.6.7.2/provider/client/ECMessage.cpp
--- old/kopanocore-8.6.6.1/provider/client/ECMessage.cpp        2018-08-03 
09:36:26.000000000 +0200
+++ new/kopanocore-8.6.7.2/provider/client/ECMessage.cpp        2018-08-17 
10:11:59.000000000 +0200
@@ -2093,9 +2093,13 @@
                hr = lpMessage->HrGetRealProp(PR_EC_BODY_FILTERED, ulFlags, 
lpBase, lpsPropValue);
                if (hr == hrSuccess) // yes, then use that
                        break;
+               const char *codepage;
+               hr = lpMessage->HrGetRealProp(PR_INTERNET_CPID, ulFlags, 
lpBase, lpsPropValue);
+               if (hr != hrSuccess || HrGetCharsetByCP(lpsPropValue->Value.ul, 
&codepage) != hrSuccess)
+                       codepage = "iso-8859-15"; /* [MS-OXCMAIL] ยง2.1.3.3.1 */
 
                lpsPropValue->ulPropTag = PR_EC_BODY_FILTERED;
-               // else generate it on the fly
+               /* generate it on the fly */
                memory_ptr<SPropValue> tprop;
                hr = MAPIAllocateBuffer(sizeof(SPropValue), &~tprop);
                if (hr != hrSuccess)
@@ -2106,14 +2110,13 @@
                        break;
                }
 
-               std::string fltblk, memblk(reinterpret_cast<const char 
*>(tprop->Value.bin.lpb), tprop->Value.bin.cb);
-               std::copy_if(memblk.cbegin(), memblk.cend(), 
std::back_inserter(fltblk), [](char x) { return x != '\0'; });
-               std::string result;
+               std::string result, fltblk = convert_to<std::string>("UTF-8", 
reinterpret_cast<const char *>(tprop->Value.bin.lpb), tprop->Value.bin.cb, 
codepage);
                std::vector<std::string> errors;
                bool rc = rosie_clean_html(fltblk, &result, &errors);
 
                // FIXME emit error somewhere somehow
                if (rc) {
+                       result = convert_to<std::string>((codepage + 
std::string("//IGNORE")).c_str(), result.c_str(), result.size(), "UTF-8");
                        ULONG ulSize = result.size();
 
                        hr = ECAllocateMore(ulSize + 1, lpBase, 
reinterpret_cast<void **>(&lpsPropValue->Value.bin.lpb));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kopanocore-8.6.6.1/spooler/DAgent.cpp 
new/kopanocore-8.6.7.2/spooler/DAgent.cpp
--- old/kopanocore-8.6.6.1/spooler/DAgent.cpp   2018-08-03 09:36:26.000000000 
+0200
+++ new/kopanocore-8.6.7.2/spooler/DAgent.cpp   2018-08-17 10:11:59.000000000 
+0200
@@ -2831,6 +2831,7 @@
                        if (lmtp.HrCommandLHLO(inBuffer, heloName) == 
hrSuccess) {
                                lmtp.HrResponse("250-SERVER ready"); 
                                lmtp.HrResponse("250-PIPELINING");
+                               lmtp.HrResponse("250-8BITMIME");
                                lmtp.HrResponse("250-ENHANCEDSTATUSCODE");
                                lmtp.HrResponse("250 RSET");
                        } else {


Reply via email to