diff options
Diffstat (limited to 'meta/recipes-core/gettext/gettext/use-pkgconfig.patch')
-rw-r--r-- | meta/recipes-core/gettext/gettext/use-pkgconfig.patch | 391 |
1 files changed, 391 insertions, 0 deletions
diff --git a/meta/recipes-core/gettext/gettext/use-pkgconfig.patch b/meta/recipes-core/gettext/gettext/use-pkgconfig.patch new file mode 100644 index 0000000000..ceb1856118 --- /dev/null +++ b/meta/recipes-core/gettext/gettext/use-pkgconfig.patch @@ -0,0 +1,391 @@ +From 6aa1338b916fe72c200b6f160b934be15b6ff590 Mon Sep 17 00:00:00 2001 +From: Ross Burton <ross.burton@intel.com> +Date: Tue, 23 Jan 2018 00:54:13 +0000 +Subject: [PATCH] gettext: beat library detection into shape + +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> +--- + gettext-tools/gnulib-m4/libxml.m4 | 105 ++--------------------- + libtextstyle/gnulib-local/m4/libglib.m4 | 106 +++--------------------- + libtextstyle/gnulib-m4/libglib.m4 | 106 +++--------------------- + 3 files changed, 31 insertions(+), 286 deletions(-) + +diff --git a/gettext-tools/gnulib-m4/libxml.m4 b/gettext-tools/gnulib-m4/libxml.m4 +index 0340490..0355388 100644 +--- a/gettext-tools/gnulib-m4/libxml.m4 ++++ b/gettext-tools/gnulib-m4/libxml.m4 +@@ -13,6 +13,7 @@ dnl gl_LIBXML(FORCE-INCLUDED) + dnl forces the use of the included or an external libxml. + AC_DEFUN([gl_LIBXML], + [ ++ AC_REQUIRE([PKG_PROG_PKG_CONFIG]) + AC_REQUIRE([AM_ICONV_LINK]) + + ifelse([$1], , [ +@@ -30,106 +31,10 @@ AC_DEFUN([gl_LIBXML], + INCXML= + ifelse([$1], [yes], , [ + 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_LINK_IFELSE( +- [AC_LANG_PROGRAM( +- [[#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_LINK_IFELSE( +- [AC_LANG_PROGRAM( +- [[#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_PREPROC_IFELSE([AC_LANG_SOURCE([[#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_PREPROC_IFELSE([AC_LANG_SOURCE([[#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_LINK_IFELSE( +- [AC_LANG_PROGRAM( +- [[#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]) +diff --git a/libtextstyle/gnulib-local/m4/libglib.m4 b/libtextstyle/gnulib-local/m4/libglib.m4 +index dbc9eb8..136e512 100644 +--- a/libtextstyle/gnulib-local/m4/libglib.m4 ++++ b/libtextstyle/gnulib-local/m4/libglib.m4 +@@ -6,106 +6,26 @@ dnl with or without modifications, as long as this notice is preserved. + + dnl From Bruno Haible. + +-dnl gl_LIBGLIB +-dnl gives the user the option to decide whether to use the included or +-dnl an external libglib. +-dnl gl_LIBGLIB(FORCE-INCLUDED) +-dnl forces the use of the included or an external libglib. + AC_DEFUN([gl_LIBGLIB], + [ +- ifelse([$1], , [ +- AC_MSG_CHECKING([whether included glib is requested]) +- AC_ARG_WITH([included-glib], +- [ --with-included-glib use the glib2 included here], +- [gl_cv_libglib_force_included=$withval], +- [gl_cv_libglib_force_included=no]) +- AC_MSG_RESULT([$gl_cv_libglib_force_included]) +- ], [gl_cv_libglib_force_included=$1]) ++ 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], ++ [gl_cv_libglib_force_included=$withval], ++ [gl_cv_libglib_force_included=no]) ++ AC_MSG_RESULT([$gl_cv_libglib_force_included]) + + gl_cv_libglib_use_included="$gl_cv_libglib_force_included" + LIBGLIB= + LTLIBGLIB= + INCGLIB= +- ifelse([$1], [yes], , [ +- 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_LINK_IFELSE( +- [AC_LANG_PROGRAM( +- [[#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_LINK_IFELSE( +- [AC_LANG_PROGRAM( +- [[#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_LINK_IFELSE( +- [AC_LANG_PROGRAM( +- [[#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 +- fi +- ]) ++ if test "$gl_cv_libglib_use_included" != yes; then ++ PKG_CHECK_MODULES([GLIB], [glib-2.0]) ++ LIBGLIB="$GLIB_LIBS" ++ LTLIBGLIB="$GLIB_LIBS" ++ INCGLIB="$GLIB_CFLAGS" ++ fi + AC_SUBST([LIBGLIB]) + AC_SUBST([LTLIBGLIB]) + AC_SUBST([INCGLIB]) +diff --git a/libtextstyle/gnulib-m4/libglib.m4 b/libtextstyle/gnulib-m4/libglib.m4 +index dbc9eb8..136e512 100644 +--- a/libtextstyle/gnulib-m4/libglib.m4 ++++ b/libtextstyle/gnulib-m4/libglib.m4 +@@ -6,106 +6,26 @@ dnl with or without modifications, as long as this notice is preserved. + + dnl From Bruno Haible. + +-dnl gl_LIBGLIB +-dnl gives the user the option to decide whether to use the included or +-dnl an external libglib. +-dnl gl_LIBGLIB(FORCE-INCLUDED) +-dnl forces the use of the included or an external libglib. + AC_DEFUN([gl_LIBGLIB], + [ +- ifelse([$1], , [ +- AC_MSG_CHECKING([whether included glib is requested]) +- AC_ARG_WITH([included-glib], +- [ --with-included-glib use the glib2 included here], +- [gl_cv_libglib_force_included=$withval], +- [gl_cv_libglib_force_included=no]) +- AC_MSG_RESULT([$gl_cv_libglib_force_included]) +- ], [gl_cv_libglib_force_included=$1]) ++ 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], ++ [gl_cv_libglib_force_included=$withval], ++ [gl_cv_libglib_force_included=no]) ++ AC_MSG_RESULT([$gl_cv_libglib_force_included]) + + gl_cv_libglib_use_included="$gl_cv_libglib_force_included" + LIBGLIB= + LTLIBGLIB= + INCGLIB= +- ifelse([$1], [yes], , [ +- 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_LINK_IFELSE( +- [AC_LANG_PROGRAM( +- [[#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_LINK_IFELSE( +- [AC_LANG_PROGRAM( +- [[#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_LINK_IFELSE( +- [AC_LANG_PROGRAM( +- [[#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 +- fi +- ]) ++ if test "$gl_cv_libglib_use_included" != yes; then ++ PKG_CHECK_MODULES([GLIB], [glib-2.0]) ++ LIBGLIB="$GLIB_LIBS" ++ LTLIBGLIB="$GLIB_LIBS" ++ INCGLIB="$GLIB_CFLAGS" ++ fi + AC_SUBST([LIBGLIB]) + AC_SUBST([LTLIBGLIB]) + AC_SUBST([INCGLIB]) |