source: general/genlib/js68.xml@ cfc1f98

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 cfc1f98 was cfc1f98, checked in by Pierre Labastie <pieere@…>, 14 months ago

cups-filters-1.28.1
mercurial-5.5.1
php-7.4.10
gspell-1.8.4
amtk-5.1.2
gtk+-3.24.23
at-spi2-core-2.36.1
gnutls-3.6.15
xfsprogs-5.8.0
js-68.12.0

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