source: xsoft/graphweb/seamonkey.xml@ 5edfa7f

12.1 ken/TL2024 lazarus plabs/newcss python3.11 rahul/power-profiles-daemon trunk xry111/llvm18
Last change on this file since 5edfa7f was 5edfa7f, checked in by Pierre Labastie <pierre.labastie@…>, 6 months ago

Make sed for python-3.11 nodump in seamonkey

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