source: general/genlib/js68.xml@ 21b1ead

10.0 10.1 11.0 ken/refactor-virt lazarus qt5new trunk xry111/git-date xry111/git-date-for-trunk xry111/git-date-test
Last change on this file since 21b1ead was 21b1ead, checked in by Pierre Labastie <pieere@…>, 15 months ago

libqmi-1.26.2
js-68.11.0
git-2.28.0

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@23430 af4574ff-66df-0310-9fd7-8a98e5e911e0

  • Property mode set to 100644
File size: 9.4 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
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 js68-download-http "&mozilla-http;/firefox/releases/&JS68-version;esr/source/firefox-&JS68-version;esr.source.tar.xz">
8 <!ENTITY js68-download-ftp " ">
9 <!ENTITY js68-md5sum "a8f860f31725d914c02918ff2b2aecf8">
10 <!ENTITY js68-size "306 MB">
11 <!ENTITY js68-buildsize "2.8 GB (30 MB installed after removing 31MB static lib)">
12 <!ENTITY js68-time "2.2 SBU (with parallelism = 4)">
13]>
14
15<sect1 id="js68" xreflabel="js68-&JS68-version;">
16 <?dbhtml filename="js68.html"?>
17
18 <sect1info>
19 <othername>$LastChangedBy$</othername>
20 <date>$Date$</date>
21 </sect1info>
22
23 <title>JS-&JS68-version;</title>
24
25 <indexterm zone="js68">
26 <primary sortas="a-js68">js68</primary>
27 </indexterm>
28
29 <sect2 role="package">
30 <title>Introduction to JS</title>
31
32 <para>
33 <application>JS</application> is Mozilla's JavaScript engine
34 written in C. JS68 is taken from Firefox.
35 </para>
36
37 <bridgehead renderas="sect3">Package Information</bridgehead>
38 <itemizedlist spacing="compact">
39 <listitem>
40 <para>
41 Download (HTTP): <ulink url="&js68-download-http;"/>
42 </para>
43 </listitem>
44 <listitem>
45 <para>
46 Download (FTP): <ulink url="&js68-download-ftp;"/>
47 </para>
48 </listitem>
49 <listitem>
50 <para>
51 Download MD5 sum: &js68-md5sum;
52 </para>
53 </listitem>
54 <listitem>
55 <para>
56 Download size: &js68-size;
57 </para>
58 </listitem>
59 <listitem>
60 <para>
61 Estimated disk space required: &js68-buildsize;
62 </para>
63 </listitem>
64 <listitem>
65 <para>
66 Estimated build time: &js68-time;
67 </para>
68 </listitem>
69 </itemizedlist>
70
71 <bridgehead renderas="sect3">JS68 Dependencies</bridgehead>
72
73 <bridgehead renderas="sect4">Required</bridgehead>
74 <para role="required">
75 <xref linkend="autoconf213"/>,
76 <xref linkend="icu"/>,
77 <xref linkend="python2"/>, and
78 <xref linkend="which"/>
79 </para>
80
81 <bridgehead renderas="sect4">Optional</bridgehead>
82 <para role="optional">
83 <xref linkend="llvm"/> (with <application>Clang</application>),
84 <xref linkend="nasm"/>, and
85 <xref linkend="doxygen"/> (for documentation)
86 </para>
87
88 <para condition="html" role="usernotes">
89 User Notes: <ulink url="&blfs-wiki;/js68"/>
90 </para>
91 </sect2>
92
93 <sect2 role="installation">
94 <title>Installation of JS</title>
95
96 <caution>
97 <para>
98 If you are upgrading JS68 from a previously installed old version,
99 save all work and exit your GNOME Session if you have one running.
100 Replacing the JS68 binary will cause the GNOME Shell to crash and
101 return you to your display manager or TTY. After installing the new
102 version, if GNOME Shell still doesn't work, reinstall
103 <xref linkend="gjs"/>.
104 </para>
105 </caution>
106
107 <note>
108 <para>
109 Unlike most other packages in BLFS, the instructions below require you
110 to untar <filename>firefox-&JS68-version;esr.tar.xz</filename> and
111 change into the <filename>firefox-&JS68-version;</filename> folder.
112 </para>
113
114 <para>
115 Extracting the tarball
116 will reset the permissions of the current directory to 0755 if you
117 have permission to do that. If you do this in a directory where
118 the sticky bit is set, such
119 as <filename class="directory">/tmp</filename> it will end with error
120 messages:
121 </para>
122
123<literallayout>tar: .: Cannot utime: Operation not permitted
124tar: .: Cannot change mode to rwxr-xr-t: Operation not permitted
125tar: Exiting with failure status due to previous errors
126</literallayout>
127
128 <para>
129 This does finish with non-zero status, but it does
130 <emphasis>NOT</emphasis> mean there is a real problem.
131 Do not untar as the <systemitem class="username">root</systemitem> user
132 in a directory where the sticky bit is set - that will unset it.
133 </para>
134
135 </note>
136
137 <para>
138 Install <application>JS</application> by running the following
139 commands:
140 </para>
141
142 <note>
143 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
144 href="../../xincludes/mozshm.xml"/>
145
146 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
147 href="../../xincludes/mozconfigure.xml"/>
148 </note>
149
150
151<screen><userinput>sed '21,+4d' -i js/moz.configure &amp;&amp;
152
153mkdir obj &amp;&amp;
154cd obj &amp;&amp;
155
156CC=gcc CXX=g++ LLVM_OBJDUMP=/bin/false \
157../js/src/configure --prefix=/usr \
158 --with-intl-api \
159 --with-system-zlib \
160 --with-system-icu \
161 --disable-jemalloc \
162 --disable-debug-symbols \
163 --enable-readline \
164 --enable-unaligned-private-values &amp;&amp;
165make</userinput></screen>
166
167 <para>
168 This package does not come with a working test suite.
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;
176rm -v /usr/lib/libjs_static.ajs</userinput></screen>
177
178 </sect2>
179
180 <sect2 role="commands">
181 <title>Command Explanations</title>
182
183 <para>
184 <command>sed '21,+4d' js/moz.configure</command>: Firefox building
185 system searches for <command>rustc</command> and
186 <command>cargo</command>.
187 Since we are building the standalone JS engine instead of the entire
188 browser, they are not actually used.
189 Remove the reference to them so we can
190 build JS68 without <xref role="nodep" linkend="rust"/> installed.
191 </para>
192
193 <para>
194 <envar>CC=gcc CXX=g++</envar>: Upstream now prefers
195 <application>clang</application>, override it like other Mozilla
196 packages in BLFS book.
197 </para>
198
199 <para>
200 <envar>LLVM_OBJDUMP=/bin/false</envar>: The firefox build system
201 searches for <command>llvm-objdump</command>.
202 Since we are building the standalone JS engine instead of the entire
203 browser, they are not actually used.
204 Override it so we can build JS68 without
205 <xref role="nodep" linkend="llvm"/> installed.
206 </para>
207
208 <para>
209 <parameter>--with-*</parameter>: These parameters allow the build system
210 to use system versions of the above libraries. These are required for
211 stability.
212 </para>
213
214 <para>
215 <parameter>--enable-readline</parameter>: This switch enables Readline
216 support in the JS shell.
217 </para>
218
219 <para>
220 <parameter>--disable-jemalloc</parameter>: This switch disables the
221 internal memory allocator used in JS68. jemalloc causes a conflict with glibc.
222 </para>
223
224 <para>
225 <parameter>--disable-debug-symbols</parameter>: Don't generate debug
226 symbols since they are very large and most users won't need it. Remove
227 it if you want to debug JS68.
228 </para>
229
230 <para>
231 <parameter>--enable-unaligned-private-values</parameter>: This switch
232 allows the code using JS68 not to align all pointers in the same way
233 JS68 does. <xref linkend="gjs"/> requires JS68 to be built with this
234 switch.
235 </para>
236
237 <para>
238 <command>rm -v /usr/lib/libjs_static.ajs</command>: Remove a large
239 static library which is not used by any BLFS package.
240 </para>
241
242 </sect2>
243
244 <sect2 role="content">
245 <title>Contents</title>
246
247 <segmentedlist>
248 <segtitle>Installed Programs</segtitle>
249 <segtitle>Installed Libraries</segtitle>
250 <segtitle>Installed Directories</segtitle>
251
252 <seglistitem>
253 <seg>
254 js68 and js68-config
255 </seg>
256 <seg>
257 libmozjs-68.so
258 </seg>
259 <seg>
260 /usr/include/mozjs-68
261 </seg>
262 </seglistitem>
263 </segmentedlist>
264
265 <variablelist>
266 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
267 <?dbfo list-presentation="list"?>
268 <?dbhtml list-presentation="table"?>
269
270 <varlistentry id="js6-js68">
271 <term><command>js68</command></term>
272 <listitem>
273 <para>
274 provides a command line interface to the
275 <application>JavaScript</application> engine.
276 </para>
277 <indexterm zone="js68 js68">
278 <primary sortas="b-js68">js68</primary>
279 </indexterm>
280 </listitem>
281 </varlistentry>
282
283 <varlistentry id="js68-config">
284 <term><command>js68-config</command></term>
285 <listitem>
286 <para>
287 is used to find the JS compiler and linker flags.
288 </para>
289 <indexterm zone="js68 js68-config">
290 <primary sortas="b-js68-config">js68-config</primary>
291 </indexterm>
292 </listitem>
293 </varlistentry>
294
295 <varlistentry id="libmozjs-68">
296 <term><filename class="libraryfile">libmozjs-68.so</filename></term>
297 <listitem>
298 <para>
299 contains the Mozilla JavaScript API functions.
300 </para>
301 <indexterm zone="js68 libmozjs-68">
302 <primary sortas="c-libmozjs68">libmozjs-68.so</primary>
303 </indexterm>
304 </listitem>
305 </varlistentry>
306 </variablelist>
307 </sect2>
308</sect1>
Note: See TracBrowser for help on using the repository browser.