Package: release.debian.org Severity: normal User: release.debian....@packages.debian.org Usertags: unblock
Please unblock package evolution-data-server unblock evolution-data-server/3.12.7.1-2 This upload (now in unstable) fixes #765812 plus adds a couple more patches from git to resolve some network-related problems we've been observing. Finally, it switches the hardcoded arch list for libphonenumber to just exclude kfreebsd & hurd, which have not yet built that library. Thanks for considering. -- System Information: Debian Release: jessie/sid APT prefers unstable APT policy: (500, 'unstable'), (1, 'experimental') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 3.16-3-amd64 (SMP w/4 CPU cores) Locale: LANG=ca_ES.UTF-8, LC_CTYPE=ca_ES.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash
diff -Nru evolution-data-server-3.12.7.1/debian/changelog evolution-data-server-3.12.7.1/debian/changelog --- evolution-data-server-3.12.7.1/debian/changelog 2014-10-14 18:29:20.000000000 +0200 +++ evolution-data-server-3.12.7.1/debian/changelog 2014-11-06 21:10:23.000000000 +0100 @@ -1,3 +1,16 @@ +evolution-data-server (3.12.7.1-2) unstable; urgency=medium + + * Replace hardcoded list of libphonenumber architectures with just + [!kfreebsd-any !hurd-any], so arm64 can also get this support. + * Add sqlite3_xfetch_crash.patch: Add upstream fix for crashes with + new sqlite3 (closes: #765812). + * Add imapx_no_connect_when_offline.patch: avoid server connections while + in offline mode. + * Add imapx_reconnect_after_socket_io_timeout.patch: Fix connection + problems after network state changes. + + -- Jordi Mallach <jo...@debian.org> Thu, 06 Nov 2014 21:10:18 +0100 + evolution-data-server (3.12.7.1-1) unstable; urgency=medium * New upstream release 3.12.7.1 diff -Nru evolution-data-server-3.12.7.1/debian/control evolution-data-server-3.12.7.1/debian/control --- evolution-data-server-3.12.7.1/debian/control 2014-10-13 15:55:16.000000000 +0200 +++ evolution-data-server-3.12.7.1/debian/control 2014-11-06 20:35:30.000000000 +0100 @@ -40,7 +40,7 @@ libkrb5-dev, libldap2-dev, liboauth-dev (>= 0.9.4), - libphonenumber6-dev [amd64 armel armhf i386 mips mipsel powerpc ppc64el s390x alpha ppc64 x32], + libphonenumber6-dev [!kfreebsd-any !hurd-any], libjson-glib-dev, librest-dev (>= 0.7), libnss3-dev, diff -Nru evolution-data-server-3.12.7.1/debian/patches/imapx_no_connect_when_offline.patch evolution-data-server-3.12.7.1/debian/patches/imapx_no_connect_when_offline.patch --- evolution-data-server-3.12.7.1/debian/patches/imapx_no_connect_when_offline.patch 1970-01-01 01:00:00.000000000 +0100 +++ evolution-data-server-3.12.7.1/debian/patches/imapx_no_connect_when_offline.patch 2014-11-06 21:07:18.000000000 +0100 @@ -0,0 +1,37 @@ +From 65d1428b7be80ea0c934328b70be9001dc2e80eb Mon Sep 17 00:00:00 2001 +From: Milan Crha <mc...@redhat.com> +Date: Fri, 24 Oct 2014 13:54:32 +0200 +Subject: [IMAPx] Do not connect to the server in offline mode + +One cannot do remote operations when in offline mode, which may +include the server not being reachable. + +diff --git a/camel/providers/imapx/camel-imapx-store.c b/camel/providers/imapx/camel-imapx-store.c +index 947d7e8..642d21a 100644 +--- a/camel/providers/imapx/camel-imapx-store.c ++++ b/camel/providers/imapx/camel-imapx-store.c +@@ -2674,12 +2674,19 @@ camel_imapx_store_ref_server (CamelIMAPXStore *store, + GError **error) + { + CamelIMAPXServer *server = NULL; ++ CamelSession *session; + GError *local_error = NULL; + + g_return_val_if_fail (CAMEL_IS_IMAPX_STORE (store), NULL); + +- server = camel_imapx_conn_manager_get_connection ( +- store->priv->con_man, folder_name, for_expensive_job, cancellable, &local_error); ++ session = camel_service_ref_session (CAMEL_SERVICE (store)); ++ ++ if (camel_offline_store_get_online (CAMEL_OFFLINE_STORE (store)) && ++ camel_session_get_online (session)) ++ server = camel_imapx_conn_manager_get_connection ( ++ store->priv->con_man, folder_name, for_expensive_job, cancellable, &local_error); ++ ++ g_clear_object (&session); + + if (!server && (!local_error || local_error->domain == G_RESOLVER_ERROR)) { + if (!local_error) { +-- +cgit v0.10.1 + diff -Nru evolution-data-server-3.12.7.1/debian/patches/imapx_reconnect_after_socket_io_timeout.patch evolution-data-server-3.12.7.1/debian/patches/imapx_reconnect_after_socket_io_timeout.patch --- evolution-data-server-3.12.7.1/debian/patches/imapx_reconnect_after_socket_io_timeout.patch 1970-01-01 01:00:00.000000000 +0100 +++ evolution-data-server-3.12.7.1/debian/patches/imapx_reconnect_after_socket_io_timeout.patch 2014-11-06 21:07:41.000000000 +0100 @@ -0,0 +1,23 @@ +From 89d89f990e8705c7cb0b3534267026e8bfbd6b69 Mon Sep 17 00:00:00 2001 +From: Milan Crha <mc...@redhat.com> +Date: Mon, 3 Nov 2014 12:20:17 +0100 +Subject: [IMAPx] Try to reconnect after socket I/O timeout + + +diff --git a/camel/providers/imapx/camel-imapx-server.c b/camel/providers/imapx/camel-imapx-server.c +index 7241a9f..4bedc67 100644 +--- a/camel/providers/imapx/camel-imapx-server.c ++++ b/camel/providers/imapx/camel-imapx-server.c +@@ -7696,7 +7696,8 @@ imapx_ready_to_read (GInputStream *input_stream, + camel_imapx_debug (io, is->tagprefix, "Data read failed with error '%s'\n", local_error->message); + + /* Sadly, G_IO_ERROR_FAILED is also used for 'Connection reset by peer' error */ +- if (g_error_matches (local_error, G_IO_ERROR, G_IO_ERROR_FAILED)) { ++ if (g_error_matches (local_error, G_IO_ERROR, G_IO_ERROR_FAILED) || ++ g_error_matches (local_error, G_IO_ERROR, G_IO_ERROR_TIMED_OUT)) { + local_error->domain = CAMEL_IMAPX_SERVER_ERROR; + local_error->code = CAMEL_IMAPX_SERVER_ERROR_TRY_RECONNECT; + } +-- +cgit v0.10.1 + diff -Nru evolution-data-server-3.12.7.1/debian/patches/series evolution-data-server-3.12.7.1/debian/patches/series --- evolution-data-server-3.12.7.1/debian/patches/series 2014-09-15 11:06:33.000000000 +0200 +++ evolution-data-server-3.12.7.1/debian/patches/series 2014-11-06 21:06:22.000000000 +0100 @@ -1 +1,4 @@ 02_Only-export-symbols-starting-with-e.patch +imapx_no_connect_when_offline.patch +imapx_reconnect_after_socket_io_timeout.patch +sqlite3_xfetch_crash.patch diff -Nru evolution-data-server-3.12.7.1/debian/patches/sqlite3_xfetch_crash.patch evolution-data-server-3.12.7.1/debian/patches/sqlite3_xfetch_crash.patch --- evolution-data-server-3.12.7.1/debian/patches/sqlite3_xfetch_crash.patch 1970-01-01 01:00:00.000000000 +0100 +++ evolution-data-server-3.12.7.1/debian/patches/sqlite3_xfetch_crash.patch 2014-11-06 20:10:26.000000000 +0100 @@ -0,0 +1,133 @@ +From 6e5e4fd0d945cd40e0c61d8b9a62c14e5494f2d8 Mon Sep 17 00:00:00 2001 +From: Milan Crha <mc...@redhat.com> +Date: Thu, 23 Oct 2014 11:58:43 +0200 +Subject: Bug 738965 - [SQLite VFS] Crash due to missing xFetch definition + + +diff --git a/camel/camel-db.c b/camel/camel-db.c +index eba5590..cf0e71f 100644 +--- a/camel/camel-db.c ++++ b/camel/camel-db.c +@@ -194,6 +194,20 @@ camel_sqlite3_file_ ## _nm _params \ + return cFile->old_vfs_file->pMethods->_nm _call; \ + } + ++#define def_subclassed_void(_nm, _params, _call) \ ++static void \ ++camel_sqlite3_file_ ## _nm _params \ ++{ \ ++ CamelSqlite3File *cFile; \ ++ \ ++ g_return_if_fail (old_vfs != NULL); \ ++ g_return_if_fail (pFile != NULL); \ ++ \ ++ cFile = (CamelSqlite3File *) pFile; \ ++ g_return_if_fail (cFile->old_vfs_file->pMethods != NULL); \ ++ cFile->old_vfs_file->pMethods->_nm _call; \ ++} ++ + def_subclassed (xRead, (sqlite3_file *pFile, gpointer pBuf, gint iAmt, sqlite3_int64 iOfst), (cFile->old_vfs_file, pBuf, iAmt, iOfst)) + def_subclassed (xWrite, (sqlite3_file *pFile, gconstpointer pBuf, gint iAmt, sqlite3_int64 iOfst), (cFile->old_vfs_file, pBuf, iAmt, iOfst)) + def_subclassed (xTruncate, (sqlite3_file *pFile, sqlite3_int64 size), (cFile->old_vfs_file, size)) +@@ -203,6 +217,12 @@ def_subclassed (xUnlock, (sqlite3_file *pFile, gint lockType), (cFile->old_vfs_f + def_subclassed (xFileControl, (sqlite3_file *pFile, gint op, gpointer pArg), (cFile->old_vfs_file, op, pArg)) + def_subclassed (xSectorSize, (sqlite3_file *pFile), (cFile->old_vfs_file)) + def_subclassed (xDeviceCharacteristics, (sqlite3_file *pFile), (cFile->old_vfs_file)) ++def_subclassed (xShmMap, (sqlite3_file *pFile, gint iPg, gint pgsz, gint n, void volatile **arr), (cFile->old_vfs_file, iPg, pgsz, n, arr)) ++def_subclassed (xShmLock, (sqlite3_file *pFile, gint offset, gint n, gint flags), (cFile->old_vfs_file, offset, n, flags)) ++def_subclassed_void (xShmBarrier, (sqlite3_file *pFile), (cFile->old_vfs_file)) ++def_subclassed (xShmUnmap, (sqlite3_file *pFile, gint deleteFlag), (cFile->old_vfs_file, deleteFlag)) ++def_subclassed (xFetch, (sqlite3_file *pFile, sqlite3_int64 iOfst, int iAmt, void **pp), (cFile->old_vfs_file, iOfst, iAmt, pp)) ++def_subclassed (xUnfetch, (sqlite3_file *pFile, sqlite3_int64 iOfst, void *p), (cFile->old_vfs_file, iOfst, p)) + + #undef def_subclassed + +@@ -351,6 +371,23 @@ camel_sqlite3_vfs_xOpen (sqlite3_vfs *pVfs, + use_subclassed (xFileControl); + use_subclassed (xSectorSize); + use_subclassed (xDeviceCharacteristics); ++ ++ if (io_methods.iVersion > 1) { ++ use_subclassed (xShmMap); ++ use_subclassed (xShmLock); ++ use_subclassed (xShmBarrier); ++ use_subclassed (xShmUnmap); ++ } ++ ++ if (io_methods.iVersion > 2) { ++ use_subclassed (xFetch); ++ use_subclassed (xUnfetch); ++ } ++ ++ if (io_methods.iVersion > 3) { ++ g_warning ("%s: Unchecked IOMethods version %d, downgrading to version 3", G_STRFUNC, io_methods.iVersion); ++ io_methods.iVersion = 3; ++ } + #undef use_subclassed + } + +diff --git a/libebackend/e-sqlite3-vfs.c b/libebackend/e-sqlite3-vfs.c +index 9b09534..cf49682 100644 +--- a/libebackend/e-sqlite3-vfs.c ++++ b/libebackend/e-sqlite3-vfs.c +@@ -152,6 +152,19 @@ e_sqlite3_file_ ## _nm _params \ + g_return_val_if_fail (cFile->old_vfs_file->pMethods != NULL, SQLITE_ERROR); \ + return cFile->old_vfs_file->pMethods->_nm _call; \ + } ++#define def_subclassed_void(_nm, _params, _call) \ ++static void \ ++e_sqlite3_file_ ## _nm _params \ ++{ \ ++ ESqlite3File *cFile; \ ++ \ ++ g_return_if_fail (old_vfs != NULL); \ ++ g_return_if_fail (pFile != NULL); \ ++ \ ++ cFile = (ESqlite3File *) pFile; \ ++ g_return_if_fail (cFile->old_vfs_file->pMethods != NULL); \ ++ cFile->old_vfs_file->pMethods->_nm _call; \ ++} + + def_subclassed (xRead, (sqlite3_file *pFile, gpointer pBuf, gint iAmt, sqlite3_int64 iOfst), (cFile->old_vfs_file, pBuf, iAmt, iOfst)) + def_subclassed (xWrite, (sqlite3_file *pFile, gconstpointer pBuf, gint iAmt, sqlite3_int64 iOfst), (cFile->old_vfs_file, pBuf, iAmt, iOfst)) +@@ -162,6 +175,12 @@ def_subclassed (xUnlock, (sqlite3_file *pFile, gint lockType), (cFile->old_vfs_f + def_subclassed (xFileControl, (sqlite3_file *pFile, gint op, gpointer pArg), (cFile->old_vfs_file, op, pArg)) + def_subclassed (xSectorSize, (sqlite3_file *pFile), (cFile->old_vfs_file)) + def_subclassed (xDeviceCharacteristics, (sqlite3_file *pFile), (cFile->old_vfs_file)) ++def_subclassed (xShmMap, (sqlite3_file *pFile, gint iPg, gint pgsz, gint n, void volatile **arr), (cFile->old_vfs_file, iPg, pgsz, n, arr)) ++def_subclassed (xShmLock, (sqlite3_file *pFile, gint offset, gint n, gint flags), (cFile->old_vfs_file, offset, n, flags)) ++def_subclassed_void (xShmBarrier, (sqlite3_file *pFile), (cFile->old_vfs_file)) ++def_subclassed (xShmUnmap, (sqlite3_file *pFile, gint deleteFlag), (cFile->old_vfs_file, deleteFlag)) ++def_subclassed (xFetch, (sqlite3_file *pFile, sqlite3_int64 iOfst, gint iAmt, void **pp), (cFile->old_vfs_file, iOfst, iAmt, pp)) ++def_subclassed (xUnfetch, (sqlite3_file *pFile, sqlite3_int64 iOfst, void *p), (cFile->old_vfs_file, iOfst, p)) + + #undef def_subclassed + +@@ -306,6 +325,24 @@ e_sqlite3_vfs_xOpen (sqlite3_vfs *pVfs, + use_subclassed (xFileControl); + use_subclassed (xSectorSize); + use_subclassed (xDeviceCharacteristics); ++ ++ if (io_methods.iVersion > 1) { ++ use_subclassed (xShmMap); ++ use_subclassed (xShmLock); ++ use_subclassed (xShmBarrier); ++ use_subclassed (xShmUnmap); ++ } ++ ++ if (io_methods.iVersion > 2) { ++ use_subclassed (xFetch); ++ use_subclassed (xUnfetch); ++ } ++ ++ if (io_methods.iVersion > 3) { ++ g_warning ("%s: Unchecked IOMethods version %d, downgrading to version 3", G_STRFUNC, io_methods.iVersion); ++ io_methods.iVersion = 3; ++ } ++ + #undef use_subclassed + } + +-- +cgit v0.10.1 + diff -Nru evolution-data-server-3.12.7.1/debian/rules evolution-data-server-3.12.7.1/debian/rules --- evolution-data-server-3.12.7.1/debian/rules 2014-10-04 11:40:51.000000000 +0200 +++ evolution-data-server-3.12.7.1/debian/rules 2014-11-06 20:09:14.000000000 +0100 @@ -25,7 +25,7 @@ export DEB_BUILD_MAINT_OPTIONS=hardening=+all include /usr/share/dpkg/buildflags.mk -ifneq (,$(findstring $(DEB_HOST_ARCH),amd64 armel armhf i386 mips mipsel powerpc ppc64el s390x alpha ppc64 x32)) +ifeq (,$(findstring $(DEB_HOST_ARCH_OS),kfreebsd hurd)) DEB_CONFIGURE_EXTRA_FLAGS += --with-phonenumber=/usr endif