summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax Krummenacher <max.krummenacher@toradex.com>2025-01-19 16:21:49 +0100
committerMax Krummenacher <max.krummenacher@toradex.com>2025-01-25 15:52:18 +0100
commit37959b89dce54596bc515dda39c6ca1a8bf5df47 (patch)
treef749fafe56c46594f6a1a35fa6e7e71becb64455
parente654f812e6509680a026e473c7f4c71527b64346 (diff)
downloadmeta-freescale-37959b89dce54596bc515dda39c6ca1a8bf5df47.tar.gz
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>
-rw-r--r--recipes-bsp/isp-imx/isp-imx/0001-cpp-netlib-parsers.ipp-add-missing-include.patch44
-rw-r--r--recipes-bsp/isp-imx/isp-imx_4.2.2.24.0.bb105
-rw-r--r--recipes-bsp/isp-imx/isp-imx_4.2.2.24.4.bb95
3 files changed, 95 insertions, 149 deletions
diff --git a/recipes-bsp/isp-imx/isp-imx/0001-cpp-netlib-parsers.ipp-add-missing-include.patch b/recipes-bsp/isp-imx/isp-imx/0001-cpp-netlib-parsers.ipp-add-missing-include.patch
deleted file mode 100644
index 3f04000c..00000000
--- a/recipes-bsp/isp-imx/isp-imx/0001-cpp-netlib-parsers.ipp-add-missing-include.patch
+++ /dev/null
@@ -1,44 +0,0 @@
1From 15aae364fb52df30e4a49e73e2048fdc633e6868 Mon Sep 17 00:00:00 2001
2From: Max Krummenacher <max.krummenacher@toradex.com>
3Date: Sun, 8 Oct 2023 09:15:54 -0300
4Subject: [PATCH] cpp-netlib: parsers.ipp: add missing include
5
6With the update to boost from 1.82.0 -> 1.83.0 we now get compiler errors:
7
8| .../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
9
10Add the missing explicit include. Before the file was indirectly included from qi.hpp:
11
12| In file included from .../isp-imx/4.2.2.22.0/recipe-sysroot/usr/include/boost/regex/pending/unicode_iterator.hpp:27,
13| from .../isp-imx/4.2.2.22.0/recipe-sysroot/usr/include/boost/spirit/home/support/utf8.hpp:15,
14| from .../isp-imx/4.2.2.22.0/recipe-sysroot/usr/include/boost/spirit/home/support/info.hpp:17,
15| from .../isp-imx/4.2.2.22.0/recipe-sysroot/usr/include/boost/spirit/home/qi/domain.hpp:16,
16| from .../isp-imx/4.2.2.22.0/recipe-sysroot/usr/include/boost/spirit/home/qi/meta_compiler.hpp:15,
17| from .../isp-imx/4.2.2.22.0/recipe-sysroot/usr/include/boost/spirit/home/qi/action/action.hpp:14,
18| from .../isp-imx/4.2.2.22.0/recipe-sysroot/usr/include/boost/spirit/home/qi/action.hpp:14,
19| from .../isp-imx/4.2.2.22.0/recipe-sysroot/usr/include/boost/spirit/home/qi.hpp:14,
20| from .../isp-imx/4.2.2.22.0/recipe-sysroot/usr/include/boost/spirit/include/qi.hpp:16,
21| 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,
22
23Upstream-Status: Pending
24
25Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
26---
27 .../boost/network/protocol/http/server/impl/parsers.ipp | 1 +
28 1 file changed, 1 insertion(+)
29
30diff --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
31index c31e60e..2b83fbe 100755
32--- a/utils3rd/3rd/cpp-netlib/boost/network/protocol/http/server/impl/parsers.ipp
33+++ b/utils3rd/3rd/cpp-netlib/boost/network/protocol/http/server/impl/parsers.ipp
34@@ -13,6 +13,7 @@
35 #include <tuple>
36 #include <boost/fusion/include/std_tuple.hpp>
37 #include <boost/network/protocol/http/message/header.hpp>
38+#include <boost/regex/pending/unicode_iterator.hpp>
39
40 #ifdef BOOST_NETWORK_NO_LIB
41 #ifndef BOOST_NETWORK_INLINE
42--
432.35.3
44
diff --git a/recipes-bsp/isp-imx/isp-imx_4.2.2.24.0.bb b/recipes-bsp/isp-imx/isp-imx_4.2.2.24.0.bb
deleted file mode 100644
index 9e0f0265..00000000
--- a/recipes-bsp/isp-imx/isp-imx_4.2.2.24.0.bb
+++ /dev/null
@@ -1,105 +0,0 @@
1# Copyright 2020-2023 NXP
2
3DESCRIPTION = "i.MX Verisilicon Software ISP"
4LICENSE = "Proprietary"
5LIC_FILES_CHKSUM = "file://COPYING;md5=2827219e81f28aba7c6a569f7c437fa7"
6DEPENDS = "boost libdrm virtual/libg2d libtinyxml2 patchelf-native"
7
8SRC_URI = " \
9 ${FSL_MIRROR}/${BP}.bin;fsl-eula=true \
10 file://0001-cpp-netlib-parsers.ipp-add-missing-include.patch \
11"
12
13SRC_URI[sha256sum] = "34b23f5b9f0856a8f5722e339a7ad4ccf4d99614788598306ff8b20093c1e846"
14
15inherit fsl-eula-unpack cmake systemd use-imx-headers
16
17# Build the sub-folder appshell
18OECMAKE_SOURCEPATH = "${S}/appshell"
19
20# Use make instead of ninja
21OECMAKE_GENERATOR = "Unix Makefiles"
22
23# Workaround for linking issues seen with gold linker
24LDFLAGS:append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}"
25
26SYSTEMD_SERVICE:${PN} = "imx8-isp.service"
27
28EXTRA_OECMAKE += " \
29 -DSDKTARGETSYSROOT=${STAGING_DIR_HOST} \
30 -DCMAKE_BUILD_TYPE=release \
31 -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON \
32 -DCMAKE_INSTALL_LIBDIR=${libdir} \
33 -DISP_VERSION=ISP8000NANO_V1802 \
34 -DPLATFORM=ARM64 \
35 -DAPPMODE=V4L2 \
36 -DTUNINGEXT=1 \
37 -DQTLESS=1 \
38 -DFULL_SRC_COMPILE=1 \
39 -DWITH_DRM=1 \
40 -DWITH_DWE=1 \
41 -DSERVER_LESS=1 \
42 -DSUBDEV_V4L2=1 \
43 -DENABLE_IRQ=1 \
44 -DPARTITION_BUILD=0 \
45 -D3A_SRC_BUILD=0 \
46 -DIMX_G2D=ON \
47 -Wno-dev \
48"
49
50do_configure:prepend () {
51 # FIXME: Should be rebuild.
52 patchelf --replace-needed libtinyxml2.so.9 libtinyxml2.so.10 ${S}/units/cam_device/proprietories/lib/libcam_device.so
53 patchelf --replace-needed libtinyxml2.so.9 libtinyxml2.so.10 ${S}/mediacontrol/lib/arm-64/fpga/libcam_device.so
54}
55
56do_install() {
57 # FIXME: provided by the basler-camera package, do not install them here additionally
58 rm -f ${S}/dewarp/dewarp_config//daA3840_30mc*.json
59
60 install -d ${D}/${libdir}
61 install -d ${D}/${includedir}
62 install -d ${D}/opt/imx8-isp/bin
63 install -d ${D}/opt/imx8-isp/bin/dewarp_config
64
65 cp -r ${B}/generated/release/bin/*_test ${D}/opt/imx8-isp/bin
66 cp -r ${B}/generated/release/bin/*.xml ${D}/opt/imx8-isp/bin
67 cp -r ${B}/generated/release/bin/*.drv ${D}/opt/imx8-isp/bin
68 cp -r ${B}/generated/release/bin/tuningext ${D}/opt/imx8-isp/bin
69 cp -r ${B}/generated/release/bin/isp_media_server ${D}/opt/imx8-isp/bin
70 cp -r ${B}/generated/release/bin/vvext ${D}/opt/imx8-isp/bin
71
72 cp -r ${B}/generated/release/lib/*.so* ${D}/${libdir}
73 cp -r ${B}/generated/release/include/* ${D}/${includedir}
74
75 cp -r ${S}/dewarp/dewarp_config/ ${D}/opt/imx8-isp/bin
76 cp ${S}/imx/run.sh ${D}/opt/imx8-isp/bin
77 cp ${S}/imx/start_isp.sh ${D}/opt/imx8-isp/bin
78
79 chmod +x ${D}/opt/imx8-isp/bin/run.sh
80 chmod +x ${D}/opt/imx8-isp/bin/start_isp.sh
81
82 if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
83 install -d ${D}${systemd_system_unitdir}
84 install -m 0644 ${S}/imx/imx8-isp.service ${D}${systemd_system_unitdir}
85 fi
86}
87
88# The build contains a mix of versioned and unversioned libraries, so
89# the default packaging configuration needs some modification so that
90# unversioned .so libraries go to the main package and versioned .so
91# symlinks go to -dev.
92FILES_SOLIBSDEV = ""
93FILES:${PN} += "/opt ${libdir}/lib*${SOLIBSDEV}"
94FILES:${PN}-dev += "${FILES_SOLIBS_VERSIONED}"
95FILES_SOLIBS_VERSIONED = " \
96 ${libdir}/libcppnetlib-client-connections.so \
97 ${libdir}/libcppnetlib-server-parsers.so \
98 ${libdir}/libcppnetlib-uri.so \
99 ${libdir}/libjsoncpp.so \
100 ${libdir}/libos08a20.so \
101"
102
103RDEPENDS:${PN} = "libdrm"
104
105COMPATIBLE_MACHINE = "(mx8mp-nxp-bsp)"
diff --git a/recipes-bsp/isp-imx/isp-imx_4.2.2.24.4.bb b/recipes-bsp/isp-imx/isp-imx_4.2.2.24.4.bb
new file mode 100644
index 00000000..8694489b
--- /dev/null
+++ b/recipes-bsp/isp-imx/isp-imx_4.2.2.24.4.bb
@@ -0,0 +1,95 @@
1# Copyright 2020-2023 NXP
2
3DESCRIPTION = "i.MX Verisilicon Software ISP"
4LICENSE = "Proprietary"
5LIC_FILES_CHKSUM = "file://COPYING;md5=ca53281cc0caa7e320d4945a896fb837"
6DEPENDS = "boost libdrm virtual/libg2d libtinyxml2 jsoncpp patchelf-native"
7
8SRC_URI = " \
9 ${FSL_MIRROR}/${BP}-${IMX_SRCREV_ABBREV}.bin;fsl-eula=true \
10"
11IMX_SRCREV_ABBREV = "8527c7b"
12S = "${WORKDIR}/${BP}-${IMX_SRCREV_ABBREV}"
13
14SRC_URI[sha256sum] = "481e49e9da6d7783d6c28385bb68463eac7b9e9fef6ea958950260a8ad6b1e4c"
15
16inherit fsl-eula-unpack cmake systemd use-imx-headers
17
18PACKAGECONFIG = ""
19# Note: building with tuningext fails with boost 1.87.
20# (update to 1.87 with walnascar)
21PACKAGECONFIG[tuningext] = "-DTUNINGEXT=1,-DTUNINGEXT=0"
22
23# Build the sub-folder appshell
24OECMAKE_SOURCEPATH = "${S}/appshell"
25
26# Use make instead of ninja
27OECMAKE_GENERATOR = "Unix Makefiles"
28
29# Workaround for linking issues seen with gold linker
30LDFLAGS:append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}"
31
32SYSTEMD_SERVICE:${PN} = "imx8-isp.service"
33
34EXTRA_OECMAKE += " \
35 -DSDKTARGETSYSROOT=${STAGING_DIR_HOST} \
36 -DCMAKE_BUILD_TYPE=release \
37 -DISP_VERSION=ISP8000NANO_V1802 \
38 -DPLATFORM=ARM64 \
39 -DQTLESS=1 \
40 -DFULL_SRC_COMPILE=1 \
41 -DWITH_DRM=1 \
42 -DWITH_DWE=1 \
43 -DSUBDEV_V4L2=1 \
44 -DPARTITION_BUILD=0 \
45 -D3A_SRC_BUILD=0 \
46 -DIMX_G2D=ON \
47 -Wno-dev \
48"
49
50do_configure:prepend () {
51 # FIXME: should be rebuild.
52 patchelf --replace-needed libjsoncpp.so.25 libjsoncpp.so.26 ${S}/mediacontrol/install/bin/isp_media_server
53 patchelf --replace-needed libjsoncpp.so.25 libjsoncpp.so.26 ${S}/mediacontrol/install/lib/libmedia_server.so
54 patchelf --replace-needed libjsoncpp.so.25 libjsoncpp.so.26 ${S}/tuningext/install/tuningext
55}
56
57do_install() {
58 # FIXME: provided by the basler-camera package, do not install them here additionally
59 rm -f ${S}/dewarp/dewarp_config//daA3840_30mc*.json
60
61 # The Makefile unconditionally installs tuningext even if it is not built
62 if ${@bb.utils.contains('PACKAGECONFIG','tuningext','false','true',d)}; then
63 touch ${B}/generated/release/bin/tuningext
64 fi
65
66 oe_runmake -f ${S}/Makefile install INSTALL_DIR=${D} SOURCE_DIR=${S}
67
68 if ${@bb.utils.contains('PACKAGECONFIG','tuningext','false','true',d)}; then
69 rm ${D}/opt/imx8-isp/bin/tuningext
70 fi
71
72 if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
73 install -d ${D}${systemd_system_unitdir}
74 install -m 0644 ${S}/imx/imx8-isp.service ${D}${systemd_system_unitdir}
75 fi
76
77}
78
79# The build contains a mix of versioned and unversioned libraries, so
80# the default packaging configuration needs some modification so that
81# unversioned .so libraries go to the main package and versioned .so
82# symlinks go to -dev.
83FILES_SOLIBSDEV = ""
84FILES:${PN} += "/opt ${libdir}/lib*${SOLIBSDEV}"
85FILES:${PN}-dev += "${FILES_SOLIBS_VERSIONED}"
86FILES_SOLIBS_VERSIONED = " \
87 ${libdir}/libcppnetlib-client-connections.so \
88 ${libdir}/libcppnetlib-server-parsers.so \
89 ${libdir}/libcppnetlib-uri.so \
90 ${libdir}/libos08a20.so \
91"
92
93RDEPENDS:${PN} = "libdrm"
94
95COMPATIBLE_MACHINE = "(mx8mp-nxp-bsp)"