Hello community, here is the log from the commit of package libvmime for openSUSE:Factory checked in at 2016-11-14 20:13:16 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libvmime (Old) and /work/SRC/openSUSE:Factory/.libvmime.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libvmime" Changes: -------- --- /work/SRC/openSUSE:Factory/libvmime/libvmime.changes 2016-07-01 10:00:48.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.libvmime.new/libvmime.changes 2016-11-14 20:13:17.000000000 +0100 @@ -1,0 +2,8 @@ +Sun Oct 30 18:36:29 UTC 2016 - [email protected] + +- Update to new git snapshot + 047cacb1dba516ca902b36a290f2b81555658c1e [0.9.2~g500] +* Skip multiple (bogus) colons after header field name +- Add dont-fixup.diff + +------------------------------------------------------------------- Old: ---- vmime-0.9.2~g490.tar.xz New: ---- dont-fixup.diff vmime-0.9.2~g500.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libvmime.spec ++++++ --- /var/tmp/diff_new_pack.o5FhGo/_old 2016-11-14 20:13:18.000000000 +0100 +++ /var/tmp/diff_new_pack.o5FhGo/_new 2016-11-14 20:13:18.000000000 +0100 @@ -16,14 +16,14 @@ # -%define version_unconverted 0.9.2~g490 +%define version_unconverted 0.9.2~g500 Name: libvmime %define lname libvmime-suse3 Summary: Library for working with MIME messages and IMAP/POP/SMTP License: GPL-3.0+ Group: Development/Libraries/C and C++ -Version: 0.9.2~g490 +Version: 0.9.2~g500 Release: 0 Url: http://vmime.org/ @@ -31,6 +31,7 @@ Source: vmime-%version.tar.xz Patch1: libvmime-nodatetime.diff Patch2: libvmime-sotag.diff +Patch3: dont-fixup.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: ImageMagick %if 0%{?suse_version} < 1310 @@ -41,10 +42,11 @@ BuildRequires: gcc-c++ BuildRequires: inkscape BuildRequires: libgnutls-devel +%if 0%{?is_opensuse} BuildRequires: libgsasl-devel +%endif BuildRequires: libopenssl-devel BuildRequires: pkg-config -BuildRequires: postfix %if 0%{?suse_version} >= 1130 %define with_pdf 1 %if 0%{?suse_version} < 1300 @@ -99,7 +101,7 @@ %prep %setup -qn vmime-%version -%patch -P 1 -P 2 -p1 +%patch -P 1 -P 2 -P 3 -p1 %build %if 0%{?with_pdf} @@ -109,11 +111,12 @@ %endif cf="%optflags -DVMIME_ALWAYS_GENERATE_7BIT_PARAMETER=1" -# sendmail's awesome location. -export PATH="$PATH:/usr/sbin" cmake . \ + -DVMIME_SENDMAIL_PATH:STRING="%_sbindir/sendmail" \ -DVMIME_BUILD_SAMPLES:BOOL=OFF \ +%if 0%{?is_opensuse} -DVMIME_HAVE_SASL_SUPPORT:BOOL=ON \ +%endif -DVMIME_HAVE_TLS_SUPPORT:BOOL=ON \ -DVMIME_BUILD_STATIC_LIBRARY:BOOL=OFF \ -DCMAKE_RELEASE_TYPE:STRING="RelWithDebInfo" \ ++++++ dont-fixup.diff ++++++ References: https://github.com/kisli/vmime/issues/149 libkcinetmapi does a much better fixup on its own. --- src/vmime/text.cpp | 2 -- 1 file changed, 2 deletions(-) Index: vmime-0.9.2.g500/src/vmime/text.cpp =================================================================== --- vmime-0.9.2.g500.orig/src/vmime/text.cpp +++ vmime-0.9.2.g500/src/vmime/text.cpp @@ -401,8 +401,6 @@ text* text::decodeAndUnfold(const parsin out->removeAllWords(); std::vector <shared_ptr <word> > words = word::parseMultiple(ctx, in, 0, in.length(), NULL); - fixBrokenWords(words); - copy_vector(words, out->m_words); return (out); ++++++ vmime-0.9.2~g490.tar.xz -> vmime-0.9.2~g500.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vmime-0.9.2~g490/CMakeLists.txt new/vmime-0.9.2~g500/CMakeLists.txt --- old/vmime-0.9.2~g490/CMakeLists.txt 2016-06-22 17:37:52.000000000 +0200 +++ new/vmime-0.9.2~g500/CMakeLists.txt 2016-10-24 14:54:48.000000000 +0200 @@ -246,8 +246,8 @@ ENDIF() # Installation of header files -INSTALL_HEADERS_WITH_DIRECTORY(VMIME_LIBRARY_INCLUDE_FILES headers src/) -INSTALL_HEADERS_WITH_DIRECTORY(VMIME_LIBRARY_GENERATED_INCLUDE_FILES headers src/) +INSTALL_HEADERS_WITH_DIRECTORY(VMIME_LIBRARY_INCLUDE_FILES headers "${CMAKE_SOURCE_DIR}/src/") +INSTALL_HEADERS_WITH_DIRECTORY(VMIME_LIBRARY_GENERATED_INCLUDE_FILES headers "${CMAKE_BINARY_DIR}/src") #INSTALL( # FILES ${VMIME_LIBRARY_INCLUDE_FILES} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vmime-0.9.2~g490/cmake/Utils.cmake new/vmime-0.9.2~g500/cmake/Utils.cmake --- old/vmime-0.9.2~g490/cmake/Utils.cmake 2016-06-22 17:37:52.000000000 +0200 +++ new/vmime-0.9.2~g500/cmake/Utils.cmake 2016-10-24 14:54:48.000000000 +0200 @@ -5,7 +5,7 @@ FOREACH(HEADER ${${HEADER_LIST}}) STRING(REGEX MATCH "(.*)[/\\]" DIR ${HEADER}) - STRING(REPLACE "${CMAKE_SOURCE_DIR}/${REMOVE_PREFIX}" "" DIR ${DIR}) + STRING(REPLACE "${REMOVE_PREFIX}" "" DIR ${DIR}) INSTALL(FILES ${HEADER} DESTINATION include/${DIR} COMPONENT ${COMPONENT_NAME}) ENDFOREACH(HEADER) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vmime-0.9.2~g490/src/vmime/headerField.cpp new/vmime-0.9.2~g500/src/vmime/headerField.cpp --- old/vmime-0.9.2~g490/src/vmime/headerField.cpp 2016-06-22 17:37:52.000000000 +0200 +++ new/vmime-0.9.2~g500/src/vmime/headerField.cpp 2016-10-24 14:54:48.000000000 +0200 @@ -135,7 +135,8 @@ buffer.begin() + nameEnd); // Skip ':' character - ++pos; + while (pos < end && buffer[pos] == ':') + ++pos; // Skip spaces between ':' and the field contents while (pos < end && (buffer[pos] == ' ' || buffer[pos] == '\t')) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vmime-0.9.2~g490/src/vmime/net/imap/IMAPParser.hpp new/vmime-0.9.2~g500/src/vmime/net/imap/IMAPParser.hpp --- old/vmime-0.9.2~g490/src/vmime/net/imap/IMAPParser.hpp 2016-06-22 17:37:52.000000000 +0200 +++ new/vmime-0.9.2~g500/src/vmime/net/imap/IMAPParser.hpp 2016-10-24 14:54:48.000000000 +0200 @@ -762,7 +762,7 @@ size_t pos = *currentPos; VIMAP_PARSER_GET(uniqueid, m_uniqueid1); - VIMAP_PARSER_CHECK(one_char <','>); + VIMAP_PARSER_CHECK(one_char <':'>); VIMAP_PARSER_GET(uniqueid, m_uniqueid2); *currentPos = pos; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vmime-0.9.2~g490/src/vmime/net/tls/gnutls/TLSSocket_GnuTLS.cpp new/vmime-0.9.2~g500/src/vmime/net/tls/gnutls/TLSSocket_GnuTLS.cpp --- old/vmime-0.9.2~g490/src/vmime/net/tls/gnutls/TLSSocket_GnuTLS.cpp 2016-06-22 17:37:52.000000000 +0200 +++ new/vmime-0.9.2~g500/src/vmime/net/tls/gnutls/TLSSocket_GnuTLS.cpp 2016-10-24 14:54:48.000000000 +0200 @@ -71,11 +71,7 @@ TLSSocket_GnuTLS::~TLSSocket_GnuTLS() { - if (m_ex) - { - delete m_ex; - m_ex = NULL; - } + resetException(); try { @@ -194,12 +190,13 @@ { m_status &= ~(STATUS_WANT_WRITE | STATUS_WANT_READ); + resetException(); + const ssize_t ret = gnutls_record_recv (*m_session->m_gnutlsSession, buffer, static_cast <size_t>(count)); - if (m_ex) - internalThrow(); + throwException(); if (ret < 0) { @@ -226,12 +223,13 @@ for (size_t size = count ; size > 0 ; ) { + resetException(); + ssize_t ret = gnutls_record_send (*m_session->m_gnutlsSession, buffer, static_cast <size_t>(size)); - if (m_ex) - internalThrow(); + throwException(); if (ret < 0) { @@ -260,12 +258,13 @@ { m_status &= ~(STATUS_WANT_WRITE | STATUS_WANT_READ); + resetException(); + ssize_t ret = gnutls_record_send (*m_session->m_gnutlsSession, buffer, static_cast <size_t>(count)); - if (m_ex) - internalThrow(); + throwException(); if (ret < 0) { @@ -307,10 +306,11 @@ { while (true) { + resetException(); + const int ret = gnutls_handshake(*m_session->m_gnutlsSession); - if (m_ex) - internalThrow(); + throwException(); if (ret < 0) { @@ -498,38 +498,21 @@ // gnutls_record_recv() calls TLSSocket::gnutlsPullFunc, and exceptions // thrown by the socket can not be caught. -#ifndef VMIME_BUILDING_DOC - -class TLSSocket_DeleteExWrapper : public object +void TLSSocket_GnuTLS::throwException() { -public: - - TLSSocket_DeleteExWrapper(exception* ex) : m_ex(ex) { } - ~TLSSocket_DeleteExWrapper() { delete m_ex; } - -private: - - exception* m_ex; -}; - -#endif // VMIME_BUILDING_DOC + if (m_ex) + { + throw *m_ex; + } +} -void TLSSocket_GnuTLS::internalThrow() +void TLSSocket_GnuTLS::resetException() { - static std::vector <shared_ptr <TLSSocket_DeleteExWrapper> > exToDelete; - if (m_ex) { - // Reset the current exception pointer to prevent the same - // exception from being thrown again later - exception* ex = m_ex; + delete m_ex; m_ex = NULL; - - // To avoid memory leaks - exToDelete.push_back(make_shared <TLSSocket_DeleteExWrapper>(ex)); - - throw *ex; } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vmime-0.9.2~g490/src/vmime/net/tls/gnutls/TLSSocket_GnuTLS.hpp new/vmime-0.9.2~g500/src/vmime/net/tls/gnutls/TLSSocket_GnuTLS.hpp --- old/vmime-0.9.2~g490/src/vmime/net/tls/gnutls/TLSSocket_GnuTLS.hpp 2016-06-22 17:37:52.000000000 +0200 +++ new/vmime-0.9.2~g500/src/vmime/net/tls/gnutls/TLSSocket_GnuTLS.hpp 2016-10-24 14:54:48.000000000 +0200 @@ -88,7 +88,8 @@ private: - void internalThrow(); + void resetException(); + void throwException(); #ifdef LIBGNUTLS_VERSION static ssize_t gnutlsPushFunc(gnutls_transport_ptr_t trspt, const void* data, size_t len); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vmime-0.9.2~g490/src/vmime/platforms/posix/posixSocket.cpp new/vmime-0.9.2~g500/src/vmime/platforms/posix/posixSocket.cpp --- old/vmime-0.9.2~g490/src/vmime/platforms/posix/posixSocket.cpp 2016-06-22 17:37:52.000000000 +0200 +++ new/vmime-0.9.2~g500/src/vmime/platforms/posix/posixSocket.cpp 2016-10-24 14:54:48.000000000 +0200 @@ -435,7 +435,9 @@ { if (gaiError == EAI_SYSTEM) { - if (errno != 0) + const int ret = gai_error(&gaiRequest); + + if (ret != EAI_INPROGRESS && errno != 0) { try { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vmime-0.9.2~g490/src/vmime/security/cert/certificateException.cpp new/vmime-0.9.2~g500/src/vmime/security/cert/certificateException.cpp --- old/vmime-0.9.2~g490/src/vmime/security/cert/certificateException.cpp 2016-06-22 17:37:52.000000000 +0200 +++ new/vmime-0.9.2~g500/src/vmime/security/cert/certificateException.cpp 2016-10-24 14:54:48.000000000 +0200 @@ -70,6 +70,12 @@ } +shared_ptr <const certificate> certificateException::getCertificate() const +{ + return m_cert; +} + + } // cert } // security } // vmime diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vmime-0.9.2~g490/src/vmime/security/cert/certificateException.hpp new/vmime-0.9.2~g500/src/vmime/security/cert/certificateException.hpp --- old/vmime-0.9.2~g490/src/vmime/security/cert/certificateException.hpp 2016-06-22 17:37:52.000000000 +0200 +++ new/vmime-0.9.2~g500/src/vmime/security/cert/certificateException.hpp 2016-10-24 14:54:48.000000000 +0200 @@ -73,6 +73,12 @@ */ shared_ptr <certificate> getCertificate(); + /** Returns the certificate on which the problem occured. + * + * @return certificate + */ + shared_ptr <const certificate> getCertificate() const; + private: shared_ptr <certificate> m_cert;
