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

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 5ab87cfa was 5ab87cfa, checked in by Xi Ruoyao <xry111@…>, 4 years ago

js68: remove unneeded giant static archive

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

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