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 - jengelh@inai.de
+
+- 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 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 (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));
- 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 (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 > 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 (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;