source: general/genlib/nodejs.xml@ f2953794

trunk
Last change on this file since f2953794 was f2953794, checked in by Bruce Dubbs <bdubbs@…>, 2 weeks ago

Update to node-20.17.0.

  • Property mode set to 100644
File size: 8.9 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
7 <!ENTITY nodejs-download-http "https://nodejs.org/dist/v&nodejs-version;/node-v&nodejs-version;.tar.xz">
8 <!ENTITY nodejs-download-ftp " ">
9 <!ENTITY nodejs-md5sum "7df3531c623bd9c63ddbfd61f3eca8a7">
10 <!ENTITY nodejs-size "40 MB">
11 <!ENTITY nodejs-buildsize "975 MB (add 67 MB for tests)">
12 <!ENTITY nodejs-time "12 SBU (add 2.5 SBU for tests: both using parallelism=8 and 8 CPUs online, parts of the tests will use all online CPUs)">
13]>
14
15<sect1 id="nodejs" xreflabel="nodejs-&nodejs-version;">
16 <?dbhtml filename="nodejs.html"?>
17
18
19 <title>Node.js-&nodejs-version;</title>
20
21 <indexterm zone="nodejs">
22 <primary sortas="a-nodejs">nodejs</primary>
23 </indexterm>
24
25 <sect2 role="package">
26 <title>Introduction to Node.js</title>
27
28 <para>
29 <application>Node.js</application> is a
30 <application>JavaScript</application> runtime built on
31 <application>Chrome's</application> V8 JavaScript engine.
32 </para>
33
34 &lfs122_checked;
35
36 <bridgehead renderas="sect3">Package Information</bridgehead>
37 <itemizedlist spacing="compact">
38 <listitem>
39 <para>
40 Download (HTTP): <ulink url="&nodejs-download-http;"/>
41 </para>
42 </listitem>
43 <listitem>
44 <para>
45 Download (FTP): <ulink url="&nodejs-download-ftp;"/>
46 </para>
47 </listitem>
48 <listitem>
49 <para>
50 Download MD5 sum: &nodejs-md5sum;
51 </para>
52 </listitem>
53 <listitem>
54 <para>
55 Download size: &nodejs-size;
56 </para>
57 </listitem>
58 <listitem>
59 <para>
60 Estimated disk space required: &nodejs-buildsize;
61 </para>
62 </listitem>
63 <listitem>
64 <para>
65 Estimated build time: &nodejs-time;
66 </para>
67 </listitem>
68 </itemizedlist>
69
70<!--
71 <bridgehead renderas="sect3">Additional Downloads</bridgehead>
72 <itemizedlist spacing="compact">
73 <listitem>
74 <para>
75 Required patch:
76 <ulink url="&patch-root;/node-v&nodejs-version;-icu_69-1.patch"/>
77 </para>
78 </listitem>
79 </itemizedlist>
80-->
81
82 <bridgehead renderas="sect3">Node.js Dependencies</bridgehead>
83
84 <bridgehead renderas="sect4">Required</bridgehead>
85 <para role="required">
86 <xref linkend="which"/>
87 </para>
88
89 <bridgehead renderas="sect4">Recommended</bridgehead>
90 <para role="recommended">
91 <xref linkend="brotli"/>,
92 <xref linkend="c-ares"/>,
93 <xref linkend="icu"/>,
94 <xref linkend="libuv"/>, and
95 <xref linkend="nghttp2"/>
96 </para>
97
98 <bridgehead renderas="sect4">Optional</bridgehead>
99 <para role="optional">
100 <ulink url="https://github.com/nodejs/http-parser">http-parser</ulink> and
101 <ulink url="https://www.npmjs.com/">npm</ulink> (an internal copy of
102 <command>npm</command> will be installed if not present)
103 </para>
104
105 &test-use-internet;
106
107 </sect2>
108
109 <sect2 role="installation">
110 <title>Installation of Node.js</title>
111
112<!--
113 <para>
114 If Python-3.12 is installed, fix the <command>configure</command> script:
115 </para>
116
117<screen><userinput>sed -e '/python3.11/i command -v python3.12 >/dev/null &amp;&amp; exec python3.12 "$0" "$@"' \
118 -e '/3, 11/s/\(.3, 11.\)/(3, 12), \1/' \
119 -i configure</userinput></screen>
120-->
121
122 <para>
123 Build <application>Node.js</application> by running the following
124 commands:
125 </para>
126
127<screen><userinput>./configure --prefix=/usr \
128 --shared-brotli \
129 --shared-cares \
130 --shared-libuv \
131 --shared-openssl \
132 --shared-nghttp2 \
133 --shared-zlib \
134 --with-intl=system-icu &amp;&amp;
135make</userinput></screen>
136
137 <para>
138 To test the results, issue: <command>make test-only</command>.
139 Out of pver 5000 tests, 26 in the 'parallel' test suite are known to fail.
140<!--
141Failed tests:
142node-v20.17.0/test/parallel/test-https-client-checkServerIdentity.js
143node-v20.17.0/test/parallel/test-https-strict.js
144node-v20.17.0/test/parallel/test-net-socket-connect-without-cb.js
145node-v20.17.0/test/parallel/test-process-euid-egid.js
146node-v20.17.0/test/parallel/test-process-initgroups.js
147node-v20.17.0/test/parallel/test-process-setgroups.js
148node-v20.17.0/test/parallel/test-process-uid-gid.js
149- -expose-internals node-v20.17.0/test/parallel/test-tcp-wrap-listen.js
150node-v20.17.0/test/parallel/test-tls-alert-handling.js
151node-v20.17.0/test/parallel/test-tls-cert-regression.js
152node-v20.17.0/test/parallel/test-tls-client-auth.js
153node-v20.17.0/test/parallel/test-tls-client-getephemeralkeyinfo.js
154node-v20.17.0/test/parallel/test-tls-client-mindhsize.js
155node-v20.17.0/test/parallel/test-tls-client-renegotiation-13.js
156node-v20.17.0/test/parallel/test-tls-client-verify.js
157- -no-warnings node-v20.17.0/test/parallel/test-tls-dhe.js
158node-v20.17.0/test/parallel/test-tls-getcipher.js
159node-v20.17.0/test/parallel/test-tls-junk-server.js
160node-v20.17.0/test/parallel/test-tls-multiple-cas-as-string.js
161node-v20.17.0/test/parallel/test-tls-multi-key.js
162node-v20.17.0/test/parallel/test-tls-peer-certificate-encoding.js
163node-v20.17.0/test/parallel/test-tls-sni-server-client.js
164node-v20.17.0/test/parallel/test-tls-set-ciphers.js
165node-v20.17.0/test/parallel/test-tls-sni-option.js
166node-v20.17.0/test/parallel/test-tls-server-verify.js
167node-v20.17.0/test/parallel/test-tls-junk-closes-server.js
168-->
169 </para>
170
171 <para>
172 Now, as the <systemitem class="username">root</systemitem> user:
173 </para>
174
175<screen role="root"><userinput>make install &amp;&amp;
176ln -sf node /usr/share/doc/node-&nodejs-version;</userinput></screen>
177 </sect2>
178
179 <sect2 role="commands">
180 <title>Command Explanations</title>
181
182 <para>
183 <parameter>--with-intl=system-icu</parameter>: use the system version
184 of <application>icu</application>. Other values are
185 <option>full-icu</option> (to build a local, full
186 <application>icu</application> library) and <option>small-icu</option>
187 (to build a local, minimal <application>icu</application> library).
188 </para>
189
190 <para>
191 <parameter>--shared-{brotli,cares,libuv,nghttp2,openssl,zlib}</parameter>:
192 use the system installed libraries instead of local copies.
193 </para>
194
195 <para>
196 <option>--without-npm</option>: do not build
197 <application>npm</application> (use if you'd like to build a separate
198 <application>npm</application> later).
199 </para>
200
201 <para>
202 <option>--shared-http-parser</option>: use the system
203 installed library instead of a local copy.
204 </para>
205
206 </sect2>
207
208 <sect2 role="content">
209 <title>Contents</title>
210
211 <segmentedlist>
212 <segtitle>Installed Programs</segtitle>
213 <segtitle>Installed Library</segtitle>
214 <segtitle>Installed Directories</segtitle>
215
216 <seglistitem>
217 <seg>
218 corepack, node, npm, and npx
219 </seg>
220 <seg>
221 None
222 </seg>
223 <seg>
224 /usr/include/node,
225 /usr/lib/node_modules/{corepack,npm},
226 /usr/share/doc/{node,node-&nodejs-version;}, and
227 /usr/share/systemtap/tapset
228 </seg>
229 </seglistitem>
230 </segmentedlist>
231
232 <variablelist>
233 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
234 <?dbfo list-presentation="list"?>
235 <?dbhtml list-presentation="table"?>
236
237 <varlistentry id="corepack">
238 <term><command>corepack</command></term>
239 <listitem>
240 <para>
241 is an experimental tool to help with managing versions of package
242 managers.
243 </para>
244 <indexterm zone="nodejs corepack">
245 <primary sortas="b-corepack">corepack</primary>
246 </indexterm>
247 </listitem>
248 </varlistentry>
249
250 <varlistentry id="node">
251 <term><command>node</command></term>
252 <listitem>
253 <para>
254 is the server-side JavaScript runtime
255 </para>
256 <indexterm zone="nodejs node">
257 <primary sortas="b-node">node</primary>
258 </indexterm>
259 </listitem>
260 </varlistentry>
261
262 <varlistentry id="npm">
263 <term><command>npm</command></term>
264 <listitem>
265 <para>
266 is the <application>Node.js</application> package manager
267 </para>
268 <indexterm zone="nodejs npm">
269 <primary sortas="b-npm">npm</primary>
270 </indexterm>
271 </listitem>
272 </varlistentry>
273
274 <varlistentry>
275 <term>
276 <filename class="directory">/usr/lib/node_modules/npm/</filename>
277 </term>
278 <listitem>
279 <para>
280 is the installation root for Node.js executables and libraries
281 </para>
282 </listitem>
283 </varlistentry>
284
285 </variablelist>
286
287 </sect2>
288
289</sect1>
Note: See TracBrowser for help on using the repository browser.