Skip to contentSkip to conversation

package/nodejs: Add node.js v4.1.2

PATCH New Jaap Crezee 4 participants 9 messages Oct 6, 2015 – Oct 19, 2015

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 package/nodejs: Add node.js v4.1.2

---
 ...01-Remove-dependency-on-Python-bz2-module.patch | 31 ++++++++++++++++++++++
 package/nodejs/Config.in                           |  5 ++++
 package/nodejs/nodejs.hash                         |  3 +++
 3 files changed, 39 insertions(+)
 create mode 100644 package/nodejs/4.1.2/0001-Remove-dependency-on-Python-bz2-module.patch
package/nodejs/4.1.2/0001-Remove-dependency-on-Python-bz2-module.patch new file +31 -0
new file mode 100644
index 0000000..de83d44
@@ -0,0 +1,31 @@
+From 3d4817c152d6f3afddcc699949c4d1664da91e2b Mon Sep 17 00:00:00 2001
+From: Martin Bark <[email protected]>
+Date: Tue, 30 Jun 2015 09:43:11 +0100
+Subject: [PATCH 1/4] Remove dependency on Python bz2 module
+
+The Python bz2 module is only needed in certain cases, so only import
+it when needed. In the normal nodejs build, this allows to remove the
+dependency on this module.
+
+Signed-off-by: Thomas Petazzoni <[email protected]>
+[Martin: adapt to 0.12.5]
+Signed-off-by: Martin Bark <[email protected]>
+---
+ deps/v8/tools/js2c.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/deps/v8/tools/js2c.py b/deps/v8/tools/js2c.py
+index 77485f6..371caf5 100755
+--- a/deps/v8/tools/js2c.py
++++ b/deps/v8/tools/js2c.py
+@@ -34,7 +34,6 @@
+ import os, re, sys, string
+ import optparse
+ import jsmin
+-import bz2
+ import textwrap
+ 
+ 
+-- 
+2.1.4
+
package/nodejs/Config.in +5 -0
index 329d270..b25375b 100644
@@ -40,12 +40,17 @@ config BR2_BR2_PACKAGE_NODEJS_0_12_X
 	bool "v0.12.7"
 	depends on !BR2_ARM_CPU_ARMV5
 
+config BR2_BR2_PACKAGE_NODEJS_4_1_X
+	bool "v4.1.2"
+	depends on !BR2_ARM_CPU_ARMV5
+
 endchoice
 
 config BR2_PACKAGE_NODEJS_VERSION_STRING
 	string
 	default "0.10.40"	if BR2_BR2_PACKAGE_NODEJS_0_10_X
 	default "0.12.7"	if BR2_BR2_PACKAGE_NODEJS_0_12_X
+	default "4.1.2"     if BR2_BR2_PACKAGE_NODEJS_4_1_X
 
 menu "Module Selection"
 
package/nodejs/nodejs.hash +3 -0
index 9be2806..9f75471 100644
@@ -3,3 +3,6 @@ sha256	bae79c2fd959aebe1629af36077bebbb760128db753da226d2344cd91499149f  node-v0
 
 # From upstream URL: http://nodejs.org/dist/v0.12.7/SHASUMS256.txt
 sha256	b23d64df051c9c969b0c583f802d5d71de342e53067127a5061415be7e12f39d  node-v0.12.7.tar.gz
+
+# From upstream URL: http://nodejs.org/dist/v4.1.2/SHASUMS256.txt
+sha256	febec3703a3fea9b64c46100a7b6a4408250027aa8259a2a815fd2275d502c49  node-v4.1.2.tar.gz
Signature · 1 line
2.6.0
#1 lore raw

PATCH 1/1 package/nodejs: Add node.js v4.1.2

Quoted 16 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Jaap" == Jaap Crezee <[email protected]> writes:

---
 ...01-Remove-dependency-on-Python-bz2-module.patch | 31 ++++++++++++++++++++++
 package/nodejs/Config.in                           |  5 ++++
 package/nodejs/nodejs.hash                         |  3 +++
 3 files changed, 39 insertions(+)
 create mode 100644 package/nodejs/4.1.2/0001-Remove-dependency-on-Python-bz2-module.patch

