Hello community, here is the log from the commit of package nodejs.4024 for openSUSE:13.1:Update checked in at 2015-09-24 08:59:44 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:13.1:Update/nodejs.4024 (Old) and /work/SRC/openSUSE:13.1:Update/.nodejs.4024.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "nodejs.4024" Changes: -------- New Changes file: --- /dev/null 2015-08-24 19:43:32.284261900 +0200 +++ /work/SRC/openSUSE:13.1:Update/.nodejs.4024.new/nodejs.changes 2015-09-24 08:59:46.000000000 +0200 @@ -0,0 +1,349 @@ +------------------------------------------------------------------- +Wed Sep 9 16:05:12 UTC 2015 - [email protected] + +- update to 4.0.0 + * child_process: ChildProcess.prototype.send() and process.send() + operate asynchronously across all platforms so an optional + callback parameter has been introduced that will be invoked once + the message has been sent. + * node: Rename "io.js" code to "Node.js". + * node-gyp: This release bundles an updated version of node-gyp + that works with all versions of Node.js and io.js including + nightly and release candidate builds. From io.js v3 and Node.js + v4 onward, it will only download a headers tarball when building + addons rather than the entire source. + * npm: Upgrade to version 2.14.2 from 2.13.3, includes a security + update. + * timers: Improved timer performance from porting the 0.12 + implementation, plus minor fixes. + * util: The util.is*() functions have been deprecated, beginning + with deprecation warnings in the documentation for this release, + users are encouraged to seek more robust alternatives in the + npm registry. + * v8: Upgrade to version 4.5.103.30 from 4.4.63.30 + + Implement new TypedArray prototype methods: copyWithin(), + every(), fill(), filter(), find(), findIndex(), forEach(), + indexOf(), join(), lastIndexOf(), map(), reduce(), + reduceRight(), reverse(), slice(), some(), sort(). + + Implement new TypedArray.from() and TypedArray.of() functions. + + Implement arrow functions +- drop patch: nodejs-v8-3.18.0.patch, not used. +- drop patch: nodejs-openssl-missing-api.patch + * it fixed libopenssl 0.9.8, but we have 1.0.0k +- drop patch: CVE-2013-4450-v0.10.x.patch + * it affects nodejs lower than 0.10.21 +- fix boo#895262: CVE-2014-5256: v8: nodejs: Memory Corruption + and Stack Overflow + * it affects nodejs < 0.10.30 +- build with internal openssl, which is 1.0.2 +- don't install headers manually, it's now done automatically +- add api documentation +- enable build for ppc and arm +- add node_modules clean up codes + +------------------------------------------------------------------- +Tue Dec 3 12:06:56 UTC 2013 - [email protected] + +- fix CVE-2013-4450: nodejs: HTTP Pipelining DoS (bnc#846808) + CVE-2013-4450-v0.10.x.patch: contains the fix + +------------------------------------------------------------------- +Wed Aug 16 13:17:48 UTC 2013 - [email protected] + +- make nodejs use the v8 shipped with it by upstream. + The API of the new v8 deviates too much and we're not involved + enough upstream to justify a deviation here. + +------------------------------------------------------------------- +Thu Apr 25 18:33:51 UTC 2013 - [email protected] + +- update to 0.10.5 + +------------------------------------------------------------------- +Thu Apr 25 18:12:39 UTC 2013 - [email protected] + +- rebase 0.10.4 build/patches against current OBS state + +------------------------------------------------------------------- +Sun Apr 21 19:29:22 UTC 2013 - [email protected] + +- always runtime require the exact v8 version that was used + for building, as it breaks binary compatibility quite often + +------------------------------------------------------------------- +Sun Apr 21 10:01:43 UTC 2013 - [email protected] + +- updated to 0.8.23 +- added nodejs-openssl-missing-api.patch: + * provides a macro implementation of EVP_PKEY_id, not present + in openssl 0.9.8j and previous versions. + * required when building for SLE11, which has older openssl. +- added nodejs-v8-deprecated-api.patch: + * allows 0.8 versions of nodejs to use newer v8 versions, which + deprecated (or renamed, in this case) some methods (in 3.15.3) + and subsequently removed them (in 3.16.5). + +------------------------------------------------------------------- +Fri Apr 19 20:05:20 UTC 2013 - [email protected] + +- make v8 version deps explicit, and add more provides (copied from Fedora) + +This will require manually updating the nodejs pkg whenever there's a +minor version bump in v8 (3.x to 3.y, not micro, i.e. 3.x.a to 3.x.b), +but that's better than v8 updates breaking existing nodejs installations. + +------------------------------------------------------------------- +Thu Apr 18 23:31:58 UTC 2013 - [email protected] + +- Fix build on platforms w/openssl 0.9.8 (e.g. SLES 11). +- Fix -devel subpkg -- manually install headers (copied from Fedora), + and move dtrace and share to -devel subpkg. + + NodeJS <= 0.8 installed headers itself, so this was not previously + necessary. + + NB: Fedora uses an external libuv pkg, but we don't, so we must + also copy libuv headers. + +------------------------------------------------------------------- +Thu Apr 18 14:23:49 UTC 2013 - [email protected] + +- Update to version 0.10.4: + + See https://raw.github.com/joyent/node/v0.10.4/ChangeLog +- Delete no longer needed patches: + + node-v0.8.12_missing_include.patch + + nodejs-devel-lib64path.patch + + nodejs-no-v8-headers.patch +- Rebase nodejs-lib64path.patch and nodejs-libpath.patch. +- Add nodejs-v8-3.18.0.patch: make node.js compatible to V8 3.18.0. + +------------------------------------------------------------------- +Thu Mar 7 13:53:28 UTC 2013 - [email protected] + +- Set ExclusiveArch to x86 and ARM + nodejs depends on v8 which is available only for those arches atm + +------------------------------------------------------------------- +Thu Jan 31 16:08:14 CST 2013 - [email protected] + +- fix node-gyp to use the system v8 headers instead of those bundled with nodejs + * Without this, dependencies installed via npm will be built against + the bundled v8 (3.11.10) but linked against the system libv8 (currently + 3.16.x) which has ABI incompatibilites, and fail to run with symbol + errors. + * 3.16 ABI change: http://upstream-tracker.org/compat_reports/v8/3.15.11.7_to_3.16.0/abi_compat_report.html + * node-gyp patch taken from Fedora SRPM -- https://bugzilla.redhat.com/show_bug.cgi?id=891175#c7 +- remove bundled sources for shared dependencies, a la the Fedora 18 + updates-testing package (but simplified a bit) + * without doing this, /usr/include/node will still have the 3.11.0 + v8 headers, and node-gyp will remain broken +- patch tools/install.py to not install these removed headers + +------------------------------------------------------------------- +Fri Nov 2 16:18:09 UTC 2012 - [email protected] + +- added node-v0.8.12_missing_include.patch: + fixes a compiler warning about implicite declaration due to + missing include. +- enabled usage of system zlib and openssl +- enabled gdb support +- set CFLAGS/CXXFLAGS so the binary gets compiled with the optflags + +------------------------------------------------------------------- +Thu Oct 25 01:38:35 UTC 2012 - [email protected] + +- update to version 0.8.12 + * npm: Upgrade to 1.1.63 + + * crypto: Reduce stability index to 2-Unstable (isaacs) + + * windows: fix handle leak in uv_fs_utime (Bert Belder) + + * windows: fix application crashed popup in debug version (Bert Belder) + + * buffer: report proper retained size in profiler (Ben Noordhuis) + + * buffer: fix byteLength with UTF-16LE (koichik) + + * repl: make "end of input" JSON.parse() errors throw in the REPL (Nathan Rajlich) + + * repl: make invalid RegExp modifiers throw in the REPL (Nathan Rajlich) + + * http: handle multiple Proxy-Authenticate values (Willi Eggeling) + +------------------------------------------------------------------- +Mon Sep 17 19:12:44 UTC 2012 - [email protected] + +- update to version 0.8.9 + * v8: upgrade to 3.11.10.22 + * GYP: upgrade to r1477 + * npm: Upgrade to 1.1.61 + * npm: Don't create world-writable files (isaacs) + * unix: fix memory leak in udp (Ben Noordhuis) + * unix: map errno ESPIPE (Ben Noordhuis) + * unix, windows: fix memory corruption in fs-poll.c (Ben Noordhuis) + * child process: fix processes with IPC channel don't emit 'close' (Bert Belder) + * build: fix openssl configuration for "arm" builds (Nathan Rajlich) + * tls: support unix domain socket/named pipe in tls.connect (Shigeki Ohtsu) + * https: make https.get() accept a URL (koichik) + * http: respect HTTP/1.0 TE header (Ben Noordhuis) + * crypto, tls: Domainify setSNICallback, pbkdf2, randomBytes (Ben Noordhuis) + * stream.pipe: Don't call destroy() unless it's a function (isaacs) + + * unix, windows: fix memory corruption in fs-poll.c (Ben Noordhuis) + * unix: fix integer overflow in uv_hrtime (Tim Holy) + * tls: update default cipher list (Ben Noordhuis) + * unix: Fix llvm and older gcc duplicate symbol warnings (Bert Belder) + * fs: fix use after free in stat watcher (Ben Noordhuis) + + * crypto: fix uninitialized memory access in openssl (Ben Noordhuis) ++++ 152 more lines (skipped) ++++ between /dev/null ++++ and /work/SRC/openSUSE:13.1:Update/.nodejs.4024.new/nodejs.changes New: ---- node-gyp-addon-gypi.patch node-v4.0.0.tar.xz nodejs-lib64path.patch nodejs-libpath.patch nodejs.changes nodejs.spec ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ nodejs.spec ++++++ # # spec file for package nodejs # # Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # Name: nodejs Version: 4.0.0 Release: 0 Summary: Evented I/O for V8 JavaScript License: MIT Group: Development/Languages/NodeJS Url: http://www.nodejs.org Source: http://nodejs.org/dist/v%{version}/node-v%{version}.tar.xz Patch0: nodejs-lib64path.patch Patch2: nodejs-libpath.patch # PATCH-FIX-UPSTREAM use custom addon.gypi by default instead of downloading node source Patch4: node-gyp-addon-gypi.patch BuildRequires: curl BuildRequires: fdupes BuildRequires: gcc-c++ BuildRequires: pkg-config BuildRequires: procps BuildRequires: python BuildRequires: zlib-devel Provides: npm = 2.14.2 Obsoletes: npm < 2.14.2 #we need ABI virtual provides where SONAMEs aren't enough/not present so deps #break when binary compatibility is broken %global nodejs_abi 4.0 Provides: nodejs(abi) = %{nodejs_abi} #this corresponds to the "engine" requirement in package.json Provides: nodejs(engine) = %{version} BuildRoot: %{_tmppath}/%{name}-%{version}-build #building nodejs makes sense only on v8 archs ExclusiveArch: %ix86 x86_64 armv7hl aarch64 ppc ppc64 ppc64le s390x %description Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient. Node.js' package ecosystem, npm, is the largest ecosystem of open source libraries in the world. %package devel Summary: Files needed for development of NodeJS platforms Group: Development/Languages/NodeJS Requires: %{name} = %{version} %description devel This package provides development headers for Node.js. %package doc Summary: Node.js API documentation Group: Documentation/Other BuildArch: noarch %description doc The API documentation for the Node.js JavaScript runtime. %prep %setup -q -n node-v%{version} %if %{_lib} == "lib64" %patch0 -p1 %else %patch2 -p1 %endif %patch4 -p1 # Make sure nothing gets included from bundled deps: # We only delete the source and header files, because # the remaining build scripts are still used. ###for dir in v8 openssl zlib; do find deps/zlib -name *.[ch] -delete %build # percent-configure pulls in something that confuses node's configure # script, so we'll do it thus: export CFLAGS="%{optflags}" export CXXFLAGS="%{optflags}" ./configure \ --prefix=%{_prefix} \ --shared-zlib \ %ifarch aarch64 --dest-cpu=arm64 \ %endif %ifarch s390x --dest-cpu=s390x \ %endif %ifnarch aarch64 ppc ppc64 ppc64le s390x --gdb \ %endif --without-dtrace %ifarch aarch64 make DESTCPU=arm64 %else %ifarch s390x make DESTCPU=s390x %else make %{?_smp_mflags} %endif %endif %install make DESTDIR=%{buildroot} install %{?_smp_mflags} rm -rf %{buildroot}%{_datadir}/doc/node # npm man page cp -p deps/npm/man/man1/npm.1 %{buildroot}/%{_mandir}/man1 #node-gyp needs common.gypi too mkdir -p %{buildroot}%{_datadir}/node cp -p common.gypi %{buildroot}%{_datadir}/node # documentation install -d %{buildroot}%{_docdir}/%{name} cp -r doc/api %{buildroot}%{_docdir}/%{name} # own nodejs_sitelib install -d %{buildroot}%{_libexecdir}/node_modules # clean # file duplicates %fdupes %{buildroot}%{_libdir}/node_modules/npm/ %fdupes %{buildroot}%{_includedir}/node # hidden files find %{buildroot}%{_libdir}/node_modules/npm -name ".*" -delete # windows stuff find %{buildroot}%{_libdir}/node_modules/npm -name "*.bat" -delete find %{buildroot}%{_libdir}/node_modules/npm -name "*.cmd" -delete # build stuff find %{buildroot}%{_libdir}/node_modules/npm -name "Makefile" -delete rm -rf %{buildroot}%{_libdir}/node_modules/npm/{test,scripts} find %{buildroot}%{_libdir}/node_modules/npm/node_modules -name "*.sh" -delete find %{buildroot}%{_libdir}/node_modules/npm -name "src" -print0 | xargs -0 rm -rf -- # remove examples/tests/benchmark stuff find %{buildroot}%{_libdir}/node_modules/npm/node_modules -name "example*" -print0 | xargs -0 rm -rf -- find %{buildroot}%{_libdir}/node_modules/npm/node_modules -name "test*" -print0 | xargs -0 rm -rf -- find %{buildroot}%{_libdir}/node_modules/npm/node_modules -name "*_test.*" -delete find %{buildroot}%{_libdir}/node_modules/npm/node_modules -type d -name "benchmark" -print0 | xargs -0 rm -rf -- # README.md LICENSE file permission find %{buildroot}%{_libdir}/node_modules/npm -name "README.md" -exec chmod -x {} + find %{buildroot}%{_libdir}/node_modules/npm -name "LICENSE" -exec chmod -x {} + # browser.js is useless for npm cli find %{buildroot}%{_libdir}/node_modules/npm -name "browser.js" -delete %files %defattr(-, root, root) %doc AUTHORS LICENSE *.md %{_bindir}/node %{_bindir}/npm %{_libdir}/node_modules %dir %{_libexecdir}/node_modules %{_mandir}/man1/node.1%{ext_man} %{_mandir}/man1/npm.1%{ext_man} %exclude %{_docdir}/%{name}/api %files devel %defattr(-, root, root) %{_includedir}/node %{_datadir}/node %dir %{_datadir}/systemtap %dir %{_datadir}/systemtap/tapset %{_datadir}/systemtap/tapset/node.stp %files doc %defattr(-, root, root) %{_docdir}/%{name}/api %changelog ++++++ node-gyp-addon-gypi.patch ++++++ Index: node-v4.0.0/addon-rpm.gypi =================================================================== --- /dev/null +++ node-v4.0.0/addon-rpm.gypi @@ -0,0 +1,35 @@ +{ + 'target_defaults': { + 'type': 'loadable_module', + 'product_prefix': '', + 'include_dirs': [ + '/usr/include/node/', + '/usr/include/' + ], + + 'target_conditions': [ + ['_type=="loadable_module"', { + 'product_extension': 'node', + 'defines': [ 'BUILDING_NODE_EXTENSION' ], + }] + ], + + 'conditions': [ + [ 'OS=="mac"', { + 'libraries': [ '-undefined dynamic_lookup' ], + 'xcode_settings': { + 'DYLIB_INSTALL_NAME_BASE': '@rpath' + }, + }], + [ 'OS=="win"', { + 'libraries': [ '-l<(node_root_dir)/$(Configuration)/node.lib' ], + # warning C4251: 'node::ObjectWrap::handle_' : class 'v8::Persistent<T>' + # needs to have dll-interface to be used by clients of class 'node::ObjectWrap' + 'msvs_disabled_warnings': [ 4251 ], + }], + [ 'OS=="freebsd" or OS=="openbsd" or OS=="solaris" or (OS=="linux" and target_arch!="ia32")', { + 'cflags': [ '-fPIC' ], + }] + ] + } +} Index: node-v4.0.0/deps/npm/node_modules/node-gyp/lib/configure.js =================================================================== --- node-v4.0.0.orig/deps/npm/node_modules/node-gyp/lib/configure.js +++ node-v4.0.0/deps/npm/node_modules/node-gyp/lib/configure.js @@ -140,10 +140,6 @@ function configure (gyp, argv, callback) if ('v' + release.version !== process.version) { // if --target was given, then determine a target version to compile for log.verbose('get node dir', 'compiling against --target node version: %s', release.version) - } else { - // if no --target was specified then use the current host node version - log.verbose('get node dir', 'no --target version specified, falling back to host node version: %s', release.version) - } if (!release.semver) { // could not parse the version string with semver @@ -158,6 +154,12 @@ function configure (gyp, argv, callback) nodeDir = path.resolve(gyp.devDir, release.versionDir) createBuildDir() }) + } else { + // if no --target was specified then use RPM-installed headers + log.verbose('get node dir', 'no --target version specified, falling back to RPM installed headers') + nodeDir = '/usr/share/node' + createBuildDir() + } } } @@ -301,7 +303,8 @@ function configure (gyp, argv, callback) // this logic ported from the old `gyp_addon` python file var gyp_script = path.resolve(__dirname, '..', 'gyp', 'gyp_main.py') - var addon_gypi = path.resolve(__dirname, '..', 'addon.gypi') + var addon_gypi_file = gyp.opts.target || gyp.opts.nodeDir ? 'addon.gypi' : 'addon-rpm.gypi' + var addon_gypi = path.resolve(__dirname, '..', addon_gypi_file) var common_gypi = path.resolve(nodeDir, 'include/node/common.gypi') fs.stat(common_gypi, function (err, stat) { if (err) ++++++ nodejs-lib64path.patch ++++++ Index: node-v4.0.0/lib/module.js =================================================================== --- node-v4.0.0.orig/lib/module.js +++ node-v4.0.0/lib/module.js @@ -486,7 +486,7 @@ Module._initPaths = function() { var homeDir = process.env.HOME; } - var paths = [path.resolve(process.execPath, '..', '..', 'lib', 'node')]; + var paths = ["/usr/lib/node", "/usr/lib64/node"]; if (homeDir) { paths.unshift(path.resolve(homeDir, '.node_libraries')); Index: node-v4.0.0/tools/install.py =================================================================== --- node-v4.0.0.orig/tools/install.py +++ node-v4.0.0/tools/install.py @@ -86,7 +86,7 @@ def update_shebang(path, shebang): open(path, 'w').write(s) def npm_files(action): - target_path = 'lib/node_modules/npm/' + target_path = 'lib64/node_modules/npm/' # don't install npm if the target path is a symlink, it probably means # that a dev version of npm is installed there @@ -104,7 +104,7 @@ def npm_files(action): if action == uninstall: action([link_path], 'bin/npm') elif action == install: - try_symlink('../lib/node_modules/npm/bin/npm-cli.js', link_path) + try_symlink('../lib64/node_modules/npm/bin/npm-cli.js', link_path) if os.environ.get('PORTABLE'): # This crazy hack is necessary to make the shebang execute the copy # of node relative to the same directory as the npm script. The precompiled @@ -133,7 +133,7 @@ def files(action): action(['out/Release/node' + exeext], 'bin/node' + exeext) if 'true' == variables.get('node_use_dtrace'): - action(['out/Release/node.d'], 'lib/dtrace/node.d') + action(['out/Release/node.d'], 'lib64/dtrace/node.d') # behave similarly for systemtap action(['src/node.stp'], 'share/systemtap/tapset/') ++++++ nodejs-libpath.patch ++++++ Index: node-v4.0.0/lib/module.js =================================================================== --- node-v4.0.0.orig/lib/module.js +++ node-v4.0.0/lib/module.js @@ -486,7 +486,7 @@ Module._initPaths = function() { var homeDir = process.env.HOME; } - var paths = [path.resolve(process.execPath, '..', '..', 'lib', 'node')]; + var paths = ["/usr/lib/node"]; if (homeDir) { paths.unshift(path.resolve(homeDir, '.node_libraries'));
