source: general/genlib/js68.xml@ b1fb2a9

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 b1fb2a9 was 7af46e6, checked in by Douglas R. Reno <renodr@…>, 4 years ago

Add mozjs-68.6.0
Update to gcr-3.36.0
Update to gnome-desktop-3.36.0
Update to gjs-1.64.1

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

  • Property mode set to 100644
File size: 8.9 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<screen><userinput>sed '21,+4d' -i js/moz.configure &amp;&amp;
148
149mkdir obj &amp;&amp;
150cd obj &amp;&amp;
151
152CC=gcc CXX=g++ LLVM_OBJDUMP=/bin/false \
153../js/src/configure --prefix=/usr \
154 --with-intl-api \
155 --with-system-zlib \
156 --with-system-icu \
157 --disable-jemalloc \
158 --disable-debug-symbols \
159 --enable-readline \
160 --enable-unaligned-private-values &amp;&amp;
161make</userinput></screen>
162
163 <para>
164 This package does not come with a working test suite.
165 </para>
166
167 <para>
168 Now, as the <systemitem class="username">root</systemitem> user:
169 </para>
170
171<screen role="root"><userinput>make install &amp;&amp;
172rm -v /usr/lib/libjs_static.ajs</userinput></screen>
173
174 </sect2>
175
176 <sect2 role="commands">
177 <title>Command Explanations</title>
178
179 <para>
180 <command>sed '21,+4d' js/moz.configure</command>: The building system
181 searches for <command>rustc</command> and <command>cargo</command> but
182 doesn't actually use them. Remove the reference to them so we can
183 build JS68 without <xref role="nodep" linkend="rust"/> installed.
184 </para>
185
186 <para>
187 <envar>CC=gcc CXX=g++</envar>: Upstream now prefers
188 <application>clang</application>, override it like other Mozilla
189 packages in BLFS book.
190 </para>
191
192 <para>
193 <envar>LLVM_OBJDUMP=/bin/false</envar>: The building system searches
194 for <command>llvm-objdump</command> but doesn't actually use it.
195 Override it so we can build JS68 without
196 <xref role="nodep" linkend="llvm"/> installed.
197 </para>
198
199 <para>
200 <parameter>--with-*</parameter>: These parameters allow the build system
201 to use system versions of the above libriares. These are required for
202 stability.
203 </para>
204
205 <para>
206 <parameter>--enable-readline</parameter>: This switch enables Readline
207 support in the JS shell.
208 </para>
209
210 <para>
211 <parameter>--disable-jemalloc</parameter>: This switch disables the
212 internal memory allocator used in JS68. jemalloc causes a conflict with glibc.
213 </para>
214
215 <para>
216 <parameter>--disable-debug-symbols</parameter>: Don't generate debug
217 symbols since they are very large and most users won't need it. Remove
218 it if you want to debug JS68.
219 </para>
220
221 <para>
222 <parameter>--enable-unaligned-private-values</parameter>: This switch
223 allows the code using JS68 not to align all pointers in the same way
224 JS68 does. <xref linkend="gjs"/> requires JS68 to be built with this
225 switch.
226 </para>
227
228 <para>
229 <command>rm -v /usr/lib/libjs_static.ajs</command>: Remove a large
230 static library which is not used by any BLFS package.
231 </para>
232
233 </sect2>
234
235 <sect2 role="content">
236 <title>Contents</title>
237
238 <segmentedlist>
239 <segtitle>Installed Programs</segtitle>
240 <segtitle>Installed Libraries</segtitle>
241 <segtitle>Installed Directories</segtitle>
242
243 <seglistitem>
244 <seg>
245 js68 and js68-config
246 </seg>
247 <seg>
248 libmozjs-68.so and libjs_static.ajs <!-- The AJS file doesn't
249 conflict with the one from js52 like originally thought -->
250 </seg>
251 <seg>
252 /usr/include/mozjs-68
253 </seg>
254 </seglistitem>
255 </segmentedlist>
256
257 <variablelist>
258 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
259 <?dbfo list-presentation="list"?>
260 <?dbhtml list-presentation="table"?>
261
262 <varlistentry id="js6-js68">
263 <term><command>js68</command></term>
264 <listitem>
265 <para>
266 provides a command line interface to the
267 <application>JavaScript</application> engine.
268 </para>
269 <indexterm zone="js68 js68">
270 <primary sortas="b-js68">js68</primary>
271 </indexterm>
272 </listitem>
273 </varlistentry>
274
275 <varlistentry id="js68-config">
276 <term><command>js68-config</command></term>
277 <listitem>
278 <para>
279 is used to find the JS compiler and linker flags.
280 </para>
281 <indexterm zone="js68 js68-config">
282 <primary sortas="b-js68-config">js68-config</primary>
283 </indexterm>
284 </listitem>
285 </varlistentry>
286
287 <varlistentry id="libmozjs-68">
288 <term><filename class="libraryfile">libmozjs-68.so</filename></term>
289 <listitem>
290 <para>
291 contains the Mozilla JavaScript API functions.
292 </para>
293 <indexterm zone="js68 libmozjs-68">
294 <primary sortas="c-libmozjs68">libmozjs-68.so</primary>
295 </indexterm>
296 </listitem>
297 </varlistentry>
298 </variablelist>
299 </sect2>
300</sect1>
Note: See TracBrowser for help on using the repository browser.