diff mbox series

[1/1] package/nodejs: bump to version 12.14.1

Message ID 20200121023242.94475-1-james.hilliard1@gmail.com
State Accepted
Headers show
Series [1/1] package/nodejs: bump to version 12.14.1 | expand

Commit Message

James Hilliard Jan. 21, 2020, 2:32 a.m. UTC
Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
---
 package/nodejs/nodejs.hash | 4 ++--
 package/nodejs/nodejs.mk   | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

Comments

Peter Korsgaard Jan. 21, 2020, 8:03 p.m. UTC | #1
>>>>> "James" == James Hilliard <james.hilliard1@gmail.com> writes:

 > Signed-off-by: James Hilliard <james.hilliard1@gmail.com>

Committed, thanks.
Thomas Preston Jan. 23, 2020, 1:46 p.m. UTC | #2
Hi all,

On 21/01/2020 02:32, James Hilliard wrote:
> Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
> ---
>  package/nodejs/nodejs.hash | 4 ++--
>  package/nodejs/nodejs.mk   | 2 +-
>  2 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/package/nodejs/nodejs.hash b/package/nodejs/nodejs.hash
> index bde0ac0167..92369105ff 100644
> --- a/package/nodejs/nodejs.hash
> +++ b/package/nodejs/nodejs.hash
> @@ -1,5 +1,5 @@
> -# From https://nodejs.org/dist/v12.14.0/SHASUMS256.txt
> -sha256 088a217ba2af641b8cc15be29f6e2956b8a33e6badb85596bbc2cdea9df9be71  node-v12.14.0.tar.xz
> +# From https://nodejs.org/dist/v12.14.1/SHASUMS256.txt
> +sha256 877b4b842318b0e09bc754faf7343f2f097f0fc4f88ab9ae57cf9944e88e7adb  node-v12.14.1.tar.xz
>  
>  # Hash for license file
>  sha256 950bbc741dc021489c47683e34e7637e9b96fb4a1f430b2f77a744130516e293  LICENSE
> diff --git a/package/nodejs/nodejs.mk b/package/nodejs/nodejs.mk
> index 62c4c1abb1..e6eb73d576 100644
> --- a/package/nodejs/nodejs.mk
> +++ b/package/nodejs/nodejs.mk
> @@ -4,7 +4,7 @@
>  #
>  ################################################################################
>  
> -NODEJS_VERSION = 12.14.0
> +NODEJS_VERSION = 12.14.1
>  NODEJS_SOURCE = node-v$(NODEJS_VERSION).tar.xz
>  NODEJS_SITE = http://nodejs.org/dist/v$(NODEJS_VERSION)
>  NODEJS_DEPENDENCIES = host-python host-nodejs c-ares \
> 

This breaks host-nodejs for me. Looks like an error with icu-small conflicting
with host-icu, but I can't tell for sure. It works again when I revert this
patch (nodejs 12.14.0) and clean-rebuild.

I can reproduce with something similar to this:

	docker build -t "repro" support/docker
	docker run \
		--mount=type=bind,src="$(pwd)",dst=/home/br-user \
		--user "$UID:$UID" -it "repro" \
		make host-nodejs

The error looks like this:

make[2]: *** [/home/br-user/output/build/host-nodejs-12.14.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/number_multiplier.o] Error 1
In file included from ../deps/icu-small/source/i18n/number_types.h:11:0,
                 from ../deps/icu-small/source/i18n/number_decimalquantity.h:14,
                 from ../deps/icu-small/source/i18n/numparse_types.h:11,
                 from ../deps/icu-small/source/i18n/number_currencysymbols.cpp:12:
../deps/icu-small/source/i18n/unicode/decimfmt.h:899:13: error: invalid covariant return type for ‘virtual icu_65::Format* icu_65::DecimalFormat::clone() const’
     Format* clone(void) const U_OVERRIDE;
             ^~~~~
In file included from ../deps/icu-small/source/i18n/unicode/decimfmt.h:39:0,
                 from ../deps/icu-small/source/i18n/number_types.h:11,
                 from ../deps/icu-small/source/i18n/number_decimalquantity.h:14,
                 from ../deps/icu-small/source/i18n/numparse_types.h:11,
                 from ../deps/icu-small/source/i18n/number_currencysymbols.cpp:12:
/home/br-user/output/host/include/unicode/numfmt.h:271:27: error:   overriding ‘virtual icu_65::NumberFormat* icu_65::NumberFormat::clone() const’
     virtual NumberFormat* clone() const = 0;
                           ^~~~~
James Hilliard Jan. 23, 2020, 9:03 p.m. UTC | #3
I thought that issue was caused by the ICU 65.1 bump, not the nodejs bump.

I have a pending pull request to nodejs that might fix this issue by
the way https://github.com/nodejs/node/pull/31433.

