debian/0000755000000000000000000000000011547123071007167 5ustar debian/libtranslate-bin.install0000644000000000000000000000006511540531061014005 0ustar debian/tmp/usr/bin/* debian/tmp/usr/share/man/man1/* debian/control0000644000000000000000000000265611540755754010617 0ustar Source: libtranslate Priority: optional Maintainer: Ubuntu Developers XSBC-Original-Maintainer: Gauvain Pocentek Build-Depends: debhelper (>= 7.0.50~), dh-autoreconf, libxml-parser-perl, libglib2.0-dev, libsoup2.4-dev, autotools-dev, autoconf, automake, libtool, gtk-doc-tools Standards-Version: 3.8.4 Section: libs Homepage: http://www.nongnu.org/libtranslate/ Package: libtranslate-dev Section: libdevel Architecture: any Depends: libtranslate0 (= ${binary:Version}), ${misc:Depends} Description: Development files for libtranslate This package contains the files necessary for compiling programs that depend on libtranslate. Package: libtranslate0 Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} Description: library for translating text and web pages libtranslate is a library for translating text and web pages between natural languages. Its modular infrastructure allows the implementation of new translation services separately from the core library. Package: libtranslate-bin Section: utils Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} Description: command line translator translate-translator is a command line tool to translate texts to natural languages, based on the libtranslate library. debian/watch0000644000000000000000000000012611540531061010212 0ustar version=3 http://savannah.nongnu.org/download/libtranslate/libtranslate-(.*)\.tar\.gz debian/libtranslate-dev.links0000644000000000000000000000022611540531061013464 0ustar /usr/share/gtk-doc/html/libtranslate /usr/share/doc/libtranslate0-dev/html /usr/share/gtk-doc/html/libtranslate /usr/share/devhelp/books/libtranslate debian/libtranslate0.install0000644000000000000000000000025611540531061013321 0ustar debian/tmp/usr/lib/lib*.so.0.0.0 debian/tmp/usr/lib/lib*.so.0 debian/tmp/usr/lib/libtranslate/modules/*so debian/tmp/usr/share/libtranslate/* debian/tmp/usr/share/man/man5/* debian/libtranslate-dev.install0000644000000000000000000000030511547123014014012 0ustar debian/tmp/usr/lib/*a debian/tmp/usr/lib/lib*.so debian/tmp/usr/lib/pkgconfig/* debian/tmp/usr/lib/libtranslate/modules/*{a,la} debian/tmp/usr/share/gtk-doc/* debian/tmp/usr/include/libtranslate/* debian/shlibs.local0000644000000000000000000000003511540531061011460 0ustar libtranslate 0 libtranslate0 debian/changelog0000644000000000000000000000616711547123061011052 0ustar libtranslate (0.99-0ubuntu9) natty; urgency=low * debian/libtranslate-dev.install: Don't install libtool la-file per Policy 10.2. -- Andreas Moog Wed, 06 Apr 2011 19:42:42 +0200 libtranslate (0.99-0ubuntu8) natty; urgency=low * debian/patches/05_services.patch: - update services.xml, taken from Fedora (LP: #124287, #319110, #483423) * debian/patches/08_fix_modules_build.patch: - fix module build (LP: #419793) * convert to source format 3.0 (quilt) -- Andreas Moog Fri, 18 Mar 2011 00:31:09 +0100 libtranslate (0.99-0ubuntu7) lucid; urgency=low * Transition from libsoup2.2 to libsoup2.4: - update Build-Depends - add 06_libsoup24.patch, thanks to Dan Winship - rerun autotools: + add 07_macro_dir.patch to use macros from m4/ + debian/rules: add commands + add Build-Depends: autoconf, automake, libtool, gtk-doc-tools * Add autotools-dev to Build-Depends so that CDBS can update config.* * Add ${misc:Depends} to binary package dependencies. * debian/control - move Homepage to its own field - use ${binary:Version} instead of ${Source-Version} * Bump Standards-Version to 3.8.4. * Add a watch file. -- Ilya Barygin Mon, 22 Feb 2010 15:05:29 +0300 libtranslate (0.99-0ubuntu6) intrepid; urgency=low * add more complete debian/patch/05_services.patch from fedora. This updates SYSTRAN, Kataku and Google, removes WorldLingo and Tsunami, and adds PROMT (LP: #236483) * remove debian/patch/05_systran.patch (included in 05_services.patch) -- Jamie Strandboge Mon, 07 Jul 2008 03:00:17 -0400 libtranslate (0.99-0ubuntu5) intrepid; urgency=low * debian/patches/05_systran.patch: allow use of systran again. Based on patch from Dmitry Butskoy * References LP: #230027 http://savannah.nongnu.org/download/libtranslate/libtranslate-0.99-services.diff -- Jamie Strandboge Thu, 03 Jul 2008 13:30:39 -0400 libtranslate (0.99-0ubuntu4) gutsy; urgency=low * Add libtranslate-bin to Section: utils (probably wrong) * Bump standards to 3.7.2 (No changes) * Update maintainer per spec -- Barry deFreese Sun, 16 Sep 2007 22:15:53 -0400 libtranslate (0.99-0ubuntu3) feisty; urgency=low * Rebuild to get rid of libgnutls12. -- Daniel Holbach Thu, 14 Dec 2006 09:08:26 +0100 libtranslate (0.99-0ubuntu2) dapper; urgency=low * Switch to cdbs * Add a new binary package: libtranslate-bin * Change binary name to translate-bin * Add missing files in the 3 packages -- Gauvain Pocentek Wed, 25 Jan 2006 07:45:25 +0100 libtranslate (0.99-0ubuntu1) dapper; urgency=low * Initial release * 01_man_translate.dpatch: replaces bad french characters * Apply 3 upstream patches: 02_charsetparse.dpatch, fixes HTTP charset parsing 03_condfix.dpatch, fixes occasional translate_session_translate_text() lockup 04_memory_64.dpatch, fixes memory exhaustion on 64-bit platforms -- Gauvain Pocentek Wed, 14 Dec 2005 18:39:27 +0100 debian/patches/0000755000000000000000000000000011540766146010627 5ustar debian/patches/02_charsetparse.patch0000644000000000000000000000243611540531121014621 0ustar --- a/src/modules/translate-generic-service.c +++ b/src/modules/translate-generic-service.c @@ -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)) debian/patches/05_services.patch0000644000000000000000000005036111540751755014004 0ustar ## Description: update services file ## Origin/Author: Fedora, git commit fa19b073e84f567be7c32061417643d44bb0a5e1 ## Bug-Ubuntu: https://bugs.launchpad.net/bugs/124287, 319110, 483423 Index: libtranslate-0.99/data/services.xml.in =================================================================== --- libtranslate-0.99.orig/data/services.xml.in 2005-01-17 17:54:27.000000000 +0100 +++ libtranslate-0.99/data/services.xml.in 2011-03-18 22:45:47.484758119 +0100 @@ -1,246 +1,209 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - + - + - + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - - - - - - - - + + + + + + + - - - - + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - + - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - + + + + + + + + + + debian/patches/series0000644000000000000000000000027711540766154012051 0ustar 01_man_translate.patch 02_charsetparse.patch 03_condfix.patch 04_memory_64.patch 05_services.patch 06_libsoup24.patch 07_macro_dir.patch 08_fix_modules_build.patch 99_fix_skip_potfiles.patch debian/patches/01_man_translate.patch0000644000000000000000000000075011540531121014761 0ustar --- a/docs/man/translate.1 +++ b/docs/man/translate.1 @@ -149,7 +149,7 @@ Translates the contents of the file document1 from German to Spanish and prints the result to standard output\&. .TP -\fBecho\fR "Le problème est résolu\&." | \fBtranslate\fR \fB\-f\fR fr \fB\-t\fR en +\fBecho\fR "Le probl\(`eme est r\('esolu\&." | \fBtranslate\fR \fB\-f\fR fr \fB\-t\fR en Translates the text given on standard input from French to English and prints the result to standard output\&. .TP debian/patches/08_fix_modules_build.patch0000644000000000000000000000277711540531123015652 0ustar ## Description: fix module build ## Origin/Author: Fedora, git commit b836f02f372450af9901a4611fb6d4f00b847c37 ## Ubuntu-Bug: https://bugs.launchpad.net/bugs/419793 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,6 +1,6 @@ include $(top_srcdir)/common.make -SUBDIRS = modules +SUBDIRS = . modules public_headers = \ translate-common.h \ @@ -48,7 +48,7 @@ bin_PROGRAMS = translate translate_SOURCES = translate-cli.c -translate_LDADD = libtranslate.la +translate_LDADD = libtranslate.la -lgobject-2.0 -lglib-2.0 translate_CPPFLAGS = $(WARN_CFLAGS) $(GLIB_CFLAGS) \ -DG_LOG_DOMAIN="\"translate\"" --- a/src/modules/Makefile.am +++ b/src/modules/Makefile.am @@ -18,12 +18,12 @@ translate-generic-service.h \ translate-generic-soup-cookie-jar.c \ translate-generic-soup-cookie-jar.h -generic_la_LDFLAGS = -avoid-version -module $(SOUP_LIBS) $(LIBXML_LIBS) +generic_la_LDFLAGS = -avoid-version -module $(SOUP_LIBS) $(LIBXML_LIBS) $(top_builddir)/src/libtranslate.la generic_la_CPPFLAGS = $(WARN_CFLAGS) $(TRANSLATE_CFLAGS) $(SOUP_CFLAGS) $(LIBXML_CFLAGS) \ -DG_LOG_DOMAIN="\"$(PACKAGE)(generic)\"" \ -DSERVICESFILE="\"$(pkgdatadir)/services.xml\"" talkfilters_la_SOURCES = translate-talkfilters.c -talkfilters_la_LDFLAGS = -avoid-version -module $(TALKFILTERS_LIBS) +talkfilters_la_LDFLAGS = -avoid-version -module $(TALKFILTERS_LIBS) $(top_builddir)/src/libtranslate.la talkfilters_la_CPPFLAGS = $(WARN_CFLAGS) $(TRANSLATE_CFLAGS) $(TALKFILTERS_CFLAGS) \ -DG_LOG_DOMAIN="\"$(PACKAGE)(talkfilters)\"" debian/patches/04_memory_64.patch0000644000000000000000000000054211540531122013755 0ustar --- a/src/translate-util.c +++ b/src/translate-util.c @@ -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); debian/patches/99_fix_skip_potfiles.patch0000644000000000000000000000060711540536554015713 0ustar Origin: vendor Forwarded: no Last-Update: <2011-03-17> --- /dev/null +++ libtranslate-0.99/po/POTFILES.skip @@ -0,0 +1,5 @@ +.pc/02_charsetparse.patch/src/modules/translate-generic-service.c +.pc/03_condfix.patch/src/translate-session.c +.pc/04_memory_64.patch/src/translate-util.c +.pc/05_services.patch/data/services.xml.in +.pc/06_libsoup24.patch/src/modules/translate-generic-service.c debian/patches/06_libsoup24.patch0000644000000000000000000004173111540531122013766 0ustar Description: this patch allows libtranslate to work with libsoup2.4 Origin: http://www.nongnu.org/libtranslate/ Author: Dan Winship --- a/configure.ac +++ b/configure.ac @@ -50,7 +50,11 @@ ### optional libraries if TRANSLATE_FEATURE_ENABLED(generic); then - PKG_CHECK_MODULES(SOUP, [libsoup-2.2],, [TRANSLATE_FEATURE_DISABLE(generic, [libsoup not found])]) + PKG_CHECK_MODULES(SOUP, [libsoup-2.4], + [AC_DEFINE(HAVE_LIBSOUP24, 1, [Building with libsoup 2.4])], + [PKG_CHECK_MODULES(SOUP, [libsoup-2.2], + [AC_DEFINE(HAVE_LIBSOUP22, 1, [Building with libsoup 2.2])], + [TRANSLATE_FEATURE_DISABLE(generic, [libsoup not found])])]) fi if TRANSLATE_FEATURE_ENABLED(generic); then PKG_CHECK_MODULES(LIBXML, [libxml-2.0],, [TRANSLATE_FEATURE_DISABLE(generic, [libxml not found])]) --- a/config.h.in +++ b/config.h.in @@ -24,6 +24,12 @@ /* Define if your 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 header file. */ #undef HAVE_LOCALE_H --- a/src/modules/translate-generic-service.c +++ b/src/modules/translate-generic-service.c @@ -35,7 +35,9 @@ #include #include #include +#ifdef HAVE_LIBSOUP22 #include +#endif #include #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; --- a/src/modules/translate-generic-soup-cookie-jar.c +++ b/src/modules/translate-generic-soup-cookie-jar.c @@ -29,9 +29,12 @@ * POSSIBILITY OF SUCH DAMAGE. */ +#include "config.h" #include #include +#ifdef HAVE_LIBSOUP22 #include +#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 +} + --- a/src/modules/translate-generic-soup-cookie-jar.h +++ b/src/modules/translate-generic-soup-cookie-jar.h @@ -33,6 +33,7 @@ #define _TRANSLATE_GENERIC_SOUP_COOKIE_JAR_H #include +#include #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 */ debian/patches/07_macro_dir.patch0000644000000000000000000000075711540531123014107 0ustar Description: this patch adds m4/ as a macro directory, which allows to rerun autotools. Author: Ilya Barygin --- a/Makefile.am +++ b/Makefile.am @@ -1,6 +1,8 @@ # docs needs src SUBDIRS = data m4 po src docs +ACLOCAL_AMFLAGS = -I m4 + EXTRA_DIST = \ autogen.sh \ autotools.conf \ --- a/configure.ac +++ b/configure.ac @@ -13,6 +13,7 @@ ### initialization +AC_CONFIG_MACRO_DIR([m4]) AM_INIT_AUTOMAKE(foreign) AM_MAINTAINER_MODE AM_CONFIG_HEADER(config.h) debian/patches/03_condfix.patch0000644000000000000000000000152111540531121013562 0ustar --- a/src/translate-session.c +++ b/src/translate-session.c @@ -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); debian/compat0000644000000000000000000000000211540531061010360 0ustar 5 debian/copyright0000644000000000000000000000322211540531061011114 0ustar This package was debianized by Gauvain Pocentek on Wed, 14 Dec 2005 18:39:27 +0100. It was downloaded from http://www.nongnu.org/libtranslate/ Copyright (C) 2004, 2005 Jean-Yves Lefort License: Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of Jean-Yves Lefort nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. debian/rules0000755000000000000000000000055111540541410010242 0ustar #!/usr/bin/make -f export DEB_BUILD_OPTIONS = nocheck %: dh --with autoreconf $@ override_dh_auto_install: dh_auto_install mv debian/tmp/usr/bin/translate \ debian/tmp/usr/bin/translate-bin mv debian/tmp/usr/share/man/man1/translate.1 \ debian/tmp/usr/share/man/man1/translate-bin.1 override_dh_autoreconf: dh_autoreconf intltoolize --copy --force debian/source/0000755000000000000000000000000011540531120010456 5ustar debian/source/format0000644000000000000000000000001411540531120011664 0ustar 3.0 (quilt)