1 Summary: Asynchronous JavaScript Engine
5 License: BSD and MIT and ASL 2.0 and GPLv3
6 Group: Development/Languages
7 URL: http://www.nodejs.org/
8 Source0: http://nodejs.org/dist/v%{version}/node-v%{version}.tar.gz
9 # Source0-md5: 284fd2c7578064c339d9cf6a3a475ac7
10 #Patch1: %{name}-soname.patch
11 # force node to use /usr/lib/node as the systemwide module directory
12 Patch2: %{name}-libpath.patch
13 # use /usr/lib64/node as an arch-specific module dir when appropriate
14 Patch3: %{name}-lib64path.patch
16 BuildRequires: c-ares-devel >= 1.7.4
17 BuildRequires: gcc >= 5:4.0
18 BuildRequires: libeio-devel
19 BuildRequires: libev-devel >= 4.0.0
20 BuildRequires: libstdc++-devel
21 BuildRequires: python >= 1:2.5.2
22 BuildRequires: python-jsmin
23 BuildRequires: rpm >= 4.4.9-56
24 BuildRequires: rpmbuild(macros) >= 1.219
25 BuildRequires: v8-devel >= 3.6
26 ExclusiveArch: %{ix86} %{x8664} arm
27 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
30 Node.js is a platform built on Chrome's JavaScript runtime for easily
31 building fast, scalable network applications. Node.js uses an
32 event-driven, non-blocking I/O model that makes it lightweight and
33 efficient, perfect for data-intensive real-time applications that run
34 across distributed devices.
37 Summary: Development headers for nodejs
38 Group: Development/Libraries
39 Requires: %{name} = %{version}-%{release}
40 Requires: %{name}-waf = %{version}-%{release}
42 Requires: libstdc++-devel
46 Development headers for nodejs.
49 Summary: Evented I/O for V8 JavaScript - documentation
53 Node.js is a server-side JavaScript environment that uses an
54 asynchronous event-driven model. Node's goal is to provide an easy way
55 to build scalable network programs.
57 This package contains the documentation for nodejs.
60 Summary: Evented I/O for V8 JavaScript - customized WAF build system
62 Requires: %{name} = %{version}-%{release}
65 Node.js is a server-side JavaScript environment that uses an
66 asynchronous event-driven model. Node's goal is to provide an easy way
67 to build scalable network programs.
69 This package contains the customized version of the WAF build system
70 used by Node.js and many of its modules.
73 %setup -q -n node-v%{version}
75 %if %{_lib} == "lib64"
82 # fix #!/usr/bin/env python -> #!/usr/bin/python:
83 grep -rl 'bin/env python' tools | xargs %{__sed} -i -e '1s,^#!.*python,#!%{__python},'
86 CFLAGS="%{rpmcflags} -fPIC"
87 CPPFLAGS="%{rpmcppflags} -fPIC"
88 CXXFLAGS="%{rpmcxxflags} -fPIC"
89 LDFLAGS="%{rpmcflags}"
90 %if "%{pld_release}" == "ac"
97 export CFLAGS LDFLAGS CXXFLAGS CC CXX LINKFLAGS_UV
99 # Error: V8 doesn't like ccache. Please set your CC env var to 'gcc'
111 rm -rf $RPM_BUILD_ROOT
113 DESTDIR=$RPM_BUILD_ROOT
115 echo '.so man1/node.1' > $RPM_BUILD_ROOT%{_mandir}/man1/nodejs.1
117 # for compat of fedora derivered scripts (shebangs)
118 ln -s node $RPM_BUILD_ROOT%{_bindir}/nodejs
120 # globally installed node modules (noarch)
121 install -d $RPM_BUILD_ROOT%{_prefix}/lib/node_modules
123 # default searchpaths
124 install -d $RPM_BUILD_ROOT{%{_libdir},%{_prefix}/lib}/node
127 export PYTHONPATH=tools
128 %{__python} tools/install.py install $RPM_BUILD_ROOT
130 #chmod a+x $RPM_BUILD_ROOT%{_libdir}/*.so*
133 install -d $RPM_BUILD_ROOT%{_pkgconfigdir}
134 cat <<'EOF' > $RPM_BUILD_ROOT%{_pkgconfigdir}/%{name}.pc
137 libdir=${prefix}/%{_lib}
138 includedir=${prefix}/include/node
141 Description: Evented I/O for V8 JavaScript.
143 Cflags: -I${includedir}
146 %py_ocomp $RPM_BUILD_ROOT%{_libdir}/node/wafadmin
147 %py_comp $RPM_BUILD_ROOT%{_libdir}/node/wafadmin
148 # TODO: check it first
149 #%%py_postclean %{_libdir}/node/wafadmin
151 # install documentation
152 install -d $RPM_BUILD_ROOT%{_docdir}/%{name}-doc-%{version}
153 cp -a doc/api/* $RPM_BUILD_ROOT%{_docdir}/%{name}-doc-%{version}
154 rm $RPM_BUILD_ROOT%{_docdir}/%{name}-doc-%{version}/*.markdown
155 rm $RPM_BUILD_ROOT%{_docdir}/%{name}-doc-%{version}/*.json
158 rm -rf $RPM_BUILD_ROOT
160 %post -p /sbin/ldconfig
161 %postun -p /sbin/ldconfig
164 %defattr(644,root,root,755)
165 %doc README.md AUTHORS ChangeLog LICENSE
166 %attr(755,root,root) %{_bindir}/node
167 %attr(755,root,root) %{_bindir}/nodejs
169 %dir %{_prefix}/lib/node_modules
170 %{_mandir}/man1/node.1*
171 %{_mandir}/man1/nodejs.1
174 %defattr(644,root,root,755)
176 %{_pkgconfigdir}/nodejs.pc
179 %defattr(644,root,root,755)
180 %doc %{_docdir}/%{name}-doc-%{version}
183 %defattr(644,root,root,755)
184 %attr(755,root,root) %{_bindir}/node-waf
185 %dir %{_libdir}/node/wafadmin
186 %dir %{_libdir}/node/wafadmin/Tools
187 %{_libdir}/node/wafadmin/*.py[co]
188 %{_libdir}/node/wafadmin/*.py
189 %{_libdir}/node/wafadmin/Tools/*.py
190 %{_libdir}/node/wafadmin/Tools/*.py[co]