diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c122f18 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/node-v0.10.25-stripped.tar.gz diff --git a/.nodejs010-nodejs.metadata b/.nodejs010-nodejs.metadata new file mode 100644 index 0000000..1201609 --- /dev/null +++ b/.nodejs010-nodejs.metadata @@ -0,0 +1 @@ +32ee28e7190612f49cd4b3bd6da93d3d68ce271f SOURCES/node-v0.10.25-stripped.tar.gz diff --git a/README.md b/README.md deleted file mode 100644 index ce46a88..0000000 --- a/README.md +++ /dev/null @@ -1,5 +0,0 @@ -\ -The master branch has no content - -Look at the c7 branch if you are working with CentOS-7, or the c4/c5/c6 branch for CentOS-4, 5 or 6 -If you find this file in a distro specific branch, it means that no content has been checked in yet diff --git a/SOURCES/nodejs-disable-gyp-deps.patch b/SOURCES/nodejs-disable-gyp-deps.patch new file mode 100644 index 0000000..ae48d24 --- /dev/null +++ b/SOURCES/nodejs-disable-gyp-deps.patch @@ -0,0 +1,26 @@ +From 4464455834276c845a63fede515cb62655afb2da Mon Sep 17 00:00:00 2001 +From: "T.C. Hollingsworth" +Date: Tue, 12 Nov 2013 14:51:03 -0700 +Subject: [PATCH] disable running gyp files for bundled deps + +these aren't used in Fedora +--- + Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile b/Makefile +index 8177017..81d150f 100644 +--- a/Makefile ++++ b/Makefile +@@ -43,7 +43,7 @@ node_g: config.gypi out/Makefile + ln -fs out/Debug/node $@ + endif + +-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 ++out/Makefile: common.gypi node.gyp config.gypi + ifeq ($(USE_NINJA),1) + touch out/Makefile + $(PYTHON) tools/gyp_node.py -f ninja +-- +1.8.4.2 + diff --git a/SOURCES/nodejs010-nodejs-tarball.sh b/SOURCES/nodejs010-nodejs-tarball.sh new file mode 100755 index 0000000..5cc73a4 --- /dev/null +++ b/SOURCES/nodejs010-nodejs-tarball.sh @@ -0,0 +1,8 @@ +#!/bin/sh + +version=$(rpm -q --specfile --qf='%{version}\n' nodejs.spec | head -n1) +#wget http://nodejs.org/dist/v${version}/node-v${version}.tar.gz +tar -zxf node-v${version}.tar.gz +rm -rf node-v${version}/deps/openssl +rm -rf node-v${version}/deps/npm/html/static/webfonts +tar -zcf node-v${version}-stripped.tar.gz node-v${version} diff --git a/SPECS/nodejs.spec b/SPECS/nodejs.spec new file mode 100644 index 0000000..43e3a70 --- /dev/null +++ b/SPECS/nodejs.spec @@ -0,0 +1,421 @@ +%{?scl:%scl_package nodejs} +%{!?scl:%global pkg_name %{name}} +%{?nodejs_find_provides_and_requires} + +Name: %{?scl_prefix}nodejs +Version: 0.10.25 +Release: 1%{?dist} +Summary: JavaScript runtime +License: MIT and ASL 2.0 and ISC and BSD +Group: Development/Languages +URL: http://nodejs.org/ + +# Exclusive archs must match v8 +ExclusiveArch: %{ix86} x86_64 %{arm} + +# nodejs bundles openssl, but we use the system version in Fedora +# because openssl contains prohibited code, we remove openssl completely from +# the tarball, using the script in Source100 + +Source0: node-v%{version}-stripped.tar.gz +Source100: %{name}-tarball.sh + +# The native module Requires generator remains in the nodejs SRPM, so it knows +# the nodejs and v8 versions. The remainder has migrated to the +# nodejs-packaging SRPM. +# Disable running gyp on bundled deps we don't use +Patch1: nodejs-disable-gyp-deps.patch + +# V8 presently breaks ABI at least every x.y release while never bumping SONAME, +# so we need to be more explicit until spot fixes that +%global v8_ge 1:3.14.5.7 +%global v8_lt 1:3.15 +%global v8_abi 3.14 + +%{?scl:Requires: %{scl}-runtime} +BuildRequires: v8314-v8-devel >= %{v8_ge} +BuildRequires: %{?scl_prefix}http-parser-devel >= 2.0 +BuildRequires: %{?scl_prefix}libuv-devel +BuildRequires: c-ares-devel +BuildRequires: zlib-devel +# Node.js requires some features from openssl 1.0.1 for SPDY support +# but we'll try our best +BuildRequires: openssl-devel + +Requires: v8314-v8%{?isa} >= %{v8_ge} +Requires: v8314-v8%{?isa} < %{v8_lt} + +#we need ABI virtual provides where SONAMEs aren't enough/not present so deps +#break when binary compatibility is broken +%global nodejs_abi 0.10 +Provides: %{?scl_prefix}nodejs(abi) = %{nodejs_abi} +Provides: %{?scl_prefix}nodejs(v8-abi) = %{v8_abi} + +#this corresponds to the "engine" requirement in package.json +Provides: %{?scl_prefix}nodejs(engine) = %{version} + +# Node.js currently has a conflict with the 'node' package in Fedora +# The ham-radio group has agreed to rename their binary for us, but +# in the meantime, we're setting an explicit Conflicts: %{?scl_prefix}here +Conflicts: %{?scl_prefix}node <= 0.3.2-11 + +%description +Node.js is a platform built on Chrome's JavaScript runtime +for easily building fast, scalable network applications. +Node.js uses an event-driven, non-blocking I/O model that +makes it lightweight and efficient, perfect for data-intensive +real-time applications that run across distributed devices. + +%package devel +Summary: JavaScript runtime - development headers +Group: Development/Languages +Requires: %{name} = %{version}-%{release} +Requires: %{?scl_prefix}libuv-devel %{?scl_prefix}http-parser-devel openssl-devel c-ares-devel zlib-devel v8314-v8-devel + +%description devel +Development headers for the Node.js JavaScript runtime. + +%package docs +Summary: Node.js API documentation +Group: Documentation +BuildArch: noarch + +%description docs +The API documentation for the Node.js JavaScript runtime. + + +%prep +%setup -q -n node-v%{version} +%patch1 -p1 + +%build + +# build with debugging symbols and add defines from libuv (#892601) +export CFLAGS='%{optflags} -g -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 \ + -I%{_includedir}' +export CXXFLAGS='%{optflags} -g -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 \ + -I%{_includedir}' +export LDFLAGS='%{optflags} -L%{_libdir}' +%{?scl:scl enable %{scl} "} +./configure --prefix=%{_prefix} \ + --shared-v8 \ + --shared-openssl \ + --shared-zlib \ + --shared-cares \ + --shared-libuv \ + --shared-http-parser \ + --without-npm \ + --without-dtrace \ + --shared-v8-includes /opt/rh/v8314/root/usr/include/ \ + --shared-v8-libpath /opt/rh/v8314/root/usr/lib64 +# Setting BUILDTYPE=Debug builds both release and debug binaries +make BUILDTYPE=Debug %{?_smp_mflags} +%{?scl:"} +%install +rm -rf %{buildroot} + +./tools/install.py install %{buildroot} + +# and remove dtrace file again +rm -rf %{buildroot}/%{_prefix}/lib/dtrace + +# Set the binary permissions properly +chmod 0755 %{buildroot}/%{_bindir}/node + +# Install the debug binary and set its permissions +install -Dpm0755 out/Debug/node %{buildroot}/%{_bindir}/node_g + +# own the sitelib directory +mkdir -p %{buildroot}%{_prefix}/lib/node_modules + +#install documentation + +mkdir -p %{buildroot}%{_defaultdocdir}/%{pkg_name}-docs-%{version}/html +cp -pr doc/* %{buildroot}%{_defaultdocdir}/%{pkg_name}-docs-%{version}/html +rm -f %{_defaultdocdir}/%{pkg_name}-docs-%{version}/html/nodejs.1 +cp -p LICENSE %{buildroot}%{_defaultdocdir}/%{pkg_name}-docs-%{version}/ + +#install development headers +#FIXME: we probably don't really need *.h but node-gyp downloads the whole +#freaking source tree so I can't be sure ATM +mkdir -p %{buildroot}%{_includedir}/node +cp -p src/*.h %{buildroot}%{_includedir}/node + +#node-gyp needs common.gypi too +mkdir -p %{buildroot}%{_datadir}/node +cp -p common.gypi %{buildroot}%{_datadir}/node + +%files +%doc ChangeLog LICENSE README.md AUTHORS +%{_bindir}/node +%{_mandir}/man1/node.* +%dir %{_prefix}/lib/node_modules +%dir %{_datadir}/node + +%files devel +%{_bindir}/node_g +%{_includedir}/node +%{_datadir}/node/common.gypi + +%files docs +%{_defaultdocdir}/%{pkg_name}-docs-%{version} + +%changelog +* Sun Feb 02 2014 Tomas Hrcka - 0.10.25-1 +- New upstream release 0.10.25 + +* Tue Jan 14 2014 Tomas Hrcka - 0.10.24-1 +- new upstream release 0.10.24 + +* Tue Nov 26 2013 Tomas Hrcka - 0.10.21-3 +- rebuilt with v8314 collection + +* Tue Nov 12 2013 T.C. Hollingsworth - 0.10.22-1 +- new upstream release 0.10.22 + http://blog.nodejs.org/2013/11/12/node-v0-10-22-stable/ + +* Mon Oct 21 2013 Tomas Hrcka - 0.10.21-2 +- Build with system wide c-ares + +* Fri Oct 18 2013 T.C. Hollingsworth - 0.10.21-1 +- new upstream release 0.10.21 + http://blog.nodejs.org/2013/10/18/node-v0-10-21-stable/ +- resolves an undisclosed security vulnerability in the http module + +* Tue Oct 01 2013 T.C. Hollingsworth - 0.10.20-1 +- new upstream release 0.10.20 + http://blog.nodejs.org/2013/09/30/node-v0-10-20-stable/ + +* Wed Sep 25 2013 T.C. Hollingsworth - 0.10.19-1 +- new upstream release 0.10.19 + http://blog.nodejs.org/2013/09/24/node-v0-10-19-stable/ + +* Fri Sep 06 2013 T.C. Hollingsworth - 0.10.18-1 +- new upstream release 0.10.18 + http://blog.nodejs.org/2013/09/04/node-v0-10-18-stable/ + +* Tue Aug 27 2013 T.C. Hollingsworth - 0.10.17-1 +- new upstream release 0.10.17 + http://blog.nodejs.org/2013/08/21/node-v0-10-17-stable/ + +* Sat Aug 17 2013 T.C. Hollingsworth - 0.10.16-1 +- new upstream release 0.10.16 + http://blog.nodejs.org/2013/08/16/node-v0-10-16-stable/ +- add v8-devel to -devel Requires +- restrict -devel Requires to the same architecture + +* Wed Aug 14 2013 T.C. Hollingsworth - 0.10.14-3 +- fix typo in _isa macro in v8 Requires + +* Wed Aug 07 2013 Tomas Hrcka - 0.10.5-6 + - Remove badly licensed fonts in script instead of patch + +* Thu Jul 25 2013 T.C. Hollingsworth - 0.10.14-1 +- new upstream release 0.10.14 + http://blog.nodejs.org/2013/07/25/node-v0-10-14-stable/ + +* Wed Jul 10 2013 T.C. Hollingsworth - 0.10.13-1 +- new upstream release 0.10.13 + http://blog.nodejs.org/2013/07/09/node-v0-10-13-stable/ +- remove RPM macros, etc. now that they've migrated to nodejs-packaging + +* Wed Jun 19 2013 Tomas Hrcka - 0.10.5-5 + - added patch to remove badly licensed web fonts + +* Wed Jun 19 2013 Tomas Hrcka - 0.10.5-5 + - added patch to remove badly licensed web fonts + +* Wed Jun 19 2013 Tomas Hrcka - 0.10.5-4 + - strip openssl from the tarball it contains prohibited code (RHBZ#967736) + - patch makefile so it do not use bundled deps + - new stripped tarball + +* Wed Jun 19 2013 T.C. Hollingsworth - 0.10.12-1 +- new upstream release 0.10.12 + http://blog.nodejs.org/2013/06/18/node-v0-10-12-stable/ +- split off a -packaging subpackage with RPM macros, etc. +- build -docs as noarch +- copy mutiple version logic from nodejs-packaging SRPM for now + +* Fri May 31 2013 T.C. Hollingsworth - 0.10.9-1 +- new upstream release 0.10.9 + http://blog.nodejs.org/2013/05/30/node-v0-10-9-stable/ + +* Wed May 29 2013 T.C. Hollingsworth - 0.10.8-1 +- new upstream release 0.10.8 + http://blog.nodejs.org/2013/05/24/node-v0-10-8-stable/ + +* Wed May 29 2013 T.C. Hollingsworth - 0.10.7-1 +- new upstream release 0.10.7 + http://blog.nodejs.org/2013/05/17/node-v0-10-7-stable/ +- strip openssl from the tarball; it contains prohibited code (RHBZ#967736) +- patch Makefile so we can just remove all bundled deps completely + +* Wed May 15 2013 T.C. Hollingsworth - 0.10.6-1 +- new upstream release 0.10.6 + http://blog.nodejs.org/2013/05/14/node-v0-10-6-stable/ + +* Tue May 14 2013 Tomas Hrcka - 0.10.5-3.1 + - updated to latest upstream stable release + +* Mon May 06 2013 T.C. Hollingsworth - 0.10.5-3 +- nodejs-fixdep: work properly when a package has no dependencies + +* Mon Apr 29 2013 T.C. Hollingsworth - 0.10.5-2 +- nodejs-symlink-deps: make it work when --check is used and just + devDependencies exist + +* Wed Apr 24 2013 T.C. Hollingsworth - 0.10.5-1 +- new upstream release 0.10.5 + http://blog.nodejs.org/2013/04/23/node-v0-10-5-stable/ + +* Mon Apr 15 2013 T.C. Hollingsworth - 0.10.4-1 +- new upstream release 0.10.4 + http://blog.nodejs.org/2013/04/11/node-v0-10-4-stable/ +- drop dependency generator files not supported on EL6 +- port nodejs_default_filter to EL6 +- add nodejs_find_provides_and_requires macro to invoke dependency generator +- invoke the standard RPM provides and requires generators from the Node.js ones +- write native module Requires from nodejs.req +- change the c-ares-devel Requires in -devel to match the BuildRequires + +* Tue Apr 09 2013 Stephen Gallagher - 0.10.3-2.1 +- Build against c-ares 1.9 + +* Mon Apr 08 2013 Stanislav Ochotnicky - 0.10.3-3 +- Add support for software collections +- Move rpm macros and tooling to separate package +- add no-op macro to permit spec compatibility with EPEL + +* Thu Apr 04 2013 T.C. Hollingsworth - 0.10.3-2 +- nodejs-symlink-deps: symlink unconditionally in the buildroot + +* Wed Apr 03 2013 T.C. Hollingsworth - 0.10.3-1 +- new upstream release 0.10.3 + http://blog.nodejs.org/2013/04/03/node-v0-10-3-stable/ +- nodejs-symlink-deps: only create symlink if target exists +- nodejs-symlink-deps: symlink devDependencies when --check is used + +* Sun Mar 31 2013 T.C. Hollingsworth - 0.10.2-1 +- new upstream release 0.10.2 + http://blog.nodejs.org/2013/03/28/node-v0-10-2-stable/ +- remove %%nodejs_arches macro since it will only be useful if it is present in + the redhat-rpm-config package +- add default filtering macro to remove unwanted Provides from native modules +- nodejs-symlink-deps now supports multiple modules in one SRPM properly +- nodejs-symlink-deps also now supports a --check argument that works in the + current working directry instead of the buildroot + +* Fri Mar 22 2013 T.C. Hollingsworth - 0.10.1-1 +- new upstream release 0.10.1 + http://blog.nodejs.org/2013/03/21/node-v0-10-1-stable/ + +* Wed Mar 20 2013 T.C. Hollingsworth - 0.10.0-4 +- fix escaping in dependency generator regular expressions (RHBZ#923941) + +* Wed Mar 13 2013 T.C. Hollingsworth - 0.10.0-3 +- add virtual ABI provides for node and v8 so binary module's deps break when + binary compatibility is broken +- automatically add matching Requires to nodejs binary modules +- add %%nodejs_arches macro to future-proof ExcluseArch stanza in dependent + packages + +* Tue Mar 12 2013 Stephen Gallagher - 0.10.0-2 +- Fix up documentation subpackage + +* Mon Mar 11 2013 Stephen Gallagher - 0.10.0-1 +- Update to stable 0.10.0 release +- https://raw.github.com/joyent/node/v0.10.0/ChangeLog + +* Thu Feb 14 2013 Fedora Release Engineering - 0.9.5-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Tue Jan 22 2013 T.C. Hollingsworth - 0.9.5-10 +- minor bugfixes to RPM magic + - nodejs-symlink-deps: don't create an empty node_modules dir when a module + has no dependencies + - nodes-fixdep: support adding deps when none exist +- Add the full set of headers usually bundled with node as deps to nodejs-devel. + This way `npm install` for native modules that assume the stuff bundled with + node exists will usually "just work". +-move RPM magic to nodejs-devel as requested by FPC + +* Sat Jan 12 2013 T.C. Hollingsworth - 0.9.5-9 +- fix brown paper bag bug in requires generation script + +* Thu Jan 10 2013 Stephen Gallagher - 0.9.5-8 +- Build debug binary and install it in the nodejs-devel subpackage + +* Thu Jan 10 2013 T.C. Hollingsworth - 0.9.5-7 +- don't use make install since it rebuilds everything + +* Thu Jan 10 2013 T.C. Hollingsworth - 0.9.5-6 +- add %%{?isa}, epoch to v8 deps + +* Wed Jan 09 2013 T.C. Hollingsworth - 0.9.5-5 +- add defines to match libuv (#892601) +- make v8 dependency explicit (and thus more accurate) +- add -g to $C(XX)FLAGS instead of patching configure to add it +- don't write pointless 'npm(foo) > 0' deps + +* Sat Jan 05 2013 T.C. Hollingsworth - 0.9.5-4 +- install development headers +- add nodejs_sitearch macro + +* Wed Jan 02 2013 T.C. Hollingsworth - 0.9.5-3 +- make nodejs-symlink-deps actually work + +* Tue Jan 01 2013 T.C. Hollingsworth - 0.9.5-2 +- provide nodejs-devel so modules can BuildRequire it (and be consistent + with other interpreted languages in the distro) + +* Tue Jan 01 2013 T.C. Hollingsworth - 0.9.5-1 +- new upstream release 0.9.5 +- provide nodejs-devel for the moment +- fix minor bugs in RPM magic +- add nodejs_fixdep macro so packagers can easily adjust dependencies in + package.json files + +* Wed Dec 26 2012 T.C. Hollingsworth - 0.9.4-1 +- new upstream release 0.9.4 +- system library patches are now upstream +- respect optflags +- include documentation in subpackage +- add RPM dependency generation and related magic +- guard libuv depedency so it always gets bumped when nodejs does +- add -devel subpackage with enough to make node-gyp happy + +* Thu Dec 20 2012 Stephen Gallagher - 0.9.3-9 +- Drop requirement on openssl 1.0.1 + +* Wed Dec 19 2012 Dan HorĂ¡k - 0.9.3-8 +- set exclusive arch list to match v8 + +* Tue Dec 18 2012 Stephen Gallagher - 0.9.3-7 +- Add remaining changes from code review +- Remove unnecessary BuildRequires on findutils +- Remove %%clean section + +* Fri Dec 14 2012 Stephen Gallagher - 0.9.3-6 +- Fixes from code review +- Fix executable permissions +- Correct the License field +- Build debuginfo properly + +* Thu Dec 13 2012 Stephen Gallagher - 0.9.3-5 +- Return back to using the standard binary name +- Temporarily adding a conflict against the ham radio node package until they + complete an agreed rename of their binary. + +* Wed Nov 28 2012 Stephen Gallagher - 0.9.3-4 +- Rename binary and manpage to nodejs + +* Mon Nov 19 2012 Stephen Gallagher - 0.9.3-3 +- Update to latest upstream development release 0.9.3 +- Include upstreamed patches to unbundle dependent libraries + +* Tue Oct 23 2012 Adrian Alves 0.8.12-1 +- Fixes and Patches suggested by Matthias Runge + +* Mon Apr 09 2012 Adrian Alves 0.6.5 +- First build.