mirror of https://github.com/nodejs/node.git
build: add rpmbuild .spec file
Add a .spec file and a rpmbuild(1) driver script. Useful for people on RHEL-based systems that want to compile and package from source. PR-URL: https://github.com/node-forward/node/pull/10 Reviewed-By: Rod Vagg <rod@vagg.org>pull/1/head
parent
e13663d647
commit
bf23328a9c
|
@ -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.
|
|
@ -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
|
Loading…
Reference in New Issue