diff options
-rw-r--r-- | tools/rpm/node.spec | 104 | ||||
-rwxr-xr-x | tools/rpm/rpmbuild.sh | 44 |
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 |