source: general/genlib/js68.xml@ 4eef56d

10.0 10.1 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 4eef56d was 4eef56d, checked in by Ken Moffat <ken@…>, 4 years ago

JS68 - copy firefox build size and md5sum, also add the note from firefox about untarring, copied verbatim for the moment.

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

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