+++ b/package/nodejs/Config.in

package/nodejs/Config.in +1 -0
@@ -40,12 +40,17 @@ config BR2_BR2_PACKAGE_NODEJS_0_12_X
 	bool "v0.12.7"
 	depends on !BR2_ARM_CPU_ARMV5
 
+config BR2_BR2_PACKAGE_NODEJS_4_1_X

package/nodejs/Config.in config BR2_BR2_PACKAGE_NODEJS_0_12_X · line 53

Quoted 10 lines
package/nodejs/Config.in +4 -0
+	bool "v4.1.2"
+	depends on !BR2_ARM_CPU_ARMV5
+
 endchoice
 
 config BR2_PACKAGE_NODEJS_VERSION_STRING
 	string
 	default "0.10.40"	if BR2_BR2_PACKAGE_NODEJS_0_10_X
 	default "0.12.7"	if BR2_BR2_PACKAGE_NODEJS_0_12_X
+	default "4.1.2"     if BR2_BR2_PACKAGE_NODEJS_4_1_X

Is there a need to keep both 0.12.x and 4.1.x? The only reason we have a version selection is afaik that <ARMv7 is only supported in the old 0.10.x version.

Signature · 1 line
Bye, Peter Korsgaard
#2 lore raw

PATCH 1/1 package/nodejs: Add node.js v4.1.2

Hi Peter,

Quoted 10 lines · Peter Korsgaard

package/nodejs/Config.in config BR2_BR2_PACKAGE_NODEJS_0_12_X · line 53

Quoted 6 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Jaap" == Jaap Crezee <[email protected]> writes:

config BR2_PACKAGE_NODEJS_VERSION_STRING

package/nodejs/Config.in +1 -0
 	string
 	default "0.10.40"	if BR2_BR2_PACKAGE_NODEJS_0_10_X
 	default "0.12.7"	if BR2_BR2_PACKAGE_NODEJS_0_12_X
+	default "4.1.2"     if BR2_BR2_PACKAGE_NODEJS_4_1_X

Is there a need to keep both 0.12.x and 4.1.x? The only reason we have a version selection is afaik that <ARMv7 is only supported in the old 0.10.x version.

Well not from my side. Our project just needs 4.x and I didn't want to break other users who might still be depending on 0.12.x. I am not sure about downwards compatibility of 4.x.

regards,

Jaap Crezee

#3 lore raw

PATCH 1/1 package/nodejs: Add node.js v4.1.2

In reply to Peter Korsgaard

Dear Peter Korsgaard,

Quoted 23 lines · Peter Korsgaard
Quoted 5 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Jaap" == Jaap Crezee <[email protected]> writes:

---
 ...01-Remove-dependency-on-Python-bz2-module.patch | 31

++++++++++++++++++++++

Quoted 4 lines
 package/nodejs/Config.in                           |  5 ++++
 package/nodejs/nodejs.hash                         |  3 +++
 3 files changed, 39 insertions(+)
 create mode 100644 package/nodejs/4.1.2/0001-Remove-dependency-on

-Python-bz2-module.patch

Quoted 10 lines

+++ b/package/nodejs/Config.in

package/nodejs/Config.in +4 -0
@@ -40,12 +40,17 @@ config BR2_BR2_PACKAGE_NODEJS_0_12_X
 	bool "v0.12.7"
 	depends on !BR2_ARM_CPU_ARMV5
 
+config BR2_BR2_PACKAGE_NODEJS_4_1_X
+	bool "v4.1.2"
+	depends on !BR2_ARM_CPU_ARMV5
+
 endchoice
Quoted 11 lines

package/nodejs/Config.in config BR2_BR2_PACKAGE_NODEJS_0_12_X · line 53