On Thu, Jan 23, 2020 at 6:46 AM Thomas Preston
<thomas.preston@codethink.co.uk> wrote:
>
> Hi all,
>
> On 21/01/2020 02:32, James Hilliard wrote:
> > Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
> > ---
> >  package/nodejs/nodejs.hash | 4 ++--
> >  package/nodejs/nodejs.mk   | 2 +-
> >  2 files changed, 3 insertions(+), 3 deletions(-)
> >
> > diff --git a/package/nodejs/nodejs.hash b/package/nodejs/nodejs.hash
> > index bde0ac0167..92369105ff 100644
> > --- a/package/nodejs/nodejs.hash
> > +++ b/package/nodejs/nodejs.hash
> > @@ -1,5 +1,5 @@
> > -# From https://nodejs.org/dist/v12.14.0/SHASUMS256.txt
> > -sha256 088a217ba2af641b8cc15be29f6e2956b8a33e6badb85596bbc2cdea9df9be71  node-v12.14.0.tar.xz
> > +# From https://nodejs.org/dist/v12.14.1/SHASUMS256.txt
> > +sha256 877b4b842318b0e09bc754faf7343f2f097f0fc4f88ab9ae57cf9944e88e7adb  node-v12.14.1.tar.xz
> >
> >  # Hash for license file
> >  sha256 950bbc741dc021489c47683e34e7637e9b96fb4a1f430b2f77a744130516e293  LICENSE
> > diff --git a/package/nodejs/nodejs.mk b/package/nodejs/nodejs.mk
> > index 62c4c1abb1..e6eb73d576 100644
> > --- a/package/nodejs/nodejs.mk
> > +++ b/package/nodejs/nodejs.mk
> > @@ -4,7 +4,7 @@
> >  #
> >  ################################################################################
> >
> > -NODEJS_VERSION = 12.14.0
> > +NODEJS_VERSION = 12.14.1
> >  NODEJS_SOURCE = node-v$(NODEJS_VERSION).tar.xz
> >  NODEJS_SITE = http://nodejs.org/dist/v$(NODEJS_VERSION)
> >  NODEJS_DEPENDENCIES = host-python host-nodejs c-ares \
> >
>
> This breaks host-nodejs for me. Looks like an error with icu-small conflicting
> with host-icu, but I can't tell for sure. It works again when I revert this
> patch (nodejs 12.14.0) and clean-rebuild.
>
> I can reproduce with something similar to this:
>
>         docker build -t "repro" support/docker
>         docker run \
>                 --mount=type=bind,src="$(pwd)",dst=/home/br-user \
>                 --user "$UID:$UID" -it "repro" \
>                 make host-nodejs
>
> The error looks like this:
>
> make[2]: *** [/home/br-user/output/build/host-nodejs-12.14.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/number_multiplier.o] Error 1
> In file included from ../deps/icu-small/source/i18n/number_types.h:11:0,
>                  from ../deps/icu-small/source/i18n/number_decimalquantity.h:14,
>                  from ../deps/icu-small/source/i18n/numparse_types.h:11,
>                  from ../deps/icu-small/source/i18n/number_currencysymbols.cpp:12:
> ../deps/icu-small/source/i18n/unicode/decimfmt.h:899:13: error: invalid covariant return type for ‘virtual icu_65::Format* icu_65::DecimalFormat::clone() const’
>      Format* clone(void) const U_OVERRIDE;
>              ^~~~~
> In file included from ../deps/icu-small/source/i18n/unicode/decimfmt.h:39:0,
>                  from ../deps/icu-small/source/i18n/number_types.h:11,
>                  from ../deps/icu-small/source/i18n/number_decimalquantity.h:14,
>                  from ../deps/icu-small/source/i18n/numparse_types.h:11,
>                  from ../deps/icu-small/source/i18n/number_currencysymbols.cpp:12:
> /home/br-user/output/host/include/unicode/numfmt.h:271:27: error:   overriding ‘virtual icu_65::NumberFormat* icu_65::NumberFormat::clone() const’
>      virtual NumberFormat* clone() const = 0;
>                            ^~~~~
Thomas Preston Jan. 24, 2020, 11:31 a.m. UTC | #4
Hey,
Thanks for getting back to me.

On 23/01/2020 21:03, James Hilliard wrote:
> I thought that issue was caused by the ICU 65.1 bump, not the nodejs bump.
> 
> I have a pending pull request to nodejs that might fix this issue by
> the way https://github.com/nodejs/node/pull/31433.
> 

It looks more like a header conflict to me - nodejs should be using the
bundled icu-small but buildroot makes it use the host-icu package headers.
Maybe the discrepancy is because of the ICU 65.1 bump though...

Unfortunately I'm unable to reliably reproduce it with different combinations
of the the following conditions:
- Upstream
- Reverted ae1efb62e7 package/nodejs: bump to version 12.14.1
- Reverted e2a2fab11b package/icu: bump to version 65-1

But I still see it sometimes...

>> In file included from ../deps/icu-small/source/i18n/unicode/decimfmt.h:39:0,
>>                  from ../deps/icu-small/source/i18n/number_types.h:11,
>>                  from ../deps/icu-small/source/i18n/number_decimalquantity.h:14,
>>                  from ../deps/icu-small/source/i18n/numparse_types.h:11,
>>                  from ../deps/icu-small/source/i18n/number_currencysymbols.cpp:12:
>> /home/br-user/output/host/include/unicode/numfmt.h:271:27: error:   overriding ‘virtual icu_65::NumberFormat* icu_65::NumberFormat::clone() const’
>>      virtual NumberFormat* clone() const = 0;
>>                            ^~~~~
> 

