ixp-imx: update to 4.2.2.24.4

Make tuningext a packageconfig as it no longer builds with latest
master (walnascar):
isp-imx contains the 3rd party cpp-netlib package. Compiling that
package against boost 1.87 results in build errors.
boost 1.87 is provided with latest master (walnascar).
Compare also with meta-oe commit a46de2745b30 ("cpp-netlib:
Skip recipe, not buildable with boost >= 1.87")

Drop patch. Fix now present in package sources.

Add jsoncpp to DEPENDS as the package no longer compiles its own
version thereoff and dynamically links against the OE provided one.

Sync CMake options with upstream recipe.

The binary blobs provided now link against libtinyxml2.so.10.
Drop the fix.
The binary blobs provided still link against libjsoncpp.so.25, but OE
provides libjsoncpp.so.26. Fixup the binaries.

The package now provides a Makefile with a install task. Use that.

Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
This commit is contained in:
Max Krummenacher 2025-01-19 16:21:49 +01:00
parent e654f812e6
commit 37959b89dc
3 changed files with 95 additions and 149 deletions

View File

@ -1,44 +0,0 @@
From 15aae364fb52df30e4a49e73e2048fdc633e6868 Mon Sep 17 00:00:00 2001
From: Max Krummenacher <max.krummenacher@toradex.com>
Date: Sun, 8 Oct 2023 09:15:54 -0300
Subject: [PATCH] cpp-netlib: parsers.ipp: add missing include
With the update to boost from 1.82.0 -> 1.83.0 we now get compiler errors:
| .../isp-imx/4.2.2.22.0/isp-imx-4.2.2.22.0/utils3rd/3rd/cpp-netlib/boost/network/protocol/http/server/impl/parsers.ipp:58:3: error: 'u8_to_u32_iterator' was not declared in this scope
Add the missing explicit include. Before the file was indirectly included from qi.hpp:
| In file included from .../isp-imx/4.2.2.22.0/recipe-sysroot/usr/include/boost/regex/pending/unicode_iterator.hpp:27,
| from .../isp-imx/4.2.2.22.0/recipe-sysroot/usr/include/boost/spirit/home/support/utf8.hpp:15,
| from .../isp-imx/4.2.2.22.0/recipe-sysroot/usr/include/boost/spirit/home/support/info.hpp:17,
| from .../isp-imx/4.2.2.22.0/recipe-sysroot/usr/include/boost/spirit/home/qi/domain.hpp:16,
| from .../isp-imx/4.2.2.22.0/recipe-sysroot/usr/include/boost/spirit/home/qi/meta_compiler.hpp:15,
| from .../isp-imx/4.2.2.22.0/recipe-sysroot/usr/include/boost/spirit/home/qi/action/action.hpp:14,
| from .../isp-imx/4.2.2.22.0/recipe-sysroot/usr/include/boost/spirit/home/qi/action.hpp:14,
| from .../isp-imx/4.2.2.22.0/recipe-sysroot/usr/include/boost/spirit/home/qi.hpp:14,
| from .../isp-imx/4.2.2.22.0/recipe-sysroot/usr/include/boost/spirit/include/qi.hpp:16,
| from .../isp-imx/4.2.2.22.0/isp-imx-4.2.2.22.0/utils3rd/3rd/cpp-netlib/boost/network/protocol/http/server/impl/parsers.ipp:5,
Upstream-Status: Pending
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
---
.../boost/network/protocol/http/server/impl/parsers.ipp | 1 +
1 file changed, 1 insertion(+)
diff --git a/utils3rd/3rd/cpp-netlib/boost/network/protocol/http/server/impl/parsers.ipp b/utils3rd/3rd/cpp-netlib/boost/network/protocol/http/server/impl/parsers.ipp
index c31e60e..2b83fbe 100755
--- a/utils3rd/3rd/cpp-netlib/boost/network/protocol/http/server/impl/parsers.ipp
+++ b/utils3rd/3rd/cpp-netlib/boost/network/protocol/http/server/impl/parsers.ipp
@@ -13,6 +13,7 @@
#include <tuple>
#include <boost/fusion/include/std_tuple.hpp>
#include <boost/network/protocol/http/message/header.hpp>
+#include <boost/regex/pending/unicode_iterator.hpp>
#ifdef BOOST_NETWORK_NO_LIB
#ifndef BOOST_NETWORK_INLINE
--
2.35.3

View File

@ -1,105 +0,0 @@
# Copyright 2020-2023 NXP
DESCRIPTION = "i.MX Verisilicon Software ISP"
LICENSE = "Proprietary"
LIC_FILES_CHKSUM = "file://COPYING;md5=2827219e81f28aba7c6a569f7c437fa7"
DEPENDS = "boost libdrm virtual/libg2d libtinyxml2 patchelf-native"
SRC_URI = " \
${FSL_MIRROR}/${BP}.bin;fsl-eula=true \
file://0001-cpp-netlib-parsers.ipp-add-missing-include.patch \
"
SRC_URI[sha256sum] = "34b23f5b9f0856a8f5722e339a7ad4ccf4d99614788598306ff8b20093c1e846"
inherit fsl-eula-unpack cmake systemd use-imx-headers
# Build the sub-folder appshell
OECMAKE_SOURCEPATH = "${S}/appshell"
# Use make instead of ninja
OECMAKE_GENERATOR = "Unix Makefiles"
# Workaround for linking issues seen with gold linker
LDFLAGS:append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}"
SYSTEMD_SERVICE:${PN} = "imx8-isp.service"
EXTRA_OECMAKE += " \
-DSDKTARGETSYSROOT=${STAGING_DIR_HOST} \
-DCMAKE_BUILD_TYPE=release \
-DCMAKE_BUILD_WITH_INSTALL_RPATH=ON \
-DCMAKE_INSTALL_LIBDIR=${libdir} \
-DISP_VERSION=ISP8000NANO_V1802 \
-DPLATFORM=ARM64 \
-DAPPMODE=V4L2 \
-DTUNINGEXT=1 \
-DQTLESS=1 \
-DFULL_SRC_COMPILE=1 \
-DWITH_DRM=1 \
-DWITH_DWE=1 \
-DSERVER_LESS=1 \
-DSUBDEV_V4L2=1 \
-DENABLE_IRQ=1 \
-DPARTITION_BUILD=0 \
-D3A_SRC_BUILD=0 \
-DIMX_G2D=ON \
-Wno-dev \
"
do_configure:prepend () {
# FIXME: Should be rebuild.
patchelf --replace-needed libtinyxml2.so.9 libtinyxml2.so.10 ${S}/units/cam_device/proprietories/lib/libcam_device.so
patchelf --replace-needed libtinyxml2.so.9 libtinyxml2.so.10 ${S}/mediacontrol/lib/arm-64/fpga/libcam_device.so
}
do_install() {
# FIXME: provided by the basler-camera package, do not install them here additionally
rm -f ${S}/dewarp/dewarp_config//daA3840_30mc*.json
install -d ${D}/${libdir}
install -d ${D}/${includedir}
install -d ${D}/opt/imx8-isp/bin
install -d ${D}/opt/imx8-isp/bin/dewarp_config
cp -r ${B}/generated/release/bin/*_test ${D}/opt/imx8-isp/bin
cp -r ${B}/generated/release/bin/*.xml ${D}/opt/imx8-isp/bin
cp -r ${B}/generated/release/bin/*.drv ${D}/opt/imx8-isp/bin
cp -r ${B}/generated/release/bin/tuningext ${D}/opt/imx8-isp/bin
cp -r ${B}/generated/release/bin/isp_media_server ${D}/opt/imx8-isp/bin
cp -r ${B}/generated/release/bin/vvext ${D}/opt/imx8-isp/bin
cp -r ${B}/generated/release/lib/*.so* ${D}/${libdir}
cp -r ${B}/generated/release/include/* ${D}/${includedir}
cp -r ${S}/dewarp/dewarp_config/ ${D}/opt/imx8-isp/bin
cp ${S}/imx/run.sh ${D}/opt/imx8-isp/bin
cp ${S}/imx/start_isp.sh ${D}/opt/imx8-isp/bin
chmod +x ${D}/opt/imx8-isp/bin/run.sh
chmod +x ${D}/opt/imx8-isp/bin/start_isp.sh
if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
install -d ${D}${systemd_system_unitdir}
install -m 0644 ${S}/imx/imx8-isp.service ${D}${systemd_system_unitdir}
fi
}
# The build contains a mix of versioned and unversioned libraries, so
# the default packaging configuration needs some modification so that
# unversioned .so libraries go to the main package and versioned .so
# symlinks go to -dev.
FILES_SOLIBSDEV = ""
FILES:${PN} += "/opt ${libdir}/lib*${SOLIBSDEV}"
FILES:${PN}-dev += "${FILES_SOLIBS_VERSIONED}"
FILES_SOLIBS_VERSIONED = " \
${libdir}/libcppnetlib-client-connections.so \
${libdir}/libcppnetlib-server-parsers.so \
${libdir}/libcppnetlib-uri.so \
${libdir}/libjsoncpp.so \
${libdir}/libos08a20.so \
"
RDEPENDS:${PN} = "libdrm"
COMPATIBLE_MACHINE = "(mx8mp-nxp-bsp)"

View File

@ -0,0 +1,95 @@
# Copyright 2020-2023 NXP
DESCRIPTION = "i.MX Verisilicon Software ISP"
LICENSE = "Proprietary"
LIC_FILES_CHKSUM = "file://COPYING;md5=ca53281cc0caa7e320d4945a896fb837"
DEPENDS = "boost libdrm virtual/libg2d libtinyxml2 jsoncpp patchelf-native"
SRC_URI = " \
${FSL_MIRROR}/${BP}-${IMX_SRCREV_ABBREV}.bin;fsl-eula=true \
"
IMX_SRCREV_ABBREV = "8527c7b"
S = "${WORKDIR}/${BP}-${IMX_SRCREV_ABBREV}"
SRC_URI[sha256sum] = "481e49e9da6d7783d6c28385bb68463eac7b9e9fef6ea958950260a8ad6b1e4c"
inherit fsl-eula-unpack cmake systemd use-imx-headers
PACKAGECONFIG = ""
# Note: building with tuningext fails with boost 1.87.
# (update to 1.87 with walnascar)
PACKAGECONFIG[tuningext] = "-DTUNINGEXT=1,-DTUNINGEXT=0"
# Build the sub-folder appshell
OECMAKE_SOURCEPATH = "${S}/appshell"
# Use make instead of ninja
OECMAKE_GENERATOR = "Unix Makefiles"
# Workaround for linking issues seen with gold linker
LDFLAGS:append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}"
SYSTEMD_SERVICE:${PN} = "imx8-isp.service"
EXTRA_OECMAKE += " \
-DSDKTARGETSYSROOT=${STAGING_DIR_HOST} \
-DCMAKE_BUILD_TYPE=release \
-DISP_VERSION=ISP8000NANO_V1802 \
-DPLATFORM=ARM64 \
-DQTLESS=1 \
-DFULL_SRC_COMPILE=1 \
-DWITH_DRM=1 \
-DWITH_DWE=1 \
-DSUBDEV_V4L2=1 \
-DPARTITION_BUILD=0 \
-D3A_SRC_BUILD=0 \
-DIMX_G2D=ON \
-Wno-dev \
"
do_configure:prepend () {
# FIXME: should be rebuild.
patchelf --replace-needed libjsoncpp.so.25 libjsoncpp.so.26 ${S}/mediacontrol/install/bin/isp_media_server
patchelf --replace-needed libjsoncpp.so.25 libjsoncpp.so.26 ${S}/mediacontrol/install/lib/libmedia_server.so
patchelf --replace-needed libjsoncpp.so.25 libjsoncpp.so.26 ${S}/tuningext/install/tuningext
}
do_install() {
# FIXME: provided by the basler-camera package, do not install them here additionally
rm -f ${S}/dewarp/dewarp_config//daA3840_30mc*.json
# The Makefile unconditionally installs tuningext even if it is not built
if ${@bb.utils.contains('PACKAGECONFIG','tuningext','false','true',d)}; then
touch ${B}/generated/release/bin/tuningext
fi
oe_runmake -f ${S}/Makefile install INSTALL_DIR=${D} SOURCE_DIR=${S}
if ${@bb.utils.contains('PACKAGECONFIG','tuningext','false','true',d)}; then
rm ${D}/opt/imx8-isp/bin/tuningext
fi
if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
install -d ${D}${systemd_system_unitdir}
install -m 0644 ${S}/imx/imx8-isp.service ${D}${systemd_system_unitdir}
fi
}
# The build contains a mix of versioned and unversioned libraries, so
# the default packaging configuration needs some modification so that
# unversioned .so libraries go to the main package and versioned .so
# symlinks go to -dev.
FILES_SOLIBSDEV = ""
FILES:${PN} += "/opt ${libdir}/lib*${SOLIBSDEV}"
FILES:${PN}-dev += "${FILES_SOLIBS_VERSIONED}"
FILES_SOLIBS_VERSIONED = " \
${libdir}/libcppnetlib-client-connections.so \
${libdir}/libcppnetlib-server-parsers.so \
${libdir}/libcppnetlib-uri.so \
${libdir}/libos08a20.so \
"
RDEPENDS:${PN} = "libdrm"
COMPATIBLE_MACHINE = "(mx8mp-nxp-bsp)"