packages: npm/npm.spec - bare packaging without external deps here
glen
glen at pld-linux.org
Tue Jan 24 22:18:15 CET 2012
Author: glen Date: Tue Jan 24 21:18:15 2012 GMT
Module: packages Tag: HEAD
---- Log message:
- bare packaging without external deps here
---- Files affected:
packages/npm:
npm.spec (1.1 -> 1.2)
---- Diffs:
================================================================
Index: packages/npm/npm.spec
diff -u packages/npm/npm.spec:1.1 packages/npm/npm.spec:1.2
--- packages/npm/npm.spec:1.1 Tue Jan 17 22:34:53 2012
+++ packages/npm/npm.spec Tue Jan 24 22:18:10 2012
@@ -1,12 +1,11 @@
# $Revision$, $Date$
# TODO
-# - rather quickly thrown together, install methology could change later
# - man fixes: npm ERR! Error: ENOENT, no such file or directory '/usr/lib/node_modules/npm/man/man1/'
# - npm-debug.log is created with 777 perms, should respect umask instead
-Summary: A package manager for Node.js
+Summary: A package manager for node.js
Name: npm
Version: 1.0.106
-Release: 0.4
+Release: 0.6
License: MIT License
Group: Development/Libraries
URL: http://npmjs.org/
@@ -14,15 +13,34 @@
# Source0-md5: 44f82461713f911d9a01f194bdc891bd
BuildRequires: nodejs >= 0.4
Requires: nodejs
+Requires: nodejs-abbrev >= 1.0.3
+Requires: nodejs-block-stream
+Requires: nodejs-devel
+Requires: nodejs-fast-list
+Requires: nodejs-fstream
+Requires: nodejs-graceful-fs >= 1.1.4
+Requires: nodejs-inherits
+Requires: nodejs-ini
+Requires: nodejs-minimatch
+Requires: nodejs-mkdirp
+Requires: nodejs-node-uuid >= 1.3.3
+Requires: nodejs-nopt
+Requires: nodejs-proto-list
+Requires: nodejs-read
+Requires: nodejs-request >= 2.9.100
+Requires: nodejs-rimraf >= 1.0.9
+Requires: nodejs-semver >= 1.0.13
+Requires: nodejs-slide-flow-control
+Requires: nodejs-tar
+Requires: nodejs-waf
+Requires: nodejs-which
BuildArch: noarch
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-# FIXME: to to match files section this has this value now
-# TODO: this needs to be %{_libdir}/node
%define nodejs_libdir %{_prefix}/lib/node_modules
%description
-NPM is a package manager for Node.js. You can use it to install and
+NPM is a package manager for node.js. You can use it to install and
publish your node programs. It manages dependencies and does other
cool stuff.
@@ -30,66 +48,44 @@
%setup -qc
mv package/* .
-%build
-./configure \
- prefix=$RPM_BUILD_ROOT%{_prefix} \
- root=$RPM_BUILD_ROOT%{_prefix}/lib/node \
- binroot=$RPM_BUILD_ROOT%{_bindir} \
- manroot=$RPM_BUILD_ROOT%{_mandir} \
+# prefix all manpages with "npm-"
+for dir in man/man*; do
+ cd $dir
+ for page in *; do
+ if [[ $page != npm* ]]; then
+ mv $page npm-$page
+ fi
+ done
+ cd -
+done
%install
rm -rf $RPM_BUILD_ROOT
+install -d $RPM_BUILD_ROOT{%{_bindir},%{nodejs_libdir}/npm}
-node cli.js install -global
-
-# fix shebangs
-%{__sed} -i -e '1s,^#!.*node,#!/usr/bin/node,' \
- $RPM_BUILD_ROOT%{nodejs_libdir}/npm/bin/*.js \
- $RPM_BUILD_ROOT%{nodejs_libdir}/npm/cli.js \
- $RPM_BUILD_ROOT%{nodejs_libdir}/npm/node_modules/semver/bin/semver \
- $RPM_BUILD_ROOT%{nodejs_libdir}/npm/node_modules/which/bin/which \
- $RPM_BUILD_ROOT%{nodejs_libdir}/npm/node_modules/nopt/bin/nopt.js
-
-# move symlinks to be files
-find $RPM_BUILD_ROOT%{_mandir} -type l | while read man; do
- src=$(readlink -f $man)
- rm $man
- mv $src $man
-done
+cp -a bin lib cli.js package.json $RPM_BUILD_ROOT%{nodejs_libdir}/npm
+ln -s %{nodejs_libdir}/npm/bin/npm-cli.js $RPM_BUILD_ROOT%{_bindir}/npm
-# we keep only man format
-rm -rf $RPM_BUILD_ROOT%{nodejs_libdir}/npm/doc/api
-rm -rf $RPM_BUILD_ROOT%{nodejs_libdir}/npm/doc/cli
-rm -rf $RPM_BUILD_ROOT%{nodejs_libdir}/npm/html/doc
-rm -rf $RPM_BUILD_ROOT%{nodejs_libdir}/npm/html/api
-rm -rf $RPM_BUILD_ROOT%{nodejs_libdir}/npm/html
-
-# not everything copied is useful
-rm -rf $RPM_BUILD_ROOT%{nodejs_libdir}/npm/test
-rm -rf $RPM_BUILD_ROOT%{nodejs_libdir}/npm/npmrc
-rm -rf $RPM_BUILD_ROOT%{nodejs_libdir}/npm/package
-rm -rf $RPM_BUILD_ROOT%{nodejs_libdir}/npm/scripts
-rm -rf $RPM_BUILD_ROOT%{nodejs_libdir}/npm/AUTHORS
-rm -rf $RPM_BUILD_ROOT%{nodejs_libdir}/npm/CHANGES
-rm -rf $RPM_BUILD_ROOT%{nodejs_libdir}/npm/LICENSE
-rm -rf $RPM_BUILD_ROOT%{nodejs_libdir}/npm/Makefile
-rm -rf $RPM_BUILD_ROOT%{nodejs_libdir}/npm/README.md
-rm -rf $RPM_BUILD_ROOT%{nodejs_libdir}/npm/deps/basic-bsdtar-*
-rm -rf $RPM_BUILD_ROOT%{nodejs_libdir}/npm/node_modules/.bin
-rm -rf $RPM_BUILD_ROOT%{nodejs_libdir}/npm/configure
-
-rm -rf $RPM_BUILD_ROOT%{nodejs_libdir}/npm/node_modules/request/tests
-rm -rf $RPM_BUILD_ROOT%{nodejs_libdir}/npm/node_modules/ini/test
-rm -rf $RPM_BUILD_ROOT%{nodejs_libdir}/npm/node_modules/minimatch/test
-rm -rf $RPM_BUILD_ROOT%{nodejs_libdir}/npm/node_modules/node-uuid/test
-rm -rf $RPM_BUILD_ROOT%{nodejs_libdir}/npm/node_modules/rimraf/test
-rm -rf $RPM_BUILD_ROOT%{nodejs_libdir}/npm/node_modules/semver/test.js
+# ghosted global config files
+# TODO: package as files to have file permissions set
+install -d $RPM_BUILD_ROOT%{_sysconfdir}
+touch $RPM_BUILD_ROOT%{_sysconfdir}/npmrc
+touch $RPM_BUILD_ROOT%{_sysconfdir}/npmignore
+
+# link node_modules to the right folder so global installation works
+#lrwxrwxrwx 1 root root 24 jaan 21 17:42 /usr/lib/node_modules -> /usr/lib64/../lib/nodejs
+#drwxr-xr-x 2 root root 0 jaan 21 17:42 /usr/lib/nodejs/npm
+# TODO: this is wrong, the link should be in nodejs or nodejs itself patched to use lib/nodejs
+#ln -s %{nodejs_libdir} $RPM_BUILD_ROOT%{_prefix}/lib/node_modules
+
+# install to mandir
+install -d $RPM_BUILD_ROOT%{_mandir}
+cp -pr man/* $RPM_BUILD_ROOT%{_mandir}
-# TODO: package examples to %{_prefix}/src
-rm -rf $RPM_BUILD_ROOT%{nodejs_libdir}/npm/node_modules/nopt/examples
+# FIXME: "npm help" requires this
+ln -s %{_mandir} $RPM_BUILD_ROOT%{nodejs_libdir}/npm/man
# TODO bash-completion separate package
-rm -rf $RPM_BUILD_ROOT%{nodejs_libdir}/npm/lib/utils/completion.sh
%if 0
%post
@@ -102,8 +98,11 @@
%files
%defattr(644,root,root,755)
-%doc AUTHORS CHANGES LICENSE README.md
+%doc AUTHORS LICENSE README.md doc/cli/changelog.md
+%ghost %{_sysconfdir}/npmrc
+%ghost %{_sysconfdir}/npmignore
%attr(755,root,root) %{_bindir}/npm*
+# TODO: top dir to nodejs package
%dir %{nodejs_libdir}
%dir %{nodejs_libdir}/npm
%{nodejs_libdir}/npm/package.json
@@ -117,6 +116,10 @@
%{nodejs_libdir}/npm/lib/*.js
%{nodejs_libdir}/npm/lib/utils
+# man symlink
+%{nodejs_libdir}/npm/man
+
+%if 0
# npm private modules: TODO: use external pkgs
%dir %{nodejs_libdir}/npm/node_modules
%{nodejs_libdir}/npm/node_modules/abbrev
@@ -131,6 +134,7 @@
%{nodejs_libdir}/npm/node_modules/semver
%{nodejs_libdir}/npm/node_modules/slide
%{nodejs_libdir}/npm/node_modules/which
+%endif
%{_mandir}/man1/npm*
%{_mandir}/man3/npm*
@@ -141,5 +145,8 @@
All persons listed below can be reached at <cvs_login>@pld-linux.org
$Log$
+Revision 1.2 2012/01/24 21:18:10 glen
+- bare packaging without external deps here
+
Revision 1.1 2012/01/17 21:34:53 glen
- rather initial .spec
================================================================
---- CVS-web:
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/npm/npm.spec?r1=1.1&r2=1.2&f=u
More information about the pld-cvs-commit
mailing list