]> git.pld-linux.org Git - packages/nodejs.git/blame - nodejs.spec
use system http parser library
[packages/nodejs.git] / nodejs.spec
CommitLineData
210abff9 1Summary: Asynchronous JavaScript Engine
2Name: nodejs
9dc0bdad 3Version: 0.10.3
c1c359b8 4Release: 3
d5764a43 5License: BSD and MIT and Apache v2.0 and GPL v3
e85103e0 6Group: Development/Languages
cb51f00f 7Source0: http://nodejs.org/dist/v%{version}/node-v%{version}.tar.gz
9dc0bdad 8# Source0-md5: 4daca92618515708a4631e98a8e8c779
4174c079 9Patch1: %{name}-shared.patch
a6070ceb
ER
10# force node to use /usr/lib/node as the systemwide module directory
11Patch2: %{name}-libpath.patch
12# use /usr/lib64/node as an arch-specific module dir when appropriate
13Patch3: %{name}-lib64path.patch
1385a038 14Patch5: uv-fpic.patch
4174c079 15URL: http://www.nodejs.org/
c1c359b8 16BuildRequires: c-ares-devel
12a49d35 17BuildRequires: gcc >= 5:4.0
e427e9b0 18BuildRequires: http-parser-devel >= 2.0
210abff9 19BuildRequires: libstdc++-devel
8939ac26 20BuildRequires: libuv-devel >= %{version}
cd4c73aa
ER
21BuildRequires: openssl-devel
22BuildRequires: pkgconfig
a6070ceb
ER
23BuildRequires: python >= 1:2.5.2
24BuildRequires: python-jsmin
12a49d35 25BuildRequires: rpm >= 4.4.9-56
d44c8857 26BuildRequires: rpmbuild(macros) >= 1.219
1ed21df5 27BuildRequires: v8-devel >= 3.15.11.10
cd4c73aa 28BuildRequires: zlib-devel
c1c359b8 29BuildConflicts: eio
5ef76b51 30Obsoletes: nodejs-waf
210abff9 31ExclusiveArch: %{ix86} %{x8664} arm
32BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
33
34%description
c3b531ba
ER
35Node.js is a platform built on Chrome's JavaScript runtime for easily
36building fast, scalable network applications. Node.js uses an
37event-driven, non-blocking I/O model that makes it lightweight and
38efficient, perfect for data-intensive real-time applications that run
39across distributed devices.
210abff9 40
210abff9 41%package devel
12a49d35 42Summary: Development headers for nodejs
210abff9 43Group: Development/Libraries
a8f57a3f 44Requires: %{name} = %{version}-%{release}
d44c8857
ER
45Requires: gcc
46Requires: libstdc++-devel
fae304aa 47Requires: v8-devel
210abff9 48
49%description devel
12a49d35 50Development headers for nodejs.
210abff9 51
a6070ceb
ER
52%package doc
53Summary: Evented I/O for V8 JavaScript - documentation
54Group: Documentation
55
56%description doc
57Node.js is a server-side JavaScript environment that uses an
58asynchronous event-driven model. Node's goal is to provide an easy way
59to build scalable network programs.
60
61This package contains the documentation for nodejs.
62
210abff9 63%prep
64%setup -q -n node-v%{version}
a600c300 65%patch1 -p1
a6070ceb
ER
66%if %{_lib} == "lib64"
67%patch3 -p1
68%else
69%patch2 -p1
70%endif
1385a038 71%patch5 -p1
c4aa3bb0 72
210abff9 73%build
cb51f00f
ER
74# Error: V8 doesn't like ccache. Please set your CC env var to 'gcc'
75CC=${CC#ccache }
a600c300 76
8939ac26
ER
77# add defines from libuv (RHBZ#892601)
78export CFLAGS="%{rpmcflags} -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
79export CXXFLAGS="%{rpmcppflags} -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
80
81# NOT autoconf so don't use macro
a600c300 82export PYTHONPATH=tools
a6070ceb 83./configure \
a6070ceb
ER
84 --shared-v8 \
85 --shared-zlib \
be06d6d0 86 --shared-openssl \
c1c359b8 87 --shared-cares \
8939ac26 88 --shared-libuv \
e427e9b0 89 --shared-http-parser \
7223b5ac 90 --without-npm \
c1c359b8 91 --without-dtrace \
210abff9 92 --prefix=%{_prefix}
93
5ef76b51
AS
94%{__make} -C out \
95 BUILDTYPE=Release \
96 V=1 \
97 CFLAGS.host="%{rpmcflags} -fPIC" \
98 CXXFLAGS.host="%{rpmcppflags} -fPIC" \
99 LDFLAGS.host="%{rpmcflags}" \
100 CFLAGS.target="%{rpmcflags} -fPIC" \
101 CXXFLAGS.target="%{rpmcppflags} -fPIC" \
102 LDFLAGS.target="%{rpmcflags}" \
5ef76b51
AS
103 CC.host="%{__cc}" \
104 CXX.host="%{__cxx}" \
105 CC.target="%{__cc}" \
106 CXX.target="%{__cxx}"
210abff9 107
108%install
109rm -rf $RPM_BUILD_ROOT
be06d6d0
AS
110%{__make} justinstall \
111 DESTDIR=$RPM_BUILD_ROOT \
4174c079
ER
112 LIBDIR=%{_lib}
113
114# no dtrace on linux
115%{__rm} -r $RPM_BUILD_ROOT%{_prefix}/lib/dtrace/node.d
be06d6d0 116
4174c079
ER
117lib=$(basename $RPM_BUILD_ROOT%{_libdir}/libnode.so.*.*)
118ln -s $lib $RPM_BUILD_ROOT%{_libdir}/libnode.so.10
119ln -s $lib $RPM_BUILD_ROOT%{_libdir}/libnode.so
a6070ceb 120
c7898157
ER
121echo '.so man1/node.1' > $RPM_BUILD_ROOT%{_mandir}/man1/nodejs.1
122
1ed21df5 123install -d $RPM_BUILD_ROOT%{_includedir}/node
4174c079 124cp -p src/*.h $RPM_BUILD_ROOT%{_includedir}/node
d5764a43
ER
125cp -p deps/uv/include/uv.h $RPM_BUILD_ROOT%{_includedir}/node
126cp -a deps/uv/include/uv-private $RPM_BUILD_ROOT%{_includedir}/node
127
128# install for node-gyp
129install -d $RPM_BUILD_ROOT%{_usrsrc}/%{name}
130cp -p common.gypi $RPM_BUILD_ROOT%{_usrsrc}/%{name}
131ln -s %{_includedir}/node $RPM_BUILD_ROOT%{_usrsrc}/%{name}/src
1ed21df5 132
e85103e0 133# for compat of fedora derivered scripts (shebangs)
c3b531ba
ER
134ln -s node $RPM_BUILD_ROOT%{_bindir}/nodejs
135
e85103e0
ER
136# globally installed node modules (noarch)
137install -d $RPM_BUILD_ROOT%{_prefix}/lib/node_modules
138
139# default searchpaths
140install -d $RPM_BUILD_ROOT{%{_libdir},%{_prefix}/lib}/node
141
a6070ceb
ER
142# create pkgconfig
143install -d $RPM_BUILD_ROOT%{_pkgconfigdir}
144cat <<'EOF' > $RPM_BUILD_ROOT%{_pkgconfigdir}/%{name}.pc
145version=%{version}
c3b531ba 146prefix=%{_prefix}
87c4fdf2 147libdir=${prefix}/%{_lib}
a6070ceb
ER
148includedir=${prefix}/include/node
149
150Name: nodejs
151Description: Evented I/O for V8 JavaScript.
152Version: ${version}
153Cflags: -I${includedir}
154EOF
a752c1c0 155
a6070ceb 156# install documentation
6f7eebb5
ER
157install -d $RPM_BUILD_ROOT%{_docdir}/%{name}-doc-%{version}
158cp -a doc/api/* $RPM_BUILD_ROOT%{_docdir}/%{name}-doc-%{version}
159rm $RPM_BUILD_ROOT%{_docdir}/%{name}-doc-%{version}/*.markdown
160rm $RPM_BUILD_ROOT%{_docdir}/%{name}-doc-%{version}/*.json
a6070ceb 161
210abff9 162%clean
163rm -rf $RPM_BUILD_ROOT
164
4174c079 165%post -p /sbin/ldconfig
7372d27d 166%postun -p /sbin/ldconfig
167
210abff9 168%files
169%defattr(644,root,root,755)
a6070ceb 170%doc README.md AUTHORS ChangeLog LICENSE
210abff9 171%attr(755,root,root) %{_bindir}/node
c3b531ba 172%attr(755,root,root) %{_bindir}/nodejs
a600c300 173%attr(755,root,root) %{_libdir}/libnode.so.*.*.*
2492de83 174%ghost %{_libdir}/libnode.so.10
a600c300 175%if "%{_lib}" != "lib"
8791ea86 176%dir %{_libdir}/node
a600c300
ŁC
177%endif
178%dir %{_prefix}/lib/node
e85103e0 179%dir %{_prefix}/lib/node_modules
210abff9 180%{_mandir}/man1/node.1*
c7898157 181%{_mandir}/man1/nodejs.1
210abff9 182
210abff9 183%files devel
184%defattr(644,root,root,755)
a600c300 185%{_libdir}/libnode.so
58494f0c 186%{_includedir}/node
a6070ceb 187%{_pkgconfigdir}/nodejs.pc
d5764a43 188%{_usrsrc}/%{name}
a6070ceb
ER
189
190%files doc
191%defattr(644,root,root,755)
192%doc %{_docdir}/%{name}-doc-%{version}
This page took 0.062255 seconds and 4 git commands to generate.