From 5fbbcec11827f02e99ddeb5ee3c5412b9dbe41a8 Mon Sep 17 00:00:00 2001 From: "T.C. Hollingsworth" Date: Thu, 19 Feb 2015 00:59:58 -0700 Subject: [PATCH 01/48] 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 f77d6ca..19a6601 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 @@ -194,6 +194,13 @@ cp -p common.gypi %{buildroot}%{_datadir}/node %{_defaultdocdir}/%{name}-docs-%{version} %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 c8b7901da604faee44e21cd98935048934d523c0 Mon Sep 17 00:00:00 2001 From: "T.C. Hollingsworth" Date: Tue, 24 Feb 2015 16:20:59 -0700 Subject: [PATCH 02/48] bump v8 requires (RHBZ#1195457) --- nodejs.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/nodejs.spec b/nodejs.spec index 19a6601..5ebad5f 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 @@ -37,7 +37,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 @@ -194,6 +194,9 @@ cp -p common.gypi %{buildroot}%{_datadir}/node %{_defaultdocdir}/%{name}-docs-%{version} %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 aab8ed173f88c964cba8a596b4e0bf2bfdb2a89e Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Wed, 10 Feb 2016 10:51:40 -0500 Subject: [PATCH 03/48] 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 04/48] 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 05/48] 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 From 63933c02f8332b43934cc6c159a47b7b83ac9671 Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Wed, 10 Feb 2016 14:11:56 -0500 Subject: [PATCH 06/48] Verify that the built node reports the expected versions - Properly Provides: http-parser - Fix Provides: for punycode --- nodejs.spec | 47 ++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 40 insertions(+), 7 deletions(-) diff --git a/nodejs.spec b/nodejs.spec index c0ca236..1b45857 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -11,6 +11,7 @@ %global nodejs_minor 10 %global nodejs_patch 42 %global nodejs_abi %{nodejs_major}.%{nodejs_minor} +%global nodejs_version %{nodejs_major}.%{nodejs_minor}.%{nodejs_patch} # == Bundled Dependency Versions == # v8 - from deps/v8/src/version.cc @@ -20,19 +21,29 @@ %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} +%global v8_version %{v8_major}.%{v8_minor}.%{v8_build}.%{v8_patch} # c-ares - from deps/cares/include/ares_version.h %global c_ares_major 1 %global c_ares_minor 9 %global c_ares_patch 0 +%global c_ares_version %{c_ares_major}.%{c_ares_minor}.%{c_ares_patch} # http-parser - from deps/http-parser/http_parser.h %global http_parser_major 1 %global http_parser_minor 1 +%global http_parser_version %{http_parser_major}.%{http_parser_minor} + +# punycode - from lib/punycode.js +# Note: this was merged into the mainline since 0.6.x +%global punycode_major 1 +%global punycode_minor 2 +%global punycode_patch 0 +%global punycode_version %{punycode_major}.%{punycode_minor}.%{punycode_patch} Name: nodejs -Version: %{nodejs_major}.%{nodejs_minor}.%{nodejs_patch} -Release: 3%{?dist} +Version: %{nodejs_version} +Release: 4%{?dist} Summary: JavaScript runtime License: MIT and ASL 2.0 and ISC and BSD Group: Development/Languages @@ -89,21 +100,25 @@ Conflicts: node <= 0.3.2-11 # we don't need the seperate nodejs-punycode package, so we Provide it here so # dependent packages don't need to override the dependency generator. # See also: RHBZ#11511811 -Provides: nodejs-punycode = 1.3.1 -Provides: npm(punycode) = 1.3.1 +Provides: nodejs-punycode = %{punycode_version} +Provides: npm(punycode) = %{punycode_version} # 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 +Provides: bundled(c-ares) = %{c_ares_version} # 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} +Provides: bundled(v8) = %{v8_version} + +# Node.js and http-parser share an upstream. The http-parser upstream does not +# do releases often and is almost always far behind the bundled version +Provides: bundled(http-parser) = %{http_parser_version} %description @@ -117,7 +132,7 @@ real-time applications that run across distributed devices. 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: compat-libuv010-devel%{?_isa} v8-devel%{?_isa} Requires: openssl-devel%{?_isa} zlib-devel%{?_isa} Requires: nodejs-packaging @@ -168,6 +183,7 @@ make BUILDTYPE=Debug %{?_smp_mflags} make BUILDTYPE=Release %{?_smp_mflags} %endif + %install rm -rf %{buildroot} @@ -208,6 +224,18 @@ cp -p ChangeLog LICENSE README.md AUTHORS %{buildroot}%{_pkgdocdir} mkdir -p %{buildroot}%{_datadir}/node cp -p common.gypi %{buildroot}%{_datadir}/node + +%check +# Fail the build if the versions don't match +%{buildroot}/%{_bindir}/node -e "require('assert').equal(process.versions.node, '%{nodejs_version}')" +%{buildroot}/%{_bindir}/node -e "require('assert').equal(process.versions.v8, '%{v8_version}')" +%{buildroot}/%{_bindir}/node -e "require('assert').equal(process.versions.ares.replace(/-DEV$/, ''), '%{c_ares_version}')" +%{buildroot}/%{_bindir}/node -e "require('assert').equal(process.versions.http_parser, '%{http_parser_version}')" + +# Ensure we have punycode and that the version matches +%{buildroot}/%{_bindir}/node -e "require(\"assert\").equal(require(\"punycode\").version, '%{punycode_version}')" + + %files %{_bindir}/node %{_mandir}/man1/node.* @@ -233,6 +261,11 @@ cp -p common.gypi %{buildroot}%{_datadir}/node %{_pkgdocdir}/html %changelog +* Wed Feb 10 2016 Stephen Gallagher - 0.10.43-4 +- Verify that the built node reports the expected versions +- Properly Provides: http-parser +- Fix Provides: for punycode + * Wed Feb 10 2016 Stephen Gallagher - 0.10.42-3 - Remove duplicated content from spec file From 355661fd73b4fbf899ad82cf28e8b86368867078 Mon Sep 17 00:00:00 2001 From: Zuzana Svetlikova Date: Fri, 24 Jun 2016 16:02:36 +0200 Subject: [PATCH 07/48] Update to 0.10.46, bump http-parser --- .gitignore | 1 + nodejs.spec | 11 ++++++++--- sources | 2 +- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 0e8b6d2..cdcc8b5 100644 --- a/.gitignore +++ b/.gitignore @@ -33,3 +33,4 @@ /node-v0.10.33-stripped.tar.gz /node-v0.10.36-stripped.tar.gz /node-v0.10.42-stripped.tar.gz +/node-v0.10.46-stripped.tar.gz diff --git a/nodejs.spec b/nodejs.spec index 9d10f31..873675f 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -12,7 +12,7 @@ # == Node.js Version == %global nodejs_major 0 %global nodejs_minor 10 -%global nodejs_patch 42 +%global nodejs_patch 46 %global nodejs_abi %{nodejs_major}.%{nodejs_minor} %global nodejs_version %{nodejs_major}.%{nodejs_minor}.%{nodejs_patch} @@ -34,7 +34,7 @@ # http-parser - from deps/http-parser/http_parser.h %global http_parser_major 1 -%global http_parser_minor 1 +%global http_parser_minor 2 %global http_parser_version %{http_parser_major}.%{http_parser_minor} # punycode - from lib/punycode.js @@ -46,7 +46,7 @@ Name: nodejs Version: %{nodejs_version} -Release: 4%{?dist} +Release: 1%{?dist} Summary: JavaScript runtime License: MIT and ASL 2.0 and ISC and BSD Group: Development/Languages @@ -263,6 +263,11 @@ cp -p common.gypi %{buildroot}%{_datadir}/node %{_pkgdocdir}/html %changelog +* Fri Jun 24 2016 Zuzana Svetlikova - 0.10.46-1 +- Update to 0.10.46(security fix) +- https://github.com/nodejs/node/blob/v0.10.46/ChangeLog +- Bump http-parser version + * Wed Feb 10 2016 Stephen Gallagher - 0.10.43-4 - Verify that the built node reports the expected versions - Properly Provides: http-parser diff --git a/sources b/sources index 00d25f8..18989dd 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -797349ff0cb1c9316d1800acf3d1394f node-v0.10.42-stripped.tar.gz +af86e8807e760f348b58acaa9317226b node-v0.10.46-stripped.tar.gz From cfe8ea4ac6a2fdf6533f74c9e101cf11f33fdb56 Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Thu, 19 Jan 2017 09:34:15 -0500 Subject: [PATCH 08/48] Enable DTrace support. Eliminate newlines from CFLAGS due to broken dtrace shim https://sourceware.org/bugzilla/show_bug.cgi?id=21063 Thanks to Kinston Hughes for the fix. --- nodejs.spec | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/nodejs.spec b/nodejs.spec index 01e217e..db8006e 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -19,7 +19,7 @@ %global nodejs_patch 4 %global nodejs_abi %{nodejs_major}.%{nodejs_minor} %global nodejs_version %{nodejs_major}.%{nodejs_minor}.%{nodejs_patch} -%global nodejs_release 1 +%global nodejs_release 2 # == Bundled Dependency Versions == # v8 - from deps/v8/include/v8-version.h @@ -109,6 +109,7 @@ BuildRequires: libicu-devel BuildRequires: zlib-devel BuildRequires: gcc >= 4.8.0 BuildRequires: gcc-c++ >= 4.8.0 +BuildRequires: systemtap-sdt-devel %if 0%{?epel} BuildRequires: openssl-devel >= 1:1.0.1 @@ -263,11 +264,15 @@ export CXXFLAGS='%{optflags} -g \ -DZLIB_CONST \ -fno-delete-null-pointer-checks' +# Explicit new lines in C(XX)FLAGS can break naive build scripts +export CFLAGS="$(echo ${CFLAGS} | tr '\n\\' ' ')" +export CXXFLAGS="$(echo ${CXXFLAGS} | tr '\n\\' ' ')" + ./configure --prefix=%{_prefix} \ --shared-openssl \ --shared-zlib \ --shared-libuv \ - --without-dtrace \ + --with-dtrace \ --with-intl=system-icu %if %{?with_debug} == 1 @@ -283,9 +288,6 @@ rm -rf %{buildroot} ./tools/install.py install %{buildroot} %{_prefix} -# and remove dtrace file again -rm -rf %{buildroot}/%{_prefix}/lib/dtrace - # Set the binary permissions properly chmod 0755 %{buildroot}/%{_bindir}/node @@ -373,6 +375,8 @@ NODE_PATH=%{buildroot}%{_prefix}/lib/node_modules %{buildroot}/%{_bindir}/node - %dir %{_datadir}/systemtap %dir %{_datadir}/systemtap/tapset %{_datadir}/systemtap/tapset/node.stp +%dir %{_usr}/lib/dtrace +%{_usr}/lib/dtrace/node.d %{_rpmconfigdir}/fileattrs/nodejs_native.attr %{_rpmconfigdir}/nodejs_native.req %license LICENSE @@ -403,6 +407,12 @@ NODE_PATH=%{buildroot}%{_prefix}/lib/node_modules %{buildroot}/%{_bindir}/node - %{_pkgdocdir}/npm/doc %changelog +* Tue Jan 17 2017 Stephen Gallagher - 1:6.9.4-2 +- Enable DTrace support. +- Eliminate newlines from CFLAGS due to broken dtrace shim + https://sourceware.org/bugzilla/show_bug.cgi?id=21063 + Thanks to Kinston Hughes for the fix. + * Tue Jan 10 2017 Zuzana Svetlikova - 1:6.9.4-1 - Update to v6.9.4 From 37c82618a03f5004a3cdbe45a6e4b1aa35f1e165 Mon Sep 17 00:00:00 2001 From: Zuzana Svetlikova Date: Wed, 1 Feb 2017 16:53:44 +0100 Subject: [PATCH 09/48] Update to 6.9.5 (security) --- .gitignore | 1 + nodejs.spec | 8 ++++++-- sources | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 2f4b575..44a7b83 100644 --- a/.gitignore +++ b/.gitignore @@ -64,3 +64,4 @@ /node-v6.9.2-stripped.tar.gz /node-v6.9.3-stripped.tar.gz /node-v6.9.4-stripped.tar.gz +/node-v6.9.5-stripped.tar.gz diff --git a/nodejs.spec b/nodejs.spec index db8006e..3461a50 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -16,10 +16,10 @@ %global nodejs_epoch 1 %global nodejs_major 6 %global nodejs_minor 9 -%global nodejs_patch 4 +%global nodejs_patch 5 %global nodejs_abi %{nodejs_major}.%{nodejs_minor} %global nodejs_version %{nodejs_major}.%{nodejs_minor}.%{nodejs_patch} -%global nodejs_release 2 +%global nodejs_release 1 # == Bundled Dependency Versions == # v8 - from deps/v8/include/v8-version.h @@ -407,6 +407,10 @@ NODE_PATH=%{buildroot}%{_prefix}/lib/node_modules %{buildroot}/%{_bindir}/node - %{_pkgdocdir}/npm/doc %changelog +* Wed Feb 1 2017 Zuzana Svetlikova - 1:6.9.5-1 +- Update to v6.9.5(security) +- Reenable debug mode (https://github.com/nodejs/node/pull/10525) + * Tue Jan 17 2017 Stephen Gallagher - 1:6.9.4-2 - Enable DTrace support. - Eliminate newlines from CFLAGS due to broken dtrace shim diff --git a/sources b/sources index c9867a2..8b2794f 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (node-v6.9.4-stripped.tar.gz) = e953b9a592cedb2b0e62e97bd042c005cf585c8d33dee7ff59f461234bd9379cf03183e5004f8964669f26a0d375ecbce90a4696ab8ed6accfc9b2f715973d5e +SHA512 (node-v6.9.5-stripped.tar.gz) = 1d10a60295fba32eddb5187a5986f8103f34115d2fe06895596a662c98191afc81bc9246100f8360d308a07db0bc7b8df9e37fe59d042ac136b42248582f4af2 From e47284563b28e970b1021f5b1fbff8bbc0cfa384 Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Thu, 9 Mar 2017 16:09:02 -0500 Subject: [PATCH 10/48] Remove dtrace bits pulled in during merge from master --- nodejs.spec | 2 -- 1 file changed, 2 deletions(-) diff --git a/nodejs.spec b/nodejs.spec index b33795e..706a01a 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -381,8 +381,6 @@ NODE_PATH=%{buildroot}%{_prefix}/lib/node_modules %{buildroot}/%{_bindir}/node - %dir %{_datadir}/systemtap %dir %{_datadir}/systemtap/tapset %{_datadir}/systemtap/tapset/node.stp -%dir %{_usr}/lib/dtrace -%{_usr}/lib/dtrace/node.d %{_rpmconfigdir}/fileattrs/nodejs_native.attr %{_rpmconfigdir}/nodejs_native.req %license LICENSE From 55857230369b2cdb264044845e004a58ebca5bf3 Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Mon, 3 Apr 2017 13:37:43 -0400 Subject: [PATCH 11/48] Revert upstream change that is incompatible with OpenSSL 1.0.1 Fixes: rhbz#1436445 --- EPEL01-openssl101-compat.patch | 30 ++++++++++++++++++++++++++++++ nodejs.spec | 11 ++++++++++- 2 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 EPEL01-openssl101-compat.patch diff --git a/EPEL01-openssl101-compat.patch b/EPEL01-openssl101-compat.patch new file mode 100644 index 0000000..f419f95 --- /dev/null +++ b/EPEL01-openssl101-compat.patch @@ -0,0 +1,30 @@ +diff -ru a/src/node_crypto.cc b/src/node_crypto.cc +--- a/src/node_crypto.cc 2017-03-31 22:39:56.483283868 +0200 ++++ b/src/node_crypto.cc 2017-03-31 22:45:36.250267750 +0200 +@@ -851,8 +851,6 @@ + } + } + +- // Increment reference count so global store is not deleted along with CTX. +- X509_STORE_up_ref(root_cert_store); + SSL_CTX_set_cert_store(sc->ctx_, root_cert_store); + } + +diff -ru a/src/node_crypto.h b/src/node_crypto.h +--- a/src/node_crypto.h 2017-03-21 20:43:33.000000000 +0100 ++++ b/src/node_crypto.h 2017-03-31 22:43:15.548183432 +0200 +@@ -145,6 +145,13 @@ + } + + env()->isolate()->AdjustAmountOfExternalAllocatedMemory(-kExternalSize); ++ if (ctx_->cert_store == root_cert_store) { ++ // SSL_CTX_free() will attempt to free the cert_store as well. ++ // Since we want our root_cert_store to stay around forever ++ // we just clear the field. Hopefully OpenSSL will not modify this ++ // struct in future versions. ++ ctx_->cert_store = nullptr; ++ } + SSL_CTX_free(ctx_); + if (cert_ != nullptr) + X509_free(cert_); + diff --git a/nodejs.spec b/nodejs.spec index 8d0da96..94f6c09 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -19,7 +19,7 @@ %global nodejs_patch 1 %global nodejs_abi %{nodejs_major}.%{nodejs_minor} %global nodejs_version %{nodejs_major}.%{nodejs_minor}.%{nodejs_patch} -%global nodejs_release 1 +%global nodejs_release 2 # == Bundled Dependency Versions == # v8 - from deps/v8/include/v8-version.h @@ -105,6 +105,10 @@ Patch3: 0003-crypto-Use-system-CAs-instead-of-using-bundled-ones.patch # https://github.com/nodejs/node/issues/10388#issuecomment-283120731 Patch4: 0004-Fix-compatibility-with-GCC-7.patch +# RHEL 7 still uses OpenSSL 1.0.1 for now, and it segfaults on SSL +# Revert this upstream patch until RHEL 7 upgrades to 1.0.2 +Patch5: EPEL01-openssl101-compat.patch + BuildRequires: python-devel BuildRequires: libuv-devel >= 1:1.9.1 Requires: libuv >= 1:1.9.1 @@ -252,6 +256,7 @@ rm -rf deps/icu-small \ %if 0%{?epel} %patch2 -p1 +%patch5 -p1 %endif @@ -412,6 +417,10 @@ NODE_PATH=%{buildroot}%{_prefix}/lib/node_modules %{buildroot}/%{_bindir}/node - %{_pkgdocdir}/npm/doc %changelog +* Mon Apr 03 2017 Stephen Gallagher - 1:6.10.1-2 +- Revert upstream change that is incompatible with OpenSSL 1.0.1 +- Fixes: rhbz#1436445 + * Wed Mar 22 2017 Zuzana Svetlikova - 1:6.10.1-1 - Update to 6.10.1 - remove small-icu from deps From 35216d99851df20a1fcc7c0b6a2b77bbcdc2549a Mon Sep 17 00:00:00 2001 From: Zuzana Svetlikova Date: Thu, 11 May 2017 12:40:45 +0200 Subject: [PATCH 12/48] Commit yaml --- nodejs.yaml | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 nodejs.yaml diff --git a/nodejs.yaml b/nodejs.yaml new file mode 100644 index 0000000..5eb4f61 --- /dev/null +++ b/nodejs.yaml @@ -0,0 +1,66 @@ +document: modulemd +version: 1 +data: + summary: Javascript runtime + description: Node.js is a platform built on V8 JavaScript Engine for easily building fast, scalable network applications. + license: + module: GPLv3 + content: + - MIT + - ASL 2.0 + - ISC + - BSD + dependencies: + buildrequires: + base-runtime: f26 + common-build-dependencies: f26 + common-build-dependencies-bootstrap: f26 + shared-userspace: f26 + requires: + base-runtime: master + references: + community: https://fedoraproject.org/wiki/Modularity + documentation: https://fedoraproject.org/wiki/Fedora_Packaging_Guidelines_for_Modules + tracker: https://taiga.fedorainfracloud.org/project/modularity + profiles: + default: + rpms: + - nodejs + - npm + minimal: + rpms: + - nodejs + components: + rpms: + nodejs: + rationale: JavaScript runtime + ref: f26 + buildorder: 0 + npm: + rationale: npm package manager + ref: f26 + buildorder: 1 + # python: + # rationale: build dependency + # ref: f26 + # openssl: + # rationale: build dependency + # ref: f25 + # #compat-openssl10: f26 + # icu: + # rationale: build dependency + # ref: f26 + # libuv: + # rationale: build dependency + # ref: f26 + # zlib: + # rationale: build dependency + # ref: f26 + # gcc: + # rationale: build dependency + # ref: f26 + # #gcc-c++: + # #rationale: build dependency + # #ref: f26 + # #systemtap-sdt-devel: f26 + # #ca-certificates: f26 From b63fe8420be7c31cfa7d86732fbdb73164769020 Mon Sep 17 00:00:00 2001 From: Tomas Tomecek Date: Thu, 11 May 2017 14:40:28 +0200 Subject: [PATCH 13/48] turn bootstrapping off Signed-off-by: Tomas Tomecek --- nodejs.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nodejs.spec b/nodejs.spec index 8debc37..22129f7 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -1,6 +1,6 @@ %global with_debug 1 -%{!?_with_bootstrap: %global bootstrap 1} +%{!?_with_bootstrap: %global bootstrap 0} %{?!_pkgdocdir:%global _pkgdocdir %{_docdir}/%{name}-%{version}} From 67880f7f5a4b14cd46bb3f1888997a6548c749f6 Mon Sep 17 00:00:00 2001 From: Tomas Tomecek Date: Thu, 11 May 2017 15:58:04 +0200 Subject: [PATCH 14/48] move nodejs modulemd to modules/nodejs Signed-off-by: Tomas Tomecek --- nodejs.yaml | 66 ----------------------------------------------------- 1 file changed, 66 deletions(-) delete mode 100644 nodejs.yaml diff --git a/nodejs.yaml b/nodejs.yaml deleted file mode 100644 index 5eb4f61..0000000 --- a/nodejs.yaml +++ /dev/null @@ -1,66 +0,0 @@ -document: modulemd -version: 1 -data: - summary: Javascript runtime - description: Node.js is a platform built on V8 JavaScript Engine for easily building fast, scalable network applications. - license: - module: GPLv3 - content: - - MIT - - ASL 2.0 - - ISC - - BSD - dependencies: - buildrequires: - base-runtime: f26 - common-build-dependencies: f26 - common-build-dependencies-bootstrap: f26 - shared-userspace: f26 - requires: - base-runtime: master - references: - community: https://fedoraproject.org/wiki/Modularity - documentation: https://fedoraproject.org/wiki/Fedora_Packaging_Guidelines_for_Modules - tracker: https://taiga.fedorainfracloud.org/project/modularity - profiles: - default: - rpms: - - nodejs - - npm - minimal: - rpms: - - nodejs - components: - rpms: - nodejs: - rationale: JavaScript runtime - ref: f26 - buildorder: 0 - npm: - rationale: npm package manager - ref: f26 - buildorder: 1 - # python: - # rationale: build dependency - # ref: f26 - # openssl: - # rationale: build dependency - # ref: f25 - # #compat-openssl10: f26 - # icu: - # rationale: build dependency - # ref: f26 - # libuv: - # rationale: build dependency - # ref: f26 - # zlib: - # rationale: build dependency - # ref: f26 - # gcc: - # rationale: build dependency - # ref: f26 - # #gcc-c++: - # #rationale: build dependency - # #ref: f26 - # #systemtap-sdt-devel: f26 - # #ca-certificates: f26 From 8951f328666c0efea558c536758001088cf598dc Mon Sep 17 00:00:00 2001 From: Zuzana Svetlikova Date: Tue, 6 Jun 2017 14:40:56 +0200 Subject: [PATCH 15/48] Require http-parser-devel, enable bootstrap --- nodejs.spec | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/nodejs.spec b/nodejs.spec index 22129f7..503471e 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -1,6 +1,6 @@ %global with_debug 1 -%{!?_with_bootstrap: %global bootstrap 0} +%{!?_with_bootstrap: %global bootstrap 1} %{?!_pkgdocdir:%global _pkgdocdir %{_docdir}/%{name}-%{version}} @@ -21,7 +21,7 @@ %global nodejs_patch 3 %global nodejs_abi %{nodejs_major}.%{nodejs_minor} %global nodejs_version %{nodejs_major}.%{nodejs_minor}.%{nodejs_patch} -%global nodejs_release 2 +%global nodejs_release 3 # == Bundled Dependency Versions == # v8 - from deps/v8/include/v8-version.h @@ -203,6 +203,9 @@ Requires: libuv-devel%{?_isa} Requires: openssl-devel%{?_isa} Requires: zlib-devel%{?_isa} Requires: nodejs-packaging +%if ! 0%{?bootstrap} +Requires: http-parser-devel%{?_isa} +%endif %description devel Development headers for the Node.js JavaScript runtime. @@ -447,6 +450,10 @@ NODE_PATH=%{buildroot}%{_prefix}/lib/node_modules %{buildroot}/%{_bindir}/node - %{_pkgdocdir}/npm/doc %changelog +* Tue Jun 06 2017 Zuzana Svetlikova - 1:6.10.3-3 +- Require http-parser-devel when using system http-parser +- enable bootstraping + * Thu May 11 2017 Zuzana Svetlikova - 1:6.10.3-2 - Provide bundled http-parser in case of boostraping From 573f204607a68d7dab56097adc53b9ad3ec7d54f Mon Sep 17 00:00:00 2001 From: Zuzana Svetlikova Date: Thu, 29 Jun 2017 13:17:05 +0200 Subject: [PATCH 16/48] Update to 6.11.0 --- .gitignore | 1 + nodejs.spec | 18 +++++++++++++----- sources | 2 +- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index e92f336..863b931 100644 --- a/.gitignore +++ b/.gitignore @@ -67,3 +67,4 @@ /node-v6.10.1-stripped.tar.gz /node-v6.10.2-stripped.tar.gz /node-v6.10.3-stripped.tar.gz +/node-v6.11.0-stripped.tar.gz diff --git a/nodejs.spec b/nodejs.spec index 0c01718..65829e4 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -15,8 +15,8 @@ # than a Fedora release lifecycle. %global nodejs_epoch 1 %global nodejs_major 6 -%global nodejs_minor 10 -%global nodejs_patch 3 +%global nodejs_minor 11 +%global nodejs_patch 0 %global nodejs_abi %{nodejs_major}.%{nodejs_minor} %global nodejs_version %{nodejs_major}.%{nodejs_minor}.%{nodejs_patch} %global nodejs_release 1 @@ -26,7 +26,7 @@ %global v8_major 5 %global v8_minor 1 %global v8_build 281 -%global v8_patch 101 +%global v8_patch 102 # V8 presently breaks ABI at least every x.y release while never bumping SONAME %global v8_abi %{v8_major}.%{v8_minor} %global v8_version %{v8_major}.%{v8_minor}.%{v8_build}.%{v8_patch} @@ -93,7 +93,8 @@ Patch2: 0002-Use-openssl-1.0.1.patch # use system certificates instead of the bundled ones # Backported from upstream 7.5.0+ -Patch3: 0003-crypto-Use-system-CAs-instead-of-using-bundled-ones.patch +# merged in 6.11.0 +#Patch3: 0003-crypto-Use-system-CAs-instead-of-using-bundled-ones.patch # Backported upstream patch to allow building with GCC 7 from # https://github.com/nodejs/node/commit/2bbee49e6f170a5d6628444a7c9a2235fe0dd929 @@ -106,6 +107,7 @@ Patch5: EPEL01-openssl101-compat.patch BuildRequires: python-devel BuildRequires: libuv-devel >= 1:1.9.1 Requires: libuv >= 1:1.9.1 +Requires: http-parser >= 2.7.0 BuildRequires: libicu-devel BuildRequires: zlib-devel BuildRequires: gcc >= 4.8.0 @@ -186,6 +188,7 @@ Summary: JavaScript runtime - development headers Group: Development/Languages Requires: %{name}%{?_isa} = %{epoch}:%{nodejs_version}-%{nodejs_release}%{?dist} Requires: libuv-devel%{?_isa} +Requires: http-parser-devel${?_isa} Requires: openssl-devel%{?_isa} Requires: zlib-devel%{?_isa} Requires: nodejs-packaging @@ -240,7 +243,7 @@ rm -rf deps/http-parser \ deps/zlib # Use system CA certificates -%patch3 -p1 +#%patch3 -p1 # Fix GCC7 build %patch4 -p1 @@ -418,6 +421,11 @@ NODE_PATH=%{buildroot}%{_prefix}/lib/node_modules %{buildroot}/%{_bindir}/node - %{_pkgdocdir}/npm/doc %changelog +* Thu Jun 29 2017 Zuzana Svetlikova - 1:6.11.0-1 +- Update to 6.11.0 +- https://nodejs.org/en/blog/release/v6.10.3/ +- explicitly depend on http-parser (RHBZ#1457763) + * Wed May 10 2017 Stephen Gallagher - 1:6.10.3-1 - Update to 6.10.3 (LTS) - https://nodejs.org/en/blog/release/v6.10.3/ diff --git a/sources b/sources index fee1521..faa059a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (node-v6.10.3-stripped.tar.gz) = 0750e6c1597c2379df59fafb5945d3af7d59f371c7996c56394f0cac5361627cebde3f6e46468ef76b0eb6d242e77538ec0c8136f75b98c140f1c6235df596bd +SHA512 (node-v6.11.0-stripped.tar.gz) = ad7602bea476367ea2a202367e62ed5bdb67dfcd4b1515b4df618d33ceb31f1b88206c63623718f9b43d01d53033602c56ca34ac846e4143a3e4499f8e54a617 From 75424e32a84f76f0681fee3f04d21c28c1575aa5 Mon Sep 17 00:00:00 2001 From: Zuzana Svetlikova Date: Mon, 10 Jul 2017 12:02:33 +0200 Subject: [PATCH 17/48] Fix typo --- nodejs.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/nodejs.spec b/nodejs.spec index 65829e4..5006cf0 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -19,7 +19,7 @@ %global nodejs_patch 0 %global nodejs_abi %{nodejs_major}.%{nodejs_minor} %global nodejs_version %{nodejs_major}.%{nodejs_minor}.%{nodejs_patch} -%global nodejs_release 1 +%global nodejs_release 2 # == Bundled Dependency Versions == # v8 - from deps/v8/include/v8-version.h @@ -188,7 +188,7 @@ Summary: JavaScript runtime - development headers Group: Development/Languages Requires: %{name}%{?_isa} = %{epoch}:%{nodejs_version}-%{nodejs_release}%{?dist} Requires: libuv-devel%{?_isa} -Requires: http-parser-devel${?_isa} +Requires: http-parser-devel%{?_isa} Requires: openssl-devel%{?_isa} Requires: zlib-devel%{?_isa} Requires: nodejs-packaging @@ -421,6 +421,9 @@ NODE_PATH=%{buildroot}%{_prefix}/lib/node_modules %{buildroot}/%{_bindir}/node - %{_pkgdocdir}/npm/doc %changelog +* Thu Jun 29 2017 Zuzana Svetlikova - 1:6.11.0-2 +- Fix typo + * Thu Jun 29 2017 Zuzana Svetlikova - 1:6.11.0-1 - Update to 6.11.0 - https://nodejs.org/en/blog/release/v6.10.3/ From 4719482336d115131f47f0e73e9e31b9e92b78c7 Mon Sep 17 00:00:00 2001 From: Zuzana Svetlikova Date: Thu, 13 Jul 2017 10:11:04 +0200 Subject: [PATCH 18/48] Security update --- .gitignore | 1 + sources | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 863b931..7739b68 100644 --- a/.gitignore +++ b/.gitignore @@ -68,3 +68,4 @@ /node-v6.10.2-stripped.tar.gz /node-v6.10.3-stripped.tar.gz /node-v6.11.0-stripped.tar.gz +/node-v6.11.1-stripped.tar.gz diff --git a/sources b/sources index faa059a..d1795c8 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (node-v6.11.0-stripped.tar.gz) = ad7602bea476367ea2a202367e62ed5bdb67dfcd4b1515b4df618d33ceb31f1b88206c63623718f9b43d01d53033602c56ca34ac846e4143a3e4499f8e54a617 +SHA512 (node-v6.11.1-stripped.tar.gz) = c67b60a38b6deeb71ac7f18caf02a2ddd6d4f636c5241002d8e2dd3bcf486185a09cef37a5e5578ffa68ca180789bfa25e474dac1812e4200ec0be323343a39b From 40eee81a3b83e2031f99187a2e75efe2ec0ab11d Mon Sep 17 00:00:00 2001 From: Zuzana Svetlikova Date: Thu, 13 Jul 2017 10:13:16 +0200 Subject: [PATCH 19/48] Update spec --- nodejs.spec | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/nodejs.spec b/nodejs.spec index 5006cf0..4cbd312 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -16,17 +16,17 @@ %global nodejs_epoch 1 %global nodejs_major 6 %global nodejs_minor 11 -%global nodejs_patch 0 +%global nodejs_patch 1 %global nodejs_abi %{nodejs_major}.%{nodejs_minor} %global nodejs_version %{nodejs_major}.%{nodejs_minor}.%{nodejs_patch} -%global nodejs_release 2 +%global nodejs_release 1 # == Bundled Dependency Versions == # v8 - from deps/v8/include/v8-version.h %global v8_major 5 %global v8_minor 1 %global v8_build 281 -%global v8_patch 102 +%global v8_patch 103 # V8 presently breaks ABI at least every x.y release while never bumping SONAME %global v8_abi %{v8_major}.%{v8_minor} %global v8_version %{v8_major}.%{v8_minor}.%{v8_build}.%{v8_patch} @@ -421,6 +421,9 @@ NODE_PATH=%{buildroot}%{_prefix}/lib/node_modules %{buildroot}/%{_bindir}/node - %{_pkgdocdir}/npm/doc %changelog +* Thu Jul 13 2017 Zuzana Svetlikova - 1:6.11.1-1 +- Security update (https://nodejs.org/en/blog/vulnerability/july-2017-security-releases/) + * Thu Jun 29 2017 Zuzana Svetlikova - 1:6.11.0-2 - Fix typo From c27e539f1fd9acde3cb3711aaa54d0b4e11a7014 Mon Sep 17 00:00:00 2001 From: Zuzana Svetlikova Date: Fri, 14 Jul 2017 10:41:18 +0200 Subject: [PATCH 20/48] Security update --- .gitignore | 1 + nodejs.spec | 7 +++++-- sources | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 863b931..7739b68 100644 --- a/.gitignore +++ b/.gitignore @@ -68,3 +68,4 @@ /node-v6.10.2-stripped.tar.gz /node-v6.10.3-stripped.tar.gz /node-v6.11.0-stripped.tar.gz +/node-v6.11.1-stripped.tar.gz diff --git a/nodejs.spec b/nodejs.spec index 5c5adac..e8b4c8a 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -18,7 +18,7 @@ %global nodejs_epoch 1 %global nodejs_major 6 %global nodejs_minor 11 -%global nodejs_patch 0 +%global nodejs_patch 1 %global nodejs_abi %{nodejs_major}.%{nodejs_minor} %global nodejs_version %{nodejs_major}.%{nodejs_minor}.%{nodejs_patch} %global nodejs_release 1 @@ -28,7 +28,7 @@ %global v8_major 5 %global v8_minor 1 %global v8_build 281 -%global v8_patch 102 +%global v8_patch 103 # V8 presently breaks ABI at least every x.y release while never bumping SONAME %global v8_abi %{v8_major}.%{v8_minor} %global v8_version %{v8_major}.%{v8_minor}.%{v8_build}.%{v8_patch} @@ -443,6 +443,9 @@ NODE_PATH=%{buildroot}%{_prefix}/lib/node_modules %{buildroot}/%{_bindir}/node - %{_pkgdocdir}/npm/doc %changelog +* Fri Jul 14 2017 Zuzana Svetlikova - 1:6.11.1-1 +- Security update (https://nodejs.org/en/blog/vulnerability/july-2017-security-releases/) + * Fri Jun 09 2017 Zuzana Svetlikova - 1:6.11.0-1 - Update to 6.11.0 - remove system CA patch since it was merged upstream diff --git a/sources b/sources index 77400eb..2573d80 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (node-v6.11.0-stripped.tar.gz) = a23e0d8461dcf87048555d2e4e62c0bacecf6d2a6a8d6d27ed08f6f0911ec31f9a7abc48ab45478eaf3ba6af593714e628a194340168581f2f9c3c8dbf0c7a1d +SHA512 (node-v6.11.1-stripped.tar.gz) = 5b539c43103422c059034f99cdef25dd6556cf0b08d85cea6e8bc74862c944d368455e6139680c8b00e602cbf807533bdabf2dfa43d714c9864ab8c79679b74e From 30962f42edf387e4732d28828f6b0fb8a4884420 Mon Sep 17 00:00:00 2001 From: Haikel Guemar Date: Wed, 19 Jul 2017 17:30:12 +0200 Subject: [PATCH 21/48] Fix build on RHEL/CentOS (not EPEL) --- nodejs.spec | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nodejs.spec b/nodejs.spec index 4cbd312..e56b21b 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -114,7 +114,7 @@ BuildRequires: gcc >= 4.8.0 BuildRequires: gcc-c++ >= 4.8.0 BuildRequires: http-parser-devel >= 2.7.0 -%if 0%{?epel} +%if 0%{?epel} || 0%{?rhel} BuildRequires: openssl-devel >= 1:1.0.1 %else %if 0%{?fedora} > 25 @@ -168,7 +168,7 @@ Provides: bundled(c-ares) = %{c_ares_version} Provides: bundled(v8) = %{v8_version} # Make sure we keep NPM up to date when we update Node.js -%if 0%{?epel} +%if 0%{?epel} || 0%{?rhel} # EPEL doesn't support Recommends, so make it strict Requires: npm = %{npm_epoch}:%{npm_version}-%{npm_release}%{?dist} %else @@ -248,7 +248,7 @@ rm -rf deps/http-parser \ # Fix GCC7 build %patch4 -p1 -%if 0%{?epel} +%if 0%{?epel} || 0%{?rhel} %patch2 -p1 %patch5 -p1 %endif From d246c5e67e8912d1a2076cf1403dee4eef4ea394 Mon Sep 17 00:00:00 2001 From: Zuzana Svetlikova Date: Tue, 1 Aug 2017 15:10:35 +0200 Subject: [PATCH 22/48] Update to 6.11.2 --- .gitignore | 1 + nodejs.spec | 14 ++++++-------- sources | 2 +- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index 7739b68..a10250b 100644 --- a/.gitignore +++ b/.gitignore @@ -69,3 +69,4 @@ /node-v6.10.3-stripped.tar.gz /node-v6.11.0-stripped.tar.gz /node-v6.11.1-stripped.tar.gz +/node-v6.11.2-stripped.tar.gz diff --git a/nodejs.spec b/nodejs.spec index e8b4c8a..7481c14 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -18,7 +18,7 @@ %global nodejs_epoch 1 %global nodejs_major 6 %global nodejs_minor 11 -%global nodejs_patch 1 +%global nodejs_patch 2 %global nodejs_abi %{nodejs_major}.%{nodejs_minor} %global nodejs_version %{nodejs_major}.%{nodejs_minor}.%{nodejs_patch} %global nodejs_release 1 @@ -99,10 +99,6 @@ Patch1: 0001-Disable-running-gyp-files-for-bundled-deps.patch # EPEL only has OpenSSL 1.0.1, so we need to carry a patch on that platform Patch2: 0002-Use-openssl-1.0.1.patch -# Backported upstream patch to allow building with GCC 7 from -# https://github.com/nodejs/node/commit/2bbee49e6f170a5d6628444a7c9a2235fe0dd929 -Patch4: 0004-Fix-compatibility-with-GCC-7.patch - # RHEL 7 still uses OpenSSL 1.0.1 for now, and it segfaults on SSL # Revert this upstream patch until RHEL 7 upgrades to 1.0.2 Patch5: EPEL01-openssl101-compat.patch @@ -251,9 +247,6 @@ rm -rf deps/icu-small \ deps/uv \ deps/zlib -# Fix GCC7 build -%patch4 -p1 - %if 0%{?epel} %patch2 -p1 %patch5 -p1 @@ -443,6 +436,11 @@ NODE_PATH=%{buildroot}%{_prefix}/lib/node_modules %{buildroot}/%{_bindir}/node - %{_pkgdocdir}/npm/doc %changelog +* Tue Aug 01 2917 Zuzana Svetlikova - 1:6.11.2-1 +- Update to 6.11.2 +- https://nodejs.org/en/blog/release/v6.11.2/ +- gcc 7 patch was backported in upstream + * Fri Jul 14 2017 Zuzana Svetlikova - 1:6.11.1-1 - Security update (https://nodejs.org/en/blog/vulnerability/july-2017-security-releases/) diff --git a/sources b/sources index 2573d80..2adcec3 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (node-v6.11.1-stripped.tar.gz) = 5b539c43103422c059034f99cdef25dd6556cf0b08d85cea6e8bc74862c944d368455e6139680c8b00e602cbf807533bdabf2dfa43d714c9864ab8c79679b74e +SHA512 (node-v6.11.2-stripped.tar.gz) = 037382205b38d1dd693bc40b9c3d2c66b6c9bf4e635b1caaa11e897eaf4411834ca2132fd9c2113833c67cec8fe0764c6475841b8dc3a7477f535bcf28bbf2dd From 61a021e8a041af30a682a51a3fdc17086917752f Mon Sep 17 00:00:00 2001 From: Zuzana Svetlikova Date: Tue, 1 Aug 2017 15:17:45 +0200 Subject: [PATCH 23/48] Fix typo --- nodejs.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nodejs.spec b/nodejs.spec index 7481c14..3190437 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -436,7 +436,7 @@ NODE_PATH=%{buildroot}%{_prefix}/lib/node_modules %{buildroot}/%{_bindir}/node - %{_pkgdocdir}/npm/doc %changelog -* Tue Aug 01 2917 Zuzana Svetlikova - 1:6.11.2-1 +* Tue Aug 01 2017 Zuzana Svetlikova - 1:6.11.2-1 - Update to 6.11.2 - https://nodejs.org/en/blog/release/v6.11.2/ - gcc 7 patch was backported in upstream From fa0911acb9b10bb378ec2b3f1f465b89db1b6bf0 Mon Sep 17 00:00:00 2001 From: Zuzana Svetlikova Date: Wed, 2 Aug 2017 14:06:22 +0200 Subject: [PATCH 24/48] Update to 6.11.2 --- .gitignore | 1 + nodejs.spec | 22 ++++++---------------- sources | 2 +- 3 files changed, 8 insertions(+), 17 deletions(-) diff --git a/.gitignore b/.gitignore index 7739b68..a10250b 100644 --- a/.gitignore +++ b/.gitignore @@ -69,3 +69,4 @@ /node-v6.10.3-stripped.tar.gz /node-v6.11.0-stripped.tar.gz /node-v6.11.1-stripped.tar.gz +/node-v6.11.2-stripped.tar.gz diff --git a/nodejs.spec b/nodejs.spec index e56b21b..848538d 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -16,7 +16,7 @@ %global nodejs_epoch 1 %global nodejs_major 6 %global nodejs_minor 11 -%global nodejs_patch 1 +%global nodejs_patch 2 %global nodejs_abi %{nodejs_major}.%{nodejs_minor} %global nodejs_version %{nodejs_major}.%{nodejs_minor}.%{nodejs_patch} %global nodejs_release 1 @@ -91,15 +91,6 @@ Patch1: 0001-Disable-running-gyp-files-for-bundled-deps.patch # EPEL only has OpenSSL 1.0.1, so we need to carry a patch on that platform Patch2: 0002-Use-openssl-1.0.1.patch -# use system certificates instead of the bundled ones -# Backported from upstream 7.5.0+ -# merged in 6.11.0 -#Patch3: 0003-crypto-Use-system-CAs-instead-of-using-bundled-ones.patch - -# Backported upstream patch to allow building with GCC 7 from -# https://github.com/nodejs/node/commit/2bbee49e6f170a5d6628444a7c9a2235fe0dd929 -Patch4: 0004-Fix-compatibility-with-GCC-7.patch - # RHEL 7 still uses OpenSSL 1.0.1 for now, and it segfaults on SSL # Revert this upstream patch until RHEL 7 upgrades to 1.0.2 Patch5: EPEL01-openssl101-compat.patch @@ -242,12 +233,6 @@ rm -rf deps/http-parser \ deps/uv \ deps/zlib -# Use system CA certificates -#%patch3 -p1 - -# Fix GCC7 build -%patch4 -p1 - %if 0%{?epel} || 0%{?rhel} %patch2 -p1 %patch5 -p1 @@ -421,6 +406,11 @@ NODE_PATH=%{buildroot}%{_prefix}/lib/node_modules %{buildroot}/%{_bindir}/node - %{_pkgdocdir}/npm/doc %changelog +* Wed Aug 02 2017 Zuzana Svetlikova - 1:6.11.2-1 +- Update to 6.11.2 +- https://nodejs.org/en/blog/release/v6.11.2/ +- remove GCC 7 patch merged upstream + * Thu Jul 13 2017 Zuzana Svetlikova - 1:6.11.1-1 - Security update (https://nodejs.org/en/blog/vulnerability/july-2017-security-releases/) diff --git a/sources b/sources index d1795c8..a2ec9ed 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (node-v6.11.1-stripped.tar.gz) = c67b60a38b6deeb71ac7f18caf02a2ddd6d4f636c5241002d8e2dd3bcf486185a09cef37a5e5578ffa68ca180789bfa25e474dac1812e4200ec0be323343a39b +SHA512 (node-v6.11.2-stripped.tar.gz) = f87b65626877ed102f101d095a50a162ca8f471474d6099af40ca27783c6a9da082de4f251325bb51e214395c714b894b22d6d6adb983916e3880c929865703c From dbd58f67405222f5a8eaa9b4a3e0145b1093357e Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Tue, 15 Aug 2017 09:39:45 -0400 Subject: [PATCH 25/48] Temporarily bundle http-parser Resolves: RHBZ#1481470 Signed-off-by: Stephen Gallagher --- ...e-running-gyp-files-for-bundled-deps.patch | 14 +++-- 0002-Use-openssl-1.0.1.patch | 62 +++++++++---------- EPEL01-openssl101-compat.patch | 38 +++++++++--- nodejs.spec | 18 +++--- 4 files changed, 81 insertions(+), 51 deletions(-) diff --git a/0001-Disable-running-gyp-files-for-bundled-deps.patch b/0001-Disable-running-gyp-files-for-bundled-deps.patch index fe9f854..8777f8e 100644 --- a/0001-Disable-running-gyp-files-for-bundled-deps.patch +++ b/0001-Disable-running-gyp-files-for-bundled-deps.patch @@ -1,17 +1,19 @@ -From 54cb96f338bd162dcf1301b7d7a46eea2a56befb Mon Sep 17 00:00:00 2001 +From be1738c229765ad0796b97e842515b5d8834c894 Mon Sep 17 00:00:00 2001 From: Zuzana Svetlikova Date: Wed, 22 Mar 2017 19:13:10 +0100 -Subject: [PATCH] Disable running gyp files for bundled deps +Subject: [PATCH 1/3] Disable running gyp files for bundled deps --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile -index a2b64e63b4..7b0847d1d5 100644 +index cfbd426033c7f2882f77cd60faaf3bb0277e6c57..8ca97d5552ebb328d8d6727531b13843864a6e86 100644 --- a/Makefile +++ b/Makefile -@@ -77,7 +77,7 @@ $(NODE_G_EXE): config.gypi out/Makefile +@@ -75,11 +75,11 @@ $(NODE_EXE): config.gypi out/Makefile + + $(NODE_G_EXE): config.gypi out/Makefile $(MAKE) -C out BUILDTYPE=Debug V=$(V) if [ ! -r $@ -o ! -L $@ ]; then ln -fs out/Debug/$(NODE_EXE) $@; fi @@ -20,6 +22,8 @@ index a2b64e63b4..7b0847d1d5 100644 $(PYTHON) tools/gyp_node.py -f make config.gypi: configure + $(error Missing or stale $@, please run ./$<) + -- -2.12.0 +2.13.5 diff --git a/0002-Use-openssl-1.0.1.patch b/0002-Use-openssl-1.0.1.patch index 4b90ade..b518363 100644 --- a/0002-Use-openssl-1.0.1.patch +++ b/0002-Use-openssl-1.0.1.patch @@ -1,7 +1,7 @@ -From 91d1a67b8cc249af59929cd1a76629a2614860bd Mon Sep 17 00:00:00 2001 +From 2411d250a2789675aa9c902aeea3f0c55b34a4e0 Mon Sep 17 00:00:00 2001 From: Haikel Guemar Date: Tue, 26 Jul 2016 22:50:22 +0200 -Subject: [PATCH 2/4] Use openssl 1.0.1 +Subject: [PATCH 2/3] Use openssl 1.0.1 Based on Solaris patches from upstream #2783 https://github.com/nodejs/node/issues/2783 @@ -14,7 +14,7 @@ https://github.com/nodejs/node/issues/2783 5 files changed, 223 insertions(+), 13 deletions(-) diff --git a/doc/api/tls.md b/doc/api/tls.md -index 3784210ba7b6c046b39d74b45e44538041d35ae2..3c9d72b8d5ef81d15773aed077bd00d2041c9e93 100644 +index b7e5c8f15e2bf4e8604cdd1bc95ea0e98a96b7d6..6b3069f9352ae44d0dab37b3e4b2eebdbc104609 100644 --- a/doc/api/tls.md +++ b/doc/api/tls.md @@ -113,10 +113,16 @@ handshake extensions: @@ -35,7 +35,7 @@ index 3784210ba7b6c046b39d74b45e44538041d35ae2..3c9d72b8d5ef81d15773aed077bd00d2 ### Client-initiated renegotiation attack mitigation diff --git a/src/node_constants.cc b/src/node_constants.cc -index 2e6be8df37c345a383d8a78898daf2a147d90630..239eadbac8ea8e601745a63347a8bb301c22d1b1 100644 +index 750df9c669bad38e0cc05158bd8ef1c90d810f74..d693851c4bb6c247cfda7436c5ea0baf5bebc886 100644 --- a/src/node_constants.cc +++ b/src/node_constants.cc @@ -12,11 +12,14 @@ @@ -73,10 +73,10 @@ index 2e6be8df37c345a383d8a78898daf2a147d90630..239eadbac8ea8e601745a63347a8bb30 // file access modes NODE_DEFINE_CONSTANT(target, O_RDONLY); diff --git a/src/node_crypto.cc b/src/node_crypto.cc -index 482ec230c0f4500b63b705d705a142e63ff179e5..c5630f30d0bef75ced53b36062bb1f0324dbdb9d 100644 +index f654dcf60cb42479b06fcd2be96e5bda287606c7..7aaff07fb513945d6272f238814a4cd297da7b0e 100644 --- a/src/node_crypto.cc +++ b/src/node_crypto.cc -@@ -22,10 +22,86 @@ +@@ -26,10 +26,86 @@ #include // INT_MAX #include #include @@ -163,7 +163,7 @@ index 482ec230c0f4500b63b705d705a142e63ff179e5..c5630f30d0bef75ced53b36062bb1f03 if (!Buffer::HasInstance(val) && !val->IsString()) { \ return env->ThrowTypeError(prefix " must be a string or a buffer"); \ } \ -@@ -161,11 +237,15 @@ template int SSLWrap::SelectNextProtoCallback( +@@ -165,11 +241,15 @@ template int SSLWrap::SelectNextProtoCallback( #ifdef NODE__HAVE_TLSEXT_STATUS_CB template int SSLWrap::TLSExtStatusCallback(SSL* s, void* arg); #endif @@ -179,7 +179,7 @@ index 482ec230c0f4500b63b705d705a142e63ff179e5..c5630f30d0bef75ced53b36062bb1f03 #ifdef TLSEXT_TYPE_application_layer_protocol_negotiation template int SSLWrap::SelectALPNCallback( SSL* s, -@@ -281,12 +361,16 @@ void SecureContext::Initialize(Environment* env, Local target) { +@@ -295,12 +375,16 @@ void SecureContext::Initialize(Environment* env, Local target) { env->SetProtoMethod(t, "setCert", SecureContext::SetCert); env->SetProtoMethod(t, "addCACert", SecureContext::AddCACert); env->SetProtoMethod(t, "addCRL", SecureContext::AddCRL); @@ -196,7 +196,7 @@ index 482ec230c0f4500b63b705d705a142e63ff179e5..c5630f30d0bef75ced53b36062bb1f03 SecureContext::SetSessionIdContext); env->SetProtoMethod(t, "setSessionTimeout", SecureContext::SetSessionTimeout); -@@ -514,12 +598,24 @@ int SSL_CTX_use_certificate_chain(SSL_CTX* ctx, +@@ -531,12 +615,24 @@ int SSL_CTX_use_certificate_chain(SSL_CTX* ctx, SSL_CTX_clear_extra_chain_certs(ctx); for (int i = 0; i < sk_X509_num(extra_certs); i++) { @@ -223,7 +223,7 @@ index 482ec230c0f4500b63b705d705a142e63ff179e5..c5630f30d0bef75ced53b36062bb1f03 ret = 0; *issuer = nullptr; goto end; -@@ -868,10 +964,11 @@ void SecureContext::SetCiphers(const FunctionCallbackInfo& args) { +@@ -887,10 +983,11 @@ void SecureContext::SetCiphers(const FunctionCallbackInfo& args) { const node::Utf8Value ciphers(args.GetIsolate(), args[0]); SSL_CTX_set_cipher_list(sc->ctx_, *ciphers); } @@ -235,7 +235,7 @@ index 482ec230c0f4500b63b705d705a142e63ff179e5..c5630f30d0bef75ced53b36062bb1f03 ASSIGN_OR_RETURN_UNWRAP(&sc, args.Holder()); Environment* env = sc->env(); -@@ -895,12 +992,14 @@ void SecureContext::SetECDHCurve(const FunctionCallbackInfo& args) { +@@ -914,12 +1011,14 @@ void SecureContext::SetECDHCurve(const FunctionCallbackInfo& args) { SSL_CTX_set_options(sc->ctx_, SSL_OP_SINGLE_ECDH_USE); SSL_CTX_set_tmp_ecdh(sc->ctx_, ecdh); @@ -250,7 +250,7 @@ index 482ec230c0f4500b63b705d705a142e63ff179e5..c5630f30d0bef75ced53b36062bb1f03 ASSIGN_OR_RETURN_UNWRAP(&sc, args.This()); Environment* env = sc->env(); ClearErrorOnReturn clear_error_on_return; -@@ -935,10 +1034,11 @@ void SecureContext::SetDHParam(const FunctionCallbackInfo& args) { +@@ -954,10 +1053,11 @@ void SecureContext::SetDHParam(const FunctionCallbackInfo& args) { DH_free(dh); if (!r) @@ -262,7 +262,7 @@ index 482ec230c0f4500b63b705d705a142e63ff179e5..c5630f30d0bef75ced53b36062bb1f03 void SecureContext::SetOptions(const FunctionCallbackInfo& args) { SecureContext* sc; ASSIGN_OR_RETURN_UNWRAP(&sc, args.Holder()); -@@ -1952,10 +2052,11 @@ void SSLWrap::GetEphemeralKeyInfo( +@@ -1977,10 +2077,11 @@ void SSLWrap::GetEphemeralKeyInfo( info->Set(env->type_string(), FIXED_ONE_BYTE_STRING(env->isolate(), "DH")); info->Set(env->size_string(), @@ -274,7 +274,7 @@ index 482ec230c0f4500b63b705d705a142e63ff179e5..c5630f30d0bef75ced53b36062bb1f03 EC_KEY* ec = EVP_PKEY_get1_EC_KEY(key); int nid = EC_GROUP_get_curve_name(EC_KEY_get0_group(ec)); EC_KEY_free(ec); -@@ -1964,10 +2065,11 @@ void SSLWrap::GetEphemeralKeyInfo( +@@ -1989,10 +2090,11 @@ void SSLWrap::GetEphemeralKeyInfo( info->Set(env->name_string(), OneByteString(args.GetIsolate(), OBJ_nid2sn(nid))); info->Set(env->size_string(), @@ -286,7 +286,7 @@ index 482ec230c0f4500b63b705d705a142e63ff179e5..c5630f30d0bef75ced53b36062bb1f03 } return args.GetReturnValue().Set(info); -@@ -2382,11 +2484,16 @@ void SSLWrap::WaitForCertCb(CertCb cb, void* arg) { +@@ -2407,11 +2509,16 @@ void SSLWrap::WaitForCertCb(CertCb cb, void* arg) { cert_cb_arg_ = arg; } @@ -303,7 +303,7 @@ index 482ec230c0f4500b63b705d705a142e63ff179e5..c5630f30d0bef75ced53b36062bb1f03 if (!w->is_server()) return 1; -@@ -2451,23 +2558,57 @@ void SSLWrap::CertCbDone(const FunctionCallbackInfo& args) { +@@ -2476,23 +2583,57 @@ void SSLWrap::CertCbDone(const FunctionCallbackInfo& args) { ASSIGN_OR_RETURN_UNWRAP(&sc, ctx.As()); w->sni_context_.Reset(); w->sni_context_.Reset(env->isolate(), ctx); @@ -371,7 +371,7 @@ index 482ec230c0f4500b63b705d705a142e63ff179e5..c5630f30d0bef75ced53b36062bb1f03 if (!rv) { unsigned long err = ERR_get_error(); // NOLINT(runtime/int) if (!err) -@@ -2527,14 +2668,18 @@ void SSLWrap::SetSNIContext(SecureContext* sc) { +@@ -2552,14 +2693,18 @@ void SSLWrap::SetSNIContext(SecureContext* sc) { } @@ -391,7 +391,7 @@ index 482ec230c0f4500b63b705d705a142e63ff179e5..c5630f30d0bef75ced53b36062bb1f03 // NOTE: `SSL_set_client_CA_list` takes the ownership of `list` SSL_set_client_CA_list(ssl_, list); -@@ -2808,11 +2953,15 @@ inline int VerifyCallback(int preverify_ok, X509_STORE_CTX* ctx) { +@@ -2871,11 +3016,15 @@ inline int VerifyCallback(int preverify_ok, X509_STORE_CTX* ctx) { // Server does not need to check the whitelist. SSL* ssl = static_cast( @@ -402,12 +402,12 @@ index 482ec230c0f4500b63b705d705a142e63ff179e5..c5630f30d0bef75ced53b36062bb1f03 +#else + if (ssl->server) +#endif - return 1; + return CHECK_OK; // Client needs to check if the server cert is listed in the // whitelist when it is issued by the specific rootCAs. CheckResult ret = CheckWhitelistedServerCert(ctx); -@@ -2891,11 +3040,25 @@ void Connection::New(const FunctionCallbackInfo& args) { +@@ -2954,11 +3103,25 @@ void Connection::New(const FunctionCallbackInfo& args) { if (is_server) SSL_set_info_callback(conn->ssl_, SSLInfoCallback); @@ -433,7 +433,7 @@ index 482ec230c0f4500b63b705d705a142e63ff179e5..c5630f30d0bef75ced53b36062bb1f03 if (is_server) { SSL_CTX_set_tlsext_servername_callback(sc->ctx_, SelectSNIContextCallback_); } else if (args[2]->IsString()) { -@@ -4476,10 +4639,11 @@ void PublicKeyCipher::Cipher(const FunctionCallbackInfo& args) { +@@ -4541,10 +4704,11 @@ void PublicKeyCipher::Cipher(const FunctionCallbackInfo& args) { args.GetReturnValue().Set(vbuf); delete[] out_value; } @@ -445,7 +445,7 @@ index 482ec230c0f4500b63b705d705a142e63ff179e5..c5630f30d0bef75ced53b36062bb1f03 const PropertyAttribute attributes = static_cast(v8::ReadOnly | v8::DontDelete); -@@ -4877,12 +5041,14 @@ bool DiffieHellman::VerifyContext() { +@@ -4942,12 +5106,14 @@ bool DiffieHellman::VerifyContext() { if (!DH_check(dh, &codes)) return false; verifyError_ = codes; @@ -460,7 +460,7 @@ index 482ec230c0f4500b63b705d705a142e63ff179e5..c5630f30d0bef75ced53b36062bb1f03 Local t = env->NewFunctionTemplate(New); -@@ -5106,10 +5272,11 @@ void ECDH::SetPrivateKey(const FunctionCallbackInfo& args) { +@@ -5173,10 +5339,11 @@ void ECDH::SetPrivateKey(const FunctionCallbackInfo& args) { return env->ThrowError("Failed to set generated public key"); } @@ -472,7 +472,7 @@ index 482ec230c0f4500b63b705d705a142e63ff179e5..c5630f30d0bef75ced53b36062bb1f03 void ECDH::SetPublicKey(const FunctionCallbackInfo& args) { Environment* env = Environment::GetCurrent(args); -@@ -5659,10 +5826,11 @@ void GetHashes(const FunctionCallbackInfo& args) { +@@ -5728,10 +5895,11 @@ void GetHashes(const FunctionCallbackInfo& args) { EVP_MD_do_all_sorted(array_push_back, &ctx); args.GetReturnValue().Set(ctx.arr); } @@ -484,7 +484,7 @@ index 482ec230c0f4500b63b705d705a142e63ff179e5..c5630f30d0bef75ced53b36062bb1f03 const size_t num_curves = EC_get_builtin_curves(nullptr, 0); Local arr = Array::New(env->isolate(), num_curves); EC_builtin_curve* curves; -@@ -5683,10 +5851,11 @@ void GetCurves(const FunctionCallbackInfo& args) { +@@ -5752,10 +5920,11 @@ void GetCurves(const FunctionCallbackInfo& args) { free(curves); } @@ -496,7 +496,7 @@ index 482ec230c0f4500b63b705d705a142e63ff179e5..c5630f30d0bef75ced53b36062bb1f03 bool VerifySpkac(const char* data, unsigned int len) { bool i = 0; EVP_PKEY* pkey = nullptr; -@@ -5995,12 +6164,16 @@ void InitCrypto(Local target, +@@ -6063,12 +6232,16 @@ void InitCrypto(Local target, Environment* env = Environment::GetCurrent(context); SecureContext::Initialize(env, target); @@ -513,7 +513,7 @@ index 482ec230c0f4500b63b705d705a142e63ff179e5..c5630f30d0bef75ced53b36062bb1f03 Sign::Initialize(env, target); Verify::Initialize(env, target); -@@ -6016,11 +6189,13 @@ void InitCrypto(Local target, +@@ -6084,11 +6257,13 @@ void InitCrypto(Local target, env->SetMethod(target, "randomBytes", RandomBytes); env->SetMethod(target, "timingSafeEqual", TimingSafeEqual); env->SetMethod(target, "getSSLCiphers", GetSSLCiphers); @@ -528,7 +528,7 @@ index 482ec230c0f4500b63b705d705a142e63ff179e5..c5630f30d0bef75ced53b36062bb1f03 EVP_PKEY_encrypt>); env->SetMethod(target, "privateDecrypt", diff --git a/src/node_crypto.h b/src/node_crypto.h -index 175206c40df58602b0c24d039b8b5a8bb6f56ba3..5ecc43b08d0b4d97311f09271a26f5a735a6e018 100644 +index 38f49ba5a05063438372471b4a58036190954cd3..8304e719719dae41757071b4463f8631cb1e442f 100644 --- a/src/node_crypto.h +++ b/src/node_crypto.h @@ -16,12 +16,16 @@ @@ -620,10 +620,10 @@ index 175206c40df58602b0c24d039b8b5a8bb6f56ba3..5ecc43b08d0b4d97311f09271a26f5a7 void SetEngine(const v8::FunctionCallbackInfo& args); #endif // !OPENSSL_NO_ENGINE diff --git a/src/tls_wrap.cc b/src/tls_wrap.cc -index d1b1aeccdd95b00b3fd0421c08fd7816cd70d182..a6e63d7c1ccc81e6f7d782dffe833234b003de15 100644 +index 8eab962a66f61c3f3020c59f4db472f286856d97..5d741576720b9e3a0fbc50b08f8f3ebd715148dc 100644 --- a/src/tls_wrap.cc +++ b/src/tls_wrap.cc -@@ -140,11 +140,19 @@ void TLSWrap::InitSSL() { +@@ -141,11 +141,19 @@ void TLSWrap::InitSSL() { } #endif // SSL_CTRL_SET_TLSEXT_SERVERNAME_CB @@ -644,5 +644,5 @@ index d1b1aeccdd95b00b3fd0421c08fd7816cd70d182..a6e63d7c1ccc81e6f7d782dffe833234 } else if (is_client()) { // Enough space for server response (hello, cert) -- -2.12.0 +2.13.5 diff --git a/EPEL01-openssl101-compat.patch b/EPEL01-openssl101-compat.patch index f419f95..e35bd42 100644 --- a/EPEL01-openssl101-compat.patch +++ b/EPEL01-openssl101-compat.patch @@ -1,7 +1,20 @@ -diff -ru a/src/node_crypto.cc b/src/node_crypto.cc ---- a/src/node_crypto.cc 2017-03-31 22:39:56.483283868 +0200 -+++ b/src/node_crypto.cc 2017-03-31 22:45:36.250267750 +0200 -@@ -851,8 +851,6 @@ +From 655af65a132fe7cea8aeff4f8cbc9d06181f3d2e Mon Sep 17 00:00:00 2001 +From: Stephen Gallagher +Date: Tue, 15 Aug 2017 09:34:07 -0400 +Subject: [PATCH 3/3] EPEL openssl 1.0.1 + +--- + src/node_crypto.cc | 2 -- + src/node_crypto.h | 7 +++++++ + 2 files changed, 7 insertions(+), 2 deletions(-) + +diff --git a/src/node_crypto.cc b/src/node_crypto.cc +index 7aaff07fb513945d6272f238814a4cd297da7b0e..b5fb547ce35b4c66e8a52de9324f83f9a25aff7a 100644 +--- a/src/node_crypto.cc ++++ b/src/node_crypto.cc +@@ -959,12 +959,10 @@ void SecureContext::AddRootCerts(const FunctionCallbackInfo& args) { + ERR_error_string(err, nullptr)); + } } } @@ -10,10 +23,15 @@ diff -ru a/src/node_crypto.cc b/src/node_crypto.cc SSL_CTX_set_cert_store(sc->ctx_, root_cert_store); } -diff -ru a/src/node_crypto.h b/src/node_crypto.h ---- a/src/node_crypto.h 2017-03-21 20:43:33.000000000 +0100 -+++ b/src/node_crypto.h 2017-03-31 22:43:15.548183432 +0200 -@@ -145,6 +145,13 @@ + + void SecureContext::SetCiphers(const FunctionCallbackInfo& args) { +diff --git a/src/node_crypto.h b/src/node_crypto.h +index 8304e719719dae41757071b4463f8631cb1e442f..a5161aa502e56a6ceb9522ce0ad9c8a677291081 100644 +--- a/src/node_crypto.h ++++ b/src/node_crypto.h +@@ -151,10 +151,17 @@ class SecureContext : public BaseObject { + if (!ctx_) { + return; } env()->isolate()->AdjustAmountOfExternalAllocatedMemory(-kExternalSize); @@ -27,4 +45,8 @@ diff -ru a/src/node_crypto.h b/src/node_crypto.h SSL_CTX_free(ctx_); if (cert_ != nullptr) X509_free(cert_); + if (issuer_ != nullptr) + X509_free(issuer_); +-- +2.13.5 diff --git a/nodejs.spec b/nodejs.spec index 848538d..a8dce24 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -19,7 +19,7 @@ %global nodejs_patch 2 %global nodejs_abi %{nodejs_major}.%{nodejs_minor} %global nodejs_version %{nodejs_major}.%{nodejs_minor}.%{nodejs_patch} -%global nodejs_release 1 +%global nodejs_release 1.1 # == Bundled Dependency Versions == # v8 - from deps/v8/include/v8-version.h @@ -89,6 +89,8 @@ Source7: nodejs_native.attr Patch1: 0001-Disable-running-gyp-files-for-bundled-deps.patch # EPEL only has OpenSSL 1.0.1, so we need to carry a patch on that platform +# RHEL 7.4 now has 1.0.2, but as of this writing, CentOS hasn't picked it up +# yet. Drop the openssl 1.0.1 compatibility patches once this happens. Patch2: 0002-Use-openssl-1.0.1.patch # RHEL 7 still uses OpenSSL 1.0.1 for now, and it segfaults on SSL @@ -98,12 +100,12 @@ Patch5: EPEL01-openssl101-compat.patch BuildRequires: python-devel BuildRequires: libuv-devel >= 1:1.9.1 Requires: libuv >= 1:1.9.1 -Requires: http-parser >= 2.7.0 +#Requires: http-parser >= 2.7.0 BuildRequires: libicu-devel BuildRequires: zlib-devel BuildRequires: gcc >= 4.8.0 BuildRequires: gcc-c++ >= 4.8.0 -BuildRequires: http-parser-devel >= 2.7.0 +#BuildRequires: http-parser-devel >= 2.7.0 %if 0%{?epel} || 0%{?rhel} BuildRequires: openssl-devel >= 1:1.0.1 @@ -179,7 +181,7 @@ Summary: JavaScript runtime - development headers Group: Development/Languages Requires: %{name}%{?_isa} = %{epoch}:%{nodejs_version}-%{nodejs_release}%{?dist} Requires: libuv-devel%{?_isa} -Requires: http-parser-devel%{?_isa} +#Requires: http-parser-devel%{?_isa} Requires: openssl-devel%{?_isa} Requires: zlib-devel%{?_isa} Requires: nodejs-packaging @@ -228,8 +230,7 @@ The API documentation for the Node.js JavaScript runtime. # remove bundled dependencies that we aren't building %patch1 -p1 -rm -rf deps/http-parser \ - deps/icu-small \ +rm -rf deps/icu-small \ deps/uv \ deps/zlib @@ -262,7 +263,6 @@ export CXXFLAGS="$(echo ${CXXFLAGS} | tr '\n\\' ' ')" --shared-openssl \ --shared-zlib \ --shared-libuv \ - --shared-http-parser \ --without-dtrace \ --with-intl=system-icu \ --openssl-use-def-ca-store @@ -406,6 +406,10 @@ NODE_PATH=%{buildroot}%{_prefix}/lib/node_modules %{buildroot}/%{_bindir}/node - %{_pkgdocdir}/npm/doc %changelog +* Tue Aug 15 2017 Stephen Gallagher - 1:6.11.2-1.1 +- Temporarily bundle http-parser +- Resolves: RHBZ#1481470 + * Wed Aug 02 2017 Zuzana Svetlikova - 1:6.11.2-1 - Update to 6.11.2 - https://nodejs.org/en/blog/release/v6.11.2/ From cbf962366198ca870794e3ce93c30f89739739f8 Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Tue, 15 Aug 2017 09:51:47 -0400 Subject: [PATCH 26/48] Add bundled Provides for http-parser --- nodejs.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/nodejs.spec b/nodejs.spec index a8dce24..52cd741 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -19,7 +19,7 @@ %global nodejs_patch 2 %global nodejs_abi %{nodejs_major}.%{nodejs_minor} %global nodejs_version %{nodejs_major}.%{nodejs_minor}.%{nodejs_patch} -%global nodejs_release 1.1 +%global nodejs_release 1.2 # == Bundled Dependency Versions == # v8 - from deps/v8/include/v8-version.h @@ -106,6 +106,7 @@ BuildRequires: zlib-devel BuildRequires: gcc >= 4.8.0 BuildRequires: gcc-c++ >= 4.8.0 #BuildRequires: http-parser-devel >= 2.7.0 +Provides: bundled(http-parser) = 2.7.0 %if 0%{?epel} || 0%{?rhel} BuildRequires: openssl-devel >= 1:1.0.1 @@ -406,6 +407,9 @@ NODE_PATH=%{buildroot}%{_prefix}/lib/node_modules %{buildroot}/%{_bindir}/node - %{_pkgdocdir}/npm/doc %changelog +* Tue Aug 15 2017 Stephen Gallagher - 1:6.11.2-1.2 +- Add bundled Provides for http-parser + * Tue Aug 15 2017 Stephen Gallagher - 1:6.11.2-1.1 - Temporarily bundle http-parser - Resolves: RHBZ#1481470 From efe742cebca003105739176d0bb35e121b901771 Mon Sep 17 00:00:00 2001 From: Zuzana Svetlikova Date: Tue, 22 Aug 2017 13:15:38 +0200 Subject: [PATCH 27/48] Fix gyp patch to include http-parser --- ...le-running-gyp-files-for-bundled-deps.patch | 18 +++++++----------- nodejs.spec | 5 ++++- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/0001-Disable-running-gyp-files-for-bundled-deps.patch b/0001-Disable-running-gyp-files-for-bundled-deps.patch index 8777f8e..2a506f5 100644 --- a/0001-Disable-running-gyp-files-for-bundled-deps.patch +++ b/0001-Disable-running-gyp-files-for-bundled-deps.patch @@ -1,29 +1,25 @@ -From be1738c229765ad0796b97e842515b5d8834c894 Mon Sep 17 00:00:00 2001 +From 55269de7552aebc324cb0333d38d600897555b9c Mon Sep 17 00:00:00 2001 From: Zuzana Svetlikova -Date: Wed, 22 Mar 2017 19:13:10 +0100 -Subject: [PATCH 1/3] Disable running gyp files for bundled deps +Date: Tue, 22 Aug 2017 13:11:56 +0200 +Subject: [PATCH] Disable gyp --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile -index cfbd426033c7f2882f77cd60faaf3bb0277e6c57..8ca97d5552ebb328d8d6727531b13843864a6e86 100644 +index cfbd426033..ee05b63f8f 100644 --- a/Makefile +++ b/Makefile -@@ -75,11 +75,11 @@ $(NODE_EXE): config.gypi out/Makefile - - $(NODE_G_EXE): config.gypi out/Makefile +@@ -77,7 +77,7 @@ $(NODE_G_EXE): config.gypi out/Makefile $(MAKE) -C out BUILDTYPE=Debug V=$(V) if [ ! -r $@ -o ! -L $@ ]; then ln -fs out/Debug/$(NODE_EXE) $@; fi -out/Makefile: common.gypi deps/uv/uv.gyp deps/http_parser/http_parser.gyp deps/zlib/zlib.gyp deps/v8/build/toolchain.gypi deps/v8/build/features.gypi deps/v8/tools/gyp/v8.gyp node.gyp config.gypi -+out/Makefile: common.gypi deps/v8/build/toolchain.gypi deps/v8/build/features.gypi deps/v8/tools/gyp/v8.gyp node.gyp config.gypi ++out/Makefile: common.gypi deps/http_parser/http_parser.gyp deps/v8/build/toolchain.gypi deps/v8/build/features.gypi deps/v8/tools/gyp/v8.gyp node.gyp config.gypi $(PYTHON) tools/gyp_node.py -f make config.gypi: configure - $(error Missing or stale $@, please run ./$<) - -- -2.13.5 +2.14.1 diff --git a/nodejs.spec b/nodejs.spec index 52cd741..14ae4bb 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -19,7 +19,7 @@ %global nodejs_patch 2 %global nodejs_abi %{nodejs_major}.%{nodejs_minor} %global nodejs_version %{nodejs_major}.%{nodejs_minor}.%{nodejs_patch} -%global nodejs_release 1.2 +%global nodejs_release 1.3 # == Bundled Dependency Versions == # v8 - from deps/v8/include/v8-version.h @@ -407,6 +407,9 @@ NODE_PATH=%{buildroot}%{_prefix}/lib/node_modules %{buildroot}/%{_bindir}/node - %{_pkgdocdir}/npm/doc %changelog +* Tue Aug 22 2017 Zuzana Svetlikova - 1:6.11.2-1.3 +- Run gyp on http-parser + * Tue Aug 15 2017 Stephen Gallagher - 1:6.11.2-1.2 - Add bundled Provides for http-parser From 001b20df9c2b9c2e04d1bb995e6793d68b26b269 Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Wed, 23 Aug 2017 12:00:54 -0400 Subject: [PATCH 28/48] Move to requiring OpenSSL 1.0.2 Unbundle http-parser again. --- ...e-running-gyp-files-for-bundled-deps.patch | 18 +- 0002-Use-openssl-1.0.1.patch | 648 ------------------ ...em-CAs-instead-of-using-bundled-ones.patch | 84 --- 0004-Fix-compatibility-with-GCC-7.patch | 112 --- nodejs.spec | 37 +- 5 files changed, 23 insertions(+), 876 deletions(-) delete mode 100644 0002-Use-openssl-1.0.1.patch delete mode 100644 0003-crypto-Use-system-CAs-instead-of-using-bundled-ones.patch delete mode 100644 0004-Fix-compatibility-with-GCC-7.patch diff --git a/0001-Disable-running-gyp-files-for-bundled-deps.patch b/0001-Disable-running-gyp-files-for-bundled-deps.patch index 2a506f5..287cd22 100644 --- a/0001-Disable-running-gyp-files-for-bundled-deps.patch +++ b/0001-Disable-running-gyp-files-for-bundled-deps.patch @@ -1,25 +1,29 @@ -From 55269de7552aebc324cb0333d38d600897555b9c Mon Sep 17 00:00:00 2001 +From be1738c229765ad0796b97e842515b5d8834c894 Mon Sep 17 00:00:00 2001 From: Zuzana Svetlikova -Date: Tue, 22 Aug 2017 13:11:56 +0200 -Subject: [PATCH] Disable gyp +Date: Wed, 22 Mar 2017 19:13:10 +0100 +Subject: [PATCH] Disable running gyp files for bundled deps --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile -index cfbd426033..ee05b63f8f 100644 +index cfbd426033c7f2882f77cd60faaf3bb0277e6c57..8ca97d5552ebb328d8d6727531b13843864a6e86 100644 --- a/Makefile +++ b/Makefile -@@ -77,7 +77,7 @@ $(NODE_G_EXE): config.gypi out/Makefile +@@ -75,11 +75,11 @@ $(NODE_EXE): config.gypi out/Makefile + + $(NODE_G_EXE): config.gypi out/Makefile $(MAKE) -C out BUILDTYPE=Debug V=$(V) if [ ! -r $@ -o ! -L $@ ]; then ln -fs out/Debug/$(NODE_EXE) $@; fi -out/Makefile: common.gypi deps/uv/uv.gyp deps/http_parser/http_parser.gyp deps/zlib/zlib.gyp deps/v8/build/toolchain.gypi deps/v8/build/features.gypi deps/v8/tools/gyp/v8.gyp node.gyp config.gypi -+out/Makefile: common.gypi deps/http_parser/http_parser.gyp deps/v8/build/toolchain.gypi deps/v8/build/features.gypi deps/v8/tools/gyp/v8.gyp node.gyp config.gypi ++out/Makefile: common.gypi deps/v8/build/toolchain.gypi deps/v8/build/features.gypi deps/v8/tools/gyp/v8.gyp node.gyp config.gypi $(PYTHON) tools/gyp_node.py -f make config.gypi: configure + $(error Missing or stale $@, please run ./$<) + -- -2.14.1 +2.13.5 diff --git a/0002-Use-openssl-1.0.1.patch b/0002-Use-openssl-1.0.1.patch deleted file mode 100644 index b518363..0000000 --- a/0002-Use-openssl-1.0.1.patch +++ /dev/null @@ -1,648 +0,0 @@ -From 2411d250a2789675aa9c902aeea3f0c55b34a4e0 Mon Sep 17 00:00:00 2001 -From: Haikel Guemar -Date: Tue, 26 Jul 2016 22:50:22 +0200 -Subject: [PATCH 2/3] Use openssl 1.0.1 - -Based on Solaris patches from upstream #2783 -https://github.com/nodejs/node/issues/2783 ---- - doc/api/tls.md | 6 ++ - src/node_constants.cc | 5 ++ - src/node_crypto.cc | 201 ++++++++++++++++++++++++++++++++++++++++++++++---- - src/node_crypto.h | 16 ++++ - src/tls_wrap.cc | 8 ++ - 5 files changed, 223 insertions(+), 13 deletions(-) - -diff --git a/doc/api/tls.md b/doc/api/tls.md -index b7e5c8f15e2bf4e8604cdd1bc95ea0e98a96b7d6..6b3069f9352ae44d0dab37b3e4b2eebdbc104609 100644 ---- a/doc/api/tls.md -+++ b/doc/api/tls.md -@@ -113,10 +113,16 @@ handshake extensions: - * ALPN/NPN - Allows the use of one TLS server for multiple protocols (HTTP, - SPDY, HTTP/2) - * SNI - Allows the use of one TLS server for multiple hostnames with different - SSL certificates. - -+ **NOTE**: dueto a design flaw in node **SNI cannot be -+ used on the server side**, even so all parameters in related functions are -+ accepted for compatibility reasons. And thus the related events will not -+ fire unless one aranges this explicitly. This may change, when the OS -+ provides OpenSSL v1.0.2 or better and node gets linked to this version. -+ - *Note*: Use of ALPN is recommended over NPN. The NPN extension has never been - formally defined or documented and generally not recommended for use. - - ### Client-initiated renegotiation attack mitigation - -diff --git a/src/node_constants.cc b/src/node_constants.cc -index 750df9c669bad38e0cc05158bd8ef1c90d810f74..d693851c4bb6c247cfda7436c5ea0baf5bebc886 100644 ---- a/src/node_constants.cc -+++ b/src/node_constants.cc -@@ -12,11 +12,14 @@ - #include - #include - #include - - #if HAVE_OPENSSL -+# include -+# ifndef OPENSSL_NO_EC - # include -+# endif - # include - # ifndef OPENSSL_NO_ENGINE - # include - # endif // !OPENSSL_NO_ENGINE - #endif -@@ -974,16 +977,18 @@ void DefineOpenSSLConstants(Local target) { - NODE_DEFINE_CONSTANT(target, RSA_PKCS1_PSS_PADDING); - #endif - - #if HAVE_OPENSSL - // NOTE: These are not defines -+# ifndef OPENSSL_NO_EC - NODE_DEFINE_CONSTANT(target, POINT_CONVERSION_COMPRESSED); - - NODE_DEFINE_CONSTANT(target, POINT_CONVERSION_UNCOMPRESSED); - - NODE_DEFINE_CONSTANT(target, POINT_CONVERSION_HYBRID); - #endif -+#endif - } - - void DefineSystemConstants(Local target) { - // file access modes - NODE_DEFINE_CONSTANT(target, O_RDONLY); -diff --git a/src/node_crypto.cc b/src/node_crypto.cc -index f654dcf60cb42479b06fcd2be96e5bda287606c7..7aaff07fb513945d6272f238814a4cd297da7b0e 100644 ---- a/src/node_crypto.cc -+++ b/src/node_crypto.cc -@@ -26,10 +26,86 @@ - #include // INT_MAX - #include - #include - #include - -+#ifndef SSL_get_server_tmp_key -+/* -+ 1.0.2 SSL_get_server_tmp_key(s, pk) "backport". BAD HACK!!! -+ NOTE: This imports "foreign" knowledge and thus will break, when SESS_CERT -+ or CERT_PKEY change, which is definitely the case for the later for -+ all OpenSSL lib vers != 1.0.1. So don't try to bind to something else! -+ */ -+# define SSL_PKEY_NUM 8 -+typedef struct cert_pkey_st { -+ X509 *x509; -+ EVP_PKEY *privatekey; -+ /* Digest to use when signing */ -+ const EVP_MD *digest; -+} CERT_PKEY; -+ -+typedef struct sess_cert_st { -+ STACK_OF(X509) *cert_chain; /* as received from peer (not for SSL2) */ -+ /* The 'peer_...' members are used only by clients. */ -+ int peer_cert_type; -+ CERT_PKEY *peer_key; /* points to an element of peer_pkeys (never -+ * NULL!) */ -+ CERT_PKEY peer_pkeys[SSL_PKEY_NUM]; -+ /* -+ * Obviously we don't have the private keys of these, so maybe we -+ * shouldn't even use the CERT_PKEY type here. -+ */ -+# ifndef OPENSSL_NO_RSA -+ RSA *peer_rsa_tmp; /* not used for SSL 2 */ -+# endif -+# ifndef OPENSSL_NO_DH -+ DH *peer_dh_tmp; /* not used for SSL 2 */ -+# endif -+# ifndef OPENSSL_NO_ECDH -+ EC_KEY *peer_ecdh_tmp; -+# endif -+ int references; /* actually always 1 at the moment */ -+} SESS_CERT; -+ -+static long SSL_get_server_tmp_key(SSL *s, void *parg) { -+ if (s->server || !s->session || !s->session->sess_cert) -+ return 0; -+ else { -+ SESS_CERT *sc; -+ EVP_PKEY *ptmp; -+ int rv = 0; -+ sc = s->session->sess_cert; -+#if !defined(OPENSSL_NO_RSA) && !defined(OPENSSL_NO_DH) && !defined(OPENSSL_NO_EC) && !defined(OPENSSL_NO_ECDH) -+ if (!sc->peer_rsa_tmp && !sc->peer_dh_tmp && !sc->peer_ecdh_tmp) -+ return 0; -+#endif -+ ptmp = EVP_PKEY_new(); -+ if (!ptmp) -+ return 0; -+ if (0) ; -+#ifndef OPENSSL_NO_RSA -+ else if (sc->peer_rsa_tmp) -+ rv = EVP_PKEY_set1_RSA(ptmp, sc->peer_rsa_tmp); -+#endif -+#ifndef OPENSSL_NO_DH -+ else if (sc->peer_dh_tmp) -+ rv = EVP_PKEY_set1_DH(ptmp, sc->peer_dh_tmp); -+#endif -+#ifndef OPENSSL_NO_ECDH -+ else if (sc->peer_ecdh_tmp) -+ rv = EVP_PKEY_set1_EC_KEY(ptmp, sc->peer_ecdh_tmp); -+#endif -+ if (rv) { -+ *(EVP_PKEY **)parg = ptmp; -+ return 1; -+ } -+ EVP_PKEY_free(ptmp); -+ return 0; -+ } -+} -+#endif /* SSL_get_server_tmp_key */ -+ - #define THROW_AND_RETURN_IF_NOT_STRING_OR_BUFFER(val, prefix) \ - do { \ - if (!Buffer::HasInstance(val) && !val->IsString()) { \ - return env->ThrowTypeError(prefix " must be a string or a buffer"); \ - } \ -@@ -165,11 +241,15 @@ template int SSLWrap::SelectNextProtoCallback( - #ifdef NODE__HAVE_TLSEXT_STATUS_CB - template int SSLWrap::TLSExtStatusCallback(SSL* s, void* arg); - #endif - - template void SSLWrap::DestroySSL(); -+#if OPENSSL_VERSION_NUMBER >= 0x10002000L - template int SSLWrap::SSLCertCallback(SSL* s, void* arg); -+#else -+template int SSLWrap::SSLCertCallback(SSL* s, X509 **x509, EVP_PKEY **pkey); -+#endif - template void SSLWrap::WaitForCertCb(CertCb cb, void* arg); - - #ifdef TLSEXT_TYPE_application_layer_protocol_negotiation - template int SSLWrap::SelectALPNCallback( - SSL* s, -@@ -295,12 +375,16 @@ void SecureContext::Initialize(Environment* env, Local target) { - env->SetProtoMethod(t, "setCert", SecureContext::SetCert); - env->SetProtoMethod(t, "addCACert", SecureContext::AddCACert); - env->SetProtoMethod(t, "addCRL", SecureContext::AddCRL); - env->SetProtoMethod(t, "addRootCerts", SecureContext::AddRootCerts); - env->SetProtoMethod(t, "setCiphers", SecureContext::SetCiphers); -+#ifndef OPENSSL_NO_ECDH - env->SetProtoMethod(t, "setECDHCurve", SecureContext::SetECDHCurve); -+#endif -+#ifndef OPENSSL_NO_DH - env->SetProtoMethod(t, "setDHParam", SecureContext::SetDHParam); -+#endif - env->SetProtoMethod(t, "setOptions", SecureContext::SetOptions); - env->SetProtoMethod(t, "setSessionIdContext", - SecureContext::SetSessionIdContext); - env->SetProtoMethod(t, "setSessionTimeout", - SecureContext::SetSessionTimeout); -@@ -531,12 +615,24 @@ int SSL_CTX_use_certificate_chain(SSL_CTX* ctx, - SSL_CTX_clear_extra_chain_certs(ctx); - - for (int i = 0; i < sk_X509_num(extra_certs); i++) { - X509* ca = sk_X509_value(extra_certs, i); - -- // NOTE: Increments reference count on `ca` -- r = SSL_CTX_add1_chain_cert(ctx, ca); -+#if OPENSSL_VERSION_NUMBER >= 0x10002000L -+ // If ctx->cert->key != NULL create ctx->cert->key->chain if not -+ // already there, push 'ca' to this chain and finally increment the ca -+ // reference count by 1 (this is the diff between *_add1_* and *_add0_* -+ // - the later increments by 0 ;-)) and return 1. Otherwise or if -+ // something fails in between, return 0. -+ r = SSL_CTX_add1_chain_cert(ctx, ca); -+#else -+ // Create ctx->extra_certs if not already there, just push 'ca' to this -+ // chain and return 1. If something fails, return 0. -+ // NOTE: 1.0.1- does not support multiple certs having its own chain in -+ // a single context. There is just one: extra_chain! -+ r = SSL_CTX_add_extra_chain_cert(ctx, ca); -+#endif - - if (!r) { - ret = 0; - *issuer = nullptr; - goto end; -@@ -887,10 +983,11 @@ void SecureContext::SetCiphers(const FunctionCallbackInfo& args) { - const node::Utf8Value ciphers(args.GetIsolate(), args[0]); - SSL_CTX_set_cipher_list(sc->ctx_, *ciphers); - } - - -+#ifndef OPENSSL_NO_ECDH - void SecureContext::SetECDHCurve(const FunctionCallbackInfo& args) { - SecureContext* sc; - ASSIGN_OR_RETURN_UNWRAP(&sc, args.Holder()); - Environment* env = sc->env(); - -@@ -914,12 +1011,14 @@ void SecureContext::SetECDHCurve(const FunctionCallbackInfo& args) { - SSL_CTX_set_options(sc->ctx_, SSL_OP_SINGLE_ECDH_USE); - SSL_CTX_set_tmp_ecdh(sc->ctx_, ecdh); - - EC_KEY_free(ecdh); - } -+#endif - - -+#ifndef OPENSSL_NO_DH - void SecureContext::SetDHParam(const FunctionCallbackInfo& args) { - SecureContext* sc; - ASSIGN_OR_RETURN_UNWRAP(&sc, args.This()); - Environment* env = sc->env(); - ClearErrorOnReturn clear_error_on_return; -@@ -954,10 +1053,11 @@ void SecureContext::SetDHParam(const FunctionCallbackInfo& args) { - DH_free(dh); - - if (!r) - return env->ThrowTypeError("Error setting temp DH parameter"); - } -+#endif - - - void SecureContext::SetOptions(const FunctionCallbackInfo& args) { - SecureContext* sc; - ASSIGN_OR_RETURN_UNWRAP(&sc, args.Holder()); -@@ -1977,10 +2077,11 @@ void SSLWrap::GetEphemeralKeyInfo( - info->Set(env->type_string(), - FIXED_ONE_BYTE_STRING(env->isolate(), "DH")); - info->Set(env->size_string(), - Integer::New(env->isolate(), EVP_PKEY_bits(key))); - break; -+#ifndef OPENSSL_NO_ECDH - case EVP_PKEY_EC: - { - EC_KEY* ec = EVP_PKEY_get1_EC_KEY(key); - int nid = EC_GROUP_get_curve_name(EC_KEY_get0_group(ec)); - EC_KEY_free(ec); -@@ -1989,10 +2090,11 @@ void SSLWrap::GetEphemeralKeyInfo( - info->Set(env->name_string(), - OneByteString(args.GetIsolate(), OBJ_nid2sn(nid))); - info->Set(env->size_string(), - Integer::New(env->isolate(), EVP_PKEY_bits(key))); - } -+#endif - } - EVP_PKEY_free(key); - } - - return args.GetReturnValue().Set(info); -@@ -2407,11 +2509,16 @@ void SSLWrap::WaitForCertCb(CertCb cb, void* arg) { - cert_cb_arg_ = arg; - } - - - template -+#if OPENSSL_VERSION_NUMBER >= 0x10002000L - int SSLWrap::SSLCertCallback(SSL* s, void* arg) { -+#else -+/* NOTE: For now this callback gets usually never called dueto design flaws */ -+int SSLWrap::SSLCertCallback(SSL* s, X509 **x509, EVP_PKEY **pkey) { -+#endif - Base* w = static_cast(SSL_get_app_data(s)); - - if (!w->is_server()) - return 1; - -@@ -2476,23 +2583,57 @@ void SSLWrap::CertCbDone(const FunctionCallbackInfo& args) { - ASSIGN_OR_RETURN_UNWRAP(&sc, ctx.As()); - w->sni_context_.Reset(); - w->sni_context_.Reset(env->isolate(), ctx); - - int rv; -+ X509* x509; -+ EVP_PKEY* pkey; -+ STACK_OF(X509)* chain; - - // NOTE: reference count is not increased by this API methods -- X509* x509 = SSL_CTX_get0_certificate(sc->ctx_); -- EVP_PKEY* pkey = SSL_CTX_get0_privatekey(sc->ctx_); -- STACK_OF(X509)* chain; -+#if OPENSSL_VERSION_NUMBER >= 0x10002000L -+ x509 = SSL_CTX_get0_certificate(sc->ctx_); -+ pkey = SSL_CTX_get0_privatekey(sc->ctx_); -+ rv = SSL_CTX_get0_chain_certs(sc->ctx_, &chain); -+#else -+ SSL *ssl = SSL_new(sc->ctx_); -+ rv = SSL_CTX_get_extra_chain_certs(sc->ctx_, &chain); -+ if (ssl) { -+ SSL_set_connect_state(ssl); /* just cleanup/reset state - cheap */ -+ x509 = SSL_get_certificate(ssl); -+ SSL_free(ssl); -+ } else { -+ x509 = NULL; -+ pkey = NULL; -+ } -+#endif - -- rv = SSL_CTX_get0_chain_certs(sc->ctx_, &chain); -- if (rv) -- rv = SSL_use_certificate(w->ssl_, x509); -- if (rv) -- rv = SSL_use_PrivateKey(w->ssl_, pkey); -- if (rv && chain != nullptr) -- rv = SSL_set1_chain(w->ssl_, chain); -+ if (rv) -+ rv = SSL_use_certificate(w->ssl_, x509); -+ if (rv) -+ rv = SSL_use_PrivateKey(w->ssl_, pkey); -+ if (rv && chain != nullptr) { -+#if OPENSSL_VERSION_NUMBER >= 0x10002000L -+ // replaces w->ssl_->cert->key->chain with a copy of the given chain, -+ // which is allowed to be NULL -+ rv = SSL_set1_chain(w->ssl_, chain); -+#else -+ // just replace the extra chain with the given chain - 1.0.1- does not -+ // support chain per cert -+ SSL_CTX_clear_extra_chain_certs(w->ssl_->ctx); -+ if (chain != NULL) { -+ int i; -+ SSL_CTX* ctx = w->ssl_->ctx; -+ for (i = 0; i < sk_X509_num(chain); i++) { -+ // can't do anything: however others might be ok and still -+ // satisfy requirements -+ SSL_CTX_add_extra_chain_cert(ctx, sk_X509_value(chain,i)); -+ } -+ } -+ rv = 1; -+#endif -+ } - if (rv) - rv = w->SetCACerts(sc); - if (!rv) { - unsigned long err = ERR_get_error(); // NOLINT(runtime/int) - if (!err) -@@ -2552,14 +2693,18 @@ void SSLWrap::SetSNIContext(SecureContext* sc) { - } - - - template - int SSLWrap::SetCACerts(SecureContext* sc) { -+#if OPENSSL_VERSION_NUMBER >= 0x10002000L - int err = SSL_set1_verify_cert_store(ssl_, SSL_CTX_get_cert_store(sc->ctx_)); - if (err != 1) - return err; -- -+#else -+ // there is no ssl_->cert->verify_store in <= 1.0.1. So no need to: free the -+ // old store, set the new one to it and increment its ref count. -+#endif - STACK_OF(X509_NAME)* list = SSL_dup_CA_list( - SSL_CTX_get_client_CA_list(sc->ctx_)); - - // NOTE: `SSL_set_client_CA_list` takes the ownership of `list` - SSL_set_client_CA_list(ssl_, list); -@@ -2871,11 +3016,15 @@ inline int VerifyCallback(int preverify_ok, X509_STORE_CTX* ctx) { - - // Server does not need to check the whitelist. - SSL* ssl = static_cast( - X509_STORE_CTX_get_ex_data(ctx, SSL_get_ex_data_X509_STORE_CTX_idx())); - -+#if OPENSSL_VERSION_NUMBER >= 0x10002000L - if (SSL_is_server(ssl)) -+#else -+ if (ssl->server) -+#endif - return CHECK_OK; - - // Client needs to check if the server cert is listed in the - // whitelist when it is issued by the specific rootCAs. - CheckResult ret = CheckWhitelistedServerCert(ctx); -@@ -2954,11 +3103,25 @@ void Connection::New(const FunctionCallbackInfo& args) { - if (is_server) - SSL_set_info_callback(conn->ssl_, SSLInfoCallback); - - InitNPN(sc); - -+#if OPENSSL_VERSION_NUMBER >= 0x10002000L - SSL_set_cert_cb(conn->ssl_, SSLWrap::SSLCertCallback, conn); -+#else -+ /* 1.0.1 and less have no general cert callback. The closest for a client is -+ SSL_CTX_set_client_cert_cb(conn->ssl_->ctx, SSLWrap::SSLCertCallback); -+ but on the client it is not needed/used by this implementation. Since this -+ the SSLCertCallback actually calls lib/_tls_wrap.js:oncertcb(), which in -+ turn loadSNI() and this the actual SNICallback of the JSON object, sets -+ the context and finally requestOCSP() and certCbDone(). Not sure, why -+ the SNICallback of the JSON object, doesn't get invoked via -+ SelectSNIContextCallback_() - design flaw because lets do 2 things at once -+ (i.e. do SNICallback and attach the certs ca chain), however, this means -+ no server side support for the SNI TLS/OCSP_state extension anymore. -+ */ -+#endif - - #ifdef SSL_CTRL_SET_TLSEXT_SERVERNAME_CB - if (is_server) { - SSL_CTX_set_tlsext_servername_callback(sc->ctx_, SelectSNIContextCallback_); - } else if (args[2]->IsString()) { -@@ -4541,10 +4704,11 @@ void PublicKeyCipher::Cipher(const FunctionCallbackInfo& args) { - args.GetReturnValue().Set(vbuf); - delete[] out_value; - } - - -+#ifndef OPENSSL_NO_DH - void DiffieHellman::Initialize(Environment* env, Local target) { - Local t = env->NewFunctionTemplate(New); - - const PropertyAttribute attributes = - static_cast(v8::ReadOnly | v8::DontDelete); -@@ -4942,12 +5106,14 @@ bool DiffieHellman::VerifyContext() { - if (!DH_check(dh, &codes)) - return false; - verifyError_ = codes; - return true; - } -+#endif - - -+#ifndef OPENSSL_NO_ECDH - void ECDH::Initialize(Environment* env, Local target) { - HandleScope scope(env->isolate()); - - Local t = env->NewFunctionTemplate(New); - -@@ -5173,10 +5339,11 @@ void ECDH::SetPrivateKey(const FunctionCallbackInfo& args) { - return env->ThrowError("Failed to set generated public key"); - } - - EC_POINT_free(pub); - } -+#endif - - - void ECDH::SetPublicKey(const FunctionCallbackInfo& args) { - Environment* env = Environment::GetCurrent(args); - -@@ -5728,10 +5895,11 @@ void GetHashes(const FunctionCallbackInfo& args) { - EVP_MD_do_all_sorted(array_push_back, &ctx); - args.GetReturnValue().Set(ctx.arr); - } - - -+# ifndef OPENSSL_NO_EC - void GetCurves(const FunctionCallbackInfo& args) { - Environment* env = Environment::GetCurrent(args); - const size_t num_curves = EC_get_builtin_curves(nullptr, 0); - Local arr = Array::New(env->isolate(), num_curves); - EC_builtin_curve* curves; -@@ -5752,10 +5920,11 @@ void GetCurves(const FunctionCallbackInfo& args) { - free(curves); - } - - args.GetReturnValue().Set(arr); - } -+#endif - - - bool VerifySpkac(const char* data, unsigned int len) { - bool i = 0; - EVP_PKEY* pkey = nullptr; -@@ -6063,12 +6232,16 @@ void InitCrypto(Local target, - - Environment* env = Environment::GetCurrent(context); - SecureContext::Initialize(env, target); - Connection::Initialize(env, target); - CipherBase::Initialize(env, target); -+# ifndef OPENSSL_NO_EC - DiffieHellman::Initialize(env, target); -+#endif -+#ifndef OPENSSL_NO_ECDH - ECDH::Initialize(env, target); -+#endif - Hmac::Initialize(env, target); - Hash::Initialize(env, target); - Sign::Initialize(env, target); - Verify::Initialize(env, target); - -@@ -6084,11 +6257,13 @@ void InitCrypto(Local target, - env->SetMethod(target, "randomBytes", RandomBytes); - env->SetMethod(target, "timingSafeEqual", TimingSafeEqual); - env->SetMethod(target, "getSSLCiphers", GetSSLCiphers); - env->SetMethod(target, "getCiphers", GetCiphers); - env->SetMethod(target, "getHashes", GetHashes); -+# ifndef OPENSSL_NO_EC - env->SetMethod(target, "getCurves", GetCurves); -+#endif - env->SetMethod(target, "publicEncrypt", - PublicKeyCipher::Cipher); - env->SetMethod(target, "privateDecrypt", -diff --git a/src/node_crypto.h b/src/node_crypto.h -index 38f49ba5a05063438372471b4a58036190954cd3..8304e719719dae41757071b4463f8631cb1e442f 100644 ---- a/src/node_crypto.h -+++ b/src/node_crypto.h -@@ -16,12 +16,16 @@ - #include "base-object-inl.h" - - #include "v8.h" - - #include -+# ifndef OPENSSL_NO_EC - #include -+# endif -+# ifndef OPENSSL_NO_ECDH - #include -+# endif - #ifndef OPENSSL_NO_ENGINE - # include - #endif // !OPENSSL_NO_ENGINE - #include - #include -@@ -100,12 +104,16 @@ class SecureContext : public BaseObject { - static void SetCert(const v8::FunctionCallbackInfo& args); - static void AddCACert(const v8::FunctionCallbackInfo& args); - static void AddCRL(const v8::FunctionCallbackInfo& args); - static void AddRootCerts(const v8::FunctionCallbackInfo& args); - static void SetCiphers(const v8::FunctionCallbackInfo& args); -+#ifndef OPENSSL_NO_ECDH - static void SetECDHCurve(const v8::FunctionCallbackInfo& args); -+#endif -+# ifndef OPENSSL_NO_DH - static void SetDHParam(const v8::FunctionCallbackInfo& args); -+#endif - static void SetOptions(const v8::FunctionCallbackInfo& args); - static void SetSessionIdContext( - const v8::FunctionCallbackInfo& args); - static void SetSessionTimeout( - const v8::FunctionCallbackInfo& args); -@@ -273,11 +281,15 @@ class SSLWrap { - unsigned char* outlen, - const unsigned char* in, - unsigned int inlen, - void* arg); - static int TLSExtStatusCallback(SSL* s, void* arg); -+#if OPENSSL_VERSION_NUMBER >= 0x10002000L - static int SSLCertCallback(SSL* s, void* arg); -+#else -+ static int SSLCertCallback(SSL* s, X509 **x509, EVP_PKEY **pkey); -+#endif - static void SSLGetter(v8::Local property, - const v8::PropertyCallbackInfo& info); - - void DestroySSL(); - void WaitForCertCb(CertCb cb, void* arg); -@@ -635,10 +647,11 @@ class PublicKeyCipher { - EVP_PKEY_cipher_init_t EVP_PKEY_cipher_init, - EVP_PKEY_cipher_t EVP_PKEY_cipher> - static void Cipher(const v8::FunctionCallbackInfo& args); - }; - -+#ifndef OPENSSL_NO_DH - class DiffieHellman : public BaseObject { - public: - ~DiffieHellman() override { - if (dh != nullptr) { - DH_free(dh); -@@ -680,11 +693,13 @@ class DiffieHellman : public BaseObject { - - bool initialised_; - int verifyError_; - DH* dh; - }; -+#endif - -+# ifndef OPENSSL_NO_ECDH - class ECDH : public BaseObject { - public: - ~ECDH() override { - if (key_ != nullptr) - EC_KEY_free(key_); -@@ -717,10 +732,11 @@ class ECDH : public BaseObject { - bool IsKeyValidForCurve(const BIGNUM* private_key); - - EC_KEY* key_; - const EC_GROUP* group_; - }; -+#endif - - bool EntropySource(unsigned char* buffer, size_t length); - #ifndef OPENSSL_NO_ENGINE - void SetEngine(const v8::FunctionCallbackInfo& args); - #endif // !OPENSSL_NO_ENGINE -diff --git a/src/tls_wrap.cc b/src/tls_wrap.cc -index 8eab962a66f61c3f3020c59f4db472f286856d97..5d741576720b9e3a0fbc50b08f8f3ebd715148dc 100644 ---- a/src/tls_wrap.cc -+++ b/src/tls_wrap.cc -@@ -141,11 +141,19 @@ void TLSWrap::InitSSL() { - } - #endif // SSL_CTRL_SET_TLSEXT_SERVERNAME_CB - - InitNPN(sc_); - -+#if OPENSSL_VERSION_NUMBER >= 0x10002000L - SSL_set_cert_cb(ssl_, SSLWrap::SSLCertCallback, this); -+#else -+ /* 1.0.1 and less have at most for the client side the function -+ SSL_CTX_set_client_cert_cb(ssl_->ctx, SSLWrap::SSLCertCallback); -+ but on the client it is not needed/used by this implementation. -+ For more info see comments in src/node_crypto.cc Connection::New(). -+ */ -+#endif - - if (is_server()) { - SSL_set_accept_state(ssl_); - } else if (is_client()) { - // Enough space for server response (hello, cert) --- -2.13.5 - diff --git a/0003-crypto-Use-system-CAs-instead-of-using-bundled-ones.patch b/0003-crypto-Use-system-CAs-instead-of-using-bundled-ones.patch deleted file mode 100644 index 8c6db97..0000000 --- a/0003-crypto-Use-system-CAs-instead-of-using-bundled-ones.patch +++ /dev/null @@ -1,84 +0,0 @@ -From f1a0660b9186c3f4d55d7c07219126e199c787f9 Mon Sep 17 00:00:00 2001 -From: Adam Majer -Date: Wed, 21 Dec 2016 11:16:38 +0100 -Subject: [PATCH 3/4] crypto: Use system CAs instead of using bundled ones - -NodeJS can already use an external, shared OpenSSL library. This -library knows where to look for OS managed certificates. Allow -a compile-time option to use this CA store by default instead of -using bundled certificates. - -In case when using bundled OpenSSL, the paths are also valid for -majority of Linux systems without additional intervention. If -this is not set, we can use SSL_CERT_DIR to point it to correct -location. - -Fixes: https://github.com/nodejs/node/issues/3159 -PR-URL: https://github.com/nodejs/node/pull/8334 -Reviewed-By: Sam Roberts -Reviewed-By: James M Snell -Reviewed-By: Fedor Indutny ---- - configure | 7 +++++++ - src/node_crypto.cc | 4 ++++ - 2 files changed, 11 insertions(+) - -diff --git a/configure b/configure -index 821b8771bc8909d8453bc31e3c8d8dc65368c0e4..e64bad9a030693b726e0974f48aefa6e1ad87723 100755 ---- a/configure -+++ b/configure -@@ -142,10 +142,15 @@ parser.add_option("--openssl-no-asm", - parser.add_option('--openssl-fips', - action='store', - dest='openssl_fips', - help='Build OpenSSL using FIPS canister .o file in supplied folder') - -+parser.add_option('--openssl-use-def-ca-store', -+ action='store_true', -+ dest='use_openssl_ca_store', -+ help='Use OpenSSL supplied CA store instead of compiled-in Mozilla CA copy.') -+ - shared_optgroup.add_option('--shared-http-parser', - action='store_true', - dest='shared_http_parser', - help='link to a shared http_parser DLL instead of static linking') - -@@ -937,10 +942,12 @@ def configure_v8(o): - - def configure_openssl(o): - o['variables']['node_use_openssl'] = b(not options.without_ssl) - o['variables']['node_shared_openssl'] = b(options.shared_openssl) - o['variables']['openssl_no_asm'] = 1 if options.openssl_no_asm else 0 -+ if options.use_openssl_ca_store: -+ o['defines'] += ['NODE_OPENSSL_CERT_STORE'] - if options.openssl_fips: - o['variables']['openssl_fips'] = options.openssl_fips - fips_dir = os.path.join(root_dir, 'deps', 'openssl', 'fips') - fips_ld = os.path.abspath(os.path.join(fips_dir, 'fipsld')) - o['make_fips_settings'] = [ -diff --git a/src/node_crypto.cc b/src/node_crypto.cc -index c5630f30d0bef75ced53b36062bb1f0324dbdb9d..873b37d71b51aa62c8ebd56ea5b182567675e2dd 100644 ---- a/src/node_crypto.cc -+++ b/src/node_crypto.cc -@@ -803,14 +803,18 @@ static X509_STORE* NewRootCertStore() { - root_certs_vector->push_back(x509); - } - } - - X509_STORE* store = X509_STORE_new(); -+#if defined(NODE_OPENSSL_CERT_STORE) -+ X509_STORE_set_default_paths(store); -+#else - for (auto& cert : *root_certs_vector) { - X509_up_ref(cert); - X509_STORE_add_cert(store, cert); - } -+#endif - - return store; - } - - --- -2.12.0 - diff --git a/0004-Fix-compatibility-with-GCC-7.patch b/0004-Fix-compatibility-with-GCC-7.patch deleted file mode 100644 index 55427f7..0000000 --- a/0004-Fix-compatibility-with-GCC-7.patch +++ /dev/null @@ -1,112 +0,0 @@ -From a75f63218b84ee508c770391519a13bd400a5003 Mon Sep 17 00:00:00 2001 -From: Ben Noordhuis -Date: Thu, 13 Apr 2017 13:48:01 +0200 -Subject: [PATCH 4/4] v8: fix build errors with g++ 7 - -This is a local patch because upstream fixed it differently by moving -large chunks of code out of objects.h. We cannot easily back-port -those changes due to their size and invasiveness. - -Fixes: https://github.com/nodejs/node/issues/10388 -PR-URL: https://github.com/nodejs/node/pull/12392 -Reviewed-By: Anna Henningsen -Reviewed-By: Benjamin Gruenbaum -Reviewed-By: Daniel Bevenius -Reviewed-By: James M Snell ---- - deps/v8/src/objects-body-descriptors.h | 2 +- - deps/v8/src/objects-inl.h | 21 +++++++++++++++++++++ - deps/v8/src/objects.h | 20 ++++---------------- - 3 files changed, 26 insertions(+), 17 deletions(-) - -diff --git a/deps/v8/src/objects-body-descriptors.h b/deps/v8/src/objects-body-descriptors.h -index 91cb8883be88739eab2b10df71f6f0d08aab436e..a1c3634bd762d7e03b4c87d38aa14a9a3ce318e4 100644 ---- a/deps/v8/src/objects-body-descriptors.h -+++ b/deps/v8/src/objects-body-descriptors.h -@@ -97,11 +97,11 @@ class FixedBodyDescriptor final : public BodyDescriptorBase { - IterateBodyImpl(heap, obj, start_offset, end_offset); - } - - template - static inline void IterateBody(HeapObject* obj, int object_size) { -- IterateBody(obj); -+ IterateBody(obj); - } - }; - - - // This class describes a body of an object of a variable size -diff --git a/deps/v8/src/objects-inl.h b/deps/v8/src/objects-inl.h -index 11f4d7498d7558f56037483004a3d5839154516b..72208c2f00f4a9ff47ae487fa9a42f8f82cf12ea 100644 ---- a/deps/v8/src/objects-inl.h -+++ b/deps/v8/src/objects-inl.h -@@ -34,10 +34,31 @@ - #include "src/v8memory.h" - - namespace v8 { - namespace internal { - -+template -+uint32_t HashTable::Hash(Key key) { -+ if (Shape::UsesSeed) { -+ return Shape::SeededHash(key, GetHeap()->HashSeed()); -+ } else { -+ return Shape::Hash(key); -+ } -+} -+ -+ -+template -+uint32_t HashTable::HashForObject(Key key, -+ Object* object) { -+ if (Shape::UsesSeed) { -+ return Shape::SeededHashForObject(key, GetHeap()->HashSeed(), object); -+ } else { -+ return Shape::HashForObject(key, object); -+ } -+} -+ -+ - PropertyDetails::PropertyDetails(Smi* smi) { - value_ = smi->value(); - } - - -diff --git a/deps/v8/src/objects.h b/deps/v8/src/objects.h -index d1632c9deb298218faea31886ffdb0a8e0201cdc..47b02dadcff9658c9fcfe629e137667015e12079 100644 ---- a/deps/v8/src/objects.h -+++ b/deps/v8/src/objects.h -@@ -3259,26 +3259,14 @@ class HashTableBase : public FixedArray { - - - template - class HashTable : public HashTableBase { - public: -- // Wrapper methods -- inline uint32_t Hash(Key key) { -- if (Shape::UsesSeed) { -- return Shape::SeededHash(key, GetHeap()->HashSeed()); -- } else { -- return Shape::Hash(key); -- } -- } -- -- inline uint32_t HashForObject(Key key, Object* object) { -- if (Shape::UsesSeed) { -- return Shape::SeededHashForObject(key, GetHeap()->HashSeed(), object); -- } else { -- return Shape::HashForObject(key, object); -- } -- } -+ // Wrapper methods. Defined in src/objects-inl.h -+ // to break a cycle with src/heap/heap.h. -+ inline uint32_t Hash(Key key); -+ inline uint32_t HashForObject(Key key, Object* object); - - // Returns a new HashTable object. - MUST_USE_RESULT static Handle New( - Isolate* isolate, int at_least_space_for, - MinimumCapacity capacity_option = USE_DEFAULT_MINIMUM_CAPACITY, --- -2.12.2 - diff --git a/nodejs.spec b/nodejs.spec index 14ae4bb..fae4b1c 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -19,7 +19,7 @@ %global nodejs_patch 2 %global nodejs_abi %{nodejs_major}.%{nodejs_minor} %global nodejs_version %{nodejs_major}.%{nodejs_minor}.%{nodejs_patch} -%global nodejs_release 1.3 +%global nodejs_release 2 # == Bundled Dependency Versions == # v8 - from deps/v8/include/v8-version.h @@ -88,37 +88,23 @@ Source7: nodejs_native.attr # Disable running gyp on bundled deps we don't use Patch1: 0001-Disable-running-gyp-files-for-bundled-deps.patch -# EPEL only has OpenSSL 1.0.1, so we need to carry a patch on that platform -# RHEL 7.4 now has 1.0.2, but as of this writing, CentOS hasn't picked it up -# yet. Drop the openssl 1.0.1 compatibility patches once this happens. -Patch2: 0002-Use-openssl-1.0.1.patch - -# RHEL 7 still uses OpenSSL 1.0.1 for now, and it segfaults on SSL -# Revert this upstream patch until RHEL 7 upgrades to 1.0.2 -Patch5: EPEL01-openssl101-compat.patch - BuildRequires: python-devel BuildRequires: libuv-devel >= 1:1.9.1 Requires: libuv >= 1:1.9.1 -#Requires: http-parser >= 2.7.0 +Requires: http-parser >= 2.7.0 BuildRequires: libicu-devel BuildRequires: zlib-devel BuildRequires: gcc >= 4.8.0 BuildRequires: gcc-c++ >= 4.8.0 -#BuildRequires: http-parser-devel >= 2.7.0 -Provides: bundled(http-parser) = 2.7.0 +BuildRequires: http-parser-devel >= 2.7.0 -%if 0%{?epel} || 0%{?rhel} -BuildRequires: openssl-devel >= 1:1.0.1 -%else %if 0%{?fedora} > 25 BuildRequires: compat-openssl10-devel >= 1:1.0.2 %else BuildRequires: openssl-devel >= 1:1.0.2 %endif -%endif -# we need the system certificate store when Patch2 is applied +# we need the system certificate store Requires: ca-certificates #we need ABI virtual provides where SONAMEs aren't enough/not present so deps @@ -182,7 +168,7 @@ Summary: JavaScript runtime - development headers Group: Development/Languages Requires: %{name}%{?_isa} = %{epoch}:%{nodejs_version}-%{nodejs_release}%{?dist} Requires: libuv-devel%{?_isa} -#Requires: http-parser-devel%{?_isa} +Requires: http-parser-devel%{?_isa} Requires: openssl-devel%{?_isa} Requires: zlib-devel%{?_isa} Requires: nodejs-packaging @@ -231,15 +217,11 @@ The API documentation for the Node.js JavaScript runtime. # remove bundled dependencies that we aren't building %patch1 -p1 -rm -rf deps/icu-small \ +rm -rf deps/http-parser \ + deps/icu-small \ deps/uv \ deps/zlib -%if 0%{?epel} || 0%{?rhel} -%patch2 -p1 -%patch5 -p1 -%endif - %build # build with debugging symbols and add defines from libuv (#892601) @@ -264,6 +246,7 @@ export CXXFLAGS="$(echo ${CXXFLAGS} | tr '\n\\' ' ')" --shared-openssl \ --shared-zlib \ --shared-libuv \ + --shared-http-parser \ --without-dtrace \ --with-intl=system-icu \ --openssl-use-def-ca-store @@ -407,6 +390,10 @@ NODE_PATH=%{buildroot}%{_prefix}/lib/node_modules %{buildroot}/%{_bindir}/node - %{_pkgdocdir}/npm/doc %changelog +* Wed Aug 23 2017 Stephen Gallagher - 1:6.11.2-2 +- Move to requiring OpenSSL 1.0.2 +- Unbundle http-parser again + * Tue Aug 22 2017 Zuzana Svetlikova - 1:6.11.2-1.3 - Run gyp on http-parser From 82f6204ba26debbed775b17f61696acaf0eb90b8 Mon Sep 17 00:00:00 2001 From: Zuzana Svetlikova Date: Thu, 7 Sep 2017 16:13:03 +0200 Subject: [PATCH 29/48] Update to v6.11.3, remove openssl 1.0.1 patches --- .gitignore | 1 + ...e-running-gyp-files-for-bundled-deps.patch | 10 +- 0002-Use-openssl-1.0.1.patch | 648 ------------------ 0004-Fix-compatibility-with-GCC-7.patch | 112 --- EPEL01-openssl101-compat.patch | 30 - nodejs.spec | 26 +- sources | 2 +- 7 files changed, 14 insertions(+), 815 deletions(-) delete mode 100644 0002-Use-openssl-1.0.1.patch delete mode 100644 0004-Fix-compatibility-with-GCC-7.patch delete mode 100644 EPEL01-openssl101-compat.patch diff --git a/.gitignore b/.gitignore index a10250b..acb9286 100644 --- a/.gitignore +++ b/.gitignore @@ -70,3 +70,4 @@ /node-v6.11.0-stripped.tar.gz /node-v6.11.1-stripped.tar.gz /node-v6.11.2-stripped.tar.gz +/node-v6.11.3-stripped.tar.gz diff --git a/0001-Disable-running-gyp-files-for-bundled-deps.patch b/0001-Disable-running-gyp-files-for-bundled-deps.patch index fe9f854..a97a09a 100644 --- a/0001-Disable-running-gyp-files-for-bundled-deps.patch +++ b/0001-Disable-running-gyp-files-for-bundled-deps.patch @@ -1,14 +1,14 @@ -From 54cb96f338bd162dcf1301b7d7a46eea2a56befb Mon Sep 17 00:00:00 2001 +From 8946146b37e4170c406fbdd7c60f1bbb79a9311a Mon Sep 17 00:00:00 2001 From: Zuzana Svetlikova -Date: Wed, 22 Mar 2017 19:13:10 +0100 -Subject: [PATCH] Disable running gyp files for bundled deps +Date: Wed, 6 Sep 2017 14:17:21 +0200 +Subject: [PATCH] dont run gyp on shared deps --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile -index a2b64e63b4..7b0847d1d5 100644 +index 577d0e232a..bb47a1b95e 100644 --- a/Makefile +++ b/Makefile @@ -77,7 +77,7 @@ $(NODE_G_EXE): config.gypi out/Makefile @@ -21,5 +21,5 @@ index a2b64e63b4..7b0847d1d5 100644 config.gypi: configure -- -2.12.0 +2.14.1 diff --git a/0002-Use-openssl-1.0.1.patch b/0002-Use-openssl-1.0.1.patch deleted file mode 100644 index 4b90ade..0000000 --- a/0002-Use-openssl-1.0.1.patch +++ /dev/null @@ -1,648 +0,0 @@ -From 91d1a67b8cc249af59929cd1a76629a2614860bd Mon Sep 17 00:00:00 2001 -From: Haikel Guemar -Date: Tue, 26 Jul 2016 22:50:22 +0200 -Subject: [PATCH 2/4] Use openssl 1.0.1 - -Based on Solaris patches from upstream #2783 -https://github.com/nodejs/node/issues/2783 ---- - doc/api/tls.md | 6 ++ - src/node_constants.cc | 5 ++ - src/node_crypto.cc | 201 ++++++++++++++++++++++++++++++++++++++++++++++---- - src/node_crypto.h | 16 ++++ - src/tls_wrap.cc | 8 ++ - 5 files changed, 223 insertions(+), 13 deletions(-) - -diff --git a/doc/api/tls.md b/doc/api/tls.md -index 3784210ba7b6c046b39d74b45e44538041d35ae2..3c9d72b8d5ef81d15773aed077bd00d2041c9e93 100644 ---- a/doc/api/tls.md -+++ b/doc/api/tls.md -@@ -113,10 +113,16 @@ handshake extensions: - * ALPN/NPN - Allows the use of one TLS server for multiple protocols (HTTP, - SPDY, HTTP/2) - * SNI - Allows the use of one TLS server for multiple hostnames with different - SSL certificates. - -+ **NOTE**: dueto a design flaw in node **SNI cannot be -+ used on the server side**, even so all parameters in related functions are -+ accepted for compatibility reasons. And thus the related events will not -+ fire unless one aranges this explicitly. This may change, when the OS -+ provides OpenSSL v1.0.2 or better and node gets linked to this version. -+ - *Note*: Use of ALPN is recommended over NPN. The NPN extension has never been - formally defined or documented and generally not recommended for use. - - ### Client-initiated renegotiation attack mitigation - -diff --git a/src/node_constants.cc b/src/node_constants.cc -index 2e6be8df37c345a383d8a78898daf2a147d90630..239eadbac8ea8e601745a63347a8bb301c22d1b1 100644 ---- a/src/node_constants.cc -+++ b/src/node_constants.cc -@@ -12,11 +12,14 @@ - #include - #include - #include - - #if HAVE_OPENSSL -+# include -+# ifndef OPENSSL_NO_EC - # include -+# endif - # include - # ifndef OPENSSL_NO_ENGINE - # include - # endif // !OPENSSL_NO_ENGINE - #endif -@@ -974,16 +977,18 @@ void DefineOpenSSLConstants(Local target) { - NODE_DEFINE_CONSTANT(target, RSA_PKCS1_PSS_PADDING); - #endif - - #if HAVE_OPENSSL - // NOTE: These are not defines -+# ifndef OPENSSL_NO_EC - NODE_DEFINE_CONSTANT(target, POINT_CONVERSION_COMPRESSED); - - NODE_DEFINE_CONSTANT(target, POINT_CONVERSION_UNCOMPRESSED); - - NODE_DEFINE_CONSTANT(target, POINT_CONVERSION_HYBRID); - #endif -+#endif - } - - void DefineSystemConstants(Local target) { - // file access modes - NODE_DEFINE_CONSTANT(target, O_RDONLY); -diff --git a/src/node_crypto.cc b/src/node_crypto.cc -index 482ec230c0f4500b63b705d705a142e63ff179e5..c5630f30d0bef75ced53b36062bb1f0324dbdb9d 100644 ---- a/src/node_crypto.cc -+++ b/src/node_crypto.cc -@@ -22,10 +22,86 @@ - #include // INT_MAX - #include - #include - #include - -+#ifndef SSL_get_server_tmp_key -+/* -+ 1.0.2 SSL_get_server_tmp_key(s, pk) "backport". BAD HACK!!! -+ NOTE: This imports "foreign" knowledge and thus will break, when SESS_CERT -+ or CERT_PKEY change, which is definitely the case for the later for -+ all OpenSSL lib vers != 1.0.1. So don't try to bind to something else! -+ */ -+# define SSL_PKEY_NUM 8 -+typedef struct cert_pkey_st { -+ X509 *x509; -+ EVP_PKEY *privatekey; -+ /* Digest to use when signing */ -+ const EVP_MD *digest; -+} CERT_PKEY; -+ -+typedef struct sess_cert_st { -+ STACK_OF(X509) *cert_chain; /* as received from peer (not for SSL2) */ -+ /* The 'peer_...' members are used only by clients. */ -+ int peer_cert_type; -+ CERT_PKEY *peer_key; /* points to an element of peer_pkeys (never -+ * NULL!) */ -+ CERT_PKEY peer_pkeys[SSL_PKEY_NUM]; -+ /* -+ * Obviously we don't have the private keys of these, so maybe we -+ * shouldn't even use the CERT_PKEY type here. -+ */ -+# ifndef OPENSSL_NO_RSA -+ RSA *peer_rsa_tmp; /* not used for SSL 2 */ -+# endif -+# ifndef OPENSSL_NO_DH -+ DH *peer_dh_tmp; /* not used for SSL 2 */ -+# endif -+# ifndef OPENSSL_NO_ECDH -+ EC_KEY *peer_ecdh_tmp; -+# endif -+ int references; /* actually always 1 at the moment */ -+} SESS_CERT; -+ -+static long SSL_get_server_tmp_key(SSL *s, void *parg) { -+ if (s->server || !s->session || !s->session->sess_cert) -+ return 0; -+ else { -+ SESS_CERT *sc; -+ EVP_PKEY *ptmp; -+ int rv = 0; -+ sc = s->session->sess_cert; -+#if !defined(OPENSSL_NO_RSA) && !defined(OPENSSL_NO_DH) && !defined(OPENSSL_NO_EC) && !defined(OPENSSL_NO_ECDH) -+ if (!sc->peer_rsa_tmp && !sc->peer_dh_tmp && !sc->peer_ecdh_tmp) -+ return 0; -+#endif -+ ptmp = EVP_PKEY_new(); -+ if (!ptmp) -+ return 0; -+ if (0) ; -+#ifndef OPENSSL_NO_RSA -+ else if (sc->peer_rsa_tmp) -+ rv = EVP_PKEY_set1_RSA(ptmp, sc->peer_rsa_tmp); -+#endif -+#ifndef OPENSSL_NO_DH -+ else if (sc->peer_dh_tmp) -+ rv = EVP_PKEY_set1_DH(ptmp, sc->peer_dh_tmp); -+#endif -+#ifndef OPENSSL_NO_ECDH -+ else if (sc->peer_ecdh_tmp) -+ rv = EVP_PKEY_set1_EC_KEY(ptmp, sc->peer_ecdh_tmp); -+#endif -+ if (rv) { -+ *(EVP_PKEY **)parg = ptmp; -+ return 1; -+ } -+ EVP_PKEY_free(ptmp); -+ return 0; -+ } -+} -+#endif /* SSL_get_server_tmp_key */ -+ - #define THROW_AND_RETURN_IF_NOT_STRING_OR_BUFFER(val, prefix) \ - do { \ - if (!Buffer::HasInstance(val) && !val->IsString()) { \ - return env->ThrowTypeError(prefix " must be a string or a buffer"); \ - } \ -@@ -161,11 +237,15 @@ template int SSLWrap::SelectNextProtoCallback( - #ifdef NODE__HAVE_TLSEXT_STATUS_CB - template int SSLWrap::TLSExtStatusCallback(SSL* s, void* arg); - #endif - - template void SSLWrap::DestroySSL(); -+#if OPENSSL_VERSION_NUMBER >= 0x10002000L - template int SSLWrap::SSLCertCallback(SSL* s, void* arg); -+#else -+template int SSLWrap::SSLCertCallback(SSL* s, X509 **x509, EVP_PKEY **pkey); -+#endif - template void SSLWrap::WaitForCertCb(CertCb cb, void* arg); - - #ifdef TLSEXT_TYPE_application_layer_protocol_negotiation - template int SSLWrap::SelectALPNCallback( - SSL* s, -@@ -281,12 +361,16 @@ void SecureContext::Initialize(Environment* env, Local target) { - env->SetProtoMethod(t, "setCert", SecureContext::SetCert); - env->SetProtoMethod(t, "addCACert", SecureContext::AddCACert); - env->SetProtoMethod(t, "addCRL", SecureContext::AddCRL); - env->SetProtoMethod(t, "addRootCerts", SecureContext::AddRootCerts); - env->SetProtoMethod(t, "setCiphers", SecureContext::SetCiphers); -+#ifndef OPENSSL_NO_ECDH - env->SetProtoMethod(t, "setECDHCurve", SecureContext::SetECDHCurve); -+#endif -+#ifndef OPENSSL_NO_DH - env->SetProtoMethod(t, "setDHParam", SecureContext::SetDHParam); -+#endif - env->SetProtoMethod(t, "setOptions", SecureContext::SetOptions); - env->SetProtoMethod(t, "setSessionIdContext", - SecureContext::SetSessionIdContext); - env->SetProtoMethod(t, "setSessionTimeout", - SecureContext::SetSessionTimeout); -@@ -514,12 +598,24 @@ int SSL_CTX_use_certificate_chain(SSL_CTX* ctx, - SSL_CTX_clear_extra_chain_certs(ctx); - - for (int i = 0; i < sk_X509_num(extra_certs); i++) { - X509* ca = sk_X509_value(extra_certs, i); - -- // NOTE: Increments reference count on `ca` -- r = SSL_CTX_add1_chain_cert(ctx, ca); -+#if OPENSSL_VERSION_NUMBER >= 0x10002000L -+ // If ctx->cert->key != NULL create ctx->cert->key->chain if not -+ // already there, push 'ca' to this chain and finally increment the ca -+ // reference count by 1 (this is the diff between *_add1_* and *_add0_* -+ // - the later increments by 0 ;-)) and return 1. Otherwise or if -+ // something fails in between, return 0. -+ r = SSL_CTX_add1_chain_cert(ctx, ca); -+#else -+ // Create ctx->extra_certs if not already there, just push 'ca' to this -+ // chain and return 1. If something fails, return 0. -+ // NOTE: 1.0.1- does not support multiple certs having its own chain in -+ // a single context. There is just one: extra_chain! -+ r = SSL_CTX_add_extra_chain_cert(ctx, ca); -+#endif - - if (!r) { - ret = 0; - *issuer = nullptr; - goto end; -@@ -868,10 +964,11 @@ void SecureContext::SetCiphers(const FunctionCallbackInfo& args) { - const node::Utf8Value ciphers(args.GetIsolate(), args[0]); - SSL_CTX_set_cipher_list(sc->ctx_, *ciphers); - } - - -+#ifndef OPENSSL_NO_ECDH - void SecureContext::SetECDHCurve(const FunctionCallbackInfo& args) { - SecureContext* sc; - ASSIGN_OR_RETURN_UNWRAP(&sc, args.Holder()); - Environment* env = sc->env(); - -@@ -895,12 +992,14 @@ void SecureContext::SetECDHCurve(const FunctionCallbackInfo& args) { - SSL_CTX_set_options(sc->ctx_, SSL_OP_SINGLE_ECDH_USE); - SSL_CTX_set_tmp_ecdh(sc->ctx_, ecdh); - - EC_KEY_free(ecdh); - } -+#endif - - -+#ifndef OPENSSL_NO_DH - void SecureContext::SetDHParam(const FunctionCallbackInfo& args) { - SecureContext* sc; - ASSIGN_OR_RETURN_UNWRAP(&sc, args.This()); - Environment* env = sc->env(); - ClearErrorOnReturn clear_error_on_return; -@@ -935,10 +1034,11 @@ void SecureContext::SetDHParam(const FunctionCallbackInfo& args) { - DH_free(dh); - - if (!r) - return env->ThrowTypeError("Error setting temp DH parameter"); - } -+#endif - - - void SecureContext::SetOptions(const FunctionCallbackInfo& args) { - SecureContext* sc; - ASSIGN_OR_RETURN_UNWRAP(&sc, args.Holder()); -@@ -1952,10 +2052,11 @@ void SSLWrap::GetEphemeralKeyInfo( - info->Set(env->type_string(), - FIXED_ONE_BYTE_STRING(env->isolate(), "DH")); - info->Set(env->size_string(), - Integer::New(env->isolate(), EVP_PKEY_bits(key))); - break; -+#ifndef OPENSSL_NO_ECDH - case EVP_PKEY_EC: - { - EC_KEY* ec = EVP_PKEY_get1_EC_KEY(key); - int nid = EC_GROUP_get_curve_name(EC_KEY_get0_group(ec)); - EC_KEY_free(ec); -@@ -1964,10 +2065,11 @@ void SSLWrap::GetEphemeralKeyInfo( - info->Set(env->name_string(), - OneByteString(args.GetIsolate(), OBJ_nid2sn(nid))); - info->Set(env->size_string(), - Integer::New(env->isolate(), EVP_PKEY_bits(key))); - } -+#endif - } - EVP_PKEY_free(key); - } - - return args.GetReturnValue().Set(info); -@@ -2382,11 +2484,16 @@ void SSLWrap::WaitForCertCb(CertCb cb, void* arg) { - cert_cb_arg_ = arg; - } - - - template -+#if OPENSSL_VERSION_NUMBER >= 0x10002000L - int SSLWrap::SSLCertCallback(SSL* s, void* arg) { -+#else -+/* NOTE: For now this callback gets usually never called dueto design flaws */ -+int SSLWrap::SSLCertCallback(SSL* s, X509 **x509, EVP_PKEY **pkey) { -+#endif - Base* w = static_cast(SSL_get_app_data(s)); - - if (!w->is_server()) - return 1; - -@@ -2451,23 +2558,57 @@ void SSLWrap::CertCbDone(const FunctionCallbackInfo& args) { - ASSIGN_OR_RETURN_UNWRAP(&sc, ctx.As()); - w->sni_context_.Reset(); - w->sni_context_.Reset(env->isolate(), ctx); - - int rv; -+ X509* x509; -+ EVP_PKEY* pkey; -+ STACK_OF(X509)* chain; - - // NOTE: reference count is not increased by this API methods -- X509* x509 = SSL_CTX_get0_certificate(sc->ctx_); -- EVP_PKEY* pkey = SSL_CTX_get0_privatekey(sc->ctx_); -- STACK_OF(X509)* chain; -+#if OPENSSL_VERSION_NUMBER >= 0x10002000L -+ x509 = SSL_CTX_get0_certificate(sc->ctx_); -+ pkey = SSL_CTX_get0_privatekey(sc->ctx_); -+ rv = SSL_CTX_get0_chain_certs(sc->ctx_, &chain); -+#else -+ SSL *ssl = SSL_new(sc->ctx_); -+ rv = SSL_CTX_get_extra_chain_certs(sc->ctx_, &chain); -+ if (ssl) { -+ SSL_set_connect_state(ssl); /* just cleanup/reset state - cheap */ -+ x509 = SSL_get_certificate(ssl); -+ SSL_free(ssl); -+ } else { -+ x509 = NULL; -+ pkey = NULL; -+ } -+#endif - -- rv = SSL_CTX_get0_chain_certs(sc->ctx_, &chain); -- if (rv) -- rv = SSL_use_certificate(w->ssl_, x509); -- if (rv) -- rv = SSL_use_PrivateKey(w->ssl_, pkey); -- if (rv && chain != nullptr) -- rv = SSL_set1_chain(w->ssl_, chain); -+ if (rv) -+ rv = SSL_use_certificate(w->ssl_, x509); -+ if (rv) -+ rv = SSL_use_PrivateKey(w->ssl_, pkey); -+ if (rv && chain != nullptr) { -+#if OPENSSL_VERSION_NUMBER >= 0x10002000L -+ // replaces w->ssl_->cert->key->chain with a copy of the given chain, -+ // which is allowed to be NULL -+ rv = SSL_set1_chain(w->ssl_, chain); -+#else -+ // just replace the extra chain with the given chain - 1.0.1- does not -+ // support chain per cert -+ SSL_CTX_clear_extra_chain_certs(w->ssl_->ctx); -+ if (chain != NULL) { -+ int i; -+ SSL_CTX* ctx = w->ssl_->ctx; -+ for (i = 0; i < sk_X509_num(chain); i++) { -+ // can't do anything: however others might be ok and still -+ // satisfy requirements -+ SSL_CTX_add_extra_chain_cert(ctx, sk_X509_value(chain,i)); -+ } -+ } -+ rv = 1; -+#endif -+ } - if (rv) - rv = w->SetCACerts(sc); - if (!rv) { - unsigned long err = ERR_get_error(); // NOLINT(runtime/int) - if (!err) -@@ -2527,14 +2668,18 @@ void SSLWrap::SetSNIContext(SecureContext* sc) { - } - - - template - int SSLWrap::SetCACerts(SecureContext* sc) { -+#if OPENSSL_VERSION_NUMBER >= 0x10002000L - int err = SSL_set1_verify_cert_store(ssl_, SSL_CTX_get_cert_store(sc->ctx_)); - if (err != 1) - return err; -- -+#else -+ // there is no ssl_->cert->verify_store in <= 1.0.1. So no need to: free the -+ // old store, set the new one to it and increment its ref count. -+#endif - STACK_OF(X509_NAME)* list = SSL_dup_CA_list( - SSL_CTX_get_client_CA_list(sc->ctx_)); - - // NOTE: `SSL_set_client_CA_list` takes the ownership of `list` - SSL_set_client_CA_list(ssl_, list); -@@ -2808,11 +2953,15 @@ inline int VerifyCallback(int preverify_ok, X509_STORE_CTX* ctx) { - - // Server does not need to check the whitelist. - SSL* ssl = static_cast( - X509_STORE_CTX_get_ex_data(ctx, SSL_get_ex_data_X509_STORE_CTX_idx())); - -+#if OPENSSL_VERSION_NUMBER >= 0x10002000L - if (SSL_is_server(ssl)) -+#else -+ if (ssl->server) -+#endif - return 1; - - // Client needs to check if the server cert is listed in the - // whitelist when it is issued by the specific rootCAs. - CheckResult ret = CheckWhitelistedServerCert(ctx); -@@ -2891,11 +3040,25 @@ void Connection::New(const FunctionCallbackInfo& args) { - if (is_server) - SSL_set_info_callback(conn->ssl_, SSLInfoCallback); - - InitNPN(sc); - -+#if OPENSSL_VERSION_NUMBER >= 0x10002000L - SSL_set_cert_cb(conn->ssl_, SSLWrap::SSLCertCallback, conn); -+#else -+ /* 1.0.1 and less have no general cert callback. The closest for a client is -+ SSL_CTX_set_client_cert_cb(conn->ssl_->ctx, SSLWrap::SSLCertCallback); -+ but on the client it is not needed/used by this implementation. Since this -+ the SSLCertCallback actually calls lib/_tls_wrap.js:oncertcb(), which in -+ turn loadSNI() and this the actual SNICallback of the JSON object, sets -+ the context and finally requestOCSP() and certCbDone(). Not sure, why -+ the SNICallback of the JSON object, doesn't get invoked via -+ SelectSNIContextCallback_() - design flaw because lets do 2 things at once -+ (i.e. do SNICallback and attach the certs ca chain), however, this means -+ no server side support for the SNI TLS/OCSP_state extension anymore. -+ */ -+#endif - - #ifdef SSL_CTRL_SET_TLSEXT_SERVERNAME_CB - if (is_server) { - SSL_CTX_set_tlsext_servername_callback(sc->ctx_, SelectSNIContextCallback_); - } else if (args[2]->IsString()) { -@@ -4476,10 +4639,11 @@ void PublicKeyCipher::Cipher(const FunctionCallbackInfo& args) { - args.GetReturnValue().Set(vbuf); - delete[] out_value; - } - - -+#ifndef OPENSSL_NO_DH - void DiffieHellman::Initialize(Environment* env, Local target) { - Local t = env->NewFunctionTemplate(New); - - const PropertyAttribute attributes = - static_cast(v8::ReadOnly | v8::DontDelete); -@@ -4877,12 +5041,14 @@ bool DiffieHellman::VerifyContext() { - if (!DH_check(dh, &codes)) - return false; - verifyError_ = codes; - return true; - } -+#endif - - -+#ifndef OPENSSL_NO_ECDH - void ECDH::Initialize(Environment* env, Local target) { - HandleScope scope(env->isolate()); - - Local t = env->NewFunctionTemplate(New); - -@@ -5106,10 +5272,11 @@ void ECDH::SetPrivateKey(const FunctionCallbackInfo& args) { - return env->ThrowError("Failed to set generated public key"); - } - - EC_POINT_free(pub); - } -+#endif - - - void ECDH::SetPublicKey(const FunctionCallbackInfo& args) { - Environment* env = Environment::GetCurrent(args); - -@@ -5659,10 +5826,11 @@ void GetHashes(const FunctionCallbackInfo& args) { - EVP_MD_do_all_sorted(array_push_back, &ctx); - args.GetReturnValue().Set(ctx.arr); - } - - -+# ifndef OPENSSL_NO_EC - void GetCurves(const FunctionCallbackInfo& args) { - Environment* env = Environment::GetCurrent(args); - const size_t num_curves = EC_get_builtin_curves(nullptr, 0); - Local arr = Array::New(env->isolate(), num_curves); - EC_builtin_curve* curves; -@@ -5683,10 +5851,11 @@ void GetCurves(const FunctionCallbackInfo& args) { - free(curves); - } - - args.GetReturnValue().Set(arr); - } -+#endif - - - bool VerifySpkac(const char* data, unsigned int len) { - bool i = 0; - EVP_PKEY* pkey = nullptr; -@@ -5995,12 +6164,16 @@ void InitCrypto(Local target, - - Environment* env = Environment::GetCurrent(context); - SecureContext::Initialize(env, target); - Connection::Initialize(env, target); - CipherBase::Initialize(env, target); -+# ifndef OPENSSL_NO_EC - DiffieHellman::Initialize(env, target); -+#endif -+#ifndef OPENSSL_NO_ECDH - ECDH::Initialize(env, target); -+#endif - Hmac::Initialize(env, target); - Hash::Initialize(env, target); - Sign::Initialize(env, target); - Verify::Initialize(env, target); - -@@ -6016,11 +6189,13 @@ void InitCrypto(Local target, - env->SetMethod(target, "randomBytes", RandomBytes); - env->SetMethod(target, "timingSafeEqual", TimingSafeEqual); - env->SetMethod(target, "getSSLCiphers", GetSSLCiphers); - env->SetMethod(target, "getCiphers", GetCiphers); - env->SetMethod(target, "getHashes", GetHashes); -+# ifndef OPENSSL_NO_EC - env->SetMethod(target, "getCurves", GetCurves); -+#endif - env->SetMethod(target, "publicEncrypt", - PublicKeyCipher::Cipher); - env->SetMethod(target, "privateDecrypt", -diff --git a/src/node_crypto.h b/src/node_crypto.h -index 175206c40df58602b0c24d039b8b5a8bb6f56ba3..5ecc43b08d0b4d97311f09271a26f5a735a6e018 100644 ---- a/src/node_crypto.h -+++ b/src/node_crypto.h -@@ -16,12 +16,16 @@ - #include "base-object-inl.h" - - #include "v8.h" - - #include -+# ifndef OPENSSL_NO_EC - #include -+# endif -+# ifndef OPENSSL_NO_ECDH - #include -+# endif - #ifndef OPENSSL_NO_ENGINE - # include - #endif // !OPENSSL_NO_ENGINE - #include - #include -@@ -100,12 +104,16 @@ class SecureContext : public BaseObject { - static void SetCert(const v8::FunctionCallbackInfo& args); - static void AddCACert(const v8::FunctionCallbackInfo& args); - static void AddCRL(const v8::FunctionCallbackInfo& args); - static void AddRootCerts(const v8::FunctionCallbackInfo& args); - static void SetCiphers(const v8::FunctionCallbackInfo& args); -+#ifndef OPENSSL_NO_ECDH - static void SetECDHCurve(const v8::FunctionCallbackInfo& args); -+#endif -+# ifndef OPENSSL_NO_DH - static void SetDHParam(const v8::FunctionCallbackInfo& args); -+#endif - static void SetOptions(const v8::FunctionCallbackInfo& args); - static void SetSessionIdContext( - const v8::FunctionCallbackInfo& args); - static void SetSessionTimeout( - const v8::FunctionCallbackInfo& args); -@@ -273,11 +281,15 @@ class SSLWrap { - unsigned char* outlen, - const unsigned char* in, - unsigned int inlen, - void* arg); - static int TLSExtStatusCallback(SSL* s, void* arg); -+#if OPENSSL_VERSION_NUMBER >= 0x10002000L - static int SSLCertCallback(SSL* s, void* arg); -+#else -+ static int SSLCertCallback(SSL* s, X509 **x509, EVP_PKEY **pkey); -+#endif - static void SSLGetter(v8::Local property, - const v8::PropertyCallbackInfo& info); - - void DestroySSL(); - void WaitForCertCb(CertCb cb, void* arg); -@@ -635,10 +647,11 @@ class PublicKeyCipher { - EVP_PKEY_cipher_init_t EVP_PKEY_cipher_init, - EVP_PKEY_cipher_t EVP_PKEY_cipher> - static void Cipher(const v8::FunctionCallbackInfo& args); - }; - -+#ifndef OPENSSL_NO_DH - class DiffieHellman : public BaseObject { - public: - ~DiffieHellman() override { - if (dh != nullptr) { - DH_free(dh); -@@ -680,11 +693,13 @@ class DiffieHellman : public BaseObject { - - bool initialised_; - int verifyError_; - DH* dh; - }; -+#endif - -+# ifndef OPENSSL_NO_ECDH - class ECDH : public BaseObject { - public: - ~ECDH() override { - if (key_ != nullptr) - EC_KEY_free(key_); -@@ -717,10 +732,11 @@ class ECDH : public BaseObject { - bool IsKeyValidForCurve(const BIGNUM* private_key); - - EC_KEY* key_; - const EC_GROUP* group_; - }; -+#endif - - bool EntropySource(unsigned char* buffer, size_t length); - #ifndef OPENSSL_NO_ENGINE - void SetEngine(const v8::FunctionCallbackInfo& args); - #endif // !OPENSSL_NO_ENGINE -diff --git a/src/tls_wrap.cc b/src/tls_wrap.cc -index d1b1aeccdd95b00b3fd0421c08fd7816cd70d182..a6e63d7c1ccc81e6f7d782dffe833234b003de15 100644 ---- a/src/tls_wrap.cc -+++ b/src/tls_wrap.cc -@@ -140,11 +140,19 @@ void TLSWrap::InitSSL() { - } - #endif // SSL_CTRL_SET_TLSEXT_SERVERNAME_CB - - InitNPN(sc_); - -+#if OPENSSL_VERSION_NUMBER >= 0x10002000L - SSL_set_cert_cb(ssl_, SSLWrap::SSLCertCallback, this); -+#else -+ /* 1.0.1 and less have at most for the client side the function -+ SSL_CTX_set_client_cert_cb(ssl_->ctx, SSLWrap::SSLCertCallback); -+ but on the client it is not needed/used by this implementation. -+ For more info see comments in src/node_crypto.cc Connection::New(). -+ */ -+#endif - - if (is_server()) { - SSL_set_accept_state(ssl_); - } else if (is_client()) { - // Enough space for server response (hello, cert) --- -2.12.0 - diff --git a/0004-Fix-compatibility-with-GCC-7.patch b/0004-Fix-compatibility-with-GCC-7.patch deleted file mode 100644 index 55427f7..0000000 --- a/0004-Fix-compatibility-with-GCC-7.patch +++ /dev/null @@ -1,112 +0,0 @@ -From a75f63218b84ee508c770391519a13bd400a5003 Mon Sep 17 00:00:00 2001 -From: Ben Noordhuis -Date: Thu, 13 Apr 2017 13:48:01 +0200 -Subject: [PATCH 4/4] v8: fix build errors with g++ 7 - -This is a local patch because upstream fixed it differently by moving -large chunks of code out of objects.h. We cannot easily back-port -those changes due to their size and invasiveness. - -Fixes: https://github.com/nodejs/node/issues/10388 -PR-URL: https://github.com/nodejs/node/pull/12392 -Reviewed-By: Anna Henningsen -Reviewed-By: Benjamin Gruenbaum -Reviewed-By: Daniel Bevenius -Reviewed-By: James M Snell ---- - deps/v8/src/objects-body-descriptors.h | 2 +- - deps/v8/src/objects-inl.h | 21 +++++++++++++++++++++ - deps/v8/src/objects.h | 20 ++++---------------- - 3 files changed, 26 insertions(+), 17 deletions(-) - -diff --git a/deps/v8/src/objects-body-descriptors.h b/deps/v8/src/objects-body-descriptors.h -index 91cb8883be88739eab2b10df71f6f0d08aab436e..a1c3634bd762d7e03b4c87d38aa14a9a3ce318e4 100644 ---- a/deps/v8/src/objects-body-descriptors.h -+++ b/deps/v8/src/objects-body-descriptors.h -@@ -97,11 +97,11 @@ class FixedBodyDescriptor final : public BodyDescriptorBase { - IterateBodyImpl(heap, obj, start_offset, end_offset); - } - - template - static inline void IterateBody(HeapObject* obj, int object_size) { -- IterateBody(obj); -+ IterateBody(obj); - } - }; - - - // This class describes a body of an object of a variable size -diff --git a/deps/v8/src/objects-inl.h b/deps/v8/src/objects-inl.h -index 11f4d7498d7558f56037483004a3d5839154516b..72208c2f00f4a9ff47ae487fa9a42f8f82cf12ea 100644 ---- a/deps/v8/src/objects-inl.h -+++ b/deps/v8/src/objects-inl.h -@@ -34,10 +34,31 @@ - #include "src/v8memory.h" - - namespace v8 { - namespace internal { - -+template -+uint32_t HashTable::Hash(Key key) { -+ if (Shape::UsesSeed) { -+ return Shape::SeededHash(key, GetHeap()->HashSeed()); -+ } else { -+ return Shape::Hash(key); -+ } -+} -+ -+ -+template -+uint32_t HashTable::HashForObject(Key key, -+ Object* object) { -+ if (Shape::UsesSeed) { -+ return Shape::SeededHashForObject(key, GetHeap()->HashSeed(), object); -+ } else { -+ return Shape::HashForObject(key, object); -+ } -+} -+ -+ - PropertyDetails::PropertyDetails(Smi* smi) { - value_ = smi->value(); - } - - -diff --git a/deps/v8/src/objects.h b/deps/v8/src/objects.h -index d1632c9deb298218faea31886ffdb0a8e0201cdc..47b02dadcff9658c9fcfe629e137667015e12079 100644 ---- a/deps/v8/src/objects.h -+++ b/deps/v8/src/objects.h -@@ -3259,26 +3259,14 @@ class HashTableBase : public FixedArray { - - - template - class HashTable : public HashTableBase { - public: -- // Wrapper methods -- inline uint32_t Hash(Key key) { -- if (Shape::UsesSeed) { -- return Shape::SeededHash(key, GetHeap()->HashSeed()); -- } else { -- return Shape::Hash(key); -- } -- } -- -- inline uint32_t HashForObject(Key key, Object* object) { -- if (Shape::UsesSeed) { -- return Shape::SeededHashForObject(key, GetHeap()->HashSeed(), object); -- } else { -- return Shape::HashForObject(key, object); -- } -- } -+ // Wrapper methods. Defined in src/objects-inl.h -+ // to break a cycle with src/heap/heap.h. -+ inline uint32_t Hash(Key key); -+ inline uint32_t HashForObject(Key key, Object* object); - - // Returns a new HashTable object. - MUST_USE_RESULT static Handle New( - Isolate* isolate, int at_least_space_for, - MinimumCapacity capacity_option = USE_DEFAULT_MINIMUM_CAPACITY, --- -2.12.2 - diff --git a/EPEL01-openssl101-compat.patch b/EPEL01-openssl101-compat.patch deleted file mode 100644 index f419f95..0000000 --- a/EPEL01-openssl101-compat.patch +++ /dev/null @@ -1,30 +0,0 @@ -diff -ru a/src/node_crypto.cc b/src/node_crypto.cc ---- a/src/node_crypto.cc 2017-03-31 22:39:56.483283868 +0200 -+++ b/src/node_crypto.cc 2017-03-31 22:45:36.250267750 +0200 -@@ -851,8 +851,6 @@ - } - } - -- // Increment reference count so global store is not deleted along with CTX. -- X509_STORE_up_ref(root_cert_store); - SSL_CTX_set_cert_store(sc->ctx_, root_cert_store); - } - -diff -ru a/src/node_crypto.h b/src/node_crypto.h ---- a/src/node_crypto.h 2017-03-21 20:43:33.000000000 +0100 -+++ b/src/node_crypto.h 2017-03-31 22:43:15.548183432 +0200 -@@ -145,6 +145,13 @@ - } - - env()->isolate()->AdjustAmountOfExternalAllocatedMemory(-kExternalSize); -+ if (ctx_->cert_store == root_cert_store) { -+ // SSL_CTX_free() will attempt to free the cert_store as well. -+ // Since we want our root_cert_store to stay around forever -+ // we just clear the field. Hopefully OpenSSL will not modify this -+ // struct in future versions. -+ ctx_->cert_store = nullptr; -+ } - SSL_CTX_free(ctx_); - if (cert_ != nullptr) - X509_free(cert_); - diff --git a/nodejs.spec b/nodejs.spec index 3190437..3d96d75 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -18,7 +18,7 @@ %global nodejs_epoch 1 %global nodejs_major 6 %global nodejs_minor 11 -%global nodejs_patch 2 +%global nodejs_patch 3 %global nodejs_abi %{nodejs_major}.%{nodejs_minor} %global nodejs_version %{nodejs_major}.%{nodejs_minor}.%{nodejs_patch} %global nodejs_release 1 @@ -28,7 +28,7 @@ %global v8_major 5 %global v8_minor 1 %global v8_build 281 -%global v8_patch 103 +%global v8_patch 107 # V8 presently breaks ABI at least every x.y release while never bumping SONAME %global v8_abi %{v8_major}.%{v8_minor} %global v8_version %{v8_major}.%{v8_minor}.%{v8_build}.%{v8_patch} @@ -96,13 +96,6 @@ Source7: nodejs_native.attr # Disable running gyp on bundled deps we don't use Patch1: 0001-Disable-running-gyp-files-for-bundled-deps.patch -# EPEL only has OpenSSL 1.0.1, so we need to carry a patch on that platform -Patch2: 0002-Use-openssl-1.0.1.patch - -# RHEL 7 still uses OpenSSL 1.0.1 for now, and it segfaults on SSL -# Revert this upstream patch until RHEL 7 upgrades to 1.0.2 -Patch5: EPEL01-openssl101-compat.patch - BuildRequires: python-devel BuildRequires: libuv-devel >= 1:1.9.1 Requires: libuv >= 1:1.9.1 @@ -118,15 +111,11 @@ BuildRequires: http-parser-devel >= 2.7.0 Provides: bundled(http-parser) = %{http_parser_version} %endif -%if 0%{?epel} -BuildRequires: openssl-devel >= 1:1.0.1 -%else %if 0%{?fedora} > 25 BuildRequires: compat-openssl10-devel >= 1:1.0.2 %else BuildRequires: openssl-devel >= 1:1.0.2 %endif -%endif # we need the system certificate store when Patch2 is applied Requires: ca-certificates @@ -247,12 +236,6 @@ rm -rf deps/icu-small \ deps/uv \ deps/zlib -%if 0%{?epel} -%patch2 -p1 -%patch5 -p1 -%endif - - %build # build with debugging symbols and add defines from libuv (#892601) # Node's v8 breaks with GCC 6 because of incorrect usage of methods on @@ -436,6 +419,11 @@ NODE_PATH=%{buildroot}%{_prefix}/lib/node_modules %{buildroot}/%{_bindir}/node - %{_pkgdocdir}/npm/doc %changelog +* Thu Sep 07 2017 Zuzana Svetlikova - 1:6.11.3-1 +- Update to 6.11.3 +- https://nodejs.org/en/blog/release/v6.11.3/ +- remove openssl 1.0.1 patches + * Tue Aug 01 2017 Zuzana Svetlikova - 1:6.11.2-1 - Update to 6.11.2 - https://nodejs.org/en/blog/release/v6.11.2/ diff --git a/sources b/sources index 2adcec3..4174557 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (node-v6.11.2-stripped.tar.gz) = 037382205b38d1dd693bc40b9c3d2c66b6c9bf4e635b1caaa11e897eaf4411834ca2132fd9c2113833c67cec8fe0764c6475841b8dc3a7477f535bcf28bbf2dd +SHA512 (node-v6.11.3-stripped.tar.gz) = 7e1e60d42d197c4634dd3d79888ea3cffa580bdbb8db1ec359a5d6277504bc013dd22b3a2c33cf957b4a858a3bcdc4e3752ab42b821e3c504887ade40286655a From d9fbecd59ec0c0237a9a0ceb9c61e2392b92c9ba Mon Sep 17 00:00:00 2001 From: Zuzana Svetlikova Date: Thu, 21 Sep 2017 10:57:40 +0200 Subject: [PATCH 30/48] Adjust spec for MBS --- nodejs.spec | 39 +++++++++++++++++++++++++-------------- 1 file changed, 25 insertions(+), 14 deletions(-) diff --git a/nodejs.spec b/nodejs.spec index 3d96d75..5000159 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -1,6 +1,7 @@ %global with_debug 1 -%{!?_with_bootstrap: %global bootstrap 0} +# bundle some dependencies missing in Modularity +%{!?_with_bootstrap: %global bootstrap 1} %{?!_pkgdocdir:%global _pkgdocdir %{_docdir}/%{name}-%{version}} @@ -45,6 +46,12 @@ %global http_parser_patch 0 %global http_parser_version %{http_parser_major}.%{http_parser_minor}.%{http_parser_patch} +# libuv - from deps/uv/include/uv-version.h +%global libuv_major 1 +%global libuv_minor 14 +%global libuv_patch 1 +%global libuv_version %{libuv_major}.%{libuv_minor}.%{libuv_patch} + # punycode - from lib/punycode.js # Note: this was merged into the mainline since 0.6.x # Note: this will be unmerged in v7 or v8 @@ -96,25 +103,25 @@ Source7: nodejs_native.attr # Disable running gyp on bundled deps we don't use Patch1: 0001-Disable-running-gyp-files-for-bundled-deps.patch -BuildRequires: python-devel -BuildRequires: libuv-devel >= 1:1.9.1 -Requires: libuv >= 1:1.9.1 -BuildRequires: libicu-devel -BuildRequires: zlib-devel BuildRequires: gcc >= 4.8.0 BuildRequires: gcc-c++ >= 4.8.0 %if ! 0%{?bootstrap} BuildRequires: systemtap-sdt-devel BuildRequires: http-parser-devel >= 2.7.0 +BuildRequires: libicu-devel +BuildRequires: zlib-devel +BuildRequires: python2-devel +BuildRequires: compat-openssl10-devel >= 1:1.0.2 +BuildRequires: libuv-devel >= 1:1.9.1 +Requires: libuv >= 1:1.9.1 %else Provides: bundled(http-parser) = %{http_parser_version} -%endif - -%if 0%{?fedora} > 25 -BuildRequires: compat-openssl10-devel >= 1:1.0.2 -%else -BuildRequires: openssl-devel >= 1:1.0.2 +Provides: bundled(libuv) = %{libuv_version} +BuildRequires: python2 +BuildRequires: libicu +BuildRequires: zlib +BuildRequires: compat-openssl10 %endif # we need the system certificate store when Patch2 is applied @@ -160,6 +167,7 @@ Provides: bundled(c-ares) = %{c_ares_version} # See https://github.com/nodejs/node/commit/d726a177ed59c37cf5306983ed00ecd858cfbbef Provides: bundled(v8) = %{v8_version} +%if ! 0%{?bootstrap} # Make sure we keep NPM up to date when we update Node.js %if 0%{?epel} # EPEL doesn't support Recommends, so make it strict @@ -167,6 +175,7 @@ Requires: npm = %{npm_epoch}:%{npm_version}-%{npm_release}%{?dist} %else Recommends: npm = %{npm_epoch}:%{npm_version}-%{npm_release}%{?dist} %endif +%endif %description @@ -180,12 +189,12 @@ real-time applications that run across distributed devices. Summary: JavaScript runtime - development headers Group: Development/Languages Requires: %{name}%{?_isa} = %{epoch}:%{nodejs_version}-%{nodejs_release}%{?dist} -Requires: libuv-devel%{?_isa} Requires: openssl-devel%{?_isa} Requires: zlib-devel%{?_isa} Requires: nodejs-packaging %if ! 0%{?bootstrap} Requires: http-parser-devel%{?_isa} +Requires: libuv-devel%{?_isa} %endif %description devel @@ -268,7 +277,6 @@ export CXXFLAGS="$(echo ${CXXFLAGS} | tr '\n\\' ' ')" ./configure --prefix=%{_prefix} \ --shared-openssl \ --shared-zlib \ - --shared-libuv \ --without-dtrace \ --with-intl=system-icu \ --openssl-use-def-ca-store @@ -419,6 +427,9 @@ NODE_PATH=%{buildroot}%{_prefix}/lib/node_modules %{buildroot}/%{_bindir}/node - %{_pkgdocdir}/npm/doc %changelog +* Thu Sep 21 2017 Zuzana Svetlikova - 1:6:11.3-2 +- Adjust spec for modularity + * Thu Sep 07 2017 Zuzana Svetlikova - 1:6.11.3-1 - Update to 6.11.3 - https://nodejs.org/en/blog/release/v6.11.3/ From 46c283bc0f9827c795b971ff23529cb31512c261 Mon Sep 17 00:00:00 2001 From: Zuzana Svetlikova Date: Mon, 25 Sep 2017 14:11:27 +0200 Subject: [PATCH 31/48] Fix dependencies in bootstrap --- nodejs.spec | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/nodejs.spec b/nodejs.spec index 5000159..4067296 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -22,7 +22,7 @@ %global nodejs_patch 3 %global nodejs_abi %{nodejs_major}.%{nodejs_minor} %global nodejs_version %{nodejs_major}.%{nodejs_minor}.%{nodejs_patch} -%global nodejs_release 1 +%global nodejs_release 2 # == Bundled Dependency Versions == # v8 - from deps/v8/include/v8-version.h @@ -103,25 +103,26 @@ Source7: nodejs_native.attr # Disable running gyp on bundled deps we don't use Patch1: 0001-Disable-running-gyp-files-for-bundled-deps.patch +BuildRequires: python2-devel +BuildRequires: libicu-devel +BuildRequires: zlib-devel BuildRequires: gcc >= 4.8.0 BuildRequires: gcc-c++ >= 4.8.0 %if ! 0%{?bootstrap} BuildRequires: systemtap-sdt-devel BuildRequires: http-parser-devel >= 2.7.0 -BuildRequires: libicu-devel -BuildRequires: zlib-devel -BuildRequires: python2-devel -BuildRequires: compat-openssl10-devel >= 1:1.0.2 BuildRequires: libuv-devel >= 1:1.9.1 Requires: libuv >= 1:1.9.1 %else Provides: bundled(http-parser) = %{http_parser_version} Provides: bundled(libuv) = %{libuv_version} -BuildRequires: python2 -BuildRequires: libicu -BuildRequires: zlib -BuildRequires: compat-openssl10 +%endif + +%if 0%{?fedora} > 25 +BuildRequires: compat-openssl10-devel >= 1:1.0.2 +%else +BuildRequires: openssl-devel >= 1:1.0.2 %endif # we need the system certificate store when Patch2 is applied @@ -242,7 +243,6 @@ The API documentation for the Node.js JavaScript runtime. # remove bundled dependencies that we aren't building %patch1 -p1 rm -rf deps/icu-small \ - deps/uv \ deps/zlib %build From 9eb87fbf58a8144df30a3bdf144ce9a5be79bfce Mon Sep 17 00:00:00 2001 From: Zuzana Svetlikova Date: Fri, 6 Oct 2017 22:50:11 +0200 Subject: [PATCH 32/48] Update, use bcond macro --- .gitignore | 1 + nodejs.spec | 50 ++++++++++++++++++++++++++++++-------------------- sources | 2 +- 3 files changed, 32 insertions(+), 21 deletions(-) diff --git a/.gitignore b/.gitignore index acb9286..9105bf5 100644 --- a/.gitignore +++ b/.gitignore @@ -71,3 +71,4 @@ /node-v6.11.1-stripped.tar.gz /node-v6.11.2-stripped.tar.gz /node-v6.11.3-stripped.tar.gz +/node-v6.11.4-stripped.tar.gz diff --git a/nodejs.spec b/nodejs.spec index 4067296..452e510 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -1,7 +1,8 @@ %global with_debug 1 # bundle some dependencies missing in Modularity -%{!?_with_bootstrap: %global bootstrap 1} +#%{!?_with_bootstrap: %global bootstrap 1} +%bcond_with bootstrap %{?!_pkgdocdir:%global _pkgdocdir %{_docdir}/%{name}-%{version}} @@ -19,17 +20,17 @@ %global nodejs_epoch 1 %global nodejs_major 6 %global nodejs_minor 11 -%global nodejs_patch 3 +%global nodejs_patch 4 %global nodejs_abi %{nodejs_major}.%{nodejs_minor} %global nodejs_version %{nodejs_major}.%{nodejs_minor}.%{nodejs_patch} -%global nodejs_release 2 +%global nodejs_release 1 # == Bundled Dependency Versions == # v8 - from deps/v8/include/v8-version.h %global v8_major 5 %global v8_minor 1 %global v8_build 281 -%global v8_patch 107 +%global v8_patch 108 # V8 presently breaks ABI at least every x.y release while never bumping SONAME %global v8_abi %{v8_major}.%{v8_minor} %global v8_version %{v8_major}.%{v8_minor}.%{v8_build}.%{v8_patch} @@ -48,8 +49,8 @@ # libuv - from deps/uv/include/uv-version.h %global libuv_major 1 -%global libuv_minor 14 -%global libuv_patch 1 +%global libuv_minor 11 +%global libuv_patch 0 %global libuv_version %{libuv_major}.%{libuv_minor}.%{libuv_patch} # punycode - from lib/punycode.js @@ -109,14 +110,16 @@ BuildRequires: zlib-devel BuildRequires: gcc >= 4.8.0 BuildRequires: gcc-c++ >= 4.8.0 -%if ! 0%{?bootstrap} +#%if ! 0%{?bootstrap} +%if %{with bootstrap} +Provides: bundled(http-parser) = %{http_parser_version} +Provides: bundled(libuv) = %{libuv_version} +%else BuildRequires: systemtap-sdt-devel BuildRequires: http-parser-devel >= 2.7.0 BuildRequires: libuv-devel >= 1:1.9.1 Requires: libuv >= 1:1.9.1 -%else -Provides: bundled(http-parser) = %{http_parser_version} -Provides: bundled(libuv) = %{libuv_version} + %endif %if 0%{?fedora} > 25 @@ -168,15 +171,12 @@ Provides: bundled(c-ares) = %{c_ares_version} # See https://github.com/nodejs/node/commit/d726a177ed59c37cf5306983ed00ecd858cfbbef Provides: bundled(v8) = %{v8_version} -%if ! 0%{?bootstrap} -# Make sure we keep NPM up to date when we update Node.js %if 0%{?epel} # EPEL doesn't support Recommends, so make it strict Requires: npm = %{npm_epoch}:%{npm_version}-%{npm_release}%{?dist} %else Recommends: npm = %{npm_epoch}:%{npm_version}-%{npm_release}%{?dist} %endif -%endif %description @@ -193,7 +193,10 @@ Requires: %{name}%{?_isa} = %{epoch}:%{nodejs_version}-%{nodejs_release}%{?dist} Requires: openssl-devel%{?_isa} Requires: zlib-devel%{?_isa} Requires: nodejs-packaging -%if ! 0%{?bootstrap} +#%if ! 0%{?bootstrap} +%if %{with bootstrap} +#deps are bundled +%else Requires: http-parser-devel%{?_isa} Requires: libuv-devel%{?_isa} %endif @@ -264,20 +267,21 @@ export CXXFLAGS='%{optflags} -g \ export CFLAGS="$(echo ${CFLAGS} | tr '\n\\' ' ')" export CXXFLAGS="$(echo ${CXXFLAGS} | tr '\n\\' ' ')" -%if ! 0%{?bootstrap} +#%if ! 0%{?bootstrap} +%if %{with bootstrap} ./configure --prefix=%{_prefix} \ --shared-openssl \ --shared-zlib \ - --shared-libuv \ - --shared-http-parser \ - --with-dtrace \ + --without-dtrace \ --with-intl=system-icu \ --openssl-use-def-ca-store %else ./configure --prefix=%{_prefix} \ --shared-openssl \ --shared-zlib \ - --without-dtrace \ + --shared-libuv \ + --shared-http-parser \ + --with-dtrace \ --with-intl=system-icu \ --openssl-use-def-ca-store %endif @@ -388,7 +392,8 @@ NODE_PATH=%{buildroot}%{_prefix}/lib/node_modules %{buildroot}/%{_bindir}/node - %dir %{_datadir}/systemtap/tapset %{_datadir}/systemtap/tapset/node.stp -%if ! 0%{?bootstrap} +#%if ! 0%{?bootstrap} +%if %{with bootstrap} %dir %{_usr}/lib/dtrace %{_usr}/lib/dtrace/node.d %endif @@ -427,6 +432,11 @@ NODE_PATH=%{buildroot}%{_prefix}/lib/node_modules %{buildroot}/%{_bindir}/node - %{_pkgdocdir}/npm/doc %changelog +* Fri Oct 06 2017 Zuzana Svetlikova - 1:6.11.4-1 +- Update to 6.11.4 +- https://nodejs.org/en/blog/release/v6.11.3/ +- use bcond macro + * Thu Sep 21 2017 Zuzana Svetlikova - 1:6:11.3-2 - Adjust spec for modularity diff --git a/sources b/sources index 4174557..3b66adf 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (node-v6.11.3-stripped.tar.gz) = 7e1e60d42d197c4634dd3d79888ea3cffa580bdbb8db1ec359a5d6277504bc013dd22b3a2c33cf957b4a858a3bcdc4e3752ab42b821e3c504887ade40286655a +SHA512 (node-v6.11.4-stripped.tar.gz) = 94d4759744dd61288a3c352ca6050954c0716772c19cd281a927a9702f9e41fdbdbcf310183e43c734187192d97817cbb1f1c203f47b400c60550a5da78fead6 From 73320d106322ac83a867a79a1446f54c63bdc96a Mon Sep 17 00:00:00 2001 From: Zuzana Svetlikova Date: Fri, 6 Oct 2017 23:36:06 +0200 Subject: [PATCH 33/48] Add missing else --- nodejs.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nodejs.spec b/nodejs.spec index 452e510..755d4f3 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -394,6 +394,8 @@ NODE_PATH=%{buildroot}%{_prefix}/lib/node_modules %{buildroot}/%{_bindir}/node - #%if ! 0%{?bootstrap} %if %{with bootstrap} +#no dtrace +%else %dir %{_usr}/lib/dtrace %{_usr}/lib/dtrace/node.d %endif From 8d7baa5f106b0000513814fdbd544c7825315cdc Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Thu, 26 Oct 2017 11:36:32 -0400 Subject: [PATCH 34/48] Update to 6.11.5 security release Signed-off-by: Stephen Gallagher --- .gitignore | 1 + nodejs.spec | 5 ++++- sources | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 9105bf5..4998aab 100644 --- a/.gitignore +++ b/.gitignore @@ -72,3 +72,4 @@ /node-v6.11.2-stripped.tar.gz /node-v6.11.3-stripped.tar.gz /node-v6.11.4-stripped.tar.gz +/node-v6.11.5-stripped.tar.gz diff --git a/nodejs.spec b/nodejs.spec index 755d4f3..9886a3d 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -20,7 +20,7 @@ %global nodejs_epoch 1 %global nodejs_major 6 %global nodejs_minor 11 -%global nodejs_patch 4 +%global nodejs_patch 5 %global nodejs_abi %{nodejs_major}.%{nodejs_minor} %global nodejs_version %{nodejs_major}.%{nodejs_minor}.%{nodejs_patch} %global nodejs_release 1 @@ -434,6 +434,9 @@ NODE_PATH=%{buildroot}%{_prefix}/lib/node_modules %{buildroot}/%{_bindir}/node - %{_pkgdocdir}/npm/doc %changelog +* Thu Oct 26 2017 Stephen Gallagher - 1:6.11.5-1 +- Update to 6.11.5 security release + * Fri Oct 06 2017 Zuzana Svetlikova - 1:6.11.4-1 - Update to 6.11.4 - https://nodejs.org/en/blog/release/v6.11.3/ diff --git a/sources b/sources index 3b66adf..3596f27 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (node-v6.11.4-stripped.tar.gz) = 94d4759744dd61288a3c352ca6050954c0716772c19cd281a927a9702f9e41fdbdbcf310183e43c734187192d97817cbb1f1c203f47b400c60550a5da78fead6 +SHA512 (node-v6.11.5-stripped.tar.gz) = 1a92ca8411bc683a588e0b51fc298a2a7ff162bf485157239a875dd7d57de554acbf6ed682ed5f80f4e0092577c193fd5b94eccdf22783d7a2b527747b86ca53 From e9f59064d08992ad0693b13ab86646ca1fef0305 Mon Sep 17 00:00:00 2001 From: Zuzana Svetlikova Date: Mon, 13 Nov 2017 11:19:16 +0100 Subject: [PATCH 35/48] Update to 6.12.0 --- .gitignore | 1 + nodejs.spec | 23 +++++++++++------------ sources | 2 +- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/.gitignore b/.gitignore index 4998aab..66a1163 100644 --- a/.gitignore +++ b/.gitignore @@ -73,3 +73,4 @@ /node-v6.11.3-stripped.tar.gz /node-v6.11.4-stripped.tar.gz /node-v6.11.5-stripped.tar.gz +/node-v6.12.0-stripped.tar.gz diff --git a/nodejs.spec b/nodejs.spec index 837ff68..858e7d9 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -1,7 +1,6 @@ %global with_debug 1 # bundle some dependencies missing in Modularity -#%{!?_with_bootstrap: %global bootstrap 1} %bcond_with bootstrap %{?!_pkgdocdir:%global _pkgdocdir %{_docdir}/%{name}-%{version}} @@ -19,8 +18,8 @@ # than a Fedora release lifecycle. %global nodejs_epoch 1 %global nodejs_major 6 -%global nodejs_minor 11 -%global nodejs_patch 5 +%global nodejs_minor 12 +%global nodejs_patch 0 %global nodejs_abi %{nodejs_major}.%{nodejs_minor} %global nodejs_version %{nodejs_major}.%{nodejs_minor}.%{nodejs_patch} %global nodejs_release 1 @@ -49,7 +48,7 @@ # libuv - from deps/uv/include/uv-version.h %global libuv_major 1 -%global libuv_minor 11 +%global libuv_minor 15 %global libuv_patch 0 %global libuv_version %{libuv_major}.%{libuv_minor}.%{libuv_patch} @@ -108,10 +107,9 @@ BuildRequires: python2-devel Requires: http-parser >= 2.7.0 BuildRequires: libicu-devel BuildRequires: zlib-devel -BuildRequires: gcc >= 4.8.0 -BuildRequires: gcc-c++ >= 4.8.0 +BuildRequires: gcc >= 4.8.5 +BuildRequires: gcc-c++ >= 4.8.5 -#%if ! 0%{?bootstrap} %if %{with bootstrap} Provides: bundled(http-parser) = %{http_parser_version} Provides: bundled(libuv) = %{libuv_version} @@ -129,7 +127,7 @@ BuildRequires: compat-openssl10-devel >= 1:1.0.2 BuildRequires: openssl-devel >= 1:1.0.2 %endif -# we need the system certificate store +# we need the system certificate store when Patch2 is applied Requires: ca-certificates #we need ABI virtual provides where SONAMEs aren't enough/not present so deps @@ -246,8 +244,7 @@ The API documentation for the Node.js JavaScript runtime. # remove bundled dependencies that we aren't building %patch1 -p1 -rm -rf deps/http-parser \ - deps/icu-small \ +rm -rf deps/icu-small \ deps/zlib @@ -270,7 +267,6 @@ export CXXFLAGS='%{optflags} -g \ export CFLAGS="$(echo ${CFLAGS} | tr '\n\\' ' ')" export CXXFLAGS="$(echo ${CXXFLAGS} | tr '\n\\' ' ')" -#%if ! 0%{?bootstrap} %if %{with bootstrap} ./configure --prefix=%{_prefix} \ --shared-openssl \ @@ -437,12 +433,15 @@ NODE_PATH=%{buildroot}%{_prefix}/lib/node_modules %{buildroot}/%{_bindir}/node - %{_pkgdocdir}/npm/doc %changelog +* Mon Nov 13 2017 Zuzana Svetlikova - 1:6.12.0-1 +- Update to 6.12.0 + * Thu Oct 26 2017 Stephen Gallagher - 1:6.11.5-1 - Update to 6.11.5 security release * Fri Oct 06 2017 Zuzana Svetlikova - 1:6.11.4-1 - Update to 6.11.4 -- https://nodejs.org/en/blog/release/v6.11.3/ +- https://nodejs.org/en/blog/release/v6.11.4/ - use bcond macro * Thu Sep 21 2017 Zuzana Svetlikova - 1:6:11.3-2 diff --git a/sources b/sources index 3596f27..33ee71c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (node-v6.11.5-stripped.tar.gz) = 1a92ca8411bc683a588e0b51fc298a2a7ff162bf485157239a875dd7d57de554acbf6ed682ed5f80f4e0092577c193fd5b94eccdf22783d7a2b527747b86ca53 +SHA512 (node-v6.12.0-stripped.tar.gz) = ec64483c7aeef6901a1d77b03bd5caa4e236c6c484b879c7a5a5c041fd3fd2d0d78df96428c3e3cb08abc123e381b1cab4a111375b07189c32f4b29db9aa8c26 From ff693e0914783dc4e3ba03caff3657151c7f3a2a Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Fri, 8 Dec 2017 16:09:58 -0500 Subject: [PATCH 36/48] Update to 6.12.2 https://nodejs.org/en/blog/release/v6.12.2/ Signed-off-by: Stephen Gallagher --- .gitignore | 1 + nodejs.spec | 12 ++++++++---- sources | 2 +- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 66a1163..fce5e3a 100644 --- a/.gitignore +++ b/.gitignore @@ -74,3 +74,4 @@ /node-v6.11.4-stripped.tar.gz /node-v6.11.5-stripped.tar.gz /node-v6.12.0-stripped.tar.gz +/node-v6.12.2-stripped.tar.gz diff --git a/nodejs.spec b/nodejs.spec index 858e7d9..ab1ab7b 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -19,7 +19,7 @@ %global nodejs_epoch 1 %global nodejs_major 6 %global nodejs_minor 12 -%global nodejs_patch 0 +%global nodejs_patch 2 %global nodejs_abi %{nodejs_major}.%{nodejs_minor} %global nodejs_version %{nodejs_major}.%{nodejs_minor}.%{nodejs_patch} %global nodejs_release 1 @@ -29,7 +29,7 @@ %global v8_major 5 %global v8_minor 1 %global v8_build 281 -%global v8_patch 108 +%global v8_patch 109 # V8 presently breaks ABI at least every x.y release while never bumping SONAME %global v8_abi %{v8_major}.%{v8_minor} %global v8_version %{v8_major}.%{v8_minor}.%{v8_build}.%{v8_patch} @@ -192,7 +192,7 @@ Requires: %{name}%{?_isa} = %{epoch}:%{nodejs_version}-%{nodejs_release}%{?dist} Requires: openssl-devel%{?_isa} Requires: zlib-devel%{?_isa} Requires: nodejs-packaging -#%if ! 0%{?bootstrap} +#%if ! 0%%{?bootstrap} %if %{with bootstrap} #deps are bundled %else @@ -391,7 +391,7 @@ NODE_PATH=%{buildroot}%{_prefix}/lib/node_modules %{buildroot}/%{_bindir}/node - %dir %{_datadir}/systemtap/tapset %{_datadir}/systemtap/tapset/node.stp -#%if ! 0%{?bootstrap} +#%if ! 0%%{?bootstrap} %if %{with bootstrap} #no dtrace %else @@ -433,6 +433,10 @@ NODE_PATH=%{buildroot}%{_prefix}/lib/node_modules %{buildroot}/%{_bindir}/node - %{_pkgdocdir}/npm/doc %changelog +* Fri Dec 08 2017 Stephen Gallagher - - +- Update to 6.12.2 +- https://nodejs.org/en/blog/release/v6.12.2/ + * Mon Nov 13 2017 Zuzana Svetlikova - 1:6.12.0-1 - Update to 6.12.0 diff --git a/sources b/sources index 33ee71c..ef1af3f 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (node-v6.12.0-stripped.tar.gz) = ec64483c7aeef6901a1d77b03bd5caa4e236c6c484b879c7a5a5c041fd3fd2d0d78df96428c3e3cb08abc123e381b1cab4a111375b07189c32f4b29db9aa8c26 +SHA512 (node-v6.12.2-stripped.tar.gz) = f32733fdb2b72c7540eae8082bd9fe6afa102381924985a8ffb5961639bfc6a4e1081b79abb1cd4009828b1ee93502291cca8ca966fbaa187cf5c7568a7db2f6 From 099be0c9874ea886f77a93a639841786f31059a1 Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Thu, 11 Jan 2018 19:40:45 -0500 Subject: [PATCH 37/48] Update to 6.12.3 https://nodejs.org/en/blog/release/v6.12.3/ Signed-off-by: Stephen Gallagher --- .gitignore | 1 + nodejs.spec | 10 +++++++--- sources | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index fce5e3a..8a78ea6 100644 --- a/.gitignore +++ b/.gitignore @@ -75,3 +75,4 @@ /node-v6.11.5-stripped.tar.gz /node-v6.12.0-stripped.tar.gz /node-v6.12.2-stripped.tar.gz +/node-v6.12.3-stripped.tar.gz diff --git a/nodejs.spec b/nodejs.spec index ab1ab7b..0593b88 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -19,7 +19,7 @@ %global nodejs_epoch 1 %global nodejs_major 6 %global nodejs_minor 12 -%global nodejs_patch 2 +%global nodejs_patch 3 %global nodejs_abi %{nodejs_major}.%{nodejs_minor} %global nodejs_version %{nodejs_major}.%{nodejs_minor}.%{nodejs_patch} %global nodejs_release 1 @@ -29,7 +29,7 @@ %global v8_major 5 %global v8_minor 1 %global v8_build 281 -%global v8_patch 109 +%global v8_patch 111 # V8 presently breaks ABI at least every x.y release while never bumping SONAME %global v8_abi %{v8_major}.%{v8_minor} %global v8_version %{v8_major}.%{v8_minor}.%{v8_build}.%{v8_patch} @@ -433,7 +433,11 @@ NODE_PATH=%{buildroot}%{_prefix}/lib/node_modules %{buildroot}/%{_bindir}/node - %{_pkgdocdir}/npm/doc %changelog -* Fri Dec 08 2017 Stephen Gallagher - - +* Thu Jan 11 2018 Stephen Gallagher - 1:6.12.3-1 +- Update to 6.12.3 +- https://nodejs.org/en/blog/release/v6.12.3/ + +* Fri Dec 08 2017 Stephen Gallagher - 1:6.12.2-1 - Update to 6.12.2 - https://nodejs.org/en/blog/release/v6.12.2/ diff --git a/sources b/sources index ef1af3f..0806cd3 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (node-v6.12.2-stripped.tar.gz) = f32733fdb2b72c7540eae8082bd9fe6afa102381924985a8ffb5961639bfc6a4e1081b79abb1cd4009828b1ee93502291cca8ca966fbaa187cf5c7568a7db2f6 +SHA512 (node-v6.12.3-stripped.tar.gz) = 2a79fad3d76b3f4cf74ae914ecf9464e24548330ee3c6eef7232fa116ecda76afaf8c762b57fdb1c29bbe054705fe1248b8788284a73dd70a9458a8ffed857c4 From 12ac43da4fa415870677ad68718e8ee85ede9796 Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Thu, 8 Mar 2018 09:45:09 -0500 Subject: [PATCH 38/48] Update to 6.13.1 - https://nodejs.org/en/blog/release/v6.12.4/ - https://nodejs.org/en/blog/release/v6.12.5/ - https://nodejs.org/en/blog/release/v6.13.0/ - https://nodejs.org/en/blog/release/v6.13.1/ Signed-off-by: Stephen Gallagher --- .gitignore | 1 + nodejs.spec | 15 +++++++++++---- sources | 2 +- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 8a78ea6..0726d5e 100644 --- a/.gitignore +++ b/.gitignore @@ -76,3 +76,4 @@ /node-v6.12.0-stripped.tar.gz /node-v6.12.2-stripped.tar.gz /node-v6.12.3-stripped.tar.gz +/node-v6.13.1-stripped.tar.gz diff --git a/nodejs.spec b/nodejs.spec index 0593b88..d316a92 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -18,8 +18,8 @@ # than a Fedora release lifecycle. %global nodejs_epoch 1 %global nodejs_major 6 -%global nodejs_minor 12 -%global nodejs_patch 3 +%global nodejs_minor 13 +%global nodejs_patch 1 %global nodejs_abi %{nodejs_major}.%{nodejs_minor} %global nodejs_version %{nodejs_major}.%{nodejs_minor}.%{nodejs_patch} %global nodejs_release 1 @@ -48,8 +48,8 @@ # libuv - from deps/uv/include/uv-version.h %global libuv_major 1 -%global libuv_minor 15 -%global libuv_patch 0 +%global libuv_minor 16 +%global libuv_patch 1 %global libuv_version %{libuv_major}.%{libuv_minor}.%{libuv_patch} # punycode - from lib/punycode.js @@ -433,6 +433,13 @@ NODE_PATH=%{buildroot}%{_prefix}/lib/node_modules %{buildroot}/%{_bindir}/node - %{_pkgdocdir}/npm/doc %changelog +* Thu Mar 08 2018 Stephen Gallagher - 1:6.13.1-1 +- Update to 6.13.1 +- https://nodejs.org/en/blog/release/v6.12.4/ +- https://nodejs.org/en/blog/release/v6.12.5/ +- https://nodejs.org/en/blog/release/v6.13.0/ +- https://nodejs.org/en/blog/release/v6.13.1/ + * Thu Jan 11 2018 Stephen Gallagher - 1:6.12.3-1 - Update to 6.12.3 - https://nodejs.org/en/blog/release/v6.12.3/ diff --git a/sources b/sources index 0806cd3..4b286e7 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (node-v6.12.3-stripped.tar.gz) = 2a79fad3d76b3f4cf74ae914ecf9464e24548330ee3c6eef7232fa116ecda76afaf8c762b57fdb1c29bbe054705fe1248b8788284a73dd70a9458a8ffed857c4 +SHA512 (node-v6.13.1-stripped.tar.gz) = 09a2cc205d747c20d21865f7c877b12223e1050e1c57b5a382eaed868a36536878538f8cd65125ab3f89e94c8f178cbf60ff97632aa8ae621718ad385ff51c88 From 374ae23edf3676653fec706a5c81c5cdf019ce11 Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Thu, 8 Mar 2018 10:55:22 -0500 Subject: [PATCH 39/48] Work around F28 build issue Signed-off-by: Stephen Gallagher --- nodejs.spec | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/nodejs.spec b/nodejs.spec index d316a92..16a7df0 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -249,6 +249,11 @@ rm -rf deps/icu-small \ %build +# Work around Fedora 28 build issue: +# https://fedoraproject.org/wiki/Changes/Avoid_usr_bin_python_in_RPM_Build#Quick_Opt-Out +# Tracking BZ: https://bugzilla.redhat.com/show_bug.cgi?id=1550564 +export PYTHON_DISALLOW_AMBIGUOUS_VERSION=0 + # build with debugging symbols and add defines from libuv (#892601) # Node's v8 breaks with GCC 6 because of incorrect usage of methods on # NULL objects. We need to pass -fno-delete-null-pointer-checks @@ -294,6 +299,11 @@ make BUILDTYPE=Release %{?_smp_mflags} %install +# Work around Fedora 28 build issue: +# https://fedoraproject.org/wiki/Changes/Avoid_usr_bin_python_in_RPM_Build#Quick_Opt-Out +# Tracking BZ: https://bugzilla.redhat.com/show_bug.cgi?id=1550564 +export PYTHON_DISALLOW_AMBIGUOUS_VERSION=0 + rm -rf %{buildroot} ./tools/install.py install %{buildroot} %{_prefix} From a790dbdf3d5cd0d80ff4b4c09618eb93515b80c3 Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Wed, 28 Mar 2018 14:22:21 -0400 Subject: [PATCH 40/48] Update to 6.14.0 https://nodejs.org/en/blog/release/v6.14.0/ Signed-off-by: Stephen Gallagher --- .gitignore | 1 + nodejs-tarball.sh | 3 +++ nodejs.spec | 10 +++++++--- sources | 2 +- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 0726d5e..303292d 100644 --- a/.gitignore +++ b/.gitignore @@ -77,3 +77,4 @@ /node-v6.12.2-stripped.tar.gz /node-v6.12.3-stripped.tar.gz /node-v6.13.1-stripped.tar.gz +/node-v6.14.0-stripped.tar.gz diff --git a/nodejs-tarball.sh b/nodejs-tarball.sh index e7e9613..20dab4b 100755 --- a/nodejs-tarball.sh +++ b/nodejs-tarball.sh @@ -5,3 +5,6 @@ wget http://nodejs.org/dist/v${version}/node-v${version}.tar.gz tar -zxf node-v${version}.tar.gz rm -rf node-v${version}/deps/openssl tar -zcf node-v${version}-stripped.tar.gz node-v${version} + +echo "Now make sure to run:" +echo "fedpkg new-sources node-v${version}-stripped.tar.gz" diff --git a/nodejs.spec b/nodejs.spec index 16a7df0..70d456f 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -18,8 +18,8 @@ # than a Fedora release lifecycle. %global nodejs_epoch 1 %global nodejs_major 6 -%global nodejs_minor 13 -%global nodejs_patch 1 +%global nodejs_minor 14 +%global nodejs_patch 0 %global nodejs_abi %{nodejs_major}.%{nodejs_minor} %global nodejs_version %{nodejs_major}.%{nodejs_minor}.%{nodejs_patch} %global nodejs_release 1 @@ -42,7 +42,7 @@ # http-parser - from deps/http_parser/http_parser.h %global http_parser_major 2 -%global http_parser_minor 7 +%global http_parser_minor 8 %global http_parser_patch 0 %global http_parser_version %{http_parser_major}.%{http_parser_minor}.%{http_parser_patch} @@ -443,6 +443,10 @@ NODE_PATH=%{buildroot}%{_prefix}/lib/node_modules %{buildroot}/%{_bindir}/node - %{_pkgdocdir}/npm/doc %changelog +* Wed Mar 28 2018 Stephen Gallagher - 1:6.14.0-1 +- Update to 6.14.0 +- https://nodejs.org/en/blog/release/v6.14.0/ + * Thu Mar 08 2018 Stephen Gallagher - 1:6.13.1-1 - Update to 6.13.1 - https://nodejs.org/en/blog/release/v6.12.4/ diff --git a/sources b/sources index 4b286e7..5edc8e0 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (node-v6.13.1-stripped.tar.gz) = 09a2cc205d747c20d21865f7c877b12223e1050e1c57b5a382eaed868a36536878538f8cd65125ab3f89e94c8f178cbf60ff97632aa8ae621718ad385ff51c88 +SHA512 (node-v6.14.0-stripped.tar.gz) = 6db788a179dd801ecc349378ab1cdb969530cc1ce3d05473f19435d4ebedec79802f2c28caa644a44904de290e4709167c4a81d714048e348528aae69d4d0fb6 From 949b25d19b3f9861743811c056df4efcd9a45c1d Mon Sep 17 00:00:00 2001 From: Rafael dos Santos Date: Fri, 13 Apr 2018 07:37:53 +0000 Subject: [PATCH 41/48] Use standard Fedora linker flags. - Resolves #1543859 Signed-off-by: Rafael dos Santos Signed-off-by: Stephen Gallagher --- nodejs.spec | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/nodejs.spec b/nodejs.spec index 70d456f..822dce1 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -22,7 +22,7 @@ %global nodejs_patch 0 %global nodejs_abi %{nodejs_major}.%{nodejs_minor} %global nodejs_version %{nodejs_major}.%{nodejs_minor}.%{nodejs_patch} -%global nodejs_release 1 +%global nodejs_release 2 # == Bundled Dependency Versions == # v8 - from deps/v8/include/v8-version.h @@ -272,6 +272,8 @@ export CXXFLAGS='%{optflags} -g \ export CFLAGS="$(echo ${CFLAGS} | tr '\n\\' ' ')" export CXXFLAGS="$(echo ${CXXFLAGS} | tr '\n\\' ' ')" +export LDFLAGS="%{build_ldflags}" + %if %{with bootstrap} ./configure --prefix=%{_prefix} \ --shared-openssl \ @@ -443,6 +445,9 @@ NODE_PATH=%{buildroot}%{_prefix}/lib/node_modules %{buildroot}/%{_bindir}/node - %{_pkgdocdir}/npm/doc %changelog +* Fri Apr 13 2018 Rafael dos Santos - 1:6.14.0-2 +- Use standard Fedora linker flags (bug #1543859) + * Wed Mar 28 2018 Stephen Gallagher - 1:6.14.0-1 - Update to 6.14.0 - https://nodejs.org/en/blog/release/v6.14.0/ From 3e4e6d91a032bcbc353720b5b4810cf9689f115c Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Thu, 3 May 2018 09:35:41 -0400 Subject: [PATCH 42/48] Update to 6.14.2 - https://nodejs.org/en/blog/release/v6.14.2/ - https://nodejs.org/en/blog/release/v6.14.1/ Signed-off-by: Stephen Gallagher --- .gitignore | 1 + nodejs.spec | 9 +++++++-- sources | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 303292d..84206d8 100644 --- a/.gitignore +++ b/.gitignore @@ -78,3 +78,4 @@ /node-v6.12.3-stripped.tar.gz /node-v6.13.1-stripped.tar.gz /node-v6.14.0-stripped.tar.gz +/node-v6.14.2-stripped.tar.gz diff --git a/nodejs.spec b/nodejs.spec index 822dce1..c053f9a 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -19,10 +19,10 @@ %global nodejs_epoch 1 %global nodejs_major 6 %global nodejs_minor 14 -%global nodejs_patch 0 +%global nodejs_patch 2 %global nodejs_abi %{nodejs_major}.%{nodejs_minor} %global nodejs_version %{nodejs_major}.%{nodejs_minor}.%{nodejs_patch} -%global nodejs_release 2 +%global nodejs_release 1 # == Bundled Dependency Versions == # v8 - from deps/v8/include/v8-version.h @@ -445,6 +445,11 @@ NODE_PATH=%{buildroot}%{_prefix}/lib/node_modules %{buildroot}/%{_bindir}/node - %{_pkgdocdir}/npm/doc %changelog +* Thu May 03 2018 Stephen Gallagher - 1:6.14.2-1 +- Update to 6.14.2 +- https://nodejs.org/en/blog/release/v6.14.2/ +- https://nodejs.org/en/blog/release/v6.14.1/ + * Fri Apr 13 2018 Rafael dos Santos - 1:6.14.0-2 - Use standard Fedora linker flags (bug #1543859) diff --git a/sources b/sources index 5edc8e0..4422efe 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (node-v6.14.0-stripped.tar.gz) = 6db788a179dd801ecc349378ab1cdb969530cc1ce3d05473f19435d4ebedec79802f2c28caa644a44904de290e4709167c4a81d714048e348528aae69d4d0fb6 +SHA512 (node-v6.14.2-stripped.tar.gz) = ce323a05dcc9a4e0341afaa5210de2c8c852d2554d3cfab6e9876a1be8da14c0703899c9b2c88edc08b2fae763a1a336bc9bd9df3a9cb421c9025fbe116e9061 From 6ec7be247154d4e02008c34b233a1be7f51d307e Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Thu, 3 May 2018 10:11:09 -0400 Subject: [PATCH 43/48] F26 doesn't have %{build_ldflags} Signed-off-by: Stephen Gallagher --- nodejs.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nodejs.spec b/nodejs.spec index c053f9a..344a9b5 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -272,7 +272,7 @@ export CXXFLAGS='%{optflags} -g \ export CFLAGS="$(echo ${CFLAGS} | tr '\n\\' ' ')" export CXXFLAGS="$(echo ${CXXFLAGS} | tr '\n\\' ' ')" -export LDFLAGS="%{build_ldflags}" +export LDFLAGS="%{__global_ldflags}" %if %{with bootstrap} ./configure --prefix=%{_prefix} \ From 6fe5ee09e5fc737d46afc8b2f30e8dfe0ec2011c Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Thu, 14 Jun 2018 14:07:51 -0400 Subject: [PATCH 44/48] Update to 6.14.3 security release https://nodejs.org/en/blog/release/v6.14.3/ --- .gitignore | 1 + nodejs.spec | 6 +++++- sources | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 84206d8..b92ecd8 100644 --- a/.gitignore +++ b/.gitignore @@ -79,3 +79,4 @@ /node-v6.13.1-stripped.tar.gz /node-v6.14.0-stripped.tar.gz /node-v6.14.2-stripped.tar.gz +/node-v6.14.3-stripped.tar.gz diff --git a/nodejs.spec b/nodejs.spec index c053f9a..7e53b8a 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -19,7 +19,7 @@ %global nodejs_epoch 1 %global nodejs_major 6 %global nodejs_minor 14 -%global nodejs_patch 2 +%global nodejs_patch 3 %global nodejs_abi %{nodejs_major}.%{nodejs_minor} %global nodejs_version %{nodejs_major}.%{nodejs_minor}.%{nodejs_patch} %global nodejs_release 1 @@ -445,6 +445,10 @@ NODE_PATH=%{buildroot}%{_prefix}/lib/node_modules %{buildroot}/%{_bindir}/node - %{_pkgdocdir}/npm/doc %changelog +* Thu Jun 14 2018 Stephen Gallagher - 1:6.14.3-1 +- Update to 6.14.3 security release +- https://nodejs.org/en/blog/release/v6.14.3/ + * Thu May 03 2018 Stephen Gallagher - 1:6.14.2-1 - Update to 6.14.2 - https://nodejs.org/en/blog/release/v6.14.2/ diff --git a/sources b/sources index 4422efe..0d63e30 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (node-v6.14.2-stripped.tar.gz) = ce323a05dcc9a4e0341afaa5210de2c8c852d2554d3cfab6e9876a1be8da14c0703899c9b2c88edc08b2fae763a1a336bc9bd9df3a9cb421c9025fbe116e9061 +SHA512 (node-v6.14.3-stripped.tar.gz) = 96978edb66680a41840880728ffbde620dafa7561bda29e1d9e32ece7f010bb2c1aa763f04e5f393c7f88714c9082d41741a180d3c63fce1966f5984381debc4 From e769d072e953cedf2490c82371d746bbfda50f4f Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Thu, 10 Jan 2019 08:04:00 -0500 Subject: [PATCH 45/48] Update to 6.16.0 security release * https://nodejs.org/en/blog/release/v6.16.0/ * https://nodejs.org/en/blog/release/v6.15.1/ * https://nodejs.org/en/blog/release/v6.15.0/ * https://nodejs.org/en/blog/release/v6.14.4/ Signed-off-by: Stephen Gallagher --- .gitignore | 1 + nodejs-tarball.sh | 4 ++-- nodejs.spec | 12 +++++++++--- sources | 2 +- 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index b92ecd8..34665da 100644 --- a/.gitignore +++ b/.gitignore @@ -80,3 +80,4 @@ /node-v6.14.0-stripped.tar.gz /node-v6.14.2-stripped.tar.gz /node-v6.14.3-stripped.tar.gz +/node-v6.16.0-stripped.tar.gz diff --git a/nodejs-tarball.sh b/nodejs-tarball.sh index 20dab4b..237ae13 100755 --- a/nodejs-tarball.sh +++ b/nodejs-tarball.sh @@ -1,10 +1,10 @@ #!/bin/sh version=$(rpm -q --specfile --qf='%{version}\n' nodejs.spec | head -n1) +rm -f node-v${version}.tar.gz wget http://nodejs.org/dist/v${version}/node-v${version}.tar.gz tar -zxf node-v${version}.tar.gz rm -rf node-v${version}/deps/openssl tar -zcf node-v${version}-stripped.tar.gz node-v${version} -echo "Now make sure to run:" -echo "fedpkg new-sources node-v${version}-stripped.tar.gz" +fedpkg new-sources node-v${version}-stripped.tar.gz diff --git a/nodejs.spec b/nodejs.spec index c977c5f..a09765a 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -18,8 +18,8 @@ # than a Fedora release lifecycle. %global nodejs_epoch 1 %global nodejs_major 6 -%global nodejs_minor 14 -%global nodejs_patch 3 +%global nodejs_minor 16 +%global nodejs_patch 0 %global nodejs_abi %{nodejs_major}.%{nodejs_minor} %global nodejs_version %{nodejs_major}.%{nodejs_minor}.%{nodejs_patch} %global nodejs_release 1 @@ -54,7 +54,6 @@ # punycode - from lib/punycode.js # Note: this was merged into the mainline since 0.6.x -# Note: this will be unmerged in v7 or v8 %global punycode_major 2 %global punycode_minor 0 %global punycode_patch 0 @@ -445,6 +444,13 @@ NODE_PATH=%{buildroot}%{_prefix}/lib/node_modules %{buildroot}/%{_bindir}/node - %{_pkgdocdir}/npm/doc %changelog +* Thu Jan 10 2019 Stephen Gallagher - 1:6.16.0-1 +- Update to 6.16.0 security release +- https://nodejs.org/en/blog/release/v6.16.0/ +- https://nodejs.org/en/blog/release/v6.15.1/ +- https://nodejs.org/en/blog/release/v6.15.0/ +- https://nodejs.org/en/blog/release/v6.14.4/ + * Thu Jun 14 2018 Stephen Gallagher - 1:6.14.3-1 - Update to 6.14.3 security release - https://nodejs.org/en/blog/release/v6.14.3/ diff --git a/sources b/sources index 0d63e30..5d4e0a5 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (node-v6.14.3-stripped.tar.gz) = 96978edb66680a41840880728ffbde620dafa7561bda29e1d9e32ece7f010bb2c1aa763f04e5f393c7f88714c9082d41741a180d3c63fce1966f5984381debc4 +SHA512 (node-v6.16.0-stripped.tar.gz) = f39f01be5149d08823b94f3609804e360c12f6bfacc80000cb59846492ae14dfb9b648c6bccaf5caadbeba27fb529a9a55d5c54a7ab290d87817a8e571c18a47 From cb0b28bd5fb859fdf5d9438a7237dbf7a7588517 Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Thu, 10 Jan 2019 08:25:24 -0500 Subject: [PATCH 46/48] Bundle http-parser since it uses backported features not available in RHEL Signed-off-by: Stephen Gallagher --- nodejs.spec | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/nodejs.spec b/nodejs.spec index a09765a..2a894a5 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -103,21 +103,18 @@ Source7: nodejs_native.attr Patch1: 0001-Disable-running-gyp-files-for-bundled-deps.patch BuildRequires: python2-devel -Requires: http-parser >= 2.7.0 BuildRequires: libicu-devel BuildRequires: zlib-devel BuildRequires: gcc >= 4.8.5 BuildRequires: gcc-c++ >= 4.8.5 +Provides: bundled(http-parser) = %{http_parser_version} %if %{with bootstrap} -Provides: bundled(http-parser) = %{http_parser_version} Provides: bundled(libuv) = %{libuv_version} %else BuildRequires: systemtap-sdt-devel -BuildRequires: http-parser-devel >= 2.7.0 BuildRequires: libuv-devel >= 1:1.9.1 Requires: libuv >= 1:1.9.1 - %endif %if 0%{?fedora} > 25 @@ -195,7 +192,6 @@ Requires: nodejs-packaging %if %{with bootstrap} #deps are bundled %else -Requires: http-parser-devel%{?_isa} Requires: libuv-devel%{?_isa} %endif @@ -285,7 +281,6 @@ export LDFLAGS="%{__global_ldflags}" --shared-openssl \ --shared-zlib \ --shared-libuv \ - --shared-http-parser \ --with-dtrace \ --with-intl=system-icu \ --openssl-use-def-ca-store @@ -444,6 +439,9 @@ NODE_PATH=%{buildroot}%{_prefix}/lib/node_modules %{buildroot}/%{_bindir}/node - %{_pkgdocdir}/npm/doc %changelog +* Thu Jan 10 2019 Stephen Gallagher - 1:6.16.0-2 +- Bundle http-parser since it uses backported features not available in RHEL + * Thu Jan 10 2019 Stephen Gallagher - 1:6.16.0-1 - Update to 6.16.0 security release - https://nodejs.org/en/blog/release/v6.16.0/ From a9185c10486639bdbb0c197ca1c89e012db4194a Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Tue, 18 Jun 2019 08:39:32 -0400 Subject: [PATCH 47/48] Update to 6.17.1 security release https://nodejs.org/en/blog/release/v6.17.1/ https://nodejs.org/en/blog/release/v6.17.0/ Drop debug build Signed-off-by: Stephen Gallagher --- .gitignore | 1 + nodejs.spec | 31 ++++++++----------------------- sources | 2 +- 3 files changed, 10 insertions(+), 24 deletions(-) diff --git a/.gitignore b/.gitignore index 34665da..1fc6100 100644 --- a/.gitignore +++ b/.gitignore @@ -81,3 +81,4 @@ /node-v6.14.2-stripped.tar.gz /node-v6.14.3-stripped.tar.gz /node-v6.16.0-stripped.tar.gz +/node-v6.17.1-stripped.tar.gz diff --git a/nodejs.spec b/nodejs.spec index 2a894a5..8f2bc62 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -1,16 +1,8 @@ -%global with_debug 1 - # bundle some dependencies missing in Modularity %bcond_with bootstrap %{?!_pkgdocdir:%global _pkgdocdir %{_docdir}/%{name}-%{version}} -# 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 == # Note: Fedora should only ship LTS versions of Node.js (currently expected # to be major versions with even numbers). The odd-numbered versions are new @@ -18,8 +10,8 @@ # than a Fedora release lifecycle. %global nodejs_epoch 1 %global nodejs_major 6 -%global nodejs_minor 16 -%global nodejs_patch 0 +%global nodejs_minor 17 +%global nodejs_patch 1 %global nodejs_abi %{nodejs_major}.%{nodejs_minor} %global nodejs_version %{nodejs_major}.%{nodejs_minor}.%{nodejs_patch} %global nodejs_release 1 @@ -286,12 +278,7 @@ export LDFLAGS="%{__global_ldflags}" --openssl-use-def-ca-store %endif -%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 @@ -307,11 +294,6 @@ rm -rf %{buildroot} # 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 @@ -413,9 +395,6 @@ NODE_PATH=%{buildroot}%{_prefix}/lib/node_modules %{buildroot}/%{_bindir}/node - %files devel -%if %{?with_debug} == 1 -%{_bindir}/node_g -%endif %{_includedir}/node %{_datadir}/node/common.gypi %{_pkgdocdir}/gdbinit @@ -439,6 +418,12 @@ NODE_PATH=%{buildroot}%{_prefix}/lib/node_modules %{buildroot}/%{_bindir}/node - %{_pkgdocdir}/npm/doc %changelog +* Tue Jun 18 2019 Stephen Gallagher - 1:6.17.1-1 +- Update to 6.17.1 security release +- https://nodejs.org/en/blog/release/v6.17.1/ +- https://nodejs.org/en/blog/release/v6.17.0/ +- Drop debug build + * Thu Jan 10 2019 Stephen Gallagher - 1:6.16.0-2 - Bundle http-parser since it uses backported features not available in RHEL diff --git a/sources b/sources index 5d4e0a5..9608953 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (node-v6.16.0-stripped.tar.gz) = f39f01be5149d08823b94f3609804e360c12f6bfacc80000cb59846492ae14dfb9b648c6bccaf5caadbeba27fb529a9a55d5c54a7ab290d87817a8e571c18a47 +SHA512 (node-v6.17.1-stripped.tar.gz) = 0c89917d14872bfdb94cd2ee428f67093fdef16cbaff5bd96d00960c040c23ce95550d3b634172035b28e214caeac7d2808e0b0b152885deb33b5ec55a6a2f7e From 9fe52744a293fb453d4c57a6063e5af6b4fa460f Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Fri, 14 Jan 2022 15:55:11 -0500 Subject: [PATCH 48/48] Node.js 6.x is years beyond its supported life --- .gitignore | 84 -- ...e-running-gyp-files-for-bundled-deps.patch | 25 - dead.package | 1 + macros.nodejs | 33 - nodejs-tarball.sh | 10 - nodejs.spec | 1066 ----------------- nodejs_native.attr | 2 - sources | 1 - 8 files changed, 1 insertion(+), 1221 deletions(-) delete mode 100644 .gitignore delete mode 100644 0001-Disable-running-gyp-files-for-bundled-deps.patch create mode 100644 dead.package delete mode 100644 macros.nodejs delete mode 100755 nodejs-tarball.sh delete mode 100644 nodejs.spec delete mode 100644 nodejs_native.attr delete mode 100644 sources diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 1fc6100..0000000 --- a/.gitignore +++ /dev/null @@ -1,84 +0,0 @@ -/node-v0.9.3.tar.gz -/node-v0.9.4.tar.gz -/node-v0.9.5.tar.gz -/node-v0.10.0.tar.gz -/node-v0.10.1.tar.gz -/node-v0.10.2.tar.gz -/node-v0.10.3.tar.gz -/node-v0.10.4.tar.gz -/node-v0.10.5.tar.gz -/node-v0.10.6.tar.gz -/node-v0.10.7-stripped.tar.gz -/node-v0.10.8-stripped.tar.gz -/node-v0.10.9-stripped.tar.gz -/node-v0.10.12-stripped.tar.gz -/node-v0.10.13-stripped.tar.gz -/node-v0.10.14-stripped.tar.gz -/node-v0.10.16-stripped.tar.gz -/node-v0.10.17-stripped.tar.gz -/node-v0.10.18-stripped.tar.gz -/node-v0.10.19-stripped.tar.gz -/node-v0.10.20-stripped.tar.gz -/node-v0.10.21-stripped.tar.gz -/node-v0.10.22-stripped.tar.gz -/node-v0.10.23-stripped.tar.gz -/node-v0.10.24.tar.gz -/node-v0.10.24-stripped.tar.gz -/node-v0.10.25-stripped.tar.gz -/node-v0.10.26-stripped.tar.gz -/node-v0.10.28-stripped.tar.gz -/node-v0.10.29-stripped.tar.gz -/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 -/node-v4.2.2-stripped.tar.gz -/node-v4.2.3-stripped.tar.gz -/node-v4.2.4-stripped.tar.gz -/node-v4.2.6-stripped.tar.gz -/node-v4.3.0-stripped.tar.gz -/node-v4.3.1-stripped.tar.gz -/node-v5.7.1-stripped.tar.gz -/node-v5.8.0-stripped.tar.gz -/node-v5.9.0.tar.gz -/node-v5.9.1-stripped.tar.gz -/node-v5.10.0-stripped.tar.gz -/node-v5.10.1-stripped.tar.gz -/node-v5.11.0-stripped.tar.gz -/node-v6.1.0-stripped.tar.gz -/node-v6.2.0-stripped.tar.gz -/node-v6.2.1-stripped.tar.gz -/node-v6.2.2-stripped.tar.gz -/node-v6.3.0-stripped.tar.gz -/node-v6.3.1-stripped.tar.gz -/node-v6.4.0-stripped.tar.gz -/node-v6.5.0-stripped.tar.gz -/node-v6.6.0-stripped.tar.gz -/node-v6.7.0-stripped.tar.gz -/node-v6.8.0-stripped.tar.gz -/node-v6.8.1-stripped.tar.gz -/node-v6.9.0-stripped.tar.gz -/node-v6.9.1-stripped.tar.gz -/node-v6.9.2-stripped.tar.gz -/node-v6.9.3-stripped.tar.gz -/node-v6.9.4-stripped.tar.gz -/node-v6.9.5-stripped.tar.gz -/node-v6.10.0-stripped.tar.gz -/node-v6.10.1-stripped.tar.gz -/node-v6.10.2-stripped.tar.gz -/node-v6.10.3-stripped.tar.gz -/node-v6.11.0-stripped.tar.gz -/node-v6.11.1-stripped.tar.gz -/node-v6.11.2-stripped.tar.gz -/node-v6.11.3-stripped.tar.gz -/node-v6.11.4-stripped.tar.gz -/node-v6.11.5-stripped.tar.gz -/node-v6.12.0-stripped.tar.gz -/node-v6.12.2-stripped.tar.gz -/node-v6.12.3-stripped.tar.gz -/node-v6.13.1-stripped.tar.gz -/node-v6.14.0-stripped.tar.gz -/node-v6.14.2-stripped.tar.gz -/node-v6.14.3-stripped.tar.gz -/node-v6.16.0-stripped.tar.gz -/node-v6.17.1-stripped.tar.gz diff --git a/0001-Disable-running-gyp-files-for-bundled-deps.patch b/0001-Disable-running-gyp-files-for-bundled-deps.patch deleted file mode 100644 index a97a09a..0000000 --- a/0001-Disable-running-gyp-files-for-bundled-deps.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 8946146b37e4170c406fbdd7c60f1bbb79a9311a Mon Sep 17 00:00:00 2001 -From: Zuzana Svetlikova -Date: Wed, 6 Sep 2017 14:17:21 +0200 -Subject: [PATCH] dont run gyp on shared deps - ---- - Makefile | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Makefile b/Makefile -index 577d0e232a..bb47a1b95e 100644 ---- a/Makefile -+++ b/Makefile -@@ -77,7 +77,7 @@ $(NODE_G_EXE): config.gypi out/Makefile - $(MAKE) -C out BUILDTYPE=Debug V=$(V) - if [ ! -r $@ -o ! -L $@ ]; then ln -fs out/Debug/$(NODE_EXE) $@; fi - --out/Makefile: common.gypi deps/uv/uv.gyp deps/http_parser/http_parser.gyp deps/zlib/zlib.gyp deps/v8/build/toolchain.gypi deps/v8/build/features.gypi deps/v8/tools/gyp/v8.gyp node.gyp config.gypi -+out/Makefile: common.gypi deps/v8/build/toolchain.gypi deps/v8/build/features.gypi deps/v8/tools/gyp/v8.gyp node.gyp config.gypi - $(PYTHON) tools/gyp_node.py -f make - - config.gypi: configure --- -2.14.1 - diff --git a/dead.package b/dead.package new file mode 100644 index 0000000..9e77afb --- /dev/null +++ b/dead.package @@ -0,0 +1 @@ +Node.js 6.x is years beyond its supported life diff --git a/macros.nodejs b/macros.nodejs deleted file mode 100644 index 468a30d..0000000 --- a/macros.nodejs +++ /dev/null @@ -1,33 +0,0 @@ -# nodejs binary -%__nodejs %{_bindir}/node - -# nodejs library directory -%nodejs_sitelib %{_prefix}/lib/node_modules - -#arch specific library directory -#for future-proofing only; we don't do multilib -%nodejs_sitearch %{nodejs_sitelib} - -# currently installed nodejs version -%nodejs_version %(%{__nodejs} -v | sed s/v//) - -# symlink dependencies so `npm link` works -# this should be run in every module's %%install section -# pass --check to work in the current directory instead of the buildroot -# pass --no-devdeps to ignore devDependencies when --check is used -%nodejs_symlink_deps %{_rpmconfigdir}/nodejs-symlink-deps %{nodejs_sitelib} - -# patch package.json to fix a dependency -# see `man npm-json` for details on writing dependencies for package.json files -# e.g. `%%nodejs_fixdep frobber` makes any version of frobber do -# `%%nodejs_fixdep frobber '>1.0'` requires frobber > 1.0 -# `%%nodejs_fixdep -r frobber removes the frobber dep -%nodejs_fixdep %{_rpmconfigdir}/nodejs-fixdep - -# macro to filter unwanted provides from Node.js binary native modules -%nodejs_default_filter %{expand: \ -%global __provides_exclude_from ^%{nodejs_sitearch}/.*\\.node$ -} - -# no-op macro to allow spec compatibility with EPEL -%nodejs_find_provides_and_requires %{nil} diff --git a/nodejs-tarball.sh b/nodejs-tarball.sh deleted file mode 100755 index 237ae13..0000000 --- a/nodejs-tarball.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh - -version=$(rpm -q --specfile --qf='%{version}\n' nodejs.spec | head -n1) -rm -f node-v${version}.tar.gz -wget http://nodejs.org/dist/v${version}/node-v${version}.tar.gz -tar -zxf node-v${version}.tar.gz -rm -rf node-v${version}/deps/openssl -tar -zcf node-v${version}-stripped.tar.gz node-v${version} - -fedpkg new-sources node-v${version}-stripped.tar.gz diff --git a/nodejs.spec b/nodejs.spec deleted file mode 100644 index 8f2bc62..0000000 --- a/nodejs.spec +++ /dev/null @@ -1,1066 +0,0 @@ -# bundle some dependencies missing in Modularity -%bcond_with bootstrap - -%{?!_pkgdocdir:%global _pkgdocdir %{_docdir}/%{name}-%{version}} - -# == Node.js Version == -# Note: Fedora should only ship LTS versions of Node.js (currently expected -# to be major versions with even numbers). The odd-numbered versions are new -# feature releases that are only supported for nine months, which is shorter -# than a Fedora release lifecycle. -%global nodejs_epoch 1 -%global nodejs_major 6 -%global nodejs_minor 17 -%global nodejs_patch 1 -%global nodejs_abi %{nodejs_major}.%{nodejs_minor} -%global nodejs_version %{nodejs_major}.%{nodejs_minor}.%{nodejs_patch} -%global nodejs_release 1 - -# == Bundled Dependency Versions == -# v8 - from deps/v8/include/v8-version.h -%global v8_major 5 -%global v8_minor 1 -%global v8_build 281 -%global v8_patch 111 -# V8 presently breaks ABI at least every x.y release while never bumping SONAME -%global v8_abi %{v8_major}.%{v8_minor} -%global v8_version %{v8_major}.%{v8_minor}.%{v8_build}.%{v8_patch} - -# c-ares - from deps/cares/include/ares_version.h -%global c_ares_major 1 -%global c_ares_minor 10 -%global c_ares_patch 1 -%global c_ares_version %{c_ares_major}.%{c_ares_minor}.%{c_ares_patch} - -# http-parser - from deps/http_parser/http_parser.h -%global http_parser_major 2 -%global http_parser_minor 8 -%global http_parser_patch 0 -%global http_parser_version %{http_parser_major}.%{http_parser_minor}.%{http_parser_patch} - -# libuv - from deps/uv/include/uv-version.h -%global libuv_major 1 -%global libuv_minor 16 -%global libuv_patch 1 -%global libuv_version %{libuv_major}.%{libuv_minor}.%{libuv_patch} - -# punycode - from lib/punycode.js -# Note: this was merged into the mainline since 0.6.x -%global punycode_major 2 -%global punycode_minor 0 -%global punycode_patch 0 -%global punycode_version %{punycode_major}.%{punycode_minor}.%{punycode_patch} - -# npm - from deps/npm/package.json -%global npm_epoch 1 -%global npm_major 3 -%global npm_minor 10 -%global npm_patch 10 -%global npm_version %{npm_major}.%{npm_minor}.%{npm_patch} - -# In order to avoid needing to keep incrementing the release version for the -# main package forever, we will just construct one for npm that is guaranteed -# to increment safely. Changing this can only be done during an update when the -# base npm version number is increasing. -%global npm_release %{nodejs_epoch}.%{nodejs_major}.%{nodejs_minor}.%{nodejs_patch}.%{nodejs_release} - -# Filter out the NPM bundled dependencies so we aren't providing them -%global __provides_exclude_from ^%{_prefix}/lib/node_modules/npm/.*$ -%global __requires_exclude_from ^%{_prefix}/lib/node_modules/npm/.*$ - - -Name: nodejs -Epoch: %{nodejs_epoch} -Version: %{nodejs_version} -Release: %{nodejs_release}%{?dist} -Summary: JavaScript runtime -License: MIT and ASL 2.0 and ISC and BSD -Group: Development/Languages -URL: http://nodejs.org/ - -ExclusiveArch: %{nodejs_arches} - -# nodejs bundles openssl, but we use the system version in Fedora -# because openssl contains prohibited code, we remove openssl completely from -# the tarball, using the script in Source100 -Source0: node-v%{nodejs_version}-stripped.tar.gz -Source100: %{name}-tarball.sh - -# The native module Requires generator remains in the nodejs SRPM, so it knows -# the nodejs and v8 versions. The remainder has migrated to the -# nodejs-packaging SRPM. -Source7: nodejs_native.attr - -# Disable running gyp on bundled deps we don't use -Patch1: 0001-Disable-running-gyp-files-for-bundled-deps.patch - -BuildRequires: python2-devel -BuildRequires: libicu-devel -BuildRequires: zlib-devel -BuildRequires: gcc >= 4.8.5 -BuildRequires: gcc-c++ >= 4.8.5 -Provides: bundled(http-parser) = %{http_parser_version} - -%if %{with bootstrap} -Provides: bundled(libuv) = %{libuv_version} -%else -BuildRequires: systemtap-sdt-devel -BuildRequires: libuv-devel >= 1:1.9.1 -Requires: libuv >= 1:1.9.1 -%endif - -%if 0%{?fedora} > 25 -BuildRequires: compat-openssl10-devel >= 1:1.0.2 -%else -BuildRequires: openssl-devel >= 1:1.0.2 -%endif - -# we need the system certificate store when Patch2 is applied -Requires: ca-certificates - -#we need ABI virtual provides where SONAMEs aren't enough/not present so deps -#break when binary compatibility is broken -Provides: nodejs(abi) = %{nodejs_abi} -Provides: nodejs(abi%{nodejs_major}) = %{nodejs_abi} -Provides: nodejs(v8-abi) = %{v8_abi} -Provides: nodejs(v8-abi%{v8_major}) = %{v8_abi} - -#this corresponds to the "engine" requirement in package.json -Provides: nodejs(engine) = %{nodejs_version} - -# Node.js currently has a conflict with the 'node' package in Fedora -# The ham-radio group has agreed to rename their binary for us, but -# in the meantime, we're setting an explicit Conflicts: here -Conflicts: node <= 0.3.2-12 - -# The punycode module was absorbed into the standard library in v0.6. -# It still exists as a seperate package for the benefit of users of older -# versions. Since we've never shipped anything older than v0.10 in Fedora, -# we don't need the seperate nodejs-punycode package, so we Provide it here so -# dependent packages don't need to override the dependency generator. -# See also: RHBZ#11511811 -# UPDATE: punycode will be deprecated and so we should unbundle it in Node v8 -# and use upstream module instead -# https://github.com/nodejs/node/commit/29e49fc286080215031a81effbd59eac092fff2f -Provides: nodejs-punycode = %{punycode_version} -Provides: npm(punycode) = %{punycode_version} - - -# 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 -Provides: bundled(c-ares) = %{c_ares_version} - -# 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_version} - -%if 0%{?epel} -# EPEL doesn't support Recommends, so make it strict -Requires: npm = %{npm_epoch}:%{npm_version}-%{npm_release}%{?dist} -%else -Recommends: npm = %{npm_epoch}:%{npm_version}-%{npm_release}%{?dist} -%endif - - -%description -Node.js is a platform built on Chrome's JavaScript runtime -for easily building fast, scalable network applications. -Node.js uses an event-driven, non-blocking I/O model that -makes it lightweight and efficient, perfect for data-intensive -real-time applications that run across distributed devices. - -%package devel -Summary: JavaScript runtime - development headers -Group: Development/Languages -Requires: %{name}%{?_isa} = %{epoch}:%{nodejs_version}-%{nodejs_release}%{?dist} -Requires: openssl-devel%{?_isa} -Requires: zlib-devel%{?_isa} -Requires: nodejs-packaging -#%if ! 0%%{?bootstrap} -%if %{with bootstrap} -#deps are bundled -%else -Requires: libuv-devel%{?_isa} -%endif - -%description devel -Development headers for the Node.js JavaScript runtime. - -%package -n npm -Summary: Node.js Package Manager -Epoch: %{npm_epoch} -Version: %{npm_version} -Release: %{npm_release}%{?dist} - -# We used to ship npm separately, but it is so tightly integrated with Node.js -# (and expected to be present on all Node.js systems) that we ship it bundled -# now. -Obsoletes: npm < 0:3.5.4-6 -Provides: npm = %{npm_epoch}:%{npm_version} -Requires: nodejs = %{epoch}:%{nodejs_version}-%{nodejs_release}%{?dist} - -# Do not add epoch to the virtual NPM provides or it will break -# the automatic dependency-generation script. -Provides: npm(npm) = %{npm_version} - -%description -n npm -npm is a package manager for node.js. You can use it to install and publish -your node programs. It manages dependencies and does other cool stuff. - -%package docs -Summary: Node.js API documentation -Group: Documentation -BuildArch: noarch - -# We don't require that the main package be installed to -# use the docs, but if it is installed, make sure the -# version always matches -Conflicts: %{name} > %{epoch}:%{nodejs_version}-%{nodejs_release}%{?dist} -Conflicts: %{name} < %{epoch}:%{nodejs_version}-%{nodejs_release}%{?dist} - -%description docs -The API documentation for the Node.js JavaScript runtime. - - -%prep -%setup -q -n node-v%{nodejs_version} - -# remove bundled dependencies that we aren't building -%patch1 -p1 -rm -rf deps/icu-small \ - deps/zlib - - -%build -# Work around Fedora 28 build issue: -# https://fedoraproject.org/wiki/Changes/Avoid_usr_bin_python_in_RPM_Build#Quick_Opt-Out -# Tracking BZ: https://bugzilla.redhat.com/show_bug.cgi?id=1550564 -export PYTHON_DISALLOW_AMBIGUOUS_VERSION=0 - -# build with debugging symbols and add defines from libuv (#892601) -# Node's v8 breaks with GCC 6 because of incorrect usage of methods on -# NULL objects. We need to pass -fno-delete-null-pointer-checks -export CFLAGS='%{optflags} -g \ - -D_LARGEFILE_SOURCE \ - -D_FILE_OFFSET_BITS=64 \ - -DZLIB_CONST \ - -fno-delete-null-pointer-checks' -export CXXFLAGS='%{optflags} -g \ - -D_LARGEFILE_SOURCE \ - -D_FILE_OFFSET_BITS=64 \ - -DZLIB_CONST \ - -fno-delete-null-pointer-checks' - -# Explicit new lines in C(XX)FLAGS can break naive build scripts -export CFLAGS="$(echo ${CFLAGS} | tr '\n\\' ' ')" -export CXXFLAGS="$(echo ${CXXFLAGS} | tr '\n\\' ' ')" - -export LDFLAGS="%{__global_ldflags}" - -%if %{with bootstrap} -./configure --prefix=%{_prefix} \ - --shared-openssl \ - --shared-zlib \ - --without-dtrace \ - --with-intl=system-icu \ - --openssl-use-def-ca-store -%else -./configure --prefix=%{_prefix} \ - --shared-openssl \ - --shared-zlib \ - --shared-libuv \ - --with-dtrace \ - --with-intl=system-icu \ - --openssl-use-def-ca-store -%endif - -make BUILDTYPE=Release %{?_smp_mflags} - - -%install -# Work around Fedora 28 build issue: -# https://fedoraproject.org/wiki/Changes/Avoid_usr_bin_python_in_RPM_Build#Quick_Opt-Out -# Tracking BZ: https://bugzilla.redhat.com/show_bug.cgi?id=1550564 -export PYTHON_DISALLOW_AMBIGUOUS_VERSION=0 - -rm -rf %{buildroot} - -./tools/install.py install %{buildroot} %{_prefix} - -# Set the binary permissions properly -chmod 0755 %{buildroot}/%{_bindir}/node - -# own the sitelib directory -mkdir -p %{buildroot}%{_prefix}/lib/node_modules - -# ensure Requires are added to every native module that match the Provides from -# the nodejs build in the buildroot -install -Dpm0644 %{SOURCE7} %{buildroot}%{_rpmconfigdir}/fileattrs/nodejs_native.attr -cat << EOF > %{buildroot}%{_rpmconfigdir}/nodejs_native.req -#!/bin/sh -echo 'nodejs(abi%{nodejs_major}) >= %nodejs_abi' -echo 'nodejs(v8-abi%{v8_major}) >= %v8_abi' -EOF -chmod 0755 %{buildroot}%{_rpmconfigdir}/nodejs_native.req - -#install documentation -mkdir -p %{buildroot}%{_pkgdocdir}/html -cp -pr doc/* %{buildroot}%{_pkgdocdir}/html -rm -f %{buildroot}%{_pkgdocdir}/html/nodejs.1 - -#node-gyp needs common.gypi too -mkdir -p %{buildroot}%{_datadir}/node -cp -p common.gypi %{buildroot}%{_datadir}/node - -# Install the GDB init tool into the documentation directory -mv %{buildroot}/%{_datadir}/doc/node/gdbinit %{buildroot}/%{_pkgdocdir}/gdbinit - -# Since the old version of NPM was unbundled, there are a lot of symlinks in -# it's node_modules directory. We need to keep these as symlinks to ensure we -# can backtrack on this if we decide to. - -# Rename the npm node_modules directory to node_modules.bundled -mv %{buildroot}/%{_prefix}/lib/node_modules/npm/node_modules \ - %{buildroot}/%{_prefix}/lib/node_modules/npm/node_modules.bundled - -# Recreate all the symlinks -mkdir -p %{buildroot}/%{_prefix}/lib/node_modules/npm/node_modules -FILES=%{buildroot}/%{_prefix}/lib/node_modules/npm/node_modules.bundled/* -for f in $FILES -do - module=`basename $f` - ln -s ../node_modules.bundled/$module %{buildroot}%{_prefix}/lib/node_modules/npm/node_modules/$module -done - -# install NPM docs to mandir -mkdir -p %{buildroot}%{_mandir} \ - %{buildroot}%{_pkgdocdir}/npm - -cp -pr deps/npm/man/* %{buildroot}%{_mandir}/ -rm -rf %{buildroot}%{_prefix}/lib/node_modules/npm/man -ln -sf %{_mandir} %{buildroot}%{_prefix}/lib/node_modules/npm/man - -# Install Markdown and HTML documentation to %{_pkgdocdir} -cp -pr deps/npm/html deps/npm/doc %{buildroot}%{_pkgdocdir}/npm/ -rm -rf %{buildroot}%{_prefix}/lib/node_modules/npm/html \ - %{buildroot}%{_prefix}/lib/node_modules/npm/doc - -ln -sf %{_pkgdocdir} %{buildroot}%{_prefix}/lib/node_modules/npm/html -ln -sf %{_pkgdocdir}/npm/html %{buildroot}%{_prefix}/lib/node_modules/npm/doc - - -# Node tries to install some python files into a documentation directory -# (and not the proper one). Remove them for now until we figure out what to -# do with them. -rm -f %{buildroot}/%{_defaultdocdir}/node/lldb_commands.py \ - %{buildroot}/%{_defaultdocdir}/node/lldbinit - -%check -# Fail the build if the versions don't match -%{buildroot}/%{_bindir}/node -e "require('assert').equal(process.versions.node, '%{nodejs_version}')" -%{buildroot}/%{_bindir}/node -e "require('assert').equal(process.versions.v8, '%{v8_version}')" -%{buildroot}/%{_bindir}/node -e "require('assert').equal(process.versions.ares.replace(/-DEV$/, ''), '%{c_ares_version}')" - -# Ensure we have punycode and that the version matches -%{buildroot}/%{_bindir}/node -e "require(\"assert\").equal(require(\"punycode\").version, '%{punycode_version}')" - -# Ensure we have npm and that the version matches -NODE_PATH=%{buildroot}%{_prefix}/lib/node_modules %{buildroot}/%{_bindir}/node -e "require(\"assert\").equal(require(\"npm\").version, '%{npm_version}')" - -%files -%{_bindir}/node -%dir %{_prefix}/lib/node_modules -%dir %{_datadir}/node -%dir %{_datadir}/systemtap -%dir %{_datadir}/systemtap/tapset -%{_datadir}/systemtap/tapset/node.stp - -#%if ! 0%%{?bootstrap} -%if %{with bootstrap} -#no dtrace -%else -%dir %{_usr}/lib/dtrace -%{_usr}/lib/dtrace/node.d -%endif - -%{_rpmconfigdir}/fileattrs/nodejs_native.attr -%{_rpmconfigdir}/nodejs_native.req -%license LICENSE -%doc AUTHORS CHANGELOG.md COLLABORATOR_GUIDE.md GOVERNANCE.md README.md -%doc %{_mandir}/man1/node.1* - - -%files devel -%{_includedir}/node -%{_datadir}/node/common.gypi -%{_pkgdocdir}/gdbinit - - -%files -n npm -%{_bindir}/npm -%{_prefix}/lib/node_modules/npm -%ghost %{_sysconfdir}/npmrc -%ghost %{_sysconfdir}/npmignore -%doc %{_mandir}/man*/npm* -%doc %{_mandir}/man5/package.json.5* -%doc %{_mandir}/man7/removing-npm.7* -%doc %{_mandir}/man7/semver.7* - - -%files docs -%dir %{_pkgdocdir} -%{_pkgdocdir}/html -%{_pkgdocdir}/npm/html -%{_pkgdocdir}/npm/doc - -%changelog -* Tue Jun 18 2019 Stephen Gallagher - 1:6.17.1-1 -- Update to 6.17.1 security release -- https://nodejs.org/en/blog/release/v6.17.1/ -- https://nodejs.org/en/blog/release/v6.17.0/ -- Drop debug build - -* Thu Jan 10 2019 Stephen Gallagher - 1:6.16.0-2 -- Bundle http-parser since it uses backported features not available in RHEL - -* Thu Jan 10 2019 Stephen Gallagher - 1:6.16.0-1 -- Update to 6.16.0 security release -- https://nodejs.org/en/blog/release/v6.16.0/ -- https://nodejs.org/en/blog/release/v6.15.1/ -- https://nodejs.org/en/blog/release/v6.15.0/ -- https://nodejs.org/en/blog/release/v6.14.4/ - -* Thu Jun 14 2018 Stephen Gallagher - 1:6.14.3-1 -- Update to 6.14.3 security release -- https://nodejs.org/en/blog/release/v6.14.3/ - -* Thu May 03 2018 Stephen Gallagher - 1:6.14.2-1 -- Update to 6.14.2 -- https://nodejs.org/en/blog/release/v6.14.2/ -- https://nodejs.org/en/blog/release/v6.14.1/ - -* Fri Apr 13 2018 Rafael dos Santos - 1:6.14.0-2 -- Use standard Fedora linker flags (bug #1543859) - -* Wed Mar 28 2018 Stephen Gallagher - 1:6.14.0-1 -- Update to 6.14.0 -- https://nodejs.org/en/blog/release/v6.14.0/ - -* Thu Mar 08 2018 Stephen Gallagher - 1:6.13.1-1 -- Update to 6.13.1 -- https://nodejs.org/en/blog/release/v6.12.4/ -- https://nodejs.org/en/blog/release/v6.12.5/ -- https://nodejs.org/en/blog/release/v6.13.0/ -- https://nodejs.org/en/blog/release/v6.13.1/ - -* Thu Jan 11 2018 Stephen Gallagher - 1:6.12.3-1 -- Update to 6.12.3 -- https://nodejs.org/en/blog/release/v6.12.3/ - -* Fri Dec 08 2017 Stephen Gallagher - 1:6.12.2-1 -- Update to 6.12.2 -- https://nodejs.org/en/blog/release/v6.12.2/ - -* Mon Nov 13 2017 Zuzana Svetlikova - 1:6.12.0-1 -- Update to 6.12.0 - -* Thu Oct 26 2017 Stephen Gallagher - 1:6.11.5-1 -- Update to 6.11.5 security release - -* Fri Oct 06 2017 Zuzana Svetlikova - 1:6.11.4-1 -- Update to 6.11.4 -- https://nodejs.org/en/blog/release/v6.11.4/ -- use bcond macro - -* Thu Sep 21 2017 Zuzana Svetlikova - 1:6:11.3-2 -- Adjust spec for modularity - -* Thu Sep 07 2017 Zuzana Svetlikova - 1:6.11.3-1 -- Update to 6.11.3 -- https://nodejs.org/en/blog/release/v6.11.3/ -- remove openssl 1.0.1 patches - -* Wed Aug 23 2017 Stephen Gallagher - 1:6.11.2-2 -- Move to requiring OpenSSL 1.0.2 -- Unbundle http-parser again - -* Tue Aug 22 2017 Zuzana Svetlikova - 1:6.11.2-1.3 -- Run gyp on http-parser - -* Tue Aug 15 2017 Stephen Gallagher - 1:6.11.2-1.2 -- Add bundled Provides for http-parser - -* Tue Aug 15 2017 Stephen Gallagher - 1:6.11.2-1.1 -- Temporarily bundle http-parser -- Resolves: RHBZ#1481470 - -* Wed Aug 02 2017 Zuzana Svetlikova - 1:6.11.2-1 -- Update to 6.11.2 -- https://nodejs.org/en/blog/release/v6.11.2/ -- remove GCC 7 patch merged upstream - -* Thu Jul 13 2017 Zuzana Svetlikova - 1:6.11.1-1 -- Security update (https://nodejs.org/en/blog/vulnerability/july-2017-security-releases/) - -* Thu Jun 29 2017 Zuzana Svetlikova - 1:6.11.0-2 -- Fix typo - -* Thu Jun 29 2017 Zuzana Svetlikova - 1:6.11.0-1 -- Update to 6.11.0 -- https://nodejs.org/en/blog/release/v6.10.3/ -- explicitly depend on http-parser (RHBZ#1457763) - -* Wed May 10 2017 Stephen Gallagher - 1:6.10.3-1 -- Update to 6.10.3 (LTS) -- https://nodejs.org/en/blog/release/v6.10.3/ -- Stop using the bundled http-parser now that there is an upstream - release with a new-enough version. - -* Tue May 09 2017 Zuzana Svetlikova - 1:6.10.2-3 -- Bootstrap systemtap-sdt-devel for modularity - -* Wed Apr 19 2017 Stephen Gallagher - 1:6.10.2-2 -- Switch to final upstream patch for GCC 7 compatibility - -* Wed Apr 12 2017 Zuzana Svetlikova - 1:6.10.2-1 -- Update to 6.10.2 - -* Mon Apr 03 2017 Stephen Gallagher - 1:6.10.1-3 -- Move NPM manpages into the correct subpackage -- Fixes: rhbz#1433403 - -* Mon Apr 03 2017 Stephen Gallagher - 1:6.10.1-2 -- Revert upstream change that is incompatible with OpenSSL 1.0.1 -- Fixes: rhbz#1436445 - -* Wed Mar 22 2017 Zuzana Svetlikova - 1:6.10.1-1 -- Update to 6.10.1 -- remove small-icu from deps - -* Thu Mar 09 2017 Stephen Gallagher - 1:6.10.0-1 -- Update to 6.10.0 -- https://nodejs.org/en/blog/release/v6.10.0/ -- New patch for handling system CA certificates - -* Tue Feb 28 2017 Stephen Gallagher - 1:6.9.5-2 -- Fix FTBFS against GCC 7 -- Resolves: RHBZ 1423991 - -* Fri Feb 10 2017 Fedora Release Engineering - 1:6.9.5-1.1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Wed Feb 1 2017 Zuzana Svetlikova - 1:6.9.5-1 -- Update to v6.9.5(security) -- Reenable debug mode (https://github.com/nodejs/node/pull/10525) - -* Tue Jan 17 2017 Stephen Gallagher - 1:6.9.4-2 -- Enable DTrace support. -- Eliminate newlines from CFLAGS due to broken dtrace shim - https://sourceware.org/bugzilla/show_bug.cgi?id=21063 - Thanks to Kinston Hughes for the fix. - -* Tue Jan 10 2017 Zuzana Svetlikova - 1:6.9.4-1 -- Update to v6.9.4 - -* Thu Jan 05 2017 Stephen Gallagher - 1:6.9.3-1 -- https://nodejs.org/en/blog/release/v6.9.3/ - -* Wed Dec 21 2016 Stephen Gallagher - 1:6.9.2-2 -- Debug builds are failing. Disable them. - -* Thu Dec 08 2016 Zuzana Svetlikova - 1:6.9.2-1 -- Update to v6.9.2 - -* Tue Nov 08 2016 Stephen Gallagher - 1:6.9.1-4 -- Fix incorrect Conflicts for nodejs-docs - -* Tue Nov 08 2016 Stephen Gallagher - 1:6.9.1-2 -- Bump revision and rebuild for s390x - -* Thu Oct 20 2016 Stephen Gallagher - 1:6.9.1-1 -- Update to 6.9.1 LTS release -- Fix a regression introduced in v6.8.0 in readable stream that caused unpipe - to remove the wrong stream -- https://nodejs.org/en/blog/release/v6.9.1/ - -* Tue Oct 18 2016 Stephen Gallagher - - -- Update to 6.9.0 LTS release -- https://nodejs.org/en/blog/release/v6.9.0/ - -* Mon Oct 17 2016 Stephen Gallagher - 1:6.8.1-5 -- Add dist tag to npm nodejs dependency - -* Mon Oct 17 2016 Stephen Gallagher - 1:6.8.1-4 -- Fix typo in npm nodejs dependency - -* Sat Oct 15 2016 Stephen Gallagher - 1:6.8.1-3 -- Bump release version for tagging bug - -* Sat Oct 15 2016 Stephen Gallagher - 1:6.8.1-1 -- Update node to v6.8.0 -- Fix FTBFS against non-bundled zlib - -* Thu Oct 13 2016 Zuzana Svetlikova - 1:6.8.0-108 -- Update node to v6.8.0 and npm@3.10.8 - -* Tue Sep 27 2016 Stephen Gallagher - 1:6.7.0-107 -- Update to 6.7.0 -- https://nodejs.org/en/blog/release/v6.7.0/ - -* Fri Sep 16 2016 Stephen Gallagher - 1:6.6.0-106 -- Drop Conflicts: from main package. - It wasn't needed and was breaking upgrades in some cases. -- Move npm support files into the npm package -- Mark manpages as %%doc - -* Fri Sep 16 2016 Stephen Gallagher - 1:6.6.0-105 -- Update to 6.6.0 -- https://github.com/nodejs/node/blob/v6.6.0/doc/changelogs/CHANGELOG_V6.md#6.6.0 - -* Mon Sep 12 2016 Stephen Gallagher - 1:6.5.0-104 -- Add support for building on EPEL 7 against OpenSSL 1.0.1 -- Modify v8_abi autorequires to avoid unnecessary rebuilds - -* Mon Aug 29 2016 Zuzana Svetlikova - 1:6.5.0-103 -- Update to 6.5.0 - -* Mon Aug 22 2016 Zuzana Svetlikova - 1:6.4.0-102 -- Bump release to 102 to fix broken npm dependency - -* Thu Aug 18 2016 Zuzana Svetlikova - 1:6.4.0-1 -- Update to 6.4.0 - -* Tue Aug 16 2016 Stephen Gallagher - 1:6.3.1-101 -- Build Node.js with internationalization support - -* Thu Aug 04 2016 Stephen Gallagher - 1:6.3.1-100 -- Split npm into a subpackage - -* Mon Jul 25 2016 Zuzana Svetlikova - 1:6.3.1-1 -- Update to 6.3.1 -- comment out %%patch3 - -* Mon Jul 18 2016 Stephen Gallagher - 1:6.3.0-3 -- Fix epoch version dependency on libuv - -* Tue Jul 12 2016 Zuzana Svetlikova - 1:6.3.0-2 -- Patch node.gyp to fix failing ./configure - -* Sun Jul 10 2016 Zuzana Svetlikova - 1:6.3.0-1 -- Update node to 6.3.0 -- update punycode to 2.0.0 -- add gcc and gcc-c++ as build dependencies -- modified system-certs patch - -* Sat Jun 18 2016 Tom Hughes - 1:6.2.2-1 -- Update to latest stable release 6.2.2 -- Add check on npm version - -* Tue Jun 7 2016 Tom Hughes - 1:6.2.1-1 -- Update to latest stable release 6.2.1 - -* Wed May 18 2016 Stephen Gallagher - 1:6.2.0-1 -- Update to latest stable release 6.2.0 -- https://github.com/nodejs/node/blob/v6.2.0/doc/changelogs/CHANGELOG_V6.md#6.2.0 - -* Mon May 09 2016 Stephen Gallagher - 1:6.1.0-1 -- Update to latest stable release 6.1.0 -- https://github.com/nodejs/node/blob/v6.1.0/CHANGELOG.md - -* Tue May 03 2016 Stephen Gallagher - 1:5.11.0-3 -- Drop the epoch on the virtual provides for npm - -* Thu Apr 28 2016 Stephen Gallagher - 1:5.11.0-2 -- Add epoch and rebuild to preserve upgrade path - -* Mon Apr 25 2016 Stephen Gallagher - 5.11.0-1 -- Update to latest stable release 5.11.0 -- https://github.com/nodejs/node/blob/v5.11.0/CHANGELOG.md - -* Mon Apr 11 2016 Stephen Gallagher - 5.10.0-1 -- Update to latest stable release 5.10.1 -- https://github.com/nodejs/node/blob/v5.10.1/CHANGELOG.md - -* Fri Apr 01 2016 Stephen Gallagher - 5.10.0-1 -- Update to latest security release (5.10.0) -- Update bundled npm to 3.8.3 -- Fixes serious man-in-the-middle vulnerability with npm - -* Wed Mar 23 2016 Stephen Gallagher - 5.9.1-1 -- Update to latest stable release (5.9.1) -- Bundle npm (3.7.3) - -* Wed Mar 23 2016 Stephen Gallagher - 4.4.1-1 -- Update to 4.4.1 upstream LTS release -- Add more versatile ABI checking - -* Tue Feb 23 2016 Tom Hughes - 4.3.1-1 -- Update to 4.3.1 upstream LTS release - -* Wed Feb 10 2016 Tom Hughes - 4.3.0-3 -- Verify that the built node reports the expected versions -- Drop unneeded dep on http-parser-devel -- Add version check for punycode - -* Wed Feb 10 2016 Stephen Gallagher - 4.3.0-2 -- Fix nodejs-abi to be 4.3 -- Clean up bundled versions in spec file - -* Tue Feb 09 2016 Stephen Gallagher - 4.3.0-1 -- Update to 4.3.0 upstream LTS release -- https://github.com/nodejs/node/blob/v4.3.0/CHANGELOG.md -- Switch to the bundled http-parser -- Build with -fno-delete-pointer-null-checks for GCC 6 - -* Tue Feb 9 2016 Tom Hughes - 4.2.6-1 -- Update to 4.2.6 upstream release - -* Thu Feb 04 2016 Fedora Release Engineering - 4.2.4-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Tue Jan 19 2016 Stephen Gallagher - 4.2.4-4 -- Force a depdendency on the correct version of http-parser - -* Tue Jan 19 2016 Stephen Gallagher - 4.2.4-3 -- Force a dependency on the correct version of libuv - -* Mon Jan 18 2016 Stephen Gallagher - 4.2.4-2 -- Fix Provides: for punycode - -* Wed Jan 13 2016 Stephen Gallagher - 4.2.4-1 -- New upstream bugfix release 4.2.4 -- https://github.com/nodejs/node/blob/v4.2.3/CHANGELOG.md - -* Fri Dec 04 2015 Stephen Gallagher 4.2.3-2 -- Add %%with_debug variable to spec file - The debug build is not supported on all architectures. - -* Fri Dec 04 2015 Stephen Gallagher 4.2.3-1 -- New upstream security release 4.2.3 -- https://github.com/nodejs/node/blob/v4.2.3/CHANGELOG.md -- Fix incorrect v8 version - -* Wed Dec 2 2015 Peter Robinson 4.2.2-4 -- Use nodejs_arches macro for arch definition (add aarch64 and power64 platforms) - -* Wed Dec 02 2015 Stephen Gallagher 4.2.2-3 -- Fix nodejs_abi version -- Also ensure that we are building against the correct libuv - -* Wed Dec 02 2015 Stephen Gallagher 4.2.2-2 -- Disable debug build for ARMv7 since it fails to build - -* Tue Dec 01 2015 Stephen Gallagher 4.2.2-1 -- Upgrade to Node.js 4.2.2 (LTS) - -* 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) - -* 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-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/ -- 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/ -- This release disables SSLv3 to secure Node.js services against the POODLE - attack. (CVE-2014-3566; RHBZ#1152789) For more information or to learn how - to re-enable SSLv3 in order to support legacy clients, please see the upstream - release announcement linked above. - -* Tue Oct 21 2014 T.C. Hollingsworth - 0.10.32-2 -- add Provides nodejs-punycode (RHBZ#1151811) - -* Thu Sep 18 2014 T.C. Hollingsworth - 0.10.32-1 -- new upstream release 0.10.32 - http://blog.nodejs.org/2014/08/19/node-v0-10-31-stable/ - http://blog.nodejs.org/2014/09/16/node-v0-10-32-stable/ - -* 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/ - -* Thu Jun 19 2014 T.C. Hollingsworth - 0.10.29-1 -- new upstream release 0.10.29 - http://blog.nodejs.org/2014/06/16/node-v0-10-29-stable/ -- 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/ - -* 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 - making additional certificates added by the system administrator available to - node - -* Sat May 03 2014 T.C. Hollingsworth - 0.10.28-1 -- new upstream release 0.10.28 - There is no dfference between 0.10.27 and 0.10.28 for Fedora, as the only - thing updated was npm, which is shipped seperately. The latest was only - packaged to avoid confusion. Please see the v0.10.27 changelog for relevant - changes in this update: - http://blog.nodejs.org/2014/05/01/node-v0-10-27-stable/ - -* Thu Feb 20 2014 T.C. Hollingsworth - 0.10.26-1 -- new upstream release 0.10.26 - http://blog.nodejs.org/2014/02/18/node-v0-10-26-stable/ - -* 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/ - -* Thu Dec 19 2013 T.C. Hollingsworth - 0.10.24-1 -- new upstream release 0.10.24 - http://blog.nodejs.org/2013/12/19/node-v0-10-24-stable/ -- upstream install script installs the headers now - -* Thu Dec 12 2013 T.C. Hollingsworth - 0.10.23-1 -- new upstream release 0.10.23 - http://blog.nodejs.org/2013/12/11/node-v0-10-23-stable/ - -* Tue Nov 12 2013 T.C. Hollingsworth - 0.10.22-1 -- new upstream release 0.10.22 - http://blog.nodejs.org/2013/11/12/node-v0-10-22-stable/ - -* Fri Oct 18 2013 T.C. Hollingsworth - 0.10.21-1 -- new upstream release 0.10.21 - http://blog.nodejs.org/2013/10/18/node-v0-10-21-stable/ -- resolves an undisclosed security vulnerability in the http module - -* Tue Oct 01 2013 T.C. Hollingsworth - 0.10.20-1 -- new upstream release 0.10.20 - http://blog.nodejs.org/2013/09/30/node-v0-10-20-stable/ - -* Wed Sep 25 2013 T.C. Hollingsworth - 0.10.19-1 -- new upstream release 0.10.19 - http://blog.nodejs.org/2013/09/24/node-v0-10-19-stable/ - -* Fri Sep 06 2013 T.C. Hollingsworth - 0.10.18-1 -- new upstream release 0.10.18 - http://blog.nodejs.org/2013/09/04/node-v0-10-18-stable/ - -* 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 - http://blog.nodejs.org/2013/08/16/node-v0-10-16-stable/ -- add v8-devel to -devel Requires -- restrict -devel Requires to the same architecture - -* Wed Aug 14 2013 T.C. Hollingsworth - 0.10.14-3 -- fix typo in _isa macro in v8 Requires - -* 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/ - -* Wed Jul 10 2013 T.C. Hollingsworth - 0.10.13-1 -- new upstream release 0.10.13 - http://blog.nodejs.org/2013/07/09/node-v0-10-13-stable/ -- remove RPM macros, etc. now that they've migrated to nodejs-packaging - -* Wed Jun 19 2013 T.C. Hollingsworth - 0.10.12-1 -- new upstream release 0.10.12 - http://blog.nodejs.org/2013/06/18/node-v0-10-12-stable/ -- split off a -packaging subpackage with RPM macros, etc. -- build -docs as noarch -- copy mutiple version logic from nodejs-packaging SRPM for now - -* Fri May 31 2013 T.C. Hollingsworth - 0.10.9-1 -- new upstream release 0.10.9 - http://blog.nodejs.org/2013/05/30/node-v0-10-9-stable/ - -* Wed May 29 2013 T.C. Hollingsworth - 0.10.8-1 -- new upstream release 0.10.8 - http://blog.nodejs.org/2013/05/24/node-v0-10-8-stable/ - -* Wed May 29 2013 T.C. Hollingsworth - 0.10.7-1 -- new upstream release 0.10.7 - http://blog.nodejs.org/2013/05/17/node-v0-10-7-stable/ -- strip openssl from the tarball; it contains prohibited code (RHBZ#967736) -- patch Makefile so we can just remove all bundled deps completely - -* Wed May 15 2013 T.C. Hollingsworth - 0.10.6-1 -- new upstream release 0.10.6 - http://blog.nodejs.org/2013/05/14/node-v0-10-6-stable/ - -* Mon May 06 2013 T.C. Hollingsworth - 0.10.5-3 -- nodejs-fixdep: work properly when a package has no dependencies - -* Mon Apr 29 2013 T.C. Hollingsworth - 0.10.5-2 -- nodejs-symlink-deps: make it work when --check is used and just - devDependencies exist - -* Wed Apr 24 2013 T.C. Hollingsworth - 0.10.5-1 -- new upstream release 0.10.5 - http://blog.nodejs.org/2013/04/23/node-v0-10-5-stable/ - -* Mon Apr 15 2013 T.C. Hollingsworth - 0.10.4-1 -- new upstream release 0.10.4 - http://blog.nodejs.org/2013/04/11/node-v0-10-4-stable/ -- add no-op macro to permit spec compatibility with EPEL - -* Thu Apr 04 2013 T.C. Hollingsworth - 0.10.3-2 -- nodejs-symlink-deps: symlink unconditionally in the buildroot - -* Wed Apr 03 2013 T.C. Hollingsworth - 0.10.3-1 -- new upstream release 0.10.3 - http://blog.nodejs.org/2013/04/03/node-v0-10-3-stable/ -- nodejs-symlink-deps: only create symlink if target exists -- nodejs-symlink-deps: symlink devDependencies when --check is used - -* Sun Mar 31 2013 T.C. Hollingsworth - 0.10.2-1 -- new upstream release 0.10.2 - http://blog.nodejs.org/2013/03/28/node-v0-10-2-stable/ -- remove %%nodejs_arches macro since it will only be useful if it is present in - the redhat-rpm-config package -- add default filtering macro to remove unwanted Provides from native modules -- nodejs-symlink-deps now supports multiple modules in one SRPM properly -- nodejs-symlink-deps also now supports a --check argument that works in the - current working directry instead of the buildroot - -* Fri Mar 22 2013 T.C. Hollingsworth - 0.10.1-1 -- new upstream release 0.10.1 - http://blog.nodejs.org/2013/03/21/node-v0-10-1-stable/ - -* Wed Mar 20 2013 T.C. Hollingsworth - 0.10.0-4 -- fix escaping in dependency generator regular expressions (RHBZ#923941) - -* Wed Mar 13 2013 T.C. Hollingsworth - 0.10.0-3 -- add virtual ABI provides for node and v8 so binary module's deps break when - binary compatibility is broken -- automatically add matching Requires to nodejs binary modules -- add %%nodejs_arches macro to future-proof ExcluseArch stanza in dependent - packages - -* Tue Mar 12 2013 Stephen Gallagher - 0.10.0-2 -- Fix up documentation subpackage - -* Mon Mar 11 2013 Stephen Gallagher - 0.10.0-1 -- Update to stable 0.10.0 release -- https://raw.github.com/joyent/node/v0.10.0/ChangeLog - -* Thu Feb 14 2013 Fedora Release Engineering - 0.9.5-11 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild - -* Tue Jan 22 2013 T.C. Hollingsworth - 0.9.5-10 -- minor bugfixes to RPM magic - - nodejs-symlink-deps: don't create an empty node_modules dir when a module - has no dependencies - - nodes-fixdep: support adding deps when none exist -- Add the full set of headers usually bundled with node as deps to nodejs-devel. - This way `npm install` for native modules that assume the stuff bundled with - node exists will usually "just work". --move RPM magic to nodejs-devel as requested by FPC - -* Sat Jan 12 2013 T.C. Hollingsworth - 0.9.5-9 -- fix brown paper bag bug in requires generation script - -* Thu Jan 10 2013 Stephen Gallagher - 0.9.5-8 -- Build debug binary and install it in the nodejs-devel subpackage - -* Thu Jan 10 2013 T.C. Hollingsworth - 0.9.5-7 -- don't use make install since it rebuilds everything - -* Thu Jan 10 2013 T.C. Hollingsworth - 0.9.5-6 -- add %%{?isa}, epoch to v8 deps - -* Wed Jan 09 2013 T.C. Hollingsworth - 0.9.5-5 -- add defines to match libuv (#892601) -- make v8 dependency explicit (and thus more accurate) -- add -g to $C(XX)FLAGS instead of patching configure to add it -- don't write pointless 'npm(foo) > 0' deps - -* Sat Jan 05 2013 T.C. Hollingsworth - 0.9.5-4 -- install development headers -- add nodejs_sitearch macro - -* Wed Jan 02 2013 T.C. Hollingsworth - 0.9.5-3 -- make nodejs-symlink-deps actually work - -* Tue Jan 01 2013 T.C. Hollingsworth - 0.9.5-2 -- provide nodejs-devel so modules can BuildRequire it (and be consistent - with other interpreted languages in the distro) - -* Tue Jan 01 2013 T.C. Hollingsworth - 0.9.5-1 -- new upstream release 0.9.5 -- provide nodejs-devel for the moment -- fix minor bugs in RPM magic -- add nodejs_fixdep macro so packagers can easily adjust dependencies in - package.json files - -* Wed Dec 26 2012 T.C. Hollingsworth - 0.9.4-1 -- new upstream release 0.9.4 -- system library patches are now upstream -- respect optflags -- include documentation in subpackage -- add RPM dependency generation and related magic -- guard libuv depedency so it always gets bumped when nodejs does -- add -devel subpackage with enough to make node-gyp happy - -* Wed Dec 19 2012 Dan HorĂ¡k - 0.9.3-8 -- set exclusive arch list to match v8 - -* Tue Dec 18 2012 Stephen Gallagher - 0.9.3-7 -- Add remaining changes from code review -- Remove unnecessary BuildRequires on findutils -- Remove %%clean section - -* Fri Dec 14 2012 Stephen Gallagher - 0.9.3-6 -- Fixes from code review -- Fix executable permissions -- Correct the License field -- Build debuginfo properly - -* Thu Dec 13 2012 Stephen Gallagher - 0.9.3-5 -- Return back to using the standard binary name -- Temporarily adding a conflict against the ham radio node package until they - complete an agreed rename of their binary. - -* Wed Nov 28 2012 Stephen Gallagher - 0.9.3-4 -- Rename binary and manpage to nodejs - -* Mon Nov 19 2012 Stephen Gallagher - 0.9.3-3 -- Update to latest upstream development release 0.9.3 -- Include upstreamed patches to unbundle dependent libraries - -* Tue Oct 23 2012 Adrian Alves 0.8.12-1 -- Fixes and Patches suggested by Matthias Runge - -* Mon Apr 09 2012 Adrian Alves 0.6.5 -- First build. - diff --git a/nodejs_native.attr b/nodejs_native.attr deleted file mode 100644 index 0527af6..0000000 --- a/nodejs_native.attr +++ /dev/null @@ -1,2 +0,0 @@ -%__nodejs_native_requires %{_rpmconfigdir}/nodejs_native.req -%__nodejs_native_path ^/usr/lib.*/node_modules/.*\\.node$ diff --git a/sources b/sources deleted file mode 100644 index 9608953..0000000 --- a/sources +++ /dev/null @@ -1 +0,0 @@ -SHA512 (node-v6.17.1-stripped.tar.gz) = 0c89917d14872bfdb94cd2ee428f67093fdef16cbaff5bd96d00960c040c23ce95550d3b634172035b28e214caeac7d2808e0b0b152885deb33b5ec55a6a2f7e