intltool: remove broken XML::Parser detection

intltool.m4 has a chunk of code that runs during configure which probes for a
perl binary and verifies that it has the XML::Parser module.  However in builds
using intltool-native the perl binary that it finds is likely to not be the one
that the intltool scripts will be using as the scripts hardcode nativeperl yet
the m4 fragment searches for "perl" in $PATH.  If the host perl doesn't have
XML::Parser the configure will fail, despite the fact that the scripts will
work.

Solve this by taking an old patch from the upstream bug system to simply remove
the check in intltool.m4 as it's generally useless, and remove existing patches
that almost but not quite solved this issue.

(From OE-Core rev: 9900000d404b09a701d5368d529eb515e054e3f0)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Ross Burton 2016-07-19 12:04:12 +01:00 committed by Richard Purdie
parent ae39c3a0f6
commit a61eb1f844
4 changed files with 50 additions and 66 deletions

View File

@ -0,0 +1,42 @@
Remove the perl checks in intltool.m4. This can find a different perl binary to
the one that the intltool scripts will actually be using (as they hard-code a
specific binary), for example in the intltool-native case they'll be using
nativeperl yet this fragment can find and test the host perl.
This can result in recipes failing in do_configure as intltool.m4 finds a host
perl which doesn't have XML::Parser installed, despite the fact that intltool
will work fine as nativeperl has XML::Parser.
Upstream-Status: Submitted (https://bugs.launchpad.net/intltool/+bug/1197875)
Signed-off-by: Ross Burton <ross.burton@intel.com>
--- a/intltool.m4.orig 2013-07-02 11:22:23.000000000 -0700
+++ b/intltool.m4 2013-07-02 11:22:32.000000000 -0700
@@ -131,27 +131,6 @@ if test -z "$xgversion" -o -z "$mmversio
AC_MSG_ERROR([GNU gettext tools not found; required for intltool])
fi
-AC_PATH_PROG(INTLTOOL_PERL, perl)
-if test -z "$INTLTOOL_PERL"; then
- AC_MSG_ERROR([perl not found])
-fi
-AC_MSG_CHECKING([for perl >= 5.8.1])
-$INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1
-if test $? -ne 0; then
- AC_MSG_ERROR([perl 5.8.1 is required for intltool])
-else
- IT_PERL_VERSION=`$INTLTOOL_PERL -e "printf '%vd', $^V"`
- AC_MSG_RESULT([$IT_PERL_VERSION])
-fi
-if test "x$2" != "xno-xml"; then
- AC_MSG_CHECKING([for XML::Parser])
- if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then
- AC_MSG_RESULT([ok])
- else
- AC_MSG_ERROR([XML::Parser perl module is required for intltool])
- fi
-fi
-
# Substitute ALL_LINGUAS so we can use it in po/Makefile
AC_SUBST(ALL_LINGUAS)

View File

@ -1,33 +0,0 @@
Signed-off-by: Florin Sarbu <florin.sarbu@windriver.com>
Upstream-Status: Inappropriate [OE specific]
Index: intltool-0.40.6/intltool.m4
===================================================================
--- intltool-0.40.6.orig/intltool.m4 2009-02-14 14:12:28.000000000 -0800
+++ intltool-0.40.6/intltool.m4 2011-11-23 15:39:34.689561872 -0800
@@ -122,14 +122,16 @@
IT_PERL_VERSION="`$INTLTOOL_PERL -e \"printf '%vd', $^V\"`"
AC_MSG_RESULT([$IT_PERL_VERSION])
fi
-if test "x$2" != "xno-xml"; then
- AC_MSG_CHECKING([for XML::Parser])
- if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then
- AC_MSG_RESULT([ok])
- else
- AC_MSG_ERROR([XML::Parser perl module is required for intltool])
- fi
-fi
+
+# Disable this check since we know XML::Parser is installed
+#if test "x$2" != "xno-xml"; then
+# AC_MSG_CHECKING([for XML::Parser])
+# if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then
+# AC_MSG_RESULT([ok])
+# else
+# AC_MSG_ERROR([XML::Parser perl module is required for intltool])
+# fi
+#fi
# Substitute ALL_LINGUAS so we can use it in po/Makefile
AC_SUBST(ALL_LINGUAS)

View File

@ -1,20 +0,0 @@
OE has perl binary as 'nativeperl' in native sysroot so we look for it
in order to avoid intltool searching and finding perl from /usr/bin
on build system which may not have all the modules that it needs.
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Upstream-Status: Inappropriate [OE specific]
Index: intltool-0.40.6/intltool.m4
===================================================================
--- intltool-0.40.6.orig/intltool.m4 2009-02-14 14:12:28.000000000 -0800
+++ intltool-0.40.6/intltool.m4 2011-08-09 08:07:16.427347846 -0700
@@ -110,7 +110,7 @@
AC_MSG_ERROR([GNU gettext tools not found; required for intltool])
fi
-AC_PATH_PROG(INTLTOOL_PERL, perl)
+AC_PATH_PROG(INTLTOOL_PERL, nativeperl)
if test -z "$INTLTOOL_PERL"; then
AC_MSG_ERROR([perl not found])
fi

View File

@ -6,23 +6,23 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
SRC_URI = "http://launchpad.net/${BPN}/trunk/${PV}/+download/${BP}.tar.gz \
file://intltool-nowarn.patch \
file://perl-522-deprecations.patch \
${NATIVEPATCHES} \
file://remove-perl-check.patch \
file://noperlcheck.patch \
"
SRC_URI[md5sum] = "12e517cac2b57a0121cda351570f1e63"
SRC_URI[sha256sum] = "67c74d94196b153b774ab9f89b2fa6c6ba79352407037c8c14d5aeb334e959cd"
# All of the intltool scripts have the correct paths to perl already
# embedded into them and can find perl fine, so we add the remove xml-check
# in the intltool.m4 via the remove-xml-check.patch
NATIVEPATCHES = "file://noperlcheck.patch \
file://remove-xml-check.patch"
NATIVEPATCHES_class-native = "file://use-nativeperl.patch"
UPSTREAM_CHECK_URI = "https://launchpad.net/intltool/trunk/"
DEPENDS = "libxml-parser-perl-native"
RDEPENDS_${PN} = "gettext-dev libxml-parser-perl"
DEPENDS_class-native = "libxml-parser-perl-native"
inherit autotools pkgconfig perlnative
export PERL = "${bindir}/env perl"
PERL_class-native = "/usr/bin/env nativeperl"
# gettext is assumed to exist on the host
RDEPENDS_${PN}_class-native = "libxml-parser-perl-native"
RRECOMMENDS_${PN} = "perl-modules"
@ -33,9 +33,4 @@ FILES_${PN} += "${datadir}/aclocal"
INSANE_SKIP_${PN} += "dev-deps"
inherit autotools pkgconfig perlnative
export PERL = "${bindir}/env perl"
PERL_class-native = "/usr/bin/env nativeperl"
BBCLASSEXTEND = "native"