From 9aaa1e3bdfd767fe8e19c00c611b34920644df27 Mon Sep 17 00:00:00 2001 From: Ross Burton Date: Thu, 25 Jul 2019 16:20:23 +0100 Subject: gnutls: don't use HOSTTOOLS_DIR/bash as a shell on target The libopts configure script looks for a shell on the build host and assumes it's good for the target. However in our builds it find $HOSTTOOLS_DIR/bash which isn't useful, so patch out the detection and force $base_bindir/sh. Signed-off-by: Ross Burton Signed-off-by: Richard Purdie --- .../gnutls/gnutls/posix-shell.patch | 39 ++++++++++++++++++++++ meta/recipes-support/gnutls/gnutls_3.6.8.bb | 4 +++ 2 files changed, 43 insertions(+) create mode 100644 meta/recipes-support/gnutls/gnutls/posix-shell.patch (limited to 'meta/recipes-support') diff --git a/meta/recipes-support/gnutls/gnutls/posix-shell.patch b/meta/recipes-support/gnutls/gnutls/posix-shell.patch new file mode 100644 index 0000000000..938e2d1e18 --- /dev/null +++ b/meta/recipes-support/gnutls/gnutls/posix-shell.patch @@ -0,0 +1,39 @@ +Don't embed the path to the build-time POSIX shell as this will be +$TMPDIR/hosttools/bash, which is no good on the target. + +Instead default to /bin/sh but allow it to be set in the environment. + +This isn't really upstreamable but I filed a bug at +https://gitlab.com/gnutls/gnutls/issues/807 and hope a proper fix will be +integrated. + +Upstream-Status: Inappropriate +Signed-off-by: Ross Burton + +diff --git a/src/libopts/m4/libopts.m4 b/src/libopts/m4/libopts.m4 +index c6ad738..a62faca 100644 +--- a/src/libopts/m4/libopts.m4 ++++ b/src/libopts/m4/libopts.m4 +@@ -112,21 +112,7 @@ AC_DEFUN([INVOKE_LIBOPTS_MACROS_FIRST],[ + AC_CHECK_FUNCS([mmap canonicalize_file_name snprintf strdup strchr \ + strrchr strsignal fchmod fstat chmod]) + AC_PROG_SED +- [while : +- do +- POSIX_SHELL=`which bash` +- test -x "$POSIX_SHELL" && break +- POSIX_SHELL=`which dash` +- test -x "$POSIX_SHELL" && break +- POSIX_SHELL=/usr/xpg4/bin/sh +- test -x "$POSIX_SHELL" && break +- POSIX_SHELL=`/bin/sh -c ' +- exec 2>/dev/null +- if ! true ; then exit 1 ; fi +- echo /bin/sh'` +- test -x "$POSIX_SHELL" && break +- ]AC_MSG_ERROR([cannot locate a working POSIX shell])[ +- done] ++ POSIX_SHELL="${POSIX_SHELL:-/bin/sh}" + AC_DEFINE_UNQUOTED([POSIX_SHELL], ["${POSIX_SHELL}"], + [define to a working POSIX compliant shell]) + AC_SUBST([POSIX_SHELL]) diff --git a/meta/recipes-support/gnutls/gnutls_3.6.8.bb b/meta/recipes-support/gnutls/gnutls_3.6.8.bb index 6c6c520e8c..c927063f0a 100644 --- a/meta/recipes-support/gnutls/gnutls_3.6.8.bb +++ b/meta/recipes-support/gnutls/gnutls_3.6.8.bb @@ -19,6 +19,7 @@ SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}" SRC_URI = "https://www.gnupg.org/ftp/gcrypt/gnutls/v${SHRT_VER}/gnutls-${PV}.tar.xz \ file://arm_eabi.patch \ + file://posix-shell.patch \ " SRC_URI[md5sum] = "9dcf0aa45d1a42e1b3ca5d39ec7c61a8" @@ -47,6 +48,9 @@ EXTRA_OECONF = " \ --with-default-trust-store-file=${sysconfdir}/ssl/certs/ca-certificates.crt \ " +# Otherwise the tools try and use HOSTTOOLS_DIR/bash as a shell. +export POSIX_SHELL="${base_bindir}/sh" + LDFLAGS_append_libc-musl = " -largp" do_configure_prepend() { -- cgit 1.2.3-korg