Openembedded Core Discussions
 help / color / mirror / Atom feed
* [PATCH V3] icu: set ac_cv_path_install to install under hosttools
@ 2025-04-22 13:07 changqing.li
  2025-04-23  4:57 ` [OE-core] " Mathieu Dubois-Briand
  2025-04-24 10:33 ` Richard Purdie
  0 siblings, 2 replies; 7+ messages in thread
From: changqing.li @ 2025-04-22 13:07 UTC (permalink / raw)
  To: openembedded-core

From: Changqing Li <changqing.li@windriver.com>

icu will check program install path during do_configure, eg:
checking for a BSD-compatible install... /path/to/install -c

And this path will be writen into pkgdata.inc:
INSTALL_CMD=$(INSTALL-L)

Decided by if install is installed into recipe-sysroot-native during
do_configure stage, the INSTALL_CMD could be
/build/tmp/work/corei7-64-wrs-linux/icu/76-1/recipe-sysroot-native/usr/bin/install
or /build/tmp/hosttools/install.

set ac_cv_path_install to install under hosttools to make a determined
result of INSTALL_CMD, avoid vary caused by the execute sequence of
another task which DEPENDS on coreutils-native and independent with
do_configure

Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
 meta/recipes-support/icu/icu_76-1.bb | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/meta/recipes-support/icu/icu_76-1.bb b/meta/recipes-support/icu/icu_76-1.bb
index f0890fc890..a33f48cf8e 100644
--- a/meta/recipes-support/icu/icu_76-1.bb
+++ b/meta/recipes-support/icu/icu_76-1.bb
@@ -20,9 +20,9 @@ inherit autotools pkgconfig github-releases
 # ICU needs the native build directory as an argument to its --with-cross-build option when
 # cross-compiling. Taken the situation that different builds may share a common sstate-cache
 # into consideration, the native build directory needs to be staged.
-EXTRA_OECONF = "--with-cross-build=${STAGING_ICU_DIR_NATIVE} --disable-icu-config"
-EXTRA_OECONF:class-native = "--disable-icu-config"
-EXTRA_OECONF:class-nativesdk = "--with-cross-build=${STAGING_ICU_DIR_NATIVE} --disable-icu-config"
+EXTRA_OECONF = "--with-cross-build=${STAGING_ICU_DIR_NATIVE} --disable-icu-config ac_cv_path_install='${HOSTTOOLS_DIR}/install -c'"
+EXTRA_OECONF:class-native = "--disable-icu-config ac_cv_path_install='${HOSTTOOLS_DIR}/install -c'"
+EXTRA_OECONF:class-nativesdk = "--with-cross-build=${STAGING_ICU_DIR_NATIVE} --disable-icu-config ac_cv_path_install='${HOSTTOOLS_DIR}/install -c'"
 
 EXTRA_OECONF:append:class-target = "${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'be', ' --with-data-packaging=archive', '', d)}"
 TARGET_CXXFLAGS:append = "${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'be', ' -DICU_DATA_DIR=\\""${datadir}/${BPN}/${@icu_install_folder(d)}\\""', '', d)}"
-- 
2.34.1



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [OE-core] [PATCH V3] icu: set ac_cv_path_install to install under hosttools
  2025-04-22 13:07 [PATCH V3] icu: set ac_cv_path_install to install under hosttools changqing.li
