Philip McGrath <philip@philipmcgrath.com> writes:
* gnu/packages/node-xyz.scm (node-nan): New variable.
---
gnu/packages/node-xyz.scm | 44 +++++++++++++++++++++++++++++++++++++++
1 file changed, 44 insertions(+)
diff --git a/gnu/packages/node-xyz.scm b/gnu/packages/node-xyz.scm
index 3e06413908..ed169c0778 100644
--- a/gnu/packages/node-xyz.scm
+++ b/gnu/packages/node-xyz.scm
@@ -553,3 +553,47 @@ (define-public node-irc
(description "@code{node-irc} is an IRC client library for Node.js.
It has functions for joining, parting, talking, and many other IRC commands.")
(license license:gpl3+)))
+
+(define-public node-nan
+ (package
+ (name "node-nan")
+ (version "2.15.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/nodejs/nan")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "18xslh9va5ld872scrp5y4251ax9s3c6qh0lnl1200lpzbsxy7yd"))))
+ (build-system node-build-system)
+ (arguments
+ `(#:tests?
+ ;; tests need tap and other dependencies
+ #f
Formatting nit, you can write this all in one line:
#:tests? #f ;; Tests need tap an other dependencies.
+ #:absent-dependencies
+ '("bindings"
+ "commander"
+ "glob"
+ "request"
+ "node-gyp" ;; would be needed for tests
+ "tap"
+ "xtend")))
+ (inputs
+ `(("readable-stream" ,node-readable-stream)))
+ (home-page "https://github.com/nodejs/nan")
+ (synopsis "Native Abstractions for Node.js")
+ (description "A header file filled with macro and utility goodness for
+making add-on development for Node.js easier across versions 0.8, 0.10, 0.12,
+1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 and 16.
Given our packages only work with the node what Guix uses, you could
remove the version numbers from the description. Mostly because we
probalby won't think to update this description when future node
releases appear.
+
+Thanks to the crazy changes in V8 (and some in Node core), keeping native
+addons compiling happily across versions, particularly 0.10 to 0.12 to 4.0, is
+a minor nightmare.
I'd remove this sentence, it doesn't make much sense in Guix given we
don't support older versions.