diff options
author | Robin H. Johnson <robbat2@gentoo.org> | 2015-08-08 13:49:04 -0700 |
---|---|---|
committer | Robin H. Johnson <robbat2@gentoo.org> | 2015-08-08 17:38:18 -0700 |
commit | 56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch) | |
tree | 3f91093cdb475e565ae857f1c5a7fd339e2d781e /net-libs/loudmouth | |
download | gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2 gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip |
proj/gentoo: Initial commit
This commit represents a new era for Gentoo:
Storing the gentoo-x86 tree in Git, as converted from CVS.
This commit is the start of the NEW history.
Any historical data is intended to be grafted onto this point.
Creation process:
1. Take final CVS checkout snapshot
2. Remove ALL ChangeLog* files
3. Transform all Manifests to thin
4. Remove empty Manifests
5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$
5.1. Do not touch files with -kb/-ko keyword flags.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests
X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project
X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration
X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn
X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts
X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration
X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging
X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'net-libs/loudmouth')
13 files changed, 669 insertions, 0 deletions
diff --git a/net-libs/loudmouth/Manifest b/net-libs/loudmouth/Manifest new file mode 100644 index 000000000000..10f26611de42 --- /dev/null +++ b/net-libs/loudmouth/Manifest @@ -0,0 +1 @@ +DIST loudmouth-1.4.3.tar.bz2 366818 SHA256 95a93f5d009b71ea8193d994aa11f311bc330a3efe1b7cd74dc48f11c7f929e3 SHA512 02d1de14a4d626a4c9100bd24c06d4b4203eabb0f95bab40ee18ea5e68ed81d47aa977625140157b2d9f7974ac748af857c2ee3a916f0db700e2a2d0934940ec WHIRLPOOL 4f9e3e8e4f2fd0a36996e84deebeb26c789d5334af11a3d6cc6c742b59508945a6279715f6fbb02bbbc04a0d9709e7aae4cc39803b2a60acfd47d76f0482f969 diff --git a/net-libs/loudmouth/files/loudmouth-1.4.3-async-fix.patch b/net-libs/loudmouth/files/loudmouth-1.4.3-async-fix.patch new file mode 100644 index 000000000000..3213d72865aa --- /dev/null +++ b/net-libs/loudmouth/files/loudmouth-1.4.3-async-fix.patch @@ -0,0 +1,30 @@ +--- a/loudmouth/lm-socket.c ++++ b/loudmouth/lm-socket.c +@@ -1022,7 +1022,7 @@ _lm_socket_create_phase2 (LmSocket *socket, struct addrinfo *ans) + if (socket->connect_func) { + (socket->connect_func) (socket, FALSE, socket->user_data; + } +- g_free (socket->connect_data); ++ g_free (socket->connect_data); + socket->connect_data = NULL; + return; + } +@@ -1107,6 +1107,10 @@ lm_socket_create (GMainContext *context, + _lm_socket_create_phase1 (socket, NULL, 0); + } + ++#ifndef HAVE_ASYNCNS ++ /* Only do this check if we are not using asyncns or it will crash. ++ * Report and patch by Senko. ++ */ + if (socket->connect_data == NULL) { + /* Open failed synchronously, probably a DNS lookup problem */ + lm_socket_unref(socket); +@@ -1118,6 +1122,7 @@ lm_socket_create (GMainContext *context, + + return NULL; + } ++#endif /* HAVE_ASYNCNS */ + + + /* If the connection fails synchronously, we don't want to call the diff --git a/net-libs/loudmouth/files/loudmouth-1.4.3-asyncns-system.patch b/net-libs/loudmouth/files/loudmouth-1.4.3-asyncns-system.patch new file mode 100644 index 000000000000..9cf5345e558d --- /dev/null +++ b/net-libs/loudmouth/files/loudmouth-1.4.3-asyncns-system.patch @@ -0,0 +1,83 @@ +diff --git a/configure.ac b/configure.ac +index 9369e55..17a9e1d 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -199,19 +199,31 @@ AM_CONDITIONAL(USE_GNUTLS, test x$enable_ssl = xGnuTLS) + dnl +-------------------------------------------------------------------+ + dnl | Checking for libasyncns | + dnl +-------------------------------------------------------------------+ +-AC_ARG_WITH(asyncns, [ --with-asyncns=yes/no define whether to use libasyncns, default=no], +- ac_asyncns=$withval, +- ac_asyncns=no +- ) ++AC_ARG_WITH(asyncns, ++ AS_HELP_STRING([--with-asyncns], ++ [define whether to use libasyncns, @<:@default=no@:>@ (internal/system/no)]), ++ ac_asyncns=$withval, ++ ac_asyncns=no) + + enable_asyncns=no ++have_asyncns_system=no + if test x$ac_asyncns != xno; then + enable_asyncns=yes + AC_DEFINE(HAVE_ASYNCNS, 1, [Whether to use libasyncns]) ++ ++ if test x$ac_asyncns = xsystem; then ++ PKG_CHECK_MODULES(ASYNCNS, [libasyncns >= 0.3], ++ [have_asyncns_system=yes], ++ [have_asyncns_system=no]) ++ fi + else + echo "Not using asynchronous dns lookups" + fi + ++AC_SUBST(ASYNCNS_CFLAGS) ++AC_SUBST(ASYNCNS_LIBS) ++AM_CONDITIONAL(USE_SYSTEM_ASYNCNS, test x$have_asyncns_system = xyes) ++ + dnl +-------------------------------------------------------------------+ + dnl | Checking for Linux TCP/IP stack | + dnl +-------------------------------------------------------------------+ +diff --git a/loudmouth/Makefile.am b/loudmouth/Makefile.am +index f73aa0c..e308e1c 100644 +--- a/loudmouth/Makefile.am ++++ b/loudmouth/Makefile.am +@@ -6,6 +6,7 @@ AM_CPPFLAGS = \ + -I. \ + -I$(top_srcdir) \ + $(LOUDMOUTH_CFLAGS) \ ++ $(ASYNCNS_CFLAGS) \ + $(LIBIDN_CFLAGS) \ + -DLM_COMPILATION \ + -DRUNTIME_ENDIAN \ +@@ -51,8 +52,6 @@ libloudmouth_1_la_SOURCES = \ + lm-sock.c \ + lm-socket.c \ + lm-socket.h \ +- asyncns.c \ +- asyncns.h \ + lm-sasl.c \ + lm-sasl.h \ + md5.c \ +@@ -61,6 +60,13 @@ libloudmouth_1_la_SOURCES = \ + base64.h \ + $(NULL) + ++if ! USE_SYSTEM_ASYNCNS ++libloudmouth_1_la_SOURCES += \ ++ asyncns.c \ ++ asyncns.h \ ++ $(NULL) ++endif ++ + libloudmouthinclude_HEADERS = \ + lm-connection.h \ + lm-error.h \ +@@ -75,6 +81,7 @@ libloudmouthinclude_HEADERS = \ + + libloudmouth_1_la_LIBADD = \ + $(LOUDMOUTH_LIBS) \ ++ $(ASYNCNS_LIBS) \ + $(LIBIDN_LIBS) \ + -lresolv + diff --git a/net-libs/loudmouth/files/loudmouth-1.4.3-drop-stanzas-on-fail.patch b/net-libs/loudmouth/files/loudmouth-1.4.3-drop-stanzas-on-fail.patch new file mode 100644 index 000000000000..05c76c590b58 --- /dev/null +++ b/net-libs/loudmouth/files/loudmouth-1.4.3-drop-stanzas-on-fail.patch @@ -0,0 +1,47 @@ + +From: Sjoerd Simons <sjoerd.simons@collabora.co.uk> +Date: Tue, 13 Jan 2009 11:28:44 +0000 +Subject: [PATCH] Drop stanzas when failing to convert them to LmMessages + +when a stanza comes in that for some reason can't be parsed into an LmMessage, +just drop them on the floor instead of blocking the parser. I've seen this +issue happen in practise because some (buggy?) client sending an iq with a +prefix e.g. <client:iq xmlns:client="jabber:client" ... /> +--- + loudmouth/lm-parser.c | 15 ++++++--------- + 1 files changed, 6 insertions(+), 9 deletions(-) + +diff --git a/loudmouth/lm-parser.c b/loudmouth/lm-parser.c +index 1938d56..89f6675 100644 +--- a/loudmouth/lm-parser.c ++++ b/loudmouth/lm-parser.c +@@ -151,19 +151,16 @@ parser_end_node_cb (GMarkupParseContext *context, + if (!m) { + g_warning ("Couldn't create message: %s\n", + parser->cur_root->name); +- return; +- } +- +- g_log (LM_LOG_DOMAIN, LM_LOG_LEVEL_PARSER, ++ } else { ++ g_log (LM_LOG_DOMAIN, LM_LOG_LEVEL_PARSER, + "Have a new message\n"); +- if (parser->function) { +- (* parser->function) (parser, m, parser->user_data); ++ if (parser->function) { ++ (* parser->function) (parser, m, parser->user_data); ++ } ++ lm_message_unref (m); + } + +- lm_message_unref (m); + lm_message_node_unref (parser->cur_root); +- +- + parser->cur_node = parser->cur_root = NULL; + } else { + LmMessageNode *tmp_node; +-- +1.5.6.5 + + diff --git a/net-libs/loudmouth/files/loudmouth-1.4.3-fix-sasl-md5-digest-uri.patch b/net-libs/loudmouth/files/loudmouth-1.4.3-fix-sasl-md5-digest-uri.patch new file mode 100644 index 000000000000..5bca69c0c15e --- /dev/null +++ b/net-libs/loudmouth/files/loudmouth-1.4.3-fix-sasl-md5-digest-uri.patch @@ -0,0 +1,24 @@ +diff --git a/loudmouth/lm-connection.c b/loudmouth/lm-connection.c +index 21c1bc2..ae8de94 100644 +--- a/loudmouth/lm-connection.c ++++ b/loudmouth/lm-connection.c +@@ -1441,11 +1441,18 @@ lm_connection_authenticate (LmConnection *connection, + connection->effective_jid = g_strdup_printf ("%s/%s", + connection->jid, connection->resource); + + if (connection->use_sasl) { ++ gchar *domain = NULL; ++ ++ if (!connection_get_server_from_jid (connection->jid, &domain)) { ++ domain = g_strdup (connection->server); ++ } ++ + lm_sasl_authenticate (connection->sasl, + username, password, +- connection->server, ++ domain, + connection_sasl_auth_finished); ++ g_free (domain); + + connection->features_cb = + lm_message_handler_new (connection_features_cb, diff --git a/net-libs/loudmouth/files/loudmouth-1.4.3-free-before-closed.patch b/net-libs/loudmouth/files/loudmouth-1.4.3-free-before-closed.patch new file mode 100644 index 000000000000..d6c43ae9d66f --- /dev/null +++ b/net-libs/loudmouth/files/loudmouth-1.4.3-free-before-closed.patch @@ -0,0 +1,137 @@ +From ff113220df9073c3e6078487e87b6a7b86e2d952 Mon Sep 17 00:00:00 2001 +From: Mikael Hallendal <micke@imendio.com> +Date: Sun, 30 Nov 2008 09:27:21 +0100 +Subject: [PATCH] Don't free connection internals before it's closed. [#34] + +When the connection freed up internal states (in this case the handler +lists) before closing itself it segfaulted when trying to unregister the +SASL handlers. + +Reported by Julien Puydt. +--- + loudmouth/lm-connection.c | 30 +++++++++++++++++------------- + loudmouth/lm-sasl.c | 18 +++++++++--------- + 2 files changed, 26 insertions(+), 22 deletions(-) + +diff --git a/loudmouth/lm-connection.c b/loudmouth/lm-connection.c +index 915c0ad..dda2978 100644 +--- a/loudmouth/lm-connection.c ++++ b/loudmouth/lm-connection.c +@@ -191,13 +191,21 @@ connection_free (LmConnection *connection) + { + int i; + ++ /* This needs to be run before starting to free internal states. ++ * It used to be run after the handlers where freed which lead to a crash ++ * when the connection was freed prior to running lm_connection_close. ++ */ ++ if (connection->state >= LM_CONNECTION_STATE_OPENING) { ++ connection_do_close (connection); ++ } ++ + g_free (connection->server); + g_free (connection->jid); + g_free (connection->effective_jid); + g_free (connection->stream_id); + g_free (connection->resource); + +- if (connection->sasl) { ++ if (connection->sasl) { + lm_sasl_free (connection->sasl); + } + +@@ -218,13 +226,9 @@ connection_free (LmConnection *connection) + + g_slist_free (connection->handlers[i]); + } +- + g_hash_table_destroy (connection->id_handlers); +- if (connection->state >= LM_CONNECTION_STATE_OPENING) { +- connection_do_close (connection); +- } + +- if (connection->open_cb) { ++ if (connection->open_cb) { + _lm_utils_free_callback (connection->open_cb); + } + +@@ -2030,11 +2034,11 @@ lm_connection_unregister_message_handler (LmConnection *connection, + g_return_if_fail (handler != NULL); + g_return_if_fail (type != LM_MESSAGE_TYPE_UNKNOWN); + +- for (l = connection->handlers[type]; l; l = l->next) { +- HandlerData *hd = (HandlerData *) l->data; +- ++ for (l = connection->handlers[type]; l; l = l->next) { ++ HandlerData *hd = (HandlerData *) l->data; ++ + if (handler == hd->handler) { +- connection->handlers[type] = g_slist_remove_link (connection->handlers[type], l); ++ connection->handlers[type] = g_slist_remove_link (connection->handlers[type], l); + g_slist_free (l); + lm_message_handler_unref (hd->handler); + g_free (hd); +@@ -2140,7 +2144,7 @@ lm_connection_ref (LmConnection *connection) + g_return_val_if_fail (connection != NULL, NULL); + + connection->ref_count++; +- ++ + return connection; + } + +@@ -2157,8 +2161,8 @@ lm_connection_unref (LmConnection *connection) + g_return_if_fail (connection != NULL); + + connection->ref_count--; +- ++ + if (connection->ref_count == 0) { +- connection_free (connection); ++ connection_free (connection); + } + } +diff --git a/loudmouth/lm-sasl.c b/loudmouth/lm-sasl.c +index 42ee0e1..e6a72f5 100644 +--- a/loudmouth/lm-sasl.c ++++ b/loudmouth/lm-sasl.c +@@ -807,27 +807,27 @@ lm_sasl_free (LmSASL *sasl) + g_free (sasl->server); + + if (sasl->features_cb) { +- lm_connection_unregister_message_handler (sasl->connection, +- sasl->features_cb, +- LM_MESSAGE_TYPE_STREAM_FEATURES); ++ lm_connection_unregister_message_handler (sasl->connection, ++ sasl->features_cb, ++ LM_MESSAGE_TYPE_STREAM_FEATURES); + } + + if (sasl->challenge_cb) { + lm_connection_unregister_message_handler (sasl->connection, +- sasl->challenge_cb, +- LM_MESSAGE_TYPE_CHALLENGE); ++ sasl->challenge_cb, ++ LM_MESSAGE_TYPE_CHALLENGE); + } + + if (sasl->success_cb) { + lm_connection_unregister_message_handler (sasl->connection, +- sasl->success_cb, +- LM_MESSAGE_TYPE_SUCCESS); ++ sasl->success_cb, ++ LM_MESSAGE_TYPE_SUCCESS); + } + + if (sasl->failure_cb) { + lm_connection_unregister_message_handler (sasl->connection, +- sasl->failure_cb, +- LM_MESSAGE_TYPE_FAILURE); ++ sasl->failure_cb, ++ LM_MESSAGE_TYPE_FAILURE); + } + + g_free (sasl); +-- +1.7.7.1 + diff --git a/net-libs/loudmouth/files/loudmouth-1.4.3-glib-2.32.patch b/net-libs/loudmouth/files/loudmouth-1.4.3-glib-2.32.patch new file mode 100644 index 000000000000..87fc170c80da --- /dev/null +++ b/net-libs/loudmouth/files/loudmouth-1.4.3-glib-2.32.patch @@ -0,0 +1,13 @@ +Index: loudmouth-1.4.3/loudmouth/lm-error.c +=================================================================== +--- loudmouth-1.4.3.orig/loudmouth/lm-error.c ++++ loudmouth-1.4.3/loudmouth/lm-error.c +@@ -19,7 +19,7 @@ + */ + + #include <config.h> +-#include <glib/gerror.h> ++#include <glib.h> + #include "lm-error.h" + + /** diff --git a/net-libs/loudmouth/files/loudmouth-1.4.3-gnutls28.patch b/net-libs/loudmouth/files/loudmouth-1.4.3-gnutls28.patch new file mode 100644 index 000000000000..a538533db03b --- /dev/null +++ b/net-libs/loudmouth/files/loudmouth-1.4.3-gnutls28.patch @@ -0,0 +1,15 @@ +# Gentoo: https://bugs.gentoo.org/show_bug.cgi?id=272027 +# Patch from mandriva +--- a/configure.ac 2009-05-30 17:59:03.000000000 +0200 ++++ b/configure.ac 2009-05-30 18:02:24.000000000 +0200 +@@ -146,8 +146,9 @@ + enable_ssl=no + if test "x$ac_ssl" = "xgnutls"; then + dnl Look for GnuTLS +- AM_PATH_LM_LIBGNUTLS($GNUTLS_REQUIRED, have_libgnutls=yes, have_libgnutls=no) ++ PKG_CHECK_EXISTS([gnutls >= $GNUTLS_REQUIRED], have_libgnutls=yes, have_libgnutls=no) + if test "x$have_libgnutls" = "xyes"; then ++ PKG_CHECK_MODULES(LIBGNUTLS, [gnutls >= $GNUTLS_REQUIRED]) + CFLAGS="$CFLAGS $LIBGNUTLS_CFLAGS" + LIBS="$LIBS $LIBGNUTLS_LIBS" + AC_DEFINE(HAVE_GNUTLS, 1, [whether to use GnuTSL support.]) diff --git a/net-libs/loudmouth/files/loudmouth-1.4.3-id-tag-in-opening-headers.patch b/net-libs/loudmouth/files/loudmouth-1.4.3-id-tag-in-opening-headers.patch new file mode 100644 index 000000000000..43b923a5e73f --- /dev/null +++ b/net-libs/loudmouth/files/loudmouth-1.4.3-id-tag-in-opening-headers.patch @@ -0,0 +1,35 @@ +From 6f3a168d985d37af42e747412b5d6d427b4d1ab8 Mon Sep 17 00:00:00 2001 +From: Will Thompson <will.thompson@collabora.co.uk> +Date: Wed, 5 Nov 2008 23:19:42 +0100 +Subject: [PATCH] Don't append the 'id'-tag in opening stream headers. [#30] + +According to RFC 3920 (section 4.4) the id attribute SHOULD NOT be added +by the initiating party. + +[#30 responsible:Hallski state:resolved milestone:Loudmouth 1.4.4 tagged:committed] +--- + loudmouth/lm-message.c | 8 +++++--- + 1 files changed, 5 insertions(+), 3 deletions(-) + +diff --git a/loudmouth/lm-message.c b/loudmouth/lm-message.c +index a7d1b46..e2fdcc2 100644 +--- a/loudmouth/lm-message.c ++++ b/loudmouth/lm-message.c +@@ -223,9 +223,11 @@ lm_message_new (const gchar *to, LmMessageType type) + + m->node = _lm_message_node_new (_lm_message_type_to_string (type)); + +- id = _lm_utils_generate_id (); +- lm_message_node_set_attribute (m->node, "id", id); +- g_free (id); ++ if (type != LM_MESSAGE_TYPE_STREAM) { ++ id = _lm_utils_generate_id (); ++ lm_message_node_set_attribute (m->node, "id", id); ++ g_free (id); ++ } + + if (to) { + lm_message_node_set_attribute (m->node, "to", to); +-- +1.7.7.1 + diff --git a/net-libs/loudmouth/files/loudmouth-1.4.3-invalid-unicode.patch b/net-libs/loudmouth/files/loudmouth-1.4.3-invalid-unicode.patch new file mode 100644 index 000000000000..2a97653c93cd --- /dev/null +++ b/net-libs/loudmouth/files/loudmouth-1.4.3-invalid-unicode.patch @@ -0,0 +1,144 @@ +From e08dbcca6cf50c834e2fe4e7290cce642903251d Mon Sep 17 00:00:00 2001 +From: Hermitifier <quantifier666@gmail.com> +Date: Mon, 3 Oct 2011 17:06:18 +0200 +Subject: [PATCH] Protect GMarkup parser against invalid unicode characters + +[Alexandre Rostovtsev <tetromino@gentoo.org>: backport to 1.4.3] + +http://loudmouth.lighthouseapp.com/projects/17276/tickets/61 +--- + loudmouth/lm-parser.c | 94 ++++++++++++++++++++++++++++++++++++++++++++----- + 1 files changed, 85 insertions(+), 9 deletions(-) + +diff --git a/loudmouth/lm-parser.c b/loudmouth/lm-parser.c +index 89f6675..0a61a56 100644 +--- a/loudmouth/lm-parser.c ++++ b/loudmouth/lm-parser.c +@@ -43,6 +43,8 @@ struct LmParser { + + GMarkupParser *m_parser; + GMarkupParseContext *context; ++ gchar *incomplete; /* incomplete utf-8 character ++ found at the end of buffer */ + }; + + +@@ -233,25 +235,98 @@ lm_parser_new (LmParserMessageFunction function, + parser->cur_root = NULL; + parser->cur_node = NULL; + ++ parser->incomplete = NULL; ++ + return parser; + } + ++static gchar * ++_lm_parser_make_valid (const gchar *buffer, gchar **incomplete) ++{ ++ GString *string; ++ const gchar *remainder, *invalid; ++ gint remaining_bytes, valid_bytes; ++ gunichar code; /*error code for invalid character*/ ++ ++ g_return_val_if_fail (buffer != NULL, NULL); ++ ++ string = NULL; ++ remainder = buffer; ++ remaining_bytes = strlen (buffer); ++ ++ while (remaining_bytes != 0) ++ { ++ if (g_utf8_validate (remainder, remaining_bytes, &invalid)) ++ break; ++ valid_bytes = invalid - remainder; ++ ++ if (string == NULL) ++ string = g_string_sized_new (remaining_bytes); ++ ++ g_string_append_len (string, remainder, valid_bytes); ++ ++ remainder = g_utf8_find_next_char(invalid, NULL); ++ remaining_bytes -= valid_bytes + (remainder - invalid); ++ ++ code = g_utf8_get_char_validated (invalid, -1); ++ ++ if (code == -1) { ++ /* A complete but invalid codepoint */ ++ /* append U+FFFD REPLACEMENT CHARACTER */ ++ g_string_append (string, "\357\277\275"); ++#ifndef LM_NO_DEBUG ++ g_debug ("invalid character!\n"); ++#endif ++ } else if (code == -2) { ++ /* Beginning of what could be a character */ ++ *incomplete = g_strdup (invalid); ++#ifndef LM_NO_DEBUG ++ g_debug ("incomplete character: %s\n", *incomplete); ++#endif ++ ++ g_assert (remaining_bytes == 0); ++ g_assert (*(g_utf8_find_next_char(invalid, NULL)) == '\0'); ++ } ++ } ++ ++ if (string == NULL) ++ return g_strdup (buffer); ++ ++ g_string_append (string, remainder); ++ ++ g_assert (g_utf8_validate (string->str, -1, NULL)); ++ ++ return g_string_free (string, FALSE); ++} ++ ++ + void + lm_parser_parse (LmParser *parser, const gchar *string) + { ++ gchar *valid, *completed; + g_return_if_fail (parser != NULL); + +- if (!parser->context) { +- parser->context = g_markup_parse_context_new (parser->m_parser, 0, +- parser, NULL); +- } +- +- if (g_markup_parse_context_parse (parser->context, string, +- (gssize)strlen (string), NULL)) { +- } else { ++ if (!parser->context) { ++ parser->context = g_markup_parse_context_new (parser->m_parser, 0, ++ parser, NULL); ++ } ++ ++ if (parser->incomplete) { ++ completed = g_strdup_printf("%s%s", parser->incomplete, string); ++ g_free(parser->incomplete); ++ parser->incomplete = NULL; ++ } else { ++ completed = g_strdup(string); ++ } ++ valid = _lm_parser_make_valid (completed, &parser->incomplete); ++ g_free(completed); ++ if (g_markup_parse_context_parse (parser->context, valid, ++ (gssize)strlen (valid), NULL)) { ++ } else { + g_markup_parse_context_free (parser->context); + parser->context = NULL; +- } ++ } ++ g_free(valid); + } + + void +@@ -264,6 +339,7 @@ lm_parser_free (LmParser *parser) + if (parser->context) { + g_markup_parse_context_free (parser->context); + } ++ g_free (parser->incomplete); + g_free (parser->m_parser); + g_free (parser); + } +-- +1.7.7.1 + diff --git a/net-libs/loudmouth/files/loudmouth-1.4.3-silence-chdir.patch b/net-libs/loudmouth/files/loudmouth-1.4.3-silence-chdir.patch new file mode 100644 index 000000000000..0ee8c940fade --- /dev/null +++ b/net-libs/loudmouth/files/loudmouth-1.4.3-silence-chdir.patch @@ -0,0 +1,33 @@ +From 4d8a5ea64abb65ed086efc3e32125c529068acbe Mon Sep 17 00:00:00 2001 +From: Mikael Hallendal <micke@imendio.com> +Date: Wed, 19 Nov 2008 10:16:40 +0100 +Subject: [PATCH] Silence chdir by catching return value + +--- + loudmouth/asyncns.c | 3 ++- + 1 files changed, 2 insertions(+), 1 deletions(-) + +diff --git a/loudmouth/asyncns.c b/loudmouth/asyncns.c +index 9b238fa..55cb471 100644 +--- a/loudmouth/asyncns.c ++++ b/loudmouth/asyncns.c +@@ -382,6 +382,7 @@ static int process_worker(int in_fd, int out_fd) { + int have_death_sig = 0; + assert(in_fd > 2); + assert(out_fd > 2); ++ int no_warn; + + close(0); + close(1); +@@ -391,7 +392,7 @@ static int process_worker(int in_fd, int out_fd) { + open("/dev/null", O_WRONLY); + open("/dev/null", O_WRONLY); + +- chdir("/"); ++ no_warn = chdir("/"); + + if (geteuid() == 0) { + struct passwd *pw; +-- +1.7.7.1 + diff --git a/net-libs/loudmouth/loudmouth-1.4.3-r2.ebuild b/net-libs/loudmouth/loudmouth-1.4.3-r2.ebuild new file mode 100644 index 000000000000..0a1453575be9 --- /dev/null +++ b/net-libs/loudmouth/loudmouth-1.4.3-r2.ebuild @@ -0,0 +1,96 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 +GNOME_TARBALL_SUFFIX="bz2" +GNOME2_LA_PUNT="yes" +# Not using gnome macro, but behavior is similar, #434736 +GCONF_DEBUG="yes" + +inherit autotools eutils gnome2 + +DESCRIPTION="Lightweight C Jabber library" +HOMEPAGE="https://github.com/engineyard/loudmouth" + +LICENSE="LGPL-2.1" +SLOT="0" +KEYWORDS="alpha amd64 ~arm ia64 ppc ppc64 sparc x86 ~ppc-macos" + +IUSE="asyncns ssl static-libs test" + +# Automagic libidn dependency +RDEPEND=" + >=dev-libs/glib-2.4:2 + net-dns/libidn + ssl? ( >=net-libs/gnutls-1.4.0 ) + asyncns? ( net-libs/libasyncns ) +" +# FIXME: +# openssl dropped because of bug #216705 + +DEPEND="${RDEPEND} + test? ( dev-libs/check ) + virtual/pkgconfig + >=dev-util/gtk-doc-am-1 +" + +src_prepare() { + # Use system libasyncns, bug #236844 + epatch "${FILESDIR}/${P}-asyncns-system.patch" + + # Fix detection of gnutls-2.8, bug #272027 + epatch "${FILESDIR}/${P}-gnutls28.patch" + + # Fix digest auth with SRV (or similar) + # Upstream: http://loudmouth.lighthouseapp.com/projects/17276-libloudmouth/tickets/44-md5-digest-uri-not-set-correctly-when-using-srv + epatch "${FILESDIR}/${P}-fix-sasl-md5-digest-uri.patch" + + # Drop stanzas when failing to convert them to LmMessages + # From debian.. + epatch "${FILESDIR}/${P}-drop-stanzas-on-fail.patch" + + # Don't check for sync dns problems when using asyncns [#33] + # From debian.. + epatch "${FILESDIR}/${P}-async-fix.patch" + + # Don't append id tag in opening headers [#30] + epatch "${FILESDIR}/${P}-id-tag-in-opening-headers.patch" + + # Silence chdir, from engineyard git + epatch "${FILESDIR}/${P}-silence-chdir.patch" + + # Don't free connection internals before connection is closed [#34] + epatch "${FILESDIR}/${P}-free-before-closed.patch" + + # Check for invalid utf8, bug #389127 + # Upstream: http://loudmouth.lighthouseapp.com/projects/17276/tickets/61 + epatch "${FILESDIR}/${P}-invalid-unicode.patch" + + # http://loudmouth.lighthouseapp.com/projects/17276/tickets/63 + epatch "${FILESDIR}/${P}-glib-2.32.patch" + + sed -i -e 's:AM_CONFIG_HEADER:AC_CONFIG_HEADERS:' configure.ac || die #467694 + + eautoreconf + gnome2_src_prepare +} + +src_configure() { + local myconf + + if use ssl; then + myconf="${myconf} --with-ssl=gnutls" + else + myconf="${myconf} --with-ssl=no" + fi + + if use asyncns; then + myconf="${myconf} --with-asyncns=system" + else + myconf="${myconf} --without-asyncns" + fi + gnome2_src_configure \ + $(use_enable static-libs static) \ + ${myconf} +} diff --git a/net-libs/loudmouth/metadata.xml b/net-libs/loudmouth/metadata.xml new file mode 100644 index 000000000000..fcbfe25fc1fc --- /dev/null +++ b/net-libs/loudmouth/metadata.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <herd>gnome</herd> + <use> + <flag name="asyncns">Use libasyncns for asynchronous name resolution.</flag> + </use> + <upstream> + <remote-id type="github">engineyard/loudmouth</remote-id> + </upstream> +</pkgmetadata> |