]> git.pld-linux.org Git - packages/nodejs.git/blame - nodejs.spec
- fix node-waf locating wafadmin in lib64 platforms
[packages/nodejs.git] / nodejs.spec
CommitLineData
210abff9 1Summary: Asynchronous JavaScript Engine
2Name: nodejs
c3b531ba 3Version: 0.6.8
e85103e0
ER
4Release: 2
5License: BSD and MIT and ASL 2.0 and GPLv3
6Group: Development/Languages
c3b531ba
ER
7URL: http://www.nodejs.org/
8Source0: http://www.nodejs.org/dist/node-v%{version}.tar.gz
9# Source0-md5: 9fd7baa2d27b848c3134e6ae35bb87b2
fb6f511a 10Patch1: %{name}-soname.patch
a6070ceb
ER
11# force node to use /usr/lib/node as the systemwide module directory
12Patch2: %{name}-libpath.patch
13# use /usr/lib64/node as an arch-specific module dir when appropriate
14Patch3: %{name}-lib64path.patch
a3293030 15BuildRequires: c-ares-devel >= 1.7.4
12a49d35 16BuildRequires: gcc >= 5:4.0
210abff9 17BuildRequires: libeio-devel
a3293030 18BuildRequires: libev-devel >= 4.0.0
210abff9 19BuildRequires: libstdc++-devel
a6070ceb
ER
20BuildRequires: python >= 1:2.5.2
21BuildRequires: python-jsmin
12a49d35 22BuildRequires: rpm >= 4.4.9-56
a6070ceb 23BuildRequires: v8-devel >= 3.6
210abff9 24ExclusiveArch: %{ix86} %{x8664} arm
25BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
26
27%description
c3b531ba
ER
28Node.js is a platform built on Chrome's JavaScript runtime for easily
29building fast, scalable network applications. Node.js uses an
30event-driven, non-blocking I/O model that makes it lightweight and
31efficient, perfect for data-intensive real-time applications that run
32across distributed devices.
210abff9 33
210abff9 34%package devel
12a49d35 35Summary: Development headers for nodejs
210abff9 36Group: Development/Libraries
a8f57a3f 37Requires: %{name} = %{version}-%{release}
210abff9 38
39%description devel
12a49d35 40Development headers for nodejs.
210abff9 41
a6070ceb
ER
42%package doc
43Summary: Evented I/O for V8 JavaScript - documentation
44Group: Documentation
45
46%description doc
47Node.js is a server-side JavaScript environment that uses an
48asynchronous event-driven model. Node's goal is to provide an easy way
49to build scalable network programs.
50
51This package contains the documentation for nodejs.
52
53%package waf
54Summary: Evented I/O for V8 JavaScript - customized WAF build system
55Group: Libraries
56Requires: %{name} = %{version}-%{release}
e85103e0
ER
57Requires: %{name}-devel
58Requires: gcc
59Requires: libstdc++-devel
a6070ceb
ER
60
61%description waf
62Node.js is a server-side JavaScript environment that uses an
63asynchronous event-driven model. Node's goal is to provide an easy way
64to build scalable network programs.
65
66This package contains the customized version of the WAF build system
67used by Node.js and many of its modules.
68
210abff9 69%prep
70%setup -q -n node-v%{version}
fb6f511a 71%patch1 -p1
a6070ceb
ER
72%if %{_lib} == "lib64"
73%patch3 -p1
74%else
75%patch2 -p1
76%endif
210abff9 77
78%build
a6070ceb 79%undefine with_ccache
210abff9 80# build library
a6070ceb
ER
81CFLAGS="%{rpmcflags} -fPIC"
82CXXFLAGS="%{rpmcxxflags} -fPIC"
210abff9 83LDFLAGS="%{rpmcflags}"
84%if "%{pld_release}" == "ac"
8791ea86
ER
85CC="%{__cc}4"
86CXX="%{__cxx}4"
210abff9 87%else
8791ea86
ER
88CC="%{__cc}"
89CXX="%{__cxx}"
210abff9 90%endif
58494f0c 91export CFLAGS LDFLAGS CXXFLAGS CC CXX
210abff9 92
a6070ceb 93# NOT autoconf so dont use macro
7372d27d 94export PYTHONPATH=tools
a6070ceb 95./configure \
b52d635c 96 --shared-cares \
a6070ceb
ER
97 --shared-v8 \
98 --shared-zlib \
a8f57a3f 99 --libdir=%{_libdir} \
210abff9 100 --prefix=%{_prefix}
101
a6070ceb
ER
102%{__make} dynamiclib
103%{__make} program
7372d27d 104
a6070ceb
ER
105# relink with shared lib
106$CC -o out/Release/node src/node_main.cc -Isrc -Ideps/uv/include -lnode -Lout/Release
210abff9 107
108%install
109rm -rf $RPM_BUILD_ROOT
a6070ceb
ER
110%{__make} install \
111 DESTDIR=$RPM_BUILD_ROOT
112
e85103e0 113# for compat of fedora derivered scripts (shebangs)
c3b531ba
ER
114ln -s node $RPM_BUILD_ROOT%{_bindir}/nodejs
115
e85103e0
ER
116# globally installed node modules (noarch)
117install -d $RPM_BUILD_ROOT%{_prefix}/lib/node_modules
118
119# default searchpaths
120install -d $RPM_BUILD_ROOT{%{_libdir},%{_prefix}/lib}/node
121
a6070ceb 122# install shared lib
7372d27d 123export PYTHONPATH=tools
8791ea86 124%{__python} tools/waf-light install \
7372d27d 125 --product-type=cshlib \
126 --destdir=$RPM_BUILD_ROOT
127
87c4fdf2
ER
128chmod a+x $RPM_BUILD_ROOT%{_libdir}/*.so*
129
a6070ceb
ER
130# create pkgconfig
131install -d $RPM_BUILD_ROOT%{_pkgconfigdir}
132cat <<'EOF' > $RPM_BUILD_ROOT%{_pkgconfigdir}/%{name}.pc
133version=%{version}
c3b531ba 134prefix=%{_prefix}
87c4fdf2 135libdir=${prefix}/%{_lib}
a6070ceb
ER
136includedir=${prefix}/include/node
137
138Name: nodejs
139Description: Evented I/O for V8 JavaScript.
140Version: ${version}
141Cflags: -I${includedir}
142EOF
a752c1c0 143
a6070ceb
ER
144# install documentation
145install -d $RPM_BUILD_ROOT%{_docdir}/%{name}-doc-%{version}/html
146cp -a doc/* $RPM_BUILD_ROOT%{_docdir}/%{name}-doc-%{version}/html
147cd $RPM_BUILD_ROOT%{_docdir}/%{name}-doc-%{version}
148install -d api
149mv html/api/*.markdown api
150mv html/api/api/* html/api
151rm -rf html/api/api
152cd -
153
154# remove NPM; it's buggy in 0.6.3
155# but really we package npm from separate spec
156rm -rf $RPM_BUILD_ROOT%{_libdir}/node_modules
157rm $RPM_BUILD_ROOT%{_bindir}/npm
27cf5215 158
210abff9 159%clean
160rm -rf $RPM_BUILD_ROOT
161
7372d27d 162%post -p /sbin/ldconfig
163%postun -p /sbin/ldconfig
164
210abff9 165%files
166%defattr(644,root,root,755)
a6070ceb 167%doc README.md AUTHORS ChangeLog LICENSE
210abff9 168%attr(755,root,root) %{_bindir}/node
c3b531ba 169%attr(755,root,root) %{_bindir}/nodejs
7372d27d 170%attr(755,root,root) %{_libdir}/libnode.so.*.*.*
e85103e0 171%ghost %{_libdir}/libnode.so.6
8791ea86 172%dir %{_libdir}/node
e85103e0
ER
173%dir %{_prefix}/lib/node
174%dir %{_prefix}/lib/node_modules
210abff9 175%{_mandir}/man1/node.1*
176
210abff9 177%files devel
178%defattr(644,root,root,755)
7372d27d 179%{_libdir}/libnode.so
58494f0c 180%{_includedir}/node
a6070ceb
ER
181%{_pkgconfigdir}/nodejs.pc
182
183%files doc
184%defattr(644,root,root,755)
185%doc %{_docdir}/%{name}-doc-%{version}
186
187%files waf
188%defattr(644,root,root,755)
c6be74cc 189%attr(755,root,root) %{_bindir}/node-waf
afb1c7e5
PZ
190%dir %{_libdir}/node/wafadmin
191%dir %{_libdir}/node/wafadmin/Tools
192%{_libdir}/node/wafadmin/*.py
193%{_libdir}/node/wafadmin/Tools/*.py
This page took 0.105357 seconds and 4 git commands to generate.