From 93798a9a798354712a482ab1e4d63a856e23c528 Mon Sep 17 00:00:00 2001 From: "T.C. Hollingsworth" Date: Sun, 4 Aug 2013 20:32:28 -0700 Subject: [PATCH 01/13] use unversioned docdir for -docs subpackage https://fedoraproject.org/wiki/Changes/UnversionedDocdirs - use main package's docdir instead of a seperate -docs directory DO NOT BACKPORT THIS COMMIT TO PREVIOUS FEDORA RELEASES --- nodejs.spec | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/nodejs.spec b/nodejs.spec index 412eb79..cf66e18 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -1,6 +1,6 @@ Name: nodejs Version: 0.10.14 -Release: 1%{?dist} +Release: 2%{?dist} Summary: JavaScript runtime License: MIT and ASL 2.0 and ISC and BSD Group: Development/Languages @@ -132,10 +132,10 @@ EOF chmod 0755 %{buildroot}%{_rpmconfigdir}/nodejs_native.req #install documentation -mkdir -p %{buildroot}%{_defaultdocdir}/%{name}-docs-%{version}/html -cp -pr doc/* %{buildroot}%{_defaultdocdir}/%{name}-docs-%{version}/html -rm -f %{_defaultdocdir}/%{name}-docs-%{version}/html/nodejs.1 -cp -p LICENSE %{buildroot}%{_defaultdocdir}/%{name}-docs-%{version}/ +mkdir -p %{buildroot}%{_pkgdocdir}/html +cp -pr doc/* %{buildroot}%{_pkgdocdir}/html +rm -f %{buildroot}%{_pkgdocdir}/html/nodejs.1 +cp -p LICENSE %{buildroot}%{_pkgdocdir}/html #install development headers #FIXME: we probably don't really need *.h but node-gyp downloads the whole @@ -162,9 +162,16 @@ cp -p common.gypi %{buildroot}%{_datadir}/node %{_datadir}/node/common.gypi %files docs -%{_defaultdocdir}/%{name}-docs-%{version} +%dir %{_pkgdocdir} +%{_pkgdocdir}/html +%exclude %{_pkgdocdir}/(ChangeLog|LICENSE|README.md|AUTHORS) %changelog +* Mon Aug 05 2013 T.C. Hollingsworth - 0.10.14-2 +- use unversioned docdir for -docs subpackage + https://fedoraproject.org/wiki/Changes/UnversionedDocdirs +- use main package's docdir instead of a seperate -docs directory + * Thu Jul 25 2013 T.C. Hollingsworth - 0.10.14-1 - new upstream release 0.10.14 http://blog.nodejs.org/2013/07/25/node-v0-10-14-stable/ From 2dfcabecae92725903c29f08f2f3c1a6bbafb154 Mon Sep 17 00:00:00 2001 From: "T.C. Hollingsworth" Date: Tue, 27 Aug 2013 01:57:07 -0700 Subject: [PATCH 02/13] fix duplicated/conflicting documentation files (RHBZ#1001253) --- nodejs.spec | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/nodejs.spec b/nodejs.spec index fe1dec1..908b850 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -137,6 +137,7 @@ mkdir -p %{buildroot}%{_pkgdocdir}/html cp -pr doc/* %{buildroot}%{_pkgdocdir}/html rm -f %{buildroot}%{_pkgdocdir}/html/nodejs.1 cp -p LICENSE %{buildroot}%{_pkgdocdir}/html +cp -p ChangeLog LICENSE README.md AUTHORS %{buildroot}%{_pkgdocdir} #install development headers #FIXME: we probably don't really need *.h but node-gyp downloads the whole @@ -149,13 +150,17 @@ mkdir -p %{buildroot}%{_datadir}/node cp -p common.gypi %{buildroot}%{_datadir}/node %files -%doc ChangeLog LICENSE README.md AUTHORS %{_bindir}/node %{_mandir}/man1/node.* %dir %{_prefix}/lib/node_modules %dir %{_datadir}/node %{_rpmconfigdir}/fileattrs/nodejs_native.attr %{_rpmconfigdir}/nodejs_native.req +%dir %{_pkgdocdir} +%{_pkgdocdir}/ChangeLog +%{_pkgdocdir}/LICENSE +%{_pkgdocdir}/README.md +%{_pkgdocdir}/AUTHORS %files devel %{_bindir}/node_g @@ -165,12 +170,12 @@ cp -p common.gypi %{buildroot}%{_datadir}/node %files docs %dir %{_pkgdocdir} %{_pkgdocdir}/html -%exclude %{_pkgdocdir}/(ChangeLog|LICENSE|README.md|AUTHORS) %changelog * Tue Aug 27 2013 T.C. Hollingsworth - 0.10.17-1 - new upstream release 0.10.17 http://blog.nodejs.org/2013/08/21/node-v0-10-17-stable/ +- fix duplicated/conflicting documentation files (RHBZ#1001253) * Sat Aug 17 2013 T.C. Hollingsworth - 0.10.16-1 - new upstream release 0.10.16 From 337d16703bd08cc8994a741025b04c35fb5898b3 Mon Sep 17 00:00:00 2001 From: "T.C. Hollingsworth" Date: Thu, 13 Feb 2014 17:48:49 -0700 Subject: [PATCH 03/13] rebuild for icu-53 (via v8) --- nodejs.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nodejs.spec b/nodejs.spec index 042de90..5ee32f3 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -1,6 +1,6 @@ Name: nodejs Version: 0.10.25 -Release: 1%{?dist} +Release: 2%{?dist} Summary: JavaScript runtime License: MIT and ASL 2.0 and ISC and BSD Group: Development/Languages @@ -166,6 +166,9 @@ cp -p common.gypi %{buildroot}%{_datadir}/node %{_pkgdocdir}/html %changelog +* Fri Feb 14 2014 T.C. Hollingsworth - 0.10.25-2 +- rebuild for icu-53 (via v8) + * Mon Jan 27 2014 T.C. Hollingsworth - 0.10.25-1 - new upstream release 0.10.25 http://blog.nodejs.org/2014/01/23/node-v0-10-25-stable/ From 30de266c2170bbbe8dcff751370987835163e70f Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Sat, 7 Jun 2014 08:00:42 -0500 Subject: [PATCH 04/13] - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild --- nodejs.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nodejs.spec b/nodejs.spec index 019bc72..b041cda 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -1,6 +1,6 @@ Name: nodejs Version: 0.10.28 -Release: 2%{?dist} +Release: 3%{?dist} Summary: JavaScript runtime License: MIT and ASL 2.0 and ISC and BSD Group: Development/Languages @@ -179,6 +179,9 @@ cp -p common.gypi %{buildroot}%{_datadir}/node %{_pkgdocdir}/html %changelog +* Sat Jun 07 2014 Fedora Release Engineering - 0.10.28-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + * Sat May 03 2014 T.C. Hollingsworth - 0.10.28-2 - use the system certificate store instead of the bundled copy both are based on the Mozilla CA list, so the only effect this should have is From b820453c7fda055f00ece242f35952eac9f24d3b Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Sun, 17 Aug 2014 12:01:52 +0000 Subject: [PATCH 05/13] - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild --- nodejs.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nodejs.spec b/nodejs.spec index 63e4e94..4bc9fd7 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -1,6 +1,6 @@ Name: nodejs Version: 0.10.30 -Release: 1%{?dist} +Release: 2%{?dist} Summary: JavaScript runtime License: MIT and ASL 2.0 and ISC and BSD Group: Development/Languages @@ -190,6 +190,9 @@ cp -p common.gypi %{buildroot}%{_datadir}/node %{_pkgdocdir}/html %changelog +* Sun Aug 17 2014 Fedora Release Engineering - 0.10.30-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + * Fri Aug 01 2014 T.C. Hollingsworth - 0.10.30-1 - new upstream release 0.10.30 http://blog.nodejs.org/2014/07/31/node-v0-10-30-stable/ From de20ac7b303cf520b1c19b03c1d35de97343009d Mon Sep 17 00:00:00 2001 From: "T.C. Hollingsworth" Date: Thu, 19 Feb 2015 00:59:58 -0700 Subject: [PATCH 06/13] new upstream release 0.10.36 http://blog.nodejs.org/2015/01/26/node-v0-10-36-stable/ - Please note that several upstream releases were skipped due to regressions reported in the upstream bug tracker. Please also review the 0.10.34 and 0.10.35 changelogs available at the above URL for a list of all changes. --- .gitignore | 1 + nodejs.spec | 9 ++++++++- sources | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index d315600..27559e5 100644 --- a/.gitignore +++ b/.gitignore @@ -31,3 +31,4 @@ /node-v0.10.30-stripped.tar.gz /node-v0.10.32-stripped.tar.gz /node-v0.10.33-stripped.tar.gz +/node-v0.10.36-stripped.tar.gz diff --git a/nodejs.spec b/nodejs.spec index bc49545..8568295 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -1,5 +1,5 @@ Name: nodejs -Version: 0.10.33 +Version: 0.10.36 Release: 1%{?dist} Summary: JavaScript runtime License: MIT and ASL 2.0 and ISC and BSD @@ -185,6 +185,13 @@ cp -p common.gypi %{buildroot}%{_datadir}/node %{_pkgdocdir}/html %changelog +* Thu Feb 19 2015 T.C. Hollingsworth - 0.10.36-1 +- new upstream release 0.10.36 + http://blog.nodejs.org/2015/01/26/node-v0-10-36-stable/ +- Please note that several upstream releases were skipped due to regressions + reported in the upstream bug tracker. Please also review the 0.10.34 and + 0.10.35 changelogs available at the above URL for a list of all changes. + * Wed Nov 19 2014 T.C. Hollingsworth - 0.10.33-1 - new upstream release 0.10.33 http://blog.nodejs.org/2014/10/23/node-v0-10-33-stable/ diff --git a/sources b/sources index e2aeefa..e233927 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -f483a694949095884cf9159f2983c1e6 node-v0.10.33-stripped.tar.gz +f1a50d8a1f6e09659b5c2aad00867ae2 node-v0.10.36-stripped.tar.gz From e258ec634341042fa70731d07ccb4f3a9ddbeb31 Mon Sep 17 00:00:00 2001 From: "T.C. Hollingsworth" Date: Thu, 19 Feb 2015 13:21:24 -0700 Subject: [PATCH 07/13] build against compat-libuv010 --- nodejs.spec | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/nodejs.spec b/nodejs.spec index a144a7f..c81cfd6 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -1,6 +1,6 @@ Name: nodejs Version: 0.10.36 -Release: 1%{?dist} +Release: 2%{?dist} Summary: JavaScript runtime License: MIT and ASL 2.0 and ISC and BSD Group: Development/Languages @@ -43,7 +43,7 @@ Patch4: nodejs-revert-utf8-node.patch BuildRequires: v8-devel >= %{v8_ge} BuildRequires: http-parser-devel >= 2.0 -BuildRequires: libuv-devel +BuildRequires: compat-libuv010-devel BuildRequires: c-ares-devel BuildRequires: zlib-devel # Node.js requires some features from openssl 1.0.1 for SPDY support @@ -132,6 +132,8 @@ export CXXFLAGS='%{optflags} -g -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64' --shared-zlib \ --shared-cares \ --shared-libuv \ + --shared-libuv-libname=:libuv.so.0.10 \ + --shared-libuv-includes=%{_includedir}/compat-libuv010 \ --shared-http-parser \ --without-npm \ --without-dtrace @@ -200,6 +202,9 @@ cp -p common.gypi %{buildroot}%{_datadir}/node %{_pkgdocdir}/html %changelog +* Thu Feb 19 2015 T.C. Hollingsworth - 0.10.36-2 +- build against compat-libuv010 + * Thu Feb 19 2015 T.C. Hollingsworth - 0.10.36-1 - new upstream release 0.10.36 http://blog.nodejs.org/2015/01/26/node-v0-10-36-stable/ From 09e94a2e546ecc827ac6e6d3792b29a425759470 Mon Sep 17 00:00:00 2001 From: "T.C. Hollingsworth" Date: Tue, 24 Feb 2015 16:20:59 -0700 Subject: [PATCH 08/13] bump v8 requires (RHBZ#1195457) --- nodejs.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/nodejs.spec b/nodejs.spec index 8568295..0b46420 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -1,6 +1,6 @@ Name: nodejs Version: 0.10.36 -Release: 1%{?dist} +Release: 3%{?dist} Summary: JavaScript runtime License: MIT and ASL 2.0 and ISC and BSD Group: Development/Languages @@ -32,7 +32,7 @@ Patch4: nodejs-revert-utf8-node.patch # V8 presently breaks ABI at least every x.y release while never bumping SONAME, # so we need to be more explicit until spot fixes that -%global v8_ge 1:3.14.5.7 +%global v8_ge 1:3.14.5.10-17 %global v8_lt 1:3.15 %global v8_abi 3.14 @@ -185,6 +185,9 @@ cp -p common.gypi %{buildroot}%{_datadir}/node %{_pkgdocdir}/html %changelog +* Tue Feb 24 2015 T.C. Hollingsworth - 0.10.36-3 +- bump v8 requires (RHBZ#1195457) + * Thu Feb 19 2015 T.C. Hollingsworth - 0.10.36-1 - new upstream release 0.10.36 http://blog.nodejs.org/2015/01/26/node-v0-10-36-stable/ From c156efd63d40dd5b4d5f48bf229a2d4d257fc257 Mon Sep 17 00:00:00 2001 From: "T.C. Hollingsworth" Date: Wed, 29 Apr 2015 14:33:16 -0700 Subject: [PATCH 09/13] fix incorrect Requires on libuv (RHBZ#1215719) --- nodejs.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/nodejs.spec b/nodejs.spec index 1c2b463..c602511 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -1,6 +1,6 @@ Name: nodejs Version: 0.10.36 -Release: 3%{?dist} +Release: 4%{?dist} Summary: JavaScript runtime License: MIT and ASL 2.0 and ISC and BSD Group: Development/Languages @@ -90,7 +90,7 @@ real-time applications that run across distributed devices. Summary: JavaScript runtime - development headers Group: Development/Languages Requires: %{name}%{?_isa} == %{version}-%{release} -Requires: libuv-devel%{?_isa} http-parser-devel%{?_isa} v8-devel%{?_isa} +Requires: compat-libuv010-devel%{?_isa} http-parser-devel%{?_isa} v8-devel%{?_isa} Requires: openssl-devel%{?_isa} c-ares-devel%{?_isa} zlib-devel%{?_isa} Requires: nodejs-packaging @@ -202,6 +202,9 @@ cp -p common.gypi %{buildroot}%{_datadir}/node %{_pkgdocdir}/html %changelog +* Wed Apr 29 2015 T.C. Hollingsworth - 0.10.36-4 +- fix incorrect Requires on libuv (RHBZ#1215719) + * Tue Feb 24 2015 T.C. Hollingsworth - 0.10.36-3 - bump v8 requires (RHBZ#1195457) From 20320bc6732c7de1f770e55674fe72efb3ed5a8f Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Wed, 17 Jun 2015 21:53:49 +0000 Subject: [PATCH 10/13] - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild --- nodejs.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nodejs.spec b/nodejs.spec index c602511..15c81db 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -1,6 +1,6 @@ Name: nodejs Version: 0.10.36 -Release: 4%{?dist} +Release: 5%{?dist} Summary: JavaScript runtime License: MIT and ASL 2.0 and ISC and BSD Group: Development/Languages @@ -202,6 +202,9 @@ cp -p common.gypi %{buildroot}%{_datadir}/node %{_pkgdocdir}/html %changelog +* Wed Jun 17 2015 Fedora Release Engineering - 0.10.36-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + * Wed Apr 29 2015 T.C. Hollingsworth - 0.10.36-4 - fix incorrect Requires on libuv (RHBZ#1215719) From aab8ed173f88c964cba8a596b4e0bf2bfdb2a89e Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Wed, 10 Feb 2016 10:51:40 -0500 Subject: [PATCH 11/13] Update to Node.js 0.10.42 - https://github.com/nodejs/node/blob/v0.10.42/ChangeLog - Bundle v8, c-ares and http-parser with Node.js - Drop patches that revert v8 UTF8 change - Resolves: RHBZ#1306203 - Resolves: RHBZ#1306200 - Resolves: RHBZ#1306207 --- .gitignore | 1 + nodejs-revert-utf8-node.patch | 689 ---------------------------------- nodejs-revert-utf8-v8.patch | 91 ----- nodejs.spec | 110 ++++-- sources | 2 +- 5 files changed, 81 insertions(+), 812 deletions(-) delete mode 100644 nodejs-revert-utf8-node.patch delete mode 100644 nodejs-revert-utf8-v8.patch diff --git a/.gitignore b/.gitignore index 27559e5..0e8b6d2 100644 --- a/.gitignore +++ b/.gitignore @@ -32,3 +32,4 @@ /node-v0.10.32-stripped.tar.gz /node-v0.10.33-stripped.tar.gz /node-v0.10.36-stripped.tar.gz +/node-v0.10.42-stripped.tar.gz diff --git a/nodejs-revert-utf8-node.patch b/nodejs-revert-utf8-node.patch deleted file mode 100644 index a5a3d59..0000000 --- a/nodejs-revert-utf8-node.patch +++ /dev/null @@ -1,689 +0,0 @@ -From a9e60792a9c4044e29ec7bbb88419d9283044b86 Mon Sep 17 00:00:00 2001 -From: "T.C. Hollingsworth" -Date: Wed, 18 Jun 2014 23:19:19 -0700 -Subject: [PATCH] Revert "src: replace usage of String::Utf8Value" - -This reverts commit 535c7777ac674ba86cf93c44824e07b0e23ea8c4. ---- - src/cares_wrap.cc | 8 ++--- - src/fs_event_wrap.cc | 3 +- - src/node.cc | 42 +++++++++++++------------- - src/node_crypto.cc | 31 ++++++++++--------- - src/node_dtrace.cc | 6 ++-- - src/node_file.cc | 37 +++++++++++------------ - src/node_stat_watcher.cc | 3 +- - src/process_wrap.cc | 9 +++--- - src/udp_wrap.cc | 9 +++--- - src/util.h | 78 ------------------------------------------------ - 10 files changed, 68 insertions(+), 158 deletions(-) - delete mode 100644 src/util.h - -diff --git a/src/cares_wrap.cc b/src/cares_wrap.cc -index 321e144..b7ba828 100644 ---- a/src/cares_wrap.cc -+++ b/src/cares_wrap.cc -@@ -741,7 +739,7 @@ static Handle Query(const Arguments& args) { - // object reference, causing wrap->GetObject() to return undefined. - Local object = Local::New(wrap->GetObject()); - -- node::Utf8Value name(args[0]); -+ String::Utf8Value name(args[0]); - - int r = wrap->Send(*name); - if (r) { -@@ -770,7 +768,7 @@ static Handle QueryWithFamily(const Arguments& args) { - // object reference, causing wrap->GetObject() to return undefined. - Local object = Local::New(wrap->GetObject()); - -- node::Utf8Value name(args[0]); -+ String::Utf8Value name(args[0]); - int family = args[1]->Int32Value(); - - int r = wrap->Send(*name, family); -@@ -900,7 +898,7 @@ static Handle IsIP(const Arguments& args) { - static Handle GetAddrInfo(const Arguments& args) { - HandleScope scope; - -- node::Utf8Value hostname(args[0]); -+ String::Utf8Value hostname(args[0]); - - int fam = AF_UNSPEC; - if (args[1]->IsInt32()) { -diff --git a/src/fs_event_wrap.cc b/src/fs_event_wrap.cc -index fc54283..7e3eb8c 100644 ---- a/src/fs_event_wrap.cc -+++ b/src/fs_event_wrap.cc -@@ -21,7 +21,6 @@ - - #include "node.h" - #include "handle_wrap.h" --#include "util.h" - - #include - -@@ -98,7 +97,7 @@ Handle FSEventWrap::Start(const Arguments& args) { - return ThrowException(Exception::TypeError(String::New("Bad arguments"))); - } - -- node::Utf8Value path(args[0]); -+ String::Utf8Value path(args[0]); - - int r = uv_fs_event_init(uv_default_loop(), &wrap->handle_, *path, OnEvent, 0); - if (r == 0) { -diff --git a/src/node.cc b/src/node.cc -index e9696cd..8257604 100644 ---- a/src/node.cc -+++ b/src/node.cc -@@ -1102,7 +1100,7 @@ enum encoding ParseEncoding(Handle encoding_v, enum encoding _default) { - - if (!encoding_v->IsString()) return _default; - -- node::Utf8Value encoding(encoding_v); -+ String::Utf8Value encoding(encoding_v); - - if (strcasecmp(*encoding, "utf8") == 0) { - return UTF8; -@@ -1202,12 +1200,12 @@ void DisplayExceptionLine (TryCatch &try_catch) { - - if (!message.IsEmpty()) { - // Print (filename):(line number): (message). -- node::Utf8Value filename(message->GetScriptResourceName()); -+ String::Utf8Value filename(message->GetScriptResourceName()); - const char* filename_string = *filename; - int linenum = message->GetLineNumber(); - fprintf(stderr, "%s:%i\n", filename_string, linenum); - // Print line of source code. -- node::Utf8Value sourceline(message->GetSourceLine()); -+ String::Utf8Value sourceline(message->GetSourceLine()); - const char* sourceline_string = *sourceline; - - // Because of how node modules work, all scripts are wrapped with a -@@ -1254,7 +1252,7 @@ static void ReportException(TryCatch &try_catch, bool show_line) { - - if (show_line) DisplayExceptionLine(try_catch); - -- node::Utf8Value trace(try_catch.StackTrace()); -+ String::Utf8Value trace(try_catch.StackTrace()); - - // range errors have a trace member set to undefined - if (trace.length() > 0 && !try_catch.StackTrace()->IsUndefined()) { -@@ -1269,11 +1267,11 @@ static void ReportException(TryCatch &try_catch, bool show_line) { - !(er->ToObject()->Get(String::New("name"))->IsUndefined()); - - if (isErrorObject) { -- node::Utf8Value name(er->ToObject()->Get(String::New("name"))); -+ String::Utf8Value name(er->ToObject()->Get(String::New("name"))); - fprintf(stderr, "%s: ", *name); - } - -- node::Utf8Value msg(!isErrorObject ? er -+ String::Utf8Value msg(!isErrorObject ? er - : er->ToObject()->Get(String::New("message"))); - fprintf(stderr, "%s\n", *msg); - } -@@ -1355,7 +1353,7 @@ static Handle Chdir(const Arguments& args) { - return ThrowException(Exception::Error(String::New("Bad argument."))); - } - -- node::Utf8Value path(args[0]); -+ String::Utf8Value path(args[0]); - - uv_err_t r = uv_chdir(*path); - -@@ -1406,7 +1404,7 @@ static Handle Umask(const Arguments& args) { - oct = args[0]->Uint32Value(); - } else { - oct = 0; -- node::Utf8Value str(args[0]); -+ String::Utf8Value str(args[0]); - - // Parse the octal string. - for (int i = 0; i < str.length(); i++) { -@@ -1512,7 +1510,7 @@ static uid_t uid_by_name(Handle value) { - if (value->IsUint32()) { - return static_cast(value->Uint32Value()); - } else { -- node::Utf8Value name(value); -+ String::Utf8Value name(value); - return uid_by_name(*name); - } - } -@@ -1522,7 +1520,7 @@ static gid_t gid_by_name(Handle value) { - if (value->IsUint32()) { - return static_cast(value->Uint32Value()); - } else { -- node::Utf8Value name(value); -+ String::Utf8Value name(value); - return gid_by_name(*name); - } - } -@@ -1665,7 +1663,7 @@ static Handle InitGroups(const Arguments& args) { - return ThrowTypeError("argument 2 must be a number or a string"); - } - -- node::Utf8Value arg0(args[0]); -+ String::Utf8Value arg0(args[0]); - gid_t extra_group; - bool must_free; - char* user; -@@ -1826,7 +1824,7 @@ Handle DLOpen(const v8::Arguments& args) { - } - - Local module = args[0]->ToObject(); // Cast -- node::Utf8Value filename(args[1]); // Cast -+ String::Utf8Value filename(args[1]); // Cast - - if (exports_symbol.IsEmpty()) { - exports_symbol = NODE_PSYMBOL("exports"); -@@ -1842,7 +1840,7 @@ Handle DLOpen(const v8::Arguments& args) { - return ThrowException(Exception::Error(errmsg)); - } - -- node::Utf8Value path(args[1]); -+ String::Utf8Value path(args[1]); - base = *path; - - /* Find the shared library filename within the full path. */ -@@ -1961,7 +1959,7 @@ static Handle Binding(const Arguments& args) { - HandleScope scope; - - Local module = args[0]->ToString(); -- node::Utf8Value module_v(module); -+ String::Utf8Value module_v(module); - node_module_struct* modp; - - if (binding_cache.IsEmpty()) { -@@ -2020,7 +2018,7 @@ static void ProcessTitleSetter(Local property, - Local value, - const AccessorInfo& info) { - HandleScope scope; -- node::Utf8Value title(value); -+ String::Utf8Value title(value); - // TODO: protect with a lock - uv_set_process_title(*title); - } -@@ -2030,7 +2028,7 @@ static Handle EnvGetter(Local property, - const AccessorInfo& info) { - HandleScope scope; - #ifdef __POSIX__ -- node::Utf8Value key(property); -+ String::Utf8Value key(property); - const char* val = getenv(*key); - if (val) { - return scope.Close(String::New(val)); -@@ -2059,8 +2057,8 @@ static Handle EnvSetter(Local property, - const AccessorInfo& info) { - HandleScope scope; - #ifdef __POSIX__ -- node::Utf8Value key(property); -- node::Utf8Value val(value); -+ String::Utf8Value key(property); -+ String::Utf8Value val(value); - setenv(*key, *val, 1); - #else // _WIN32 - String::Value key(property); -@@ -2080,7 +2078,7 @@ static Handle EnvQuery(Local property, - const AccessorInfo& info) { - HandleScope scope; - #ifdef __POSIX__ -- node::Utf8Value key(property); -+ String::Utf8Value key(property); - if (getenv(*key)) { - return scope.Close(Integer::New(0)); - } -@@ -2108,7 +2106,7 @@ static Handle EnvDeleter(Local property, - const AccessorInfo& info) { - HandleScope scope; - #ifdef __POSIX__ -- node::Utf8Value key(property); -+ String::Utf8Value key(property); - if (!getenv(*key)) return False(); - unsetenv(*key); // can't check return value, it's void on some platforms - return True(); -diff --git a/src/node_crypto.cc b/src/node_crypto.cc -index 46faba2..0ae1f8a 100644 ---- a/src/node_crypto.cc -+++ b/src/node_crypto.cc -@@ -242,7 +241,7 @@ Handle SecureContext::Init(const Arguments& args) { - OPENSSL_CONST SSL_METHOD *method = SSLv23_method(); - - if (args.Length() == 1 && args[0]->IsString()) { -- node::Utf8Value sslmethod(args[0]); -+ String::Utf8Value sslmethod(args[0]); - - if (strcmp(*sslmethod, "SSLv2_method") == 0) { - #ifndef OPENSSL_NO_SSL2 -@@ -362,7 +361,7 @@ static BIO* LoadBIO (Handle v) { - int r = -1; - - if (v->IsString()) { -- node::Utf8Value s(v); -+ String::Utf8Value s(v); - r = BIO_write(bio, *s, s.length()); - } else if (Buffer::HasInstance(v)) { - char* buffer_data = Buffer::Data(v); -@@ -414,7 +413,7 @@ Handle SecureContext::SetKey(const Arguments& args) { - BIO *bio = LoadBIO(args[0]); - if (!bio) return False(); - -- node::Utf8Value passphrase(args[1]); -+ String::Utf8Value passphrase(args[1]); - - EVP_PKEY* key = PEM_read_bio_PrivateKey(bio, NULL, NULL, - len == 1 ? NULL : *passphrase); -@@ -644,7 +643,7 @@ Handle SecureContext::SetCiphers(const Arguments& args) { - return ThrowException(Exception::TypeError(String::New("Bad parameter"))); - } - -- node::Utf8Value ciphers(args[0]); -+ String::Utf8Value ciphers(args[0]); - SSL_CTX_set_cipher_list(sc->ctx_, *ciphers); - - return True(); -@@ -673,7 +672,7 @@ Handle SecureContext::SetSessionIdContext(const Arguments& args) { - return ThrowException(Exception::TypeError(String::New("Bad parameter"))); - } - -- node::Utf8Value sessionIdContext(args[0]); -+ String::Utf8Value sessionIdContext(args[0]); - const unsigned char* sid_ctx = (const unsigned char*) *sessionIdContext; - unsigned int sid_ctx_len = sessionIdContext.length(); - -@@ -1281,7 +1280,7 @@ Handle Connection::New(const Arguments& args) { - if (is_server) { - SSL_CTX_set_tlsext_servername_callback(sc->ctx_, SelectSNIContextCallback_); - } else { -- node::Utf8Value servername(args[2]); -+ String::Utf8Value servername(args[2]); - SSL_set_tlsext_host_name(p->ssl_, *servername); - } - #endif -@@ -2234,7 +2233,7 @@ class Cipher : public ObjectWrap { - ssize_t key_written = DecodeWrite(key_buf, key_buf_len, args[1], BINARY); - assert(key_written == key_buf_len); - -- node::Utf8Value cipherType(args[0]); -+ String::Utf8Value cipherType(args[0]); - - bool r = cipher->CipherInit(*cipherType, key_buf, key_buf_len); - -@@ -2285,7 +2284,7 @@ class Cipher : public ObjectWrap { - ssize_t iv_written = DecodeWrite(iv_buf, iv_len, args[2], BINARY); - assert(iv_written == iv_len); - -- node::Utf8Value cipherType(args[0]); -+ String::Utf8Value cipherType(args[0]); - - bool r = cipher->CipherInitIv(*cipherType, key_buf,key_len,iv_buf,iv_len); - -@@ -2544,7 +2543,7 @@ class Decipher : public ObjectWrap { - ssize_t key_written = DecodeWrite(key_buf, key_len, args[1], BINARY); - assert(key_written == key_len); - -- node::Utf8Value cipherType(args[0]); -+ String::Utf8Value cipherType(args[0]); - - bool r = cipher->DecipherInit(*cipherType, key_buf,key_len); - -@@ -2595,7 +2594,7 @@ class Decipher : public ObjectWrap { - ssize_t iv_written = DecodeWrite(iv_buf, iv_len, args[2], BINARY); - assert(iv_written == iv_len); - -- node::Utf8Value cipherType(args[0]); -+ String::Utf8Value cipherType(args[0]); - - bool r = cipher->DecipherInitIv(*cipherType, key_buf,key_len,iv_buf,iv_len); - -@@ -2776,7 +2775,7 @@ class Hmac : public ObjectWrap { - return ThrowException(exception); - } - -- node::Utf8Value hashType(args[0]); -+ String::Utf8Value hashType(args[0]); - - bool r; - -@@ -2921,7 +2920,7 @@ class Hash : public ObjectWrap { - "Must give hashtype string as argument"))); - } - -- node::Utf8Value hashType(args[0]); -+ String::Utf8Value hashType(args[0]); - - Hash *hash = new Hash(); - if (!hash->HashInit(*hashType)) { -@@ -3095,7 +3094,7 @@ class Sign : public ObjectWrap { - "Must give signtype string as argument"))); - } - -- node::Utf8Value signType(args[0]); -+ String::Utf8Value signType(args[0]); - - bool r = sign->SignInit(*signType); - -@@ -3328,7 +3327,7 @@ class Verify : public ObjectWrap { - "Must give verifytype string as argument"))); - } - -- node::Utf8Value verifyType(args[0]); -+ String::Utf8Value verifyType(args[0]); - - bool r = verify->VerifyInit(*verifyType); - -@@ -3511,7 +3510,7 @@ class DiffieHellman : public ObjectWrap { - String::New("No group name given"))); - } - -- node::Utf8Value group_name(args[0]); -+ String::Utf8Value group_name(args[0]); - - modp_group* it = modp_groups; - -diff --git a/src/node_dtrace.cc b/src/node_dtrace.cc -index 0b2d0f4..4b851e3 100644 ---- a/src/node_dtrace.cc -+++ b/src/node_dtrace.cc -@@ -68,7 +66,7 @@ using namespace v8; - return (ThrowException(Exception::Error(String::New("expected " \ - "object for " #obj " to contain string member " #member)))); \ - } \ -- node::Utf8Value _##member(obj->Get(String::New(#member))); \ -+ String::Utf8Value _##member(obj->Get(String::New(#member))); \ - if ((*(const char **)valp = *_##member) == NULL) \ - *(const char **)valp = ""; - -@@ -243,7 +241,7 @@ Handle DTRACE_HTTP_SERVER_REQUEST(const Arguments& args) { - "object for request to contain string member headers")))); - - Local strfwdfor = headers->Get(String::New("x-forwarded-for")); -- node::Utf8Value fwdfor(strfwdfor); -+ String::Utf8Value fwdfor(strfwdfor); - - if (!strfwdfor->IsString() || (req.forwardedFor = *fwdfor) == NULL) - req.forwardedFor = const_cast(""); -diff --git a/src/node_file.cc b/src/node_file.cc -index 3c35e0b..f665b19 100644 ---- a/src/node_file.cc -+++ b/src/node_file.cc -@@ -404,7 +403,7 @@ static Handle Stat(const Arguments& args) { - if (args.Length() < 1) return TYPE_ERROR("path required"); - if (!args[0]->IsString()) return TYPE_ERROR("path must be a string"); - -- node::Utf8Value path(args[0]); -+ String::Utf8Value path(args[0]); - - if (args[1]->IsFunction()) { - ASYNC_CALL(stat, args[1], *path) -@@ -421,7 +420,7 @@ static Handle LStat(const Arguments& args) { - if (args.Length() < 1) return TYPE_ERROR("path required"); - if (!args[0]->IsString()) return TYPE_ERROR("path must be a string"); - -- node::Utf8Value path(args[0]); -+ String::Utf8Value path(args[0]); - - if (args[1]->IsFunction()) { - ASYNC_CALL(lstat, args[1], *path) -@@ -459,12 +458,12 @@ static Handle Symlink(const Arguments& args) { - if (!args[0]->IsString()) return TYPE_ERROR("dest path must be a string"); - if (!args[1]->IsString()) return TYPE_ERROR("src path must be a string"); - -- node::Utf8Value dest(args[0]); -- node::Utf8Value path(args[1]); -+ String::Utf8Value dest(args[0]); -+ String::Utf8Value path(args[1]); - int flags = 0; - - if (args[2]->IsString()) { -- node::Utf8Value mode(args[2]); -+ String::Utf8Value mode(args[2]); - if (strcmp(*mode, "dir") == 0) { - flags |= UV_FS_SYMLINK_DIR; - } else if (strcmp(*mode, "junction") == 0) { -@@ -492,8 +491,8 @@ static Handle Link(const Arguments& args) { - if (!args[0]->IsString()) return TYPE_ERROR("dest path must be a string"); - if (!args[1]->IsString()) return TYPE_ERROR("src path must be a string"); - -- node::Utf8Value orig_path(args[0]); -- node::Utf8Value new_path(args[1]); -+ String::Utf8Value orig_path(args[0]); -+ String::Utf8Value new_path(args[1]); - - if (args[2]->IsFunction()) { - ASYNC_DEST_CALL(link, args[2], *new_path, *orig_path, *new_path) -@@ -509,7 +508,7 @@ static Handle ReadLink(const Arguments& args) { - if (args.Length() < 1) return TYPE_ERROR("path required"); - if (!args[0]->IsString()) return TYPE_ERROR("path must be a string"); - -- node::Utf8Value path(args[0]); -+ String::Utf8Value path(args[0]); - - if (args[1]->IsFunction()) { - ASYNC_CALL(readlink, args[1], *path) -@@ -528,8 +527,8 @@ static Handle Rename(const Arguments& args) { - if (!args[0]->IsString()) return TYPE_ERROR("old path must be a string"); - if (!args[1]->IsString()) return TYPE_ERROR("new path must be a string"); - -- node::Utf8Value old_path(args[0]); -- node::Utf8Value new_path(args[1]); -+ String::Utf8Value old_path(args[0]); -+ String::Utf8Value new_path(args[1]); - - if (args[2]->IsFunction()) { - ASYNC_DEST_CALL(rename, args[2], *new_path, *old_path, *new_path) -@@ -599,7 +598,7 @@ static Handle Unlink(const Arguments& args) { - if (args.Length() < 1) return TYPE_ERROR("path required"); - if (!args[0]->IsString()) return TYPE_ERROR("path must be a string"); - -- node::Utf8Value path(args[0]); -+ String::Utf8Value path(args[0]); - - if (args[1]->IsFunction()) { - ASYNC_CALL(unlink, args[1], *path) -@@ -615,7 +614,7 @@ static Handle RMDir(const Arguments& args) { - if (args.Length() < 1) return TYPE_ERROR("path required"); - if (!args[0]->IsString()) return TYPE_ERROR("path must be a string"); - -- node::Utf8Value path(args[0]); -+ String::Utf8Value path(args[0]); - - if (args[1]->IsFunction()) { - ASYNC_CALL(rmdir, args[1], *path) -@@ -632,7 +631,7 @@ static Handle MKDir(const Arguments& args) { - return THROW_BAD_ARGS; - } - -- node::Utf8Value path(args[0]); -+ String::Utf8Value path(args[0]); - int mode = static_cast(args[1]->Int32Value()); - - if (args[2]->IsFunction()) { -@@ -649,7 +648,7 @@ static Handle ReadDir(const Arguments& args) { - if (args.Length() < 1) return TYPE_ERROR("path required"); - if (!args[0]->IsString()) return TYPE_ERROR("path must be a string"); - -- node::Utf8Value path(args[0]); -+ String::Utf8Value path(args[0]); - - if (args[1]->IsFunction()) { - ASYNC_CALL(readdir, args[1], *path, 0 /*flags*/) -@@ -687,7 +686,7 @@ static Handle Open(const Arguments& args) { - if (!args[1]->IsInt32()) return TYPE_ERROR("flags must be an int"); - if (!args[2]->IsInt32()) return TYPE_ERROR("mode must be an int"); - -- node::Utf8Value path(args[0]); -+ String::Utf8Value path(args[0]); - int flags = args[1]->Int32Value(); - int mode = static_cast(args[2]->Int32Value()); - -@@ -827,7 +826,7 @@ static Handle Chmod(const Arguments& args) { - if(args.Length() < 2 || !args[0]->IsString() || !args[1]->IsInt32()) { - return THROW_BAD_ARGS; - } -- node::Utf8Value path(args[0]); -+ String::Utf8Value path(args[0]); - int mode = static_cast(args[1]->Int32Value()); - - if(args[2]->IsFunction()) { -@@ -874,7 +873,7 @@ static Handle Chown(const Arguments& args) { - if (!args[1]->IsUint32()) return TYPE_ERROR("uid must be an unsigned int"); - if (!args[2]->IsUint32()) return TYPE_ERROR("gid must be an unsigned int"); - -- node::Utf8Value path(args[0]); -+ String::Utf8Value path(args[0]); - uv_uid_t uid = static_cast(args[1]->Uint32Value()); - uv_gid_t gid = static_cast(args[2]->Uint32Value()); - -@@ -925,7 +924,7 @@ static Handle UTimes(const Arguments& args) { - if (!args[1]->IsNumber()) return TYPE_ERROR("atime must be a number"); - if (!args[2]->IsNumber()) return TYPE_ERROR("mtime must be a number"); - -- const node::Utf8Value path(args[0]); -+ const String::Utf8Value path(args[0]); - const double atime = static_cast(args[1]->NumberValue()); - const double mtime = static_cast(args[2]->NumberValue()); - -diff --git a/src/node_stat_watcher.cc b/src/node_stat_watcher.cc -index fd3e5d1..c3f668c 100644 ---- a/src/node_stat_watcher.cc -+++ b/src/node_stat_watcher.cc -@@ -105,7 +104,7 @@ Handle StatWatcher::Start(const Arguments& args) { - HandleScope scope; - - StatWatcher* wrap = ObjectWrap::Unwrap(args.Holder()); -- node::Utf8Value path(args[0]); -+ String::Utf8Value path(args[0]); - const bool persistent = args[1]->BooleanValue(); - const uint32_t interval = args[2]->Uint32Value(); - -diff --git a/src/process_wrap.cc b/src/process_wrap.cc -index ac63e4b..784300f 100644 ---- a/src/process_wrap.cc -+++ b/src/process_wrap.cc -@@ -188,7 +187,7 @@ class ProcessWrap : public HandleWrap { - - // options.file - Local file_v = js_options->Get(String::NewSymbol("file")); -- node::Utf8Value file(file_v->IsString() ? file_v : Local()); -+ String::Utf8Value file(file_v->IsString() ? file_v : Local()); - if (file.length() > 0) { - options.file = *file; - } else { -@@ -203,7 +202,7 @@ class ProcessWrap : public HandleWrap { - // Heap allocate to detect errors. +1 is for NULL. - options.args = new char*[argc + 1]; - for (int i = 0; i < argc; i++) { -- node::Utf8Value arg(js_argv->Get(i)); -+ String::Utf8Value arg(js_argv->Get(i)); - options.args[i] = strdup(*arg); - } - options.args[argc] = NULL; -@@ -211,7 +210,7 @@ class ProcessWrap : public HandleWrap { - - // options.cwd - Local cwd_v = js_options->Get(String::NewSymbol("cwd")); -- node::Utf8Value cwd(cwd_v->IsString() ? cwd_v : Local()); -+ String::Utf8Value cwd(cwd_v->IsString() ? cwd_v : Local()); - if (cwd.length() > 0) { - options.cwd = *cwd; - } -@@ -223,7 +222,7 @@ class ProcessWrap : public HandleWrap { - int envc = env->Length(); - options.env = new char*[envc + 1]; // Heap allocated to detect errors. - for (int i = 0; i < envc; i++) { -- node::Utf8Value pair(env->Get(i)); -+ String::Utf8Value pair(env->Get(i)); - options.env[i] = strdup(*pair); - } - options.env[envc] = NULL; -diff --git a/src/udp_wrap.cc b/src/udp_wrap.cc -index 31a4e78..b33f4e8 100644 ---- a/src/udp_wrap.cc -+++ b/src/udp_wrap.cc -@@ -161,7 +160,7 @@ Handle UDPWrap::DoBind(const Arguments& args, int family) { - // bind(ip, port, flags) - assert(args.Length() == 3); - -- node::Utf8Value address(args[0]); -+ String::Utf8Value address(args[0]); - const int port = args[1]->Uint32Value(); - const int flags = args[2]->Uint32Value(); - -@@ -220,8 +219,8 @@ Handle UDPWrap::SetMembership(const Arguments& args, - - assert(args.Length() == 2); - -- node::Utf8Value address(args[0]); -- node::Utf8Value iface(args[1]); -+ String::Utf8Value address(args[0]); -+ String::Utf8Value iface(args[1]); - - const char* iface_cstr = *iface; - if (args[1]->IsUndefined() || args[1]->IsNull()) { -@@ -272,7 +271,7 @@ Handle UDPWrap::DoSend(const Arguments& args, int family) { - length); - - const unsigned short port = args[3]->Uint32Value(); -- node::Utf8Value address(args[4]); -+ String::Utf8Value address(args[4]); - - switch (family) { - case AF_INET: -diff --git a/src/util.h b/src/util.h ---- a/src/util.h -+++ b/src/util.h -@@ -41,52 +41,6 @@ - obj->Set(domain_symbol, domain); - } - --class Utf8Value { -- public: -- explicit Utf8Value(v8::Handle value) -- : length_(0), str_(NULL) { -- if (value.IsEmpty()) -- return; -- -- v8::Local val_ = value->ToString(); -- -- // Allocate enough space to include the null terminator -- size_t len = StringBytes::StorageSize(val_, UTF8) + 1; -- -- char* str = static_cast(calloc(1, len)); -- -- int flags = WRITE_UTF8_FLAGS; -- flags |= ~v8::String::NO_NULL_TERMINATION; -- -- length_ = val_->WriteUtf8(str, -- len, -- 0, -- flags); -- -- str_ = reinterpret_cast(str); -- } -- -- ~Utf8Value() { -- free(str_); -- } -- -- char* operator*() { -- return str_; -- }; -- -- const char* operator*() const { -- return str_; -- }; -- -- size_t length() const { -- return length_; -- }; -- -- private: -- size_t length_; -- char* str_; --}; -- - } // namespace node - - #endif // SRC_UTIL_H_ --- -1.9.3 - diff --git a/nodejs-revert-utf8-v8.patch b/nodejs-revert-utf8-v8.patch deleted file mode 100644 index 6b16de6..0000000 --- a/nodejs-revert-utf8-v8.patch +++ /dev/null @@ -1,91 +0,0 @@ -From c7c934c66cd8712c9ff169f1ef4c5670d3ff99c8 Mon Sep 17 00:00:00 2001 -From: "T.C. Hollingsworth" -Date: Wed, 18 Jun 2014 23:09:03 -0700 -Subject: [PATCH] Revert "string_bytes: Guarantee valid utf-8 output" - -This reverts commit 0da4c671659cfbae12def127b2e94690b9d9b5e1. ---- - src/node.cc | 7 ------- - src/string_bytes.cc | 2 +- - src/string_bytes.h | 2 -- - test/simple/test-buffer.js | 12 ------------ - 4 files changed, 1 insertion(+), 22 deletions(-) - -diff --git a/src/node.cc b/src/node.cc -index 4223973..e9696cd 100644 ---- a/src/node.cc -+++ b/src/node.cc -@@ -180,9 +180,6 @@ static uv_async_t dispatch_debug_messages_async; - // Declared in node_internals.h - Isolate* node_isolate = NULL; - --int WRITE_UTF8_FLAGS = v8::String::HINT_MANY_WRITES_EXPECTED | -- v8::String::NO_NULL_TERMINATION; -- - static void Spin(uv_idle_t* handle, int status) { - assert((uv_idle_t*) handle == &tick_spinner); - assert(status == 0); -@@ -3077,11 +3074,6 @@ static char **copy_argv(int argc, char **argv) { - - - int Start(int argc, char *argv[]) { -- const char* replaceInvalid = getenv("NODE_INVALID_UTF8"); -- -- if (replaceInvalid == NULL) -- WRITE_UTF8_FLAGS |= String::REPLACE_INVALID_UTF8; -- - // Hack aroung with the argv pointer. Used for process.title = "blah". - argv = uv_setup_args(argc, argv); - -diff --git a/src/string_bytes.cc b/src/string_bytes.cc -index a7bab38..e4a34fe 100644 ---- a/src/string_bytes.cc -+++ b/src/string_bytes.cc -@@ -199,7 +199,7 @@ size_t StringBytes::Write(char* buf, - break; - - case UTF8: -- len = str->WriteUtf8(buf, buflen, chars_written, WRITE_UTF8_FLAGS); -+ len = str->WriteUtf8(buf, buflen, chars_written, flags); - break; - - case UCS2: -diff --git a/src/string_bytes.h b/src/string_bytes.h -index 31f04bb..8071a49 100644 ---- a/src/string_bytes.h -+++ b/src/string_bytes.h -@@ -29,8 +29,6 @@ - - namespace node { - --extern int WRITE_UTF8_FLAGS; -- - using v8::Handle; - using v8::Local; - using v8::String; -diff --git a/test/simple/test-buffer.js b/test/simple/test-buffer.js -index f8b2798..3026824 100644 ---- a/test/simple/test-buffer.js -+++ b/test/simple/test-buffer.js -@@ -791,18 +791,6 @@ assert.equal(buf[3], 0xFF); - assert.equal(buf[3], 0xFF); - }); - --// test unmatched surrogates not producing invalid utf8 output --// ef bf bd = utf-8 representation of unicode replacement character --// see https://codereview.chromium.org/121173009/ --buf = new Buffer('ab\ud800cd', 'utf8'); --assert.equal(buf[0], 0x61); --assert.equal(buf[1], 0x62); --assert.equal(buf[2], 0xef); --assert.equal(buf[3], 0xbf); --assert.equal(buf[4], 0xbd); --assert.equal(buf[5], 0x63); --assert.equal(buf[6], 0x64); -- - // test for buffer overrun - buf = new Buffer([0, 0, 0, 0, 0]); // length: 5 - var sub = buf.slice(0, 4); // length: 4 --- -1.9.3 - diff --git a/nodejs.spec b/nodejs.spec index 15c81db..4907ae8 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -1,13 +1,45 @@ +%global with_debug 0 + +# ARM builds currently break on the Debug builds, so we'll just +# build the standard runtime until that gets sorted out. +%ifarch %{arm} aarch64 %{power64} +%global with_debug 0 +%endif + +# == Node.js Version == +%global nodejs_major 0 +%global nodejs_minor 10 +%global nodejs_patch 42 +%global nodejs_abi %{nodejs_major}.%{nodejs_minor} + +# == Bundled Dependency Versions == +# v8 - from deps/v8/src/version.cc +%global v8_major 3 +%global v8_minor 14 +%global v8_build 5 +%global v8_patch 9 +# V8 presently breaks ABI at least every x.y release while never bumping SONAME +%global v8_abi %{v8_major}.%{v8_minor} + +# c-ares - from deps/cares/include/ares_version.h +%global c_ares_major 1 +%global c_ares_minor 9 +%global c_ares_patch 0 + +# http-parser - from deps/http-parser/http_parser.h +%global http_parser_major 1 +%global http_parser_minor 1 + Name: nodejs -Version: 0.10.36 -Release: 5%{?dist} +Version: %{nodejs_major}.%{nodejs_minor}.%{nodejs_patch} +Release: 1%{?dist} Summary: JavaScript runtime License: MIT and ASL 2.0 and ISC and BSD Group: Development/Languages URL: http://nodejs.org/ # Exclusive archs must match v8 -ExclusiveArch: %{ix86} x86_64 %{arm} +ExclusiveArch: %{nodejs_arches} # nodejs bundles openssl, but we use the system version in Fedora # because openssl contains prohibited code, we remove openssl completely from @@ -28,30 +60,20 @@ Patch1: nodejs-disable-gyp-deps.patch # http://patch-tracker.debian.org/patch/series/view/nodejs/0.10.26~dfsg1-1/2014_donotinclude_root_certs.patch Patch2: nodejs-use-system-certs.patch -# The invalid UTF8 fix has been reverted since this breaks v8 API, which cannot -# be done in a stable distribution release. This build of nodejs will behave as -# if NODE_INVALID_UTF8 was set. For more information on the implications, see: -# http://blog.nodejs.org/2014/06/16/openssl-and-breaking-utf-8-change/ -Patch3: nodejs-revert-utf8-v8.patch -Patch4: nodejs-revert-utf8-node.patch +# V8 presently breaks ABI at least every x.y release while never bumping SONAME +# Make sure to keep this in sync with deps/v8/srv/version.cc +%global v8_major 3 +%global v8_minor 14 +%global v8_build 5 +%global v8_patch 9 +%global v8_abi %{v8_major}.%{v8_minor} -# V8 presently breaks ABI at least every x.y release while never bumping SONAME, -# so we need to be more explicit until spot fixes that -%global v8_ge 1:3.14.5.10-17 -%global v8_lt 1:3.15 -%global v8_abi 3.14 - -BuildRequires: v8-devel >= %{v8_ge} -BuildRequires: http-parser-devel >= 2.0 +BuildRequires: python-devel BuildRequires: compat-libuv010-devel -BuildRequires: c-ares-devel BuildRequires: zlib-devel # Node.js requires some features from openssl 1.0.1 for SPDY support BuildRequires: openssl-devel >= 1:1.0.1 -Requires: v8%{?_isa} >= %{v8_ge} -Requires: v8%{?_isa} < %{v8_lt} - # we need the system certificate store when Patch2 is applied Requires: ca-certificates @@ -78,6 +100,19 @@ Conflicts: node <= 0.3.2-11 Provides: nodejs-punycode = 1.3.1 Provides: npm(punycode) = 1.3.1 +# Node.js has forked c-ares from upstream in an incompatible way, so we need +# to carry the bundled version internally. +# See https://github.com/nodejs/node/commit/766d063e0578c0f7758c3a965c971763f43fec85 +# Keep this in sync with deps/cares/include/ares_version.h +Provides: bundled(c-ares) = 1.9.0 + +# Node.js is closely tied to the version of v8 that is used with it. It makes +# sense to use the bundled version because upstream consistently breaks ABI +# even in point releases. Node.js upstream has now removed the ability to build +# against a shared system version entirely. +# See https://github.com/nodejs/node/commit/d726a177ed59c37cf5306983ed00ecd858cfbbef +Provides: bundled(v8) = %{v8_major}.%{v8_minor}.%{v8_build}.%{v8_patch} + %description Node.js is a platform built on Chrome's JavaScript runtime @@ -91,7 +126,7 @@ Summary: JavaScript runtime - development headers Group: Development/Languages Requires: %{name}%{?_isa} == %{version}-%{release} Requires: compat-libuv010-devel%{?_isa} http-parser-devel%{?_isa} v8-devel%{?_isa} -Requires: openssl-devel%{?_isa} c-ares-devel%{?_isa} zlib-devel%{?_isa} +Requires: openssl-devel%{?_isa} zlib-devel%{?_isa} Requires: nodejs-packaging %description devel @@ -111,35 +146,35 @@ The API documentation for the Node.js JavaScript runtime. # remove bundled dependencies %patch1 -p1 -rm -rf deps +rm -rf deps/npm \ + deps/uv \ + deps/zlib # remove bundled CA certificates %patch2 -p1 rm -f src/node_root_certs.h -%patch3 -p1 -%patch4 -p1 - %build # build with debugging symbols and add defines from libuv (#892601) -export CFLAGS='%{optflags} -g -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64' -export CXXFLAGS='%{optflags} -g -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64' +export CFLAGS='%{optflags} -g -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fno-delete-null-pointer-checks' +export CXXFLAGS='%{optflags} -g -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fno-delete-null-pointer-checks' ./configure --prefix=%{_prefix} \ - --shared-v8 \ --shared-openssl \ --shared-zlib \ - --shared-cares \ --shared-libuv \ --shared-libuv-libname=:libuv.so.0.10 \ --shared-libuv-includes=%{_includedir}/compat-libuv010 \ - --shared-http-parser \ --without-npm \ --without-dtrace +%if %{?with_debug} == 1 # Setting BUILDTYPE=Debug builds both release and debug binaries make BUILDTYPE=Debug %{?_smp_mflags} +%else +make BUILDTYPE=Release %{?_smp_mflags} +%endif %install rm -rf %{buildroot} @@ -152,8 +187,10 @@ rm -rf %{buildroot}/%{_prefix}/lib/dtrace # Set the binary permissions properly chmod 0755 %{buildroot}/%{_bindir}/node +%if %{?with_debug} == 1 # Install the debug binary and set its permissions install -Dpm0755 out/Debug/node %{buildroot}/%{_bindir}/node_g +%endif # own the sitelib directory mkdir -p %{buildroot}%{_prefix}/lib/node_modules @@ -193,7 +230,9 @@ cp -p common.gypi %{buildroot}%{_datadir}/node %{_pkgdocdir}/AUTHORS %files devel +%if %{?with_debug} == 1 %{_bindir}/node_g +%endif %{_includedir}/node %{_datadir}/node/common.gypi @@ -202,6 +241,15 @@ cp -p common.gypi %{buildroot}%{_datadir}/node %{_pkgdocdir}/html %changelog +* Wed Feb 10 2016 Stephen Gallagher - 0.10.42-1 +- Update to Node.js 0.10.42 +- https://github.com/nodejs/node/blob/v0.10.42/ChangeLog +- Bundle v8, c-ares and http-parser with Node.js +- Drop patches that revert v8 UTF8 change +- Resolves: RHBZ#1306203 +- Resolves: RHBZ#1306200 +- Resolves: RHBZ#1306207 + * Wed Jun 17 2015 Fedora Release Engineering - 0.10.36-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild diff --git a/sources b/sources index e233927..00d25f8 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -f1a50d8a1f6e09659b5c2aad00867ae2 node-v0.10.36-stripped.tar.gz +797349ff0cb1c9316d1800acf3d1394f node-v0.10.42-stripped.tar.gz From 2e4b635f3c88f052f36155c24e3a5c355dc13d15 Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Wed, 10 Feb 2016 12:10:57 -0500 Subject: [PATCH 12/13] Re-enable debug builds on supported arches --- nodejs.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/nodejs.spec b/nodejs.spec index 4907ae8..708c660 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -1,4 +1,4 @@ -%global with_debug 0 +%global with_debug 1 # ARM builds currently break on the Debug builds, so we'll just # build the standard runtime until that gets sorted out. @@ -32,7 +32,7 @@ Name: nodejs Version: %{nodejs_major}.%{nodejs_minor}.%{nodejs_patch} -Release: 1%{?dist} +Release: 2%{?dist} Summary: JavaScript runtime License: MIT and ASL 2.0 and ISC and BSD Group: Development/Languages @@ -241,6 +241,9 @@ cp -p common.gypi %{buildroot}%{_datadir}/node %{_pkgdocdir}/html %changelog +* Wed Feb 10 2016 Stephen Gallagher - 0.10.42-2 +- Re-enable debug builds on supported arches + * Wed Feb 10 2016 Stephen Gallagher - 0.10.42-1 - Update to Node.js 0.10.42 - https://github.com/nodejs/node/blob/v0.10.42/ChangeLog From 907bf61ddb0a27848c70ac4553b4edbc2ac596a7 Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Wed, 10 Feb 2016 13:27:15 -0500 Subject: [PATCH 13/13] Remove duplicated content from spec file --- nodejs.spec | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/nodejs.spec b/nodejs.spec index 708c660..c0ca236 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -32,7 +32,7 @@ Name: nodejs Version: %{nodejs_major}.%{nodejs_minor}.%{nodejs_patch} -Release: 2%{?dist} +Release: 3%{?dist} Summary: JavaScript runtime License: MIT and ASL 2.0 and ISC and BSD Group: Development/Languages @@ -60,14 +60,6 @@ Patch1: nodejs-disable-gyp-deps.patch # http://patch-tracker.debian.org/patch/series/view/nodejs/0.10.26~dfsg1-1/2014_donotinclude_root_certs.patch Patch2: nodejs-use-system-certs.patch -# V8 presently breaks ABI at least every x.y release while never bumping SONAME -# Make sure to keep this in sync with deps/v8/srv/version.cc -%global v8_major 3 -%global v8_minor 14 -%global v8_build 5 -%global v8_patch 9 -%global v8_abi %{v8_major}.%{v8_minor} - BuildRequires: python-devel BuildRequires: compat-libuv010-devel BuildRequires: zlib-devel @@ -241,6 +233,9 @@ cp -p common.gypi %{buildroot}%{_datadir}/node %{_pkgdocdir}/html %changelog +* Wed Feb 10 2016 Stephen Gallagher - 0.10.42-3 +- Remove duplicated content from spec file + * Wed Feb 10 2016 Stephen Gallagher - 0.10.42-2 - Re-enable debug builds on supported arches