Skip to contentSkip to conversation

libidn2: remove build paths from libidn2.pc

PATCH In review Ross Burton 2 participants 3 messages Jul 25, 2019

lore
Share & tools
lore
#0 lore raw

PATCH 1/2 libidn2: remove build paths from libidn2.pc

The libunistring m4 macros end up putting the full build-time library path into the .pc file, which is no good on target. Sed it out to stop build paths leaking onto the target.

[ YOCTO #13403 ]

---
 meta/recipes-extended/libidn/libidn2_2.2.0.bb | 4 ++++
 1 file changed, 4 insertions(+)
meta/recipes-extended/libidn/libidn2_2.2.0.bb +4 -0
index d7fec89fba2..bcbfdd85b91 100644
@@ -21,6 +21,10 @@ EXTRA_OECONF += "--disable-rpath \
                  --with-libunistring-prefix=${STAGING_EXECPREFIXDIR} \
                  "
 
+do_install_append() {
+	sed -i -e 's|-L${STAGING_LIBDIR}||' ${D}${libdir}/pkgconfig/libidn2.pc
+}
+
 LICENSE_${PN} = "(GPLv2+ | LGPLv3)"
 LICENSE_${PN}-bin = "GPLv3+"
 
Signature · 1 line
2.20.1
#1 lore raw

PATCH 2/2 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.

---
 .../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
meta/recipes-support/gnutls/gnutls/posix-shell.patch new file +39 -0
new file mode 100644
index 00000000000..938e2d1e18f
@@ -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 <[email protected]>
+
+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])
meta/recipes-support/gnutls/gnutls_3.6.8.bb +4 -0
index 6c6c520e8ce..c927063f0a3 100644
@@ -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() {
Signature · 1 line
2.20.1
#2 lore raw

✗ patchtest: failure for "libidn2: remove build paths fr..." and 1 more

In reply to Ross Burton

== Series Details ==

Series: "libidn2: remove build paths fr..." and 1 more
Revision: 1
URL : https://patchwork.openembedded.org/series/18894/
State : failure

== Summary ==

Thank you for submitting this patch series to OpenEmbedded Core. This is an automated response. Several tests have been executed on the proposed series by patchtest resulting in the following failures:

* Issue Upstream-Status is Inappropriate, but no reason was provided [test_upstream_status_presence_format]

  Suggested fix    Include a brief reason why posix-shell.patch is inappropriate
  Current          Upstream-Status: Inappropriate
  Standard format  Upstream-Status: Inappropriate [reason]

If you believe any of these test results are incorrect, please reply to the mailing list ([email protected]) raising your concerns. Otherwise we would appreciate you correcting the issues and submitting a new version of the patchset if applicable. Please ensure you add/increment the version number when sending the new version (i.e. [PATCH] -> [PATCH v2] -> [PATCH v3] -> ...).

---

Guidelines:     https://www.openembedded.org/wiki/Commit_Patch_Message_Guidelines
Test framework: http://git.yoctoproject.org/cgit/cgit.cgi/patchtest
Test suite:     http://git.yoctoproject.org/cgit/cgit.cgi/patchtest-oe