source: xsoft/graphweb/seamonkey.xml@ 9bfa685

12.1 ken/TL2024 ken/tuningfonts lazarus plabs/newcss python3.11 rahul/power-profiles-daemon renodr/vulkan-addition trunk xry111/llvm18
Last change on this file since 9bfa685 was 9bfa685, checked in by Xi Ruoyao <xry111@…>, 7 months ago

mozilla: Adjust comments in mozconfig <screen>s

If a newline is inside the comment, it won't be rendered. So we can
avoid an excessive amount of empty lines in seamonkey, and break the
long comments about RELR into multiple lines.

  • Property mode set to 100644
File size: 19.6 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 seamonkey-download-http "&mozilla-http;/seamonkey/releases/&seamonkey-version;/source/seamonkey-&seamonkey-version;.source.tar.xz">
8 <!ENTITY seamonkey-download-ftp " ">
9 <!ENTITY seamonkey-md5sum "15c73a5e725b7f002b2789706ae643d9">
10 <!ENTITY seamonkey-size "254 MB">
11 <!ENTITY seamonkey-buildsize "4.3 GB (159 MB installed)">
12 <!ENTITY seamonkey-time "11 SBU (with parallelism=4)">
13]>
14
15<sect1 id="seamonkey" xreflabel="seamonkey-&seamonkey-version;">
16 <?dbhtml filename="seamonkey.html" ?>
17
18
19 <title>Seamonkey-&seamonkey-version;</title>
20
21 <indexterm zone="seamonkey">
22 <primary sortas="a-seamonkey">seamonkey</primary>
23 </indexterm>
24
25 <sect2 role="package">
26 <title>Introduction to Seamonkey</title>
27
28 <para>
29 <application>Seamonkey</application> is a browser suite, a descendant
30 of <application>Netscape</application>. It includes the browser,
31 composer, mail and news clients, and an IRC client.
32 </para>
33
34 <para>
35 It is the community-driven follow-on to the Mozilla Application Suite,
36 created after Mozilla decided to focus on separate applications for
37 browsing and e-mail. Those applications are
38 <xref linkend="firefox"/> and <xref linkend="thunderbird"/>.
39 </para>
40
41 &lfs120_checked;
42
43 <bridgehead renderas="sect3">Package Information</bridgehead>
44 <itemizedlist spacing="compact">
45 <listitem>
46 <para>
47 Download (HTTP): <ulink url="&seamonkey-download-http;"/>
48 </para>
49 </listitem>
50 <listitem>
51 <para>
52 Download (FTP): <ulink url="&seamonkey-download-ftp;"/>
53 </para>
54 </listitem>
55 <listitem>
56 <para>
57 Download MD5 sum: &seamonkey-md5sum;
58 </para>
59 </listitem>
60 <listitem>
61 <para>
62 Download size: &seamonkey-size;
63 </para>
64 </listitem>
65 <listitem>
66 <para>
67 Estimated disk space required: &seamonkey-buildsize;
68 </para>
69 </listitem>
70 <listitem>
71 <para>
72 Estimated build time: &seamonkey-time;
73 </para>
74 </listitem>
75 </itemizedlist>
76
77 <bridgehead renderas="sect3">Additional Downloads</bridgehead>
78 <itemizedlist spacing="compact">
79 <listitem>
80 <para>
81 Required patch:
82 <ulink url="&patch-root;/seamonkey-&seamonkey-version;-consolidated_fixes-1.patch"/>
83 </para>
84 </listitem>
85 <listitem>
86 <para>
87 Required Python module:
88 <ulink url="&pymodules-dl;/s/setuptools/setuptools-&setuptools-version;.tar.gz"/>
89 </para>
90 <para>
91 This module has already been installed in LFS, but now we need
92 to rebuild its wheel package for SeaMonkey building system.
93 </para>
94 </listitem>
95 </itemizedlist>
96
97 <note>
98 <para>
99 The tarball
100 <emphasis>seamonkey-&seamonkey-version;.source.tar.xz</emphasis> will
101 untar to <emphasis>seamonkey-&seamonkey-version;</emphasis> directory.
102 </para>
103 </note>
104
105 <bridgehead renderas="sect3">Seamonkey Dependencies</bridgehead>
106
107 <bridgehead renderas="sect4">Required</bridgehead>
108 <para role="required">
109 <!--xref linkend="autoconf213"/-->
110 <xref linkend="cbindgen"/>,
111 <xref linkend="gtk3"/>,
112 <xref linkend="nodejs"/>,
113 <xref linkend="six"/>,
114 <xref linkend="unzip"/>,
115 <xref linkend="yasm"/>, and
116 <xref linkend="zip"/>
117 </para>
118
119 <bridgehead renderas="sect4">Recommended</bridgehead>
120 <para role="recommended">
121 <xref linkend="icu"/>,
122 <xref linkend="libevent"/>,
123 <!--<xref linkend="libvpx"/>, Causes build failures similar to Firefox -->
124 <xref linkend="libwebp"/>,
125 <xref linkend="llvm"/> (with clang),
126 <xref linkend="nasm"/>,
127 <xref linkend="nspr"/>,
128 <xref linkend="nss"/>, and
129 <xref linkend="pulseaudio"/>
130 <!-- <xref linkend="sqlite"/> system version no longer supported -->
131 </para>
132<!--
133 <bridgehead renderas="sect4">Optional</bridgehead>
134 <para role="optional">
135 <xref linkend="sqlite"/> (not recommended due to potential
136 security concerns)
137 </para>
138-->
139 <note>
140 <para>
141 If you don't install recommended dependencies, then internal copies of
142 those packages will be used. They might be tested to work, but they can
143 be out of date or contain security holes.
144 </para>
145 </note>
146
147 <bridgehead renderas="sect4">Optional</bridgehead>
148 <para role="optional">
149 <xref linkend="alsa-lib"/>,
150 <xref linkend="dbus-glib"/>,
151 <xref linkend="startup-notification"/>,
152 <xref linkend="valgrind"/>,
153 <xref linkend="wget"/>,
154 <xref linkend="wireless_tools"/>,
155 <ulink url="https://hunspell.sourceforge.net/">Hunspell</ulink>, and
156 <ulink url="https://facebook.github.io/watchman/">Watchman</ulink>
157 </para>
158
159 <para condition="html" role="usernotes">
160 Editor Notes: <ulink url="&blfs-wiki;/seamonkey"/>
161 </para>
162
163 </sect2>
164
165 <sect2 role="installation">
166 <title>Installation of Seamonkey</title>
167
168 <para>
169 The configuration of <application>Seamonkey</application> is accomplished
170 by creating a <filename>mozconfig</filename> file containing the desired
171 configuration options. A default <filename>mozconfig</filename> file is
172 created below. To see the entire list of available configuration options
173 (and an abbreviated description of each one), issue
174 <command>./configure --help</command>. You may also wish to review the
175 entire file and uncomment any other desired options. Create the file by
176 issuing the following command:
177 </para>
178
179<screen><?dbfo keep-together="auto"?><userinput>cat &gt; mozconfig &lt;&lt; "EOF"
180<literal># If you have a multicore machine, all cores will be used
181
182# If you have installed DBus-Glib comment out this line:
183ac_add_options --disable-dbus
184
185# If you have installed dbus-glib, and you have installed (or will install)
186# wireless-tools, and you wish to use geolocation web services, comment out
187# this line
188ac_add_options --disable-necko-wifi
189
190# Uncomment these lines if you have installed optional dependencies:
191#ac_add_options --enable-system-hunspell
192#ac_add_options --enable-startup-notification
193
194# Uncomment the following option if you have not installed PulseAudio
195#ac_add_options --disable-pulseaudio
196# and uncomment this if you installed alsa-lib instead of PulseAudio
197#ac_add_options --enable-alsa
198<!--
199# Comment out following option if you have gconf installed
200ac_add_options - -disable-gconf
201
202following was for icu in the past seems OK with icu-60, seamonkey-2.49
203line below was with comment and explanation
204# Use the internal version of icu due to execution problems-->
205# Comment out following options if you have not installed
206# recommended dependencies:
207ac_add_options --with-system-icu
208ac_add_options --with-system-libevent
209ac_add_options --with-system-nspr
210ac_add_options --with-system-nss
211ac_add_options --with-system-webp
212
213# Disabling debug symbols makes the build much smaller and a little
214# faster. Comment this if you need to run a debugger. Note: This is
215# required for compilation on i686.
216ac_add_options --disable-debug-symbols
217<!-- With Firefox ESR 128 we'd replace the following part with
218"- -enable-elf-hack=relr", or remove it if relr becomes the default.
219But I've no idea if SeaMonkey will have this change backported. -->
220# The elf-hack is reported to cause failed installs (after successful builds)
221# on some machines. It is supposed to improve startup time and it shrinks
222# libxul.so by a few MB. With recent Binutils releases the linker already
223# supports a much safer and generic way for this.
224ac_add_options --disable-elf-hack
225ac_add_options --enable-linker=bfd
226export LDFLAGS="$LDFLAGS -Wl,-z,pack-relative-relocs"
227
228# Seamonkey has some additional features that are not turned on by default,
229# such as an IRC client, calendar, and DOM Inspector. The DOM Inspector
230# aids with designing web pages. Comment these options if you do not
231# desire these features.
232ac_add_options --enable-calendar
233ac_add_options --enable-dominspector
234ac_add_options --enable-irc
235
236# The BLFS editors recommend not changing anything below this line:
237ac_add_options --prefix=/usr
238ac_add_options --enable-application=comm/suite
239
240ac_add_options --disable-crashreporter
241ac_add_options --disable-updater
242ac_add_options --disable-tests
243
244# The Rust code for SIMD optimization is much more outdated than
245# Firefox and Thunderbird, so it does not build with recent Rustc.
246ac_add_options --disable-rust-simd
247
248ac_add_options --enable-strip
249ac_add_options --enable-install-strip
250
251# You cannot distribute the binary if you do this.
252ac_add_options --enable-official-branding
253
254# The option to use system cairo was removed in 2.53.9.
255ac_add_options --enable-system-ffi
256ac_add_options --enable-system-pixman
257
258ac_add_options --with-system-bz2
259ac_add_options --with-system-jpeg
260ac_add_options --with-system-png
261ac_add_options --with-system-zlib
262
263export CC=clang CXX=clang++</literal>
264EOF</userinput></screen>
265
266 <note>
267 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
268 href="../../xincludes/mozshm.xml"/>
269 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
270 href="../../xincludes/mozmach.xml"/>
271 </note>
272
273 <para>
274 First, apply a security patch that fixes some problems with
275 Seamonkey's bundled version of libvpx:
276 </para>
277
278<screen><userinput>patch -Np1 -i ../seamonkey-&seamonkey-version;-consolidated_fixes-1.patch</userinput></screen>
279
280 <para>
281 The building system ships several internal copies of the Python 3
282 module <filename>six.py</filename> and wheel packages for
283 <filename>pip</filename> and <filename>setuptools</filename> modules.
284 Theses shipped modules are too old to work well with Python 3.12 or
285 later. Replace the shipped <filename>six.py</filename> copies with
286 the symlinks to <xref linkend='six'/> already installed on the system,
287 link the updated <filename>pip</filename> wheel package shipped
288 as a part of Python 3 in LFS into the building system, and build an
289 updated <filename>setuptools</filename> wheel package. Then adapt
290 the building system for the updated modules. We also need to rewrite
291 the code based on the <filename>imp</filename> module removed in
292 Python 3.12 and later using the <filename>importlib</filename> module:
293 </para>
294
295 <screen><userinput>(for i in $(find -name six.py); do
296 ln -sfv /usr/lib/python3.12/site-packages/six.py $i
297 [ $? = 0 ] || exit $?
298 done) &amp;&amp;
299
300ln -sv /usr/lib/python&python3-majorver;/ensurepip/_bundled/pip-*.whl \
301 third_party/python/virtualenv/virtualenv_support &amp;&amp;
302
303tar xf ../setuptools-&setuptools-version;.tar.gz &amp;&amp;
304pip3 wheel --no-build-isolation --no-deps --no-cache-dir \
305 $PWD/setuptools-&setuptools-version; \
306 -w third_party/python/virtualenv/virtualenv_support &amp;&amp;
307
308sed '/ConfigParser/s/Safe//' \
309 -i testing/mozbase/mozprofile/mozprofile/prefs.py &amp;&amp;
310
311sed 's/distutils/setuptools._&amp;/' \
312 -i python/mozbuild/mozbuild/nodeutil.py &amp;&amp;
313
314sed 's/readfp/read_file/' -i ipc/ipdl/ipdl.py &amp;&amp;
315
316sed -e '/^import/s/imp$/importlib.util/' \
317 -e 's/imp.new_module/__import__/' \
318 -e "s/imp.load_source\(.*\)/spec = \
319 importlib.util.spec_from_file_location\1; \
320 mod = importlib.util.module_from_spec(spec); \
321 spec.loader.exec_module(mod)/" -i python/mach/mach/main.py &amp;&amp;
322
323sed -e '/^import/s/imp$/importlib.util/' \
324 -e '/imp.PY_SOURCE/d' \
325 -e "s/\([a-z_]*\) = imp.load_module([^,]*,[^,]*,\(.*\)/spec = \
326 importlib.util.spec_from_file_location('script', \2); \
327 \1 = importlib.util.module_from_spec(spec); \
328 spec.loader.exec_module(\1)/" \
329 -i netwerk/dns/prepare_tlds.py \
330 python/mozbuild/mozbuild/action/file_generate.py</userinput></screen>
331
332 <!-- https://bugzilla.mozilla.org/show_bug.cgi?id=1859752
333 https://hg.mozilla.org/try/rev/d5f3b0c4f08a -->
334 <para>
335 If building with system ICU, adapt the line break mapping for ICU
336 74 or later:
337 </para>
338
339<screen><userinput>(for i in {43..47}; do
340 sed '/ZWJ/s/$/,CLASS_CHARACTER/' -i intl/lwbrk/LineBreaker.cpp || exit $?
341 done)</userinput></screen>
342
343 <para>
344 Fix a problem with the bundled 'distro' python module:
345 </para>
346
347<screen><userinput>sed -e '1012 s/stderr=devnull/stderr=subprocess.DEVNULL/' \
348 -e '1013 s/OSError/(OSError, subprocess.CalledProcessError)/' \
349 -i third_party/python/distro/distro.py</userinput></screen>
350
351 <para>
352 Compile <application>Seamonkey</application> by running the following
353 commands:
354 </para>
355
356<screen><userinput>AUTOCONF=true ./mach configure &amp;&amp;
357./mach build</userinput></screen>
358
359
360 <!-- comment this since llvm must have been installed for rust
361 <note>
362 <para>
363 The CC and CXX variables above are only needed if
364 <xref linkend="llvm"/> is installed and you do not want to use clang.
365 </para>
366 </note>-->
367
368 <para>
369 This package does not come with a test suite.
370 </para>
371
372 <para>
373 Install <application>Seamonkey</application> by issuing the following
374 commands as the <systemitem class="username">root</systemitem> user:
375 </para>
376
377
378<screen role="root"><userinput>./mach install &amp;&amp;
379chown -R 0:0 /usr/lib/seamonkey &amp;&amp;
380
381cp -v $(find -name seamonkey.1 | head -n1) /usr/share/man/man1</userinput></screen>
382
383 </sect2>
384
385 <sect2 role="commands">
386 <title>Command Explanations</title>
387
388 <para>
389 <command>export CC=clang CXX=clang++</command>:
390 With the introduction of <application>gcc-12</application>, many
391 more warnings are generated when compiling mozilla applications
392 and that results in a much slower, and larger, build. Furthermore,
393 building with GCC on i?86 is currently broken.
394 Although upstream mozilla code defaults to using
395 <application>llvm</application> unless overridden, the older configure
396 code in <application>Seamonkey</application> defaults to gcc.
397 </para>
398
399 <para>
400 <command>AUTOCONF=true ./mach configure</command>: This validates
401 the supplied dependencies and the <filename>mozconfig</filename>.
402 The building system always checks for an old version (2.13) of
403 autoconf, but it's not really needed because the necessary
404 <command>configure</command> scripts are already shipped in the
405 tarball and we've not modified the <filename>configure.in</filename>
406 files. So we pass <envar>AUTOCONF=true</envar> so the building system
407 will skip the checking for autoconf-2.13 and allow building this
408 package without autoconf-2.13 installed.
409 </para>
410
411 <para>
412 <option>./mach build --verbose</option>: Use this alternative if you
413 need details of which files are being compiled, together with any C or
414 C++ flags being used. But do not add '--verbose' to the install command,
415 it is not accepted there.
416 </para>
417
418 <para>
419 <option>./mach build -jN</option>: The build should, by default, use
420 all the online CPU cores. If using all the cores causes the build to swap
421 because you have insufficient memory, using fewer cores can be faster.
422 </para>
423
424 </sect2>
425
426 <sect2 role="configuration">
427 <title>Configuring Seamonkey</title>
428
429 <para>
430 For installing various <application>Seamonkey</application> add-ons, refer
431 to <ulink url="https://addons.thunderbird.net/en-US/seamonkey/">Add-ons
432 for Seamonkey</ulink>.
433 </para>
434
435 <para>
436 Along with using the <quote>Preferences</quote> menu to configure
437 <application>Seamonkey</application>'s options and preferences to suit
438 individual tastes, finer grain control of many options is only available
439 using a tool not available from the general menu system. To access this
440 tool, you'll need to open a browser window and enter
441 <systemitem role="url">about:config</systemitem> in the address bar. This
442 will display a list of the configuration preferences and information
443 related to each one. You can use the <quote>Search:</quote> bar to enter
444 search criteria and narrow down the listed items. Changing a preference
445 can be done using two methods. One, if the preference has a boolean value
446 (True/False), simply double-click on the preference to toggle the value
447 and two, for other preferences simply right-click on the desired line,
448 choose <quote>Modify</quote> from the menu and change the value. Creating
449 new preference items is accomplished in the same way, except choose
450 <quote>New</quote> from the menu and provide the desired data into the
451 fields when prompted.
452 </para>
453
454<!-- The URL no longer exists.
455 <tip>
456 <para>
457 There is a multitude of configuration parameters you can tweak to
458 customize <application>SeaMonkey</application>. A very extensive list of
459 these parameters can be found at
460 <ulink url="http://preferential.mozdev.org/preferences.html"/>.
461 </para>
462 </tip>
463-->
464 <para>
465 If you use a desktop environment like <application>Gnome</application> or
466 <application>KDE</application> you may wish to create a
467 <filename>seamonkey.desktop</filename> file so that
468 <application>Seamonkey</application> appears in the panel's menus. If you
469 didn't enable <application>Startup-Notification</application> in your
470 mozconfig change the StartupNotify line to false. As the
471 <systemitem class="username">root</systemitem> user:
472 </para>
473
474<screen role="root"><userinput>mkdir -pv /usr/share/{applications,pixmaps} &amp;&amp;
475
476cat &gt; /usr/share/applications/seamonkey.desktop &lt;&lt; "EOF"
477<literal>[Desktop Entry]
478Encoding=UTF-8
479Type=Application
480Name=Seamonkey
481Comment=The Mozilla Suite
482Icon=seamonkey
483Exec=seamonkey
484Categories=Network;GTK;Application;Email;Browser;WebBrowser;News;
485StartupNotify=true
486Terminal=false</literal>
487EOF
488
489ln -sfv /usr/lib/seamonkey/chrome/icons/default/default128.png \
490 /usr/share/pixmaps/seamonkey.png</userinput></screen>
491 </sect2>
492
493 <sect2 role="content">
494 <title>Contents</title>
495
496 <segmentedlist>
497 <segtitle>Installed Programs</segtitle>
498 <segtitle>Installed Libraries</segtitle>
499 <segtitle>Installed Directory</segtitle>
500
501 <seglistitem>
502 <seg>seamonkey</seg>
503 <seg>
504 Numerous libraries, browser, and email/newsgroup components, plugins,
505 extensions, and helper modules installed in
506 <filename class="directory">/usr/lib/seamonkey</filename>
507 </seg>
508 <seg>
509 /usr/lib/seamonkey
510 </seg>
511 </seglistitem>
512 </segmentedlist>
513
514 <variablelist>
515 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
516 <?dbfo list-presentation="list"?>
517 <?dbhtml list-presentation="table"?>
518
519 <varlistentry id="seamonkey-prog">
520 <term><command>seamonkey</command></term>
521 <listitem>
522 <para>
523 is the Mozilla browser/email/newsgroup/chat client suite
524 </para>
525 <indexterm zone="seamonkey seamonkey-prog">
526 <primary sortas="b-seamonkey">seamonkey</primary>
527 </indexterm>
528 </listitem>
529 </varlistentry>
530 </variablelist>
531 </sect2>
532
533</sect1>
Note: See TracBrowser for help on using the repository browser.