source: general/genlib/js68.xml@ 32c8c96

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 9.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 32c8c96 was 32c8c96, checked in by Xi Ruoyao <xry111@…>, 4 years ago

js68: add the page but not to render it for now

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

  • Property mode set to 100644
File size: 8.3 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 "http://ftp.gnome.org/pub/gnome/teams/releng/tarballs-needing-help/mozjs/mozjs-&JS68-version;.tar.bz2">
8 <!ENTITY js68-download-ftp "ftp://ftp.gnome.org/pub/gnome/teams/releng/tarballs-needing-help/mozjs/mozjs-&JS68-version;.tar.bz2">
9 <!ENTITY js68-md5sum "cb1ab1983f72d45c737069747c088aa5">
10 <!ENTITY js68-size "69 MB">
11 <!ENTITY js68-buildsize "932 MB"> <!-- Installed size is 62 MB -->
12 <!ENTITY js68-time "6.6 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.
35 </para>
36
37 <bridgehead renderas="sect3">Package Information</bridgehead>
38 <itemizedlist spacing="compact">
39 <listitem>
40 <para>
41 Download (HTTP): <ulink url="&js68-download-http;"/>
42 </para>
43 </listitem>
44 <listitem>
45 <para>
46 Download (FTP): <ulink url="&js68-download-ftp;"/>
47 </para>
48 </listitem>
49 <listitem>
50 <para>
51 Download MD5 sum: &js68-md5sum;
52 </para>
53 </listitem>
54 <listitem>
55 <para>
56 Download size: &js68-size;
57 </para>
58 </listitem>
59 <listitem>
60 <para>
61 Estimated disk space required: &js68-buildsize;
62 </para>
63 </listitem>
64 <listitem>
65 <para>
66 Estimated build time: &js68-time;
67 </para>
68 </listitem>
69 </itemizedlist>
70
71 <bridgehead renderas="sect3">Additional Downloads</bridgehead>
72 <itemizedlist spacing="compact">
73 <listitem>
74 <para>
75 Required patch:
76 <ulink url="&patch-root;/js68-&JS68-version;-python_3-1.patch"/>
77 </para>
78 </listitem>
79 </itemizedlist>
80
81 <bridgehead renderas="sect3">JS68 Dependencies</bridgehead>
82
83 <bridgehead renderas="sect4">Required</bridgehead>
84 <para role="required">
85 <xref linkend="autoconf213"/>,
86 <xref linkend="icu"/>,
87 <xref linkend="which"/>,
88 <!--<xref linkend="yasm"/>,--> and
89 <xref linkend="zip"/>
90 </para>
91
92 <bridgehead renderas="sect4">Optional</bridgehead>
93 <para role="optional">
94 <xref linkend="llvm"/> (with <application>Clang</application>) and
95 <xref linkend="doxygen"/>
96 </para>
97
98 <para condition="html" role="usernotes">
99 User Notes: <ulink url="&blfs-wiki;/js68"/>
100 </para>
101 </sect2>
102
103 <sect2 role="installation">
104 <title>Installation of JS</title>
105
106 <caution>
107 <para>If you are upgrading JS68 from a previously installed old version,
108 save all work and exit your GNOME Session if you have one running.
109 Replacing the JS68 binary will cause the GNOME Shell to crash and return
110 you to your display manager or TTY. After installing the new version,
111 reinstall <xref linkend="gjs"/>. Polkit is unaffected.</para>
112 </caution>
113
114 <para>
115 First, apply a patch so we can run the shipped build scripts with
116 Python 3, instead of the EOL'ed Python 2:
117 </para>
118
119<screen><userinput remap="pre">patch -Np1 -i ../js68-&JS68-version;-python_3-1.patch</userinput></screen>
120
121 <para>
122 Install <application>JS</application> by running the following
123 commands:
124 </para>
125
126 &shell-env;
127
128<screen><userinput>sed '21,+4d' -i js/moz.configure &amp;&amp;
129
130mkdir mozjs-build &amp;&amp;
131cd mozjs-build &amp;&amp;
132
133CC=gcc CXX=g++ LLVM_OBJDUMP=/bin/false \
134../js/src/configure --prefix=/usr \
135 --with-intl-api \
136 --with-system-zlib \
137 --with-system-icu \
138 --disable-jemalloc \
139 --disable-debug-symbols \
140 --enable-readline \
141 --enable-unaligned-private-values&amp;&amp;
142make</userinput></screen>
143
144 <para>
145 This package does not come with a working test suite.
146 </para>
147
148 <para>
149 Now, as the <systemitem class="username">root</systemitem> user:
150 </para>
151
152<screen role="root"><userinput>make install</userinput></screen>
153
154 </sect2>
155
156 <sect2 role="commands">
157 <title>Command Explanations</title>
158
159 <para>
160 <command>sed '21,+4d' js/moz.configure</command>: The building system
161 searches for <command>rustc</command> and <command>cargo</command> but
162 doesn't actually use them. Remove the reference to them so we can
163 build JS68 without <xref role="nodep" linkend="rust"/> installed.
164 </para>
165
166 <para>
167 <envar>CC=gcc CXX=g++</envar>: Upstream now prefers
168 <application>clang</application>, override it like other Mozilla
169 packages in BLFS book.
170 </para>
171
172 <para>
173 <envar>LLVM_OBJDUMP=/bin/false</envar>: The building system searches
174 for <command>llvm-objdump</command> but doesn't actually use it.
175 Override it so we can build JS68 without
176 <xref role="nodep" linkend="llvm"/> installed.
177 </para>
178
179 <para>
180 <parameter>--with-*</parameter>: These parameters allow the build system
181 to use system versions of the above libriares. These are required for
182 stability.
183 </para>
184
185 <para>
186 <parameter>--enable-readline</parameter>: This switch enables Readline
187 support in the JS shell.
188 </para>
189
190 <para>
191 <parameter>--disable-jemalloc</parameter>: This switch disables the
192 internal memory allocator used in JS68. jemalloc causes a conflict with glibc.
193 </para>
194
195 <para>
196 <parameter>--disable-debug-symbols</parameter>: Don't generate debug
197 symbols since they are very large and most users won't need it. Remove
198 it if you want to debug JS68.
199 </para>
200
201 <para>
202 <parameter>--enable-unaligned-private-values</parameter>: This switch
203 allows the code using JS68 not to align all pointers in the same way
204 JS68 does. <xref linkend="gjs"/> requires JS68 to be built with this
205 switch.
206 </para>
207
208 </sect2>
209
210 <sect2 role="content">
211 <title>Contents</title>
212
213 <segmentedlist>
214 <segtitle>Installed Programs</segtitle>
215 <segtitle>Installed Libraries</segtitle>
216 <segtitle>Installed Directories</segtitle>
217
218 <seglistitem>
219 <seg>
220 js68 and js68-config
221 </seg>
222 <seg>
223 libmozjs-68.so and libjs_static.ajs <!-- The AJS file doesn't
224 conflict with the one from js52 like originally thought -->
225 </seg>
226 <seg>
227 /usr/include/mozjs-68
228 </seg>
229 </seglistitem>
230 </segmentedlist>
231
232 <variablelist>
233 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
234 <?dbfo list-presentation="list"?>
235 <?dbhtml list-presentation="table"?>
236
237 <varlistentry id="js6-js68">
238 <term><command>js68</command></term>
239 <listitem>
240 <para>
241 provides a command line interface to the
242 <application>JavaScript</application> engine.
243 </para>
244 <indexterm zone="js68 js68">
245 <primary sortas="b-js68">js68</primary>
246 </indexterm>
247 </listitem>
248 </varlistentry>
249
250 <varlistentry id="js68-config">
251 <term><command>js68-config</command></term>
252 <listitem>
253 <para>
254 is used to find the JS compiler and linker flags.
255 </para>
256 <indexterm zone="js68 js68-config">
257 <primary sortas="b-js68-config">js68-config</primary>
258 </indexterm>
259 </listitem>
260 </varlistentry>
261
262 <varlistentry id="libmozjs-68">
263 <term><filename class="libraryfile">libmozjs-68.so</filename></term>
264 <listitem>
265 <para>
266 contains the Mozilla JavaScript API functions.
267 </para>
268 <indexterm zone="js68 libmozjs-68">
269 <primary sortas="c-libmozjs68">libmozjs-68.so</primary>
270 </indexterm>
271 </listitem>
272 </varlistentry>
273 </variablelist>
274 </sect2>
275</sect1>
Note: See TracBrowser for help on using the repository browser.