[nodejs/f18] minor bugfixes to RPM magic

T.C. Hollingsworth patches at fedoraproject.org
Tue Jan 22 20:46:48 UTC 2013


commit 4e5a2f6e6700fb6007c20f36d750099da9f7c12f
Author: T.C. Hollingsworth <tchollingsworth at gmail.com>
Date:   Tue Jan 22 13:46:01 2013 -0700

    minor bugfixes to RPM magic
    
      - nodejs-symlink-deps: don't create an empty node_modules dir when a module
        has no dependencies
      - nodes-fixdep: support adding deps when none exist
    - use libexecdir for RPM helper scripts (per packaging guidelines discussion)
    - Add the full set of headers usually bundled with node as deps to nodejs-devel.
      This way `npm install` for native modules that assume the stuff bundled with
      node exists will usually "just work".

 macros.nodejs       |    4 ++--
 nodejs-fixdep       |    7 +++----
 nodejs-symlink-deps |   14 +++++++-------
 nodejs.spec         |   17 ++++++++++++++---
 4 files changed, 26 insertions(+), 16 deletions(-)
---
diff --git a/macros.nodejs b/macros.nodejs
index 75393a6..f1762cb 100644
--- a/macros.nodejs
+++ b/macros.nodejs
@@ -14,11 +14,11 @@
 # symlink dependencies so `npm link` works
 # this should be run in every module's %%install section
 # pass the module name if the npm metadata is incorrect (e.g. multiple versions)
-%nodejs_symlink_deps %{_rpmconfigdir}/nodejs-symlink-deps %{nodejs_sitelib}
+%nodejs_symlink_deps %{_libexecdir}/nodejs/nodejs-symlink-deps %{nodejs_sitelib}
 
 # patch package.json to fix a dependency
 # see `man npm-json` for details on writing dependencies for package.json files
 # e.g. `%%nodejs_fixdep frobber` makes any version of frobber do
 #      `%%nodejs_fixdep frobber '>1.0'` requires frobber > 1.0
 #      `%%nodejs_fixdep -r frobber removes the frobber dep
-%nodejs_fixdep %{_rpmconfigdir}/nodejs-fixdep
+%nodejs_fixdep %{_libexecdir}/nodejs/nodejs-fixdep
diff --git a/nodejs-fixdep b/nodejs-fixdep
index 087cdf3..5f1ed40 100755
--- a/nodejs-fixdep
+++ b/nodejs-fixdep
@@ -27,14 +27,13 @@ import os
 import shutil
 import sys
 
-if not os.path.exists('package.json'):
+if not os.path.exists('package.json~'):
     shutil.copy2('package.json', 'package.json~')
 
 md = json.load(open('package.json'))
 
-if not 'dependencies':
-    sys.stderr.write("No dependencies listed in this module's package.json\n")
-    sys.exit(2)
+if not md['dependencies']:
+    md['dependencies'] = {}
 
 if sys.argv[1] == '-r':
     dep = sys.argv[2]
diff --git a/nodejs-symlink-deps b/nodejs-symlink-deps
index 5571af4..f5636bb 100755
--- a/nodejs-symlink-deps
+++ b/nodejs-symlink-deps
@@ -39,14 +39,14 @@ else:
 
 os.chdir(os.path.join(os.environ['RPM_BUILD_ROOT'], sitelib.lstrip('/'), name))
 
-try:
-    os.mkdir('node_modules')
-except OSError:
-    sys.stderr.write('WARNING: node_modules already exists. Make sure you have' +
-                        'no bundled dependencies.\n')
+if 'dependencies' in metadata:
+    try:
+        os.mkdir('node_modules')
+    except OSError:
+        sys.stderr.write('WARNING: node_modules already exists. Make sure you have ' +
+                            'no bundled dependencies.\n')
 
-os.chdir('node_modules')
+    os.chdir('node_modules')
 
-if 'dependencies' in metadata:
     for dep in metadata['dependencies'].iterkeys():
         os.symlink(os.path.join(sitelib, dep), dep)
diff --git a/nodejs.spec b/nodejs.spec
index 050ed86..40f84df 100644
--- a/nodejs.spec
+++ b/nodejs.spec
@@ -1,6 +1,6 @@
 Name: nodejs
 Version: 0.9.5
-Release: 9%{?dist}
+Release: 10%{?dist}
 Summary: JavaScript runtime
 License: MIT and ASL 2.0 and ISC and BSD
 Group: Development/Languages
@@ -52,6 +52,7 @@ real-time applications that run across distributed devices.
 Summary: JavaScript runtime - development headers
 Group: Development/Languages
 Requires: %{name} == %{version}-%{release}
+Requires: libuv-devel http-parser-devel openssl-devel c-ares-devel zlib-devel
 
 %description devel
 Development headers for the Node.js JavaScript runtime.
@@ -131,8 +132,8 @@ install -Dpm0644 %{SOURCE1} %{buildroot}%{_sysconfdir}/rpm/macros.nodejs
 install -Dpm0644 %{SOURCE2} %{buildroot}%{_rpmconfigdir}/fileattrs/nodejs.attr
 install -pm0755 %{SOURCE3} %{buildroot}%{_rpmconfigdir}/nodejs.prov
 install -pm0755 %{SOURCE4} %{buildroot}%{_rpmconfigdir}/nodejs.req
-install -pm0755 %{SOURCE5} %{buildroot}%{_rpmconfigdir}/nodejs-symlink-deps
-install -pm0755 %{SOURCE6} %{buildroot}%{_rpmconfigdir}/nodejs-fixdep
+install -Dpm0755 %{SOURCE5} %{buildroot}%{_libexecdir}/nodejs/nodejs-symlink-deps
+install -pm0755 %{SOURCE6} %{buildroot}%{_libexecdir}/nodejs/nodejs-fixdep
 
 #install documentation
 mkdir -p %{buildroot}%{_defaultdocdir}/%{name}-docs-%{version}/html
@@ -168,6 +169,16 @@ cp -p common.gypi %{buildroot}%{_datadir}/node
 %doc LICENSE
 
 %changelog
+* Tue Jan 22 2013 T.C. Hollingsworth <tchollingsworth at gmail.com> - 0.9.5-10
+- minor bugfixes to RPM magic
+  - nodejs-symlink-deps: don't create an empty node_modules dir when a module
+    has no dependencies
+  - nodes-fixdep: support adding deps when none exist
+- use libexecdir for RPM helper scripts (per packaging guidelines discussion)
+- Add the full set of headers usually bundled with node as deps to nodejs-devel.
+  This way `npm install` for native modules that assume the stuff bundled with
+  node exists will usually "just work".
+
 * Sat Jan 12 2013 T.C. Hollingsworth <tchollingsworth at gmail.com> - 0.9.5-9
 - fix brown paper bag bug in requires generation script
 


More information about the scm-commits mailing list