Message ID | 20211208202838.752542-32-philip@philipmcgrath.com |
---|---|
State | Accepted |
Headers | show |
Series | guix: node-build-system: Support compiling add-ons with node-gyp. | expand |
Philip McGrath <philip@philipmcgrath.com> writes: > * gnu/packages/node-xyz.scm (node-bindings): New variable. > --- > gnu/packages/node-xyz.scm | 30 ++++++++++++++++++++++++++++++ > 1 file changed, 30 insertions(+) > > diff --git a/gnu/packages/node-xyz.scm b/gnu/packages/node-xyz.scm > index d23326fa25..196fa55a39 100644 > --- a/gnu/packages/node-xyz.scm > +++ b/gnu/packages/node-xyz.scm > @@ -826,3 +826,33 @@ (define-public node-file-uri-to-path > (description "Accepts a @code{file:} URI and returns a regular file path > suitable for use with the @code{fs} module functions.") > (license license:expat))) > + > +(define-public node-bindings > + (package > + (name "node-bindings") > + (version "1.5.0") > + (source > + (origin > + (method git-fetch) > + (uri (git-reference > + (url "https://github.com/TooTallNate/node-bindings") > + (commit version))) > + (file-name (git-file-name name version)) > + (sha256 > + (base32 "100gp6kpjvd4j1dqnp0sbjr1hqx5mz7r61q9qy527jyhk9mj47wk")))) > + (inputs > + `(("node-file-uri-to-path" ,node-file-uri-to-path))) > + (build-system node-build-system) > + (arguments > + ;; there are no tests > + `(#:tests? #f)) > + (home-page "https://github.com/TooTallNate/node-bindings") > + (synopsis "Help for loading your native module's @code{.node} file") > + (description "Throughout the course of Node's native addon history, addons > +have ended up being compiled in a variety of different places, depending on > +which build tool and which version of @code{node} was used. To make matters > +worse, now the @code{gyp} build tool can produce either a @code{Release} or > +@code{Debug} build, each being built into different locations. This module > +checks @emph{all} the possible locations that a native addon would be built > +at, and returns the first one that loads successfully.") I see the upstream description is prefaced with: --8<---------------cut here---------------start------------->8--- This is a helper module for authors of Node.js native addon modules. It is basically the "swiss army knife" of require()ing your native module's .node file. --8<---------------cut here---------------end--------------->8--- I'd suggest to just use this as the description, I'm not sure we need to mention node's addon build system history here. Otherwise LGTM! Thanks, Pierre
On 12/12/21 10:57, Pierre Langlois wrote: >> + (home-page "https://github.com/TooTallNate/node-bindings") >> + (synopsis "Help for loading your native module's @code{.node} file") >> + (description "Throughout the course of Node's native addon history, addons >> +have ended up being compiled in a variety of different places, depending on >> +which build tool and which version of @code{node} was used. To make matters >> +worse, now the @code{gyp} build tool can produce either a @code{Release} or >> +@code{Debug} build, each being built into different locations. This module >> +checks @emph{all} the possible locations that a native addon would be built >> +at, and returns the first one that loads successfully.") > > I see the upstream description is prefaced with: > > --8<---------------cut here---------------start------------->8--- > This is a helper module for authors of Node.js native addon modules. It > is basically the "swiss army knife" of require()ing your native module's > .node file. > --8<---------------cut here---------------end--------------->8--- > > I'd suggest to just use this as the description, I'm not sure we need to > mention node's addon build system history here. Yes, I like that better. -Philip
diff --git a/gnu/packages/node-xyz.scm b/gnu/packages/node-xyz.scm index d23326fa25..196fa55a39 100644 --- a/gnu/packages/node-xyz.scm +++ b/gnu/packages/node-xyz.scm @@ -826,3 +826,33 @@ (define-public node-file-uri-to-path (description "Accepts a @code{file:} URI and returns a regular file path suitable for use with the @code{fs} module functions.") (license license:expat))) + +(define-public node-bindings + (package + (name "node-bindings") + (version "1.5.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/TooTallNate/node-bindings") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "100gp6kpjvd4j1dqnp0sbjr1hqx5mz7r61q9qy527jyhk9mj47wk")))) + (inputs + `(("node-file-uri-to-path" ,node-file-uri-to-path))) + (build-system node-build-system) + (arguments + ;; there are no tests + `(#:tests? #f)) + (home-page "https://github.com/TooTallNate/node-bindings") + (synopsis "Help for loading your native module's @code{.node} file") + (description "Throughout the course of Node's native addon history, addons +have ended up being compiled in a variety of different places, depending on +which build tool and which version of @code{node} was used. To make matters +worse, now the @code{gyp} build tool can produce either a @code{Release} or +@code{Debug} build, each being built into different locations. This module +checks @emph{all} the possible locations that a native addon would be built +at, and returns the first one that loads successfully.") + (license license:expat)))