diff mbox series

[meta-arago,scarthgap,08/10] abseil-cpp: Do the version bump in a yocto-check-layer compliant manner

Message ID 20251113225017.22994-8-reatmon@ti.com
State New
Headers show
Series [meta-arago,scarthgap,01/10] offscreendemo: Add REQUIRED_DISTRO_FEATURES | expand

Commit Message

Ryan Eatmon Nov. 13, 2025, 10:50 p.m. UTC
Yocto Project Compatibility requires that including a layer in a build
not change recipes in other layers.  In this case, we were providing a
newer version of a recipe that another layer provides.

The proper way of doing this is to create a bbappend and only change the
minimal things needed to perform your changes.  Additionally, to pass
the yocto-check-layer the bbappend needs to be wrapped in a manner that
only applies your changes in the event that you are making use of your
layer.  For Arago, that means only if we are building Arago.

Signed-off-by: Ryan Eatmon <reatmon@ti.com>
---
 .../abseil-cpp/abseil-cpp-arago.inc           | 17 ++++++
 .../abseil-cpp/abseil-cpp_%.bbappend          |  4 ++
 .../abseil-cpp/abseil-cpp_20240722.0.bb       | 54 -------------------
 3 files changed, 21 insertions(+), 54 deletions(-)
 create mode 100644 meta-arago-extras/recipes-devtools/abseil-cpp/abseil-cpp-arago.inc
 create mode 100644 meta-arago-extras/recipes-devtools/abseil-cpp/abseil-cpp_%.bbappend
 delete mode 100644 meta-arago-extras/recipes-devtools/abseil-cpp/abseil-cpp_20240722.0.bb
diff mbox series

Patch

diff --git a/meta-arago-extras/recipes-devtools/abseil-cpp/abseil-cpp-arago.inc b/meta-arago-extras/recipes-devtools/abseil-cpp/abseil-cpp-arago.inc
new file mode 100644
index 00000000..99449654
--- /dev/null
+++ b/meta-arago-extras/recipes-devtools/abseil-cpp/abseil-cpp-arago.inc
@@ -0,0 +1,17 @@ 
+FILESEXTRAPATHS:prepend := "${THISDIR}/abseil-cpp:"
+
+PV = "20240722.0"
+
+SRCREV = "4447c7562e3bc702ade25105912dce503f0c4010"
+BRANCH = "lts_2024_07_22"
+
+SRC_URI:remove = "\
+    file://abseil-ppc-fixes.patch \
+    file://0004-PR-1644-unscaledcycleclock-remove-RISC-V-support.patch \
+    file://0001-PR-1739-container-internal-Explicitly-include-cstdin.patch \
+"
+
+SRC_URI += "\
+    file://0004-abseil-ppc-fixes.patch \
+    file://0005-Don-t-match-Wnon-virtual-dtor-in-the-flags-are-neede.patch \
+"
diff --git a/meta-arago-extras/recipes-devtools/abseil-cpp/abseil-cpp_%.bbappend b/meta-arago-extras/recipes-devtools/abseil-cpp/abseil-cpp_%.bbappend
new file mode 100644
index 00000000..e1e08204
--- /dev/null
+++ b/meta-arago-extras/recipes-devtools/abseil-cpp/abseil-cpp_%.bbappend
@@ -0,0 +1,4 @@ 
+ABSEIL_CPP_ARAGO = ""
+ABSEIL_CPP_ARAGO:arago = "abseil-cpp-arago.inc"
+
+require ${ABSEIL_CPP_ARAGO}
diff --git a/meta-arago-extras/recipes-devtools/abseil-cpp/abseil-cpp_20240722.0.bb b/meta-arago-extras/recipes-devtools/abseil-cpp/abseil-cpp_20240722.0.bb
deleted file mode 100644
index 4bfc2100..00000000
--- a/meta-arago-extras/recipes-devtools/abseil-cpp/abseil-cpp_20240722.0.bb
+++ /dev/null
@@ -1,54 +0,0 @@ 
-SUMMARY = "Abseil is a cpp library like STL"
-DESCRIPTION = "Abseil provides pieces missing from the C++ standard. Contains \
-additional useful libraries like algorithm, container, debugging, hash, memory, \
-meta, numeric, strings, synchronization, time, types and utility."
-HOMEPAGE = "https://abseil.io/"
-SECTION = "libs"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=df52c6edb7adc22e533b2bacc3bd3915"
-
-SRCREV = "4447c7562e3bc702ade25105912dce503f0c4010"
-BRANCH = "lts_2024_07_22"
-SRC_URI = "git://github.com/abseil/abseil-cpp;branch=${BRANCH};protocol=https \
-           file://0001-absl-always-use-asm-sgidefs.h.patch             \
-           file://0002-Remove-maes-option-from-cross-compilation.patch \
-           file://0003-Remove-neon-option-from-cross-compilation.patch \
-           file://0004-abseil-ppc-fixes.patch \
-           file://0005-Don-t-match-Wnon-virtual-dtor-in-the-flags-are-neede.patch \
-          "
-
-S = "${WORKDIR}/git"
-
-inherit cmake
-
-EXTRA_OECMAKE = "-DBUILD_SHARED_LIBS=ON \
-                 -DBUILD_TESTING=OFF    \
-                 -DABSL_ENABLE_INSTALL=ON \
-                "
-
-SYSROOT_DIRS:append:class-nativesdk:mingw32 = " ${bindir}"
-
-PACKAGES_DYNAMIC += "^libabsl-*"
-PACKAGES_DYNAMIC:class-native = ""
-
-PACKAGESPLITFUNCS =+ "split_dynamic_packages"
-
-python split_dynamic_packages() {
-    libdir = d.getVar('libdir')
-
-    libpackages = do_split_packages(
-        d,
-        root=libdir,
-        file_regex=r'^libabsl_(.*)\.so\..*$',
-        output_pattern='libabsl-%s',
-        description="abseil shared library %s",
-        prepend=True,
-        extra_depends='',
-    )
-    if libpackages:
-        d.appendVar('RDEPENDS:' + d.getVar('PN'), ' ' + ' '.join(libpackages))
-}
-
-ALLOW_EMPTY:${PN} = "1"
-
-BBCLASSEXTEND = "native nativesdk"