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'));

Reply via email to