source: xsoft/graphweb/seamonkey.xml@ 787d4f0

trunk
Last change on this file since 787d4f0 was c842bcff, checked in by Douglas R. Reno <renodr@…>, 12 days ago

seamonkey: minor spacing adjustment

  • Property mode set to 100644
File size: 16.9 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
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 "https://archive.seamonkey-project.org/releases/&seamonkey-version;/source/seamonkey-&seamonkey-version;.source.tar.xz">
8 <!ENTITY seamonkey-download-ftp " ">
9 <!ENTITY seamonkey-md5sum "0fbfbd69ab1ceb417528419324551510">
10 <!ENTITY seamonkey-size "238 MB">
11 <!ENTITY seamonkey-buildsize "4.5 GB (149 MB installed)">
12 <!ENTITY seamonkey-time "6.9 SBU (with parallelism=8)">
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 &lfs122_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 Recommended patch (required for building with system ICU-75 or
82 newer):
83 <ulink url="&patch-root;/seamonkey-&seamonkey-version;-cxx17-1.patch"/>
84 </para>
85 </listitem>
86 <!--
87 <listitem>
88 <para>
89 Required Python module:
90 <ulink url="&pymodules-dl;/s/setuptools/setuptools-&setuptools-version;.tar.gz"/>
91 </para>
92 <para>
93 This module has already been installed in LFS, but now we need
94 to rebuild its wheel package for the SeaMonkey build system.
95 </para>
96 </listitem>
97 -->
98 </itemizedlist>
99
100 <note>
101 <para>
102 The tarball
103 <emphasis>seamonkey-&seamonkey-version;.source.tar.xz</emphasis> will
104 untar to <emphasis>seamonkey-&seamonkey-version;</emphasis> directory.
105 </para>
106 </note>
107
108 <bridgehead renderas="sect3">Seamonkey Dependencies</bridgehead>
109
110 <bridgehead renderas="sect4">Required</bridgehead>
111 <para role="required">
112 <xref linkend="cbindgen"/>,
113 <xref linkend="gtk3"/>,
114 <xref linkend="nodejs"/>,
115 <xref linkend="python311"/>,
116 <xref linkend="unzip"/>,
117 <xref linkend="yasm"/>, and
118 <xref linkend="zip"/>
119 </para>
120
121 <bridgehead renderas="sect4">Recommended</bridgehead>
122 <para role="recommended">
123 <xref linkend="icu"/>,
124 <xref linkend="libevent"/>,
125 <!--<xref linkend="libvpx"/>, Causes build failures similar to Firefox -->
126 <xref linkend="libwebp"/>,
127 <xref linkend="llvm"/> (with clang),
128 <xref linkend="nasm"/>,
129 <xref linkend="nspr"/>,
130 <xref linkend="nss"/>, and
131 <xref linkend="pulseaudio"/>
132 </para>
133
134 <note>
135 <para>
136 If you don't install recommended dependencies, then internal copies of
137 those packages will be used. They might be tested to work, but they can
138 be out of date or contain security holes.
139 </para>
140 </note>
141
142 <bridgehead renderas="sect4">Optional</bridgehead>
143 <para role="optional">
144 <xref linkend="alsa-lib"/>,
145 <xref linkend="dbus-glib"/>,
146 <xref linkend="startup-notification"/>,
147 <xref linkend="valgrind"/>,
148 <xref linkend="wget"/>,
149 <xref linkend="wireless_tools"/>,
150 <ulink url="https://hunspell.sourceforge.net/">Hunspell</ulink>,
151 <ulink url="https://gitlab.gnome.org/Archive/gconf">Gconf</ulink>, and
152 <ulink url="https://facebook.github.io/watchman/">Watchman</ulink>
153 </para>
154
155 </sect2>
156
157 <sect2 role="installation">
158 <title>Installation of Seamonkey</title>
159
160 <para>
161 The configuration of <application>Seamonkey</application> is accomplished
162 by creating a <filename>mozconfig</filename> file containing the desired
163 configuration options. A default <filename>mozconfig</filename> file is
164 created below. To see the entire list of available configuration options
165 (and an abbreviated description of each one), issue
166 <command>./configure --help</command>. You may also wish to review the
167 entire file and uncomment any other desired options. Create the file by
168 issuing the following command:
169 </para>
170
171<screen><?dbfo keep-together="auto"?><userinput>cat &gt; mozconfig &lt;&lt; "EOF"
172<literal># If you have a multicore machine, all cores will be used
173
174# If you have installed DBus-Glib comment out this line:
175ac_add_options --disable-dbus
176
177# If you have installed dbus-glib, and you have installed (or will install)
178# wireless-tools, and you wish to use geolocation web services, comment out
179# this line
180ac_add_options --disable-necko-wifi
181
182# Uncomment these lines if you have installed optional dependencies:
183#ac_add_options --enable-system-hunspell
184#ac_add_options --enable-startup-notification
185
186# Uncomment the following option if you have not installed PulseAudio
187#ac_add_options --disable-pulseaudio
188# and uncomment this if you installed alsa-lib instead of PulseAudio
189#ac_add_options --enable-alsa
190
191# Comment out the following option if you have gconf installed
192ac_add_options --disable-gconf
193
194# Comment out following options if you have not installed
195# recommended dependencies:
196ac_add_options --with-system-icu
197ac_add_options --with-system-libevent
198ac_add_options --with-system-nspr
199ac_add_options --with-system-nss
200ac_add_options --with-system-webp
201
202# Disabling debug symbols makes the build much smaller and a little
203# faster. Comment this if you need to run a debugger.
204ac_add_options --disable-debug-symbols
205<!-- With Firefox ESR 128 we'd replace the following part with
206"- -enable-elf-hack=relr", or remove it if relr becomes the default.
207But I've no idea if SeaMonkey will have this change backported. -->
208# The elf-hack is reported to cause failed installs (after successful builds)
209# on some machines. It is supposed to improve startup time and it shrinks
210# libxul.so by a few MB. With recent Binutils releases the linker already
211# supports a much safer and generic way for this.
212ac_add_options --disable-elf-hack
213ac_add_options --enable-linker=bfd
214export LDFLAGS="$LDFLAGS -Wl,-z,pack-relative-relocs"
215
216# Seamonkey has some additional features that are not turned on by default,
217# such as an IRC client, calendar, and DOM Inspector. The DOM Inspector
218# aids with designing web pages. Comment these options if you do not
219# desire these features.
220ac_add_options --enable-calendar
221ac_add_options --enable-dominspector
222ac_add_options --enable-irc
223
224# The BLFS editors recommend not changing anything below this line:
225ac_add_options --prefix=/usr
226ac_add_options --enable-application=comm/suite
227
228ac_add_options --disable-crashreporter
229ac_add_options --disable-updater
230ac_add_options --disable-tests
231
232# The SIMD code relies on the unmaintained packed_simd crate which
233# fails to build with Rustc >= 1.78.0. We may re-enable it once
234# Mozilla port the code to use std::simd and std::simd is stabilized.
235ac_add_options --disable-rust-simd
236
237ac_add_options --enable-strip
238ac_add_options --enable-install-strip
239
240# You cannot distribute the binary if you do this.
241ac_add_options --enable-official-branding
242
243# The option to use system cairo was removed in 2.53.9.
244ac_add_options --enable-system-ffi
245ac_add_options --enable-system-pixman
246
247ac_add_options --with-system-bz2
248ac_add_options --with-system-jpeg
249ac_add_options --with-system-png
250ac_add_options --with-system-zlib
251
252export CC=clang CXX=clang++</literal>
253EOF</userinput></screen>
254
255 <note>
256 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
257 href="../../xincludes/mozshm.xml"/>
258 </note>
259
260 <para>
261 First, if you are building with system ICU, adapt the line break mapping
262 for ICU-74 or later, and apply a patch to build this package with the
263 C++17 standard because the headers of ICU-75 or later require some
264 C++17 features:
265 </para>
266
267<screen><userinput remap="pre">(for i in {43..47}; do
268 sed '/ZWJ/s/$/,CLASS_CHARACTER/' -i intl/lwbrk/LineBreaker.cpp || exit $?
269done) &amp;&amp;
270
271patch -Np1 -i ../seamonkey-&seamonkey-version;-cxx17-1.patch</userinput></screen>
272
273 <!-- https://bugzilla.mozilla.org/show_bug.cgi?id=1894423 -->
274 <para>
275 Next, remove a hunk of unused code violating the C++ standard.
276 Clang has started to reject it even though it's unused since the
277 19.1.0 release:
278 </para>
279
280<screen><userinput>sed '/ExclusiveData(ExclusiveData&amp;&amp;/,/^ *}/d' \
281 -i js/src/threading/ExclusiveData.h</userinput></screen>
282
283 <para>
284 Next, fix a problem with the bundled 'distro' python module:
285 </para>
286
287<screen><userinput remap="pre">sed -e '1012 s/stderr=devnull/stderr=subprocess.DEVNULL/' \
288 -e '1013 s/OSError/(OSError, subprocess.CalledProcessError)/' \
289 -i third_party/python/distro/distro.py</userinput></screen>
290
291 <para>
292 Compile <application>Seamonkey</application> by running the following
293 commands:
294 </para>
295
296<screen><userinput>export PATH_PY311=/opt/python3.11/bin:$PATH &amp;&amp;
297PATH=$PATH_PY311 AUTOCONF=true MACH_USE_SYSTEM_PYTHON=1 ./mach build</userinput></screen>
298
299 <para>
300 This package does not come with a test suite.
301 </para>
302
303 <para>
304 Install <application>Seamonkey</application> by issuing the following
305 commands as the <systemitem class="username">root</systemitem> user:
306 </para>
307
308 <note>
309 <para>
310 If <command>sudo</command> or <command>su</command> is invoked for
311 opening a shell running as the &root; user, ensure
312 <envar>PATH_PY311</envar> is correctly passed or the
313 following command will fail. For <command>sudo</command>, use the
314 <option>--preserve-env=PATH_PY311</option> option.
315 For <command>su</command>, do <emphasis>not</emphasis> use the
316 <option>-</option> or <option>--login</option> options.
317 </para>
318 </note>
319
320<screen role="root"><userinput>PATH=$PATH_PY311 MACH_USE_SYSTEM_PYTHON=1 ./mach install &amp;&amp;
321chown -R 0:0 /usr/lib/seamonkey &amp;&amp;
322
323cp -v $(find -name seamonkey.1 | head -n1) /usr/share/man/man1</userinput></screen>
324
325 <para>
326 Finally, unset the <envar>PATH_PY311</envar> variable:
327 </para>
328
329<screen><userinput>unset $PATH_PY311</userinput></screen>
330
331 </sect2>
332
333 <sect2 role="commands">
334 <title>Command Explanations</title>
335
336 <para>
337 <command>export CC=clang CXX=clang++</command>:
338 With the introduction of <application>gcc-12</application>, many
339 more warnings are generated when compiling mozilla applications
340 and that results in a much slower, and larger, build. Furthermore,
341 building with GCC on i?86 is currently broken.
342 Although upstream mozilla code defaults to using
343 <application>llvm</application> unless overridden, the older configure
344 code in <application>Seamonkey</application> defaults to gcc.
345 </para>
346
347<!--
348 <para>
349 <command>AUTOCONF=true ./mach configure</command>: This validates
350 the supplied dependencies and the <filename>mozconfig</filename>.
351 The building system always checks for an old version (2.13) of
352 autoconf, but it's not really needed because the necessary
353 <command>configure</command> scripts are already shipped in the
354 tarball and we've not modified the <filename>configure.in</filename>
355 files. So we pass <envar>AUTOCONF=true</envar> so the building system
356 will skip the checking for autoconf-2.13 and allow building this
357 package without autoconf-2.13 installed.
358 </para>
359-->
360
361 <para>
362 <option>./mach build --verbose</option>: Use this alternative if you
363 need details of which files are being compiled, together with any C or
364 C++ flags being used. But do not add '--verbose' to the install command,
365 it is not accepted there.
366 </para>
367
368 <para>
369 <option>./mach build -jN</option>: The build should, by default, use
370 all the online CPU cores. If using all the cores causes the build to swap
371 because you have insufficient memory, using fewer cores can be faster.
372 </para>
373
374 </sect2>
375
376 <sect2 role="configuration">
377 <title>Configuring Seamonkey</title>
378
379 <para>
380 For installing various <application>Seamonkey</application> add-ons, refer
381 to <ulink url="https://addons.thunderbird.net/en-US/seamonkey/">Add-ons
382 for Seamonkey</ulink>.
383 </para>
384
385 <para>
386 Along with using the <quote>Preferences</quote> menu to configure
387 <application>Seamonkey</application>'s options and preferences to suit
388 individual tastes, finer grain control of many options is only available
389 using a tool not available from the general menu system. To access this
390 tool, you'll need to open a browser window and enter
391 <systemitem role="url">about:config</systemitem> in the address bar. This
392 will display a list of the configuration preferences and information
393 related to each one. You can use the <quote>Search:</quote> bar to enter
394 search criteria and narrow down the listed items. Changing a preference
395 can be done using two methods. One, if the preference has a boolean value
396 (True/False), simply double-click on the preference to toggle the value
397 and two, for other preferences simply right-click on the desired line,
398 choose <quote>Modify</quote> from the menu and change the value. Creating
399 new preference items is accomplished in the same way, except choose
400 <quote>New</quote> from the menu and provide the desired data into the
401 fields when prompted.
402 </para>
403
404 <para>
405 If you use a desktop environment like <application>Gnome</application> or
406 <application>KDE</application> you may wish to create a
407 <filename>seamonkey.desktop</filename> file so that
408 <application>Seamonkey</application> appears in the panel's menus. If you
409 didn't enable <application>Startup-Notification</application> in your
410 mozconfig change the StartupNotify line to false. As the
411 <systemitem class="username">root</systemitem> user:
412 </para>
413
414<screen role="root"><userinput>mkdir -pv /usr/share/{applications,pixmaps} &amp;&amp;
415
416cat &gt; /usr/share/applications/seamonkey.desktop &lt;&lt; "EOF"
417<literal>[Desktop Entry]
418Encoding=UTF-8
419Type=Application
420Name=Seamonkey
421Comment=The Mozilla Suite
422Icon=seamonkey
423Exec=seamonkey
424Categories=Network;GTK;Application;Email;Browser;WebBrowser;News;
425StartupNotify=true
426Terminal=false</literal>
427EOF
428
429ln -sfv /usr/lib/seamonkey/chrome/icons/default/default128.png \
430 /usr/share/pixmaps/seamonkey.png</userinput></screen>
431 </sect2>
432
433 <sect2 role="content">
434 <title>Contents</title>
435
436 <segmentedlist>
437 <segtitle>Installed Programs</segtitle>
438 <segtitle>Installed Libraries</segtitle>
439 <segtitle>Installed Directory</segtitle>
440
441 <seglistitem>
442 <seg>seamonkey</seg>
443 <seg>
444 Numerous libraries, browser, and email/newsgroup components, plugins,
445 extensions, and helper modules installed in
446 <filename class="directory">/usr/lib/seamonkey</filename>
447 </seg>
448 <seg>
449 /usr/lib/seamonkey
450 </seg>
451 </seglistitem>
452 </segmentedlist>
453
454 <variablelist>
455 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
456 <?dbfo list-presentation="list"?>
457 <?dbhtml list-presentation="table"?>
458
459 <varlistentry id="seamonkey-prog">
460 <term><command>seamonkey</command></term>
461 <listitem>
462 <para>
463 is the Mozilla browser/email/newsgroup/chat client suite
464 </para>
465 <indexterm zone="seamonkey seamonkey-prog">
466 <primary sortas="b-seamonkey">seamonkey</primary>
467 </indexterm>
468 </listitem>
469 </varlistentry>
470 </variablelist>
471 </sect2>
472
473</sect1>
Note: See TracBrowser for help on using the repository browser.