source: general/genlib/js68.xml@ 5b0a978e

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

Update notes on building in chroot, for
mozilla packages needing python multiprocessing.

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

  • Property mode set to 100644
File size: 9.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/&JS68-version;esr/source/firefox-&JS68-version;esr.source.tar.xz">
8 <!ENTITY js68-download-ftp " ">
9 <!ENTITY js68-md5sum "d21112f6e2b482e3c3ce431682de5e7d">
10 <!ENTITY js68-size "300 MB">
11 <!ENTITY js68-buildsize "2.8 GB (30 MB installed)"> <!-- Installed size is 62 MB -->
12 <!ENTITY js68-time "7.0 SBU">
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 <!-- JS68 is only used by gjs at the moment -->
38
39 <!-- We'll need to remember to update js68 anytime there is a firefox
40 ESR update. -->
41
42 <bridgehead renderas="sect3">Package Information</bridgehead>
43 <itemizedlist spacing="compact">
44 <listitem>
45 <para>
46 Download (HTTP): <ulink url="&js68-download-http;"/>
47 </para>
48 </listitem>
49 <listitem>
50 <para>
51 Download (FTP): <ulink url="&js68-download-ftp;"/>
52 </para>
53 </listitem>
54 <listitem>
55 <para>
56 Download MD5 sum: &js68-md5sum;
57 </para>
58 </listitem>
59 <listitem>
60 <para>
61 Download size: &js68-size;
62 </para>
63 </listitem>
64 <listitem>
65 <para>
66 Estimated disk space required: &js68-buildsize;
67 </para>
68 </listitem>
69 <listitem>
70 <para>
71 Estimated build time: &js68-time;
72 </para>
73 </listitem>
74 </itemizedlist>
75
76 <!--
77 <bridgehead renderas="sect3">Additional Downloads</bridgehead>
78 <itemizedlist spacing="compact">
79 <listitem>
80 <para>
81 Required patch:
82 <ulink url="&patch-root;/js68-&JS68-version;-python_3-1.patch"/>
83 </para>
84 </listitem>
85 </itemizedlist>
86 -->
87
88 <bridgehead renderas="sect3">JS68 Dependencies</bridgehead>
89
90 <bridgehead renderas="sect4">Required</bridgehead>
91 <para role="required">
92 <xref linkend="autoconf213"/>,
93 <xref linkend="icu"/>,
94 <xref linkend="python2"/>,
95 <xref linkend="which"/>,
96 <!--<xref linkend="yasm"/>,--> and
97 <xref linkend="zip"/>
98 </para>
99
100 <bridgehead renderas="sect4">Optional</bridgehead>
101 <para role="optional">
102 <xref linkend="llvm"/> (with <application>Clang</application>) and
103 <xref linkend="doxygen"/>
104 </para>
105
106 <para condition="html" role="usernotes">
107 User Notes: <ulink url="&blfs-wiki;/js68"/>
108 </para>
109 </sect2>
110
111 <sect2 role="installation">
112 <title>Installation of JS</title>
113
114 <caution>
115 <para>
116 If you are upgrading JS68 from a previously installed old version,
117 save all work and exit your GNOME Session if you have one running.
118 Replacing the JS68 binary will cause the GNOME Shell to crash and
119 return you to your display manager or TTY. After installing the new
120 version, reinstall <xref linkend="gjs"/>. Polkit is unaffected.
121 </para>
122 </caution>
123
124 <note>
125 <para>
126 Unlike most other packages in BLFS, the instructions below require you
127 to untar <filename>firefox-&JS68-version;esr.tar.xz</filename> and
128 change into the <filename>firefox-&JS68-version;</filename> folder.
129 </para>
130 </note>
131
132 <!--
133 <para>
134 First, apply a patch so we can run the shipped build scripts with
135 Python 3, instead of the EOL'ed Python 2:
136 </para>
137
138<screen><userinput remap="pre">patch -Np1 -i ../js68-&JS68-version;-python_3-1.patch</userinput></screen>
139 -->
140 <para>
141 Install <application>JS</application> by running the following
142 commands:
143 </para>
144
145<!-- &shell-env;-->
146
147 <note>
148 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
149 href="../../xincludes/mozshm.xml"/>
150
151 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
152 href="../../xincludes/mozconfigure.xml"/>
153 </note>
154
155
156<screen><userinput>sed '21,+4d' -i js/moz.configure &amp;&amp;
157
158mkdir obj &amp;&amp;
159cd obj &amp;&amp;
160
161CC=gcc CXX=g++ LLVM_OBJDUMP=/bin/false \
162../js/src/configure --prefix=/usr \
163 --with-intl-api \
164 --with-system-zlib \
165 --with-system-icu \
166 --disable-jemalloc \
167 --disable-debug-symbols \
168 --enable-readline \
169 --enable-unaligned-private-values &amp;&amp;
170make</userinput></screen>
171
172 <para>
173 This package does not come with a working test suite.
174 </para>
175
176 <para>
177 Now, as the <systemitem class="username">root</systemitem> user:
178 </para>
179
180<screen role="root"><userinput>make install &amp;&amp;
181rm -v /usr/lib/libjs_static.ajs</userinput></screen>
182
183 </sect2>
184
185 <sect2 role="commands">
186 <title>Command Explanations</title>
187
188 <para>
189 <command>sed '21,+4d' js/moz.configure</command>: The building system
190 searches for <command>rustc</command> and <command>cargo</command> but
191 doesn't actually use them. 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 building system searches
203 for <command>llvm-objdump</command> but doesn't actually use it.
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 libriares. 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 and libjs_static.ajs <!-- The AJS file doesn't
258 conflict with the one from js52 like originally thought -->
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.