@ 2025-04-23  4:57 ` Mathieu Dubois-Briand
  2025-04-23 10:23   ` Changqing Li
  2025-04-24 10:33 ` Richard Purdie
  1 sibling, 1 reply; 7+ messages in thread
From: Mathieu Dubois-Briand @ 2025-04-23  4:57 UTC (permalink / raw)
  To: changqing.li, openembedded-core

On Tue Apr 22, 2025 at 3:07 PM CEST, Changqing Li via lists.openembedded.org wrote:
> From: Changqing Li <changqing.li@windriver.com>
>
> icu will check program install path during do_configure, eg:
> checking for a BSD-compatible install... /path/to/install -c
>
> And this path will be writen into pkgdata.inc:
> INSTALL_CMD=$(INSTALL-L)
>
> Decided by if install is installed into recipe-sysroot-native during
> do_configure stage, the INSTALL_CMD could be
> /build/tmp/work/corei7-64-wrs-linux/icu/76-1/recipe-sysroot-native/usr/bin/install
> or /build/tmp/hosttools/install.
>
> set ac_cv_path_install to install under hosttools to make a determined
> result of INSTALL_CMD, avoid vary caused by the execute sequence of
> another task which DEPENDS on coreutils-native and independent with
> do_configure
>
> Signed-off-by: Changqing Li <changqing.li@windriver.com>
> ---

Hi,

Thanks for your patch.

It looks like we have some issue with is, as can be seen on the
autobuilder:

ERROR: icu-76-1-r0 do_package_qa: QA Issue: File /usr/lib/icu/76.1/pkgdata.inc in package icu-dev contains reference to TMPDIR [buildpaths]
ERROR: icu-76-1-r0 do_package_qa: Fatal QA errors were found, failing task.

https://autobuilder.yoctoproject.org/valkyrie/#/builders/2/builds/1435/steps/12/logs/stdio

Can you have a look at this failure please?

-- 
Mathieu Dubois-Briand, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [OE-core] [PATCH V3] icu: set ac_cv_path_install to install under hosttools
  2025-04-23  4:57 ` [OE-core] " Mathieu Dubois-Briand
@ 2025-04-23 10:23   ` Changqing Li
  2025-04-24 12:07     ` Mathieu Dubois-Briand
  0 siblings, 1 reply; 7+ messages in thread
From: Changqing Li @ 2025-04-23 10:23 UTC (permalink / raw)
  To: Mathieu Dubois-Briand, openembedded-core

