source: xsoft/other/thunderbird.xml@ 90c4de61

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 90c4de61 was 90c4de61, checked in by Douglas R. Reno <renodr@…>, 13 months ago

Update to Thunderbird-78.2.2, and adjust the build procedure.

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

  • Property mode set to 100644
File size: 14.8 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 "d749a52de7b6828eaab74af7ef8834de">
10 <!ENTITY thunderbird-size "337 MB">
11 <!ENTITY thunderbird-buildsize "5.2 GB (177 MB installed)">
12 <!ENTITY thunderbird-time "32 SBU (on a 4-core 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 &lfs10_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">Additional Downloads</bridgehead>
77 <itemizedlist spacing="compact">
78 <listitem>
79 <para>
80 Required patch:
81 <ulink url="&patch-root;/thunderbird-&thunderbird-version;-upstream_fixes-1.patch"/>
82 </para>
83 </listitem>
84 </itemizedlist>
85
86 <bridgehead renderas="sect3">Thunderbird Dependencies</bridgehead>
87
88 <bridgehead renderas="sect4">Required</bridgehead>
89 <para role="required">
90<!-- <xref linkend="alsa-lib"/>, no mention in log -->
91 <xref linkend="autoconf213"/>,
92 <xref linkend="cbindgen"/>,
93 <xref linkend="dbus-glib"/>,
94 both <xref linkend="gtk3"/>
95 and <xref linkend="gtk2"/>,
96 <xref linkend="llvm"/> including clang, <!-- Searched for and used a few times -->
97 <xref linkend="nodejs"/>,
98 <xref linkend="pulseaudio"/> (or <xref linkend="alsa-lib"/> if you edit
99 the mozconfig; although it is now deprecated by mozilla),
100 <xref linkend="python3"/> (rebuilt with the sqlite module),
101 <xref linkend="startup-notification"/>,
102 <!-- When thunderbird moves to 78.0 it will want python3 built against
103 sqlite3, as firefox already does. Please add here and update the
104 'required if building firefox' in (BLFS) python3. -->
105 <!-- rust is required by cbindgen
106 <xref linkend="rust"/>, -->
107 <xref linkend="zip"/>,
108 <xref linkend="unzip"/>, and
109 <xref linkend="yasm"/>
110 </para>
111
112 <bridgehead renderas="sect4">Recommended</bridgehead>
113 <para role="recommended">
114 <xref linkend="icu"/>,
115 <xref linkend="libevent"/>,
116<!-- Fails to build with version 1.8.0
117 <xref linkend="libvpx"/>,-->
118 <xref linkend="nspr"/>, and
119 <xref linkend="nss"/>
120 </para>
121
122 <note>
123 <para>
124 If you don't install recommended dependencies,
125 then internal copies of those packages will
126 be used. They might be tested to work, but
127 they can be out of date or contain security
128 holes.
129 </para>
130 </note>
131
132 <bridgehead renderas="sect4">Optional</bridgehead>
133 <para role="optional">
134 <!-- <xref linkend="curl"/>, not in build log-->
135 <xref linkend="cyrus-sasl"/>,
136 <xref linkend="doxygen"/>,
137 <xref linkend="GConf"/>,
138 <!--<xref linkend="gst10-plugins-base"/> (with
139 <xref linkend="gst10-plugins-good"/> and
140 <xref linkend="gst10-libav"/> at runtime),-->
141 <!-- <xref linkend="openjdk"/>, not in build log -->
142 <!--<xref linkend="pulseaudio"/>,-->
143 <xref linkend="wget"/>, and
144 <xref linkend="wireless_tools"/>
145 </para>
146
147 <para condition="html" role="usernotes">
148 User Notes: <ulink url="&blfs-wiki;/Thunderbird"/>
149 </para>
150 </sect2>
151
152 <sect2 role="installation">
153 <title>Installation of Thunderbird</title>
154
155 <note>
156 <para>
157 The build process for Thunderbird can use 8GB+ of RAM when linking.
158 Make sure that you have adequate swap or RAM before continuing.
159 </para>
160 </note>
161
162 <para>
163 The configuration of <application>Thunderbird</application> is
164 accomplished by creating a <filename>mozconfig</filename> file containing
165 the desired configuration options. A default
166 <filename>mozconfig</filename> is created below. To see the entire list
167 of available configuration options (and a brief description of each),
168 issue <command>mozilla/configure --help</command>. Create the file with
169 the following command:
170 </para>
171
172<screen><userinput>cat &gt; mozconfig &lt;&lt; "EOF"
173<literal># If you have a multicore machine, all cores will be used.
174
175# If you have installed wireless-tools comment out this line:
176ac_add_options --disable-necko-wifi
177
178# Uncomment the following option if you have not installed PulseAudio
179#ac_add_options --disable-pulseaudio
180# and uncomment this if you installed alsa-lib instead of PulseAudio
181#ac_add_options --enable-alsa
182<!-- always built in versions 78+. The option is a noop
183# If you want to compile the Mozilla Calendar, uncomment this line:
184#ac_add_options - -enable-calendar
185-->
186# Comment out following options if you have not installed
187# recommended dependencies:
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-debug-symbols
214ac_add_options --disable-tests
215
216ac_add_options --enable-optimize=-O2
217ac_add_options --enable-linker=gold
218ac_add_options --enable-strip
219ac_add_options --enable-install-strip
220
221ac_add_options --enable-official-branding
222
223ac_add_options --enable-system-ffi
224ac_add_options --enable-system-pixman
225
226ac_add_options --with-system-jpeg
227ac_add_options --with-system-png
228ac_add_options --with-system-zlib</literal>
229EOF</userinput></screen>
230
231 <para>
232 First, fix a regression in <application>Thunderbird</application> that
233 prevents the mail panes and other UI elements from functioning properly:
234 </para>
235
236<screen><userinput remap="pre">patch -Np1 -i ../thunderbird-&thunderbird-version;-upstream_fixes-1.patch</userinput></screen>
237
238 <para>
239 Compile <application>Thunderbird</application> by issuing the following
240 commands:
241 </para>
242
243 <note>
244 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
245 href="../../xincludes/mozshm.xml"/>
246
247 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
248 href="../../xincludes/mozmach.xml"/>
249
250 </note>
251
252<screen><userinput>CC=gcc CXX=g++ ./mach build</userinput></screen>
253
254 <para>
255 This package does not come with a test suite.
256 </para>
257
258 <para>
259 Install <application>Thunderbird</application> by running the following
260 commands as the <systemitem class="username">root</systemitem> user:
261 </para>
262
263<screen role="root"><userinput>./mach install</userinput></screen>
264
265 </sect2>
266
267 <sect2 role="commands">
268 <title>Command Explanations</title>
269<!-- might be necessary, we need to verify this.
270 <para>
271 <command>test $(uname -m) = "i686" &amp;&amp; sed ...</command>: On this
272 version of thunderbird, an old bug has reappeared in 32-bit builds. With
273 optimization, the install fails with a Python error. This command will
274 fix i686 builds and preserve the optimization on x86_64.
275 </para>-->
276
277 <para>
278 <command>CC=gcc CXX=g++ ./mach build</command>:
279 <application>Thunderbird</application>
280 now uses this <application>python3</application> script to run the
281 build and install. Forcing GCC causes the build to come out smaller
282 and run faster.
283 <!-- For more info, see Ticket #13969. ~12GB to ~5GB build size,
284 significantly smaller build time.-->
285 </para>
286
287 <para>
288 <option>./mach build --verbose</option>: Use this alternative if you
289 need details of which files are being compiled, together with any C or
290 C++ flags being used.
291 </para>
292
293 </sect2>
294
295 <sect2 role="configuration">
296 <title>Configuring Thunderbird</title>
297
298 <sect3><title>Configuration Information</title>
299
300 <para>
301 If your Window or Desktop Manager does not allow you to configure a
302 default browser, you can add a configuration parameter to
303 <application>Thunderbird</application> so that a browser will start when
304 you click on an Internet/intranet/local URL. The procedure to check
305 or modify any of the configuration parameters is quite simple and the
306 instructions here can be used to view or modify any of the parameters.
307 </para>
308
309 <para>
310 First, open the configuration dialog by opening the <quote>Edit</quote>
311 drop-down menu. Choose <quote>Preferences</quote> and then scroll down
312 to the bottom of the page. Then, click the <quote>Config Editor</quote>
313 button. Click on the <quote>I accept the risk!</quote> button.
314 This will display a list of the configuration preferences and
315 information related to each one. You can use the <quote>Filter:</quote>
316 bar to enter search criteria and narrow down the listed items. Changing
317 a preference can be done using two methods. One, if the preference has a
318 boolean value (True/False), simply double-click on the preference to
319 toggle the value and two, for other preferences simply right-click on
320 the desired line, choose <quote>Modify</quote> from the menu and change
321 the value. Creating new preference items is accomplished in the same
322 way, except choose <quote>New</quote> from the menu and provide the
323 desired data into the fields when prompted.
324 </para>
325
326 <para>
327 The configuration preference item you need to check so that
328 <application>Thunderbird</application> uses a specified browser is the
329 <parameter>network.protocol-handler.app.http</parameter> which should be
330 set to the path of the desired browser, e.g.
331 <option>/usr/bin/firefox</option>.
332 </para>
333
334 <tip>
335 <para>
336 There is a multitude of configuration parameters you can tweak to
337 customize <application>Thunderbird</application>. A very extensive,
338 but not so up-to-date list of these parameters can be found at
339 <ulink url="http://preferential.mozdev.org/preferences.html"/>.
340 </para>
341 </tip>
342
343 <para>
344
345 If you use a desktop environment such as <application>GNOME</application>
346 or <application>KDE</application>, a desktop file
347 <filename>thunderbird.desktop</filename> may be created, in order to
348 include a <quote><application>Thunderbird</application></quote> entry in
349 the menu. <!--If you didn't enable
350 <application>startup-notification</application> in your mozconfig, then
351 change the StartupNotify line to false.--> Run the following commands as the
352 <systemitem class="username">root</systemitem> user:
353
354 </para>
355
356<screen role="root"><userinput>mkdir -pv /usr/share/{applications,pixmaps} &amp;&amp;
357
358cat &gt; /usr/share/applications/thunderbird.desktop &lt;&lt; "EOF" &amp;&amp;
359<literal>[Desktop Entry]
360Name=Thunderbird Mail
361Comment=Send and receive mail with Thunderbird
362GenericName=Mail Client
363Exec=thunderbird %u
364Terminal=false
365Type=Application
366Icon=thunderbird
367Categories=Network;Email;
368MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/rss+xml;x-scheme-handler/mailto;
369StartupNotify=true</literal>
370EOF
371
372ln -sfv /usr/lib/thunderbird/chrome/icons/default/default256.png \
373 /usr/share/pixmaps/thunderbird.png</userinput></screen>
374 </sect3>
375 </sect2>
376
377 <sect2 role="content">
378 <title>Contents</title>
379
380 <segmentedlist>
381 <segtitle>Installed Program</segtitle>
382 <segtitle>Installed Libraries</segtitle>
383 <segtitle>Installed Directory</segtitle>
384
385 <seglistitem>
386 <seg>
387 thunderbird
388 </seg>
389 <seg>
390 libldap60.so, libldif60.so, liblgpllibs.so, libmozgtk.so,
391 libmozsandbox.so, libmozsqlite3.so, libmozwayland.so,
392 libprldap60.so, libnrp.so, and libxul.so, all in the
393 /usr/lib/thunderbird directory
394 </seg>
395 <seg>
396 /usr/lib/thunderbird
397 </seg>
398 </seglistitem>
399 </segmentedlist>
400
401 <variablelist>
402 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
403 <?dbfo list-presentation="list"?>
404 <?dbhtml list-presentation="table"?>
405
406 <varlistentry id="thunderbird-prog">
407 <term><command>thunderbird</command></term>
408 <listitem>
409 <para>
410 is <application>Mozilla</application>'s email and newsgroup client.
411 </para>
412 <indexterm zone="thunderbird thunderbird-prog">
413 <primary sortas="b-thunderbird">thunderbird</primary>
414 </indexterm>
415 </listitem>
416 </varlistentry>
417
418 </variablelist>
419
420 </sect2>
421
422</sect1>
Note: See TracBrowser for help on using the repository browser.