summaryrefslogtreecommitdiff
path: root/testing
diff options
context:
space:
mode:
authorPatrick J Volkerding <volkerdi@slackware.com>2020-08-25 18:59:52 +0000
committerEric Hameleers <alien@slackware.com>2020-08-26 08:59:56 +0200
commit409d51497d9c01e406ce18cc065a1c35d08f8d97 (patch)
tree367aef1fac8d27d422e660a1154bdd2de526e5b1 /testing
parent855c3ceaa9f5e68508028608316d973e2068c924 (diff)
downloadcurrent-409d51497d9c01e406ce18cc065a1c35d08f8d97.tar.gz
Tue Aug 25 18:59:52 UTC 202020200825185952
a/kernel-firmware-20200824_74bd44f-noarch-1.txz: Upgraded. ap/vim-8.2.1522-x86_64-1.txz: Upgraded. l/libuv-1.39.0-x86_64-1.txz: Upgraded. x/libX11-1.6.12-x86_64-1.txz: Upgraded. x/xorg-server-1.20.9-x86_64-1.txz: Upgraded. x/xorg-server-xephyr-1.20.9-x86_64-1.txz: Upgraded. x/xorg-server-xnest-1.20.9-x86_64-1.txz: Upgraded. x/xorg-server-xvfb-1.20.9-x86_64-1.txz: Upgraded. x/xorg-server-xwayland-1.20.9-x86_64-1.txz: Upgraded. xap/vim-gvim-8.2.1522-x86_64-1.txz: Upgraded. testing/packages/mozilla-thunderbird-78.2.0-x86_64-1.txz: Added. https://www.mozilla.org/en-US/thunderbird/78.2.0/releasenotes/ I'm putting this into /testing first so that any problems with OpenPGP can be reported before it goes into the main tree. Here's the current status from the release notes and Thunderbird:OpenPGP wiki page: Add-on support: As of version 78.0, Thunderbird only supports MailExtensions. Your favorite add-ons may not have been updated for compatibility. At this time, users of the Enigmail Add-on should not update to Thunderbird 78. OpenPGP in Thunderbird 78.2.0 has reached feature complete state, but it's still disabled by default, to allow more time for testing, correctness, and localization. See the wiki for how to enable and help with testing. If you use OpenPGP for non-critical purposes, then you are welcome to enable it manually and help with testing. To enable it in Thunderbird 78.0, use the config editor and change the value of preference mail.openpgp.enable to true, then restart Thunderbird. If you are running 78.x and have the previous Enigmail Add-on installed, then Enigmail will update to version 2.2.x, which is a minimal release that helps you to migrate the keys and settings to Thunderbird 78. If you haven't used Enigmail previously, you can enable OpenPGP for an email account in account settings. See the release notes for more complete information about testing and reporting bugs.
Diffstat (limited to 'testing')
-rw-r--r--testing/source/mozilla-thunderbird/autoconf/autoconf-2.13-consolidated_fixes-1.patch504
-rwxr-xr-xtesting/source/mozilla-thunderbird/autoconf/autoconf.build81
-rwxr-xr-xtesting/source/mozilla-thunderbird/build-deps.sh41
-rw-r--r--testing/source/mozilla-thunderbird/build-deps/autoconf/autoconf-2.13-consolidated_fixes-1.patch504
-rwxr-xr-xtesting/source/mozilla-thunderbird/build-deps/autoconf/autoconf.build75
-rwxr-xr-xtesting/source/mozilla-thunderbird/build-deps/cbindgen/cbindgen.build54
-rwxr-xr-xtesting/source/mozilla-thunderbird/build-deps/nodejs/nodejs.build91
-rw-r--r--testing/source/mozilla-thunderbird/build-deps/nodejs/nodejs.url2
-rw-r--r--testing/source/mozilla-thunderbird/gkrust.a.no.networking.check.diff27
l---------testing/source/mozilla-thunderbird/gold/gold1
l---------testing/source/mozilla-thunderbird/gold/ld1
-rwxr-xr-xtesting/source/mozilla-thunderbird/gold/ld.gold6
-rw-r--r--testing/source/mozilla-thunderbird/mozilla-firefox.xpcom_arm.patch18
-rwxr-xr-xtesting/source/mozilla-thunderbird/mozilla-thunderbird.SlackBuild370
-rw-r--r--testing/source/mozilla-thunderbird/mozilla-thunderbird.desktop84
-rw-r--r--testing/source/mozilla-thunderbird/slack-desc19
-rw-r--r--testing/source/mozilla-thunderbird/tb.ui.scrollToClick.diff12
-rw-r--r--testing/source/mozilla-thunderbird/unbreakdocs.diff31
18 files changed, 1921 insertions, 0 deletions
diff --git a/testing/source/mozilla-thunderbird/autoconf/autoconf-2.13-consolidated_fixes-1.patch b/testing/source/mozilla-thunderbird/autoconf/autoconf-2.13-consolidated_fixes-1.patch
new file mode 100644
index 00000000..5e7b2311
--- /dev/null
+++ b/testing/source/mozilla-thunderbird/autoconf/autoconf-2.13-consolidated_fixes-1.patch
@@ -0,0 +1,504 @@
+Submitted By: Ken Moffat <ken at linuxfromscratch dot org>
+Date: 2016-06-11
+Initial Package Version: 2.13
+Upstream Status: Version is historic and unmaintained.
+Origin: Found at fedora, plus fixes for LFS.
+Description: All of the patches currently used by fedora, except for
+the patch which ensures gawk is used in preference to mawk (we do not
+install mawk). For LFS: we put mktemp in /usr/bin not /bin, remove
+the install-info target because that will overwrite standards.info
+with an old version (fedora always use a DESTDIR), and change the
+man and info dirs to ${datadir}/ i.e. /usr/share (an empty /usr/info
+will otherwise be created).
+
+diff -Naur a/acgeneral.m4 b/acgeneral.m4
+--- a/acgeneral.m4 1999-01-05 13:27:37.000000000 +0000
++++ b/acgeneral.m4 2016-06-11 00:18:24.429043947 +0100
+@@ -1817,10 +1817,6 @@
+ [cat > conftest.$ac_ext <<EOF
+ [#]line __oline__ "configure"
+ #include "confdefs.h"
+-ifelse(AC_LANG, CPLUSPLUS, [#ifdef __cplusplus
+-extern "C" void exit(int);
+-#endif
+-])dnl
+ [$1]
+ EOF
+ if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+@@ -1988,12 +1984,12 @@
+ AC_MSG_CHECKING(size of $1)
+ AC_CACHE_VAL(AC_CV_NAME,
+ [AC_TRY_RUN([#include <stdio.h>
+-main()
++int main()
+ {
+ FILE *f=fopen("conftestval", "w");
+- if (!f) exit(1);
++ if (!f) return(1);
+ fprintf(f, "%d\n", sizeof($1));
+- exit(0);
++ return(0);
+ }], AC_CV_NAME=`cat conftestval`, AC_CV_NAME=0, ifelse([$2], , , AC_CV_NAME=$2))])dnl
+ AC_MSG_RESULT($AC_CV_NAME)
+ AC_DEFINE_UNQUOTED(AC_TYPE_NAME, $AC_CV_NAME)
+@@ -2160,20 +2156,38 @@
+ dnl AC_OUTPUT_MAKE_DEFS()
+ define(AC_OUTPUT_MAKE_DEFS,
+ [# Transform confdefs.h into DEFS.
+-dnl Using a here document instead of a string reduces the quoting nightmare.
+ # Protect against shell expansion while executing Makefile rules.
+ # Protect against Makefile macro expansion.
+-cat > conftest.defs <<\EOF
++#
++# If the first sed substitution is executed (which looks for macros that
++# take arguments), then we branch to the quote section. Otherwise,
++# look for a macro that doesn't take arguments.
++cat >confdef2opt.sed <<\_ACEOF
+ changequote(<<, >>)dnl
+-s%<<#define>> \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g
+-s%[ `~<<#>>$^&*(){}\\|;'"<>?]%\\&%g
+-s%\[%\\&%g
+-s%\]%\\&%g
+-s%\$%$$%g
++t clear
++: clear
++s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\),-D\1=\2,g
++t quote
++s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\),-D\1=\2,g
++t quote
++d
++: quote
++s,[ `~#$^&*(){}\\|;'"<>?],\\&,g
++s,\[,\\&,g
++s,\],\\&,g
++s,\$,$$,g
++p
+ changequote([, ])dnl
+-EOF
+-DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '`
+-rm -f conftest.defs
++_ACEOF
++# We use echo to avoid assuming a particular line-breaking character.
++# The extra dot is to prevent the shell from consuming trailing
++# line-breaks from the sub-command output. A line-break within
++# single-quotes doesn't work because, if this script is created in a
++# platform that uses two characters for line-breaks (e.g., DOS), tr
++# would break.
++ac_LF_and_DOT=`echo; echo .`
++DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'`
++rm -f confdef2opt.sed
+ ])
+
+ dnl Do the variable substitutions to create the Makefiles or whatever.
+diff -Naur a/acspecific.m4 b/acspecific.m4
+--- a/acspecific.m4 1999-01-05 13:27:52.000000000 +0000
++++ b/acspecific.m4 2016-06-11 00:18:17.533078644 +0100
+@@ -152,8 +152,41 @@
+ CXXFLAGS=
+ fi
+ fi
++
++AC_PROG_CXX_EXIT_DECLARATION
+ ])
+
++
++# AC_PROG_CXX_EXIT_DECLARATION
++# -----------------------------
++# Find a valid prototype for exit and declare it in confdefs.h.
++AC_DEFUN(AC_PROG_CXX_EXIT_DECLARATION,
++[for ac_declaration in \
++ ''\
++ '#include <stdlib.h>' \
++ 'extern "C" void std::exit (int) throw (); using std::exit;' \
++ 'extern "C" void std::exit (int); using std::exit;' \
++ 'extern "C" void exit (int) throw ();' \
++ 'extern "C" void exit (int);' \
++ 'void exit (int);'
++do
++ AC_TRY_COMPILE([#include <stdlib.h>
++$ac_declaration],
++ [exit (42);],
++ [],
++ [continue])
++ AC_TRY_COMPILE([$ac_declaration],
++ [exit (42);],
++ [break])
++done
++if test -n "$ac_declaration"; then
++ echo '#ifdef __cplusplus' >>confdefs.h
++ echo $ac_declaration >>confdefs.h
++ echo '#endif' >>confdefs.h
++fi
++])# AC_PROG_CXX_EXIT_DECLARATION
++
++
+ dnl Determine a Fortran 77 compiler to use. If `F77' is not already set
+ dnl in the environment, check for `g77', `f77' and `f2c', in that order.
+ dnl Set the output variable `F77' to the name of the compiler found.
+@@ -1010,7 +1043,7 @@
+ ])
+
+ AC_DEFUN(AC_FUNC_MMAP,
+-[AC_CHECK_HEADERS(unistd.h)
++[AC_CHECK_HEADERS(stdlib.h unistd.h sys/stat.h sys/types.h)
+ AC_CHECK_FUNCS(getpagesize)
+ AC_CACHE_CHECK(for working mmap, ac_cv_func_mmap_fixed_mapped,
+ [AC_TRY_RUN([
+@@ -1039,11 +1072,24 @@
+ #include <fcntl.h>
+ #include <sys/mman.h>
+
++#if HAVE_SYS_TYPES_H
++# include <sys/types.h>
++#endif
++
++#if HAVE_STDLIB_H
++# include <stdlib.h>
++#endif
++
++#if HAVE_SYS_STAT_H
++# include <sys/stat.h>
++#endif
++
++#if HAVE_UNISTD_H
++# include <unistd.h>
++#endif
++
+ /* This mess was copied from the GNU getpagesize.h. */
+ #ifndef HAVE_GETPAGESIZE
+-# ifdef HAVE_UNISTD_H
+-# include <unistd.h>
+-# endif
+
+ /* Assume that all systems that can run configure have sys/param.h. */
+ # ifndef HAVE_SYS_PARAM_H
+@@ -1373,6 +1419,8 @@
+ r.ru_majflt = r.ru_minflt = 0;
+ switch (fork()) {
+ case 0: /* Child. */
++ /* Unless we actually _do_ something, the kernel sometimes doesn't chalk up any system time to this process. */
++ if(fork()) { i = 123; wait(NULL); } else { i = 234; exit(0); }
+ sleep(1); /* Give up the CPU. */
+ _exit(0);
+ case -1: _exit(0); /* What can we do? */
+diff -Naur a/autoconf.sh b/autoconf.sh
+--- a/autoconf.sh 1999-01-05 13:27:53.000000000 +0000
++++ b/autoconf.sh 2016-06-11 00:22:17.351872133 +0100
+@@ -45,20 +45,20 @@
+ esac
+
+ : ${TMPDIR=/tmp}
+-tmpout=${TMPDIR}/acout.$$
++tmpout=`/usr/bin/mktemp ${TMPDIR}/acout.XXXXXX`
+ localdir=
+ show_version=no
+
+ while test $# -gt 0 ; do
+ case "${1}" in
+ -h | --help | --h* )
+- echo "${usage}" 1>&2; exit 0 ;;
++ echo "${usage}" 1>&2; rm -f $tmpout ; exit 0 ;;
+ --localdir=* | --l*=* )
+ localdir="`echo \"${1}\" | sed -e 's/^[^=]*=//'`"
+ shift ;;
+ -l | --localdir | --l*)
+ shift
+- test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; }
++ test $# -eq 0 && { echo "${usage}" 1>&2; rm -f $tmpout; exit 1; }
+ localdir="${1}"
+ shift ;;
+ --macrodir=* | --m*=* )
+@@ -66,7 +66,7 @@
+ shift ;;
+ -m | --macrodir | --m* )
+ shift
+- test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; }
++ test $# -eq 0 && { echo "${usage}" 1>&2; rm -f $tmpout; exit 1; }
+ AC_MACRODIR="${1}"
+ shift ;;
+ --version | --v* )
+@@ -76,7 +76,7 @@
+ - ) # Use stdin as input.
+ break ;;
+ -* )
+- echo "${usage}" 1>&2; exit 1 ;;
++ echo "${usage}" 1>&2; rm -f $tmpout; exit 1 ;;
+ * )
+ break ;;
+ esac
+@@ -86,23 +86,25 @@
+ version=`sed -n 's/define.AC_ACVERSION.[ ]*\([0-9.]*\).*/\1/p' \
+ $AC_MACRODIR/acgeneral.m4`
+ echo "Autoconf version $version"
++ rm -f $tmpout
+ exit 0
+ fi
+
+ case $# in
+ 0) infile=configure.in ;;
+ 1) infile="$1" ;;
+- *) echo "$usage" >&2; exit 1 ;;
++ *) echo "$usage" >&2; rm -f $tmpout; exit 1 ;;
+ esac
+
+ trap 'rm -f $tmpin $tmpout; exit 1' 1 2 15
+
+-tmpin=${TMPDIR}/acin.$$ # Always set this, to avoid bogus errors from some rm's.
++tmpin=`/usr/bin/mktemp ${TMPDIR}/acin.XXXXXX`
++# Always set this, to avoid bogus errors from some rm's.
+ if test z$infile = z-; then
+ infile=$tmpin
+- cat > $infile
+ elif test ! -r "$infile"; then
+ echo "autoconf: ${infile}: No such file or directory" >&2
++ rm -f $tmpin $tmpout
+ exit 1
+ fi
+
+@@ -111,6 +113,8 @@
+ else
+ use_localdir=
+ fi
++# Make sure we don't leave those around - they are annoying
++trap 'rm -f $tmpin $tmpout' 0
+
+ # Use the frozen version of Autoconf if available.
+ r= f=
+@@ -118,7 +122,7 @@
+ case `$M4 --help < /dev/null 2>&1` in
+ *reload-state*) test -r $AC_MACRODIR/autoconf.m4f && { r=--reload f=f; } ;;
+ *traditional*) ;;
+-*) echo Autoconf requires GNU m4 1.1 or later >&2; rm -f $tmpin; exit 1 ;;
++*) echo Autoconf requires GNU m4 1.1 or later >&2; rm -f $tmpin $tmpout; exit 1 ;;
+ esac
+
+ $M4 -I$AC_MACRODIR $use_localdir $r autoconf.m4$f $infile > $tmpout ||
+@@ -154,6 +158,6 @@
+ /__oline__/s/^\([0-9][0-9]*\):\(.*\)__oline__/\2\1/
+ ' >&4
+
+-rm -f $tmpout
++rm -f $tmpout $tmpin
+
+ exit $status
+diff -Naur a/autoconf.texi b/autoconf.texi
+--- a/autoconf.texi 1999-01-05 13:28:37.000000000 +0000
++++ b/autoconf.texi 2016-06-11 00:18:46.360933604 +0100
+@@ -1,7 +1,7 @@
+ \input texinfo @c -*-texinfo-*-
+ @c %**start of header
+-@setfilename autoconf.info
+-@settitle Autoconf
++@setfilename autoconf.info
++@settitle Autoconf
+ @c For double-sided printing, uncomment:
+ @c @setchapternewpage odd
+ @c %**end of header
+@@ -17,7 +17,8 @@
+ @ifinfo
+ @format
+ START-INFO-DIR-ENTRY
+-* Autoconf: (autoconf). Create source code configuration scripts.
++* Autoconf: (autoconf). Create source code configuration scripts.
++ This is a legacy version of autoconf.
+ END-INFO-DIR-ENTRY
+ @end format
+
+diff -Naur a/autoheader.sh b/autoheader.sh
+--- a/autoheader.sh 1999-01-05 13:28:39.000000000 +0000
++++ b/autoheader.sh 2016-06-11 00:22:17.351872133 +0100
+@@ -194,9 +194,9 @@
+ # Some fgrep's have limits on the number of lines that can be in the
+ # pattern on the command line, so use a temporary file containing the
+ # pattern.
+- (fgrep_tmp=${TMPDIR-/tmp}/autoh$$
++ (fgrep_tmp=`/usr/bin/mktemp ${TMPDIR-/tmp}/autoh$$.XXXXXX`
+ trap "rm -f $fgrep_tmp; exit 1" 1 2 15
+- cat > $fgrep_tmp <<EOF
++ cat >> $fgrep_tmp <<EOF
+ $syms
+ EOF
+ fgrep -f $fgrep_tmp
+diff -Naur a/autoupdate.sh b/autoupdate.sh
+--- a/autoupdate.sh 1999-01-05 13:28:42.000000000 +0000
++++ b/autoupdate.sh 2016-06-11 00:23:19.151561252 +0100
+@@ -26,7 +26,7 @@
+ Usage: autoupdate [-h] [--help] [-m dir] [--macrodir=dir]
+ [--version] [template-file]"
+
+-sedtmp=/tmp/acups.$$
++sedtmp=`/usr/bin/mktemp /tmp/acups.XXXXXX`
+ # For debugging.
+ #sedtmp=/tmp/acups
+ show_version=no
+@@ -35,13 +35,13 @@
+ while test $# -gt 0 ; do
+ case "${1}" in
+ -h | --help | --h* )
+- echo "${usage}" 1>&2; exit 0 ;;
++ echo "${usage}" 1>&2; rm -f $sedtmp; exit 0 ;;
+ --macrodir=* | --m*=* )
+ AC_MACRODIR="`echo \"${1}\" | sed -e 's/^[^=]*=//'`"
+ shift ;;
+ -m | --macrodir | --m* )
+ shift
+- test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; }
++ test $# -eq 0 && { echo "${usage}" 1>&2; rm -f $sedtmp; exit 1; }
+ AC_MACRODIR="${1}"
+ shift ;;
+ --version | --versio | --versi | --vers)
+@@ -51,7 +51,7 @@
+ - ) # Use stdin as input.
+ break ;;
+ -* )
+- echo "${usage}" 1>&2; exit 1 ;;
++ echo "${usage}" 1>&2; rm -f $sedtmp; exit 1 ;;
+ * )
+ break ;;
+ esac
+@@ -61,6 +61,7 @@
+ version=`sed -n 's/define.AC_ACVERSION.[ ]*\([0-9.]*\).*/\1/p' \
+ $AC_MACRODIR/acgeneral.m4`
+ echo "Autoconf version $version"
++ rm -f $sedtmp
+ exit 0
+ fi
+
+@@ -68,6 +69,7 @@
+
+ tmpout=acupo.$$
+ trap 'rm -f $sedtmp $tmpout; exit 1' 1 2 15
++trap 'rm -f $sedtmp' 0
+ case $# in
+ 0) infile=configure.in; out="> $tmpout"
+ # Make sure $infile can be read, and $tmpout has the same permissions.
+diff -Naur a/configure b/configure
+--- a/configure 1999-01-05 13:28:57.000000000 +0000
++++ b/configure 2016-06-11 00:50:57.771231914 +0100
+@@ -43,8 +43,8 @@
+ libdir='${exec_prefix}/lib'
+ includedir='${prefix}/include'
+ oldincludedir='/usr/include'
+-infodir='${prefix}/info'
+-mandir='${prefix}/man'
++infodir='${datadir}/info'
++mandir='${datadir}/man'
+
+ # Initialize some other variables.
+ subdirs=
+diff -Naur a/Makefile.in b/Makefile.in
+--- a/Makefile.in 1999-01-05 13:27:16.000000000 +0000
++++ b/Makefile.in 2016-06-11 00:29:34.005678107 +0100
+@@ -49,7 +49,7 @@
+
+ # Directory in which to install library files.
+ datadir = @datadir@
+-acdatadir = $(datadir)/autoconf
++acdatadir = $(datadir)/autoconf-2.13
+
+ # Directory in which to install documentation info files.
+ infodir = @infodir@
+@@ -68,8 +68,8 @@
+ DISTFILES = AUTHORS COPYING ChangeLog ChangeLog.1 INSTALL \
+ Makefile.in NEWS README TODO $(M4FILES) \
+ acconfig.h acfunctions acheaders acidentifiers \
+- acmakevars acprograms autoconf.info* \
+- autoconf.sh autoconf.texi install.texi \
++ acmakevars acprograms autoconf.info* \
++ autoconf.sh autoconf.texi install.texi \
+ autoheader.sh autoscan.pl autoreconf.sh autoupdate.sh ifnames.sh \
+ config.guess config.sub configure configure.in \
+ install-sh mkinstalldirs texinfo.tex \
+@@ -106,11 +106,11 @@
+ autoconf.m4f: autoconf.m4 acgeneral.m4 acspecific.m4 acoldnames.m4
+ autoheader.m4f: autoheader.m4 acgeneral.m4 acspecific.m4 acoldnames.m4
+
+-info: autoconf.info @standards_info@ INSTALL
++info: autoconf.info @standards_info@ INSTALL
+
+ # Use --no-split to avoid creating filenames > 14 chars.
+-autoconf.info: autoconf.texi install.texi
+- $(MAKEINFO) -I$(srcdir) $(srcdir)/autoconf.texi --no-split --output=$@
++autoconf.info: autoconf.texi install.texi
++ $(MAKEINFO) -I$(srcdir) $(srcdir)/autoconf.texi --no-split --output=$@
+
+ INSTALL: install.texi
+ $(MAKEINFO) -I$(srcdir) $(srcdir)/install.texi --output=$@ \
+@@ -121,8 +121,8 @@
+
+ dvi: autoconf.dvi @standards_dvi@
+
+-autoconf.dvi: autoconf.texi
+- $(TEXI2DVI) $(srcdir)/autoconf.texi
++autoconf.dvi: autoconf.texi
++ $(TEXI2DVI) $(srcdir)/autoconf.texi
+
+ standards.dvi: standards.texi make-stds.texi
+ $(TEXI2DVI) $(srcdir)/standards.texi
+@@ -137,35 +137,35 @@
+ cd testsuite && ${MAKE} AUTOCONF=${bindir}/autoconf $@
+
+ installdirs:
+- $(SHELL) ${srcdir}/mkinstalldirs $(bindir) $(infodir) $(acdatadir)
++ $(SHELL) ${srcdir}/mkinstalldirs $(DESTDIR)/$(bindir) $(DESTDIR)/$(infodir) $(DESTDIR)/$(acdatadir)
+
+-install: all $(M4FILES) acconfig.h installdirs install-info
++install: all $(M4FILES) acconfig.h installdirs
+ for p in $(ASCRIPTS); do \
+- $(INSTALL_PROGRAM) $$p $(bindir)/`echo $$p|sed '$(transform)'`; \
++ $(INSTALL_PROGRAM) $$p $(DESTDIR)/$(bindir)/`echo $$p|sed '$(transform)'`; \
+ done
+ for i in $(M4FROZEN); do \
+- $(INSTALL_DATA) $$i $(acdatadir)/$$i; \
++ $(INSTALL_DATA) $$i $(DESTDIR)/$(acdatadir)/$$i; \
+ done
+ for i in $(M4FILES) acconfig.h; do \
+- $(INSTALL_DATA) $(srcdir)/$$i $(acdatadir)/$$i; \
++ $(INSTALL_DATA) $(srcdir)/$$i $(DESTDIR)/$(acdatadir)/$$i; \
+ done
+ -if test -f autoscan; then \
+- $(INSTALL_PROGRAM) autoscan $(bindir)/`echo autoscan|sed '$(transform)'`; \
++ $(INSTALL_PROGRAM) autoscan $(DESTDIR)/$(bindir)/`echo autoscan|sed '$(transform)'`; \
+ for i in acfunctions acheaders acidentifiers acprograms \
+ acmakevars; do \
+- $(INSTALL_DATA) $(srcdir)/$$i $(acdatadir)/$$i; \
++ $(INSTALL_DATA) $(srcdir)/$$i $(DESTDIR)/$(acdatadir)/$$i; \
+ done; \
+ else :; fi
+
+ # Don't cd, to avoid breaking install-sh references.
+ install-info: info installdirs
+- if test -f autoconf.info; then \
++ if test -f autoconf.info; then \
+ for i in *.info*; do \
+- $(INSTALL_DATA) $$i $(infodir)/$$i; \
++ $(INSTALL_DATA) $$i $(DESTDIR)/$(infodir)/$$i; \
+ done; \
+ else \
+ for i in $(srcdir)/*.info*; do \
+- $(INSTALL_DATA) $$i $(infodir)/`echo $$i | sed 's|^$(srcdir)/||'`; \
++ $(INSTALL_DATA) $$i $(DESTDIR)/$(infodir)/`echo $$i | sed 's|^$(srcdir)/||'`; \
+ done; \
+ fi
+
+@@ -174,7 +174,7 @@
+ rm -f $(bindir)/`echo $$p|sed '$(transform)'`; \
+ done
+ rm -fr $(acdatadir)
+- cd $(infodir) && rm -f autoconf.info*
++ cd $(infodir) && rm -f autoconf.info*
+ if test -f standards.info || test -f $(srcdir)/standards.info; \
+ then cd $(infodir) && rm -f standards.info*; fi
+
+diff -Naur a/testsuite/autoconf.s/syntax.exp b/testsuite/autoconf.s/syntax.exp
+--- a/testsuite/autoconf.s/syntax.exp 1999-01-05 13:29:54.000000000 +0000
++++ b/testsuite/autoconf.s/syntax.exp 2016-06-11 00:18:51.996905247 +0100
+@@ -2,7 +2,7 @@
+
+ send_user "Checking for syntax errors in the specific tests...\n"
+ set script {s/^AC_DEFUN(\([^,]*\).*/\1/p}
+-set macros [exec sed -n $script $srcdir/../acspecific.m4]
++set macros [exec sed -n $script $srcdir/../acspecific.m4 | grep -v -e AC_FUNC_GETLOADAVG -e F77]
+
+ foreach mac $macros {
+ send_user "$mac\n"
diff --git a/testing/source/mozilla-thunderbird/autoconf/autoconf.build b/testing/source/mozilla-thunderbird/autoconf/autoconf.build
new file mode 100755
index 00000000..7dae1bad
--- /dev/null
+++ b/testing/source/mozilla-thunderbird/autoconf/autoconf.build
@@ -0,0 +1,81 @@
+#!/bin/sh
+
+# Copyright 2005-2016 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+PKGNAM=autoconf
+VERSION=2.13
+BUILD=${BUILD:-1}
+
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i486 ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-autoconf
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+cd $TMP
+rm -rf autoconf-$VERSION
+tar xvf $CWD/autoconf-$VERSION.tar.xz || exit 1
+cd autoconf-$VERSION
+
+zcat $CWD/autoconf-2.13-consolidated_fixes-1.patch.gz | patch -p1 --verbose || exit 1
+
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+# Build a temporary copy of autoconf-2.13 only to be used to compile
+# Firefox, since it somewhat inexplicably requires this ancient version:
+
+rm -rf $TMP/autoconf-tmp
+mkdir -p $TMP/autoconf-tmp
+# This will be at the beginning of the $PATH, so protect against nonsense
+# happening in /tmp:
+chmod 700 $TMP/autoconf-tmp
+rm -rf $TMP/autoconf-tmp/*
+mkdir -p $TMP/autoconf-tmp/usr
+
+./configure \
+ --prefix=$TMP/autoconf-tmp/usr \
+ --program-suffix=-2.13 \
+ --infodir=$TMP/autoconf-tmp/usr/info \
+ --mandir=$TMP/autoconf-tmp/usr/man \
+ --build=$ARCH-slackware-linux || exit 1
+
+make $NUMJOBS || make || exit 1
+make install || exit 1
+
diff --git a/testing/source/mozilla-thunderbird/build-deps.sh b/testing/source/mozilla-thunderbird/build-deps.sh
new file mode 100755
index 00000000..69d1a8b2
--- /dev/null
+++ b/testing/source/mozilla-thunderbird/build-deps.sh
@@ -0,0 +1,41 @@
+#!/bin/bash
+
+# Copyright 2019 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# Clear out any existing build deps:
+rm -rf $TMP/mozilla-thunderbird-build-deps
+mkdir -p $TMP/mozilla-thunderbird-build-deps
+# This will be at the beginning of the $PATH, so protect against nonsense
+# happening in /tmp:
+chmod 700 $TMP/mozilla-thunderbird-build-deps
+PATH=$TMP/mozilla-thunderbird-build-deps/usr/bin:$HOME/.cargo/bin:$PATH
+
+# cbindgen is a build-time dependency:
+( cd $CWD/build-deps/cbindgen ; ./cbindgen.build ) || exit 1
+
+if /bin/ls build-deps*.txz 1> /dev/null 2> /dev/null ; then # use prebuilt autoconf/nodejs
+ ( cd $TMP/mozilla-thunderbird-build-deps ; tar xf $CWD/build-deps*.txz )
+else
+ # We need to use the incredibly ancient autoconf-2.13 for this :/
+ ( cd $CWD/build-deps/autoconf ; ./autoconf.build ) || exit 1
+ # And node.js... WHY
+ ( cd $CWD/build-deps/nodejs ; ./nodejs.build ) || exit 1
+fi
diff --git a/testing/source/mozilla-thunderbird/build-deps/autoconf/autoconf-2.13-consolidated_fixes-1.patch b/testing/source/mozilla-thunderbird/build-deps/autoconf/autoconf-2.13-consolidated_fixes-1.patch
new file mode 100644
index 00000000..5e7b2311
--- /dev/null
+++ b/testing/source/mozilla-thunderbird/build-deps/autoconf/autoconf-2.13-consolidated_fixes-1.patch
@@ -0,0 +1,504 @@
+Submitted By: Ken Moffat <ken at linuxfromscratch dot org>
+Date: 2016-06-11
+Initial Package Version: 2.13
+Upstream Status: Version is historic and unmaintained.
+Origin: Found at fedora, plus fixes for LFS.
+Description: All of the patches currently used by fedora, except for
+the patch which ensures gawk is used in preference to mawk (we do not
+install mawk). For LFS: we put mktemp in /usr/bin not /bin, remove
+the install-info target because that will overwrite standards.info
+with an old version (fedora always use a DESTDIR), and change the
+man and info dirs to ${datadir}/ i.e. /usr/share (an empty /usr/info
+will otherwise be created).
+
+diff -Naur a/acgeneral.m4 b/acgeneral.m4
+--- a/acgeneral.m4 1999-01-05 13:27:37.000000000 +0000
++++ b/acgeneral.m4 2016-06-11 00:18:24.429043947 +0100
+@@ -1817,10 +1817,6 @@
+ [cat > conftest.$ac_ext <<EOF
+ [#]line __oline__ "configure"
+ #include "confdefs.h"
+-ifelse(AC_LANG, CPLUSPLUS, [#ifdef __cplusplus
+-extern "C" void exit(int);
+-#endif
+-])dnl
+ [$1]
+ EOF
+ if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+@@ -1988,12 +1984,12 @@
+ AC_MSG_CHECKING(size of $1)
+ AC_CACHE_VAL(AC_CV_NAME,
+ [AC_TRY_RUN([#include <stdio.h>
+-main()
++int main()
+ {
+ FILE *f=fopen("conftestval", "w");
+- if (!f) exit(1);
++ if (!f) return(1);
+ fprintf(f, "%d\n", sizeof($1));
+- exit(0);
++ return(0);
+ }], AC_CV_NAME=`cat conftestval`, AC_CV_NAME=0, ifelse([$2], , , AC_CV_NAME=$2))])dnl
+ AC_MSG_RESULT($AC_CV_NAME)
+ AC_DEFINE_UNQUOTED(AC_TYPE_NAME, $AC_CV_NAME)
+@@ -2160,20 +2156,38 @@
+ dnl AC_OUTPUT_MAKE_DEFS()
+ define(AC_OUTPUT_MAKE_DEFS,
+ [# Transform confdefs.h into DEFS.
+-dnl Using a here document instead of a string reduces the quoting nightmare.
+ # Protect against shell expansion while executing Makefile rules.
+ # Protect against Makefile macro expansion.
+-cat > conftest.defs <<\EOF
++#
++# If the first sed substitution is executed (which looks for macros that
++# take arguments), then we branch to the quote section. Otherwise,
++# look for a macro that doesn't take arguments.
++cat >confdef2opt.sed <<\_ACEOF
+ changequote(<<, >>)dnl
+-s%<<#define>> \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g
+-s%[ `~<<#>>$^&*(){}\\|;'"<>?]%\\&%g
+-s%\[%\\&%g
+-s%\]%\\&%g
+-s%\$%$$%g
++t clear
++: clear
++s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\),-D\1=\2,g
++t quote
++s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\),-D\1=\2,g
++t quote
++d
++: quote
++s,[ `~#$^&*(){}\\|;'"<>?],\\&,g
++s,\[,\\&,g
++s,\],\\&,g
++s,\$,$$,g
++p
+ changequote([, ])dnl
+-EOF
+-DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '`
+-rm -f conftest.defs
++_ACEOF
++# We use echo to avoid assuming a particular line-breaking character.
++# The extra dot is to prevent the shell from consuming trailing
++# line-breaks from the sub-command output. A line-break within
++# single-quotes doesn't work because, if this script is created in a
++# platform that uses two characters for line-breaks (e.g., DOS), tr
++# would break.
++ac_LF_and_DOT=`echo; echo .`
++DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'`
++rm -f confdef2opt.sed
+ ])
+
+ dnl Do the variable substitutions to create the Makefiles or whatever.
+diff -Naur a/acspecific.m4 b/acspecific.m4
+--- a/acspecific.m4 1999-01-05 13:27:52.000000000 +0000
++++ b/acspecific.m4 2016-06-11 00:18:17.533078644 +0100
+@@ -152,8 +152,41 @@
+ CXXFLAGS=
+ fi
+ fi
++
++AC_PROG_CXX_EXIT_DECLARATION
+ ])
+
++
++# AC_PROG_CXX_EXIT_DECLARATION
++# -----------------------------
++# Find a valid prototype for exit and declare it in confdefs.h.
++AC_DEFUN(AC_PROG_CXX_EXIT_DECLARATION,
++[for ac_declaration in \
++ ''\
++ '#include <stdlib.h>' \
++ 'extern "C" void std::exit (int) throw (); using std::exit;' \
++ 'extern "C" void std::exit (int); using std::exit;' \
++ 'extern "C" void exit (int) throw ();' \
++ 'extern "C" void exit (int);' \
++ 'void exit (int);'
++do
++ AC_TRY_COMPILE([#include <stdlib.h>
++$ac_declaration],
++ [exit (42);],
++ [],
++ [continue])
++ AC_TRY_COMPILE([$ac_declaration],
++ [exit (42);],
++ [break])
++done
++if test -n "$ac_declaration"; then
++ echo '#ifdef __cplusplus' >>confdefs.h
++ echo $ac_declaration >>confdefs.h
++ echo '#endif' >>confdefs.h
++fi
++])# AC_PROG_CXX_EXIT_DECLARATION
++
++
+ dnl Determine a Fortran 77 compiler to use. If `F77' is not already set
+ dnl in the environment, check for `g77', `f77' and `f2c', in that order.
+ dnl Set the output variable `F77' to the name of the compiler found.
+@@ -1010,7 +1043,7 @@
+ ])
+
+ AC_DEFUN(AC_FUNC_MMAP,
+-[AC_CHECK_HEADERS(unistd.h)
++[AC_CHECK_HEADERS(stdlib.h unistd.h sys/stat.h sys/types.h)
+ AC_CHECK_FUNCS(getpagesize)
+ AC_CACHE_CHECK(for working mmap, ac_cv_func_mmap_fixed_mapped,
+ [AC_TRY_RUN([
+@@ -1039,11 +1072,24 @@
+ #include <fcntl.h>
+ #include <sys/mman.h>
+
++#if HAVE_SYS_TYPES_H
++# include <sys/types.h>
++#endif
++
++#if HAVE_STDLIB_H
++# include <stdlib.h>
++#endif
++
++#if HAVE_SYS_STAT_H
++# include <sys/stat.h>
++#endif
++
++#if HAVE_UNISTD_H
++# include <unistd.h>
++#endif
++
+ /* This mess was copied from the GNU getpagesize.h. */
+ #ifndef HAVE_GETPAGESIZE
+-# ifdef HAVE_UNISTD_H
+-# include <unistd.h>
+-# endif
+
+ /* Assume that all systems that can run configure have sys/param.h. */
+ # ifndef HAVE_SYS_PARAM_H
+@@ -1373,6 +1419,8 @@
+ r.ru_majflt = r.ru_minflt = 0;
+ switch (fork()) {
+ case 0: /* Child. */
++ /* Unless we actually _do_ something, the kernel sometimes doesn't chalk up any system time to this process. */
++ if(fork()) { i = 123; wait(NULL); } else { i = 234; exit(0); }
+ sleep(1); /* Give up the CPU. */
+ _exit(0);
+ case -1: _exit(0); /* What can we do? */
+diff -Naur a/autoconf.sh b/autoconf.sh
+--- a/autoconf.sh 1999-01-05 13:27:53.000000000 +0000
++++ b/autoconf.sh 2016-06-11 00:22:17.351872133 +0100
+@@ -45,20 +45,20 @@
+ esac
+
+ : ${TMPDIR=/tmp}
+-tmpout=${TMPDIR}/acout.$$
++tmpout=`/usr/bin/mktemp ${TMPDIR}/acout.XXXXXX`
+ localdir=
+ show_version=no
+
+ while test $# -gt 0 ; do
+ case "${1}" in
+ -h | --help | --h* )
+- echo "${usage}" 1>&2; exit 0 ;;
++ echo "${usage}" 1>&2; rm -f $tmpout ; exit 0 ;;
+ --localdir=* | --l*=* )
+ localdir="`echo \"${1}\" | sed -e 's/^[^=]*=//'`"
+ shift ;;
+ -l | --localdir | --l*)
+ shift
+- test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; }
++ test $# -eq 0 && { echo "${usage}" 1>&2; rm -f $tmpout; exit 1; }
+ localdir="${1}"
+ shift ;;
+ --macrodir=* | --m*=* )
+@@ -66,7 +66,7 @@
+ shift ;;
+ -m | --macrodir | --m* )
+ shift
+- test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; }
++ test $# -eq 0 && { echo "${usage}" 1>&2; rm -f $tmpout; exit 1; }
+ AC_MACRODIR="${1}"
+ shift ;;
+ --version | --v* )
+@@ -76,7 +76,7 @@
+ - ) # Use stdin as input.
+ break ;;
+ -* )
+- echo "${usage}" 1>&2; exit 1 ;;
++ echo "${usage}" 1>&2; rm -f $tmpout; exit 1 ;;
+ * )
+ break ;;
+ esac
+@@ -86,23 +86,25 @@
+ version=`sed -n 's/define.AC_ACVERSION.[ ]*\([0-9.]*\).*/\1/p' \
+ $AC_MACRODIR/acgeneral.m4`
+ echo "Autoconf version $version"
++ rm -f $tmpout
+ exit 0
+ fi
+
+ case $# in
+ 0) infile=configure.in ;;
+ 1) infile="$1" ;;
+- *) echo "$usage" >&2; exit 1 ;;
++ *) echo "$usage" >&2; rm -f $tmpout; exit 1 ;;
+ esac
+
+ trap 'rm -f $tmpin $tmpout; exit 1' 1 2 15
+
+-tmpin=${TMPDIR}/acin.$$ # Always set this, to avoid bogus errors from some rm's.
++tmpin=`/usr/bin/mktemp ${TMPDIR}/acin.XXXXXX`
++# Always set this, to avoid bogus errors from some rm's.
+ if test z$infile = z-; then
+ infile=$tmpin
+- cat > $infile
+ elif test ! -r "$infile"; then
+ echo "autoconf: ${infile}: No such file or directory" >&2
++ rm -f $tmpin $tmpout
+ exit 1
+ fi
+
+@@ -111,6 +113,8 @@
+ else
+ use_localdir=
+ fi
++# Make sure we don't leave those around - they are annoying
++trap 'rm -f $tmpin $tmpout' 0
+
+ # Use the frozen version of Autoconf if available.
+ r= f=
+@@ -118,7 +122,7 @@
+ case `$M4 --help < /dev/null 2>&1` in
+ *reload-state*) test -r $AC_MACRODIR/autoconf.m4f && { r=--reload f=f; } ;;
+ *traditional*) ;;
+-*) echo Autoconf requires GNU m4 1.1 or later >&2; rm -f $tmpin; exit 1 ;;
++*) echo Autoconf requires GNU m4 1.1 or later >&2; rm -f $tmpin $tmpout; exit 1 ;;
+ esac
+
+ $M4 -I$AC_MACRODIR $use_localdir $r autoconf.m4$f $infile > $tmpout ||
+@@ -154,6 +158,6 @@
+ /__oline__/s/^\([0-9][0-9]*\):\(.*\)__oline__/\2\1/
+ ' >&4
+
+-rm -f $tmpout
++rm -f $tmpout $tmpin
+
+ exit $status
+diff -Naur a/autoconf.texi b/autoconf.texi
+--- a/autoconf.texi 1999-01-05 13:28:37.000000000 +0000
++++ b/autoconf.texi 2016-06-11 00:18:46.360933604 +0100
+@@ -1,7 +1,7 @@
+ \input texinfo @c -*-texinfo-*-
+ @c %**start of header
+-@setfilename autoconf.info
+-@settitle Autoconf
++@setfilename autoconf.info
++@settitle Autoconf
+ @c For double-sided printing, uncomment:
+ @c @setchapternewpage odd
+ @c %**end of header
+@@ -17,7 +17,8 @@
+ @ifinfo
+ @format
+ START-INFO-DIR-ENTRY
+-* Autoconf: (autoconf). Create source code configuration scripts.
++* Autoconf: (autoconf). Create source code configuration scripts.
++ This is a legacy version of autoconf.
+ END-INFO-DIR-ENTRY
+ @end format
+
+diff -Naur a/autoheader.sh b/autoheader.sh
+--- a/autoheader.sh 1999-01-05 13:28:39.000000000 +0000
++++ b/autoheader.sh 2016-06-11 00:22:17.351872133 +0100
+@@ -194,9 +194,9 @@
+ # Some fgrep's have limits on the number of lines that can be in the
+ # pattern on the command line, so use a temporary file containing the
+ # pattern.
+- (fgrep_tmp=${TMPDIR-/tmp}/autoh$$
++ (fgrep_tmp=`/usr/bin/mktemp ${TMPDIR-/tmp}/autoh$$.XXXXXX`
+ trap "rm -f $fgrep_tmp; exit 1" 1 2 15
+- cat > $fgrep_tmp <<EOF
++ cat >> $fgrep_tmp <<EOF
+ $syms
+ EOF
+ fgrep -f $fgrep_tmp
+diff -Naur a/autoupdate.sh b/autoupdate.sh
+--- a/autoupdate.sh 1999-01-05 13:28:42.000000000 +0000
++++ b/autoupdate.sh 2016-06-11 00:23:19.151561252 +0100
+@@ -26,7 +26,7 @@
+ Usage: autoupdate [-h] [--help] [-m dir] [--macrodir=dir]
+ [--version] [template-file]"
+
+-sedtmp=/tmp/acups.$$
++sedtmp=`/usr/bin/mktemp /tmp/acups.XXXXXX`
+ # For debugging.
+ #sedtmp=/tmp/acups
+ show_version=no
+@@ -35,13 +35,13 @@
+ while test $# -gt 0 ; do
+ case "${1}" in
+ -h | --help | --h* )
+- echo "${usage}" 1>&2; exit 0 ;;
++ echo "${usage}" 1>&2; rm -f $sedtmp; exit 0 ;;
+ --macrodir=* | --m*=* )
+ AC_MACRODIR="`echo \"${1}\" | sed -e 's/^[^=]*=//'`"
+ shift ;;
+ -m | --macrodir | --m* )
+ shift
+- test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; }
++ test $# -eq 0 && { echo "${usage}" 1>&2; rm -f $sedtmp; exit 1; }
+ AC_MACRODIR="${1}"
+ shift ;;
+ --version | --versio | --versi | --vers)
+@@ -51,7 +51,7 @@
+ - ) # Use stdin as input.
+ break ;;
+ -* )
+- echo "${usage}" 1>&2; exit 1 ;;
++ echo "${usage}" 1>&2; rm -f $sedtmp; exit 1 ;;
+ * )
+ break ;;
+ esac
+@@ -61,6 +61,7 @@
+ version=`sed -n 's/define.AC_ACVERSION.[ ]*\([0-9.]*\).*/\1/p' \
+ $AC_MACRODIR/acgeneral.m4`
+ echo "Autoconf version $version"
++ rm -f $sedtmp
+ exit 0
+ fi
+
+@@ -68,6 +69,7 @@
+
+ tmpout=acupo.$$
+ trap 'rm -f $sedtmp $tmpout; exit 1' 1 2 15
++trap 'rm -f $sedtmp' 0
+ case $# in
+ 0) infile=configure.in; out="> $tmpout"
+ # Make sure $infile can be read, and $tmpout has the same permissions.
+diff -Naur a/configure b/configure
+--- a/configure 1999-01-05 13:28:57.000000000 +0000
++++ b/configure 2016-06-11 00:50:57.771231914 +0100
+@@ -43,8 +43,8 @@
+ libdir='${exec_prefix}/lib'
+ includedir='${prefix}/include'
+ oldincludedir='/usr/include'
+-infodir='${prefix}/info'
+-mandir='${prefix}/man'
++infodir='${datadir}/info'
++mandir='${datadir}/man'
+
+ # Initialize some other variables.
+ subdirs=
+diff -Naur a/Makefile.in b/Makefile.in
+--- a/Makefile.in 1999-01-05 13:27:16.000000000 +0000
++++ b/Makefile.in 2016-06-11 00:29:34.005678107 +0100
+@@ -49,7 +49,7 @@
+
+ # Directory in which to install library files.
+ datadir = @datadir@
+-acdatadir = $(datadir)/autoconf
++acdatadir = $(datadir)/autoconf-2.13
+
+ # Directory in which to install documentation info files.
+ infodir = @infodir@
+@@ -68,8 +68,8 @@
+ DISTFILES = AUTHORS COPYING ChangeLog ChangeLog.1 INSTALL \
+ Makefile.in NEWS README TODO $(M4FILES) \
+ acconfig.h acfunctions acheaders acidentifiers \
+- acmakevars acprograms autoconf.info* \
+- autoconf.sh autoconf.texi install.texi \
++ acmakevars acprograms autoconf.info* \
++ autoconf.sh autoconf.texi install.texi \
+ autoheader.sh autoscan.pl autoreconf.sh autoupdate.sh ifnames.sh \
+ config.guess config.sub configure configure.in \
+ install-sh mkinstalldirs texinfo.tex \
+@@ -106,11 +106,11 @@
+ autoconf.m4f: autoconf.m4 acgeneral.m4 acspecific.m4 acoldnames.m4
+ autoheader.m4f: autoheader.m4 acgeneral.m4 acspecific.m4 acoldnames.m4
+
+-info: autoconf.info @standards_info@ INSTALL
++info: autoconf.info @standards_info@ INSTALL
+
+ # Use --no-split to avoid creating filenames > 14 chars.
+-autoconf.info: autoconf.texi install.texi
+- $(MAKEINFO) -I$(srcdir) $(srcdir)/autoconf.texi --no-split --output=$@
++autoconf.info: autoconf.texi install.texi
++ $(MAKEINFO) -I$(srcdir) $(srcdir)/autoconf.texi --no-split --output=$@
+
+ INSTALL: install.texi
+ $(MAKEINFO) -I$(srcdir) $(srcdir)/install.texi --output=$@ \
+@@ -121,8 +121,8 @@
+
+ dvi: autoconf.dvi @standards_dvi@
+
+-autoconf.dvi: autoconf.texi
+- $(TEXI2DVI) $(srcdir)/autoconf.texi
++autoconf.dvi: autoconf.texi
++ $(TEXI2DVI) $(srcdir)/autoconf.texi
+
+ standards.dvi: standards.texi make-stds.texi
+ $(TEXI2DVI) $(srcdir)/standards.texi
+@@ -137,35 +137,35 @@
+ cd testsuite && ${MAKE} AUTOCONF=${bindir}/autoconf $@
+
+ installdirs:
+- $(SHELL) ${srcdir}/mkinstalldirs $(bindir) $(infodir) $(acdatadir)
++ $(SHELL) ${srcdir}/mkinstalldirs $(DESTDIR)/$(bindir) $(DESTDIR)/$(infodir) $(DESTDIR)/$(acdatadir)
+
+-install: all $(M4FILES) acconfig.h installdirs install-info
++install: all $(M4FILES) acconfig.h installdirs
+ for p in $(ASCRIPTS); do \
+- $(INSTALL_PROGRAM) $$p $(bindir)/`echo $$p|sed '$(transform)'`; \
++ $(INSTALL_PROGRAM) $$p $(DESTDIR)/$(bindir)/`echo $$p|sed '$(transform)'`; \
+ done
+ for i in $(M4FROZEN); do \
+- $(INSTALL_DATA) $$i $(acdatadir)/$$i; \
++ $(INSTALL_DATA) $$i $(DESTDIR)/$(acdatadir)/$$i; \
+ done
+ for i in $(M4FILES) acconfig.h; do \
+- $(INSTALL_DATA) $(srcdir)/$$i $(acdatadir)/$$i; \
++ $(INSTALL_DATA) $(srcdir)/$$i $(DESTDIR)/$(acdatadir)/$$i; \
+ done
+ -if test -f autoscan; then \
+- $(INSTALL_PROGRAM) autoscan $(bindir)/`echo autoscan|sed '$(transform)'`; \
++ $(INSTALL_PROGRAM) autoscan $(DESTDIR)/$(bindir)/`echo autoscan|sed '$(transform)'`; \
+ for i in acfunctions acheaders acidentifiers acprograms \
+ acmakevars; do \
+- $(INSTALL_DATA) $(srcdir)/$$i $(acdatadir)/$$i; \
++ $(INSTALL_DATA) $(srcdir)/$$i $(DESTDIR)/$(acdatadir)/$$i; \
+ done; \
+ else :; fi
+
+ # Don't cd, to avoid breaking install-sh references.
+ install-info: info installdirs
+- if test -f autoconf.info; then \
++ if test -f autoconf.info; then \
+ for i in *.info*; do \
+- $(INSTALL_DATA) $$i $(infodir)/$$i; \
++ $(INSTALL_DATA) $$i $(DESTDIR)/$(infodir)/$$i; \
+ done; \
+ else \
+ for i in $(srcdir)/*.info*; do \
+- $(INSTALL_DATA) $$i $(infodir)/`echo $$i | sed 's|^$(srcdir)/||'`; \
++ $(INSTALL_DATA) $$i $(DESTDIR)/$(infodir)/`echo $$i | sed 's|^$(srcdir)/||'`; \
+ done; \
+ fi
+
+@@ -174,7 +174,7 @@
+ rm -f $(bindir)/`echo $$p|sed '$(transform)'`; \
+ done
+ rm -fr $(acdatadir)
+- cd $(infodir) && rm -f autoconf.info*
++ cd $(infodir) && rm -f autoconf.info*
+ if test -f standards.info || test -f $(srcdir)/standards.info; \
+ then cd $(infodir) && rm -f standards.info*; fi
+
+diff -Naur a/testsuite/autoconf.s/syntax.exp b/testsuite/autoconf.s/syntax.exp
+--- a/testsuite/autoconf.s/syntax.exp 1999-01-05 13:29:54.000000000 +0000
++++ b/testsuite/autoconf.s/syntax.exp 2016-06-11 00:18:51.996905247 +0100
+@@ -2,7 +2,7 @@
+
+ send_user "Checking for syntax errors in the specific tests...\n"
+ set script {s/^AC_DEFUN(\([^,]*\).*/\1/p}
+-set macros [exec sed -n $script $srcdir/../acspecific.m4]
++set macros [exec sed -n $script $srcdir/../acspecific.m4 | grep -v -e AC_FUNC_GETLOADAVG -e F77]
+
+ foreach mac $macros {
+ send_user "$mac\n"
diff --git a/testing/source/mozilla-thunderbird/build-deps/autoconf/autoconf.build b/testing/source/mozilla-thunderbird/build-deps/autoconf/autoconf.build
new file mode 100755
index 00000000..b3bf1669
--- /dev/null
+++ b/testing/source/mozilla-thunderbird/build-deps/autoconf/autoconf.build
@@ -0,0 +1,75 @@
+#!/bin/sh
+
+# Copyright 2005-2016 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+PKGNAM=autoconf
+VERSION=2.13
+BUILD=${BUILD:-1}
+
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i586 ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-autoconf
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+cd $TMP
+rm -rf autoconf-$VERSION
+tar xvf $CWD/autoconf-$VERSION.tar.xz || exit 1
+cd autoconf-$VERSION
+
+zcat $CWD/autoconf-2.13-consolidated_fixes-1.patch.gz | patch -p1 --verbose || exit 1
+
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+# Build a temporary copy of autoconf-2.13 only to be used to compile
+# Firefox, since it somewhat inexplicably requires this ancient version:
+
+mkdir -p $TMP/mozilla-thunderbird-build-deps/usr
+
+./configure \
+ --prefix=$TMP/mozilla-thunderbird-build-deps/usr \
+ --program-suffix=-2.13 \
+ --infodir=$TMP/mozilla-thunderbird-build-deps/usr/info \
+ --mandir=$TMP/mozilla-thunderbird-build-deps/usr/man \
+ --build=$ARCH-slackware-linux || exit 1
+
+make $NUMJOBS || make || exit 1
+make install || exit 1
+
diff --git a/testing/source/mozilla-thunderbird/build-deps/cbindgen/cbindgen.build b/testing/source/mozilla-thunderbird/build-deps/cbindgen/cbindgen.build
new file mode 100755
index 00000000..06116e43
--- /dev/null
+++ b/testing/source/mozilla-thunderbird/build-deps/cbindgen/cbindgen.build
@@ -0,0 +1,54 @@
+#!/bin/sh
+
+# Copyright 2019 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+PKGNAM=cbindgen
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i586 ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+
+mkdir -p $TMP
+
+cd $TMP
+rm -rf cbindgen-$VERSION
+tar xvf $CWD/cbindgen-$VERSION.tar.?z || exit 1
+cd cbindgen-$VERSION
+
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+cargo install --force cbindgen
diff --git a/testing/source/mozilla-thunderbird/build-deps/nodejs/nodejs.build b/testing/source/mozilla-thunderbird/build-deps/nodejs/nodejs.build
new file mode 100755
index 00000000..6f98074f
--- /dev/null
+++ b/testing/source/mozilla-thunderbird/build-deps/nodejs/nodejs.build
@@ -0,0 +1,91 @@
+#!/bin/sh
+
+# Copyright 2019 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+PKGNAM=node
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i586 ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$( uname -m ) ;;
+ esac
+fi
+
+NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+elif [ "$ARCH" = "armv7hl" ]; then
+ SLKCFLAGS="-O3 -march=armv7-a -mfpu=vfpv3-d16"
+ LIBDIRSUFFIX=""
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+
+mkdir -p $TMP
+mkdir -p $TMP/mozilla-thunderbird-build-deps/usr
+
+cd $TMP
+rm -rf node-$VERSION
+tar xvf $CWD/node-$VERSION.tar.?z || exit 1
+cd node-$VERSION
+
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+# Fix paths for $LIBDIRSUFFIX (if needed):
+if [ ! -z $LIBDIRSUFFIX ]; then
+ sed -i "s|\"lib\"|\"lib${LIBDIRSUFFIX}\"|" deps/npm/lib/npm.js
+ sed -i "s/'lib'/'lib${LIBDIRSUFFIX}'/" lib/module.js
+ sed -i "s|lib/|lib${LIBDIRSUFFIX}/|g" tools/install.py
+fi
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=$TMP/mozilla-thunderbird-build-deps/usr \
+ --shared-zlib \
+ --without-ssl
+ make $NUMJOBS || make || exit 1
+ make install DESTDIR=$PKG || exit 1
diff --git a/testing/source/mozilla-thunderbird/build-deps/nodejs/nodejs.url b/testing/source/mozilla-thunderbird/build-deps/nodejs/nodejs.url
new file mode 100644
index 00000000..75f7f4d3
--- /dev/null
+++ b/testing/source/mozilla-thunderbird/build-deps/nodejs/nodejs.url
@@ -0,0 +1,2 @@
+https://nodejs.org/dist/v10.16.0/node-v10.16.0.tar.gz
+#https://github.com/nodejs/node
diff --git a/testing/source/mozilla-thunderbird/gkrust.a.no.networking.check.diff b/testing/source/mozilla-thunderbird/gkrust.a.no.networking.check.diff
new file mode 100644
index 00000000..75980927
--- /dev/null
+++ b/testing/source/mozilla-thunderbird/gkrust.a.no.networking.check.diff
@@ -0,0 +1,27 @@
+--- ./config/makefiles/rust.mk.orig 2020-08-04 21:42:49.000000000 -0500
++++ ./config/makefiles/rust.mk 2020-08-24 21:44:11.930497037 -0500
+@@ -303,15 +303,15 @@
+ # the chance of proxy bypasses originating from rust code.
+ # The check only works when rust code is built with -Clto.
+ # Sanitizers and sancov also fail because compiler-rt hooks network functions.
+-ifndef MOZ_PROFILE_GENERATE
+-ifeq ($(OS_ARCH), Linux)
+-ifeq (,$(rustflags_sancov)$(MOZ_ASAN)$(MOZ_TSAN)$(MOZ_UBSAN))
+-ifneq (,$(filter -Clto,$(cargo_rustc_flags)))
+- $(call py_action,check_binary,--target --networking $@)
+-endif
+-endif
+-endif
+-endif
++#ifndef MOZ_PROFILE_GENERATE
++#ifeq ($(OS_ARCH), Linux)
++#ifeq (,$(rustflags_sancov)$(MOZ_ASAN)$(MOZ_TSAN)$(MOZ_UBSAN))
++#ifneq (,$(filter -Clto,$(cargo_rustc_flags)))
++# $(call py_action,check_binary,--target --networking $@)
++#endif
++#endif
++#endif
++#endif
+
+ force-cargo-library-check:
+ $(call CARGO_CHECK) --lib $(cargo_target_flag) $(rust_features_flag)
diff --git a/testing/source/mozilla-thunderbird/gold/gold b/testing/source/mozilla-thunderbird/gold/gold
new file mode 120000
index 00000000..6cd03701
--- /dev/null
+++ b/testing/source/mozilla-thunderbird/gold/gold
@@ -0,0 +1 @@
+ld.gold \ No newline at end of file
diff --git a/testing/source/mozilla-thunderbird/gold/ld b/testing/source/mozilla-thunderbird/gold/ld
new file mode 120000
index 00000000..6cd03701
--- /dev/null
+++ b/testing/source/mozilla-thunderbird/gold/ld
@@ -0,0 +1 @@
+ld.gold \ No newline at end of file
diff --git a/testing/source/mozilla-thunderbird/gold/ld.gold b/testing/source/mozilla-thunderbird/gold/ld.gold
new file mode 100755
index 00000000..f1d76b3a
--- /dev/null
+++ b/testing/source/mozilla-thunderbird/gold/ld.gold
@@ -0,0 +1,6 @@
+#!/bin/bash
+# Doing this for 32-bit... sigh. May have to try to figure out how to only
+# use it in 32-bit userspace even when running under a 64-bit kernel.
+/usr/bin/ld.gold --no-map-whole-files --no-keep-memory --no-keep-files-mapped "$@"
+# Old simple way:
+#/usr/bin/ld.gold "$@"
diff --git a/testing/source/mozilla-thunderbird/mozilla-firefox.xpcom_arm.patch b/testing/source/mozilla-thunderbird/mozilla-firefox.xpcom_arm.patch
new file mode 100644
index 00000000..7309b55a
--- /dev/null
+++ b/testing/source/mozilla-thunderbird/mozilla-firefox.xpcom_arm.patch
@@ -0,0 +1,18 @@
+--- a/xpcom/glue/objs.mk
++++ a/xpcom/glue/objs.mk
+@@ -71,13 +71,13 @@ XPCOM_GLUENS_SRC_LCPPSRCS = \
+ SSE.cpp \
+ unused.cpp \
+ nsProxyRelease.cpp \
+ nsTextFormatter.cpp \
+ GenericFactory.cpp \
+ FileUtils.cpp \
+ $(NULL)
+
+-ifeq (arm,$(TARGET_CPU))
++ifneq (,$(filter arm%,$(TARGET_CPU)))
+ XPCOM_GLUENS_SRC_LCPPSRCS += arm.cpp
+ endif
+
+ XPCOM_GLUENS_SRC_CPPSRCS = $(addprefix $(topsrcdir)/xpcom/glue/,$(XPCOM_GLUENS_SRC_LCPPSRCS))
+
diff --git a/testing/source/mozilla-thunderbird/mozilla-thunderbird.SlackBuild b/testing/source/mozilla-thunderbird/mozilla-thunderbird.SlackBuild
new file mode 100755
index 00000000..48476c96
--- /dev/null
+++ b/testing/source/mozilla-thunderbird/mozilla-thunderbird.SlackBuild
@@ -0,0 +1,370 @@
+#!/bin/bash
+
+# Copyright 2008, 2009, 2010, 2011, 2012, 2014, 2016, 2017, 2018, 2019 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# Modified 2012 by Eric Hameleers <alien at slackware.com> for ARM port.
+
+# Thanks to the folks at the Mozilla Foundation for permission to
+# distribute this, and for all the great work! :-)
+
+cd $(dirname $0) ; CWD=$(pwd)
+
+PKGNAM=mozilla-thunderbird
+VERSION=$(basename $(ls thunderbird-*.tar.?z | cut -d - -f 2 | rev | cut -f 3- -d . | rev) .source)
+RELEASEVER=$(echo $VERSION | cut -f 1 -d e | cut -f 1 -d b)
+BUILD=${BUILD:-1}
+
+# Specify this variable for a localized build.
+# For example, to build a version of Thunderbird with Italian support, run
+# the build script like this:
+#
+# MOZLOCALIZE=it ./mozilla-thunderbird.SlackBuild
+#
+MOZLOCALIZE=${MOZLOCALIZE:-}
+
+# Without LANG=C, building the Python environment may fail with:
+# "UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 36: ordinal not in range(128)"
+LANG=C
+
+# Add a shell script to start the thunderbird binary with MOZ_ALLOW_DOWNGRADE=1
+# to avoid backing up (and disabling) the user profile if a browser downgrade
+# is detected. If you want to build with the stock default behavior, set
+# this to something other than "YES":
+MOZ_ALLOW_DOWNGRADE=${MOZ_ALLOW_DOWNGRADE:-YES}
+
+# This can be set to YES or NO:
+ENABLE_CALENDAR=${ENABLE_CALENDAR:-YES}
+if [ "$ENABLE_CALENDAR" = "NO" ]; then
+ ENABLE_CALENDAR="--disable-calendar"
+else
+ ENABLE_CALENDAR="--enable-calendar"
+fi
+
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i686 ;;
+ armv7hl) export ARCH=armv7hl ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$( uname -m ) ;;
+ esac
+fi
+
+# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
+# the name of the created package would be, and then exit. This information
+# could be useful to other scripts.
+if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
+ if [ -z $MOZLOCALIZE ]; then
+ echo "$PKGNAM-$VERSION-$ARCH-$BUILD.txz"
+ else
+ echo "$PKGNAM-$VERSION-$ARCH-${BUILD}_$MOZLOCALIZE.txz"
+ fi
+ exit 0
+fi
+
+# Thunderbird has been requiring more and more memory, especially while linking
+# libxul. If it fails to build natively on x86 32-bit, it can be useful to
+# attempt the build using an x86_64 kernel and a 32-bit userspace. Detect this
+# situation and set the ARCH to i686. Later in the script we'll add some
+# options to the .mozconfig so that the compile will do the right thing.
+if [ "$(uname -m)" = "x86_64" -a "$(file -L /usr/bin/gcc | grep 80386 | grep 32-bit)" != "" ]; then
+ COMPILE_X86_UNDER_X86_64=true
+ ARCH=i686
+fi
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS=""
+ LIBDIRSUFFIX=""
+ OPTIMIZE=${OPTIMIZE:-"-Os"}
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS=""
+ LIBDIRSUFFIX=""
+ OPTIMIZE=${OPTIMIZE:-"-Os"}
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-fPIC"
+ LIBDIRSUFFIX="64"
+ OPTIMIZE=${OPTIMIZE:-"-O2"}
+elif [ "$ARCH" = "arm" ]; then
+ SLKCFLAGS="-march=armv4 -mtune=xscale"
+ LIBDIRSUFFIX=""
+ OPTIMIZE=${OPTIMIZE:-"-O2"}
+else
+ SLKCFLAGS=""
+ LIBDIRSUFFIX=""
+ OPTIMIZE=${OPTIMIZE:-"-O2"}
+fi
+
+# Choose a compiler (gcc/g++ or clang/clang++):
+export CC=${CC:-gcc}
+export CXX=${CXX:-g++}
+
+## Link using gold. This avoids running out of memory on 32-bit systems, and
+## avoids a recurring build failure with GNU ld on other systems.
+#PATH="$(pwd)/gold:$PATH"
+#export CC="$CC -B$(pwd)/gold"
+#export CXX="$CXX -B$(pwd)/gold"
+
+# Keep memory usage as low as possible when linking:
+SLKLDFLAGS=" -Wl,--as-needed -Wl,--no-keep-memory -Wl,--stats"
+export LDFLAGS="$SLKLDFLAGS"
+export MOZ_LINK_FLAGS="$SLKLDFLAGS"
+
+# If you don't give this _something_ then it defaults to -g, causing more
+# link time memory issues:
+export MOZ_DEBUG_FLAGS="-g0"
+
+# Put Rust objects on a diet to keep the linker from running into memory
+# issues (especially on 32-bit):
+export RUSTFLAGS="-Cdebuginfo=0 -Copt-level=0"
+
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-mozilla-thunderbird
+
+# If there is a private Google API key available at compile time, use
+# it to enable support for Google Safe Browsing. For Slackware builds,
+# we use a private key issued for the Slackware project. If you are
+# rebuilding and need this support, or you are producing your own
+# distribution, you may obtain your own Google API key at no charge by
+# following these instructions:
+# https://bugzilla.mozilla.org/show_bug.cgi?id=1377987#c0
+if [ -r /root/google-api-key ]; then
+ GOOGLE_API_KEY="--with-google-safebrowsing-api-keyfile=/root/google-api-key"
+fi
+
+NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
+
+rm -rf $PKG
+mkdir -p $TMP $PKG/usr/lib${LIBDIRSUFFIX}
+
+# Build or unpack build-time dependencies:
+. ./build-deps.sh
+
+cd $TMP
+rm -rf thunderbird-$RELEASEVER
+# Unpack this in a subdirectory to prevent changing permissions on /tmp:
+rm -rf thunderbird-unpack
+mkdir thunderbird-unpack
+cd thunderbird-unpack
+tar xvf $CWD/thunderbird-$VERSION.source.tar.?z || exit 1
+mv * ..
+cd ..
+rm -rf thunderbird-unpack
+cd thunderbird-$RELEASEVER || exit 1
+
+# Delete object directory if it was mistakenly included in the tarball:
+rm -rf obj-x86_64-pc-linux-gnu
+
+# Retain GTK+ v2 scrolling behavior:
+zcat $CWD/tb.ui.scrollToClick.diff.gz | patch -p1 --verbose || exit 1
+
+# Fix building with latest Rust:
+zcat $CWD/unbreakdocs.diff.gz | patch -p1 --verbose || exit 1
+
+# Bypass a test that fails the build:
+zcat $CWD/gkrust.a.no.networking.check.diff.gz | patch -p1 --verbose || exit 1
+
+# Fetch localization, if requested:
+if [ ! -z $MOZLOCALIZE ]; then
+ LOC_TAG="THUNDERBIRD_$( echo $VERSION | tr \. _ )_RELEASE"
+ rm -f $LOC_TAG.tar.bz2
+ wget https://hg.mozilla.org/releases/l10n/mozilla-release/$MOZLOCALIZE/archive/$LOC_TAG.tar.bz2
+ tar xvf $LOC_TAG.tar.bz2
+ mv $MOZLOCALIZE-$LOC_TAG $MOZLOCALIZE
+fi
+
+# Arch-dependent patches:
+case "$ARCH" in
+ armv7hl) ARCH_CONFIG="--with-arch=armv7-a --with-float-abi=hard --with-fpu=vfpv3-d16 --disable-elf-hack"
+ # Make Thunderbird compile on ARM platforms lacking neon support:
+ zcat $CWD/mozilla-firefox.xpcom_arm.patch.gz | patch -p1 --verbose || exit 1
+ ;;
+ *) ARCH_CONFIG=" "
+ ;;
+esac
+
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \+ -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \+
+
+# Our building options, in a configure-like display ;)
+OPTIONS="\
+ --enable-official-branding \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --with-system-zlib \
+ --enable-alsa \
+ --enable-application=comm/mail \
+ $ENABLE_CALENDAR \
+ --enable-default-toolkit=cairo-gtk3-wayland \
+ --enable-strip \
+ --enable-cpp-rtti \
+ --enable-accessibility \
+ $GOOGLE_API_KEY \
+ --disable-crashreporter \
+ --disable-debug \
+ --disable-tests \
+ --disable-updater \
+ --host=$ARCH-slackware-linux \
+ --target=$ARCH-slackware-linux"
+ # Complains about missing APNG support in Slackware's libpng:
+ #--with-system-png \
+ # Broken with 12.0:
+ #--enable-system-cairo \
+if [ ! -z $MOZLOCALIZE ]; then
+ OPTIONS=$OPTIONS" \
+ --enable-ui-locale=$MOZLOCALIZE
+ --with-l10n-base=.."
+ # There are no dictionaries in localized builds
+ sed -i \
+ -e "/@BINPATH@\/dictionaries\/\*/d" \
+ -e "/@RESPATH@\/dictionaries\/\*/d" \
+ mail/installer/package-manifest.in || exit 1
+fi
+
+export BUILD_OFFICIAL=1
+export MOZILLA_OFFICIAL=1
+export MOZ_PHOENIX=1
+export CFLAGS="$SLKCFLAGS"
+export CXXFLAGS="$SLKCFLAGS"
+export MOZ_MAKE_FLAGS="$NUMJOBS"
+
+# Clear some variables that could break the build
+unset DBUS_SESSION_BUS_ADDRESS ORBIT_SOCKETDIR SESSION_MANAGER \
+ XDG_SESSION_COOKIE XAUTHORITY MAKEFLAGS
+
+# Assemble our .mozconfig:
+echo > .mozconfig
+
+# Tell .mozconfig about the selected compiler:
+echo "export CC=\"${CC}\"" >> .mozconfig
+echo "export CXX=\"${CXX}\"" >> .mozconfig
+
+# Mozilla devs enforce using an objdir for building
+# https://developer.mozilla.org/en/Configuring_Build_Options#Building_with_an_objdir
+mkdir obj
+echo "mk_add_options MOZ_OBJDIR=$(pwd)/obj" >> .mozconfig
+# This directory is also needed or the build will fail:
+mkdir -p mozilla/obj
+
+# Set options for $OPTIMIZE:
+echo "ac_add_options --enable-optimize=\"${OPTIMIZE}\"" >> .mozconfig
+
+if [ "$COMPILE_X86_UNDER_X86_64" = "true" ]; then
+ # Compile for i686 under an x86_64 kernel:
+ echo "ac_add_options --host=i686-pc-linux-gnu" >> .mozconfig
+ echo "ac_add_options --target=i686-pc-linux-gnu" >> .mozconfig
+fi
+
+# Add the $OPTIONS above to .mozconfig:
+for option in $OPTIONS; do echo "ac_add_options $option" >> .mozconfig; done
+
+# Disable tests on standard build:
+echo "ac_add_options --disable-tests" >> .mozconfig
+./mach build || exit 1
+./mach buildsymbols || exit 1
+DESTDIR=$PKG ./mach install || exit 1
+
+# Clean up the build time dependencies:
+rm -rf $TMP/mozilla-thunderbird-build-deps
+
+# We don't need these (just symlinks anyway):
+rm -rf $PKG/usr/lib${LIBDIRSUFFIX}/thunderbird-devel-$RELEASEVER
+
+# Nor these:
+rm -rf $PKG/usr/include
+
+# Thunderbird 3.x cruft?
+# If we still need something like this (and you know what we need :), let me know.
+#( cd $PKG/usr/lib${LIBDIRSUFFIX}/thunderbird-$VERSION
+# cp -a defaults/profile/mimeTypes.rdf defaults/profile/mimeTypes.rdf.orig
+# zcat $CWD/mimeTypes.rdf > defaults/profile/mimeTypes.rdf || exit 1
+#) || exit 1
+
+mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/mozilla/plugins
+mkdir -p $PKG/usr/share/applications
+cat $CWD/mozilla-thunderbird.desktop > $PKG/usr/share/applications/mozilla-thunderbird.desktop
+mkdir -p $PKG/usr/share/pixmaps
+# Symlinked below.
+#cat $CWD/thunderbird.png > $PKG/usr/share/pixmaps/thunderbird.png
+
+# These files/directories are usually created if Thunderbird is run as root,
+# which on many systems might (and possibly should) be never. Therefore, if we
+# don't see them we'll put stubs in place to prevent startup errors.
+( cd $PKG/usr/lib${LIBDIRSUFFIX}/thunderbird-$RELEASEVER
+ if [ -d extensions/talkback\@mozilla.org ]; then
+ if [ ! -r extensions/talkback\@mozilla.org/chrome.manifest ]; then
+ echo > extensions/talkback\@mozilla.org/chrome.manifest
+ fi
+ fi
+ if [ ! -d updates ]; then
+ mkdir -p updates/0
+ fi
+)
+
+# Need some default icons in the right place:
+for i in 16 22 24 32 48 256; do
+ install -m 0644 -D comm/mail/branding/thunderbird/default${i}.png \
+ $PKG/usr/share/icons/hicolor/${i}x${i}/apps/thunderbird.png
+done
+mkdir -p $PKG/usr/share/pixmaps
+( cd $PKG/usr/share/pixmaps ; ln -sf /usr/share/icons/hicolor/256x256/apps/thunderbird.png . )
+mkdir -p $PKG/usr/lib$LIBDIRSUFFIX/thunderbird-$RELEASEVER/chrome/icons/default
+install -m 644 other-licenses/branding/thunderbird/mailicon16.png \
+ $PKG/usr/lib$LIBDIRSUFFIX/thunderbird-$RELEASEVER/icons/
+install -m 644 other-licenses/branding/thunderbird/mailicon16.png \
+ $PKG/usr/lib$LIBDIRSUFFIX/thunderbird-$RELEASEVER/chrome/icons/default/
+
+# Copy over the LICENSE
+install -p -c -m 644 LICENSE $PKG/usr/lib${LIBDIRSUFFIX}/thunderbird-$RELEASEVER/
+
+# If MOZ_ALLOW_DOWNGRADE=YES, replace the /usr/bin/thunderbird symlink with a
+# shell script that sets the MOZ_ALLOW_DOWNGRADE=1 environment variable so
+# that a detected downgrade does not reset the user profile:
+if [ "$MOZ_ALLOW_DOWNGRADE" = "YES" ]; then
+ rm -f $PKG/usr/bin/thunderbird
+ cat << EOF > $PKG/usr/bin/thunderbird
+#!/bin/sh
+#
+# Shell script to start Mozilla Thunderbird.
+#
+# Don't reset the user profile on a detected downgrade:
+export MOZ_ALLOW_DOWNGRADE=1
+
+# Start Thunderbird:
+exec /usr/lib${LIBDIRSUFFIX}/thunderbird/thunderbird "\$@"
+EOF
+ chown root:root $PKG/usr/bin/thunderbird
+ chmod 755 $PKG/usr/bin/thunderbird
+fi
+
+mkdir $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+if [ -z $MOZLOCALIZE ]; then
+ /sbin/makepkg -l y -c n $TMP/mozilla-thunderbird-$VERSION-$ARCH-$BUILD.txz
+else
+ /sbin/makepkg -l y -c n $TMP/mozilla-thunderbird-$VERSION-$ARCH-${BUILD}_$MOZLOCALIZE.txz
+fi
diff --git a/testing/source/mozilla-thunderbird/mozilla-thunderbird.desktop b/testing/source/mozilla-thunderbird/mozilla-thunderbird.desktop
new file mode 100644
index 00000000..0f85ecbe
--- /dev/null
+++ b/testing/source/mozilla-thunderbird/mozilla-thunderbird.desktop
@@ -0,0 +1,84 @@
+[Desktop Entry]
+Encoding=UTF-8
+Exec=thunderbird
+Icon=/usr/share/pixmaps/thunderbird.png
+Type=Application
+Categories=Application;Network;
+Name=Thunderbird
+Name[bn]=থাণ্ডারবার্ড
+Name[eo]=Mozilo Tondrobirdo
+Name[fi]=Mozilla Thunderbird
+Name[pa]=ਥੰਡਰਬਰਡ
+Name[tg]=Паррандаи бало
+GenericName=Mail Client
+GenericName[af]=Pos Kliënt
+GenericName[ar]=البريد الألكتروني
+GenericName[az]=Poçt Alıcısı
+GenericName[be]=Паштовы кліент
+GenericName[bg]=Пощенски клиент
+GenericName[bn]=ইমেইল ক্লায়েন্ট
+GenericName[br]=Arval postel
+GenericName[bs]=Program za čitanje elektronske pošte
+GenericName[ca]=Client de correu electrònic
+GenericName[cs]=Klient pro čtení elektronické pošty
+GenericName[cy]=Dibynnydd Ebost
+GenericName[da]=E-mail-klient
+GenericName[de]=E-Mail-Programm
+GenericName[el]=Πελάτης mail
+GenericName[eo]=Legi kaj sendi retpoŝton
+GenericName[es]=Cliente de correo electrónico
+GenericName[et]=Meiliklient
+GenericName[eu]=Posta bezeroa
+GenericName[fa]=کارگیر پست الکترونیکی
+GenericName[fi]=Sähköpostiohjelma
+GenericName[fo]=Postforrit
+GenericName[fr]=Logiciel de messagerie électronique
+GenericName[ga]=Cliant Ríomhphoist
+GenericName[gl]=Cliente de correo
+GenericName[he]=תוכנית דואר
+GenericName[hi]=डाकिया
+GenericName[hr]=Program za čitanje elektronske pošte
+GenericName[hu]=Levelezőprogram
+GenericName[id]=Klien Mail
+GenericName[is]=Póstforrit
+GenericName[it]=Programma di posta elettronica
+GenericName[ja]=メールクライアント
+GenericName[ko]=편지를 주고 받는 프로그램
+GenericName[lo]=ໄຄແເອັນຈົດຫມາຍເອເລັກໂຕນິກ
+GenericName[lt]=Pašto klientas
+GenericName[lv]=Pasta Klients
+GenericName[mk]=Програма за електронска пошта
+GenericName[mn]=Э-Захиа-Програм
+GenericName[mt]=Klijent tal-imejl
+GenericName[nb]=E-postklient
+GenericName[nds]=Mailprogramm
+GenericName[nl]=E-mailclient
+GenericName[nn]=Lesing og sending av e-post
+GenericName[nso]=Moreki wa Poso
+GenericName[oc]=Programari de correu electrònic
+GenericName[pa]=ਪੱਤਰ ਕਲਾਂਇਟ
+GenericName[pl]=Program do wysyłania i odbierania poczty elektronicznej
+GenericName[pt]=Client de E-mail
+GenericName[pt_BR]=Cliente de E-mail
+GenericName[ro]=Program de poştă electronică
+GenericName[ru]=Клиент электронной почты
+GenericName[se]=Boastaprográmma
+GenericName[sk]=Klient elektronickej pošty
+GenericName[sl]=Program za e-pošto
+GenericName[sr]=Програм за e-пошту
+GenericName[sr@Latn]=Program za e-poštu
+GenericName[ss]=Likhasimende leliposi
+GenericName[sv]=E-postklient
+GenericName[ta]=அஞ்சல் உறுப்பினர்
+GenericName[tg]=Коргири почтаи эллектроникӣ
+GenericName[th]=ไคลเอนต์จดหมายอิเล็กทรอนิกส์
+GenericName[tr]=Posta İstemcisi
+GenericName[uk]=Клієнт електронної пошти
+GenericName[uz]=Хат-хабар клиенти
+GenericName[ven]=Mushumisani na poso
+GenericName[wa]=Cliyint d' emilaedje
+GenericName[xh]=Umxhasi Weposi
+GenericName[zh_CN]=邮件程序
+GenericName[zh_TW]=郵件處理程式
+GenericName[zu]=Umxhasi weposi
+X-KDE-StartupNotify=true
diff --git a/testing/source/mozilla-thunderbird/slack-desc b/testing/source/mozilla-thunderbird/slack-desc
new file mode 100644
index 00000000..4c8b4f06
--- /dev/null
+++ b/testing/source/mozilla-thunderbird/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|' on
+# the right side marks the last column you can put a character in. You must make
+# exactly 11 lines for the formatting to be correct. It's also customary to
+# leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+mozilla-thunderbird: mozilla-thunderbird (Mozilla Thunderbird mail application)
+mozilla-thunderbird:
+mozilla-thunderbird: Mozilla Thunderbird is a redesign of the Mozilla mail component
+mozilla-thunderbird: written using the XUL user interface language. Thunderbird makes
+mozilla-thunderbird: emailing safer, faster, and easier than ever before with the
+mozilla-thunderbird: industry's best implementations of features such as intelligent spam
+mozilla-thunderbird: filters, built-in RSS reader, quick search, and much more.
+mozilla-thunderbird:
+mozilla-thunderbird: Homepage: http://www.mozilla.org/projects/thunderbird/
+mozilla-thunderbird:
+mozilla-thunderbird:
diff --git a/testing/source/mozilla-thunderbird/tb.ui.scrollToClick.diff b/testing/source/mozilla-thunderbird/tb.ui.scrollToClick.diff
new file mode 100644
index 00000000..3997ee63
--- /dev/null
+++ b/testing/source/mozilla-thunderbird/tb.ui.scrollToClick.diff
@@ -0,0 +1,12 @@
+--- ./modules/libpref/init/all.js.orig 2019-08-26 16:32:16.000000000 -0500
++++ ./modules/libpref/init/all.js 2019-08-27 11:34:41.749716932 -0500
+@@ -258,6 +258,9 @@
+ // If true, all popups won't hide automatically on blur
+ pref("ui.popup.disable_autohide", false);
+
++// Default to GTK+ v2 type scrolling:
++pref("ui.scrollToClick", 0);
++
+ #ifdef XP_MACOSX
+ pref("ui.touchbar.layout", "Back,Forward,Reload,OpenLocation,NewTab,Share");
+ #endif
diff --git a/testing/source/mozilla-thunderbird/unbreakdocs.diff b/testing/source/mozilla-thunderbird/unbreakdocs.diff
new file mode 100644
index 00000000..03d8e6b4
--- /dev/null
+++ b/testing/source/mozilla-thunderbird/unbreakdocs.diff
@@ -0,0 +1,31 @@
+--- ./servo/components/style/lib.rs.orig 2019-07-05 20:44:35.000000000 -0500
++++ ./servo/components/style/lib.rs 2019-07-08 13:51:55.460242952 -0500
+@@ -23,7 +23,7 @@
+ //! [cssparser]: ../cssparser/index.html
+ //! [selectors]: ../selectors/index.html
+
+-#![deny(missing_docs)]
++// #![deny(missing_docs)]
+
+ extern crate app_units;
+ extern crate arrayvec;
+@@ -196,7 +196,7 @@
+ /// Generated from the properties.mako.rs template by build.rs
+ #[macro_use]
+ #[allow(unsafe_code)]
+-#[deny(missing_docs)]
++// #[deny(missing_docs)]
+ pub mod properties {
+ include!(concat!(env!("OUT_DIR"), "/properties.rs"));
+ }
+--- ./servo/components/style_traits/lib.rs.orig 2019-07-08 13:51:55.462242953 -0500
++++ ./servo/components/style_traits/lib.rs 2019-07-08 13:53:44.853249956 -0500
+@@ -8,7 +8,7 @@
+
+ #![crate_name = "style_traits"]
+ #![crate_type = "rlib"]
+-#![deny(unsafe_code, missing_docs)]
++#![deny(unsafe_code)]
+
+ extern crate app_units;
+ #[macro_use]