[packages/nodejs] - 0.8.15
aredridel
aredridel at pld-linux.org
Sun Dec 2 18:18:01 CET 2012
commit be06d6d0992a93797b0328f99887204c01fa64f2
Author: Aria Stewart <aredridel at nbtsc.org>
Date: Sun Dec 2 10:17:29 2012 -0700
- 0.8.15
nodejs-shared.patch | 112 ++++++++++++++++++++++++++++++++++++++++++++++++++++
nodejs.spec | 71 ++++++++++++++++-----------------
2 files changed, 145 insertions(+), 38 deletions(-)
---
diff --git a/nodejs.spec b/nodejs.spec
index 745fbc9..ee1533e 100644
--- a/nodejs.spec
+++ b/nodejs.spec
@@ -1,28 +1,25 @@
Summary: Asynchronous JavaScript Engine
Name: nodejs
-Version: 0.6.21
+Version: 0.8.15
Release: 1
License: BSD and MIT and ASL 2.0 and GPLv3
Group: Development/Languages
URL: http://www.nodejs.org/
Source0: http://nodejs.org/dist/v%{version}/node-v%{version}.tar.gz
-# Source0-md5: 0da985a0bf820400af92363b9f453fe4
-Patch1: %{name}-soname.patch
+# Source0-md5: 6cb31180b07475db103e694f65e8bb9b
+Patch1: %{name}-shared.patch
# force node to use /usr/lib/node as the systemwide module directory
Patch2: %{name}-libpath.patch
# use /usr/lib64/node as an arch-specific module dir when appropriate
Patch3: %{name}-lib64path.patch
Patch5: uv-fpic.patch
-BuildRequires: c-ares-devel >= 1.7.4
BuildRequires: gcc >= 5:4.0
-BuildRequires: libeio-devel
-BuildRequires: libev-devel >= 4.0.0
BuildRequires: libstdc++-devel
BuildRequires: python >= 1:2.5.2
BuildRequires: python-jsmin
BuildRequires: rpm >= 4.4.9-56
BuildRequires: rpmbuild(macros) >= 1.219
-BuildRequires: v8-devel >= 3.6
+BuildRequires: v8-devel >= 3.11.10.25
ExclusiveArch: %{ix86} %{x8664} arm
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
@@ -83,18 +80,6 @@ used by Node.js and many of its modules.
grep -rl 'bin/env python' tools | xargs %{__sed} -i -e '1s,^#!.*python,#!%{__python},'
%build
-CFLAGS="%{rpmcflags} -fPIC"
-CPPFLAGS="%{rpmcppflags} -fPIC"
-CXXFLAGS="%{rpmcxxflags} -fPIC"
-LDFLAGS="%{rpmcflags}"
-%if "%{pld_release}" == "ac"
-CC="%{__cc}4"
-CXX="%{__cxx}4"
-%else
-CC="%{__cc}"
-CXX="%{__cxx}"
-%endif
-export CFLAGS LDFLAGS CXXFLAGS CC CXX LINKFLAGS_UV
# Error: V8 doesn't like ccache. Please set your CC env var to 'gcc'
CC=${CC#ccache }
@@ -102,24 +87,42 @@ CC=${CC#ccache }
# NOT autoconf so dont use macro
export PYTHONPATH=tools
./configure \
- --shared-cares \
--shared-v8 \
--shared-zlib \
+ --shared-openssl \
--without-npm \
- --libdir=%{_libdir} \
--prefix=%{_prefix}
-# build library
-%{__make} dynamiclib
-%{__make} program
-
-# relink with shared lib
-$CC -o out/Release/node src/node_main.cc -Isrc -Ideps/uv/include -lnode -Lout/Release
+%make -C out \
+ BUILDTYPE=Release \
+ V=1 \
+ CFLAGS.host="%{rpmcflags} -fPIC" \
+ CXXFLAGS.host="%{rpmcppflags} -fPIC" \
+ LDFLAGS.host="%{rpmcflags}" \
+ CFLAGS.target="%{rpmcflags} -fPIC" \
+ CXXFLAGS.target="%{rpmcppflags} -fPIC" \
+ LDFLAGS.target="%{rpmcflags}" \
+%if "%{pld_release}" == "ac"
+ CC.host="%{__cc}4" \
+ CXX.host="%{__cxx}4" \
+ CC.target="%{__cc}4" \
+ CXX.target="%{__cxx}4" \
+%else
+ CC.host="%{__cc}" \
+ CXX.host="%{__cxx}" \
+ CC.target="%{__cc}" \
+ CXX.target="%{__cxx}"
+%endif
%install
rm -rf $RPM_BUILD_ROOT
-%{__make} install \
- DESTDIR=$RPM_BUILD_ROOT
+install -d $RPM_BUILD_ROOT/%{_prefix}/lib/node/wafadmin
+%{__make} justinstall \
+ DESTDIR=$RPM_BUILD_ROOT \
+ LIBDIR=%{_lib}
+
+ln -s libnode.so.8.0.0 $RPM_BUILD_ROOT%{_libdir}/libnode.so.8
+ln -s libnode.so.8.0.0 $RPM_BUILD_ROOT%{_libdir}/libnode.so
echo '.so man1/node.1' > $RPM_BUILD_ROOT%{_mandir}/man1/nodejs.1
@@ -132,14 +135,6 @@ install -d $RPM_BUILD_ROOT%{_prefix}/lib/node_modules
# default searchpaths
install -d $RPM_BUILD_ROOT{%{_libdir},%{_prefix}/lib}/node
-# install shared lib
-export PYTHONPATH=tools
-%{__python} tools/waf-light install \
- --product-type=cshlib \
- --destdir=$RPM_BUILD_ROOT
-
-chmod a+x $RPM_BUILD_ROOT%{_libdir}/*.so*
-
# create pkgconfig
install -d $RPM_BUILD_ROOT%{_pkgconfigdir}
cat <<'EOF' > $RPM_BUILD_ROOT%{_pkgconfigdir}/%{name}.pc
@@ -177,7 +172,7 @@ rm -rf $RPM_BUILD_ROOT
%attr(755,root,root) %{_bindir}/node
%attr(755,root,root) %{_bindir}/nodejs
%attr(755,root,root) %{_libdir}/libnode.so.*.*.*
-%ghost %{_libdir}/libnode.so.6
+%ghost %{_libdir}/libnode.so.8
%if "%{_lib}" != "lib"
%dir %{_libdir}/node
%endif
diff --git a/nodejs-shared.patch b/nodejs-shared.patch
new file mode 100644
index 0000000..7aaa239
--- /dev/null
+++ b/nodejs-shared.patch
@@ -0,0 +1,112 @@
+diff -ur node-v0.8.15-o/Makefile node-v0.8.15/Makefile
+--- node-v0.8.15-o/Makefile 2012-11-26 08:51:39.000000000 -0700
++++ node-v0.8.15/Makefile 2012-12-02 10:04:42.000000000 -0700
+@@ -39,11 +39,13 @@
+ out/Makefile: common.gypi deps/uv/uv.gyp deps/http_parser/http_parser.gyp deps/zlib/zlib.gyp deps/v8/build/common.gypi deps/v8/tools/gyp/v8.gyp node.gyp config.gypi
+ $(PYTHON) tools/gyp_node -f make
+
+-install: all
+- $(PYTHON) tools/install.py $@ $(DESTDIR)
++install: all justinstall
++
++justinstall:
++ $(PYTHON) tools/install.py install $(DESTDIR) $(LIBDIR)
+
+ uninstall:
+- $(PYTHON) tools/install.py $@ $(DESTDIR)
++ $(PYTHON) tools/install.py $@ $(DESTDIR) $(LIBDIR)
+
+ clean:
+ -rm -rf out/Makefile node node_g out/$(BUILDTYPE)/node blog.html email.md
+diff -ur node-v0.8.15-o/node.gyp node-v0.8.15/node.gyp
+--- node-v0.8.15-o/node.gyp 2012-11-26 08:51:39.000000000 -0700
++++ node-v0.8.15/node.gyp 2012-12-02 10:04:42.000000000 -0700
+@@ -57,6 +57,36 @@
+ 'type': 'executable',
+
+ 'dependencies': [
++ 'libnode',
++ 'deps/uv/uv.gyp:uv',
++ 'node_js2c#host',
++ ],
++
++ 'include_dirs': [
++ 'src',
++ 'deps/uv/src/ares',
++ '<(SHARED_INTERMEDIATE_DIR)' # for node_natives.h
++ ],
++
++ 'sources': [
++ 'src/node_main.cc',
++ # node.gyp is added to the project by default.
++ 'common.gypi',
++ ],
++
++ 'defines': [
++ 'NODE_WANT_INTERNALS=1',
++ 'ARCH="<(target_arch)"',
++ 'PLATFORM="<(OS)"',
++ ],
++ },
++ {
++ 'target_name': 'libnode',
++ 'type': 'shared_library',
++ 'product_extension': 'so.8.0.0',
++ 'soname_version': '8.0.0',
++
++ 'dependencies': [
+ 'deps/http_parser/http_parser.gyp:http_parser',
+ 'deps/uv/uv.gyp:uv',
+ 'node_js2c#host',
+@@ -79,7 +109,6 @@
+ 'src/node_file.cc',
+ 'src/node_http_parser.cc',
+ 'src/node_javascript.cc',
+- 'src/node_main.cc',
+ 'src/node_os.cc',
+ 'src/node_script.cc',
+ 'src/node_stat_watcher.cc',
+diff -ur node-v0.8.15-o/tools/install.py node-v0.8.15/tools/install.py
+--- node-v0.8.15-o/tools/install.py 2012-12-01 22:39:50.000000000 -0700
++++ node-v0.8.15/tools/install.py 2012-12-02 10:04:52.000000000 -0700
+@@ -10,6 +10,7 @@
+ # set at init time
+ dst_dir = None
+ node_prefix = None # dst_dir without DESTDIR prefix
++lib_dir = 'lib'
+ target_defaults = None
+ variables = None
+
+@@ -168,6 +169,7 @@
+ assert(0) # unhandled action type
+
+ def files(action):
++ global lib_dir
+ action(['deps/uv/include/ares.h',
+ 'deps/uv/include/ares_version.h',
+ 'deps/uv/include/uv.h',
+@@ -193,6 +195,7 @@
+ 'include/node/uv-private/')
+ action(['doc/node.1'], 'share/man/man1/')
+ action(['out/Release/node'], 'bin/node')
++ action(['out/Release/lib.target/libnode.so.8.0.0'], lib_dir + '/libnode.so.8.0.0')
+
+ # install unconditionally, checking if the platform supports dtrace doesn't
+ # work when cross-compiling and besides, there's at least one linux flavor
+@@ -203,7 +206,7 @@
+ if 'true' == variables.get('node_install_npm'): npm_files(action)
+
+ def run(args):
+- global dst_dir, node_prefix, target_defaults, variables
++ global dst_dir, node_prefix, target_defaults, variables, lib_dir
+
+ # chdir to the project's top-level directory
+ os.chdir(abspath(os.path.dirname(__file__), '..'))
+@@ -215,6 +218,7 @@
+ # argv[2] is a custom install prefix for packagers (think DESTDIR)
+ dst_dir = node_prefix = variables.get('node_prefix') or '/usr/local'
+ if len(args) > 2: dst_dir = abspath(args[2] + '/' + dst_dir)
++ if len(args) > 3: lib_dir = args[3]
+
+ cmd = args[1] if len(args) > 1 else 'install'
+ if cmd == 'install': return files(install)
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/nodejs.git/commitdiff/be06d6d0992a93797b0328f99887204c01fa64f2
More information about the pld-cvs-commit
mailing list