Browse Source

libcheck: disable subunit support

We don't have a recipe for subunit in core (or any layer in the layer
index), and unfortunately a bug in the CMakeLists means that the native
build can detect subunit on the host (so host contamination) and only
half-enable it, so the build fails.

Take a patch from upstream's github to add an option for subunit, and
explicitly disable it.

(From OE-Core rev: 155f0f65fa0f08a4586d3c9a02976f43a10b08aa)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Ross Burton 4 months ago
parent
commit
b1b3318eff

+ 43 - 0
meta/recipes-support/libcheck/libcheck/subunit.patch

@@ -0,0 +1,43 @@
+From a6cd376b9ebcb4afc9ab06bce23b9bd909811ece Mon Sep 17 00:00:00 2001
+From: Christopher Obbard <christopher.obbard@linaro.org>
+Date: Thu, 13 Jun 2024 09:49:53 +0100
+Subject: [PATCH] Allow disabling autodetection of subunit library
+
+It can be useful to avoid linking to subunit when we are building the check
+library for the host, e.g. in a buildroot recipe, where the built check is
+linked into other applications which are used on the host to build images.
+
+These applications are built with the host's cross-compiler and can use
+the host's pkgconfig to determine if libraries are available. When check
+is linked against other libraries, it can fail this check for subunit.
+
+Allow disabling the autodetection of subunit with a configure flag
+-DENABLE_SUBUNIT_EXT=OFF
+
+Signed-off-by: Christopher Obbard <christopher.obbard@linaro.org>
+
+Upstream-Status: Submitted [https://github.com/libcheck/check/pull/353/]
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+---
+ CMakeLists.txt | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 2ee580bc..6b36015b 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -393,7 +393,13 @@ if (HAVE_LIBRT)
+   ADD_DEFINITIONS(-DHAVE_LIBRT=1)
+ endif (HAVE_LIBRT)
+ 
+-check_library_exists(subunit subunit_test_start "" HAVE_SUBUNIT)
++# Allow disabling subunit
++IF(ENABLE_SUBUNIT_EXT)
++  check_library_exists(subunit subunit_test_start "" HAVE_SUBUNIT)
++ELSE(ENABLE_SUBUNIT_EXT)
++  set(HAVE_SUBUNIT, false)
++ENDIF(ENABLE_SUBUNIT_EXT)
++
+ if (HAVE_SUBUNIT)
+   set(SUBUNIT "subunit")
+   set(ENABLE_SUBUNIT 1)

+ 3 - 2
meta/recipes-support/libcheck/libcheck_0.15.2.bb

@@ -11,7 +11,8 @@ LICENSE  = "LGPL-2.1-or-later"
 LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=2d5025d4aa3495befef8f17206a5b0a1"
 
 SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/check-${PV}.tar.gz \
-           file://automake-output.patch"
+           file://automake-output.patch \
+           file://subunit.patch"
 SRC_URI[sha256sum] = "a8de4e0bacfb4d76dd1c618ded263523b53b85d92a146d8835eb1a52932fa20a"
 GITHUB_BASE_URI = "https://github.com/libcheck/check/releases/"
 
@@ -22,6 +23,7 @@ inherit cmake pkgconfig texinfo github-releases
 RREPLACES:${PN} = "check (<= 0.9.5)"
 
 EXTRA_OECMAKE:append:class-target = " -DAWK_PATH=${bindir}/awk"
+EXTRA_OECMAKE = "-DENABLE_SUBUNIT_EXT=OFF"
 
 do_install:append:class-native() {
     create_cmdline_shebang_wrapper ${D}${bindir}/checkmk
@@ -34,4 +36,3 @@ PACKAGES =+ "checkmk"
 FILES:checkmk = "${bindir}/checkmk"
 
 RDEPENDS:checkmk = "gawk"
-