| Message ID | 20260316092648.1377711-2-p-deshmukh@ti.com |
|---|---|
| State | Superseded |
| Delegated to: | Ryan Eatmon |
| Headers | show |
| Series | nnstreamer: Fix packaging and buildpaths issues | expand |
On 3/16/2026 4:26 AM, Pratham Deshmukh via lists.yoctoproject.org wrote: > Add runtime dependency to automatically install > nnstreamer-tests package when nnstreamer is installed, > ensuring unittest_filter_onnxruntime is available for > ONNX Runtime benchmarking. > > Include buildpaths compliance patch that replaces > absolute build paths(meson.build_root()) with relative > paths in generated unittest files, resolving QA errors > "contains reference to TMPDIR [buildpaths]" in unittest_tizen_custom.cc > and unittest_tizen_custom-set.cc. > > Fixes: 319271fe5fc8bc3016b1eb765784076af666b61b ("nnstreamer: upgrade 2.4.4 -> 2.6.0") > > Signed-off-by: Pratham Deshmukh <p-deshmukh@ti.com> > --- > Change Logs: > v3 -> v4: > - Use RDEPENDS approach instead of package consolidation to maintain > clean separation between runtime and test components. > v2 -> v3: > - Fix runitme dependencies issue for unittest_filter_onnxruntime. > - Upgrade recipe to make it QA compliant. > v1 -> v2: > - Added fix commit hash in the commit message. > > ...ute-build-paths-from-generated-test-.patch | 42 +++++++++++++++++++ > .../nnstreamer/nnstreamer_2.6.0.bb | 9 +++- > 2 files changed, 49 insertions(+), 2 deletions(-) > create mode 100644 meta-arago-extras/recipes-multimedia/nnstreamer/nnstreamer/0001-fix-Remove-absolute-build-paths-from-generated-test-.patch > > diff --git a/meta-arago-extras/recipes-multimedia/nnstreamer/nnstreamer/0001-fix-Remove-absolute-build-paths-from-generated-test-.patch b/meta-arago-extras/recipes-multimedia/nnstreamer/nnstreamer/0001-fix-Remove-absolute-build-paths-from-generated-test-.patch > new file mode 100644 > index 00000000..345b3eb2 > --- /dev/null > +++ b/meta-arago-extras/recipes-multimedia/nnstreamer/nnstreamer/0001-fix-Remove-absolute-build-paths-from-generated-test-.patch > @@ -0,0 +1,42 @@ > +From a5f962b51431ac19c264b8b9baa78ff283a77efe Mon Sep 17 00:00:00 2001 > +From: Pratham Deshmukh <p-deshmukh@ti.com> > +Date: Tue, 10 Mar 2026 15:23:05 +0530 > +Subject: [PATCH] fix: Remove absolute build paths from generated test files > + > +Replace meson.build_root() with relative paths in custom_filter_path > +to prevent Yocto buildpaths QA errors. The generated unittest files > +were embedding absolute build directory paths (e.g., /tmp/work/...) > +as string literals, which Yocto's QA system correctly flags as a > +build reproducibility issue. > + > +The runtime code already handles proper path resolution using > +NNSTREAMER_SOURCE_ROOT_PATH environment variable or relative > +fallbacks, so this change maintains full functionality > +while eliminating embedded build paths. > + > +Fixes: QA Issue "contains reference to TMPDIR [buildpaths]" in > +unittest_tizen_custom.cc and unittest_tizen_custom-set.cc > + > +Upstream-Status: Inappropriate [oe-specific] > + > +Signed-off-by: Pratham Deshmukh <p-deshmukh@ti.com> > +--- > + tests/nnstreamer_filter_extensions_common/meson.build | 2 +- > + 1 file changed, 1 insertion(+), 1 deletion(-) > + > +diff --git a/tests/nnstreamer_filter_extensions_common/meson.build b/tests/nnstreamer_filter_extensions_common/meson.build > +index ecd1878b..ba72ee20 100644 > +--- a/tests/nnstreamer_filter_extensions_common/meson.build > ++++ b/tests/nnstreamer_filter_extensions_common/meson.build > +@@ -9,7 +9,7 @@ tizen_apptest_deps = [ > + # Format for adding subplugin into extensions - > + # [name, extension abbreviation, dependencies, model file name/folder path/file path, test name] > + extensions = [] > +-custom_filter_path = join_paths(meson.build_root(), 'tests', 'nnstreamer_example', > ++custom_filter_path = join_paths('tests', 'nnstreamer_example', > + 'libnnstreamer_customfilter_passthrough.' + so_ext) > + extensions += [['custom', 'custom', nnstreamer_unittest_deps, custom_filter_path, 'custom']] > + extensions += [['custom', 'custom', nnstreamer_unittest_deps, custom_filter_path, 'custom-set']] > +-- > +2.34.1 > + > diff --git a/meta-arago-extras/recipes-multimedia/nnstreamer/nnstreamer_2.6.0.bb b/meta-arago-extras/recipes-multimedia/nnstreamer/nnstreamer_2.6.0.bb > index c62589ac..fbfb887c 100644 > --- a/meta-arago-extras/recipes-multimedia/nnstreamer/nnstreamer_2.6.0.bb > +++ b/meta-arago-extras/recipes-multimedia/nnstreamer/nnstreamer_2.6.0.bb > @@ -3,7 +3,11 @@ DESCRIPTION = "NNStreamer is a set of Gstreamer plugins that allow Gstreamer dev > LICENSE = "LGPL-2.1-only" > LIC_FILES_CHKSUM = "file://LICENSE;md5=c25e5c1949624d71896127788f1ba590" > > -SRC_URI = "git://github.com/nnstreamer/nnstreamer.git;branch=main;protocol=https" > +SRC_URI = " \ > + git://github.com/nnstreamer/nnstreamer.git;branch=main;protocol=https \ > + file://0001-fix-Remove-absolute-build-paths-from-generated-test-.patch \ > +" > + > SRCREV = "b970e9eff6bfb4e915463842422fe14bb2e53f84" > > # Only compatible with armv7a, armv7ve, and aarch64 > @@ -56,13 +60,14 @@ FILES:${PN} += "\ > " > INSANE_SKIP:${PN} += "dev-so" > > +RDEPENDS:${PN} += "nnstreamer-tests" > + Why are we forcing the tests to be installed when nnstreamer is installed? In fact, I cannot find any recipe that even refers to nnstreamer. How is this even begin included in builds? In my mind, if you are wanting the tests for use during our testing, then nnstreamer-tests should be included in the ti-test package to ensure that the tests are present. > PACKAGES =+ "${PN}-tests" > > FILES:${PN}-tests += "\ > ${libdir}/nnstreamer/customfilters/* \ > ${bindir}/unittest-nnstreamer/* \ > " > -INSANE_SKIP:${PN}-tests += "buildpaths" > > FILES:${PN}-dev = "\ > ${includedir}/nnstreamer/* \
On 3/16/26 4:26 AM, Pratham Deshmukh wrote: > Add runtime dependency to automatically install > nnstreamer-tests package when nnstreamer is installed, > ensuring unittest_filter_onnxruntime is available for > ONNX Runtime benchmarking. > > Include buildpaths compliance patch that replaces > absolute build paths(meson.build_root()) with relative > paths in generated unittest files, resolving QA errors > "contains reference to TMPDIR [buildpaths]" in unittest_tizen_custom.cc > and unittest_tizen_custom-set.cc. These are two independent changes, each paragraph above should be made in to its own patch. Andrew > > Fixes: 319271fe5fc8bc3016b1eb765784076af666b61b ("nnstreamer: upgrade 2.4.4 -> 2.6.0") > > Signed-off-by: Pratham Deshmukh <p-deshmukh@ti.com> > --- > Change Logs: > v3 -> v4: > - Use RDEPENDS approach instead of package consolidation to maintain > clean separation between runtime and test components. > v2 -> v3: > - Fix runitme dependencies issue for unittest_filter_onnxruntime. > - Upgrade recipe to make it QA compliant. > v1 -> v2: > - Added fix commit hash in the commit message. > > ...ute-build-paths-from-generated-test-.patch | 42 +++++++++++++++++++ > .../nnstreamer/nnstreamer_2.6.0.bb | 9 +++- > 2 files changed, 49 insertions(+), 2 deletions(-) > create mode 100644 meta-arago-extras/recipes-multimedia/nnstreamer/nnstreamer/0001-fix-Remove-absolute-build-paths-from-generated-test-.patch > > diff --git a/meta-arago-extras/recipes-multimedia/nnstreamer/nnstreamer/0001-fix-Remove-absolute-build-paths-from-generated-test-.patch b/meta-arago-extras/recipes-multimedia/nnstreamer/nnstreamer/0001-fix-Remove-absolute-build-paths-from-generated-test-.patch > new file mode 100644 > index 00000000..345b3eb2 > --- /dev/null > +++ b/meta-arago-extras/recipes-multimedia/nnstreamer/nnstreamer/0001-fix-Remove-absolute-build-paths-from-generated-test-.patch > @@ -0,0 +1,42 @@ > +From a5f962b51431ac19c264b8b9baa78ff283a77efe Mon Sep 17 00:00:00 2001 > +From: Pratham Deshmukh <p-deshmukh@ti.com> > +Date: Tue, 10 Mar 2026 15:23:05 +0530 > +Subject: [PATCH] fix: Remove absolute build paths from generated test files > + > +Replace meson.build_root() with relative paths in custom_filter_path > +to prevent Yocto buildpaths QA errors. The generated unittest files > +were embedding absolute build directory paths (e.g., /tmp/work/...) > +as string literals, which Yocto's QA system correctly flags as a > +build reproducibility issue. > + > +The runtime code already handles proper path resolution using > +NNSTREAMER_SOURCE_ROOT_PATH environment variable or relative > +fallbacks, so this change maintains full functionality > +while eliminating embedded build paths. > + > +Fixes: QA Issue "contains reference to TMPDIR [buildpaths]" in > +unittest_tizen_custom.cc and unittest_tizen_custom-set.cc > + > +Upstream-Status: Inappropriate [oe-specific] > + > +Signed-off-by: Pratham Deshmukh <p-deshmukh@ti.com> > +--- > + tests/nnstreamer_filter_extensions_common/meson.build | 2 +- > + 1 file changed, 1 insertion(+), 1 deletion(-) > + > +diff --git a/tests/nnstreamer_filter_extensions_common/meson.build b/tests/nnstreamer_filter_extensions_common/meson.build > +index ecd1878b..ba72ee20 100644 > +--- a/tests/nnstreamer_filter_extensions_common/meson.build > ++++ b/tests/nnstreamer_filter_extensions_common/meson.build > +@@ -9,7 +9,7 @@ tizen_apptest_deps = [ > + # Format for adding subplugin into extensions - > + # [name, extension abbreviation, dependencies, model file name/folder path/file path, test name] > + extensions = [] > +-custom_filter_path = join_paths(meson.build_root(), 'tests', 'nnstreamer_example', > ++custom_filter_path = join_paths('tests', 'nnstreamer_example', > + 'libnnstreamer_customfilter_passthrough.' + so_ext) > + extensions += [['custom', 'custom', nnstreamer_unittest_deps, custom_filter_path, 'custom']] > + extensions += [['custom', 'custom', nnstreamer_unittest_deps, custom_filter_path, 'custom-set']] > +-- > +2.34.1 > + > diff --git a/meta-arago-extras/recipes-multimedia/nnstreamer/nnstreamer_2.6.0.bb b/meta-arago-extras/recipes-multimedia/nnstreamer/nnstreamer_2.6.0.bb > index c62589ac..fbfb887c 100644 > --- a/meta-arago-extras/recipes-multimedia/nnstreamer/nnstreamer_2.6.0.bb > +++ b/meta-arago-extras/recipes-multimedia/nnstreamer/nnstreamer_2.6.0.bb > @@ -3,7 +3,11 @@ DESCRIPTION = "NNStreamer is a set of Gstreamer plugins that allow Gstreamer dev > LICENSE = "LGPL-2.1-only" > LIC_FILES_CHKSUM = "file://LICENSE;md5=c25e5c1949624d71896127788f1ba590" > > -SRC_URI = "git://github.com/nnstreamer/nnstreamer.git;branch=main;protocol=https" > +SRC_URI = " \ > + git://github.com/nnstreamer/nnstreamer.git;branch=main;protocol=https \ > + file://0001-fix-Remove-absolute-build-paths-from-generated-test-.patch \ > +" > + > SRCREV = "b970e9eff6bfb4e915463842422fe14bb2e53f84" > > # Only compatible with armv7a, armv7ve, and aarch64 > @@ -56,13 +60,14 @@ FILES:${PN} += "\ > " > INSANE_SKIP:${PN} += "dev-so" > > +RDEPENDS:${PN} += "nnstreamer-tests"> + > PACKAGES =+ "${PN}-tests" > > FILES:${PN}-tests += "\ > ${libdir}/nnstreamer/customfilters/* \ > ${bindir}/unittest-nnstreamer/* \ > " > -INSANE_SKIP:${PN}-tests += "buildpaths" > > FILES:${PN}-dev = "\ > ${includedir}/nnstreamer/* \
The intent here was not to force the tests into all images. The nnstreamer components (like other stacks) are pulled in through the meta-tisdk:meta-ti-ml layer for a specific SDK images that require them, so the base arago-default-image is not bloated. https://github.com/TexasInstruments/meta-tisdk/blob/master/meta-ti-ml/recipes-core/images/tisdk-default-image.bbappend
On 3/16/2026 9:57 AM, Deshmukh, Pratham wrote: > The intent here was not to force the tests into all images. The nnstreamer components (like other stacks) are pulled in through the meta-tisdk:meta-ti-ml layer for a specific SDK images that require them, so the base arago-default-image is not bloated. > > > https://github.com/TexasInstruments/meta-tisdk/blob/master/meta-ti-ml/recipes-core/images/tisdk-default-image.bbappend <https://github.com/TexasInstruments/meta-tisdk/blob/master/meta-ti-ml/recipes-core/images/tisdk-default-image.bbappend> Then you should just add nnstreamer-tests to the above and not as an RDEPENDS in the main recipe. > ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ > *From:* Eatmon, Ryan > *Sent:* Monday, March 16, 2026 6:40:23 PM > *To:* Deshmukh, Pratham; meta-arago@lists.yoctoproject.org > *Cc:* Davis, Andrew; Shilwant, Chirag; Dmytriyenko, Denys; Singh, Vishnu > *Subject:* Re: [meta-arago][master][PATCH v4 1/1] nnstreamer: Add test package dependency and fix buildpaths QA issues > > > On 3/16/2026 4:26 AM, Pratham Deshmukh via lists.yoctoproject.org wrote: >> Add runtime dependency to automatically install >> nnstreamer-tests package when nnstreamer is installed, >> ensuring unittest_filter_onnxruntime is available for >> ONNX Runtime benchmarking. >> >> Include buildpaths compliance patch that replaces >> absolute build paths(meson.build_root()) with relative >> paths in generated unittest files, resolving QA errors >> "contains reference to TMPDIR [buildpaths]" in unittest_tizen_custom.cc >> and unittest_tizen_custom-set.cc. >> >> Fixes: 319271fe5fc8bc3016b1eb765784076af666b61b ("nnstreamer: upgrade 2.4.4 -> 2.6.0") >> >> Signed-off-by: Pratham Deshmukh <p-deshmukh@ti.com> >> --- >> Change Logs: >> v3 -> v4: >> - Use RDEPENDS approach instead of package consolidation to maintain >> clean separation between runtime and test components. >> v2 -> v3: >> - Fix runitme dependencies issue for unittest_filter_onnxruntime. >> - Upgrade recipe to make it QA compliant. >> v1 -> v2: >> - Added fix commit hash in the commit message. >> >> ...ute-build-paths-from-generated-test-.patch | 42 +++++++++++++++++++ >> .../nnstreamer/nnstreamer_2.6.0.bb | 9 +++- >> 2 files changed, 49 insertions(+), 2 deletions(-) >> create mode 100644 meta-arago-extras/recipes-multimedia/nnstreamer/nnstreamer/0001-fix-Remove-absolute-build-paths-from-generated-test-.patch >> >> diff --git a/meta-arago-extras/recipes-multimedia/nnstreamer/nnstreamer/0001-fix-Remove-absolute-build-paths-from-generated-test-.patch b/meta-arago-extras/recipes-multimedia/nnstreamer/nnstreamer/0001-fix-Remove-absolute-build-paths-from-generated-test-.patch >> new file mode 100644 >> index 00000000..345b3eb2 >> --- /dev/null >> +++ b/meta-arago-extras/recipes-multimedia/nnstreamer/nnstreamer/0001-fix-Remove-absolute-build-paths-from-generated-test-.patch >> @@ -0,0 +1,42 @@ >> +From a5f962b51431ac19c264b8b9baa78ff283a77efe Mon Sep 17 00:00:00 2001 >> +From: Pratham Deshmukh <p-deshmukh@ti.com> >> +Date: Tue, 10 Mar 2026 15:23:05 +0530 >> +Subject: [PATCH] fix: Remove absolute build paths from generated test files >> + >> +Replace meson.build_root() with relative paths in custom_filter_path >> +to prevent Yocto buildpaths QA errors. The generated unittest files >> +were embedding absolute build directory paths (e.g., /tmp/work/...) >> +as string literals, which Yocto's QA system correctly flags as a >> +build reproducibility issue. >> + >> +The runtime code already handles proper path resolution using >> +NNSTREAMER_SOURCE_ROOT_PATH environment variable or relative >> +fallbacks, so this change maintains full functionality >> +while eliminating embedded build paths. >> + >> +Fixes: QA Issue "contains reference to TMPDIR [buildpaths]" in >> +unittest_tizen_custom.cc and unittest_tizen_custom-set.cc >> + >> +Upstream-Status: Inappropriate [oe-specific] >> + >> +Signed-off-by: Pratham Deshmukh <p-deshmukh@ti.com> >> +--- >> + tests/nnstreamer_filter_extensions_common/meson.build | 2 +- >> + 1 file changed, 1 insertion(+), 1 deletion(-) >> + >> +diff --git a/tests/nnstreamer_filter_extensions_common/meson.build b/tests/nnstreamer_filter_extensions_common/meson.build >> +index ecd1878b..ba72ee20 100644 >> +--- a/tests/nnstreamer_filter_extensions_common/meson.build >> ++++ b/tests/nnstreamer_filter_extensions_common/meson.build >> +@@ -9,7 +9,7 @@ tizen_apptest_deps = [ >> + # Format for adding subplugin into extensions - >> + # [name, extension abbreviation, dependencies, model file name/folder path/file path, test name] >> + extensions = [] >> +-custom_filter_path = join_paths(meson.build_root(), 'tests', 'nnstreamer_example', >> ++custom_filter_path = join_paths('tests', 'nnstreamer_example', >> + 'libnnstreamer_customfilter_passthrough.' + so_ext) >> + extensions += [['custom', 'custom', nnstreamer_unittest_deps, custom_filter_path, 'custom']] >> + extensions += [['custom', 'custom', nnstreamer_unittest_deps, custom_filter_path, 'custom-set']] >> +-- >> +2.34.1 >> + >> diff --git a/meta-arago-extras/recipes-multimedia/nnstreamer/nnstreamer_2.6.0.bb b/meta-arago-extras/recipes-multimedia/nnstreamer/nnstreamer_2.6.0.bb >> index c62589ac..fbfb887c 100644 >> --- a/meta-arago-extras/recipes-multimedia/nnstreamer/nnstreamer_2.6.0.bb >> +++ b/meta-arago-extras/recipes-multimedia/nnstreamer/nnstreamer_2.6.0.bb >> @@ -3,7 +3,11 @@ DESCRIPTION = "NNStreamer is a set of Gstreamer plugins that allow Gstreamer dev >> LICENSE = "LGPL-2.1-only" >> LIC_FILES_CHKSUM = "file://LICENSE;md5=c25e5c1949624d71896127788f1ba590 <file://LICENSE;md5=c25e5c1949624d71896127788f1ba590>" >> >> -SRC_URI = "git://github.com/nnstreamer/nnstreamer.git;branch=main;protocol=https" >> +SRC_URI = " \ >> + git://github.com/nnstreamer/nnstreamer.git;branch=main;protocol=https \ >> + file://0001-fix-Remove-absolute-build-paths-from-generated-test-.patch <file://0001-fix-Remove-absolute-build-paths-from-generated-test-.patch> \ >> +" >> + >> SRCREV = "b970e9eff6bfb4e915463842422fe14bb2e53f84" >> >> # Only compatible with armv7a, armv7ve, and aarch64 >> @@ -56,13 +60,14 @@ FILES:${PN} += "\ >> " >> INSANE_SKIP:${PN} += "dev-so" >> >> +RDEPENDS:${PN} += "nnstreamer-tests" >> + > > Why are we forcing the tests to be installed when nnstreamer is installed? In fact, I cannot find any recipe that even refers to nnstreamer. How is this even begin included in builds? In my mind, if you are wanting the tests for use during our testing, then nnstreamer-tests should be included in the ti-test package to ensure that the tests are present. > > >> PACKAGES =+ "${PN}-tests" >> >> FILES:${PN}-tests += "\ >> ${libdir}/nnstreamer/customfilters/* \ >> ${bindir}/unittest-nnstreamer/* \ >> " >> -INSANE_SKIP:${PN}-tests += "buildpaths" >> >> FILES:${PN}-dev = "\ >> ${includedir}/nnstreamer/* \ > > -- > Ryan Eatmon reatmon@ti.com > ----------------------------------------- > Texas Instruments, Inc. - LCPD - MGTS > -- Ryan Eatmon reatmon@ti.com ----------------------------------------- Texas Instruments, Inc. - LCPD - MGTS
On 16/03/26 9:12 pm, Ryan Eatmon wrote: > > > On 3/16/2026 9:57 AM, Deshmukh, Pratham wrote: >> The intent here was not to force the tests into all images. The >> nnstreamer components (like other stacks) are pulled in through the >> meta-tisdk:meta-ti-ml layer for a specific SDK images that require >> them, so the base arago-default-image is not bloated. >> >> >> https://github.com/TexasInstruments/meta-tisdk/blob/master/meta-ti-ml/recipes-core/images/tisdk-default-image.bbappend >> <https://github.com/TexasInstruments/meta-tisdk/blob/master/meta-ti-ml/recipes-core/images/tisdk-default-image.bbappend> >> > > Then you should just add nnstreamer-tests to the above and not as an > RDEPENDS in the main recipe. > > There are customers who would not use the meta-tisdk:meta-ti-ml layer and would probably just rely on meta-arago to provide the latest version of nnstreamer. They always have an option to add nnstreamer in local.conf and build their image, so when they would do it without meta-tisdk, they would never have nnstreamer-tests as a runtime dependency in their filesystem. This means these customers would encounter the same"unittest_filter_onnxruntime not found" issue we're trying to solve. The upstream meta-neural-network layer [0] uses the same pattern we're proposing, with RDEPENDS:${PN}-unittest = "nnstreamer" in their recipe. This shows the nnstreamer community considers runtime dependencies between core and test components to be standard practice. Also we are looking to support customers who would choose nnstreamer from meta-arago after landing up from [1]. [0] https://github.com/nnstreamer/meta-neural-network/blob/master/recipes-nnstreamer/nnstreamer/nnstreamer_2.4.2.bb#L79 [1] https://layers.openembedded.org/layerindex/branch/master/recipes/?q=nnstreamer > >> ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ >> >> *From:* Eatmon, Ryan >> *Sent:* Monday, March 16, 2026 6:40:23 PM >> *To:* Deshmukh, Pratham; meta-arago@lists.yoctoproject.org >> *Cc:* Davis, Andrew; Shilwant, Chirag; Dmytriyenko, Denys; Singh, Vishnu >> *Subject:* Re: [meta-arago][master][PATCH v4 1/1] nnstreamer: Add >> test package dependency and fix buildpaths QA issues >> >> >> On 3/16/2026 4:26 AM, Pratham Deshmukh via lists.yoctoproject.org wrote: >>> Add runtime dependency to automatically install >>> nnstreamer-tests package when nnstreamer is installed, >>> ensuring unittest_filter_onnxruntime is available for >>> ONNX Runtime benchmarking. >>> >>> Include buildpaths compliance patch that replaces >>> absolute build paths(meson.build_root()) with relative >>> paths in generated unittest files, resolving QA errors >>> "contains reference to TMPDIR [buildpaths]" in unittest_tizen_custom.cc >>> and unittest_tizen_custom-set.cc. >>> >>> Fixes: 319271fe5fc8bc3016b1eb765784076af666b61b ("nnstreamer: >>> upgrade 2.4.4 -> 2.6.0") >>> >>> Signed-off-by: Pratham Deshmukh <p-deshmukh@ti.com> >>> --- >>> Change Logs: >>> v3 -> v4: >>> - Use RDEPENDS approach instead of package consolidation to maintain >>> clean separation between runtime and test components. >>> v2 -> v3: >>> - Fix runitme dependencies issue for unittest_filter_onnxruntime. >>> - Upgrade recipe to make it QA compliant. >>> v1 -> v2: >>> - Added fix commit hash in the commit message. >>> >>> ...ute-build-paths-from-generated-test-.patch | 42 >>> +++++++++++++++++++ >>> .../nnstreamer/nnstreamer_2.6.0.bb | 9 +++- >>> 2 files changed, 49 insertions(+), 2 deletions(-) >>> create mode 100644 >>> meta-arago-extras/recipes-multimedia/nnstreamer/nnstreamer/0001-fix-Remove-absolute-build-paths-from-generated-test-.patch >>> >>> diff --git >>> a/meta-arago-extras/recipes-multimedia/nnstreamer/nnstreamer/0001-fix-Remove-absolute-build-paths-from-generated-test-.patch >>> b/meta-arago-extras/recipes-multimedia/nnstreamer/nnstreamer/0001-fix-Remove-absolute-build-paths-from-generated-test-.patch >>> >>> new file mode 100644 >>> index 00000000..345b3eb2 >>> --- /dev/null >>> +++ >>> b/meta-arago-extras/recipes-multimedia/nnstreamer/nnstreamer/0001-fix-Remove-absolute-build-paths-from-generated-test-.patch >>> @@ -0,0 +1,42 @@ >>> +From a5f962b51431ac19c264b8b9baa78ff283a77efe Mon Sep 17 00:00:00 2001 >>> +From: Pratham Deshmukh <p-deshmukh@ti.com> >>> +Date: Tue, 10 Mar 2026 15:23:05 +0530 >>> +Subject: [PATCH] fix: Remove absolute build paths from generated >>> test files >>> + >>> +Replace meson.build_root() with relative paths in custom_filter_path >>> +to prevent Yocto buildpaths QA errors. The generated unittest files >>> +were embedding absolute build directory paths (e.g., /tmp/work/...) >>> +as string literals, which Yocto's QA system correctly flags as a >>> +build reproducibility issue. >>> + >>> +The runtime code already handles proper path resolution using >>> +NNSTREAMER_SOURCE_ROOT_PATH environment variable or relative >>> +fallbacks, so this change maintains full functionality >>> +while eliminating embedded build paths. >>> + >>> +Fixes: QA Issue "contains reference to TMPDIR [buildpaths]" in >>> +unittest_tizen_custom.cc and unittest_tizen_custom-set.cc >>> + >>> +Upstream-Status: Inappropriate [oe-specific] >>> + >>> +Signed-off-by: Pratham Deshmukh <p-deshmukh@ti.com> >>> +--- >>> + tests/nnstreamer_filter_extensions_common/meson.build | 2 +- >>> + 1 file changed, 1 insertion(+), 1 deletion(-) >>> + >>> +diff --git a/tests/nnstreamer_filter_extensions_common/meson.build >>> b/tests/nnstreamer_filter_extensions_common/meson.build >>> +index ecd1878b..ba72ee20 100644 >>> +--- a/tests/nnstreamer_filter_extensions_common/meson.build >>> ++++ b/tests/nnstreamer_filter_extensions_common/meson.build >>> +@@ -9,7 +9,7 @@ tizen_apptest_deps = [ >>> + # Format for adding subplugin into extensions - >>> + # [name, extension abbreviation, dependencies, model file >>> name/folder path/file path, test name] >>> + extensions = [] >>> +-custom_filter_path = join_paths(meson.build_root(), 'tests', >>> 'nnstreamer_example', >>> ++custom_filter_path = join_paths('tests', 'nnstreamer_example', >>> + 'libnnstreamer_customfilter_passthrough.' + so_ext) >>> + extensions += [['custom', 'custom', nnstreamer_unittest_deps, >>> custom_filter_path, 'custom']] >>> + extensions += [['custom', 'custom', nnstreamer_unittest_deps, >>> custom_filter_path, 'custom-set']] >>> +-- >>> +2.34.1 >>> + >>> diff --git >>> a/meta-arago-extras/recipes-multimedia/nnstreamer/nnstreamer_2.6.0.bb >>> b/meta-arago-extras/recipes-multimedia/nnstreamer/nnstreamer_2.6.0.bb >>> index c62589ac..fbfb887c 100644 >>> --- >>> a/meta-arago-extras/recipes-multimedia/nnstreamer/nnstreamer_2.6.0.bb >>> +++ >>> b/meta-arago-extras/recipes-multimedia/nnstreamer/nnstreamer_2.6.0.bb >>> @@ -3,7 +3,11 @@ DESCRIPTION = "NNStreamer is a set of Gstreamer >>> plugins that allow Gstreamer dev >>> LICENSE = "LGPL-2.1-only" >>> LIC_FILES_CHKSUM = >>> "file://LICENSE;md5=c25e5c1949624d71896127788f1ba590 >>> <file://LICENSE;md5=c25e5c1949624d71896127788f1ba590>" >>> -SRC_URI = >>> "git://github.com/nnstreamer/nnstreamer.git;branch=main;protocol=https" >>> +SRC_URI = " \ >>> + >>> git://github.com/nnstreamer/nnstreamer.git;branch=main;protocol=https \ >>> + >>> file://0001-fix-Remove-absolute-build-paths-from-generated-test-.patch >>> <file://0001-fix-Remove-absolute-build-paths-from-generated-test-.patch> >>> \ >>> +" >>> + >>> SRCREV = "b970e9eff6bfb4e915463842422fe14bb2e53f84" >>> # Only compatible with armv7a, armv7ve, and aarch64 >>> @@ -56,13 +60,14 @@ FILES:${PN} += "\ >>> " >>> INSANE_SKIP:${PN} += "dev-so" >>> +RDEPENDS:${PN} += "nnstreamer-tests" >>> + >> >> Why are we forcing the tests to be installed when nnstreamer is >> installed? In fact, I cannot find any recipe that even refers to >> nnstreamer. How is this even begin included in builds? In my mind, >> if you are wanting the tests for use during our testing, then >> nnstreamer-tests should be included in the ti-test package to ensure >> that the tests are present. >> >> >>> PACKAGES =+ "${PN}-tests" >>> FILES:${PN}-tests += "\ >>> ${libdir}/nnstreamer/customfilters/* \ >>> ${bindir}/unittest-nnstreamer/* \ >>> " >>> -INSANE_SKIP:${PN}-tests += "buildpaths" >>> FILES:${PN}-dev = "\ >>> ${includedir}/nnstreamer/* \ >> >> -- >> Ryan Eatmon reatmon@ti.com >> ----------------------------------------- >> Texas Instruments, Inc. - LCPD - MGTS >> >
On 3/17/2026 4:43 AM, Pratham Deshmukh wrote: > > On 16/03/26 9:12 pm, Ryan Eatmon wrote: >> >> >> On 3/16/2026 9:57 AM, Deshmukh, Pratham wrote: >>> The intent here was not to force the tests into all images. The >>> nnstreamer components (like other stacks) are pulled in through the >>> meta-tisdk:meta-ti-ml layer for a specific SDK images that require >>> them, so the base arago-default-image is not bloated. >>> >>> >>> https://github.com/TexasInstruments/meta-tisdk/blob/master/meta-ti-ml/recipes-core/images/tisdk-default-image.bbappend <https://github.com/TexasInstruments/meta-tisdk/blob/master/meta-ti-ml/recipes-core/images/tisdk-default-image.bbappend> >> >> Then you should just add nnstreamer-tests to the above and not as an >> RDEPENDS in the main recipe. >> >> > There are customers who would not use the meta-tisdk:meta-ti-ml layer > and would probably just rely on meta-arago to provide the latest version > of nnstreamer. They always have an option to add nnstreamer in > local.conf and build their image, so when they would do it without > meta-tisdk, they would never have nnstreamer-tests as a runtime > dependency in their filesystem. This means these customers would > encounter the same"unittest_filter_onnxruntime not found" issue we're > trying to solve. > > The upstream meta-neural-network layer [0] uses the same pattern we're > proposing, with RDEPENDS:${PN}-unittest = "nnstreamer" in their recipe. > This shows the nnstreamer community considers runtime dependencies > between core and test components to be standard practice. Actually they have the opposite pattern. The unittests package will pull in the main recipe, not the other way. And that makes sense. The tests might need the actual software to execute the tests, but the main software does not need the tests. > Also we are looking to support customers who would choose nnstreamer > from meta-arago after landing up from [1]. > > [0] > https://github.com/nnstreamer/meta-neural-network/blob/master/recipes-nnstreamer/nnstreamer/nnstreamer_2.4.2.bb#L79 > > [1] > https://layers.openembedded.org/layerindex/branch/master/recipes/?q=nnstreamer > >> >>> ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ >>> *From:* Eatmon, Ryan >>> *Sent:* Monday, March 16, 2026 6:40:23 PM >>> *To:* Deshmukh, Pratham; meta-arago@lists.yoctoproject.org >>> *Cc:* Davis, Andrew; Shilwant, Chirag; Dmytriyenko, Denys; Singh, Vishnu >>> *Subject:* Re: [meta-arago][master][PATCH v4 1/1] nnstreamer: Add >>> test package dependency and fix buildpaths QA issues >>> >>> >>> On 3/16/2026 4:26 AM, Pratham Deshmukh via lists.yoctoproject.org wrote: >>>> Add runtime dependency to automatically install >>>> nnstreamer-tests package when nnstreamer is installed, >>>> ensuring unittest_filter_onnxruntime is available for >>>> ONNX Runtime benchmarking. >>>> >>>> Include buildpaths compliance patch that replaces >>>> absolute build paths(meson.build_root()) with relative >>>> paths in generated unittest files, resolving QA errors >>>> "contains reference to TMPDIR [buildpaths]" in unittest_tizen_custom.cc >>>> and unittest_tizen_custom-set.cc. >>>> >>>> Fixes: 319271fe5fc8bc3016b1eb765784076af666b61b ("nnstreamer: >>>> upgrade 2.4.4 -> 2.6.0") >>>> >>>> Signed-off-by: Pratham Deshmukh <p-deshmukh@ti.com> >>>> --- >>>> Change Logs: >>>> v3 -> v4: >>>> - Use RDEPENDS approach instead of package consolidation to maintain >>>> clean separation between runtime and test components. >>>> v2 -> v3: >>>> - Fix runitme dependencies issue for unittest_filter_onnxruntime. >>>> - Upgrade recipe to make it QA compliant. >>>> v1 -> v2: >>>> - Added fix commit hash in the commit message. >>>> >>>> ...ute-build-paths-from-generated-test-.patch | 42 >>>> +++++++++++++++++++ >>>> .../nnstreamer/nnstreamer_2.6.0.bb | 9 +++- >>>> 2 files changed, 49 insertions(+), 2 deletions(-) >>>> create mode 100644 >>>> meta-arago-extras/recipes-multimedia/nnstreamer/nnstreamer/0001-fix-Remove-absolute-build-paths-from-generated-test-.patch >>>> >>>> diff --git >>>> a/meta-arago-extras/recipes-multimedia/nnstreamer/nnstreamer/0001-fix-Remove-absolute-build-paths-from-generated-test-.patch b/meta-arago-extras/recipes-multimedia/nnstreamer/nnstreamer/0001-fix-Remove-absolute-build-paths-from-generated-test-.patch >>>> new file mode 100644 >>>> index 00000000..345b3eb2 >>>> --- /dev/null >>>> +++ >>>> b/meta-arago-extras/recipes-multimedia/nnstreamer/nnstreamer/0001-fix-Remove-absolute-build-paths-from-generated-test-.patch >>>> @@ -0,0 +1,42 @@ >>>> +From a5f962b51431ac19c264b8b9baa78ff283a77efe Mon Sep 17 00:00:00 2001 >>>> +From: Pratham Deshmukh <p-deshmukh@ti.com> >>>> +Date: Tue, 10 Mar 2026 15:23:05 +0530 >>>> +Subject: [PATCH] fix: Remove absolute build paths from generated >>>> test files >>>> + >>>> +Replace meson.build_root() with relative paths in custom_filter_path >>>> +to prevent Yocto buildpaths QA errors. The generated unittest files >>>> +were embedding absolute build directory paths (e.g., /tmp/work/...) >>>> +as string literals, which Yocto's QA system correctly flags as a >>>> +build reproducibility issue. >>>> + >>>> +The runtime code already handles proper path resolution using >>>> +NNSTREAMER_SOURCE_ROOT_PATH environment variable or relative >>>> +fallbacks, so this change maintains full functionality >>>> +while eliminating embedded build paths. >>>> + >>>> +Fixes: QA Issue "contains reference to TMPDIR [buildpaths]" in >>>> +unittest_tizen_custom.cc and unittest_tizen_custom-set.cc >>>> + >>>> +Upstream-Status: Inappropriate [oe-specific] >>>> + >>>> +Signed-off-by: Pratham Deshmukh <p-deshmukh@ti.com> >>>> +--- >>>> + tests/nnstreamer_filter_extensions_common/meson.build | 2 +- >>>> + 1 file changed, 1 insertion(+), 1 deletion(-) >>>> + >>>> +diff --git a/tests/nnstreamer_filter_extensions_common/meson.build >>>> b/tests/nnstreamer_filter_extensions_common/meson.build >>>> +index ecd1878b..ba72ee20 100644 >>>> +--- a/tests/nnstreamer_filter_extensions_common/meson.build >>>> ++++ b/tests/nnstreamer_filter_extensions_common/meson.build >>>> +@@ -9,7 +9,7 @@ tizen_apptest_deps = [ >>>> + # Format for adding subplugin into extensions - >>>> + # [name, extension abbreviation, dependencies, model file >>>> name/folder path/file path, test name] >>>> + extensions = [] >>>> +-custom_filter_path = join_paths(meson.build_root(), 'tests', >>>> 'nnstreamer_example', >>>> ++custom_filter_path = join_paths('tests', 'nnstreamer_example', >>>> + 'libnnstreamer_customfilter_passthrough.' + so_ext) >>>> + extensions += [['custom', 'custom', nnstreamer_unittest_deps, >>>> custom_filter_path, 'custom']] >>>> + extensions += [['custom', 'custom', nnstreamer_unittest_deps, >>>> custom_filter_path, 'custom-set']] >>>> +-- >>>> +2.34.1 >>>> + >>>> diff --git >>>> a/meta-arago-extras/recipes-multimedia/nnstreamer/nnstreamer_2.6.0.bb b/meta-arago-extras/recipes-multimedia/nnstreamer/nnstreamer_2.6.0.bb >>>> index c62589ac..fbfb887c 100644 >>>> --- >>>> a/meta-arago-extras/recipes-multimedia/nnstreamer/nnstreamer_2.6.0.bb >>>> +++ >>>> b/meta-arago-extras/recipes-multimedia/nnstreamer/nnstreamer_2.6.0.bb >>>> @@ -3,7 +3,11 @@ DESCRIPTION = "NNStreamer is a set of Gstreamer >>>> plugins that allow Gstreamer dev >>>> LICENSE = "LGPL-2.1-only" >>>> LIC_FILES_CHKSUM = >>>> "file://LICENSE;md5=c25e5c1949624d71896127788f1ba590 >>>> <file://LICENSE;md5=c25e5c1949624d71896127788f1ba590>" >>>> -SRC_URI = >>>> "git://github.com/nnstreamer/nnstreamer.git;branch=main;protocol=https" >>>> +SRC_URI = " \ >>>> + >>>> git://github.com/nnstreamer/nnstreamer.git;branch=main;protocol=https \ >>>> + >>>> file://0001-fix-Remove-absolute-build-paths-from-generated-test-.patch <file://0001-fix-Remove-absolute-build-paths-from-generated-test-.patch> \ >>>> +" >>>> + >>>> SRCREV = "b970e9eff6bfb4e915463842422fe14bb2e53f84" >>>> # Only compatible with armv7a, armv7ve, and aarch64 >>>> @@ -56,13 +60,14 @@ FILES:${PN} += "\ >>>> " >>>> INSANE_SKIP:${PN} += "dev-so" >>>> +RDEPENDS:${PN} += "nnstreamer-tests" >>>> + >>> >>> Why are we forcing the tests to be installed when nnstreamer is >>> installed? In fact, I cannot find any recipe that even refers to >>> nnstreamer. How is this even begin included in builds? In my mind, >>> if you are wanting the tests for use during our testing, then >>> nnstreamer-tests should be included in the ti-test package to ensure >>> that the tests are present. >>> >>> >>>> PACKAGES =+ "${PN}-tests" >>>> FILES:${PN}-tests += "\ >>>> ${libdir}/nnstreamer/customfilters/* \ >>>> ${bindir}/unittest-nnstreamer/* \ >>>> " >>>> -INSANE_SKIP:${PN}-tests += "buildpaths" >>>> FILES:${PN}-dev = "\ >>>> ${includedir}/nnstreamer/* \ >>> >>> -- >>> Ryan Eatmon reatmon@ti.com >>> ----------------------------------------- >>> Texas Instruments, Inc. - LCPD - MGTS >>> >> -- Ryan Eatmon reatmon@ti.com ----------------------------------------- Texas Instruments, Inc. - LCPD - MGTS
diff --git a/meta-arago-extras/recipes-multimedia/nnstreamer/nnstreamer/0001-fix-Remove-absolute-build-paths-from-generated-test-.patch b/meta-arago-extras/recipes-multimedia/nnstreamer/nnstreamer/0001-fix-Remove-absolute-build-paths-from-generated-test-.patch new file mode 100644 index 00000000..345b3eb2 --- /dev/null +++ b/meta-arago-extras/recipes-multimedia/nnstreamer/nnstreamer/0001-fix-Remove-absolute-build-paths-from-generated-test-.patch @@ -0,0 +1,42 @@ +From a5f962b51431ac19c264b8b9baa78ff283a77efe Mon Sep 17 00:00:00 2001 +From: Pratham Deshmukh <p-deshmukh@ti.com> +Date: Tue, 10 Mar 2026 15:23:05 +0530 +Subject: [PATCH] fix: Remove absolute build paths from generated test files + +Replace meson.build_root() with relative paths in custom_filter_path +to prevent Yocto buildpaths QA errors. The generated unittest files +were embedding absolute build directory paths (e.g., /tmp/work/...) +as string literals, which Yocto's QA system correctly flags as a +build reproducibility issue. + +The runtime code already handles proper path resolution using +NNSTREAMER_SOURCE_ROOT_PATH environment variable or relative +fallbacks, so this change maintains full functionality +while eliminating embedded build paths. + +Fixes: QA Issue "contains reference to TMPDIR [buildpaths]" in +unittest_tizen_custom.cc and unittest_tizen_custom-set.cc + +Upstream-Status: Inappropriate [oe-specific] + +Signed-off-by: Pratham Deshmukh <p-deshmukh@ti.com> +--- + tests/nnstreamer_filter_extensions_common/meson.build | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tests/nnstreamer_filter_extensions_common/meson.build b/tests/nnstreamer_filter_extensions_common/meson.build +index ecd1878b..ba72ee20 100644 +--- a/tests/nnstreamer_filter_extensions_common/meson.build ++++ b/tests/nnstreamer_filter_extensions_common/meson.build +@@ -9,7 +9,7 @@ tizen_apptest_deps = [ + # Format for adding subplugin into extensions - + # [name, extension abbreviation, dependencies, model file name/folder path/file path, test name] + extensions = [] +-custom_filter_path = join_paths(meson.build_root(), 'tests', 'nnstreamer_example', ++custom_filter_path = join_paths('tests', 'nnstreamer_example', + 'libnnstreamer_customfilter_passthrough.' + so_ext) + extensions += [['custom', 'custom', nnstreamer_unittest_deps, custom_filter_path, 'custom']] + extensions += [['custom', 'custom', nnstreamer_unittest_deps, custom_filter_path, 'custom-set']] +-- +2.34.1 + diff --git a/meta-arago-extras/recipes-multimedia/nnstreamer/nnstreamer_2.6.0.bb b/meta-arago-extras/recipes-multimedia/nnstreamer/nnstreamer_2.6.0.bb index c62589ac..fbfb887c 100644 --- a/meta-arago-extras/recipes-multimedia/nnstreamer/nnstreamer_2.6.0.bb +++ b/meta-arago-extras/recipes-multimedia/nnstreamer/nnstreamer_2.6.0.bb @@ -3,7 +3,11 @@ DESCRIPTION = "NNStreamer is a set of Gstreamer plugins that allow Gstreamer dev LICENSE = "LGPL-2.1-only" LIC_FILES_CHKSUM = "file://LICENSE;md5=c25e5c1949624d71896127788f1ba590" -SRC_URI = "git://github.com/nnstreamer/nnstreamer.git;branch=main;protocol=https" +SRC_URI = " \ + git://github.com/nnstreamer/nnstreamer.git;branch=main;protocol=https \ + file://0001-fix-Remove-absolute-build-paths-from-generated-test-.patch \ +" + SRCREV = "b970e9eff6bfb4e915463842422fe14bb2e53f84" # Only compatible with armv7a, armv7ve, and aarch64 @@ -56,13 +60,14 @@ FILES:${PN} += "\ " INSANE_SKIP:${PN} += "dev-so" +RDEPENDS:${PN} += "nnstreamer-tests" + PACKAGES =+ "${PN}-tests" FILES:${PN}-tests += "\ ${libdir}/nnstreamer/customfilters/* \ ${bindir}/unittest-nnstreamer/* \ " -INSANE_SKIP:${PN}-tests += "buildpaths" FILES:${PN}-dev = "\ ${includedir}/nnstreamer/* \
Add runtime dependency to automatically install nnstreamer-tests package when nnstreamer is installed, ensuring unittest_filter_onnxruntime is available for ONNX Runtime benchmarking. Include buildpaths compliance patch that replaces absolute build paths(meson.build_root()) with relative paths in generated unittest files, resolving QA errors "contains reference to TMPDIR [buildpaths]" in unittest_tizen_custom.cc and unittest_tizen_custom-set.cc. Fixes: 319271fe5fc8bc3016b1eb765784076af666b61b ("nnstreamer: upgrade 2.4.4 -> 2.6.0") Signed-off-by: Pratham Deshmukh <p-deshmukh@ti.com> --- Change Logs: v3 -> v4: - Use RDEPENDS approach instead of package consolidation to maintain clean separation between runtime and test components. v2 -> v3: - Fix runitme dependencies issue for unittest_filter_onnxruntime. - Upgrade recipe to make it QA compliant. v1 -> v2: - Added fix commit hash in the commit message. ...ute-build-paths-from-generated-test-.patch | 42 +++++++++++++++++++ .../nnstreamer/nnstreamer_2.6.0.bb | 9 +++- 2 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 meta-arago-extras/recipes-multimedia/nnstreamer/nnstreamer/0001-fix-Remove-absolute-build-paths-from-generated-test-.patch