All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 1/1] package/icu: disable icu-config for host package
@ 2023-05-16 17:34 Bernd Kuhls
  2023-05-16 19:03 ` Yann E. MORIN
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Bernd Kuhls @ 2023-05-16 17:34 UTC (permalink / raw)
  To: buildroot

Fixes:
http://autobuild.buildroot.net/results/6a2/6a2a4ed90c1a829e7b9442aaaaa1cd6e5efd9aab/

python-pyicu picks up ldflags from host version of icu-config
---
Building PyICU 2.10.2 for ICU 70.1 (max ICU major version supported: 72)

(running 'icu-config --cxxflags --cppflags')
Adding CFLAGS="-std=c++11 -I/home/buildroot/autobuild/instance-1/output-1/host/include" from /home/buildroot/autobuild/instance-1/output-1/host/bin/icu-config
(running 'icu-config --ldflags')
Adding LFLAGS="-L/home/buildroot/autobuild/instance-1/output-1/host/lib -licui18n -licuuc -licudata" from /home/buildroot/autobuild/instance-1/output-1/host/bin/icu-config
running build
---
leading to linking errors:
/home/buildroot/autobuild/instance-1/output-1/host/lib/libicui18n.so: file not recognized: file format not recognized

The icu-config script was deprecated upstream:
https://unicode-org.github.io/icu/userguide/icu/howtouseicu.html#notes-on-icu-config

To fix the build error we do not install the host version anymore:
---
Building PyICU 2.10.2 for ICU 70.1 (max ICU major version supported: 72)

(running 'icu-config --cxxflags --cppflags')
Could not configure CFLAGS with icu-config
(running 'pkg-config --cflags icu-i18n')
(running 'icu-config --ldflags')
Could not configure LFLAGS with icu-config
(running 'pkg-config --libs icu-i18n')
Adding LFLAGS="-licui18n -L/home/bernd/buildroot/output/per-package/python-pyicu/host/bin/../sh4-buildroot-linux-gnu/sysroot/usr/lib -licuuc -licudata" from /home/bernd/buildroot/output/per-package/python-pyicu/host/bin/pkg-config
running build
---

Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
---
 package/icu/icu.mk | 1 +
 1 file changed, 1 insertion(+)

diff --git a/package/icu/icu.mk b/package/icu/icu.mk
index 8107796ae9..1f1dfea5bf 100644
--- a/package/icu/icu.mk
+++ b/package/icu/icu.mk
@@ -48,6 +48,7 @@ ICU_CONF_ENV += ac_cv_func_strtod_l=no
 endif
 
 HOST_ICU_CONF_OPTS = \
+	--disable-icu-config \
 	--disable-samples \
 	--disable-tests \
 	--disable-extras \
-- 
2.39.2

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* Re: [Buildroot] [PATCH 1/1] package/icu: disable icu-config for host package
  2023-05-16 17:34 [Buildroot] [PATCH 1/1] package/icu: disable icu-config for host package Bernd Kuhls
@ 2023-05-16 19:03 ` Yann E. MORIN
       [not found] ` <20230516190356.GP2582048__25958.2416781754$1684263867$gmane$org@scaer>
  2025-10-25 14:35 ` [Buildroot] [PATCH v1] package/icu: disable icu config Thomas Devoogdt
  2 siblings, 0 replies; 7+ messages in thread
From: Yann E. MORIN @ 2023-05-16 19:03 UTC (permalink / raw)
  To: Bernd Kuhls; +Cc: buildroot

Bernd, All,