[-- Attachment #1: Type: text/plain, Size: 2127 bytes --]


On 4/23/25 12:57, Mathieu Dubois-Briand wrote:
> CAUTION: This email comes from a non Wind River email account!
> Do not click links or open attachments unless you recognize the sender and know the content is safe.
>
> On Tue Apr 22, 2025 at 3:07 PM CEST, Changqing Li via lists.openembedded.org wrote:
>> From: Changqing Li<changqing.li@windriver.com>
>>
>> icu will check program install path during do_configure, eg:
>> checking for a BSD-compatible install... /path/to/install -c
>>
>> And this path will be writen into pkgdata.inc:
>> INSTALL_CMD=$(INSTALL-L)
>>
>> Decided by if install is installed into recipe-sysroot-native during
>> do_configure stage, the INSTALL_CMD could be
>> /build/tmp/work/corei7-64-wrs-linux/icu/76-1/recipe-sysroot-native/usr/bin/install
>> or /build/tmp/hosttools/install.
>>
>> set ac_cv_path_install to install under hosttools to make a determined
>> result of INSTALL_CMD, avoid vary caused by the execute sequence of
>> another task which DEPENDS on coreutils-native and independent with
>> do_configure
>>
>> Signed-off-by: Changqing Li<changqing.li@windriver.com>
>> ---
> Hi,
>
> Thanks for your patch.
>
> It looks like we have some issue with is, as can be seen on the
> autobuilder:
>
> ERROR: icu-76-1-r0 do_package_qa: QA Issue: File /usr/lib/icu/76.1/pkgdata.inc in package icu-dev contains reference to TMPDIR [buildpaths]
> ERROR: icu-76-1-r0 do_package_qa: Fatal QA errors were found, failing task.
>
> https://autobuilder.yoctoproject.org/valkyrie/#/builders/2/builds/1435/steps/12/logs/stdio
>
> Can you have a look at this failure please?

Hi,

I cannot reproduce this locally,  in my local env,  buildpaths is 
removed by function remove_build_host_references.

Could you help to check the content of /usr/lib/icu/76.1/pkgdata.inc, 
what is this buildpaths reference?

Besides, I see that poky-contrib mathieu/master-next has the V2 patch, 
but I also cannot reproduce with V2 patch.

Thanks

Changqing

>
> --
> Mathieu Dubois-Briand, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com
>

[-- Attachment #2: Type: text/html, Size: 3320 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [OE-core] [PATCH V3] icu: set ac_cv_path_install to install under hosttools
  2025-04-22 13:07 [PATCH V3] icu: set ac_cv_path_install to install under hosttools changqing.li
  2025-04-23  4:57 ` [OE-core] " Mathieu Dubois-Briand
@ 2025-04-24 10:33 ` Richard Purdie
  2025-04-25  1:25   ` Changqing Li
  1 sibling, 1 reply; 7+ messages in thread
From: Richard Purdie @ 2025-04-24 10:33 UTC (permalink / raw)
  To: changqing.li, openembedded-core

On Tue, 2025-04-22 at 21:07 +0800, Changqing Li via lists.openembedded.org wrote:
> From: Changqing Li <changqing.li@windriver.com>
> 
> icu will check program install path during do_configure, eg:
> checking for a BSD-compatible install... /path/to/install -c
> 
> And this path will be writen into pkgdata.inc:
> INSTALL_CMD=$(INSTALL-L)
> 
> Decided by if install is installed into recipe-sysroot-native during
> do_configure stage, the INSTALL_CMD could be
> /build/tmp/work/corei7-64-wrs-linux/icu/76-1/recipe-sysroot-native/usr/bin/install
> or /build/tmp/hosttools/install.
> 
> set ac_cv_path_install to install under hosttools to make a determined
> result of INSTALL_CMD, avoid vary caused by the execute sequence of
> another task which DEPENDS on coreutils-native and independent with
> do_configure
> 
> Signed-off-by: Changqing Li <changqing.li@windriver.com>
> ---
>  meta/recipes-support/icu/icu_76-1.bb | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/meta/recipes-support/icu/icu_76-1.bb b/meta/recipes-support/icu/icu_76-1.bb
> index f0890fc890..a33f48cf8e 100644
> --- a/meta/recipes-support/icu/icu_76-1.bb
> +++ b/meta/recipes-support/icu/icu_76-1.bb
> @@ -20,9 +20,9 @@ inherit autotools pkgconfig github-releases
>  # ICU needs the native build directory as an argument to its --with-cross-build option when
>  # cross-compiling. Taken the situation that different builds may share a common sstate-cache
>  # into consideration, the native build directory needs to be staged.
> -EXTRA_OECONF = "--with-cross-build=${STAGING_ICU_DIR_NATIVE} --disable-icu-config"
> -EXTRA_OECONF:class-native = "--disable-icu-config"
> -EXTRA_OECONF:class-nativesdk = "--with-cross-build=${STAGING_ICU_DIR_NATIVE} --disable-icu-config"
> +EXTRA_OECONF = "--with-cross-build=${STAGING_ICU_DIR_NATIVE} --disable-icu-config ac_cv_path_install='${HOSTTOOLS_DIR}/install -c'"
> +EXTRA_OECONF:class-native = "--disable-icu-config ac_cv_path_install='${HOSTTOOLS_DIR}/install -c'"
> +EXTRA_OECONF:class-nativesdk = "--with-cross-build=${STAGING_ICU_DIR_NATIVE} --disable-icu-config ac_cv_path_install='${HOSTTOOLS_DIR}/install -c'"
>  
>  EXTRA_OECONF:append:class-target = "${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'be', ' --with-data-packaging=archive', '', d)}"
>  TARGET_CXXFLAGS:append = "${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'be', ' -DICU_DATA_DIR=\\""${datadir}/${BPN}/${@icu_install_folder(d)}\\""', '', d)}"

Does this work if you just use:

ac_cv_path_install='install -c'

?

Cheers,

Richard


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [OE-core] [PATCH V3] icu: set ac_cv_path_install to install under hosttools
  2025-04-23 10:23   ` Changqing Li
@ 2025-04-24 12:07     ` Mathieu Dubois-Briand
  0 siblings, 0 replies; 7+ messages in thread
From: Mathieu Dubois-Briand @ 2025-04-24 12:07 UTC (permalink / raw)
  To: Changqing Li, openembedded-core

On Wed Apr 23, 2025 at 12:23 PM CEST, Changqing Li wrote:
>
> Hi,
>
> I cannot reproduce this locally,  in my local env,  buildpaths is 
> removed by function remove_build_host_references.
>

It can be reproduced using
https://web.git.yoctoproject.org/poky-ci-archive/tag/?h=autobuilder.yoctoproject.org/valkyrie/a-full-1436,
using default config and trying to build icu.

But the issue is actually on my side: as the patch name changed, I did
not make the link with the v2, so this branch contains both v2 and v3.
If I drop v2, it works correctly with the simple reproduce process
described above.

I will try to integrate the v3 correctly in one of my next builds, to
confirm everything is fine.

-- 
Mathieu Dubois-Briand, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [OE-core] [PATCH V3] icu: set ac_cv_path_install to install under hosttools
  2025-04-24 10:33 ` Richard Purdie
@ 2025-04-25  1:25   ` Changqing Li
  2025-04-25  6:42     ` Richard Purdie
  0 siblings, 1 reply; 7+ messages in thread
From: Changqing Li @ 2025-04-25  1:25 UTC (permalink / raw)
  To: Richard Purdie, openembedded-core

[-- Attachment #1: Type: text/plain, Size: 3497 bytes --]


On 4/24/25 18:33, Richard Purdie wrote:
> CAUTION: This email comes from a non Wind River email account!
> Do not click links or open attachments unless you recognize the sender and know the content is safe.
>
> On Tue, 2025-04-22 at 21:07 +0800, Changqing Li via lists.openembedded.org wrote:
>> From: Changqing Li<changqing.li@windriver.com>
>>
>> icu will check program install path during do_configure, eg:
>> checking for a BSD-compatible install... /path/to/install -c
>>
>> And this path will be writen into pkgdata.inc:
>> INSTALL_CMD=$(INSTALL-L)
>>
>> Decided by if install is installed into recipe-sysroot-native during
>> do_configure stage, the INSTALL_CMD could be
>> /build/tmp/work/corei7-64-wrs-linux/icu/76-1/recipe-sysroot-native/usr/bin/install
>> or /build/tmp/hosttools/install.
>>
>> set ac_cv_path_install to install under hosttools to make a determined
>> result of INSTALL_CMD, avoid vary caused by the execute sequence of
>> another task which DEPENDS on coreutils-native and independent with
>> do_configure
>>
>> Signed-off-by: Changqing Li<changqing.li@windriver.com>
>> ---
>>   meta/recipes-support/icu/icu_76-1.bb | 6 +++---
>>   1 file changed, 3 insertions(+), 3 deletions(-)
>>
>> diff --git a/meta/recipes-support/icu/icu_76-1.bb b/meta/recipes-support/icu/icu_76-1.bb
>> index f0890fc890..a33f48cf8e 100644
>> --- a/meta/recipes-support/icu/icu_76-1.bb
>> +++ b/meta/recipes-support/icu/icu_76-1.bb
>> @@ -20,9 +20,9 @@ inherit autotools pkgconfig github-releases
>>   # ICU needs the native build directory as an argument to its --with-cross-build option when
>>   # cross-compiling. Taken the situation that different builds may share a common sstate-cache
>>   # into consideration, the native build directory needs to be staged.
>> -EXTRA_OECONF = "--with-cross-build=${STAGING_ICU_DIR_NATIVE} --disable-icu-config"
>> -EXTRA_OECONF:class-native = "--disable-icu-config"
>> -EXTRA_OECONF:class-nativesdk = "--with-cross-build=${STAGING_ICU_DIR_NATIVE} --disable-icu-config"
>> +EXTRA_OECONF = "--with-cross-build=${STAGING_ICU_DIR_NATIVE} --disable-icu-config ac_cv_path_install='${HOSTTOOLS_DIR}/install -c'"
>> +EXTRA_OECONF:class-native = "--disable-icu-config ac_cv_path_install='${HOSTTOOLS_DIR}/install -c'"
>> +EXTRA_OECONF:class-nativesdk = "--with-cross-build=${STAGING_ICU_DIR_NATIVE} --disable-icu-config ac_cv_path_install='${HOSTTOOLS_DIR}/install -c'"
>>
>>   EXTRA_OECONF:append:class-target ="${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'be', ' 
>> --with-data-packaging=archive', '', d)}"
>>   TARGET_CXXFLAGS:append ="${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'be', ' 
>> -DICU_DATA_DIR=\\""${datadir}/${BPN}/${@icu_install_folder(d)}\\""', '', d)}"
> Does this work if you just use:
>
> ac_cv_path_install='install -c'
>
> ?

It works well,  bitbake icu can build successfully.  And it can also fix 
the original do_package_qa issue:

in function remove_build_host_references, only hosttool path is 
removed('s:${HOSTTOOLS_DIR}/::g'),

so when install under STAGING_BINDIR_NATIVE is used,  qa error happened.


But if use ac_cv_path_install='install -c', the actually used install 
maybe under STAGING_BINDIR_NATIVE or HOSTTOOLS_DIR,

decide if install is under STAGING_BINDIR_NATIVE when do_install is runned.


So I use '${HOSTTOOLS_DIR}/install -c' to make install under hosttools 
is always used.

Regards

Changqing

>
> Cheers,
>
> Richard

[-- Attachment #2: Type: text/html, Size: 4989 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [OE-core] [PATCH V3] icu: set ac_cv_path_install to install under hosttools
  2025-04-25  1:25   ` Changqing Li
@ 2025-04-25  6:42     ` Richard Purdie
  0 siblings, 0 replies; 7+ messages in thread
From: Richard Purdie @ 2025-04-25  6:42 UTC (permalink / raw)
  To: Changqing Li, openembedded-core

On Fri, 2025-04-25 at 09:25 +0800, Changqing Li wrote:
>  
> On 4/24/25 18:33, Richard Purdie wrote:
>  
> > Does this work if you just use:
> > 
> > ac_cv_path_install='install -c'
> > 
> > ?
> 
> It works well,  bitbake icu can build successfully.  And it can also fix the original do_package_qa issue:
>  
> 
> 
> 
> in function remove_build_host_references, only hosttool path is removed('s:${HOSTTOOLS_DIR}/::g'),
>  
> 
> 
> 
> so when install under STAGING_BINDIR_NATIVE is used,  qa error happened.
>   
> But if use ac_cv_path_install='install -c',  the actually used install maybe under STAGING_BINDIR_NATIVE or HOSTTOOLS_DIR,
>  decide if install is under STAGING_BINDIR_NATIVE when do_install is runned.  
>   
> So I use '${HOSTTOOLS_DIR}/install -c' to make install under hosttools is always used.
>  

We use the tool from PATH everywhere else in the project so it should
be fine to do that here as well. I would be concerned if that tool
behaved differently between the two and we'd have bigger problems if it
did. This therefore should be fine.

Cheers,

Richard




^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2025-04-25  6:42 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-22 13:07 [PATCH V3] icu: set ac_cv_path_install to install under hosttools changqing.li
2025-04-23  4:57 ` [OE-core] " Mathieu Dubois-Briand
2025-04-23 10:23   ` Changqing Li
2025-04-24 12:07     ` Mathieu Dubois-Briand
2025-04-24 10:33 ` Richard Purdie
2025-04-25  1:25   ` Changqing Li
2025-04-25  6:42     ` Richard Purdie

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox