source: general/genlib/js68.xml@ d56e7df

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 d56e7df was d56e7df, checked in by Pierre Labastie <pieere@…>, 4 years ago

Format general libraries

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@22828 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>
108 If you are upgrading JS68 from a previously installed old version,
109 save all work and exit your GNOME Session if you have one running.
110 Replacing the JS68 binary will cause the GNOME Shell to crash and
111 return you to your display manager or TTY. After installing the new
112 version, reinstall <xref linkend="gjs"/>. Polkit is unaffected.
113 </para>
114 </caution>
115
116 <para>
117 First, apply a patch so we can run the shipped build scripts with
118 Python 3, instead of the EOL'ed Python 2:
119 </para>
120
121<screen><userinput remap="pre">patch -Np1 -i ../js68-&JS68-version;-python_3-1.patch</userinput></screen>
122
123 <para>
124 Install <application>JS</application> by running the following
125 commands:
126 </para>
127
128 &shell-env;
129
130<screen><userinput>sed '21,+4d' -i js/moz.configure &amp;&amp;
131
132mkdir mozjs-build &amp;&amp;
133cd mozjs-build &amp;&amp;
134
135CC=gcc CXX=g++ LLVM_OBJDUMP=/bin/false \
136../js/src/configure --prefix=/usr \
137 --with-intl-api \
138 --with-system-zlib \
139 --with-system-icu \
140 --disable-jemalloc \
141 --disable-debug-symbols \
142 --enable-readline \
143 --enable-unaligned-private-values&amp;&amp;
144make</userinput></screen>
145
146 <para>
147 This package does not come with a working test suite.
148 </para>
149
150 <para>
151 Now, as the <systemitem class="username">root</systemitem> user:
152 </para>
153
154<screen role="root"><userinput>make install</userinput></screen>
155
156 </sect2>
157
158 <sect2 role="commands">
159 <title>Command Explanations</title>
160
161 <para>
162 <command>sed '21,+4d' js/moz.configure</command>: The building system
163 searches for <command>rustc</command> and <command>cargo</command> but
164 doesn't actually use them. Remove the reference to them so we can
165 build JS68 without <xref role="nodep" linkend="rust"/> installed.
166 </para>
167
168 <para>
169 <envar>CC=gcc CXX=g++</envar>: Upstream now prefers
170 <application>clang</application>, override it like other Mozilla
171 packages in BLFS book.
172 </para>
173
174 <para>
175 <envar>LLVM_OBJDUMP=/bin/false</envar>: The building system searches
176 for <command>llvm-objdump</command> but doesn't actually use it.
177 Override it so we can build JS68 without
178 <xref role="nodep" linkend="llvm"/> installed.
179 </para>
180
181 <para>
182 <parameter>--with-*</parameter>: These parameters allow the build system
183 to use system versions of the above libriares. These are required for
184 stability.
185 </para>
186
187 <para>
188 <parameter>--enable-readline</parameter>: This switch enables Readline
189 support in the JS shell.
190 </para>
191
192 <para>
193 <parameter>--disable-jemalloc</parameter>: This switch disables the
194 internal memory allocator used in JS68. jemalloc causes a conflict with glibc.
195 </para>
196
197 <para>
198 <parameter>--disable-debug-symbols</parameter>: Don't generate debug
199 symbols since they are very large and most users won't need it. Remove
200 it if you want to debug JS68.
201 </para>
202
203 <para>
204 <parameter>--enable-unaligned-private-values</parameter>: This switch
205 allows the code using JS68 not to align all pointers in the same way
206 JS68 does. <xref linkend="gjs"/> requires JS68 to be built with this
207 switch.
208 </para>
209
210 </sect2>
211
212 <sect2 role="content">
213 <title>Contents</title>
214
215 <segmentedlist>
216 <segtitle>Installed Programs</segtitle>
217 <segtitle>Installed Libraries</segtitle>
218 <segtitle>Installed Directories</segtitle>
219
220 <seglistitem>
221 <seg>
222 js68 and js68-config
223 </seg>
224 <seg>
225 libmozjs-68.so and libjs_static.ajs <!-- The AJS file doesn't
226 conflict with the one from js52 like originally thought -->
227 </seg>
228 <seg>
229 /usr/include/mozjs-68
230 </seg>
231 </seglistitem>
232 </segmentedlist>
233
234 <variablelist>
235 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
236 <?dbfo list-presentation="list"?>
237 <?dbhtml list-presentation="table"?>
238
239 <varlistentry id="js6-js68">
240 <term><command>js68</command></term>
241 <listitem>
242 <para>
243 provides a command line interface to the
244 <application>JavaScript</application> engine.
245 </para>
246 <indexterm zone="js68 js68">
247 <primary sortas="b-js68">js68</primary>
248 </indexterm>
249 </listitem>
250 </varlistentry>
251
252 <varlistentry id="js68-config">
253 <term><command>js68-config</command></term>
254 <listitem>
255 <para>
256 is used to find the JS compiler and linker flags.
257 </para>
258 <indexterm zone="js68 js68-config">
259 <primary sortas="b-js68-config">js68-config</primary>
260 </indexterm>
261 </listitem>
262 </varlistentry>
263
264 <varlistentry id="libmozjs-68">
265 <term><filename class="libraryfile">libmozjs-68.so</filename></term>
266 <listitem>
267 <para>
268 contains the Mozilla JavaScript API functions.
269 </para>
270 <indexterm zone="js68 libmozjs-68">
271 <primary sortas="c-libmozjs68">libmozjs-68.so</primary>
272 </indexterm>
273 </listitem>
274 </varlistentry>
275 </variablelist>
276 </sect2>
277</sect1>
Note: See TracBrowser for help on using the repository browser.