All the headers are from icu-small except unicode/numfmt.h, which is from
buildroot output/host.

This is one of the build commands:

/home/br-user/output/host/bin/ccache /usr/bin/g++ \
	-o /home/br-user/output/build/host-nodejs-12.14.0/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/zonemeta.o ../deps/icu-small/source/i18n/zonemeta.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-D_CRT_SECURE_NO_DEPRECATE=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' \
	-I/home/br-user/output/host/include \
	-I/home/br-user/output/host/include/openssl \
	-I../deps/icu-small/source/i18n \
	-I../deps/icu-small/source/common  \
	-pthread \
	-Wall \
	-Wextra \
	-Wno-unused-parameter \
	-m32 \
	-Wno-deprecated-declarations \
	-Wno-strict-aliasing \
	-O3 \
	-fno-omit-frame-pointer \
	-fno-exceptions \
	-std=gnu++1y \
	-frtti-MMD \
	-MF /home/br-user/output/build/host-nodejs-12.14.0/out/Release/.deps//home/br-user/output/build/host-nodejs-12.14.0/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/zonemeta.o.d.raw \
	-I/home/br-user/output/host/include \
	-O2 \
	-I/home/br-user/output/host/include \
	-c

There's a few things fishy;
1. Three instances of `-I/home/br-user/output/host/include`
2. The -MF argument is wrong, looks like an absolute path got copied
   somewhere it shouldn't have.

What we want is for `-I../deps/icu-small/source/i18n` to take priority
so that the bundled icu-small is used instead of the host-icu package
headers.
Thomas Preston Jan. 24, 2020, 1:39 p.m. UTC | #5
On 24/01/2020 11:31, Thomas Preston wrote:
> There's a few things fishy;
> 1. Three instances of `-I/home/br-user/output/host/include`

The first `-I$(HOST_DIR)/include` is because nodejs configure.py uses
buildroot's host-pkg-config script to get the include directories for
zlib, which happens to be /home/br-user/output/host/include - which
also includes host-icu headers.

The final two `-I$(HOST_DIR)/include` are from:

	CFLAGS.target
	CXXFLAGS.target

It's really an ordering issue, because nodejs configure.py looks for
ICU headers in `-I$(HOST_DIR)/include` before the bundled icu-small
directory.

One workaround is to remove "--shared-zlib" so that
`-I$(HOST_DIR)/include` isn't listed before the icu-small arguments

	-I../deps/icu-small/source/i18n
	-I../deps/icu-small/source/common

Zlib is still found because it's in the host system include dir,
although I'm not sure how acceptable this solution is to upstream
Buildroot. Maybe remove it but add a comment?

diff --git a/package/nodejs/nodejs.mk b/package/nodejs/nodejs.mk
index 62c4c1abb1..181668b743 100644
--- a/package/nodejs/nodejs.mk
+++ b/package/nodejs/nodejs.mk
@@ -63,7 +63,6 @@ define HOST_NODEJS_CONFIGURE_CMDS
                --shared-openssl \
                --shared-openssl-includes=$(HOST_DIR)/include/openssl \
                --shared-openssl-libpath=$(HOST_DIR)/lib \
-               --shared-zlib \
                --no-cross-compiling \
                --with-intl=small-icu \
        )
diff mbox series

Patch

diff --git a/package/nodejs/nodejs.hash b/package/nodejs/nodejs.hash
index bde0ac0167..92369105ff 100644
--- a/package/nodejs/nodejs.hash
+++ b/package/nodejs/nodejs.hash
@@ -1,5 +1,5 @@ 
-# From https://nodejs.org/dist/v12.14.0/SHASUMS256.txt
-sha256 088a217ba2af641b8cc15be29f6e2956b8a33e6badb85596bbc2cdea9df9be71  node-v12.14.0.tar.xz
+# From https://nodejs.org/dist/v12.14.1/SHASUMS256.txt
+sha256 877b4b842318b0e09bc754faf7343f2f097f0fc4f88ab9ae57cf9944e88e7adb  node-v12.14.1.tar.xz
 
 # Hash for license file
 sha256 950bbc741dc021489c47683e34e7637e9b96fb4a1f430b2f77a744130516e293  LICENSE
diff --git a/package/nodejs/nodejs.mk b/package/nodejs/nodejs.mk
index 62c4c1abb1..e6eb73d576 100644
--- a/package/nodejs/nodejs.mk
+++ b/package/nodejs/nodejs.mk
@@ -4,7 +4,7 @@ 
 #
 ################################################################################
 
-NODEJS_VERSION = 12.14.0
+NODEJS_VERSION = 12.14.1
 NODEJS_SOURCE = node-v$(NODEJS_VERSION).tar.xz
 NODEJS_SITE = http://nodejs.org/dist/v$(NODEJS_VERSION)
 NODEJS_DEPENDENCIES = host-python host-nodejs c-ares \