From 9d1d6d0948ca5e16f253441c4d0ad490447f03cd Mon Sep 17 00:00:00 2001 From: "Bradley T. Hughes" Date: Wed, 15 Apr 2015 04:48:14 +0000 Subject: [PATCH 1/1] www/node: upgrade to 0.12.2 Regenerate patches with `make makepatch`, renaming two of the existing patches that didn't follow the naming convention. node.js 0.12.2 includes a FreeBSD-specific crash fix that doesn't compile out of the box, but has been fixed upstream already: https://github.com/joyent/node/commit/f99eaefe75b47d4908c806d5c1b61042ff149b02 --- www/node/Makefile | 4 +- www/node/distinfo | 4 +- ...h-deps_v8_src_base_platform_platform-freebsd.cc | 69 ++++++++++++++++++++++ ...tch-deps_v8_src_base_platform_platform-posix.cc | 11 ++++ .../files/patch-deps_v8_src_platform-freebsd.cc | 69 ---------------------- www/node/files/patch-deps_v8_src_platform-posix.cc | 11 ---- www/node/files/patch-lib_dns.js | 6 +- www/node/files/patch-src_node.cc | 11 ++++ 8 files changed, 98 insertions(+), 87 deletions(-) create mode 100644 www/node/files/patch-deps_v8_src_base_platform_platform-freebsd.cc create mode 100644 www/node/files/patch-deps_v8_src_base_platform_platform-posix.cc delete mode 100644 www/node/files/patch-deps_v8_src_platform-freebsd.cc delete mode 100644 www/node/files/patch-deps_v8_src_platform-posix.cc create mode 100644 www/node/files/patch-src_node.cc diff --git a/www/node/Makefile b/www/node/Makefile index 76da347..123124c 100644 --- a/www/node/Makefile +++ b/www/node/Makefile @@ -2,8 +2,8 @@ # $FreeBSD$ PORTNAME= node -PORTVERSION= 0.12.0 -PORTREVISION= 1 +PORTVERSION= 0.12.2 +PORTREVISION= CATEGORIES= www MASTER_SITES= http://nodejs.org/dist/v${PORTVERSION}/ DISTNAME= ${PORTNAME}-v${PORTVERSION} diff --git a/www/node/distinfo b/www/node/distinfo index ec13392..cd40d4c 100644 --- a/www/node/distinfo +++ b/www/node/distinfo @@ -1,2 +1,2 @@ -SHA256 (node-v0.12.0.tar.gz) = 9700e23af4e9b3643af48cef5f2ad20a1331ff531a12154eef2bfb0bb1682e32 -SIZE (node-v0.12.0.tar.gz) = 19096897 +SHA256 (node-v0.12.2.tar.gz) = ac7e78ade93e633e7ed628532bb8e650caba0c9c33af33581957f3382e2a772d +SIZE (node-v0.12.2.tar.gz) = 19311976 diff --git a/www/node/files/patch-deps_v8_src_base_platform_platform-freebsd.cc b/www/node/files/patch-deps_v8_src_base_platform_platform-freebsd.cc new file mode 100644 index 0000000..632f210 --- /dev/null +++ b/www/node/files/patch-deps_v8_src_base_platform_platform-freebsd.cc @@ -0,0 +1,69 @@ +--- deps/v8/src/base/platform/platform-freebsd.cc.orig 2015-03-31 22:13:01 UTC ++++ deps/v8/src/base/platform/platform-freebsd.cc +@@ -131,23 +131,23 @@ std::vector OS + addr_buffer[0] = '0'; + addr_buffer[1] = 'x'; + addr_buffer[10] = 0; +- int result = read(fd, addr_buffer + 2, 8); +- if (result < 8) break; ++ ssize_t bytes_read = read(fd, addr_buffer + 2, 8); ++ if (bytes_read < 8) break; + unsigned start = StringToLong(addr_buffer); +- result = read(fd, addr_buffer + 2, 1); +- if (result < 1) break; ++ bytes_read = read(fd, addr_buffer + 2, 1); ++ if (bytes_read < 1) break; + if (addr_buffer[2] != '-') break; +- result = read(fd, addr_buffer + 2, 8); +- if (result < 8) break; ++ bytes_read = read(fd, addr_buffer + 2, 8); ++ if (bytes_read < 8) break; + unsigned end = StringToLong(addr_buffer); + char buffer[MAP_LENGTH]; +- int bytes_read = -1; ++ bytes_read = -1; + do { + bytes_read++; + if (bytes_read >= MAP_LENGTH - 1) + break; +- result = read(fd, buffer + bytes_read, 1); +- if (result < 1) break; ++ bytes_read = read(fd, buffer + bytes_read, 1); ++ if (bytes_read < 1) break; + } while (buffer[bytes_read] != '\n'); + buffer[bytes_read] = 0; + // Ignore mappings that are not executable. +@@ -182,13 +182,13 @@ VirtualMemory::VirtualMemory(size_t size + + VirtualMemory::VirtualMemory(size_t size, size_t alignment) + : address_(NULL), size_(0) { +- DCHECK(IsAligned(alignment, static_cast(OS::AllocateAlignment()))); ++ DCHECK((alignment % OS::AllocateAlignment()) == 0); + size_t request_size = RoundUp(size + alignment, + static_cast(OS::AllocateAlignment())); + void* reservation = mmap(OS::GetRandomMmapAddr(), + request_size, + PROT_NONE, +- MAP_PRIVATE | MAP_ANON | MAP_NORESERVE, ++ MAP_PRIVATE | MAP_ANON, + kMmapFd, + kMmapFdOffset); + if (reservation == MAP_FAILED) return; +@@ -260,7 +260,7 @@ void* VirtualMemory::ReserveRegion(size_ + void* result = mmap(OS::GetRandomMmapAddr(), + size, + PROT_NONE, +- MAP_PRIVATE | MAP_ANON | MAP_NORESERVE, ++ MAP_PRIVATE | MAP_ANON, + kMmapFd, + kMmapFdOffset); + +@@ -288,7 +288,7 @@ bool VirtualMemory::UncommitRegion(void* + return mmap(base, + size, + PROT_NONE, +- MAP_PRIVATE | MAP_ANON | MAP_NORESERVE | MAP_FIXED, ++ MAP_PRIVATE | MAP_ANON | MAP_FIXED, + kMmapFd, + kMmapFdOffset) != MAP_FAILED; + } diff --git a/www/node/files/patch-deps_v8_src_base_platform_platform-posix.cc b/www/node/files/patch-deps_v8_src_base_platform_platform-posix.cc new file mode 100644 index 0000000..63d23dd --- /dev/null +++ b/www/node/files/patch-deps_v8_src_base_platform_platform-posix.cc @@ -0,0 +1,11 @@ +--- deps/v8/src/base/platform/platform-posix.cc.orig 2015-03-31 22:13:01 UTC ++++ deps/v8/src/base/platform/platform-posix.cc +@@ -328,7 +328,7 @@ int OS::GetCurrentThreadId() { + #elif V8_OS_ANDROID + return static_cast(gettid()); + #else +- return static_cast(pthread_self()); ++ return static_cast(reinterpret_cast(pthread_self())); + #endif + } + diff --git a/www/node/files/patch-deps_v8_src_platform-freebsd.cc b/www/node/files/patch-deps_v8_src_platform-freebsd.cc deleted file mode 100644 index 63b85b4..0000000 --- a/www/node/files/patch-deps_v8_src_platform-freebsd.cc +++ /dev/null @@ -1,69 +0,0 @@ ---- ./deps/v8/src/base/platform/platform-freebsd.cc.orig 2015-02-07 04:04:23.000000000 +0800 -+++ ./deps/v8/src/base/platform/platform-freebsd.cc 2015-02-10 10:53:45.000000000 +0800 -@@ -131,23 +131,23 @@ - addr_buffer[0] = '0'; - addr_buffer[1] = 'x'; - addr_buffer[10] = 0; -- int result = read(fd, addr_buffer + 2, 8); -- if (result < 8) break; -+ ssize_t bytes_read = read(fd, addr_buffer + 2, 8); -+ if (bytes_read < 8) break; - unsigned start = StringToLong(addr_buffer); -- result = read(fd, addr_buffer + 2, 1); -- if (result < 1) break; -+ bytes_read = read(fd, addr_buffer + 2, 1); -+ if (bytes_read < 1) break; - if (addr_buffer[2] != '-') break; -- result = read(fd, addr_buffer + 2, 8); -- if (result < 8) break; -+ bytes_read = read(fd, addr_buffer + 2, 8); -+ if (bytes_read < 8) break; - unsigned end = StringToLong(addr_buffer); - char buffer[MAP_LENGTH]; -- int bytes_read = -1; -+ bytes_read = -1; - do { - bytes_read++; - if (bytes_read >= MAP_LENGTH - 1) - break; -- result = read(fd, buffer + bytes_read, 1); -- if (result < 1) break; -+ bytes_read = read(fd, buffer + bytes_read, 1); -+ if (bytes_read < 1) break; - } while (buffer[bytes_read] != '\n'); - buffer[bytes_read] = 0; - // Ignore mappings that are not executable. -@@ -182,13 +182,13 @@ - - VirtualMemory::VirtualMemory(size_t size, size_t alignment) - : address_(NULL), size_(0) { -- DCHECK(IsAligned(alignment, static_cast(OS::AllocateAlignment()))); -+ DCHECK((alignment % OS::AllocateAlignment()) == 0); - size_t request_size = RoundUp(size + alignment, - static_cast(OS::AllocateAlignment())); - void* reservation = mmap(OS::GetRandomMmapAddr(), - request_size, - PROT_NONE, -- MAP_PRIVATE | MAP_ANON | MAP_NORESERVE, -+ MAP_PRIVATE | MAP_ANON, - kMmapFd, - kMmapFdOffset); - if (reservation == MAP_FAILED) return; -@@ -260,7 +260,7 @@ - void* result = mmap(OS::GetRandomMmapAddr(), - size, - PROT_NONE, -- MAP_PRIVATE | MAP_ANON | MAP_NORESERVE, -+ MAP_PRIVATE | MAP_ANON, - kMmapFd, - kMmapFdOffset); - -@@ -288,7 +288,7 @@ - return mmap(base, - size, - PROT_NONE, -- MAP_PRIVATE | MAP_ANON | MAP_NORESERVE | MAP_FIXED, -+ MAP_PRIVATE | MAP_ANON | MAP_FIXED, - kMmapFd, - kMmapFdOffset) != MAP_FAILED; - } diff --git a/www/node/files/patch-deps_v8_src_platform-posix.cc b/www/node/files/patch-deps_v8_src_platform-posix.cc deleted file mode 100644 index b503c60..0000000 --- a/www/node/files/patch-deps_v8_src_platform-posix.cc +++ /dev/null @@ -1,11 +0,0 @@ ---- ./deps/v8/src/base/platform/platform-posix.cc.orig 2015-02-07 04:04:23.000000000 +0800 -+++ ./deps/v8/src/base/platform/platform-posix.cc 2015-02-08 01:11:42.000000000 +0800 -@@ -328,7 +328,7 @@ - #elif V8_OS_ANDROID - return static_cast(gettid()); - #else -- return static_cast(pthread_self()); -+ return static_cast(reinterpret_cast(pthread_self())); - #endif - } - diff --git a/www/node/files/patch-lib_dns.js b/www/node/files/patch-lib_dns.js index 48e287a..9530794 100644 --- a/www/node/files/patch-lib_dns.js +++ b/www/node/files/patch-lib_dns.js @@ -1,6 +1,6 @@ ---- lib/dns.js.orig 2015-02-13 23:42:28.000000000 +0800 -+++ lib/dns.js 2015-02-13 23:46:39.000000000 +0800 -@@ -125,6 +125,11 @@ +--- lib/dns.js.orig 2015-03-31 22:13:01 UTC ++++ lib/dns.js +@@ -125,6 +125,11 @@ exports.lookup = function lookup(hostnam hints !== (exports.ADDRCONFIG | exports.V4MAPPED)) { throw new TypeError('invalid argument: hints must use valid flags'); } diff --git a/www/node/files/patch-src_node.cc b/www/node/files/patch-src_node.cc new file mode 100644 index 0000000..4f4e1d2 --- /dev/null +++ b/www/node/files/patch-src_node.cc @@ -0,0 +1,11 @@ +--- src/node.cc.orig 2015-04-15 04:37:29 UTC ++++ src/node.cc +@@ -2790,7 +2790,7 @@ static void SignalExit(int signo) { + struct sigaction sa; + memset(&sa, 0, sizeof(sa)); + sa.sa_handler = SIG_DFL; +- CHECK_EQ(sigaction(signo, &sa, nullptr), 0); ++ CHECK_EQ(sigaction(signo, &sa, NULL), 0); + #endif + raise(signo); + }