On 2023-05-16 19:34 +0200, Bernd Kuhls spake thusly:
> Fixes:
> http://autobuild.buildroot.net/results/6a2/6a2a4ed90c1a829e7b9442aaaaa1cd6e5efd9aab/
> 
> python-pyicu picks up ldflags from host version of icu-config
> ---
> Building PyICU 2.10.2 for ICU 70.1 (max ICU major version supported: 72)
> 
> (running 'icu-config --cxxflags --cppflags')
> Adding CFLAGS="-std=c++11 -I/home/buildroot/autobuild/instance-1/output-1/host/include" from /home/buildroot/autobuild/instance-1/output-1/host/bin/icu-config
> (running 'icu-config --ldflags')
> Adding LFLAGS="-L/home/buildroot/autobuild/instance-1/output-1/host/lib -licui18n -licuuc -licudata" from /home/buildroot/autobuild/instance-1/output-1/host/bin/icu-config
> running build
> ---
> leading to linking errors:
> /home/buildroot/autobuild/instance-1/output-1/host/lib/libicui18n.so: file not recognized: file format not recognized
> 
> The icu-config script was deprecated upstream:
> https://unicode-org.github.io/icu/userguide/icu/howtouseicu.html#notes-on-icu-config
> 
> To fix the build error we do not install the host version anymore:
> ---
> Building PyICU 2.10.2 for ICU 70.1 (max ICU major version supported: 72)
> 
> (running 'icu-config --cxxflags --cppflags')
> Could not configure CFLAGS with icu-config
> (running 'pkg-config --cflags icu-i18n')
> (running 'icu-config --ldflags')
> Could not configure LFLAGS with icu-config
> (running 'pkg-config --libs icu-i18n')
> Adding LFLAGS="-licui18n -L/home/bernd/buildroot/output/per-package/python-pyicu/host/bin/../sh4-buildroot-linux-gnu/sysroot/usr/lib -licuuc -licudata" from /home/bernd/buildroot/output/per-package/python-pyicu/host/bin/pkg-config
> running build
> ---

But that would not fix the build of the host system itself has
icu-config in the PATH (for whatever reason).

