source: xsoft/other/thunderbird.xml@ 693f28e1

10.0 10.1 11.0 ken/refactor-virt lazarus qt5new trunk xry111/git-date xry111/git-date-for-trunk xry111/git-date-test
Last change on this file since 693f28e1 was 693f28e1, checked in by Ken Moffat <ken@…>, 16 months ago

Firefox-78 requires python3 to be rebuilt in BLFS after installing sqlite3. Also comment rust from thunderbird deps since cbindgen pulls it in.

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

  • Property mode set to 100644
File size: 15.4 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 thunderbird-download-http "&mozilla-http;/thunderbird/releases/&thunderbird-version;/source/thunderbird-&thunderbird-version;.source.tar.xz">
8 <!ENTITY thunderbird-download-ftp " ">
9 <!ENTITY thunderbird-md5sum "56a71d11921ac2562ed3c5b2761281e1">
10 <!ENTITY thunderbird-size "317 MB">
11 <!ENTITY thunderbird-buildsize "8.7 GB (144 MB installed)">
12 <!ENTITY thunderbird-time "22 SBU (on a 4-core 8-thread machine)">
13 <!-- Removed the -j1 time because python and rust do not obey it, although
14 the C/C++ code appears to obey it -->
15]>
16
17<sect1 id="thunderbird" xreflabel="Thunderbird-&thunderbird-version;">
18 <?dbhtml filename="thunderbird.html" ?>
19
20 <sect1info>
21 <othername>$LastChangedBy$</othername>
22 <date>$Date$</date>
23 </sect1info>
24
25 <title>Thunderbird-&thunderbird-version;</title>
26
27 <indexterm zone="thunderbird">
28 <primary sortas="a-Thunderbird">Thunderbird</primary>
29 </indexterm>
30
31 <sect2 role="package">
32 <title>Introduction to Thunderbird</title>
33
34 <para>
35 <application>Thunderbird</application> is a stand-alone mail/news client
36 based on the <application>Mozilla</application> codebase. It uses the
37 Gecko rendering engine to enable it to display and compose HTML emails.
38 </para>
39
40 &lfs91_checked;
41
42 <bridgehead renderas="sect3">Package Information</bridgehead>
43 <itemizedlist spacing="compact">
44 <listitem>
45 <para>
46 Download (HTTP): <ulink url="&thunderbird-download-http;"/>
47 </para>
48 </listitem>
49 <listitem>
50 <para>
51 Download (FTP): <ulink url="&thunderbird-download-ftp;"/>
52 </para>
53 </listitem>
54 <listitem>
55 <para>
56 Download MD5 sum: &thunderbird-md5sum;
57 </para>
58 </listitem>
59 <listitem>
60 <para>
61 Download size: &thunderbird-size;
62 </para>
63 </listitem>
64 <listitem>
65 <para>
66 Estimated disk space required: &thunderbird-buildsize;
67 </para>
68 </listitem>
69 <listitem>
70 <para>
71 Estimated build time: &thunderbird-time;
72 </para>
73 </listitem>
74 </itemizedlist>
75
76 <bridgehead renderas="sect3">Thunderbird Dependencies</bridgehead>
77
78 <bridgehead renderas="sect4">Required</bridgehead>
79 <para role="required">
80<!-- <xref linkend="alsa-lib"/>, no mention in log -->
81 <xref linkend="autoconf213"/>,
82 <xref linkend="cbindgen"/>,
83 both <xref linkend="gtk3"/>
84 and <xref linkend="gtk2"/>,
85 <xref linkend="llvm"/>, <!-- Searched for and used a few times -->
86 <xref linkend="nodejs"/>,
87 <!-- When thunderbird moves to 78.0 it will want python3 built against
88 sqlite3, as firefox already does. Please add here and update the
89 'required if building firefox' in (BLFS) python3. -->
90 <!-- rust is required by cbindgen
91 <xref linkend="rust"/>, -->
92 <xref linkend="zip"/>,
93 <xref linkend="unzip"/>, and
94 <xref linkend="yasm"/>
95 </para>
96
97 <bridgehead renderas="sect4">Recommended</bridgehead>
98 <para role="recommended">
99 <xref linkend="icu"/>,
100 <xref linkend="libevent"/>,
101<!-- Fails to build with version 1.8.0
102 <xref linkend="libvpx"/>,-->
103 <xref linkend="nspr"/>,
104 <xref linkend="nss"/>, and
105 <xref linkend="sqlite"/>
106 </para>
107
108 <note>
109 <para>
110 If you don't install recommended dependencies,
111 then internal copies of those packages will
112 be used. They might be tested to work, but
113 they can be out of date or contain security
114 holes.
115 </para>
116 </note>
117
118 <bridgehead renderas="sect4">Optional</bridgehead>
119 <para role="optional">
120 <!-- <xref linkend="curl"/>, not in build log-->
121 <xref linkend="cyrus-sasl"/>,
122 <xref linkend="dbus-glib"/>,
123 <xref linkend="doxygen"/>,
124 <xref linkend="GConf"/>,
125 <!--<xref linkend="gst10-plugins-base"/> (with
126 <xref linkend="gst10-plugins-good"/> and
127 <xref linkend="gst10-libav"/> at runtime),-->
128 <!-- <xref linkend="openjdk"/>, not in build log -->
129 <xref linkend="pulseaudio"/>,
130 <xref linkend="startup-notification"/>,
131 <xref linkend="wget"/>, and
132 <xref linkend="wireless_tools"/>
133 </para>
134
135 <para condition="html" role="usernotes">
136 User Notes: <ulink url="&blfs-wiki;/Thunderbird"/>
137 </para>
138 </sect2>
139
140 <sect2 role="installation">
141 <title>Installation of Thunderbird</title>
142
143 <note>
144 <para>
145 The build process for Thunderbird can use 8GB+ of RAM when linking.
146 Make sure that you have adequate swap or RAM before continuing.
147 </para>
148 </note>
149
150 <para>
151 The configuration of <application>Thunderbird</application> is
152 accomplished by creating a <filename>mozconfig</filename> file containing
153 the desired configuration options. A default
154 <filename>mozconfig</filename> is created below. To see the entire list
155 of available configuration options (and a brief description of each),
156 issue <command>mozilla/configure --help</command>. Create the file with
157 the following command:
158 </para>
159
160<screen><userinput>cat &gt; mozconfig &lt;&lt; "EOF"
161<literal># If you have a multicore machine, all cores will be used.
162# The option below may cause parts of the build to only use one core
163# if you want to use a smaller number of jobs:
164#mk_add_options MOZ_MAKE_FLAGS="-j1"
165
166
167# If you have installed dbus-glib, comment out this line:
168ac_add_options --disable-dbus
169
170# If you have installed wireless-tools comment out this line:
171ac_add_options --disable-necko-wifi
172
173# Uncomment these lines if you have installed optional dependencies:
174#ac_add_options --enable-startup-notification
175
176# Comment out following option if you have PulseAudio installed
177ac_add_options --disable-pulseaudio
178
179# Comment out following option if you have gconf installed
180ac_add_options --disable-gconf
181
182# If you want to compile the Mozilla Calendar, uncomment this line:
183#ac_add_options --enable-calendar
184
185# Comment out following options if you have not installed
186# recommended dependencies:
187ac_add_options --enable-system-sqlite
188ac_add_options --with-system-libevent
189ac_add_options --with-system-nspr
190ac_add_options --with-system-nss
191ac_add_options --with-system-icu
192<!--Not with libvpx-1.8.0 or later
193ac_add_options - -with-system-libvpx
194====
195These do not seem to be needed any more
196# Set CFLAGS and CXXFLAGS to prevent segfaults due to aggressive
197# optimizations in GCC-6:
198export CFLAGS+=" -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2"
199export CXXFLAGS+=" -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2"
200-->
201# The elf-hack causes failed builds on clang-9.0.1 with some CFLAGS including
202# -march=native on Ryzen. It is supposed to improve startup time and it shrinks
203# libxul.so by a few MB - Uncomment this if your build is affected.
204#ac_add_options --disable-elf-hack
205
206# The BLFS editors recommend not changing anything below this line:
207ac_add_options --prefix=/usr
208ac_add_options --enable-application=comm/mail
209
210ac_add_options --disable-crashreporter
211ac_add_options --disable-updater
212ac_add_options --disable-debug
213ac_add_options --disable-tests
214
215ac_add_options --enable-optimize=-O2
216ac_add_options --enable-strip
217ac_add_options --enable-install-strip
218
219ac_add_options --enable-official-branding
220
221ac_add_options --enable-system-ffi
222ac_add_options --enable-system-pixman
223
224ac_add_options --with-system-bz2
225ac_add_options --with-system-jpeg
226ac_add_options --with-system-png
227ac_add_options --with-system-zlib</literal>
228EOF</userinput></screen>
229
230 <para>
231 Compile <application>Thunderbird</application> by issuing the following
232 commands:
233 </para>
234
235 <note>
236 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
237 href="../../xincludes/mozshm.xml"/>
238
239 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
240 href="../../xincludes/mozmach.xml"/>
241
242 </note>
243<!--
244 <para>
245 First, disable failure caused by undocumented rust macros:
246 </para>
247
248<screen><userinput remap="pre">sed -i -e '/#!\[deny(missing_docs)\]/d' servo/components/style/lib.rs &amp;&amp;
249sed -i -e 's/#!\[deny(unsafe_code, missing_docs)\]/#!\[deny(unsafe_code)\]/g' servo/components/style_traits/lib.rs</userinput></screen>
250
251 <para>
252 Remove a function definition, which is incompatible with the one in
253 glibc-2.30:
254 </para>
255
256<screen><userinput>sed -i -e '/pid_t gettid/s@^@//@' tools/profiler/core/platform.h</userinput></screen>
257
258 <para>
259 Next, build the package:
260 </para>
261-->
262<screen><userinput>./mach build</userinput></screen>
263
264 <para>
265 This package does not come with a test suite.
266 </para>
267
268 <para>
269 Install <application>Thunderbird</application> by running the following
270 commands as the <systemitem class="username">root</systemitem> user:
271 </para>
272
273<screen role="root"><userinput>./mach install</userinput></screen>
274
275<!-- thunderbuild directory does not exist anymore. Leaving as comment,
276in case an editor figures out how to install the development environment.
277 <para>
278 The above instruction just installs the parts you need to run
279 <application>Thunderbird</application>. Alternatively, if you want to
280 install the full <application>Thunderbird</application> development
281 environment, run the following command as the
282 <systemitem class="username">root</systemitem> user:
283 </para>
284
285<screen role="root"><userinput>make -C thunderbuild install</userinput></screen>
286-->
287 </sect2>
288
289 <sect2 role="commands">
290 <title>Command Explanations</title>
291<!-- might be necessary
292 <para>
293 <command>test $(uname -m) = "i686" &amp;&amp; sed ...</command>: On this
294 version of thunderbird, an old bug has reappeared in 32-bit builds. With
295 optimization, the install fails with a Python error. This command will
296 fix i686 builds and preserve the optimization on x86_64.
297 </para>
298
299 <para>
300 <command>export CFLAGS= ... export CXXFLAGS= ...</command>: These
301 settings work around code which gcc6 would otherwise regard as
302 out-of-specification and allow it to produce a working program.
303 </para>-->
304
305 <para>
306 <command>./mach build</command>: <application>Thunderbird</application>
307 now uses this <application>python2</application> script to run the
308 build and install.
309 </para>
310
311 <para>
312 <option>./mach build --verbose</option>: Use this alternative if you
313 need details of which files are being compiled, together with any C or
314 C++ flags being used.
315 </para>
316
317 </sect2>
318
319 <sect2 role="configuration">
320 <title>Configuring Thunderbird</title>
321
322 <sect3><title>Configuration Information</title>
323
324 <para>
325 If your Window or Desktop Manager does not allow you to configure a
326 default browser, you can add a configuration parameter to
327 <application>Thunderbird</application> so that a browser will start when
328 you click on an Internet/intranet/local URL. The procedure to check
329 or modify any of the configuration parameters is quite simple and the
330 instructions here can be used to view or modify any of the parameters.
331 </para>
332
333 <para>
334 First, open the configuration dialog by opening the <quote>Edit</quote>
335 drop-down menu. Choose <quote>Preferences</quote> and then click on the
336 <quote>Advanced</quote> icon on the top menu bar. Choose the
337 <quote>General</quote> tab and click on the <quote>Config Editor</quote>
338 button. This will display a list of the configuration preferences and
339 information related to each one. You can use the <quote>Filter:</quote>
340 bar to enter search criteria and narrow down the listed items. Changing
341 a preference can be done using two methods. One, if the preference has a
342 boolean value (True/False), simply double-click on the preference to
343 toggle the value and two, for other preferences simply right-click on
344 the desired line, choose <quote>Modify</quote> from the menu and change
345 the value. Creating new preference items is accomplished in the same
346 way, except choose <quote>New</quote> from the menu and provide the
347 desired data into the fields when prompted.
348 </para>
349
350 <para>
351 The configuration preference item you need to check so that
352 <application>Thunderbird</application> uses a specified browser is the
353 <parameter>network.protocol-handler.app.http</parameter> which should be
354 set to the path of the desired browser, e.g.
355 <option>/usr/bin/firefox</option>.
356 </para>
357
358 <tip>
359 <para>
360 There is a multitude of configuration parameters you can tweak to
361 customize <application>Thunderbird</application>. A very extensive,
362 but not so up-to-date list of these parameters can be found at
363 <ulink url="http://preferential.mozdev.org/preferences.html"/>.
364 </para>
365 </tip>
366
367 <para>
368
369 If you use a desktop environment such as <application>GNOME</application>
370 or <application>KDE</application>, a desktop file
371 <filename>thunderbird.desktop</filename> may be created, in order to
372 include a <quote><application>Thunderbird</application></quote> entry in
373 the menu. If you didn't enable
374 <application>startup-notification</application> in your mozconfig, then
375 change the StartupNotify line to false. Run the following commands as the
376 <systemitem class="username">root</systemitem> user:
377
378 </para>
379
380<screen role="root"><userinput>mkdir -pv /usr/share/{applications,pixmaps} &amp;&amp;
381
382cat &gt; /usr/share/applications/thunderbird.desktop &lt;&lt; "EOF" &amp;&amp;
383<literal>[Desktop Entry]
384Name=Thunderbird Mail
385Comment=Send and receive mail with Thunderbird
386GenericName=Mail Client
387Exec=thunderbird %u
388Terminal=false
389Type=Application
390Icon=thunderbird
391Categories=Network;Email;
392MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/rss+xml;x-scheme-handler/mailto;
393StartupNotify=true</literal>
394EOF
395
396ln -sfv /usr/lib/thunderbird/chrome/icons/default/default256.png \
397 /usr/share/pixmaps/thunderbird.png</userinput></screen>
398 </sect3>
399 </sect2>
400
401 <sect2 role="content">
402 <title>Contents</title>
403
404 <segmentedlist>
405 <segtitle>Installed Program</segtitle>
406 <segtitle>Installed Libraries</segtitle>
407 <segtitle>Installed Directory</segtitle>
408
409 <seglistitem>
410 <seg>
411 thunderbird
412 </seg>
413 <seg>
414 libldap60.so, libldif60.so, liblgpllibs.so, libmozgtk.so,
415 libmozsandbox.so, libmozwayland.so libprldap60.so, and libxul.so,
416 all in /usr/lib/thunderbird directory
417 </seg>
418 <seg>
419 /usr/lib/thunderbird
420 </seg>
421 </seglistitem>
422 </segmentedlist>
423
424 <variablelist>
425 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
426 <?dbfo list-presentation="list"?>
427 <?dbhtml list-presentation="table"?>
428
429 <varlistentry id="thunderbird-prog">
430 <term><command>thunderbird</command></term>
431 <listitem>
432 <para>
433 is <application>Mozilla</application>'s email and newsgroup client.
434 </para>
435 <indexterm zone="thunderbird thunderbird-prog">
436 <primary sortas="b-thunderbird">thunderbird</primary>
437 </indexterm>
438 </listitem>
439 </varlistentry>
440
441 </variablelist>
442
443 </sect2>
444
445</sect1>
Note: See TracBrowser for help on using the repository browser.