Quoted 5 lines
package/nodejs/Config.in +1 -0
 config BR2_PACKAGE_NODEJS_VERSION_STRING
 	string
 	default "0.10.40"	if BR2_BR2_PACKAGE_NODEJS_0_10_X
 	default "0.12.7"	if BR2_BR2_PACKAGE_NODEJS_0_12_X
+	default "4.1.2"     if BR2_BR2_PACKAGE_NODEJS_4_1_X

Is there a need to keep both 0.12.x and 4.1.x? The only reason we have a
version selection is afaik that <ARMv7 is only supported in the old 0.10.x version.

Yes, there is! Node.js applications written for Node.js 0.12.x are not necessarily compatible with Node.js 4.x.

Best regards
J?rg Krause

#4 lore raw

PATCH 1/1 package/nodejs: Add node.js v4.1.2

Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"J?rg" == J?rg Krause <[email protected]> writes:

Hi,

Quoted 11 lines
Quoted 10 lines

package/nodejs/Config.in config BR2_BR2_PACKAGE_NODEJS_0_12_X · line 53

Quoted 5 lines

config BR2_PACKAGE_NODEJS_VERSION_STRING

package/nodejs/Config.in +1 -0
 	string
 	default "0.10.40"	if BR2_BR2_PACKAGE_NODEJS_0_10_X
 	default "0.12.7"	if BR2_BR2_PACKAGE_NODEJS_0_12_X
+	default "4.1.2"     if BR2_BR2_PACKAGE_NODEJS_4_1_X

Is there a need to keep both 0.12.x and 4.1.x? The only reason we have a
version selection is afaik that <ARMv7 is only supported in the old 0.10.x version.

Quoted 2 lines

Yes, there is! Node.js applications written for Node.js 0.12.x are not necessarily compatible with Node.js 4.x.

Ok, but where does that leave us? Is the 0.12.x series still supported upstream? When can it be dropped?

Signature · 2 lines
Venlig hilsen,
Peter Korsgaard 
#5 lore raw

PATCH 1/1 package/nodejs: Add node.js v4.1.2

Dear Peter,

Quoted 18 lines · Peter Korsgaard
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"J?rg" == J?rg Krause <[email protected]> writes:

Hi,

Quoted 3 lines
Quoted 3 lines

Review

Quoted 3 lines

config BR2_PACKAGE_NODEJS_VERSION_STRING

(quoted diff) +0 -0
 	string
 	default "0.10.40"	if

BR2_BR2_PACKAGE_NODEJS_0_10_X

Quoted 1 line
Quoted 1 line
Quoted 1 line

default "0.12.7" if

BR2_BR2_PACKAGE_NODEJS_0_12_X

Quoted 5 lines
Quoted 5 lines

package/nodejs/Config.in config BR2_BR2_PACKAGE_NODEJS_0_12_X · line 53

Quoted 1 line
package/nodejs/Config.in +1 -0
+	default "4.1.2"     if BR2_BR2_PACKAGE_NODEJS_4_1_X

Is there a need to keep both 0.12.x and 4.1.x? The only reason we have a
version selection is afaik that <ARMv7 is only supported in the

old

Quoted 1 line
Quoted 1 line

0.10.x version.

Quoted 8 lines
Quoted 1 line

Yes, there is! Node.js applications written for Node.js 0.12.x are

not

Quoted 1 line

necessarily compatible with Node.js 4.x.

Ok, but where does that leave us? Is the 0.12.x series still supported
upstream? When can it be dropped?

The Node.js foundation has a plan to establish Long-Term Support for the current releases [1]. However, it is not officially yet.

[1] http://dailyjs.com/2015/07/01/node-long-term-support-working-group/

#6 lore raw

PATCH 1/1 package/nodejs: Add node.js v4.1.2

In reply to Jaap Crezee

Dear Jaap Crezee,

Quoted 89 lines · Jaap Crezee
---
 ...01-Remove-dependency-on-Python-bz2-module.patch | 31
++++++++++++++++++++++
 package/nodejs/Config.in                           |  5 ++++
 package/nodejs/nodejs.hash                         |  3 +++
 3 files changed, 39 insertions(+)
 create mode 100644 package/nodejs/4.1.2/0001-Remove-dependency-on
