diff options
author | Max Krummenacher <max.krummenacher@toradex.com> | 2025-01-19 16:21:49 +0100 |
---|---|---|
committer | Max Krummenacher <max.krummenacher@toradex.com> | 2025-01-25 15:52:18 +0100 |
commit | 37959b89dce54596bc515dda39c6ca1a8bf5df47 (patch) | |
tree | f749fafe56c46594f6a1a35fa6e7e71becb64455 | |
parent | e654f812e6509680a026e473c7f4c71527b64346 (diff) | |
download | meta-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>
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 @@ | |||
1 | From 15aae364fb52df30e4a49e73e2048fdc633e6868 Mon Sep 17 00:00:00 2001 | ||
2 | From: Max Krummenacher <max.krummenacher@toradex.com> | ||
3 | Date: Sun, 8 Oct 2023 09:15:54 -0300 | ||
4 | Subject: [PATCH] cpp-netlib: parsers.ipp: add missing include | ||
5 | |||
6 | With 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 | |||
10 | Add 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 | |||
23 | Upstream-Status: Pending | ||
24 | |||
25 | Signed-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 | |||
30 | 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 | ||
31 | index 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 | -- | ||
43 | 2.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 | |||
3 | DESCRIPTION = "i.MX Verisilicon Software ISP" | ||
4 | LICENSE = "Proprietary" | ||
5 | LIC_FILES_CHKSUM = "file://COPYING;md5=2827219e81f28aba7c6a569f7c437fa7" | ||
6 | DEPENDS = "boost libdrm virtual/libg2d libtinyxml2 patchelf-native" | ||
7 | |||
8 | SRC_URI = " \ | ||
9 | ${FSL_MIRROR}/${BP}.bin;fsl-eula=true \ | ||
10 | file://0001-cpp-netlib-parsers.ipp-add-missing-include.patch \ | ||
11 | " | ||
12 | |||
13 | SRC_URI[sha256sum] = "34b23f5b9f0856a8f5722e339a7ad4ccf4d99614788598306ff8b20093c1e846" | ||
14 | |||
15 | inherit fsl-eula-unpack cmake systemd use-imx-headers | ||
16 | |||
17 | # Build the sub-folder appshell | ||
18 | OECMAKE_SOURCEPATH = "${S}/appshell" | ||
19 | |||
20 | # Use make instead of ninja | ||
21 | OECMAKE_GENERATOR = "Unix Makefiles" | ||
22 | |||
23 | # Workaround for linking issues seen with gold linker | ||
24 | LDFLAGS:append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}" | ||
25 | |||
26 | SYSTEMD_SERVICE:${PN} = "imx8-isp.service" | ||
27 | |||
28 | EXTRA_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 | |||
50 | do_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 | |||
56 | do_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. | ||
92 | FILES_SOLIBSDEV = "" | ||
93 | FILES:${PN} += "/opt ${libdir}/lib*${SOLIBSDEV}" | ||
94 | FILES:${PN}-dev += "${FILES_SOLIBS_VERSIONED}" | ||
95 | FILES_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 | |||
103 | RDEPENDS:${PN} = "libdrm" | ||
104 | |||
105 | COMPATIBLE_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 | |||
3 | DESCRIPTION = "i.MX Verisilicon Software ISP" | ||
4 | LICENSE = "Proprietary" | ||
5 | LIC_FILES_CHKSUM = "file://COPYING;md5=ca53281cc0caa7e320d4945a896fb837" | ||
6 | DEPENDS = "boost libdrm virtual/libg2d libtinyxml2 jsoncpp patchelf-native" | ||
7 | |||
8 | SRC_URI = " \ | ||
9 | ${FSL_MIRROR}/${BP}-${IMX_SRCREV_ABBREV}.bin;fsl-eula=true \ | ||
10 | " | ||
11 | IMX_SRCREV_ABBREV = "8527c7b" | ||
12 | S = "${WORKDIR}/${BP}-${IMX_SRCREV_ABBREV}" | ||
13 | |||
14 | SRC_URI[sha256sum] = "481e49e9da6d7783d6c28385bb68463eac7b9e9fef6ea958950260a8ad6b1e4c" | ||
15 | |||
16 | inherit fsl-eula-unpack cmake systemd use-imx-headers | ||
17 | |||
18 | PACKAGECONFIG = "" | ||
19 | # Note: building with tuningext fails with boost 1.87. | ||
20 | # (update to 1.87 with walnascar) | ||
21 | PACKAGECONFIG[tuningext] = "-DTUNINGEXT=1,-DTUNINGEXT=0" | ||
22 | |||
23 | # Build the sub-folder appshell | ||
24 | OECMAKE_SOURCEPATH = "${S}/appshell" | ||
25 | |||
26 | # Use make instead of ninja | ||
27 | OECMAKE_GENERATOR = "Unix Makefiles" | ||
28 | |||
29 | # Workaround for linking issues seen with gold linker | ||
30 | LDFLAGS:append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}" | ||
31 | |||
32 | SYSTEMD_SERVICE:${PN} = "imx8-isp.service" | ||
33 | |||
34 | EXTRA_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 | |||
50 | do_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 | |||
57 | do_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. | ||
83 | FILES_SOLIBSDEV = "" | ||
84 | FILES:${PN} += "/opt ${libdir}/lib*${SOLIBSDEV}" | ||
85 | FILES:${PN}-dev += "${FILES_SOLIBS_VERSIONED}" | ||
86 | FILES_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 | |||
93 | RDEPENDS:${PN} = "libdrm" | ||
94 | |||
95 | COMPATIBLE_MACHINE = "(mx8mp-nxp-bsp)" | ||