source: xsoft/graphweb/seamonkey.xml@ 4e7ec17

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 4e7ec17 was 4e7ec17, checked in by Xi Ruoyao <xry111@…>, 8 months ago

autoconf213: Archive

With a simple hack in SeaMonkey, autoconf-2.13 is not needed anymore.

Fixes: #18459

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