diff options
author | Rafael Fontenelle | 2018-06-22 21:23:15 -0300 |
---|---|---|
committer | Rafael Fontenelle | 2018-06-22 21:23:15 -0300 |
commit | 91472588f534168171d24aeb9b6bb345770432af (patch) | |
tree | dfe1849cf33231c46e11c77ee53be10b4cf3520f | |
parent | 948fbc12e0a27a0e78b2f43a7fddae11ac069a3c (diff) | |
download | aur-libtranslate.tar.gz |
Improve PKGBUILD + Add fixed
-rw-r--r-- | .SRCINFO | 34 | ||||
-rw-r--r-- | PKGBUILD | 57 | ||||
-rw-r--r-- | libtranslate-0.99-charsetparse.diff | 47 | ||||
-rw-r--r-- | libtranslate-0.99-condfix.diff | 38 | ||||
-rw-r--r-- | libtranslate-0.99-int64.diff | 11 | ||||
-rw-r--r-- | libtranslate-0.99-libsoup24.diff | 558 | ||||
-rw-r--r-- | libtranslate-0.99-postmarker.diff | 13 | ||||
-rw-r--r-- | libtranslate-0.99-services.diff | 174 |
8 files changed, 905 insertions, 27 deletions
@@ -1,19 +1,29 @@ -# Generated by makepkg 5.0.2 -# Thu Mar 15 20:27:11 UTC 2018 pkgbase = libtranslate - pkgdesc = library for translating text and web pages between natural languages + pkgdesc = A natural language translation library pkgver = 0.99 - pkgrel = 1 + pkgrel = 3 url = http://www.nongnu.org/libtranslate/ - arch = any - license = GPL - makedepends = make, - makedepends = cpp - depends = glib - depends = libsoup - depends = libxml2 + arch = x86_64 + license = BSD + makedepends = intltool + makedepends = libxml2 + depends = talkfilters + depends = glib2 + options = !emptydirs source = http://savannah.nongnu.org/download/libtranslate/libtranslate-0.99.tar.gz - md5sums = 1fe75a6a6e8a0c6518890b5fa6984d42 + source = libtranslate-0.99-charsetparse.diff + source = libtranslate-0.99-condfix.diff + source = libtranslate-0.99-int64.diff + source = libtranslate-0.99-libsoup24.diff + source = libtranslate-0.99-postmarker.diff + source = libtranslate-0.99-services.diff + sha256sums = 4b2becb139e51663022d9531c430ebcc81d8b26edc73f6ddc05707ff9950eb34 + sha256sums = 5b34c339b6c96a4b644d5ebf74ad648413b93f736ed99443b0ec3268e2b4ec27 + sha256sums = 9470ae97322c5f44b0062c8be3a7a3bb709d98a8a0e01d6d6955851a94506137 + sha256sums = ff66a9a617cb54e1d53103e62695bafc1fcced826f2d49b5e3a337a4827be3e0 + sha256sums = 6ece1007d1bb302e6ce041e6847f7fec9e4208a607cfabe6f6f54210e6d13d51 + sha256sums = ba3439f5ea952e8f2c24b00df215e18f6177cd99da99ffce10f62a9b29e09664 + sha256sums = 2777704812ca0c51900a2f50c3e8987cd3124d1712c3450c74b2f1452b67c4a9 pkgname = libtranslate @@ -1,24 +1,51 @@ -# Maintainer: Eragon <sam.vzh@gmail.com> +# Contributor: Rafael Fontenelle <rafaelff@gnome.org> +# Contributor: Eragon <sam.vzh@gmail.com> + pkgname=libtranslate pkgver=0.99 -pkgrel=2 -pkgdesc="library for translating text and web pages between natural languages" -arch=('any') -url='http://www.nongnu.org/libtranslate/' -license=('GPL') -depends=('glib' 'libsoup' 'libxml2') -makedepends=('make', 'cpp') -source=(http://savannah.nongnu.org/download/libtranslate/$pkgname-$pkgver.tar.gz) -md5sums=('1fe75a6a6e8a0c6518890b5fa6984d42') +pkgrel=3 +pkgdesc="A natural language translation library" +arch=('x86_64') +url="http://www.nongnu.org/libtranslate/" +license=('BSD') +depends=('talkfilters' 'glib2') +makedepends=('intltool' 'libxml2') #libsoup +options=(!emptydirs) +source=("http://savannah.nongnu.org/download/$pkgname/$pkgname-$pkgver.tar.gz" + 'libtranslate-0.99-charsetparse.diff' + 'libtranslate-0.99-condfix.diff' + 'libtranslate-0.99-int64.diff' + 'libtranslate-0.99-libsoup24.diff' + 'libtranslate-0.99-postmarker.diff' + 'libtranslate-0.99-services.diff') +sha256sums=('4b2becb139e51663022d9531c430ebcc81d8b26edc73f6ddc05707ff9950eb34' + '5b34c339b6c96a4b644d5ebf74ad648413b93f736ed99443b0ec3268e2b4ec27' + '9470ae97322c5f44b0062c8be3a7a3bb709d98a8a0e01d6d6955851a94506137' + 'ff66a9a617cb54e1d53103e62695bafc1fcced826f2d49b5e3a337a4827be3e0' + '6ece1007d1bb302e6ce041e6847f7fec9e4208a607cfabe6f6f54210e6d13d51' + 'ba3439f5ea952e8f2c24b00df215e18f6177cd99da99ffce10f62a9b29e09664' + '2777704812ca0c51900a2f50c3e8987cd3124d1712c3450c74b2f1452b67c4a9') + + +prepare() { + cd "$srcdir/$pkgname-$pkgver" + patch -p0 -i "$srcdir/libtranslate-0.99-charsetparse.diff" + patch -p0 -i "$srcdir/libtranslate-0.99-condfix.diff" + patch -p0 -i "$srcdir/libtranslate-0.99-int64.diff" + patch -p1 -i "$srcdir/libtranslate-0.99-libsoup24.diff" + patch -p1 -i "$srcdir/libtranslate-0.99-postmarker.diff" + patch -p1 -i "$srcdir/libtranslate-0.99-services.diff" +} build() { - [ -f /etc/profile.d/gnome.sh ] && . /etc/profile.d/gnome.sh - cd $srcdir/$pkgname-$pkgver - ./configure --prefix=/usr + cd "$srcdir/$pkgname-$pkgver" + ./configure --prefix=/usr --mandir=/usr/share --enable-talkfilters \ + --disable-generic # disables libsoup; breaks compilation make } package() { - cd $srcdir/$pkgname-$pkgver - make DESTDIR=$pkgdir install + cd "$srcdir/$pkgname-$pkgver" + make DESTDIR="$pkgdir/" install + install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/LICENSE" } diff --git a/libtranslate-0.99-charsetparse.diff b/libtranslate-0.99-charsetparse.diff new file mode 100644 index 000000000000..1626f25ff71f --- /dev/null +++ b/libtranslate-0.99-charsetparse.diff @@ -0,0 +1,47 @@ +--- src/modules/translate-generic-service.c.orig Mon Apr 11 23:08:47 2005 ++++ src/modules/translate-generic-service.c Mon Apr 11 23:15:54 2005 +@@ -484,7 +484,7 @@ + + if (SOUP_STATUS_IS_SUCCESSFUL(message->status_code)) + { +- const char *charset = NULL; ++ char *charset = NULL; + + if (flags & TRANSFER_CONVERT) + { +@@ -493,14 +493,31 @@ + content_type = translate_generic_service_get_header(message, &info, "Content-Type"); + if (content_type) + { +- charset = translate_ascii_strcasestr(content_type, "charset="); +- if (charset) +- charset += 8; ++ const char *tmp; ++ ++ tmp = translate_ascii_strcasestr(content_type, "charset="); ++ if (tmp) ++ { ++ int len; ++ ++ tmp += 8; ++ if (*tmp == '\'' || *tmp == '"') ++ tmp++; ++ ++ len = strlen(tmp); ++ if (len > 0 && (tmp[len - 1] == '\'' || tmp[len - 1] == '"')) ++ len--; ++ ++ charset = g_strndup(tmp, len); ++ } + } + } + + if (charset) +- response = g_convert(message->response.body, message->response.length, "UTF-8", charset, NULL, NULL, err); ++ { ++ response = g_convert(message->response.body, message->response.length, "UTF-8", charset, NULL, NULL, err); ++ g_free(charset); ++ } + else + { + if ((flags & TRANSFER_CONVERT) && ! g_utf8_validate(message->response.body, message->response.length, NULL)) diff --git a/libtranslate-0.99-condfix.diff b/libtranslate-0.99-condfix.diff new file mode 100644 index 000000000000..4011dcd7d5c1 --- /dev/null +++ b/libtranslate-0.99-condfix.diff @@ -0,0 +1,38 @@ +--- src/translate-session.c.orig Mon Apr 11 22:44:53 2005 ++++ src/translate-session.c Mon Apr 11 22:51:48 2005 +@@ -703,7 +703,14 @@ + GError *tmp_err = NULL; + + g_mutex_lock(info->mutex); +- ret = info->err != NULL; ++ if (info->err) ++ { ++ ret = TRUE; ++ if (info->progress_cond) ++ g_cond_signal(info->progress_cond); ++ } ++ else ++ ret = FALSE; + g_mutex_unlock(info->mutex); + + if (ret) +@@ -728,6 +735,9 @@ + else + g_propagate_error(&info->err, tmp_err); + ++ if (info->progress_cond) ++ g_cond_signal(info->progress_cond); ++ + g_mutex_unlock(info->mutex); + + return; +@@ -759,6 +769,9 @@ + info->err = g_error_new(TRANSLATE_SESSION_ERROR, + TRANSLATE_SESSION_ERROR_NO_SERVICE, + _("no service could translate chunk")); ++ ++ if (info->progress_cond) ++ g_cond_signal(info->progress_cond); + } + + g_mutex_unlock(info->mutex); diff --git a/libtranslate-0.99-int64.diff b/libtranslate-0.99-int64.diff new file mode 100644 index 000000000000..abd28256f9c5 --- /dev/null +++ b/libtranslate-0.99-int64.diff @@ -0,0 +1,11 @@ +--- src/translate-util.c.orig Mon Jan 17 17:45:45 2005 ++++ src/translate-util.c Fri Dec 30 22:26:26 2005 +@@ -136,7 +136,7 @@ + g_return_val_if_fail(big != NULL, NULL); + g_return_val_if_fail(little != NULL, NULL); + +- lower_big = g_ascii_strdown(big, big_len); ++ lower_big = g_ascii_strdown(big, (int) big_len); + lower_little = g_ascii_strdown(little, -1); + + s = strstr(lower_big, lower_little); diff --git a/libtranslate-0.99-libsoup24.diff b/libtranslate-0.99-libsoup24.diff new file mode 100644 index 000000000000..fa5b9baa9f33 --- /dev/null +++ b/libtranslate-0.99-libsoup24.diff @@ -0,0 +1,558 @@ +--- a/configure 2005-01-28 10:35:36.000000000 -0200 ++++ b/configure 2016-07-05 06:26:01.424894115 -0300 +@@ -21782,23 +21782,23 @@ + else + PKG_CONFIG_MIN_VERSION=0.9.0 + if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then +- echo "$as_me:$LINENO: checking for libsoup-2.2" >&5 +-echo $ECHO_N "checking for libsoup-2.2... $ECHO_C" >&6 ++ echo "$as_me:$LINENO: checking for libsoup-2.4" >&5 ++echo $ECHO_N "checking for libsoup-2.4... $ECHO_C" >&6 + +- if $PKG_CONFIG --exists "libsoup-2.2" ; then ++ if $PKG_CONFIG --exists "libsoup-2.4" ; then + echo "$as_me:$LINENO: result: yes" >&5 + echo "${ECHO_T}yes" >&6 + succeeded=yes + + echo "$as_me:$LINENO: checking SOUP_CFLAGS" >&5 + echo $ECHO_N "checking SOUP_CFLAGS... $ECHO_C" >&6 +- SOUP_CFLAGS=`$PKG_CONFIG --cflags "libsoup-2.2"` ++ SOUP_CFLAGS=`$PKG_CONFIG --cflags "libsoup-2.4"` + echo "$as_me:$LINENO: result: $SOUP_CFLAGS" >&5 + echo "${ECHO_T}$SOUP_CFLAGS" >&6 + + echo "$as_me:$LINENO: checking SOUP_LIBS" >&5 + echo $ECHO_N "checking SOUP_LIBS... $ECHO_C" >&6 +- SOUP_LIBS=`$PKG_CONFIG --libs "libsoup-2.2"` ++ SOUP_LIBS=`$PKG_CONFIG --libs "libsoup-2.4"` + echo "$as_me:$LINENO: result: $SOUP_LIBS" >&5 + echo "${ECHO_T}$SOUP_LIBS" >&6 + else +@@ -21806,7 +21806,7 @@ + SOUP_LIBS="" + ## If we have a custom action on failure, don't print errors, but + ## do set a variable so people can do so. +- SOUP_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libsoup-2.2"` ++ SOUP_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libsoup-2.4"` + + fi + +diff -ur libtranslate-0.99.orig/config.h.in libtranslate-0.99/config.h.in +--- libtranslate-0.99.orig/config.h.in 2005-01-17 12:06:58.000000000 -0500 ++++ libtranslate-0.99/config.h.in 2008-01-28 18:45:19.000000000 -0500 +@@ -24,6 +24,12 @@ + /* Define if your <locale.h> file defines LC_MESSAGES. */ + #undef HAVE_LC_MESSAGES + ++/* Building with libsoup 2.2 */ ++#undef HAVE_LIBSOUP22 ++ ++/* Building with libsoup 2.4 */ ++#undef HAVE_LIBSOUP24 ++ + /* Define to 1 if you have the <locale.h> header file. */ + #undef HAVE_LOCALE_H + +diff -ur libtranslate-0.99.orig/src/modules/translate-generic-service.c libtranslate-0.99/src/modules/translate-generic-service.c +--- libtranslate-0.99.orig/src/modules/translate-generic-service.c 2008-01-28 19:34:27.000000000 -0500 ++++ libtranslate-0.99/src/modules/translate-generic-service.c 2008-01-30 09:50:35.000000000 -0500 +@@ -35,7 +35,9 @@ + #include <stdlib.h> + #include <glib/gi18n-lib.h> + #include <libsoup/soup.h> ++#ifdef HAVE_LIBSOUP22 + #include <libsoup/soup-message-filter.h> ++#endif + #include <libxml/HTMLparser.h> + #include "translate.h" + #include "translate-generic-service.h" +@@ -43,6 +45,17 @@ + #include "translate-generic-parser.h" + #include "translate-generic-soup-cookie-jar.h" + ++#ifdef HAVE_LIBSOUP22 ++#define soup_message_headers_get soup_message_get_header ++#define soup_message_headers_append soup_message_add_header ++#define SoupURI SoupUri ++#define SOUP_MESSAGE_RESPONSE_BODY(msg) ((msg)->response.body) ++#define SOUP_MESSAGE_RESPONSE_LENGTH(msg) ((msg)->response.length) ++#else ++#define SOUP_MESSAGE_RESPONSE_BODY(msg) ((msg)->response_body->data) ++#define SOUP_MESSAGE_RESPONSE_LENGTH(msg) ((msg)->response_body->length) ++#endif ++ + #define MAKE_WARNING_PREFIX(service, group_pos, attribute, element) \ + g_strdup_printf(_("in %s, group %i, \"%s\" attribute of \"%s\" element"), \ + translate_service_get_name((service)), \ +@@ -140,6 +153,7 @@ + const char *name); + + static void translate_generic_service_log_connect (SoupMessage *message); ++#ifdef HAVE_LIBSOUP22 + static void translate_generic_service_log_wrote_headers_h (SoupMessage *message, + gpointer user_data); + static void translate_generic_service_log_wrote_body_h (SoupMessage *message, +@@ -151,10 +165,20 @@ + static void translate_generic_service_log_headers_cb (const char *key, + const char *value, + gpointer user_data); ++#else ++static void translate_generic_service_log_printer (SoupLogger *logger, ++ SoupLoggerLogLevel level, ++ char direction, ++ const char *data, ++ gpointer user_data); ++#endif + + static void translate_generic_service_progress_got_headers_h (SoupMessage *message, + gpointer user_data); + static void translate_generic_service_progress_got_chunk_h (SoupMessage *message, ++#ifdef HAVE_LIBSOUP24 ++ SoupBuffer *chunk, ++#endif + gpointer user_data); + + static void translate_generic_service_html_got_headers_h (SoupMessage *message, +@@ -170,8 +194,10 @@ + static void translate_generic_service_refresh_got_body_h (SoupMessage *message, + gpointer user_data); + ++#ifdef HAVE_LIBSOUP22 + static void translate_generic_service_redirect_handler (SoupMessage *message, + gpointer user_data); ++#endif + + static char *translate_generic_service_translate_text (TranslateService *service, + const char *text, +@@ -419,7 +445,11 @@ + g_return_val_if_fail(post_content_type != NULL, NULL); + soup_message_set_request(message, + post_content_type, ++#ifdef HAVE_LIBSOUP22 + SOUP_BUFFER_USER_OWNED, ++#else ++ SOUP_MEMORY_TEMPORARY, ++#endif + (char *) post, + strlen(post)); + } +@@ -427,7 +457,7 @@ + for (l = headers; l != NULL; l = l->next) + { + TranslateGenericHttpHeader *header = l->data; +- soup_message_add_header(message->request_headers, header->name, header->value); ++ soup_message_headers_append(message->request_headers, header->name, header->value); + } + + info.session = translate_generic_service_soup_session_sync_new(); +@@ -435,12 +465,21 @@ + info.html_http_equiv = NULL; + + if (translate_generic_debug_flags & TRANSLATE_GENERIC_DEBUG_LOG_TRANSFERS) +- g_object_connect(message, +- "signal::wrote-headers", translate_generic_service_log_wrote_headers_h, &info, +- "signal::wrote-body", translate_generic_service_log_wrote_body_h, &info, +- "signal::got-headers", translate_generic_service_log_got_headers_h, &info, +- "signal::got-body", translate_generic_service_log_got_body_h, &info, +- NULL); ++ { ++#ifdef HAVE_LIBSOUP22 ++ g_object_connect(message, ++ "signal::wrote-headers", translate_generic_service_log_wrote_headers_h, &info, ++ "signal::wrote-body", translate_generic_service_log_wrote_body_h, &info, ++ "signal::got-headers", translate_generic_service_log_got_headers_h, &info, ++ "signal::got-body", translate_generic_service_log_got_body_h, &info, ++ NULL); ++#else ++ SoupLogger *logger = soup_logger_new (SOUP_LOGGER_LOG_BODY, -1); ++ soup_logger_set_printer (logger, translate_generic_service_log_printer, NULL, NULL); ++ soup_logger_attach (logger, info.session); ++ g_object_unref (logger); ++#endif ++ } + + if (progress_func) + { +@@ -468,6 +507,7 @@ + if (flags & TRANSFER_FOLLOW_REFRESH) + g_signal_connect(message, "got-body", G_CALLBACK(translate_generic_service_refresh_got_body_h), &info); + ++#ifdef HAVE_LIBSOUP22 + /* http://bugzilla.ximian.com/show_bug.cgi?id=70688 */ + soup_message_set_flags(message, SOUP_MESSAGE_NO_REDIRECT); + soup_message_add_status_class_handler(message, +@@ -475,6 +515,7 @@ + SOUP_HANDLER_POST_BODY, + translate_generic_service_redirect_handler, + info.session); ++#endif + + if (translate_generic_debug_flags & TRANSLATE_GENERIC_DEBUG_LOG_TRANSFERS) + translate_generic_service_log_connect(message); +@@ -515,18 +556,18 @@ + + if (charset) + { +- response = g_convert(message->response.body, message->response.length, "UTF-8", charset, NULL, NULL, err); ++ response = g_convert(SOUP_MESSAGE_RESPONSE_BODY (message), SOUP_MESSAGE_RESPONSE_LENGTH (message), "UTF-8", charset, NULL, NULL, err); + g_free(charset); + } + else + { +- if ((flags & TRANSFER_CONVERT) && ! g_utf8_validate(message->response.body, message->response.length, NULL)) ++ if ((flags & TRANSFER_CONVERT) && ! g_utf8_validate(SOUP_MESSAGE_RESPONSE_BODY (message), SOUP_MESSAGE_RESPONSE_LENGTH (message), NULL)) + g_set_error(err, + TRANSLATE_GENERIC_SERVICE_ERROR, + TRANSLATE_GENERIC_SERVICE_ERROR_TRANSFER, + _("invalid UTF-8")); + else +- response = g_strndup(message->response.body, message->response.length); ++ response = g_strndup(SOUP_MESSAGE_RESPONSE_BODY (message), SOUP_MESSAGE_RESPONSE_LENGTH (message)); + } + } + else +@@ -567,7 +608,7 @@ + : NULL; + + if (! value) +- value = soup_message_get_header(message->response_headers, name); ++ value = soup_message_headers_get(message->response_headers, name); + + return value; + } +@@ -575,12 +616,14 @@ + static void + translate_generic_service_log_connect (SoupMessage *message) + { +- const SoupUri *uri; ++ const SoupURI *uri; + + uri = soup_message_get_uri(message); + g_log(G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, _("connecting to %s:%i"), uri->host, uri->port); + } + ++#ifdef HAVE_LIBSOUP22 ++ + static void + translate_generic_service_log_wrote_headers_h (SoupMessage *message, + gpointer user_data) +@@ -635,6 +678,20 @@ + g_log(G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s %s: %s", prefix, key, value); + } + ++#else /* !HAVE_LIBSOUP22 */ ++ ++static void ++translate_generic_service_log_printer (SoupLogger *logger, ++ SoupLoggerLogLevel level, ++ char direction, ++ const char *data, ++ gpointer user_data) ++{ ++ g_log(G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%c %s", direction, data); ++} ++ ++#endif /* HAVE_LIBSOUP22 */ ++ + static void + translate_generic_service_progress_got_headers_h (SoupMessage *message, + gpointer user_data) +@@ -642,7 +699,7 @@ + TransferInfo *info = user_data; + const char *content_length; + +- content_length = soup_message_get_header(message->response_headers, "Content-Length"); ++ content_length = soup_message_headers_get(message->response_headers, "Content-Length"); + info->length = (content_length + && *content_length + && strspn(content_length, "0123456789") == strlen(content_length)) +@@ -652,6 +709,9 @@ + + static void + translate_generic_service_progress_got_chunk_h (SoupMessage *message, ++#ifdef HAVE_LIBSOUP24 ++ SoupBuffer *chunk, ++#endif + gpointer user_data) + { + TransferInfo *info = user_data; +@@ -661,7 +721,11 @@ + progress = -1; + else + { ++#ifdef HAVE_LIBSOUP22 + info->received += message->response.length; ++#else ++ info->received += chunk->length; ++#endif + progress = (double) info->received / info->length; + progress = CLAMP(progress, 0.0, 1.0); + } +@@ -677,7 +741,7 @@ + TransferInfo *info = user_data; + const char *content_type; + +- content_type = soup_message_get_header(message->response_headers, "Content-Type"); ++ content_type = soup_message_headers_get(message->response_headers, "Content-Type"); + info->parse_html = content_type + && (g_str_has_prefix(content_type, "text/html") + || g_str_has_prefix(content_type, "application/xhtml+xml") +@@ -697,7 +761,7 @@ + info->html_http_equiv = NULL; + } + +- if (info->parse_html && message->response.length > 0) ++ if (info->parse_html && SOUP_MESSAGE_RESPONSE_LENGTH (message) > 0) + { + char *body; + xmlSAXHandler sax_handler = { NULL }; +@@ -711,7 +775,7 @@ + sax_handler.startElement = translate_generic_service_html_start_element_cb; + sax_handler.endElement = translate_generic_service_html_end_element_cb; + +- body = g_strndup(message->response.body, message->response.length); ++ body = g_strndup(SOUP_MESSAGE_RESPONSE_BODY (message), SOUP_MESSAGE_RESPONSE_LENGTH (message)); + htmlSAXParseDoc(body, NULL, &sax_handler, user_data); + g_free(body); + } +@@ -778,7 +842,7 @@ + { + TransferInfo *info = user_data; + const char *refresh_uri; +- SoupUri *new_uri = NULL; ++ SoupURI *new_uri = NULL; + + refresh_uri = translate_generic_service_get_header(message, info, "Refresh"); + if (refresh_uri) +@@ -793,9 +857,9 @@ + new_uri = soup_uri_new(refresh_uri); + if (! new_uri) + { +- const SoupUri *base_uri; ++ SoupURI *base_uri; + +- base_uri = soup_message_get_uri(message); ++ base_uri = (SoupURI *)soup_message_get_uri(message); + new_uri = soup_uri_new_with_base(base_uri, refresh_uri); + } + } +@@ -812,6 +876,7 @@ + } + } + ++#ifdef HAVE_LIBSOUP22 + static void + translate_generic_service_redirect_handler (SoupMessage *message, + gpointer user_data) +@@ -848,6 +913,7 @@ + soup_session_requeue_message(session, message); + } + } ++#endif + + static char * + translate_generic_service_translate_text (TranslateService *service, +@@ -1314,7 +1380,7 @@ + translate_generic_service_soup_session_sync_new (void) + { + char *proxy_text_uri; +- SoupUri *proxy_uri = NULL; ++ SoupURI *proxy_uri = NULL; + SoupSession *session; + TranslateGenericSoupCookieJar *cookie_jar; + +@@ -1334,7 +1400,7 @@ + soup_uri_free(proxy_uri); + + cookie_jar = translate_generic_soup_cookie_jar_new(); +- soup_session_add_filter(session, SOUP_MESSAGE_FILTER(cookie_jar)); ++ translate_generic_soup_cookie_jar_attach(cookie_jar, session); + g_object_unref(cookie_jar); + + return session; +diff -ur libtranslate-0.99.orig/src/modules/translate-generic-soup-cookie-jar.c libtranslate-0.99/src/modules/translate-generic-soup-cookie-jar.c +--- libtranslate-0.99.orig/src/modules/translate-generic-soup-cookie-jar.c 2005-01-17 11:46:53.000000000 -0500 ++++ libtranslate-0.99/src/modules/translate-generic-soup-cookie-jar.c 2008-01-28 19:48:21.000000000 -0500 +@@ -29,9 +29,12 @@ + * POSSIBILITY OF SUCH DAMAGE. + */ + ++#include "config.h" + #include <string.h> + #include <libsoup/soup.h> ++#ifdef HAVE_LIBSOUP22 + #include <libsoup/soup-message-filter.h> ++#endif + #include "translate-generic-soup-cookie-jar.h" + + struct _TranslateGenericSoupCookieJarPrivate +@@ -44,9 +47,12 @@ + static void translate_generic_soup_cookie_jar_register_type (GType *type); + static void translate_generic_soup_cookie_jar_class_init (TranslateGenericSoupCookieJarClass *class); + static void translate_generic_soup_cookie_jar_init (TranslateGenericSoupCookieJar *jar); ++#ifdef HAVE_LIBSOUP22 + static void translate_generic_soup_cookie_jar_filter_init (SoupMessageFilterClass *iface); ++#else ++#define SoupMessageFilter TranslateGenericSoupCookieJar ++#endif + static void translate_generic_soup_cookie_jar_finalize (GObject *object); +- + static void translate_generic_soup_cookie_jar_setup_message (SoupMessageFilter *filter, + SoupMessage *message); + +@@ -75,17 +81,21 @@ + 0, + (GInstanceInitFunc) translate_generic_soup_cookie_jar_init + }; ++#ifdef HAVE_LIBSOUP22 + static const GInterfaceInfo filter_info = { + (GInterfaceInitFunc) translate_generic_soup_cookie_jar_filter_init, + NULL, + NULL + }; ++#endif + + *type = g_type_register_static(G_TYPE_OBJECT, + "TranslateGenericSoupCookieJar", + &info, + 0); ++#ifdef HAVE_LIBSOUP22 + g_type_add_interface_static(*type, SOUP_TYPE_MESSAGE_FILTER, &filter_info); ++#endif + } + + static void +@@ -107,11 +117,13 @@ + TranslateGenericSoupCookieJarPrivate); + } + ++#ifdef HAVE_LIBSOUP22 + static void + translate_generic_soup_cookie_jar_filter_init (SoupMessageFilterClass *iface) + { + iface->setup_message = translate_generic_soup_cookie_jar_setup_message; + } ++#endif + + static void + translate_generic_soup_cookie_jar_finalize (GObject *object) +@@ -125,26 +137,46 @@ + } + + static void ++add_cookie_to_jar (TranslateGenericSoupCookieJar *jar, const char *cookie) ++{ ++ char *s; ++ ++ s = strchr(cookie, ';'); ++ if (s) ++ jar->priv->cookies = g_slist_append(jar->priv->cookies, g_strndup(cookie, s - cookie)); ++} ++ ++#ifdef HAVE_LIBSOUP24 ++static void ++maybe_add_cookie_to_jar (const char *header, const char *value, gpointer jar) ++{ ++ if (!g_ascii_strcasecmp (header, "Set-Cookie")) ++ add_cookie_to_jar (jar, value); ++} ++#endif ++ ++static void + translate_generic_soup_cookie_jar_setup_message (SoupMessageFilter *filter, +- SoupMessage *message) ++ SoupMessage *message) + { + TranslateGenericSoupCookieJar *jar = TRANSLATE_GENERIC_SOUP_COOKIE_JAR(filter); +- const GSList *cookies; + const GSList *l; + + /* FIXME: add full RFC 2965 support */ + ++#ifdef HAVE_LIBSOUP22 ++ const GSList *cookies; ++ + cookies = soup_message_get_header_list(message->response_headers, "Set-Cookie"); + for (l = cookies; l != NULL; l = l->next) + { + const char *cookie = l->data; +- char *s; +- +- s = strchr(cookie, ';'); +- if (s) +- jar->priv->cookies = g_slist_append(jar->priv->cookies, g_strndup(cookie, s - cookie)); ++ add_cookie_to_jar(jar, cookie); + } +- ++#else ++ soup_message_headers_foreach(message->response_headers, maybe_add_cookie_to_jar, jar); ++#endif ++ + if (jar->priv->cookies) + { + GString *string; +@@ -159,13 +191,44 @@ + g_string_append(string, "; "); + } + ++#ifdef HAVE_LIBSOUP22 + soup_message_add_header(message->request_headers, "Cookie", string->str); ++#else ++ soup_message_headers_append(message->request_headers, "Cookie", string->str); ++#endif + g_string_free(string, TRUE); + } + } + ++#ifdef HAVE_LIBSOUP24 ++static void ++translate_generic_soup_cookie_jar_request_started (SoupSession *session, ++ SoupMessage *message, ++ SoupSocket *socket, ++ gpointer cookie_jar) ++{ ++ translate_generic_soup_cookie_jar_setup_message (cookie_jar, message); ++} ++#endif ++ + TranslateGenericSoupCookieJar * + translate_generic_soup_cookie_jar_new (void) + { + return g_object_new(TRANSLATE_GENERIC_TYPE_SOUP_COOKIE_JAR, NULL); + } ++ ++void ++translate_generic_soup_cookie_jar_attach (TranslateGenericSoupCookieJar *cookie_jar, ++ SoupSession *session) ++{ ++#ifdef HAVE_LIBSOUP22 ++ soup_session_add_filter (session, SOUP_MESSAGE_FILTER(cookie_jar)); ++#else ++ g_signal_connect (session, "request_started", ++ G_CALLBACK (translate_generic_soup_cookie_jar_request_started), ++ cookie_jar); ++ g_object_set_data_full (G_OBJECT (session), "TranslateGenericSoupCookieJar", ++ g_object_ref (cookie_jar), g_object_unref); ++#endif ++} ++ +diff -ur libtranslate-0.99.orig/src/modules/translate-generic-soup-cookie-jar.h libtranslate-0.99/src/modules/translate-generic-soup-cookie-jar.h +--- libtranslate-0.99.orig/src/modules/translate-generic-soup-cookie-jar.h 2005-01-17 11:47:00.000000000 -0500 ++++ libtranslate-0.99/src/modules/translate-generic-soup-cookie-jar.h 2008-01-28 19:17:24.000000000 -0500 +@@ -33,6 +33,7 @@ + #define _TRANSLATE_GENERIC_SOUP_COOKIE_JAR_H + + #include <glib-object.h> ++#include <libsoup/soup-session.h> + + #define TRANSLATE_GENERIC_TYPE_SOUP_COOKIE_JAR (translate_generic_soup_cookie_jar_get_type()) + #define TRANSLATE_GENERIC_SOUP_COOKIE_JAR(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), TRANSLATE_GENERIC_TYPE_SOUP_COOKIE_JAR, TranslateGenericSoupCookieJar)) +@@ -59,5 +60,6 @@ + + GType translate_generic_soup_cookie_jar_get_type (void); + TranslateGenericSoupCookieJar *translate_generic_soup_cookie_jar_new (void); ++void translate_generic_soup_cookie_jar_attach (TranslateGenericSoupCookieJar *cookie_jar, SoupSession *session); + + #endif /* _TRANSLATE_GENERIC_SOUP_COOKIE_JAR_H */ + diff --git a/libtranslate-0.99-postmarker.diff b/libtranslate-0.99-postmarker.diff new file mode 100644 index 000000000000..38112a3340a7 --- /dev/null +++ b/libtranslate-0.99-postmarker.diff @@ -0,0 +1,13 @@ +diff -Nrbu libtranslate-0.99/src/modules/translate-generic-service.c libtranslate-0.99-OK/src/modules/translate-generic-service.c +--- libtranslate-0.99/src/modules/translate-generic-service.c 2007-12-06 17:27:26.000000000 +0300 ++++ libtranslate-0.99-OK/src/modules/translate-generic-service.c 2007-12-06 17:27:10.000000000 +0300 +@@ -955,7 +955,7 @@ + raw = g_strndup(work, s - work); + } + else +- raw = g_strdup(response); ++ raw = g_strdup(work); + } + + if (raw) + diff --git a/libtranslate-0.99-services.diff b/libtranslate-0.99-services.diff new file mode 100644 index 000000000000..5b0fa5037445 --- /dev/null +++ b/libtranslate-0.99-services.diff @@ -0,0 +1,174 @@ +diff -Nrbu libtranslate-0.99/data/services.xml.in libtranslate-0.99-OK/data/services.xml.in +--- libtranslate-0.99/data/services.xml.in 2005-01-17 19:54:27.000000000 +0300 ++++ libtranslate-0.99-OK/data/services.xml.in 2007-12-10 15:09:25.000000000 +0300 +@@ -73,28 +73,34 @@ + <language tag="ru" to="en"/> + <language tag="es" to="en,fr"/> + <language tag="sv" to="en"/> +- <http-header name="Referer" value="http://www.systransoft.com/"/> +- <text-translation url="http://www.systranbox.com/systran/box?systran_charset=utf-8&ttype=text&systran_text=${text:escape}&systran_lp=${from}_${to}"> +- <pre-marker text="<textarea name="translation""/> +- <pre-marker text=">"/> +- <post-marker text="</textarea>"/> ++ <text-translation url="http://www2.systranbox.com/sai?gui=sbox/normal/systran/sboxEN&lp=${from}_${to}&service=translate" post="${text}"> ++ <pre-marker text="body= "/> + </text-translation> +- <web-page-translation url="http://www.systranbox.com/systran/box?systran_id=SystranSoft-en&systran_url=${url:escape}&systran_lp=${from}_${to}&systran_f=${time}"/> ++ <web-page-translation url="http://svsurl.systransoft.com/?trans=1&gui=sbox/normal/systran/systranEN&lp=${from}_${to}&loc_lang=en&path=systran/systranEN&frame=1&url=${url:escape}"/> + </group> + </service> + + <service name="google" nick="Google"> + <group> + <language tag="en" to="*"/> +- <language tag="fr" to="en,de"/> ++ <language tag="ar" to="en"/> + <language tag="de" to="en,fr"/> ++ <language tag="el" to="en"/> ++ <language tag="es" to="en"/> ++ <language tag="fr" to="en,de"/> + <language tag="it" to="en"/> ++ <language tag="ja" to="en"/> ++ <language tag="ko" to="en"/> ++ <language tag="nl" to="en"/> + <language tag="pt" to="en"/> +- <language tag="es" to="en"/> ++ <language tag="ru" to="en"/> ++ <language tag="zh" service-tag="zh-CN" to="en,zh-TW"/> ++ <language tag="zh-TW" to="zh"/> + <text-translation url="http://www.google.com/translate_t?text=${text:escape}&langpair=${from}|${to}&ie=utf8&oe=utf8"> +- <pre-marker text="<textarea"/> ++ <pre-marker text="<div id="/> ++ <pre-marker text="result_box"/> + <pre-marker text=">"/> +- <post-marker text="</textarea>"/> ++ <post-marker text="</div>"/> + </text-translation> + <web-page-translation url="http://www.google.com/translate_c?u=${url:escape}&langpair=${from}|${to}"/> + </group> +@@ -120,29 +126,10 @@ + <language tag="ru" service-tag="russian" to="en"/> + <text-translation url="http://ets6.freetranslation.com/?sequence=core&srctext=${text:escape}&language=${from}/${to}&charset=utf-8"/> + </group> +- </service> +- +- <service name="worldlingo" nick="WorldLingo"> + <group> +- <language tag="en" to="*"/> +- <language tag="zh" service-tag="zh_cn" to="*"/> +- <language tag="zh-TW" service-tag="zh_tw" to="*"/> +- <language tag="nl" to="*"/> +- <language tag="fr" to="*"/> +- <language tag="de" to="*"/> +- <language tag="el" to="*"/> +- <language tag="it" to="*"/> +- <language tag="ja" to="*"/> +- <language tag="ko" to="*"/> +- <language tag="pt" to="*"/> +- <language tag="ru" to="*"/> +- <language tag="es" to="*"/> +- <text-translation url="http://www.worldlingo.com/wl/translate?wl_text=${text:escape}&wl_srclang=${from}&wl_trglang=${to}&wl_ucp=1"> +- <pre-marker text="<textarea name="wl_result"/> +- <pre-marker text=">"/> +- <post-marker text="</textarea>"/> +- </text-translation> +- <web-page-translation url="http://www.worldlingo.com/wl/translate?wl_url=${url:escape}&wl_srclang=${from}&wl_trglang=${to}&wl_fl=2"/> ++ <language tag="en" service-tag="english" to="*"/> ++ <language tag="ja" service-tag="japanese" to ="en"/> ++ <text-translation url="http://tets9.freetranslation.com/?sequence=core&srctext=${text:escape}&language=${from}/${to}&charset=utf-8"/> + </group> + </service> + +@@ -167,7 +154,7 @@ + <language tag="uk" service-tag="Ukrainian" to="*"/> + <text-translation + url="http://www.1-800-translate.com/machine_trans/process_free_trans.asp" +- post="transfrom=${from}&transto=${to}&sourcetext=${text:escape}&expiredlang=no"> ++ post="transfrom=${from}&transto=${to}&transtext=${text:escape}&expiredlang=no"> + <pre-marker text="<textarea name="transresult"/> + <pre-marker text="> "/> + <post-marker text=" </textarea>"/> +@@ -175,48 +162,6 @@ + </group> + </service> + +- <service name="tsunami" nick="Tsunami"> +- <group> +- <language tag="ar" service-tag="AR"/> +- <language tag="bg" service-tag="BL" to="*"/> +- <language tag="zh" service-tag="ZH" to="*"/> +- <language tag="zh-TW" service-tag="ZH_TW" to="*"/> +- <language tag="hr" service-tag="CR" to="*"/> +- <language tag="cs" service-tag="CZ" to="*"/> +- <language tag="da" service-tag="DN" to="*"/> +- <language tag="nl" service-tag="NL" to="*"/> +- <language tag="en" service-tag="EN" to="*"/> +- <language tag="fi" service-tag="FI" to="*"/> +- <language tag="fr" service-tag="FR" to="*"/> +- <language tag="de" service-tag="DE" to="*"/> +- <language tag="el" service-tag="EL" to="*"/> +- <language tag="hu" service-tag="HN" to="*"/> +- <language tag="is" service-tag="IC" to="*"/> +- <language tag="it" service-tag="IT" to="*"/> +- <language tag="ja" service-tag="JA" to="*"/> +- <language tag="ko" service-tag="KO" to="*"/> +- <language tag="la" service-tag="LT" to="*"/> +- <language tag="no" service-tag="NW" to="*"/> +- <language tag="pl" service-tag="PO" to="*"/> +- <language tag="pt" service-tag="PT" to="*"/> +- <language tag="ro" service-tag="RO" to="*"/> +- <language tag="ru" service-tag="RU" to="*"/> +- <language tag="sr" service-tag="SB" to="*"/> +- <language tag="sk" service-tag="SL" to="*"/> +- <language tag="es" service-tag="ES" to="*"/> +- <language tag="sv" service-tag="SW" to="*"/> +- <language tag="tr" service-tag="TK" to="*"/> +- <language tag="cy" service-tag="WE" to="*"/> +- <text-translation url="http://www.translationbooth.com/tb/aojb/Tpl/freeTranslation/?textCheck=1&original=${text:escape}&srcLang=${from}&trgLang=${to}"> +- <pre-marker text="<textarea name="original"/> +- <pre-marker text="<textarea"/> +- <pre-marker text=">"/> +- <post-marker text="</textarea>"/> +- <error-marker text=">Translation Server Busy, Please Retry.<"/> +- </text-translation> +- </group> +- </service> +- + <service name="kataku" nick="Kataku"> + <group> + <language tag="en" to="*"/> +@@ -237,11 +182,30 @@ + <group> + <language tag="en" service-tag="E" to="*"/> + <language tag="pap" service-tag="P" to="*"/> +- <text-translation url="http://www.donamaro.nl/papiamentu/index.php3?pAction=tradusi&pSel=${from}2${to}&pFrom=${text:charset=ISO8859-1,escape}"> +- <pre-marker text="<TEXTAREA NAME="pTo""/> ++ <text-translation url="http://www.donamaro.nl/papiamentu/index.php?pAction=tradusi&pSel=${from}2${to}&pFrom=${text:charset=ISO8859-1,escape}"> ++ <pre-marker text="<textarea name="pTo""/> ++ <pre-marker text=">"/> ++ <post-marker text="</textarea>"/> ++ </text-translation> ++ </group> ++ </service> ++ ++ <service nick="PROMT Online-Translator" name="promt" max-chunk-len="450"> ++ <group> ++ <language to="de,es,fr,pt,ru" tag="en" service-tag="e"/> ++ <language to="en,fr,es,ru" tag="de" service-tag="g"/> ++ <language to="de,en,fr,ru" tag="es" service-tag="s"/> ++ <language to="de,en,es,ru" tag="fr" service-tag="f"/> ++ <language to="en,ru" tag="it" service-tag="i"/> ++ <language to="en" tag="pt" service-tag="p"/> ++ <language to="de,en,es,fr" tag="ru" service-tag="r"/> ++ <text-translation url="http://www.online-translator.com/text.asp" post="lang=en&status=translate&source=${text:charset=windows-1251,escape}&direction=${from}${to}&template=General"> ++ <pre-marker text="<div id="r_text"/> + <pre-marker text=">"/> +- <post-marker text="</TEXTAREA>"/> ++ <pre-marker text=" "/> ++ <post-marker text="</div>"/> + </text-translation> ++ <web-page-translation url="http://www.online-translator.com/url/tran_url.asp?lang=en&url=${url:escape}&$direction=${from}${to}&template=General&cp1=NO&cp2=NO&autotranslate=on"/> + </group> + </service> + </services> + |