On Wed, 2010-09-22 at 15:10 +0100, Anas Nashif wrote: > On 2010-09-22, at 12:18 PM, Srinivasa Ragavan wrote: > > > Hi, > > I have made the following changes to evolution-data-server in project > > Trunk:Testing. Please review and accept ASAP. > > > > Thank You, > > Srinivasa Ragavan > > > > [This message was auto-generated] > > > > --- > > > > Request #7682: > > > > submit: > > home:srini:branches:Trunk:Testing/evolution-data-server(r2)(cleanup) -> > > Trunk:Testing/evolution-data-server > > > > > > Message: > > * Wed Sep 22 2010 Srinivasa Ragavan <[email protected]> - 2.30.2 > > - Update missing patches from Meego:1.0:Core. Fixes bmc #7055 > > * Thu Sep 2 2010 Hao Li <[email protected]> - 2.30.2 > > - Update simplified chinese translation in contacts/categories to fix BMC > > #2330 > > * Tue Aug 17 2010 Federico Mena-Quintero <[email protected]> - 2.30.2 > > - Enable evolution-data-server-bmo182-camel-socks-proxy.patch > > - Add evolution-data-server-bmo182-camel-socks5.patch to support > > SOCKS5 and IPv6 properly. > > * Wed Jul 04 2010 Peter Zhu <[email protected]> - 2.30.2 > > - Disable socks patch to fix BMC #3667 > > * Wed Jun 30 2010 Michael Meeks <[email protected]> - 2.30.2 > > - Fix BMC#182 - add SOCKS proxy support (to camel) > > * Tue Jun 29 2010 Michael Meeks <[email protected]> - 2.30.2 > > - Fix BMC #1510 - use system NSS cache by updating to newer snapshot > > of the stable branch fixing many other known bugs. > > - drop two patches already present there. > > - ensure that we keep the soname we originally shipped with. > > * Thu Jun 10 2010 Srinivasa Ragavan <[email protected]> - 2.30.1 > > - Fix BMC #1846 - Updated an existing patch. > > * Mon May 10 2010 Michael Meeks <[email protected]> - 2.30.1 > > - fix name selection sizing & layout to fit screen, bmc#1703 > > > > State: new 2010-09-22T04:18:50 srini > > Comment: None > > > > > > > > changes files: > > -------------- > > --- evolution-data-server.changes > > +++ evolution-data-server.changes > > @@ -0,0 +1,29 @@ > > +* Wed Sep 22 2010 Srinivasa Ragavan <[email protected]> - 2.30.2 > > +- Update missing patches from Meego:1.0:Core. Fixes bmc #7055 > > + > > +* Thu Sep 2 2010 Hao Li <[email protected]> - 2.30.2 > > +- Update simplified chinese translation in contacts/categories to fix BMC > > #2330 > > + > > +* Tue Aug 17 2010 Federico Mena-Quintero <[email protected]> - 2.30.2 > > +- Enable evolution-data-server-bmo182-camel-socks-proxy.patch > > +- Add evolution-data-server-bmo182-camel-socks5.patch to support > > + SOCKS5 and IPv6 properly. > > + > > +* Wed Jul 04 2010 Peter Zhu <[email protected]> - 2.30.2 > > +- Disable socks patch to fix BMC #3667 > > + > > +* Wed Jun 30 2010 Michael Meeks <[email protected]> - 2.30.2 > > +- Fix BMC#182 - add SOCKS proxy support (to camel) > > + > > +* Tue Jun 29 2010 Michael Meeks <[email protected]> - 2.30.2 > > +- Fix BMC #1510 - use system NSS cache by updating to newer snapshot > > + of the stable branch fixing many other known bugs. > > +- drop two patches already present there. > > +- ensure that we keep the soname we originally shipped with. > > + > > +* Thu Jun 10 2010 Srinivasa Ragavan <[email protected]> - 2.30.1 > > +- Fix BMC #1846 - Updated an existing patch. > > + > > +* Mon May 10 2010 Michael Meeks <[email protected]> - 2.30.1 > > +- fix name selection sizing & layout to fit screen, bmc#1703 > > + > > > > old: > > ---- > > evolution-data-server-2.30.1~20100421.tar.bz2 > > > > new: > > ---- > > eds-soname-retain.patch > > evolution-data-server-2.30.2~20100629.tar.bz2 > > evolution-data-server-bmo182-camel-socks-proxy.patch > > evolution-data-server-bmo182-camel-socks5.patch > > evolution-data-server-contacts-bug-2330.patch > > > > spec files: > > ----------- > > --- evolution-data-server.spec > > +++ evolution-data-server.spec > > @@ -13,10 +13,10 @@ > > %define eds_extensions_dir > > %{_libdir}/evolution-data-server-%{eds_api_version}/extensions > > > > Name: evolution-data-server > > -Version: 2.30.1~20100421 > > +Version: 2.30.2~20100629 > > Release: 1 > > License: LGPLv2 > > -Group: System/Libraries > > +Group: System Environment/Libraries > > Thats is wrong, please resubmit.
Done. ID 7691. -Srini > > > > Summary: Backend data server for Evolution > > URL: http://git.gnome.org/cgit/evolution-data-server > > BuildRoot: %{_tmppath}/%{name}-%{version}-root > > @@ -53,8 +53,11 @@ > > > > # Moblin specific patches > > Patch1: no-module-logging.patch > > -Patch2: use-nss-system-db.patch > > +Patch2: eds-soname-retain.patch > > Patch3: BUGFIX-GNOME-Bug-593882-Ghost-mails-seen-in-Anjal-v3.patch > > +Patch4: evolution-data-server-bmo182-camel-socks-proxy.patch > > +Patch5: evolution-data-server-bmo182-camel-socks5.patch > > +Patch6: evolution-data-server-contacts-bug-2330.patch > > > > %description > > The %{name} package provides a unified backend for programs > > @@ -77,8 +80,11 @@ > > %setup -q > > > > %patch1 -p1 -b .no-module-logging > > -%patch2 -p1 -b .system-nss > > +%patch2 -p1 -b .eds-soname-retain > > %patch3 -p1 -b .ghost-mails > > +%patch4 -p1 -b .evolution-data-server-bmo182-camel-socks-proxy > > +%patch5 -p1 -b .evolution-data-server-bmo182-camel-socks5 > > +%patch6 -p1 -b .evolution-data-server-contacts-bug-2330 > > %build > > > > %if %{ldap_support} > > > > other changes: > > -------------- > > > > ++++++ eds-soname-retain.patch (new) > > --- eds-soname-retain.patch > > +++ eds-soname-retain.patch > > +Revert this commit (appended): > > + + we always shipped without EComponentListener > > + + changing the .soname in mid-flow is really awful > > + + The original MeeGo so-name was .11 - so lets keep it > > + that way. > > + > > + > > +commit 9930a96021157de4317d19dc275b51a917391df8 > > +Author: Matthew Barnes <[email protected]> > > +Date: Fri May 21 21:14:12 2010 -0400 > > + > > + Bump libedataserver soname twice. > > + > > + We screwed up and forgot to bump libedataserver's shared object name > > + when EComponentListener was removed during the 2.29 development cycle. > > + > > + The problem is we now need to bump both master and gnome-2-30 branches, > > + but master was already bumped once when all the deprecated API was > > + removed for 2.31.1. So to keep all the names unique, the gnome-2-30 > > + soname will leapfrog master, and master will leapfrog gnome-2-30. > > + > > + It breaks down like this: > > + > > + Version Shared Object Name Note > > + > > + <= 2.30.1 : libedataserver-1.2.so.11 : > > + == 2.31.1 : libedataserver-1.2.so.12 : Deprecated API removed > > + >= 2.30.2 : libedataserver-1.2.so.13 : EComponentListener removed > > + >= 2.31.2 : libedataserver-1.2.so.14 : EComponentListener removed > > + > > +diff --git a/configure.ac b/configure.ac > > +index 2edb90c..9c3a099 100644 > > +--- a/configure.ac > > ++++ b/configure.ac > > +@@ -55,7 +55,7 @@ EDS_MICRO_VERSION=eds_micro_version > > + dnl ****************************** > > + dnl Libtool versioning > > + dnl ****************************** > > +-LIBEDATASERVER_CURRENT=13 > > ++LIBEDATASERVER_CURRENT=11 > > + LIBEDATASERVER_REVISION=1 > > + LIBEDATASERVER_AGE=0 > > + > > > > ++++++ evolution-data-server-2.30.1~20100421.tar.bz2 -> > > evolution-data-server-2.30.2~20100629.tar.bz2 > > 34820 lines of diff (skipped) > > > > ++++++ evolution-data-server-bmo182-camel-socks-proxy.patch (new) > > --- evolution-data-server-bmo182-camel-socks-proxy.patch > > +++ evolution-data-server-bmo182-camel-socks-proxy.patch > > +diff --git a/camel/camel-private.h b/camel/camel-private.h > > +index 51fc00f..f235ab4 100644 > > +--- a/camel/camel-private.h > > ++++ b/camel/camel-private.h > > +@@ -97,6 +97,8 @@ struct _CamelSessionPrivate { > > + GHashTable *thread_msg_op; > > + GHashTable *junk_headers; > > + > > ++ char *socks_proxy_host; > > ++ int socks_proxy_port; > > + }; > > + > > + #define CAMEL_SESSION_LOCK(f, l) \ > > +diff --git a/camel/camel-session.c b/camel/camel-session.c > > +index 5b626ac..36a2d38 100644 > > +--- a/camel/camel-session.c > > ++++ b/camel/camel-session.c > > +@@ -159,6 +159,34 @@ camel_session_construct (CamelSession *session, const > > gchar *storage_path) > > + session->storage_path = g_strdup (storage_path); > > + } > > + > > ++void > > ++camel_session_set_socks_proxy (CamelSession *session, const gchar > > *socks_host, int socks_port) > > ++{ > > ++ g_return_if_fail (CAMEL_IS_SESSION (session)); > > ++ > > ++ if (session->priv->socks_proxy_host) > > ++ g_free (session->priv->socks_proxy_host); > > ++ > > ++ if (socks_host && socks_host[0] != '\0') { > > ++ session->priv->socks_proxy_host = g_strdup (socks_host); > > ++ session->priv->socks_proxy_port = socks_port; > > ++ } else { > > ++ session->priv->socks_proxy_host = NULL; > > ++ session->priv->socks_proxy_port = 0; > > ++ } > > ++} > > ++ > > ++void > > ++camel_session_get_socks_proxy (CamelSession *session, gchar **host_ret, > > gint *port_ret) > > ++{ > > ++ g_return_if_fail (CAMEL_IS_SESSION (session)); > > ++ g_return_if_fail (host_ret != NULL); > > ++ g_return_if_fail (port_ret != NULL); > > ++ > > ++ *host_ret = g_strdup (session->priv->socks_proxy_host); > > ++ *port_ret = session->priv->socks_proxy_port; > > ++} > > ++ > > + static CamelService * > > + get_service (CamelSession *session, const gchar *url_string, > > + CamelProviderType type, CamelException *ex) > > +diff --git a/camel/camel-session.h b/camel/camel-session.h > > +index e6d6455..543aac1 100644 > > +--- a/camel/camel-session.h > > ++++ b/camel/camel-session.h > > +@@ -132,6 +132,13 @@ CamelType camel_session_get_type (void); > > + void camel_session_construct (CamelSession > > *session, > > + const gchar *storage_path); > > + > > ++void camel_session_set_socks_proxy (CamelSession > > *session, > > ++ const gchar *socks_host, > > ++ gint socks_port); > > ++void camel_session_get_socks_proxy (CamelSession > > *session, > > ++ gchar **host_ret, > > ++ gint *port_ret); > > ++ > > + CamelService * camel_session_get_service (CamelSession > > *session, > > + const gchar *url_string, > > + CamelProviderType type, > > +diff --git a/camel/camel-tcp-stream-raw.c b/camel/camel-tcp-stream-raw.c > > +index 72979e7..89a29e5 100644 > > +--- a/camel/camel-tcp-stream-raw.c > > ++++ b/camel/camel-tcp-stream-raw.c > > +@@ -33,6 +33,7 @@ > > + #include <sys/types.h> > > + > > + #include "camel-file-utils.h" > > ++#include "camel-net-utils.h" > > + #include "camel-operation.h" > > + #include "camel-tcp-stream-raw.h" > > + > > +@@ -400,15 +401,97 @@ socket_connect(struct addrinfo *h) > > + return fd; > > + } > > + > > ++/* Returns the FD of a socket, already connected to and validated by the > > SOCKS4 > > ++ * proxy that is configured in the stream. Otherwise returns -1. > > Assumes that > > ++ * a proxy *is* configured with camel_tcp_stream_set_socks_proxy(). > > ++ */ > > ++static gint > > ++connect_to_socks4_proxy (const gchar *proxy_host, gint proxy_port, struct > > addrinfo *connect_addr) > > ++{ > > ++ struct addrinfo *ai, hints; > > ++ gchar serv[16]; > > ++ gint fd; > > ++ gchar request[9]; > > ++ struct sockaddr_in *sin; > > ++ gchar reply[8]; > > ++ gint save_errno; > > ++ > > ++ g_assert (proxy_host != NULL); > > ++ > > ++ sprintf (serv, "%d", proxy_port); > > ++ > > ++ memset (&hints, 0, sizeof (hints)); > > ++ hints.ai_socktype = SOCK_STREAM; > > ++ > > ++ ai = camel_getaddrinfo (proxy_host, serv, &hints, NULL); /* > > NULL-CamelException */ > > ++ if (!ai) { > > ++ errno = EHOSTUNREACH; /* FIXME: this is not an accurate error; > > we should translate the CamelException to an errno */ > > ++ return -1; > > ++ } > > ++ > > ++ fd = socket_connect (ai); > > ++ save_errno = errno; > > ++ > > ++ camel_freeaddrinfo (ai); > > ++ > > ++ if (fd == -1) { > > ++ errno = save_errno; > > ++ goto error; > > ++ } > > ++ > > ++ g_assert (connect_addr->ai_addr->sa_family == AF_INET); /* FIXME: what > > to do about IPv6? Are we just screwed with SOCKS4? */ > > ++ sin = (struct sockaddr_in *) connect_addr->ai_addr; > > ++ > > ++ request[0] = 0x04; /* SOCKS4 */ > > ++ request[1] = 0x01; /* CONNECT */ > > ++ memcpy (request + 2, &sin->sin_port, 2); /* port in network byte > > order */ > > ++ memcpy (request + 4, &sin->sin_addr.s_addr, 4); /* address in network > > byte order */ > > ++ request[8] = 0x00; /* terminator */ > > ++ > > ++ if (camel_write_socket (fd, request, sizeof (request)) != sizeof > > (request)) > > ++ goto error; > > ++ > > ++ if (camel_read_socket (fd, reply, sizeof (reply)) != sizeof (reply)) > > ++ goto error; > > ++ > > ++ if (!(reply[0] == 0 /* first byte of reply is 0 */ > > ++ && reply[1] == 90)) { /* 90 means "request granted" */ > > ++ errno = ECONNREFUSED; > > ++ goto error; > > ++ } > > ++ > > ++ goto out; > > ++ > > ++error: > > ++ if (fd != -1) { > > ++ save_errno = errno; > > ++ SOCKET_CLOSE (fd); > > ++ errno = save_errno; > > ++ fd = -1; > > ++ } > > ++ > > ++out: > > ++ > > ++ return fd; > > ++} > > ++ > > + static gint > > + stream_connect (CamelTcpStream *stream, struct addrinfo *host) > > + { > > + CamelTcpStreamRaw *raw = CAMEL_TCP_STREAM_RAW (stream); > > ++ const gchar *proxy_host; > > ++ gint proxy_port; > > + > > + g_return_val_if_fail (host != NULL, -1); > > + > > ++ camel_tcp_stream_peek_socks_proxy (stream, &proxy_host, &proxy_port); > > ++ > > + while (host) { > > +- raw->sockfd = socket_connect(host); > > ++ if (proxy_host) > > ++ raw->sockfd = connect_to_socks4_proxy (proxy_host, > > proxy_port, host); > > ++ else > > ++ raw->sockfd = socket_connect (host); > > ++ > > + if (raw->sockfd != -1) > > + return 0; > > + > > +diff --git a/camel/camel-tcp-stream-ssl.c b/camel/camel-tcp-stream-ssl.c > > +index 62290c4..132c977 100644 > > +--- a/camel/camel-tcp-stream-ssl.c > > ++++ b/camel/camel-tcp-stream-ssl.c > > +@@ -55,12 +55,15 @@ > > + > > + #include "camel-certdb.h" > > + #include "camel-file-utils.h" > > ++#include "camel-net-utils.h" > > + #include "camel-operation.h" > > + #include "camel-private.h" > > + #include "camel-session.h" > > + #include "camel-stream-fs.h" > > + #include "camel-tcp-stream-ssl.h" > > + > > ++#define d(x) > > ++ > > (806 more lines skipped) > > > > ++++++ evolution-data-server-bmo182-camel-socks5.patch (new) > > --- evolution-data-server-bmo182-camel-socks5.patch > > +++ evolution-data-server-bmo182-camel-socks5.patch > > +diff --git a/camel/camel-exception-list.def > > b/camel/camel-exception-list.def > > +index 9d2940f..300743f 100644 > > +--- a/camel/camel-exception-list.def > > ++++ b/camel/camel-exception-list.def > > +@@ -38,4 +38,8 @@ CAMEL_EXCEPTION_SERVICE_NOT_CONNECTED, > > + > > + > > + /* CamelOperation */ > > +-CAMEL_EXCEPTION_OPERATION_IN_PROGRESS = 400 > > ++CAMEL_EXCEPTION_OPERATION_IN_PROGRESS = 400, > > ++ > > ++/* SOCKS proxies in CamelTcpStream */ > > ++CAMEL_EXCEPTION_PROXY_NOT_SUPPORTED = 500, > > ++CAMEL_EXCEPTION_PROXY_CANT_AUTHENTICATE > > +diff --git a/camel/camel-http-stream.c b/camel/camel-http-stream.c > > +index cbab535..40a5dc7 100644 > > +--- a/camel/camel-http-stream.c > > ++++ b/camel/camel-http-stream.c > > +@@ -173,7 +173,6 @@ static CamelStream * > > + http_connect (CamelHttpStream *http, CamelURL *url) > > + { > > + CamelStream *stream = NULL; > > +- struct addrinfo *ai, hints = { 0 }; > > + gint errsave; > > + gchar *serv; > > + > > +@@ -198,24 +197,14 @@ http_connect (CamelHttpStream *http, CamelURL *url) > > + } else { > > + serv = url->protocol; > > + } > > +- hints.ai_socktype = SOCK_STREAM; > > + > > +- ai = camel_getaddrinfo(url->host, serv, &hints, NULL); > > +- if (ai == NULL) { > > +- camel_object_unref (stream); > > +- return NULL; > > +- } > > +- > > +- if (camel_tcp_stream_connect (CAMEL_TCP_STREAM (stream), ai) == -1) { > > ++ if (camel_tcp_stream_connect (CAMEL_TCP_STREAM (stream), url->host, > > serv, 0, NULL) == -1) { /* NULL-CamelException */ > > + errsave = errno; > > + camel_object_unref (stream); > > +- camel_freeaddrinfo(ai); > > + errno = errsave; > > + return NULL; > > + } > > + > > +- camel_freeaddrinfo(ai); > > +- > > + http->raw = stream; > > + http->read = camel_stream_buffer_new (stream, CAMEL_STREAM_BUFFER_READ); > > + > > +diff --git a/camel/camel-tcp-stream-raw.c b/camel/camel-tcp-stream-raw.c > > +index 89a29e5..4e3711a 100644 > > +--- a/camel/camel-tcp-stream-raw.c > > ++++ b/camel/camel-tcp-stream-raw.c > > +@@ -32,24 +32,26 @@ > > + #include <sys/time.h> > > + #include <sys/types.h> > > + > > ++#include <nspr.h> > > ++#include <prio.h> > > ++#include <prerror.h> > > ++#include <prerr.h> > > ++ > > ++#include <glib/gi18n-lib.h> > > ++ > > + #include "camel-file-utils.h" > > + #include "camel-net-utils.h" > > + #include "camel-operation.h" > > + #include "camel-tcp-stream-raw.h" > > + > > +-#ifndef G_OS_WIN32 > > +-#define SOCKET_ERROR_CODE() errno > > +-#define SOCKET_CLOSE(fd) close (fd) > > +-#define SOCKET_ERROR_IS_EINPROGRESS() (errno == EINPROGRESS) > > +-#define SOCKET_ERROR_IS_EINTR() (errno == EINTR) > > +-#else > > +-#define SOCKET_ERROR_CODE() WSAGetLastError () > > +-#define SOCKET_CLOSE(fd) closesocket (fd) > > +-#define SOCKET_ERROR_IS_EINPROGRESS() (WSAGetLastError () == > > WSAEWOULDBLOCK) > > +-#define SOCKET_ERROR_IS_EINTR() 0 /* No WSAEINTR in WinSock2 */ > > +-#undef ETIMEDOUT /* In case pthreads-win32's <pthread.h> bogusly > > defined it */ > > +-#define ETIMEDOUT EAGAIN > > +-#endif > > ++#define d(x) > > ++ > > ++#define IO_TIMEOUT (PR_TicksPerSecond() * 4 * 60) > > ++#define CONNECT_TIMEOUT (PR_TicksPerSecond () * 4 * 60) > > ++ > > ++typedef struct _CamelTcpStreamRawPrivate { > > ++ PRFileDesc *sockfd; > > ++} CamelTcpStreamRawPrivate; > > + > > + static CamelTcpStreamClass *parent_class = NULL; > > + > > +@@ -61,11 +63,12 @@ static gssize stream_write (CamelStream *stream, const > > gchar *buffer, gsize n); > > + static gint stream_flush (CamelStream *stream); > > + static gint stream_close (CamelStream *stream); > > + > > +-static gint stream_connect (CamelTcpStream *stream, struct addrinfo > > *host); > > ++static gint stream_connect (CamelTcpStream *stream, const char *host, > > const char *service, gint fallback_port, CamelException *ex); > > + static gint stream_getsockopt (CamelTcpStream *stream, CamelSockOptData > > *data); > > + static gint stream_setsockopt (CamelTcpStream *stream, const > > CamelSockOptData *data); > > + static struct sockaddr *stream_get_local_address (CamelTcpStream *stream, > > socklen_t *len); > > + static struct sockaddr *stream_get_remote_address (CamelTcpStream > > *stream, socklen_t *len); > > ++static PRFileDesc *stream_get_file_desc (CamelTcpStream *stream); > > + > > + static void > > + camel_tcp_stream_raw_class_init (CamelTcpStreamRawClass > > *camel_tcp_stream_raw_class) > > +@@ -88,23 +91,34 @@ camel_tcp_stream_raw_class_init > > (CamelTcpStreamRawClass *camel_tcp_stream_raw_cl > > + camel_tcp_stream_class->setsockopt = stream_setsockopt; > > + camel_tcp_stream_class->get_local_address = stream_get_local_address; > > + camel_tcp_stream_class->get_remote_address = stream_get_remote_address; > > ++ camel_tcp_stream_class->get_file_desc = stream_get_file_desc; > > + } > > + > > + static void > > + camel_tcp_stream_raw_init (gpointer object, gpointer klass) > > + { > > + CamelTcpStreamRaw *stream = CAMEL_TCP_STREAM_RAW (object); > > ++ CamelTcpStreamRawPrivate *priv; > > + > > +- stream->sockfd = -1; > > ++ stream->priv = g_new0 (CamelTcpStreamRawPrivate, 1); > > ++ priv = stream->priv; > > ++ > > ++ priv->sockfd = NULL; > > + } > > + > > + static void > > + camel_tcp_stream_raw_finalize (CamelObject *object) > > + { > > +- CamelTcpStreamRaw *stream = CAMEL_TCP_STREAM_RAW (object); > > ++ CamelTcpStreamRaw *raw = CAMEL_TCP_STREAM_RAW (object); > > ++ CamelTcpStreamRawPrivate *priv = raw->priv; > > + > > +- if (stream->sockfd != -1) > > +- SOCKET_CLOSE (stream->sockfd); > > ++ if (priv->sockfd != NULL) { > > ++ PR_Shutdown (priv->sockfd, PR_SHUTDOWN_BOTH); > > ++ PR_Close (priv->sockfd); > > ++ } > > ++ > > ++ g_free (raw->priv); > > ++ raw->priv = NULL; > > + } > > + > > + CamelType > > +@@ -244,202 +258,492 @@ camel_tcp_stream_raw_new (void) > > + return CAMEL_STREAM (stream); > > + } > > + > > ++void > > ++_set_errno_from_pr_error (gint pr_code) > > ++{ > > ++ /* FIXME: this should handle more. */ > > ++ switch (pr_code) { > > ++ case PR_INVALID_ARGUMENT_ERROR: > > ++ errno = EINVAL; > > ++ break; > > ++ case PR_PENDING_INTERRUPT_ERROR: > > ++ errno = EINTR; > > ++ break; > > ++ case PR_IO_PENDING_ERROR: > > ++ errno = EAGAIN; > > ++ break; > > ++#ifdef EWOULDBLOCK > > ++ case PR_WOULD_BLOCK_ERROR: > > ++ errno = EWOULDBLOCK; > > ++ break; > > ++#endif > > ++#ifdef EINPROGRESS > > ++ case PR_IN_PROGRESS_ERROR: > > ++ errno = EINPROGRESS; > > ++ break; > > ++#endif > > ++#ifdef EALREADY > > ++ case PR_ALREADY_INITIATED_ERROR: > > ++ errno = EALREADY; > > ++ break; > > ++#endif > > ++#ifdef EHOSTUNREACH > > ++ case PR_NETWORK_UNREACHABLE_ERROR: > > ++ errno = EHOSTUNREACH; > > ++ break; > > ++#endif > > ++#ifdef ECONNREFUSED > > ++ case PR_CONNECT_REFUSED_ERROR: > > ++ errno = ECONNREFUSED; > > ++ break; > > ++#endif > > ++#ifdef ETIMEDOUT > > ++ case PR_CONNECT_TIMEOUT_ERROR: > > ++ case PR_IO_TIMEOUT_ERROR: > > ++ errno = ETIMEDOUT; > > ++ break; > > ++#endif > > (2969 more lines skipped) > > > > ++++++ evolution-data-server-contacts-bug-2330.patch (new) > > --- evolution-data-server-contacts-bug-2330.patch > > +++ evolution-data-server-contacts-bug-2330.patch > > +diff --git a/po/zh_CN.po b/po/zh_CN.po > > +index ac607f8..c061980 100644 > > +--- a/po/zh_CN.po > > ++++ b/po/zh_CN.po > > +@@ -4819,8 +4819,8 @@ msgid "Category _Name" > > + msgstr "类别名称(_N)" > > + > > + #: ../libedataserverui/e-categories-dialog.ui.h:5 > > +-msgid "Item(s) belong to these _categories:" > > +-msgstr "项目属于这些类别(_C):" > > ++msgid "Item(s) _belong to these categories:" > > ++msgstr "项目属于这些类别(_B):" > > + > > + #: ../libedataserverui/e-categories-dialog.ui.h:6 > > + msgid "_Available Categories:" > > > > _______________________________________________ > > Meego-commits mailing list > > [email protected] > > http://lists.meego.com/listinfo/meego-commits > > _______________________________________________ > MeeGo-packaging mailing list > [email protected] > http://lists.meego.com/listinfo/meego-packaging _______________________________________________ MeeGo-packaging mailing list [email protected] http://lists.meego.com/listinfo/meego-packaging
