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>
This commit is contained in:
Ross Burton 2025-06-17 15:16:48 +01:00 committed by Richard Purdie
parent 27c5b245aa
commit b1b3318eff
2 changed files with 46 additions and 2 deletions

View File

@ -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)

View File

@ -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"