package/gettext: host variant needs host-libxml2
PATCH 1/1 package/gettext: host variant needs host-libxml2
From: Ignacy Gaw?dzki <[email protected]>
Of host-gettext, we only build the tools. however some of those tools have a --color option, which needs libxml2.
If the libxml2 development files are missing on the host, a bundled subset of libxml2 is used, and all seems OK. But if they ar epresent, then the host libxml2 is used. On some distros, lbxml2 is linked with liblzma. And if we happend to _then_ build our host-liblzma, we may have a conflict later when trying to run any of the host-gettext tools.
Always build host-gettext with our own host-libxml2 which is not linked with liblzma.
Fixes https://bugs.busybox.net/show_bug.cgi?id=7886
--- package/gettext/gettext.mk | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
package/gettext/gettext.mk +3 -1
@@ -12,7 +12,9 @@ GETTEXT_LICENSE = LGPLv2.1+ (libintl), GPLv3+ (the rest) GETTEXT_LICENSE_FILES = COPYING gettext-runtime/intl/COPYING.LIB GETTEXT_DEPENDENCIES = $(if $(BR2_PACKAGE_LIBICONV),libiconv) -HOST_GETTEXT_DEPENDENCIES = # we don't want the libiconv dependency + +# Avoid using the bundled subset of libxml2 +HOST_GETTEXT_DEPENDENCIES = host-libxml2 GETTEXT_CONF_OPTS += \ --disable-libasprintf \
Signature · 1 line
1.9.1
PATCH 1/1 package/gettext: host variant needs host-libxml2
Yann,
Quoted 14 lines · Yann E. MORIN
From: Ignacy Gaw?dzki <[email protected]>
Of host-gettext, we only build the tools. however some of those tools have a --color option, which needs libxml2.
If the libxml2 development files are missing on the host, a bundled subset of libxml2 is used, and all seems OK. But if they ar epresent, then the host libxml2 is used. On some distros, lbxml2 is linked with liblzma. And if we happend to _then_ build our host-liblzma, we may have a conflict later when trying to run any of the host-gettext tools.
Always build host-gettext with our own host-libxml2 which is not linked with liblzma.
Quoted 7 lines
Fixes https://bugs.busybox.net/show_bug.cgi?id=7886
Signed-off-by Ignacy Gaw?dzki <[email protected]>[nicolas: added extended commit message]Signed-off-by Nicolas Cavallari <[email protected]>[yann.morin.1998 at free.fr: rebase; add comment; enhance commit log]Signed-off-by "Yann E. MORIN" <[email protected]>
Thanks for reviving this old patch. I do remember it, and I believe back then I raised the concern that unconditionally building host-libxml2 as a dependency of host-gettext would add quite a bit of build time (to a package that already takes an awful lot of time to build for what it does, but that's another story).
So I did a measurement:
* If we force the usage of the included libxml2, then the time needed to do "make host-gettext" from an empty build is:
real 1m40.892s user 2m38.664s sys 0m13.132s
* If we use your patch, which unconditionally adds the dependency on host-libxml2, the time needed to do a "make host-gettext" from an empty build is:
real 2m21.035s user 3m51.956s sys 0m16.020s
So about a 40 seconds build time difference. I'm not sure what to decide from that. 40 seconds is not that long, but host-gettext is already quite long to build...
Thoughts ? Opinions ?
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH 1/1 package/gettext: host variant needs host-libxml2
Thomas, All,
On 2015-12-27 11:44 +0100, Thomas Petazzoni spake thusly:
Quoted 46 lines · Yann E. MORIN
Quoted 14 lines
From: Ignacy Gaw?dzki <[email protected]>
Of host-gettext, we only build the tools. however some of those tools have a --color option, which needs libxml2.
If the libxml2 development files are missing on the host, a bundled subset of libxml2 is used, and all seems OK. But if they ar epresent, then the host libxml2 is used. On some distros, lbxml2 is linked with liblzma. And if we happend to _then_ build our host-liblzma, we may have a conflict later when trying to run any of the host-gettext tools.
Always build host-gettext with our own host-libxml2 which is not linked with liblzma.
Quoted 7 lines
Fixes https://bugs.busybox.net/show_bug.cgi?id=7886
Signed-off-by Ignacy Gaw?dzki <[email protected]>[nicolas: added extended commit message]Signed-off-by Nicolas Cavallari <[email protected]>[yann.morin.1998 at free.fr: rebase; add comment; enhance commit log]Signed-off-by "Yann E. MORIN" <[email protected]>Thanks for reviving this old patch. I do remember it, and I believe back then I raised the concern that unconditionally building host-libxml2 as a dependency of host-gettext would add quite a bit of build time (to a package that already takes an awful lot of time to build for what it does, but that's another story).
So I did a measurement:
* If we force the usage of the included libxml2, then the time needed to do "make host-gettext" from an empty build is:
real 1m40.892s user 2m38.664s sys 0m13.132s* If we use your patch, which unconditionally adds the dependency on host-libxml2, the time needed to do a "make host-gettext" from an empty build is:
real 2m21.035s user 3m51.956s sys 0m16.020s
Quoted 5 lines
So about a 40 seconds build time difference. I'm not sure what to decide from that. 40 seconds is not that long, but host-gettext is already quite long to build...
Thoughts ? Opinions ?
Well, we also have to consider why we have to build host-gettext: it is a dependency of quite a few packages. I did not try to time-build all of them, but we have to really compare the extra time to the time it takes to build the real packages that need host-gettext. Surely, we're already adding 2m21s to the build time of those packages; adding 40s more is not transparent, but still better than the situation we currently have with library mismatch.
Also, as Vicente replied, we already need to build host-libxml2 in some cases, so we may end up building it twice if we were to use the bundled one.
A solution would have been to use host-libxml2 if something else depends on it, and fallback to the bundled one otherwsie, but we have no way to know if a host-libxml2 is to be built or not (no Kconfig variable for it).
I would prefer to spend more build time for a reproducible build, at least.
Regards,
Yann E. MORIN.
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH 1/1 package/gettext: host variant needs host-libxml2
Yann,
Quoted 11 lines · Yann E. MORIN
Well, we also have to consider why we have to build host-gettext: it is a dependency of quite a few packages. I did not try to time-build all of them, but we have to really compare the extra time to the time it takes to build the real packages that need host-gettext. Surely, we're already adding 2m21s to the build time of those packages; adding 40s more is not transparent, but still better than the situation we currently have with library mismatch.
Also, as Vicente replied, we already need to build host-libxml2 in some cases, so we may end up building it twice if we were to use the bundled one.
There are not so many cases where we build host-libxml2 in fact. There are some, but not that many.
Quoted 3 lines
A solution would have been to use host-libxml2 if something else depends on it, and fallback to the bundled one otherwsie, but we have no way to know if a host-libxml2 is to be built or not (no
Kconfigvariable for it).
Right.
Quoted 2 lines
I would prefer to spend more build time for a reproducible build, at least.
Well, with --with-included-libxml, the build is reproducible, since the internal libxml library is always used. But I agree that our policy is generally to use the non-bundled versions of the different libraries.
It's just super annoying to have yet another dependency, for this silly --color option of gettext that nobody cares about...
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
Thomas Petazzoni
AppliedPATCH 1/1 package/gettext: host variant needs host-libxml2
In reply to Yann E. MORINDear Yann E. MORIN,
Quoted 16 lines · Yann E. MORIN
From: Ignacy Gaw?dzki <[email protected]>
Of host-gettext, we only build the tools. however some of those tools have a --color option, which needs libxml2.
If the libxml2 development files are missing on the host, a bundled subset of libxml2 is used, and all seems OK. But if they ar epresent, then the host libxml2 is used. On some distros, lbxml2 is linked with liblzma. And if we happend to _then_ build our host-liblzma, we may have a conflict later when trying to run any of the host-gettext tools.
Always build host-gettext with our own host-libxml2 which is not linked with liblzma.
Quoted 8 lines
Signed-off-by Ignacy Gaw?dzki <[email protected]>[nicolas: added extended commit message]Signed-off-by Nicolas Cavallari <[email protected]>[yann.morin.1998 at free.fr: rebase; add comment; enhance commit log]Signed-off-by "Yann E. MORIN" <[email protected]>--- package/gettext/gettext.mk | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
Applied, thanks.
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH 1/1 package/gettext: host variant needs host-libxml2
In reply to Yann E. MORINQuoted 14 lines · Yann E. MORIN
From: Ignacy Gaw?dzki <[email protected]>
Of host-gettext, we only build the tools. however some of those tools have a --color option, which needs libxml2.
If the libxml2 development files are missing on the host, a bundled subset of libxml2 is used, and all seems OK. But if they ar epresent, then the host libxml2 is used. On some distros, lbxml2 is linked with liblzma. And if we happend to _then_ build our host-liblzma, we may have a conflict later when trying to run any of the host-gettext tools.
Always build host-gettext with our own host-libxml2 which is not linked with liblzma.
Quoted 7 lines
Fixes https://bugs.busybox.net/show_bug.cgi?id=7886
Signed-off-by Ignacy Gaw?dzki <[email protected]>[nicolas: added extended commit message]Signed-off-by Nicolas Cavallari <[email protected]>[yann.morin.1998 at free.fr: rebase; add comment; enhance commit log]Signed-off-by "Yann E. MORIN" <[email protected]>
Regards.