summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tools/rpm/node.spec104
-rwxr-xr-xtools/rpm/rpmbuild.sh44
2 files changed, 148 insertions, 0 deletions
diff --git a/tools/rpm/node.spec b/tools/rpm/node.spec
new file mode 100644
index 000000000..69369e31c
--- /dev/null
+++ b/tools/rpm/node.spec
@@ -0,0 +1,104 @@
+# Copyright (c) 2013, StrongLoop, Inc. <callback@strongloop.com>
+#
+# Permission to use, copy, modify, and/or distribute this software for any
+# purpose with or without fee is hereby granted, provided that the above
+# copyright notice and this permission notice appear in all copies.
+#
+# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+# This is updated by rpmbuild.sh.
+%define _version 0.10.12
+
+Name: node
+Version: %{_version}
+Release: 1
+Summary: Node.js is a platform for building fast, scalable network applications.
+Group: Development/Languages
+License: MIT
+URL: http://nodejs.org/
+Source0: http://nodejs.org/dist/v%{_version}/node-v%{_version}.tar.gz
+BuildRequires: gcc
+BuildRequires: gcc-c++
+BuildRequires: glibc-devel
+BuildRequires: make
+BuildRequires: python
+
+# Conflicts with the HAM radio package.
+Conflicts: node <= 0.3.2-11
+
+# Conflicts with the Fedora node.js package.
+Conflicts: nodejs
+
+
+%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.
+
+
+%prep
+%setup -q
+
+
+%build
+%ifarch arm
+%define _dest_cpu arm
+%endif
+
+%ifarch i386 i686
+%define _dest_cpu ia32
+%endif
+
+%ifarch x86_64
+%define _dest_cpu x64
+%endif
+
+./configure --prefix=/usr --dest-cpu=%{_dest_cpu}
+make %{?_smp_mflags}
+
+
+%check
+#make test
+
+
+# Use mildly hard-coded paths in the install and files targets for now.
+# _libdir is /usr/lib64 on some systems but the node.js installer always
+# installs to /usr/lib. I have commits sitting in a branch that add --libdir
+# and --mandir configure switches to the node.js configure script but it's
+# debatable if it's worth the extra complexity.
+%install
+export DONT_STRIP=1 # Don't strip debug symbols for now.
+make install DESTDIR=%{buildroot}
+rm -fr %{buildroot}/usr/lib/dtrace/ # No systemtap support.
+install -m 755 -d %{buildroot}/usr/lib/node_modules/
+install -m 755 -d %{buildroot}%{_datadir}/%{name}
+
+# Remove junk files from node_modules/ - we should probably take care of
+# this in the installer.
+for FILE in .gitmodules .gitignore .npmignore .travis.yml \*.py[co]; do
+ find %{buildroot}/usr/lib/node_modules/ -name "$FILE" -delete
+done
+
+
+%files
+/usr/bin/*
+/usr/include/*
+/usr/lib/node_modules/
+/usr/share/man/man1/node.1.gz
+/usr/share/systemtap/tapset/node.stp
+%{_datadir}/%{name}/
+%doc ChangeLog LICENSE README.md
+
+
+%changelog
+* Fri Jul 5 2013 Ben Noordhuis <info@bnoordhuis.nl>
+- Initial release.
diff --git a/tools/rpm/rpmbuild.sh b/tools/rpm/rpmbuild.sh
new file mode 100755
index 000000000..6f2d0d123
--- /dev/null
+++ b/tools/rpm/rpmbuild.sh
@@ -0,0 +1,44 @@
+#!/bin/sh
+
+# Copyright (c) 2013, StrongLoop, Inc. <callback@strongloop.com>
+#
+# Permission to use, copy, modify, and/or distribute this software for any
+# purpose with or without fee is hereby granted, provided that the above
+# copyright notice and this permission notice appear in all copies.
+#
+# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+set -e
+
+TOOLSDIR=`dirname $0`
+TOPLEVELDIR="$TOOLSDIR/../.."
+
+RPMBUILD_PATH="${RPMBUILD_PATH:-$HOME/rpmbuild}"
+if [ ! -d "$RPMBUILD_PATH" ]; then
+ echo "Run rpmdev-setuptree first."
+ exit 1
+fi
+
+if [ $# -ge 1 ]; then
+ VERSION=$1
+else
+ FILE="$TOPLEVELDIR/src/node_version.h"
+ MAJOR=`sed -nre 's/#define NODE_MAJOR_VERSION ([0-9]+)/\1/p' "$FILE"`
+ MINOR=`sed -nre 's/#define NODE_MINOR_VERSION ([0-9]+)/\1/p' "$FILE"`
+ PATCH=`sed -nre 's/#define NODE_PATCH_VERSION ([0-9]+)/\1/p' "$FILE"`
+ VERSION="$MAJOR.$MINOR.$PATCH"
+fi
+
+set -x
+
+sed -re "s/%define _version .+/%define _version ${VERSION}/" \
+ "$TOOLSDIR/node.spec" > $RPMBUILD_PATH/SPECS/node.spec
+tar --exclude-vcs --transform="s|^|node-${VERSION}/|" \
+ -czf $RPMBUILD_PATH/SOURCES/node-v${VERSION}.tar.gz .
+rpmbuild $* -ba $RPMBUILD_PATH/SPECS/node.spec