(quoted diff) +0 -1
-Python-bz2-module.patch
(quoted diff) +0 -2
-bz2-module.patch b/package/nodejs/4.1.2/0001-Remove-dependency-on
-Python-bz2-module.patch

new file mode 100644
index 0000000..de83d44

package/nodejs/4.1.2/0001-Remove-dependency-on-Python-bz2 new file +1 -1
-module.patch
@@ -0,0 +1,31 @@
+From 3d4817c152d6f3afddcc699949c4d1664da91e2b Mon Sep 17 00:00:00

2001

package/nodejs/4.1.2/0001-Remove-dependency-on-Python-bz2 new file +5 -0
+From: Martin Bark <[email protected]>
+Date: Tue, 30 Jun 2015 09:43:11 +0100
+Subject: [PATCH 1/4] Remove dependency on Python bz2 module
+
+The Python bz2 module is only needed in certain cases, so only

import
+it when needed. In the normal nodejs build, this allows to remove the

package/nodejs/4.1.2/0001-Remove-dependency-on-Python-bz2 new file +3 -0
+dependency on this module.
+
+Signed-off-by: Thomas Petazzoni <[email protected]
Quoted 1 line

+[Martin: adapt to 0.12.5]

package/nodejs/4.1.2/0001-Remove-dependency-on-Python-bz2 new file +20 -0
+Signed-off-by: Martin Bark <[email protected]>
+---
+ deps/v8/tools/js2c.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/deps/v8/tools/js2c.py b/deps/v8/tools/js2c.py
+index 77485f6..371caf5 100755
+--- a/deps/v8/tools/js2c.py
++++ b/deps/v8/tools/js2c.py
+@@ -34,7 +34,6 @@
+ import os, re, sys, string
+ import optparse
+ import jsmin
+-import bz2
+ import textwrap
+ 
+ 
+-- 
+2.1.4
+
package/nodejs/Config.in +5 -0
index 329d270..b25375b 100644
@@ -40,12 +40,17 @@ config BR2_BR2_PACKAGE_NODEJS_0_12_X
 	bool "v0.12.7"
 	depends on !BR2_ARM_CPU_ARMV5
 
+config BR2_BR2_PACKAGE_NODEJS_4_1_X
+	bool "v4.1.2"
+	depends on !BR2_ARM_CPU_ARMV5
+
 endchoice
 
 config BR2_PACKAGE_NODEJS_VERSION_STRING
 	string
 	default "0.10.40"	if BR2_BR2_PACKAGE_NODEJS_0_10_X
 	default "0.12.7"	if BR2_BR2_PACKAGE_NODEJS_0_12_X
+	default "4.1.2"     if BR2_BR2_PACKAGE_NODEJS_4_1_X
 
 menu "Module Selection"
 
package/nodejs/nodejs.hash +0 -0
index 9be2806..9f75471 100644
@@ -3,3 +3,6 @@ sha256	bae79c2fd959aebe1629af36077bebbb760128d

b753da226d2344cd91499149f node-v0

# From upstream URL: http://nodejs.org/dist/v0.12.7/SHASUMS256.txt
sha256 b23d64df051c9c969b0c583f802d5d71de342e53067127a5061415
be7e12f39d node-v0.12.7.tar.gz

package/nodejs/nodejs.hash +3 -0
+
+# From upstream URL: http://nodejs.org/dist/v4.1.2/SHASUMS256.txt
+sha256	febec3703a3fea9b64c46100a7b6a4408250027aa8259a2a815fd2
Quoted 1 line

275d502c49 node-v4.1.2.tar.gz

No need for patch #2 and #3 from 0.12.x?

Additionally, this package does not compile with the Sourcery CodeBench x86/x86_64 2012.09 toolchain:

