Re: [OE-core] [PATCH] nativesdk-libtool: sanitize the script, remove buildpaths

Richard Purdie
2024-07-17T06:29:52Z

On Tue, 2024-07-16 at 18:09 -0400, Denys Dmytriyenko via lists.openembedded.org wrote:
> From: Denys Dmytriyenko <denys@konsulko.com>
>
> Copy the same sed command to sanitize libtool script from target recipe
> to nativesdk one. Otherwise fails with buildpaths QA error:
>
> ERROR: nativesdk-libtool-2.5.0-r0 do_package_qa: QA Issue: File /usr/local/oe-sdk-hardcoded-buildpath/sysroots/x86_64-pokysdk-linux/usr/bin/libtool in package nativesdk-libtool contains reference to TMPDIR [buildpaths]
>
> Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
> ---
>  .../libtool/nativesdk-libtool_2.5.0.bb               | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
>
> diff --git a/meta/recipes-devtools/libtool/nativesdk-libtool_2.5.0.bb b/meta/recipes-devtools/libtool/nativesdk-libtool_2.5.0.bb
> index ddb60e717c..69de7a8e40 100644
> --- a/meta/recipes-devtools/libtool/nativesdk-libtool_2.5.0.bb
> +++ b/meta/recipes-devtools/libtool/nativesdk-libtool_2.5.0.bb
> @@ -13,6 +13,18 @@ do_install () {
>   autotools_do_install
>   install -d ${D}${bindir}/
>   install -m 0755 libtool ${D}${bindir}/
> +
> + sed -e 's@--sysroot=${STAGING_DIR_HOST}@@g' \
> +     -e "s@${DEBUG_PREFIX_MAP}@@g" \
> +     -e 's@${STAGING_DIR_HOST}@@g' \
> +     -e 's@${STAGING_DIR_NATIVE}@@g' \
> +     -e 's@^\(sys_lib_search_path_spec="\).*@\1${libdir} ${base_libdir}"@' \
> +     -e 's@^\(compiler_lib_search_dirs="\).*@\1${libdir} ${base_libdir}"@' \
> +     -e 's@^\(compiler_lib_search_path="\).*@\1${libdir} ${base_libdir}"@' \
> +     -e 's@^\(predep_objects="\).*@\1"@' \
> +     -e 's@^\(postdep_objects="\).*@\1"@' \
> +     -e "s@${HOSTTOOLS_DIR}/@@g" \
> +     -i ${D}${bindir}/libtool
>  }
>
>  SYSROOT_PREPROCESS_FUNCS += "libtoolnativesdk_sysroot_preprocess"
>

Rather than duplicate code, particularly long commands like this, it
should be moved to a function and called from both locations.

Cheers,

Richard