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

Ryan Eatmon <[email protected]>
Newsgroups org.yoctoproject.lists.meta-arago
Message-ID <[email protected]>
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 <[email protected]>
---
 .../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 --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"
-- 
2.17.1
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.