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 _______________________________________________ pld-cvs-commit mailing list [email protected] http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit
