diff options
Diffstat (limited to 'meta/recipes-core/gettext/gettext-0.19.8.1')
5 files changed, 613 insertions, 0 deletions
diff --git a/meta/recipes-core/gettext/gettext-0.19.8.1/cr-statement.c-timsort.h-fix-formatting-issues.patch b/meta/recipes-core/gettext/gettext-0.19.8.1/cr-statement.c-timsort.h-fix-formatting-issues.patch new file mode 100644 index 0000000000..6af1604198 --- /dev/null +++ b/meta/recipes-core/gettext/gettext-0.19.8.1/cr-statement.c-timsort.h-fix-formatting-issues.patch @@ -0,0 +1,87 @@ +From e546de65a333789e83f5485757967cee29ee3681 Mon Sep 17 00:00:00 2001 +From: Robert Yang <liezhi.yang@windriver.com> +Date: Sun, 19 Feb 2017 23:32:46 -0800 +Subject: [PATCH] cr-statement.c/timsort.h: fix formatting issues + +Fixed when compile with "-Wformat -Wformat-security -Werror=format-security": +| gettext-tools/gnulib-lib/libcroco/cr-statement.c: In function 'cr_statement_dump_charset': +| gettext-tools/gnulib-lib/libcroco/cr-statement.c:2661:17: error: format not a string literal and no format arguments [-Werror=format-security] +| fprintf (a_fp, str) ; + +And: +gettext-tools/gnulib-lib/libxml/timsort.h:326:80: warning: format '%lu' expects argument of type 'long unsigned int', but argument 3 has type 'unsigned int' [-Wformat=] + fprintf(stderr, "Error allocating temporary storage for tim sort: need %lu bytes", sizeof(SORT_TYPE) * new_size); + +Upstream-Status: Pending + +Signed-off-by: Robert Yang <liezhi.yang@windriver.com> +--- + gettext-tools/gnulib-lib/libcroco/cr-statement.c | 10 +++++----- + gettext-tools/gnulib-lib/libxml/timsort.h | 2 +- + 2 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/gettext-tools/gnulib-lib/libcroco/cr-statement.c b/gettext-tools/gnulib-lib/libcroco/cr-statement.c +index 617520f..100104b 100644 +--- a/gettext-tools/gnulib-lib/libcroco/cr-statement.c ++++ b/gettext-tools/gnulib-lib/libcroco/cr-statement.c +@@ -2607,7 +2607,7 @@ cr_statement_dump_ruleset (CRStatement * a_this, FILE * a_fp, glong a_indent) + g_return_if_fail (a_fp && a_this); + str = cr_statement_ruleset_to_string (a_this, a_indent); + if (str) { +- fprintf (a_fp, str); ++ fprintf (a_fp, "%s", str); + g_free (str); + str = NULL; + } +@@ -2658,7 +2658,7 @@ cr_statement_dump_charset (CRStatement * a_this, FILE * a_fp, gulong a_indent) + str = cr_statement_charset_to_string (a_this, + a_indent) ; + if (str) { +- fprintf (a_fp, str) ; ++ fprintf (a_fp, "%s", str) ; + g_free (str) ; + str = NULL ; + } +@@ -2685,7 +2685,7 @@ cr_statement_dump_page (CRStatement * a_this, FILE * a_fp, gulong a_indent) + + str = cr_statement_at_page_rule_to_string (a_this, a_indent) ; + if (str) { +- fprintf (a_fp, str); ++ fprintf (a_fp, "%s", str); + g_free (str) ; + str = NULL ; + } +@@ -2711,7 +2711,7 @@ cr_statement_dump_media_rule (CRStatement * a_this, + + str = cr_statement_media_rule_to_string (a_this, a_indent) ; + if (str) { +- fprintf (a_fp, str) ; ++ fprintf (a_fp, "%s", str) ; + g_free (str) ; + str = NULL ; + } +@@ -2737,7 +2737,7 @@ cr_statement_dump_import_rule (CRStatement * a_this, FILE * a_fp, + + str = cr_statement_import_rule_to_string (a_this, a_indent) ; + if (str) { +- fprintf (a_fp, str) ; ++ fprintf (a_fp, "%s", str) ; + g_free (str) ; + str = NULL ; + } +diff --git a/gettext-tools/gnulib-lib/libxml/timsort.h b/gettext-tools/gnulib-lib/libxml/timsort.h +index 795f272..443918a 100644 +--- a/gettext-tools/gnulib-lib/libxml/timsort.h ++++ b/gettext-tools/gnulib-lib/libxml/timsort.h +@@ -323,7 +323,7 @@ static void TIM_SORT_RESIZE(TEMP_STORAGE_T *store, const size_t new_size) + SORT_TYPE *tempstore = (SORT_TYPE *)realloc(store->storage, new_size * sizeof(SORT_TYPE)); + if (tempstore == NULL) + { +- fprintf(stderr, "Error allocating temporary storage for tim sort: need %lu bytes", sizeof(SORT_TYPE) * new_size); ++ fprintf(stderr, "Error allocating temporary storage for tim sort: need %zu bytes", sizeof(SORT_TYPE) * new_size); + exit(1); + } + store->storage = tempstore; +-- +2.10.2 + diff --git a/meta/recipes-core/gettext/gettext-0.19.8.1/fix-CVE-2018-18751.patch b/meta/recipes-core/gettext/gettext-0.19.8.1/fix-CVE-2018-18751.patch new file mode 100644 index 0000000000..6dfe200d65 --- /dev/null +++ b/meta/recipes-core/gettext/gettext-0.19.8.1/fix-CVE-2018-18751.patch @@ -0,0 +1,141 @@ +Upstream-Status: Backport [https://git.savannah.gnu.org/gitweb/?p=gettext.git;a=commit;h=dce3a16] +CVE: CVE-2018-18751 + +Signed-off-by: Kai Kang <kai.kang@windriver.com> + +From dce3a16e5e9368245735e29bf498dcd5e3e474a4 Mon Sep 17 00:00:00 2001 +From: Daiki Ueno <ueno@gnu.org> +Date: Thu, 15 Sep 2016 13:57:24 +0200 +Subject: [PATCH] xgettext: Fix crash with *.po file input + +When xgettext was given two *.po files with the same msgid_plural, it +crashed with double-free. Problem reported by Davlet Panech in: +http://lists.gnu.org/archive/html/bug-gettext/2016-09/msg00001.html +* gettext-tools/src/po-gram-gen.y: Don't free msgid_pluralform after +calling do_callback_message, assuming that it takes ownership. +* gettext-tools/src/read-catalog.c (default_add_message): Free +msgid_plural after calling message_alloc. +* gettext-tools/tests/xgettext-po-2: New file. +* gettext-tools/tests/Makefile.am (TESTS): Add new test. +--- + gettext-tools/src/po-gram-gen.y | 13 ++++----- + gettext-tools/src/read-catalog.c | 2 ++ + gettext-tools/tests/Makefile.am | 2 +- + gettext-tools/tests/xgettext-po-2 | 55 +++++++++++++++++++++++++++++++++++++++ + 4 files changed, 63 insertions(+), 9 deletions(-) + create mode 100755 gettext-tools/tests/xgettext-po-2 + +diff --git a/gettext-tools/src/po-gram-gen.y b/gettext-tools/src/po-gram-gen.y +index becf5e6..4428e77 100644 +--- a/gettext-tools/src/po-gram-gen.y ++++ b/gettext-tools/src/po-gram-gen.y +@@ -221,14 +221,11 @@ message + check_obsolete ($1, $3); + check_obsolete ($1, $4); + if (!$1.obsolete || pass_obsolete_entries) +- { +- do_callback_message ($1.ctxt, string2, &$1.pos, $3.string, +- $4.rhs.msgstr, $4.rhs.msgstr_len, &$4.pos, +- $1.prev_ctxt, +- $1.prev_id, $1.prev_id_plural, +- $1.obsolete); +- free ($3.string); +- } ++ do_callback_message ($1.ctxt, string2, &$1.pos, $3.string, ++ $4.rhs.msgstr, $4.rhs.msgstr_len, &$4.pos, ++ $1.prev_ctxt, ++ $1.prev_id, $1.prev_id_plural, ++ $1.obsolete); + else + { + free_message_intro ($1); +diff --git a/gettext-tools/src/read-catalog.c b/gettext-tools/src/read-catalog.c +index 571d18e..6af6d20 100644 +--- a/gettext-tools/src/read-catalog.c ++++ b/gettext-tools/src/read-catalog.c +@@ -397,6 +397,8 @@ default_add_message (default_catalog_reader_ty *this, + appropriate. */ + mp = message_alloc (msgctxt, msgid, msgid_plural, msgstr, msgstr_len, + msgstr_pos); ++ if (msgid_plural != NULL) ++ free (msgid_plural); + mp->prev_msgctxt = prev_msgctxt; + mp->prev_msgid = prev_msgid; + mp->prev_msgid_plural = prev_msgid_plural; +diff --git a/gettext-tools/tests/Makefile.am b/gettext-tools/tests/Makefile.am +index 23b09b1..0dfb4d8 100644 +--- a/gettext-tools/tests/Makefile.am ++++ b/gettext-tools/tests/Makefile.am +@@ -95,7 +95,7 @@ TESTS = gettext-1 gettext-2 gettext-3 gettext-4 gettext-5 gettext-6 gettext-7 \ + xgettext-perl-1 xgettext-perl-2 xgettext-perl-3 xgettext-perl-4 \ + xgettext-perl-5 xgettext-perl-6 xgettext-perl-7 xgettext-perl-8 \ + xgettext-php-1 xgettext-php-2 xgettext-php-3 xgettext-php-4 \ +- xgettext-po-1 \ ++ xgettext-po-1 xgettext-po-2 \ + xgettext-properties-1 \ + xgettext-python-1 xgettext-python-2 xgettext-python-3 \ + xgettext-python-4 \ +diff --git a/gettext-tools/tests/xgettext-po-2 b/gettext-tools/tests/xgettext-po-2 +new file mode 100755 +index 0000000..c4bd9d0 +--- /dev/null ++++ b/gettext-tools/tests/xgettext-po-2 +@@ -0,0 +1,55 @@ ++#! /bin/sh ++. "${srcdir=.}/init.sh"; path_prepend_ . ../src ++ ++# Test PO extractors with multiple input files. ++ ++cat <<EOF > xg-po-2-1.po ++msgid "first msgid" ++msgid_plural "first msgid (plural)" ++msgstr[0] "" ++msgstr[1] "" ++ ++msgid "second msgid" ++msgid_plural "second msgid (plural)" ++msgstr[0] "" ++msgstr[1] "" ++EOF ++ ++cat <<EOF > xg-po-2-2.po ++msgid "third msgid" ++msgid_plural "third msgid (plural)" ++msgstr[0] "" ++msgstr[1] "" ++ ++msgid "second msgid" ++msgid_plural "second msgid (plural)" ++msgstr[0] "" ++msgstr[1] "" ++EOF ++ ++: ${XGETTEXT=xgettext} ++${XGETTEXT} --omit-header xg-po-2-1.po xg-po-2-2.po -o xg-po-2.tmp.po || Exit 1 ++LC_ALL=C tr -d '\r' < xg-po-2.tmp.po > xg-po-2.po || Exit 1 ++ ++cat <<EOF > xg-po-2.ok ++msgid "first msgid" ++msgid_plural "first msgid (plural)" ++msgstr[0] "" ++msgstr[1] "" ++ ++msgid "second msgid" ++msgid_plural "second msgid (plural)" ++msgstr[0] "" ++msgstr[1] "" ++ ++msgid "third msgid" ++msgid_plural "third msgid (plural)" ++msgstr[0] "" ++msgstr[1] "" ++EOF ++ ++: ${DIFF=diff} ++${DIFF} xg-po-2.ok xg-po-2.po ++result=$? ++ ++exit $result +-- +1.9.1 + diff --git a/meta/recipes-core/gettext/gettext-0.19.8.1/run-ptest b/meta/recipes-core/gettext/gettext-0.19.8.1/run-ptest new file mode 100644 index 0000000000..f17f3c87a7 --- /dev/null +++ b/meta/recipes-core/gettext/gettext-0.19.8.1/run-ptest @@ -0,0 +1,6 @@ +#!/bin/sh +# +#This script is used to run gettext test suites +cd tests + +make -k runtest-TESTS top_srcdir=.. srcdir=. abs_srcdir=$PWD top_builddir=$PWD/../ abs_top_srcdir=$PWD/../ | cat diff --git a/meta/recipes-core/gettext/gettext-0.19.8.1/serial-tests-config.patch b/meta/recipes-core/gettext/gettext-0.19.8.1/serial-tests-config.patch new file mode 100644 index 0000000000..31ff9138a9 --- /dev/null +++ b/meta/recipes-core/gettext/gettext-0.19.8.1/serial-tests-config.patch @@ -0,0 +1,58 @@ +From c4b1f3a0c7b7c40b343be9b95deb84e0485643be Mon Sep 17 00:00:00 2001 +From: "Hongjun.Yang" <hongjun.yang@windriver.com> +Date: Thu, 28 Jul 2016 12:36:15 +0800 +Subject: [PATCH] fix for ptest + +Add serial-tests support, ptest need it + +Upstream-Status: Inappropriate [oe specific] + +Signed-off-by: Changqing Li <changqing.li@windriver.com> +--- + configure.ac | 2 +- + gettext-runtime/configure.ac | 2 +- + gettext-tools/configure.ac | 2 +- + 3 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 5e996fa..880581f 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -23,7 +23,7 @@ AC_INIT([gettext], + [bug-gnu-gettext@gnu.org]) + AC_CONFIG_SRCDIR([gettext-tools/src/msgfmt.c]) + AC_CONFIG_AUX_DIR([build-aux]) +-AM_INIT_AUTOMAKE([1.13 silent-rules parallel-tests dist-xz dist-lzip]) ++AM_INIT_AUTOMAKE([1.13 silent-rules serial-tests dist-xz dist-lzip]) + + dnl Override automake's tar command used for creating distributions. + am__tar='${AMTAR} chof - --owner=root --group=root "$$tardir"' +diff --git a/gettext-runtime/configure.ac b/gettext-runtime/configure.ac +index e9299b6..d4f5528 100644 +--- a/gettext-runtime/configure.ac ++++ b/gettext-runtime/configure.ac +@@ -22,7 +22,7 @@ AC_INIT([gettext-runtime], + [bug-gnu-gettext@gnu.org]) + AC_CONFIG_SRCDIR([intl/dcigettext.c]) + AC_CONFIG_AUX_DIR([../build-aux]) +-AM_INIT_AUTOMAKE([1.11.1 silent-rules parallel-tests]) ++AM_INIT_AUTOMAKE([1.11.1 silent-rules serial-tests]) + AC_CONFIG_HEADERS([config.h]) + + dnl Installation directories. +diff --git a/gettext-tools/configure.ac b/gettext-tools/configure.ac +index 920eeb6..c507434 100644 +--- a/gettext-tools/configure.ac ++++ b/gettext-tools/configure.ac +@@ -22,7 +22,7 @@ AC_INIT([gettext-tools], + [bug-gnu-gettext@gnu.org]) + AC_CONFIG_SRCDIR([src/msgfmt.c]) + AC_CONFIG_AUX_DIR([../build-aux]) +-AM_INIT_AUTOMAKE([1.11.1 silent-rules parallel-tests]) ++AM_INIT_AUTOMAKE([1.11.1 silent-rules serial-tests]) + AC_CONFIG_HEADERS([config.h]) + + dnl Installation directories. +-- +2.1.4 + diff --git a/meta/recipes-core/gettext/gettext-0.19.8.1/use-pkgconfig.patch b/meta/recipes-core/gettext/gettext-0.19.8.1/use-pkgconfig.patch new file mode 100644 index 0000000000..6156a153f7 --- /dev/null +++ b/meta/recipes-core/gettext/gettext-0.19.8.1/use-pkgconfig.patch @@ -0,0 +1,321 @@ +For reasons which I just can't fathom gnulib doesn't use the expected tools to +find libraries but badly reinvents the wheel. This will trivially lead to host +contamination (explicit searches of /usr/lib) or incorrect RPATHs (bad +canonicalisation resulting in relative paths). + +Simply delete all the crazy, and replace with a single call to pkg-config. + +Upstream-Status: Inappropriate (upstream still refuse to consider pkg-config) +Signed-off-by: Ross Burton <ross.burton@intel.com> + +diff --git a/gnulib-local/m4/libcroco.m4 b/gnulib-local/m4/libcroco.m4 +index f79ea82f1..1f67274db 100644 +--- a/gettext-tools/gnulib-m4/libcroco.m4 ++++ b/gettext-tools/gnulib-m4/libcroco.m4 +@@ -8,6 +8,7 @@ dnl From Bruno Haible. + + AC_DEFUN([gl_LIBCROCO], + [ ++ AC_REQUIRE([PKG_PROG_PKG_CONFIG]) + dnl libcroco depends on libglib. + AC_REQUIRE([gl_LIBGLIB]) + +@@ -23,65 +24,10 @@ AC_DEFUN([gl_LIBCROCO], + LTLIBCROCO= + INCCROCO= + if test "$gl_cv_libcroco_use_included" != yes; then +- dnl Figure out whether we can use a preinstalled libcroco-0.6, or have to +- dnl use the included one. +- AC_CACHE_VAL([gl_cv_libcroco], [ +- gl_cv_libcroco=no +- gl_cv_LIBCROCO= +- gl_cv_LTLIBCROCO= +- gl_cv_INCCROCO= +- gl_save_LIBS="$LIBS" +- dnl Search for libcroco and define LIBCROCO_0_6, LTLIBCROCO_0_6 and +- dnl INCCROCO_0_6 accordingly. +- dnl Don't use croco-0.6-config nor pkg-config, since it doesn't work when +- dnl cross-compiling or when the C compiler in use is different from the +- dnl one that built the library. +- AC_LIB_LINKFLAGS_BODY([croco-0.6], [glib-2.0]) +- LIBS="$gl_save_LIBS $LIBCROCO_0_6" +- AC_TRY_LINK([#include <libcroco-config.h>], +- [const char *version = LIBCROCO_VERSION; return !version;], +- [gl_cv_libcroco=yes +- gl_cv_LIBCROCO="$LIBCROCO_0_6" +- gl_cv_LTLIBCROCO="$LTLIBCROCO_0_6" +- ]) +- if test "$gl_cv_libcroco" != yes; then +- gl_save_CPPFLAGS="$CPPFLAGS" +- CPPFLAGS="$CPPFLAGS $INCCROCO_0_6" +- AC_TRY_LINK([#include <libcroco-config.h>], +- [const char *version = LIBCROCO_VERSION; return !version;], +- [gl_cv_libcroco=yes +- gl_cv_LIBCROCO="$LIBCROCO_0_6" +- gl_cv_LTLIBCROCO="$LTLIBCROCO_0_6" +- gl_cv_INCCROCO="$INCCROCO_0_6" +- ]) +- if test "$gl_cv_libcroco" != yes; then +- dnl Often the include files are installed in +- dnl /usr/include/libcroco-0.6/libcroco. +- AC_TRY_LINK([#include <libcroco-0.6/libcroco/libcroco-config.h>], +- [const char *version = LIBCROCO_VERSION; return !version;], +- [gl_ABSOLUTE_HEADER([libcroco-0.6/libcroco/libcroco-config.h]) +- libcroco_include_dir=`echo "$gl_cv_absolute_libcroco_0_6_libcroco_libcroco_config_h" | sed -e 's,.libcroco-config\.h$,,'` +- if test -d "$libcroco_include_dir"; then +- gl_cv_libcroco=yes +- gl_cv_LIBCROCO="$LIBCROCO_0_6" +- gl_cv_LTLIBCROCO="$LTLIBCROCO_0_6" +- gl_cv_INCCROCO="-I$libcroco_include_dir" +- fi +- ]) +- fi +- CPPFLAGS="$gl_save_CPPFLAGS" +- fi +- LIBS="$gl_save_LIBS" +- ]) +- AC_MSG_CHECKING([for libcroco]) +- AC_MSG_RESULT([$gl_cv_libcroco]) +- if test $gl_cv_libcroco = yes; then +- LIBCROCO="$gl_cv_LIBCROCO" +- LTLIBCROCO="$gl_cv_LTLIBCROCO" +- INCCROCO="$gl_cv_INCCROCO" +- else +- gl_cv_libcroco_use_included=yes +- fi ++ PKG_CHECK_MODULES([CROCO], [libcroco-0.6]) ++ LIBCROCO=$CROCO_LIBS ++ LTLIBCROCO=$CROCO_LIBS ++ INCCROCO=$CROCO_CFLAGS + fi + AC_SUBST([LIBCROCO]) + AC_SUBST([LTLIBCROCO]) +diff --git a/gnulib-local/m4/libglib.m4 b/gnulib-local/m4/libglib.m4 +index 42e55e6fd..ab25a5b22 100644 +--- a/gettext-tools/gnulib-m4/libglib.m4 ++++ b/gettext-tools/gnulib-m4/libglib.m4 +@@ -8,6 +8,7 @@ dnl From Bruno Haible. + + AC_DEFUN([gl_LIBGLIB], + [ ++ AC_REQUIRE([PKG_PROG_PKG_CONFIG]) + AC_MSG_CHECKING([whether included glib is requested]) + AC_ARG_WITH([included-glib], + [ --with-included-glib use the glib2 included here], +@@ -20,76 +21,10 @@ AC_DEFUN([gl_LIBGLIB], + LTLIBGLIB= + INCGLIB= + if test "$gl_cv_libglib_use_included" != yes; then +- dnl Figure out whether we can use a preinstalled libglib-2.0, or have to use +- dnl the included one. +- AC_CACHE_VAL([gl_cv_libglib], [ +- gl_cv_libglib=no +- gl_cv_LIBGLIB= +- gl_cv_LTLIBGLIB= +- gl_cv_INCGLIB= +- gl_save_LIBS="$LIBS" +- dnl Search for libglib2 and define LIBGLIB_2_0, LTLIBGLIB_2_0 and +- dnl INCGLIB_2_0 accordingly. +- dnl Don't use glib-config nor pkg-config, since it doesn't work when +- dnl cross-compiling or when the C compiler in use is different from the +- dnl one that built the library. +- AC_LIB_LINKFLAGS_BODY([glib-2.0]) +- LIBS="$gl_save_LIBS $LIBGLIB_2_0" +- AC_TRY_LINK([#include <glib.h> +-#ifndef G_BEGIN_DECLS +-error this glib.h includes a glibconfig.h from a glib version 1.x +-#endif +-], +- [g_string_new ("foo");], +- [gl_cv_libglib=yes +- gl_cv_LIBGLIB="$LIBGLIB_2_0" +- gl_cv_LTLIBGLIB="$LTLIBGLIB_2_0" +- ]) +- if test "$gl_cv_libglib" != yes; then +- gl_save_CPPFLAGS="$CPPFLAGS" +- CPPFLAGS="$CPPFLAGS $INCGLIB_2_0" +- AC_TRY_LINK([#include <glib.h> +-#ifndef G_BEGIN_DECLS +-error this glib.h includes a glibconfig.h from a glib version 1.x +-#endif +-], +- [g_string_new ("foo");], +- [gl_cv_libglib=yes +- gl_cv_LIBGLIB="$LIBGLIB_2_0" +- gl_cv_LTLIBGLIB="$LTLIBGLIB_2_0" +- gl_cv_INCGLIB="$INCGLIB_2_0" +- ]) +- if test "$gl_cv_libglib" != yes; then +- dnl Often the include files are installed in /usr/include/glib-2.0 +- dnl and /usr/lib/glib-2.0/include. +- if test -n "$LIBGLIB_2_0_PREFIX"; then +- CPPFLAGS="$gl_save_CPPFLAGS -I$LIBGLIB_2_0_PREFIX/include/glib-2.0 -I$LIBGLIB_2_0_PREFIX/$acl_libdirstem/glib-2.0/include" +- AC_TRY_LINK([#include <glib.h> +-#ifndef G_BEGIN_DECLS +-error this glib.h includes a glibconfig.h from a glib version 1.x +-#endif +-], +- [g_string_new ("foo");], +- [gl_cv_libglib=yes +- gl_cv_LIBGLIB="$LIBGLIB_2_0" +- gl_cv_LTLIBGLIB="$LTLIBGLIB_2_0" +- gl_cv_INCGLIB="-I$LIBGLIB_2_0_PREFIX/include/glib-2.0 -I$LIBGLIB_2_0_PREFIX/$acl_libdirstem/glib-2.0/include" +- ]) +- fi +- fi +- CPPFLAGS="$gl_save_CPPFLAGS" +- fi +- LIBS="$gl_save_LIBS" +- ]) +- AC_MSG_CHECKING([for glib]) +- AC_MSG_RESULT([$gl_cv_libglib]) +- if test $gl_cv_libglib = yes; then +- LIBGLIB="$gl_cv_LIBGLIB" +- LTLIBGLIB="$gl_cv_LTLIBGLIB" +- INCGLIB="$gl_cv_INCGLIB" +- else +- gl_cv_libglib_use_included=yes +- fi ++ PKG_CHECK_MODULES([GLIB], [glib-2.0]) ++ LIBGLIB="$GLIB_LIBS" ++ LTLIBGLIB="$GLIB_LIBS" ++ INCGLIB="$GLIB_CFLAGS" + fi + AC_SUBST([LIBGLIB]) + AC_SUBST([LTLIBGLIB]) +diff --git a/gnulib-local/m4/libxml.m4 b/gnulib-local/m4/libxml.m4 +index 480c700d2..cb39309d5 100644 +--- a/gettext-tools/gnulib-m4/libxml.m4 ++++ b/gettext-tools/gnulib-m4/libxml.m4 +@@ -8,6 +8,7 @@ dnl From Bruno Haible. + + AC_DEFUN([gl_LIBXML], + [ ++ AC_REQUIRE([PKG_PROG_PKG_CONFIG]) + AC_REQUIRE([AM_ICONV_LINK]) + + AC_MSG_CHECKING([whether included libxml is requested]) +@@ -22,100 +22,10 @@ AC_DEFUN([gl_LIBXML], + LTLIBXML= + INCXML= + if test "$gl_cv_libxml_use_included" != yes; then +- dnl Figure out whether we can use a preinstalled libxml2, or have to use +- dnl the included one. +- AC_CACHE_VAL([gl_cv_libxml], [ +- gl_cv_libxml=no +- gl_cv_LIBXML= +- gl_cv_LTLIBXML= +- gl_cv_INCXML= +- gl_save_LIBS="$LIBS" +- LIBS="$LIBS $LIBICONV" +- dnl Search for libxml2 and define LIBXML2, LTLIBXML2 and INCXML2 +- dnl accordingly. +- dnl Don't use xml2-config nor pkg-config, since it doesn't work when +- dnl cross-compiling or when the C compiler in use is different from the +- dnl one that built the library. +- dnl Use a test program that tries to invoke xmlFree. On Cygwin 1.7.x, +- dnl libxml2 is built in such a way that uses of xmlFree work fine with +- dnl -Wl,--enable-auto-import but lead to a link error with +- dnl -Wl,--disable-auto-import. +- AC_LIB_LINKFLAGS_BODY([xml2]) +- LIBS="$gl_save_LIBS $LIBXML2 $LIBICONV" +- AC_TRY_LINK([#include <libxml/xmlversion.h> +- #include <libxml/xmlmemory.h> +- #include <libxml/xpath.h> +- ], +- [xmlCheckVersion (0); +- xmlFree ((void *) 0); +- xmlXPathSetContextNode ((void *)0, (void *)0); +- ], +- [gl_cv_libxml=yes +- gl_cv_LIBXML="$LIBXML2 $LIBICONV" +- gl_cv_LTLIBXML="$LTLIBXML2 $LTLIBICONV" +- ]) +- if test "$gl_cv_libxml" != yes; then +- gl_save_CPPFLAGS="$CPPFLAGS" +- CPPFLAGS="$CPPFLAGS $INCXML2" +- AC_TRY_LINK([#include <libxml/xmlversion.h> +- #include <libxml/xmlmemory.h> +- #include <libxml/xpath.h> +- ], +- [xmlCheckVersion (0); +- xmlFree ((void *) 0); +- xmlXPathSetContextNode ((void *)0, (void *)0); +- ], +- [gl_cv_libxml=yes +- gl_cv_LIBXML="$LIBXML2 $LIBICONV" +- gl_cv_LTLIBXML="$LTLIBXML2 $LTLIBICONV" +- gl_cv_INCXML="$INCXML2" +- ]) +- if test "$gl_cv_libxml" != yes; then +- dnl Often the include files are installed in /usr/include/libxml2. +- dnl In libxml2-2.5, <libxml/xmlversion.h> is self-contained. +- dnl In libxml2-2.6, it includes <libxml/xmlexports.h> which is +- dnl self-contained. +- libxml2_include_dir= +- AC_TRY_CPP([#include <libxml2/libxml/xmlexports.h>], +- [gl_ABSOLUTE_HEADER([libxml2/libxml/xmlexports.h]) +- libxml2_include_dir=`echo "$gl_cv_absolute_libxml2_libxml_xmlexports_h" | sed -e 's,.libxml.xmlexports\.h$,,'` +- ]) +- if test -z "$libxml2_include_dir"; then +- AC_TRY_CPP([#include <libxml2/libxml/xmlversion.h>], +- [gl_ABSOLUTE_HEADER([libxml2/libxml/xmlversion.h]) +- libxml2_include_dir=`echo "$gl_cv_absolute_libxml2_libxml_xmlversion_h" | sed -e 's,.libxml.xmlversion\.h$,,'` +- ]) +- fi +- if test -n "$libxml2_include_dir" && test -d "$libxml2_include_dir"; then +- CPPFLAGS="$gl_save_CPPFLAGS -I$libxml2_include_dir" +- AC_TRY_LINK([#include <libxml/xmlversion.h> +- #include <libxml/xmlmemory.h> +- #include <libxml/xpath.h> +- ], +- [xmlCheckVersion (0); +- xmlFree ((void *) 0); +- xmlXPathSetContextNode ((void *)0, (void *)0); +- ], +- [gl_cv_libxml=yes +- gl_cv_LIBXML="$LIBXML2 $LIBICONV" +- gl_cv_LTLIBXML="$LTLIBXML2 $LTLIBICONV" +- gl_cv_INCXML="-I$libxml2_include_dir" +- ]) +- fi +- fi +- CPPFLAGS="$gl_save_CPPFLAGS" +- fi +- LIBS="$gl_save_LIBS" +- ]) +- AC_MSG_CHECKING([for libxml]) +- AC_MSG_RESULT([$gl_cv_libxml]) +- if test $gl_cv_libxml = yes; then +- LIBXML="$gl_cv_LIBXML" +- LTLIBXML="$gl_cv_LTLIBXML" +- INCXML="$gl_cv_INCXML" +- else +- gl_cv_libxml_use_included=yes +- fi ++ PKG_CHECK_MODULES([XML], [libxml-2.0]) ++ LIBXML=$XML_LIBS ++ LTLIBXML=$XML_LIBS ++ INCXML=$XML_CFLAGS + fi + AC_SUBST([LIBXML]) + AC_SUBST([LTLIBXML]) +diff --git a/gnulib-local/lib/term-styled-ostream.oo.c b/gnulib-local/lib/term-styled-ostream.oo.c +index 81a407467..218565329 100644 +--- a/gettext-tools/gnulib-lib/term-styled-ostream.oo.c ++++ b/gettext-tools/gnulib-lib/term-styled-ostream.oo.c +@@ -25,4 +25,4 @@ +-#include <cr-om-parser.h> +-#include <cr-sel-eng.h> +-#include <cr-style.h> +-#include <cr-rgb.h> ++#include <libcroco/cr-om-parser.h> ++#include <libcroco/cr-sel-eng.h> ++#include <libcroco/cr-style.h> ++#include <libcroco/cr-rgb.h> +@@ -31 +31 @@ +-# include <cr-fonts.h> ++# include <libcroco/cr-fonts.h> +@@ -33 +33 @@ +-#include <cr-string.h> ++#include <libcroco/cr-string.h> |