From 66a9e9a26aba3b8915228a175e78720acaec4a75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zolt=C3=A1n=20B=C3=B6sz=C3=B6rm=C3=A9nyi?= Date: Thu, 8 Feb 2024 15:15:00 +0100 Subject: [PATCH 1/8] Update nan dependency to 2.18.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This allows building for NodeJS 20 Signed-off-by: Zoltán Böszörményi --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index c15eb4e..f5df2a8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "license": "MIT", "dependencies": { "bindings": "^1.5.0", - "nan": "^2.15.0" + "nan": "^2.18.0" }, "devDependencies": { "buffer-alloc": "1.2.0", @@ -1389,9 +1389,9 @@ "dev": true }, "node_modules/nan": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", - "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==" + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.18.0.tgz", + "integrity": "sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==" }, "node_modules/normalize-package-data": { "version": "2.5.0", @@ -3574,9 +3574,9 @@ "dev": true }, "nan": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", - "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==" + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.18.0.tgz", + "integrity": "sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==" }, "normalize-package-data": { "version": "2.5.0", diff --git a/package.json b/package.json index dfbdeb2..09932f6 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "main": "lib/index.js", "dependencies": { "bindings": "^1.5.0", - "nan": "^2.15.0" + "nan": "^2.18.0" }, "devDependencies": { "buffer-alloc": "1.2.0", From 5d98b8f7b81bc5fff0aa00768a8310c9ce40a761 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zolt=C3=A1n=20B=C3=B6sz=C3=B6rm=C3=A9nyi?= Date: Thu, 8 Feb 2024 15:16:06 +0100 Subject: [PATCH 2/8] Stop supporting older than nanomsg 0.9 with --use_system_libnanomsg=true MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The pkg-config file name in nanomsg 0.9 was changed from libnanomsg.pc to nanomsg.pc. nanomsg 0.9 was released in May 2016. Signed-off-by: Zoltán Böszörményi --- binding.gyp | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/binding.gyp b/binding.gyp index ab513c2..8395d52 100644 --- a/binding.gyp +++ b/binding.gyp @@ -19,22 +19,18 @@ }], ['OS=="linux" and use_system_libnanomsg=="true"', { 'include_dirs+': [ - ' Date: Thu, 8 Feb 2024 15:43:11 +0100 Subject: [PATCH 3/8] Support external libnanomsg better for --use_system_libnanomsg=true MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit nanomsg headers are installed in /usr/include/nanomsg but only ancient versions (0.8 and before) provided -I/usr/include/nanomsg in libnanomsg.pc, if ever. The embedded source is for 1.1.0, the previous commit stopped using libnanomsg.pc. Instead, pass -DSYSTEM_NANOMSG=1 to the compiler when using --use_system_libnanomsg=true and use conditional compiling to include headers from the correct location. Signed-off-by: Zoltán Böszörményi --- binding.gyp | 8 +++++++- src/node_nanomsg.cc | 21 ++++++++++++++++++++- src/poll_ctx.cc | 4 ++++ 3 files changed, 31 insertions(+), 2 deletions(-) diff --git a/binding.gyp b/binding.gyp index 8395d52..7072e3b 100644 --- a/binding.gyp +++ b/binding.gyp @@ -19,11 +19,14 @@ }], ['OS=="linux" and use_system_libnanomsg=="true"', { 'include_dirs+': [ - '(info[0]).FromJust(); int protocol = Nan::To(info[1]).FromJust(); diff --git a/src/poll_ctx.cc b/src/poll_ctx.cc index 79da123..404cf5f 100644 --- a/src/poll_ctx.cc +++ b/src/poll_ctx.cc @@ -1,4 +1,8 @@ +#ifndef SYSTEM_NANOMSG #include "nn.h" +#else +#include "nanomsg/nn.h" +#endif #include "poll_ctx.h" void PollCtx::on_readable(uv_poll_t* req, int /* status */, int events) { From 6bb18aa132fb9a67baca65dd2e1e7d64cb47e20b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zolt=C3=A1n=20B=C3=B6sz=C3=B6rm=C3=A9nyi?= Date: Thu, 15 Feb 2024 16:25:35 +0100 Subject: [PATCH 4/8] 4.2.2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Zoltán Böszörményi --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 09932f6..82d7c69 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nanomsg", - "version": "4.2.1", + "version": "4.2.2", "description": "Node bindings for nanomsg", "main": "lib/index.js", "dependencies": { From f3d89ca4fe2b41a4f6095d05b063268e0b1ef00f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zolt=C3=A1n=20B=C3=B6sz=C3=B6rm=C3=A9nyi?= Date: Thu, 25 Jul 2024 07:01:23 +0200 Subject: [PATCH 5/8] Update nan to 2.20.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This version also supports NodeJS 21 and 22. Signed-off-by: Zoltán Böszörményi --- package-lock.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index f5df2a8..857bd48 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "nanomsg", - "version": "4.2.1", + "version": "4.2.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "nanomsg", - "version": "4.2.1", + "version": "4.2.2", "license": "MIT", "dependencies": { "bindings": "^1.5.0", @@ -1389,9 +1389,9 @@ "dev": true }, "node_modules/nan": { - "version": "2.18.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.18.0.tgz", - "integrity": "sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==" + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.20.0.tgz", + "integrity": "sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw==" }, "node_modules/normalize-package-data": { "version": "2.5.0", @@ -3574,9 +3574,9 @@ "dev": true }, "nan": { - "version": "2.18.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.18.0.tgz", - "integrity": "sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==" + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.20.0.tgz", + "integrity": "sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw==" }, "normalize-package-data": { "version": "2.5.0", From 1c12516e35cb1fe5955e8f038e949274aca64b0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zolt=C3=A1n=20B=C3=B6sz=C3=B6rm=C3=A9nyi?= Date: Thu, 25 Jul 2024 08:32:03 +0200 Subject: [PATCH 6/8] 4.2.3 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Zoltán Böszörményi --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 857bd48..f800461 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "nanomsg", - "version": "4.2.2", + "version": "4.2.3", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "nanomsg", - "version": "4.2.2", + "version": "4.2.3", "license": "MIT", "dependencies": { "bindings": "^1.5.0", diff --git a/package.json b/package.json index 82d7c69..810f6fc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nanomsg", - "version": "4.2.2", + "version": "4.2.3", "description": "Node bindings for nanomsg", "main": "lib/index.js", "dependencies": { From e0e433a53b32b9f4b0b60eead98e67c009d3e51e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zolt=C3=A1n=20B=C3=B6sz=C3=B6rm=C3=A9nyi?= Date: Thu, 25 Jul 2024 14:51:25 +0200 Subject: [PATCH 7/8] Restore compatibility with old v8 versions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The solution was copied from "nan". Signed-off-by: Zoltán Böszörményi --- src/poll_ctx.cc | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/poll_ctx.cc b/src/poll_ctx.cc index 404cf5f..89f864a 100644 --- a/src/poll_ctx.cc +++ b/src/poll_ctx.cc @@ -41,8 +41,12 @@ v8::Local PollCtx::WrapPointer (void* ptr, size_t length) { PollCtx* PollCtx::UnwrapPointer (v8::Local buffer) { v8::Local ui = buffer.As(); v8::Local abuf = ui->Buffer(); - std::shared_ptr ab_c = abuf->GetBackingStore(); + void *data = NULL; +#if (V8_MAJOR_VERSION >= 8) + data = static_cast(abuf->GetBackingStore()->Data()); abuf->Detach(); - return reinterpret_cast(node::Buffer::HasInstance(buffer) ? - static_cast(ab_c->Data()) : NULL); +#else + data = static_cast(abuf->GetContents().Data()); +#endif + return reinterpret_cast(node::Buffer::HasInstance(buffer) ? data : NULL); } From 0c88bc8b081faf8e31fcec03a0a5886cc292705d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zolt=C3=A1n=20B=C3=B6sz=C3=B6rm=C3=A9nyi?= Date: Thu, 25 Jul 2024 14:52:14 +0200 Subject: [PATCH 8/8] 4.2.4 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Zoltán Böszörményi --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index f800461..13377d2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "nanomsg", - "version": "4.2.3", + "version": "4.2.4", "lockfileVersion": 2, "requires": true, "packages": { diff --git a/package.json b/package.json index 810f6fc..f741232 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nanomsg", - "version": "4.2.3", + "version": "4.2.4", "description": "Node bindings for nanomsg", "main": "lib/index.js", "dependencies": {