In file included from ../src/js_stream.h:6:0,
from ../src/js_stream.cc:1:
../src/stream_base.h:218:11: error: looser throw specifier for 'virtual node::StreamBase::~StreamBase()'
../src/stream_base.h:134:11: error: overriding 'virtual
node::StreamResource::~StreamResource() noexcept (true)' In file included from ../src/js_stream.cc:1:0:
../src/js_stream.h:17:3: error: looser throw specifier for 'virtual node::JSStream::~JSStream()'
In file included from ../src/js_stream.h:6:0,
from ../src/js_stream.cc:1:
../src/stream_base.h:218:11: error: overriding 'virtual
node::StreamBase::~StreamBase() noexcept (true)' node.target.mk:146: recipe for target '/home/joerg/Development/git/buildroot/output/build/nodejs -4.1.2/out/Release/obj.target/node/src/js_stream.o' failed make[2]: *** [/home/joerg/Development/git/buildroot/output/build/nodejs -4.1.2/out/Release/obj.target/node/src/js_stream.o] Error 1 make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory '/home/joerg/Development/git/buildroot/output/build/nodejs -4.1.2/out'
Makefile:45: recipe for target 'node' failed
make[1]: *** [node] Error 2
make[1]: Leaving directory '/home/joerg/Development/git/buildroot/output/build/nodejs-4.1.2' package/pkg-generic.mk:156: recipe for target '/home/joerg/Development/git/buildroot/output/build/nodejs -4.1.2/.stamp_built' failed
make: *** [/home/joerg/Development/git/buildroot/output/build/nodejs -4.1.2/.stamp_built] Error 2

Maybe gcc > 4.7 required?

Best regards
J?rg Krause

#7 lore raw

PATCH 1/1 package/nodejs: Add node.js v4.1.2

Hi J?rg,

Quoted 1 line · J?rg Krause

No need for patch #2 and #3 from 0.12.x?

Not when using our cross environment... Running on an up-to-date Archlinux system. The (unmodified) patches don't apply cleanly as well.

Quoted 36 lines

Additionally, this package does not compile with the Sourcery CodeBench x86/x86_64 2012.09 toolchain:

In file included from ../src/js_stream.h:6:0,
from ../src/js_stream.cc:1:
../src/stream_base.h:218:11: error: looser throw specifier for 'virtual node::StreamBase::~StreamBase()'
../src/stream_base.h:134:11: error: overriding 'virtual
node::StreamResource::~StreamResource() noexcept (true)' In file included from ../src/js_stream.cc:1:0:
../src/js_stream.h:17:3: error: looser throw specifier for 'virtual node::JSStream::~JSStream()'
In file included from ../src/js_stream.h:6:0,
from ../src/js_stream.cc:1:
../src/stream_base.h:218:11: error: overriding 'virtual
node::StreamBase::~StreamBase() noexcept (true)' node.target.mk:146: recipe for target '/home/joerg/Development/git/buildroot/output/build/nodejs -4.1.2/out/Release/obj.target/node/src/js_stream.o' failed make[2]: *** [/home/joerg/Development/git/buildroot/output/build/nodejs -4.1.2/out/Release/obj.target/node/src/js_stream.o] Error 1 make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory '/home/joerg/Development/git/buildroot/output/build/nodejs -4.1.2/out'
Makefile:45: recipe for target 'node' failed
make[1]: *** [node] Error 2
make[1]: Leaving directory '/home/joerg/Development/git/buildroot/output/build/nodejs-4.1.2' package/pkg-generic.mk:156: recipe for target '/home/joerg/Development/git/buildroot/output/build/nodejs -4.1.2/.stamp_built' failed
make: *** [/home/joerg/Development/git/buildroot/output/build/nodejs -4.1.2/.stamp_built] Error 2

Quoted 1 line

Maybe gcc > 4.7 required?

I think so, I am using:

gcc version 4.9.3 20141031 (prerelease) (Linaro GCC 2014.11) from gcc-linaro-arm-linux-gnueabihf-4.9-2014.07_linux

regards,

Jaap Crezee

#8 lore raw

PATCH 1/1 package/nodejs: Add node.js v4.1.2

In reply to Jaap Crezee

Jaap, All,

On 2015-10-06 14:57 +0200, Jaap Crezee spake thusly:

Quoted 1 line

I have an alternative patch in the works to bump nodejs:

    http://git.buildroot.org/~ymorin/git/buildroot/commit/?h=yem/node&id=d080958d76d5737c0cb300976659d708889daeed

Compred to your patch:
- it fixes a build failure for armv VFPv2
- it drops 0.12.x
- it forward ports and cleans up more patches.

From what I understand from the htread, we may want to keep 0.12.x because of API changes.

So I'll adapt my patch to not get rif of 0.12.x and submit shortly.

Regards,
Yann E. MORIN.

Quoted 83 lines
 ...01-Remove-dependency-on-Python-bz2-module.patch | 31 ++++++++++++++++++++++
 package/nodejs/Config.in                           |  5 ++++
 package/nodejs/nodejs.hash                         |  3 +++
 3 files changed, 39 insertions(+)
 create mode 100644 package/nodejs/4.1.2/0001-Remove-dependency-on-Python-bz2-module.patch
package/nodejs/4.1.2/0001-Remove-dependency-on-Python-bz2-module.patch new file +31 -0
new file mode 100644
index 0000000..de83d44
@@ -0,0 +1,31 @@
+From 3d4817c152d6f3afddcc699949c4d1664da91e2b Mon Sep 17 00:00:00 2001
+From: Martin Bark <[email protected]>
+Date: Tue, 30 Jun 2015 09:43:11 +0100
+Subject: [PATCH 1/4] Remove dependency on Python bz2 module
+
+The Python bz2 module is only needed in certain cases, so only import
+it when needed. In the normal nodejs build, this allows to remove the
+dependency on this module.
+
+Signed-off-by: Thomas Petazzoni <[email protected]>
+[Martin: adapt to 0.12.5]
+Signed-off-by: Martin Bark <[email protected]>
+---
+ deps/v8/tools/js2c.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/deps/v8/tools/js2c.py b/deps/v8/tools/js2c.py
+index 77485f6..371caf5 100755
+--- a/deps/v8/tools/js2c.py
++++ b/deps/v8/tools/js2c.py
+@@ -34,7 +34,6 @@
+ import os, re, sys, string
+ import optparse
+ import jsmin
+-import bz2
+ import textwrap
+ 
+ 
+-- 
+2.1.4
+
package/nodejs/Config.in +5 -0
index 329d270..b25375b 100644
@@ -40,12 +40,17 @@ config BR2_BR2_PACKAGE_NODEJS_0_12_X
 	bool "v0.12.7"
 	depends on !BR2_ARM_CPU_ARMV5
 
+config BR2_BR2_PACKAGE_NODEJS_4_1_X
+	bool "v4.1.2"
+	depends on !BR2_ARM_CPU_ARMV5
+
 endchoice
 
 config BR2_PACKAGE_NODEJS_VERSION_STRING
 	string
 	default "0.10.40"	if BR2_BR2_PACKAGE_NODEJS_0_10_X
 	default "0.12.7"	if BR2_BR2_PACKAGE_NODEJS_0_12_X
+	default "4.1.2"     if BR2_BR2_PACKAGE_NODEJS_4_1_X
 
 menu "Module Selection"
 
package/nodejs/nodejs.hash +3 -0
index 9be2806..9f75471 100644
@@ -3,3 +3,6 @@ sha256	bae79c2fd959aebe1629af36077bebbb760128db753da226d2344cd91499149f  node-v0
 
 # From upstream URL: http://nodejs.org/dist/v0.12.7/SHASUMS256.txt
 sha256	b23d64df051c9c969b0c583f802d5d71de342e53067127a5061415be7e12f39d  node-v0.12.7.tar.gz
+
+# From upstream URL: http://nodejs.org/dist/v4.1.2/SHASUMS256.txt
+sha256	febec3703a3fea9b64c46100a7b6a4408250027aa8259a2a815fd2275d502c49  node-v4.1.2.tar.gz
Signature · 6 lines
2.6.0

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot
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.  |
'------------------------------^-------^------------------^--------------------'