I think the proper solution would be to make pyicu fully transition to
using pkg-config, e.g. with a patch like:

    diff --git a/setup.py b/setup.py
    index 176c9ab..961a7e9 100644
    --- a/setup.py
    +++ b/setup.py
    @@ -68,7 +68,7 @@ elif platform.startswith('freebsd'):
     
     CONFIGURE_WITH_ICU_CONFIG = {
         'darwin': False,
    -    'linux': True,
    +    'linux': False,
         'freebsd': False, # not tested
         'win32': False,   # no icu-config
         'sunos5': False,  # not tested

(which is just a cheap way to completely render the icu-config case
totally dead-code, as linux is the only platform where icu-config is
still used in pyicu).

Regards,
Yann E. MORIN.

> Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
> ---
>  package/icu/icu.mk | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/package/icu/icu.mk b/package/icu/icu.mk
> index 8107796ae9..1f1dfea5bf 100644
> --- a/package/icu/icu.mk
> +++ b/package/icu/icu.mk
> @@ -48,6 +48,7 @@ ICU_CONF_ENV += ac_cv_func_strtod_l=no
>  endif
>  
>  HOST_ICU_CONF_OPTS = \
> +	--disable-icu-config \
>  	--disable-samples \
>  	--disable-tests \
>  	--disable-extras \
> -- 
> 2.39.2
> 
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* Re: [Buildroot] [PATCH 1/1] package/icu: disable icu-config for host package
       [not found] ` <20230516190356.GP2582048__25958.2416781754$1684263867$gmane$org@scaer>
@ 2023-05-16 19:08   ` Bernd Kuhls
  2023-05-16 20:40     ` Yann E. MORIN
  0 siblings, 1 reply; 7+ messages in thread
From: Bernd Kuhls @ 2023-05-16 19:08 UTC (permalink / raw)
  To: buildroot

Am Tue, 16 May 2023 21:03:56 +0200 schrieb Yann E. MORIN:

>     diff --git a/setup.py b/setup.py
>     index 176c9ab..961a7e9 100644
>     --- a/setup.py
>     +++ b/setup.py
>     @@ -68,7 +68,7 @@ elif platform.startswith('freebsd'):
>      
>      CONFIGURE_WITH_ICU_CONFIG = {
>          'darwin': False,
>     -    'linux': True,
>     +    'linux': False,

Hi Yann,

did you run-time test your proposal?
During my tests a similar fix was not enough due to https://
gitlab.pyicu.org/main/pyicu/-/blob/main/setup.py#L93

Regards, Bernd

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* Re: [Buildroot] [PATCH 1/1] package/icu: disable icu-config for host package
  2023-05-16 19:08   ` Bernd Kuhls
@ 2023-05-16 20:40     ` Yann E. MORIN
  0 siblings, 0 replies; 7+ messages in thread
From: Yann E. MORIN @ 2023-05-16 20:40 UTC (permalink / raw)
  To: Bernd Kuhls; +Cc: buildroot

Bernd, All,

On 2023-05-16 21:08 +0200, Bernd Kuhls spake thusly:
> Am Tue, 16 May 2023 21:03:56 +0200 schrieb Yann E. MORIN:
> >     diff --git a/setup.py b/setup.py
> >     index 176c9ab..961a7e9 100644
> >     --- a/setup.py
> >     +++ b/setup.py
> >     @@ -68,7 +68,7 @@ elif platform.startswith('freebsd'):
> >      
> >      CONFIGURE_WITH_ICU_CONFIG = {
> >          'darwin': False,
> >     -    'linux': True,
> >     +    'linux': False,
> did you run-time test your proposal?

Nope, it was just a quick analysis to drive you in another direction
which I believe is better.

> During my tests a similar fix was not enough due to https://
> gitlab.pyicu.org/main/pyicu/-/blob/main/setup.py#L93

Indeed. Then just patch it out too...

If we don't do that, then an icu-config on the host *is* going to cause
an issue, even if that's not our icu-config. So pyicu must be fixed.

And since pyicu already has support for using pkg-config, then let's
just ensure it uses that instead of icu-config.

And of-sourse, that means pyicu needs to gain a dependency on
host-pkgconf...

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* [Buildroot] [PATCH v1] package/icu: disable icu config
  2023-05-16 17:34 [Buildroot] [PATCH 1/1] package/icu: disable icu-config for host package Bernd Kuhls
  2023-05-16 19:03 ` Yann E. MORIN
       [not found] ` <20230516190356.GP2582048__25958.2416781754$1684263867$gmane$org@scaer>
@ 2025-10-25 14:35 ` Thomas Devoogdt
  2026-01-01 16:53   ` Thomas Petazzoni via buildroot
  2 siblings, 1 reply; 7+ messages in thread
From: Thomas Devoogdt @ 2025-10-25 14:35 UTC (permalink / raw)
  To: bernd.kuhls; +Cc: buildroot, Thomas Devoogdt

From: Thomas Devoogdt <thomas.devoogdt@barco.com>

Seen while using BR2_PER_PACKAGE_DIRECTORIES, not sure on how to reproduce.

Fixes:

/usr/bin/install: cannot stat 'config/icu-config.1': No such file or directory
2025-10-25T00:09:10 make[2]: *** [Makefile:359: install-manx] Error 1
2025-10-25T00:09:10 make[2]: Leaving directory '/home/thomas/buildroot/build/output/build/host-icu-73-2/source'
2025-10-25T00:09:10 make[1]: *** [Makefile:153: install-recursive] Error 2
2025-10-25T00:09:10 make[1]: *** Waiting for unfinished jobs....
2025-10-25T00:09:10 make[1]: Leaving directory '/home/thomas/buildroot/build/output/build/host-icu-73-2/source'
2025-10-25T00:09:10 make: *** [package/pkg-generic.mk:283: /home/thomas/buildroot/build/output/build/host-icu-73-2/.stamp_host_installed] Error 2
2025-10-25T00:09:10 make: *** Waiting for unfinished jobs....

There was a proposal in the past to do exactly the same:

https://lore.kernel.org/buildroot/20230516173411.823978-1-bernd.kuhls@t-online.de/

The icu-config script was deprecated upstream:

https://unicode-org.github.io/icu/userguide/icu/howtouseicu.html#notes-on-icu-config

Signed-off-by: Thomas Devoogdt <thomas.devoogdt@barco.com>
---
 package/icu/icu.mk | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/package/icu/icu.mk b/package/icu/icu.mk
index 4789edf0e2..4cd72cf5c0 100644
--- a/package/icu/icu.mk
+++ b/package/icu/icu.mk
@@ -49,7 +49,8 @@ HOST_ICU_CONF_OPTS = \
 	--disable-tests \
 	--disable-extras \
 	--disable-icuio \
-	--disable-layout
+	--disable-layout \
+	--disable-icu-config
 ICU_SUBDIR = source
 HOST_ICU_SUBDIR = source
 
-- 
2.43.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* Re: [Buildroot] [PATCH v1] package/icu: disable icu config
  2025-10-25 14:35 ` [Buildroot] [PATCH v1] package/icu: disable icu config Thomas Devoogdt
@ 2026-01-01 16:53   ` Thomas Petazzoni via buildroot
  2026-01-03 11:07     ` [Buildroot] [PATCH v2] package/icu: disable icu-config Thomas Devoogdt
  0 siblings, 1 reply; 7+ messages in thread
From: Thomas Petazzoni via buildroot @ 2026-01-01 16:53 UTC (permalink / raw)
  To: Thomas Devoogdt; +Cc: bernd.kuhls, buildroot, Thomas Devoogdt

Hello Thomas,

On Sat, 25 Oct 2025 16:35:57 +0200
Thomas Devoogdt <thomas@devoogdt.com> wrote:

> From: Thomas Devoogdt <thomas.devoogdt@barco.com>
> 
> Seen while using BR2_PER_PACKAGE_DIRECTORIES, not sure on how to reproduce.
> 
> Fixes:
> 
> /usr/bin/install: cannot stat 'config/icu-config.1': No such file or directory
> 2025-10-25T00:09:10 make[2]: *** [Makefile:359: install-manx] Error 1
> 2025-10-25T00:09:10 make[2]: Leaving directory '/home/thomas/buildroot/build/output/build/host-icu-73-2/source'
> 2025-10-25T00:09:10 make[1]: *** [Makefile:153: install-recursive] Error 2
> 2025-10-25T00:09:10 make[1]: *** Waiting for unfinished jobs....
> 2025-10-25T00:09:10 make[1]: Leaving directory '/home/thomas/buildroot/build/output/build/host-icu-73-2/source'
> 2025-10-25T00:09:10 make: *** [package/pkg-generic.mk:283: /home/thomas/buildroot/build/output/build/host-icu-73-2/.stamp_host_installed] Error 2
> 2025-10-25T00:09:10 make: *** Waiting for unfinished jobs....

Thanks for the patch, but the explanation is a bit weak I'm afraid. Is
this a parallel build issue within the icu build system?

The thing is that even if icu-config might be deprecated by the ICU
developers, how many packages using ICU still use icu-config?

Such a change would need at least a bit of analysis of how many
Buildroot packages rely on icu, and a test build of those packages
after removing icu-config. We don't need a 100% coverage testing on
this, but at least some sanity checking with a majority of packages
using icu, to see how bad the breakage might be (or not).

Thanks!

Thomas
-- 
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* [Buildroot] [PATCH v2] package/icu: disable icu-config
  2026-01-01 16:53   ` Thomas Petazzoni via buildroot
@ 2026-01-03 11:07     ` Thomas Devoogdt
  0 siblings, 0 replies; 7+ messages in thread
From: Thomas Devoogdt @ 2026-01-03 11:07 UTC (permalink / raw)
  To: buildroot; +Cc: bernd.kuhls, thomas.devoogdt, thomas.petazzoni, thomas

From: Thomas Devoogdt <thomas.devoogdt@barco.com>

Seen while using BR2_PER_PACKAGE_DIRECTORIES (parallel package building).
The exact reproduction steps are unclear.

Fixes:

/usr/bin/install: cannot stat 'config/icu-config.1': No such file or directory
2025-10-25T00:09:10 make[2]: *** [Makefile:359: install-manx] Error 1
2025-10-25T00:09:10 make[2]: Leaving directory '/home/thomas/buildroot/build/output/build/host-icu-73-2/source'
2025-10-25T00:09:10 make[1]: *** [Makefile:153: install-recursive] Error 2
2025-10-25T00:09:10 make[1]: *** Waiting for unfinished jobs....
2025-10-25T00:09:10 make[1]: Leaving directory '/home/thomas/buildroot/build/output/build/host-icu-73-2/source'
2025-10-25T00:09:10 make: *** [package/pkg-generic.mk:283: /home/thomas/buildroot/build/output/build/host-icu-73-2/.stamp_host_installed] Error 2
2025-10-25T00:09:10 make: *** Waiting for unfinished jobs....

A similar proposal was made in the past for a different reason:
https://lore.kernel.org/buildroot/20230516173411.823978-1-bernd.kuhls@t-online.de/

The icu-config script is deprecated upstream:
https://unicode-org.github.io/icu/userguide/icu/howtouseicu.html#notes-on-icu-config

Therefore, it should be disabled entirely.

Testing coverage (all packages directly selecting BR2_PACKAGE_ICU):

$ cat icu.config
BR2_PACKAGE_MESA3D=y
BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_SOFTPIPE=y
BR2_PACKAGE_MESA3D_OPENGL_EGL=y
BR2_PACKAGE_MESA3D_OPENGL_GLX=y
BR2_PACKAGE_MESA3D_OPENGL_ES=y
BR2_PACKAGE_LIBGTK3=y
BR2_PACKAGE_LIBGTK3_X11=y
BR2_PACKAGE_XORG7=y
BR2_PACKAGE_CPPCMS=y
BR2_PACKAGE_GERBERA=y
BR2_PACKAGE_PHP=y
BR2_PACKAGE_PYTHON_PYICU=y
BR2_PACKAGE_QT5=y
BR2_PACKAGE_QT5BASE=y
BR2_PACKAGE_QT5WEBKIT=y
BR2_PACKAGE_WEBKITGTK=y
BR2_PACKAGE_WPEWEBKIT=y
BR2_PACKAGE_PYTHON3=y

$ ./utils/test-pkg -c icu.config -p icu
                    bootlin-armv5-uclibc [1/6]: OK
                     bootlin-armv7-glibc [2/6]: OK
                   bootlin-armv7m-uclibc [3/6]: SKIPPED
                     bootlin-x86-64-musl [4/6]: OK
                      br-arm-full-static [5/6]: SKIPPED
                             arm-aarch64 [6/6]: OK

Signed-off-by: Thomas Devoogdt <thomas.devoogdt@barco.com>
---
v2: Tested with minimal config covering all packages that select BR2_PACKAGE_ICU.
    Updated commit message with test results.
---
 package/icu/icu.mk | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/package/icu/icu.mk b/package/icu/icu.mk
index a0b43883558..6ac20857003 100644
--- a/package/icu/icu.mk
+++ b/package/icu/icu.mk
@@ -49,7 +49,8 @@ HOST_ICU_CONF_OPTS = \
 	--disable-tests \
 	--disable-extras \
 	--disable-icuio \
-	--disable-layout
+	--disable-layout \
+	--disable-icu-config
 ICU_SUBDIR = source
 HOST_ICU_SUBDIR = source
 
-- 
2.43.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

end of thread, other threads:[~2026-01-03 11:07 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-05-16 17:34 [Buildroot] [PATCH 1/1] package/icu: disable icu-config for host package Bernd Kuhls
2023-05-16 19:03 ` Yann E. MORIN
     [not found] ` <20230516190356.GP2582048__25958.2416781754$1684263867$gmane$org@scaer>
2023-05-16 19:08   ` Bernd Kuhls
2023-05-16 20:40     ` Yann E. MORIN
2025-10-25 14:35 ` [Buildroot] [PATCH v1] package/icu: disable icu config Thomas Devoogdt
2026-01-01 16:53   ` Thomas Petazzoni via buildroot
2026-01-03 11:07     ` [Buildroot] [PATCH v2] package/icu: disable icu-config Thomas Devoogdt

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.