source: archive/js68.xml@ eede1a3

11.0 11.1 11.2 11.3 12.0 12.1 kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts lazarus lxqt plabs/newcss plabs/python-mods python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition trunk upgradedb xry111/intltool xry111/llvm18 xry111/soup3 xry111/test-20220226 xry111/xf86-video-removal
Last change on this file since eede1a3 was 45ab6c7, checked in by Xi Ruoyao <xry111@…>, 3 years ago

more SVN prop clean up

Remove "$LastChanged$" everywhere, and also some unused $Date$

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