aboutsummaryrefslogtreecommitdiffstats
path: root/testing
diff options
context:
space:
mode:
authorJoseph Benden <joe@benden.us>2019-07-18 00:10:48 +0000
committerLeonardo Arena <rnalrd@alpinelinux.org>2019-08-28 12:33:37 +0000
commit641fc95383be633859e0c4cd1a22b95b3ef10c79 (patch)
tree7cb0a88f781352d32de2fa1ca85b57cb60169182 /testing
parent76a5e58c61aa5b678248a6eff0937cdf4a924acb (diff)
downloadaports-641fc95383be633859e0c4cd1a22b95b3ef10c79.tar.bz2
aports-641fc95383be633859e0c4cd1a22b95b3ef10c79.tar.xz
testing/thunderbird: new aport
https://www.thunderbird.net/ Thunderbird email client with package for GPG encrypted email (Enigmail). Signed-off-by: Joseph Benden <joe@benden.us>
Diffstat (limited to 'testing')
-rw-r--r--testing/thunderbird-extension-enigmail/0001-preferences-disable-pEpAutoDownload-by-default.patch27
-rw-r--r--testing/thunderbird-extension-enigmail/APKBUILD40
-rw-r--r--testing/thunderbird/0002-Use-C99-math-isfinite.patch17
-rw-r--r--testing/thunderbird/0003-Disable-ccache-stats.patch20
-rw-r--r--testing/thunderbird/APKBUILD297
-rw-r--r--testing/thunderbird/disable-moz-stackwalk.patch16
-rw-r--r--testing/thunderbird/fix-bug-1261392.patch27
-rw-r--r--testing/thunderbird/fix-fortify-inline.patch11
-rw-r--r--testing/thunderbird/fix-fortify-system-wrappers.patch13
-rw-r--r--testing/thunderbird/fix-rust-target.patch24
-rw-r--r--testing/thunderbird/fix-seccomp-bpf.patch26
-rw-r--r--testing/thunderbird/fix-stack-overflow.patch45
-rw-r--r--testing/thunderbird/fix-toolkit.patch90
-rw-r--r--testing/thunderbird/fix-tools.patch45
-rw-r--r--testing/thunderbird/fix-webrtc-glibcisms.patch13
-rw-r--r--testing/thunderbird/mallinfo.patch18
-rw-r--r--testing/thunderbird/mozilla-build-arm.patch11
-rw-r--r--testing/thunderbird/rust-unitialized-field.patch19
-rw-r--r--testing/thunderbird/rust133.patch24
-rw-r--r--testing/thunderbird/sandbox-membarrier.patch54
-rw-r--r--testing/thunderbird/stab.h71
-rw-r--r--testing/thunderbird/thunderbird.desktop64
22 files changed, 972 insertions, 0 deletions
diff --git a/testing/thunderbird-extension-enigmail/0001-preferences-disable-pEpAutoDownload-by-default.patch b/testing/thunderbird-extension-enigmail/0001-preferences-disable-pEpAutoDownload-by-default.patch
new file mode 100644
index 0000000000..afc10a9d67
--- /dev/null
+++ b/testing/thunderbird-extension-enigmail/0001-preferences-disable-pEpAutoDownload-by-default.patch
@@ -0,0 +1,27 @@
+From 83d412cf08d76fab5e79b6f261c3145372337d5e Mon Sep 17 00:00:00 2001
+From: Eli Schwartz <eschwartz@archlinux.org>
+Date: Thu, 10 Jan 2019 11:38:38 -0500
+Subject: [PATCH] preferences: disable pEpAutoDownload by default
+
+Distributions should not automatically download this untrusted code;
+should be opt-in by users or be packaged separately.
+---
+ package/prefs/defaultPrefs.js | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/package/prefs/defaultPrefs.js b/package/prefs/defaultPrefs.js
+index d5ca1249..f8c10a47 100755
+--- a/package/prefs/defaultPrefs.js
++++ b/package/prefs/defaultPrefs.js
+@@ -204,7 +204,7 @@ pref("extensions.enigmail.warnDownloadContactKeys", true);
+ pref("extensions.enigmail.wrapHtmlBeforeSend", true);
+
+ // automatically download pepmda if it is available (without askin user)
+-pref("extensions.enigmail.pEpAutoDownload", true);
++pref("extensions.enigmail.pEpAutoDownload", false);
+
+ // holds the last result of the last check for pEp updates
+ pref("extensions.enigmail.pEpLastUpdate", 0);
+--
+2.20.1
+
diff --git a/testing/thunderbird-extension-enigmail/APKBUILD b/testing/thunderbird-extension-enigmail/APKBUILD
new file mode 100644
index 0000000000..32eea13f24
--- /dev/null
+++ b/testing/thunderbird-extension-enigmail/APKBUILD
@@ -0,0 +1,40 @@
+# Maintainer: Joseph Benden <joe@benden.us>
+
+pkgname=thunderbird-extension-enigmail
+pkgver=2.0.12
+pkgrel=0
+pkgdesc="OpenPGP message encryption and authentication for Thunderbird"
+url="https://www.enigmail.net/"
+arch="noarch"
+license="MPL-2.0 AND GPL-3.0-or-later"
+depends="thunderbird gnupg"
+makedepends="zip python2 perl"
+options="!check"
+source="https://www.enigmail.net/download/source/enigmail-${pkgver}.tar.gz
+ 0001-preferences-disable-pEpAutoDownload-by-default.patch"
+builddir="${srcdir}/enigmail"
+
+build() {
+ ./configure
+ make -j1 # fails with -j greater than 1
+}
+
+package() {
+ if [[ -f package/install.rdf ]]; then
+ _extension_id="$(sed -n '/.*<em:id>\(.*\)<\/em:id>.*/{s//\1/p;q}' build/dist/install.rdf)"
+ else
+ _extension_id="$(sed -n 's/.*"id": "\(.*\)".*/\1/p' build/dist/manifest.json)"
+ fi
+ _extension_dest="${pkgdir}/usr/lib/thunderbird/extensions/${_extension_id}"
+ # Should this extension be unpacked or not?
+ if grep -q '<em:unpack>true</em:unpack>' build/dist/install.rdf 2>/dev/null; then
+ install -dm755 "${_extension_dest}"
+ cp -R build/dist/* "${_extension_dest}"
+ chmod -R ugo+rX "${_extension_dest}"
+ else
+ install -Dm644 build/enigmail-${pkgver}.xpi "${_extension_dest}.xpi"
+ fi
+}
+
+sha512sums="f9f4f1ed4c7244280be2fade0ccb2f4b5e7075dd60f53953478ffb84012e687b7ac7bad489c0b0cb2d8937916c783fe9e1841174bf1e5bdb9ab8cb58b415db74 enigmail-2.0.12.tar.gz
+4307c7b6bce7febba7a8186467c3bc93ec3428e1cd75cddad659e4d4a71832f1c8d46e4c811da38ff1dc38b1961a82bd84e7c90b7c63ce080be49ce69571c016 0001-preferences-disable-pEpAutoDownload-by-default.patch"
diff --git a/testing/thunderbird/0002-Use-C99-math-isfinite.patch b/testing/thunderbird/0002-Use-C99-math-isfinite.patch
new file mode 100644
index 0000000000..ba4f5cfb3d
--- /dev/null
+++ b/testing/thunderbird/0002-Use-C99-math-isfinite.patch
@@ -0,0 +1,17 @@
+--- ./xpcom/ds/nsMathUtils.h.orig
++++ ./xpcom/ds/nsMathUtils.h
+@@ -104,12 +104,12 @@
+ #ifdef WIN32
+ // NOTE: '!!' casts an int to bool without spamming MSVC warning C4800.
+ return !!_finite(aNum);
+-#elif defined(XP_DARWIN)
++#elif defined(XP_DARWIN) || defined(_GLIBCXX_CMATH)
+ // Darwin has deprecated |finite| and recommends |isfinite|. The former is
+ // not present in the iOS SDK.
+ return std::isfinite(aNum);
+ #else
+- return finite(aNum);
++ return isfinite(aNum);
+ #endif
+ }
+
diff --git a/testing/thunderbird/0003-Disable-ccache-stats.patch b/testing/thunderbird/0003-Disable-ccache-stats.patch
new file mode 100644
index 0000000000..82ca2aa1cb
--- /dev/null
+++ b/testing/thunderbird/0003-Disable-ccache-stats.patch
@@ -0,0 +1,20 @@
+--- a/python/mozbuild/mozbuild/controller/building.py 2019-07-03 15:25:28.000000000 +0000
++++ b/python/mozbuild/mozbuild/controller/building.py 2019-07-17 02:49:12.693079588 +0000
+@@ -940,7 +940,7 @@ class BuildDriver(MozbuildObject):
+ warnings_path = self._get_state_filename('warnings.json')
+ monitor = self._spawn(BuildMonitor)
+ monitor.init(warnings_path)
+- ccache_start = monitor.ccache_stats()
++ ccache_start = None # monitor.ccache_stats()
+ footer = BuildProgressFooter(self.log_manager.terminal, monitor)
+
+ # Disable indexing in objdir because it is not necessary and can slow
+@@ -1158,7 +1158,7 @@ class BuildDriver(MozbuildObject):
+ if high_finder:
+ print(FINDER_SLOW_MESSAGE % finder_percent)
+
+- ccache_end = monitor.ccache_stats()
++ ccache_end = None # monitor.ccache_stats()
+
+ ccache_diff = None
+ if ccache_start and ccache_end:
diff --git a/testing/thunderbird/APKBUILD b/testing/thunderbird/APKBUILD
new file mode 100644
index 0000000000..c29c64ad03
--- /dev/null
+++ b/testing/thunderbird/APKBUILD
@@ -0,0 +1,297 @@
+# Contributor: Joseph Benden <joe@benden.us>
+# Maintainer: Joseph Benden <joe@benden.us>
+
+pkgname=thunderbird
+pkgver=60.8.0
+_pkgver=$pkgver
+_xulver=$pkgver
+pkgrel=0
+pkgdesc="Thunderbird email client"
+url="https://www.thunderbird.net/"
+arch="x86_64"
+license="GPL-3.0-or-later AND LGPL-2.1-or-later AND MPL-2.0"
+options="!check !strip"
+depends="
+ alsa-lib
+ dbus-glib
+ ffmpeg
+ gconf
+ gtk+3.0
+ hunspell
+ icu
+ libevent
+ libjpeg-turbo
+ libnotify
+ libogg
+ libtheora
+ libvorbis
+ libxcomposite
+ libxt
+ nspr
+ nss
+ sqlite
+ startup-notification
+ "
+makedepends="
+ alsa-lib-dev
+ autoconf2.13
+ automake
+ bsd-compat-headers
+ bzip2-dev
+ cargo
+ cbindgen
+ clang-dev
+ dbus-glib-dev
+ ffmpeg-dev
+ gconf-dev
+ gtk+2.0-dev
+ gtk+3.0-dev
+ hunspell-dev
+ icu-dev
+ libevent-dev
+ libidl-dev
+ libjpeg-turbo-dev
+ libnotify-dev
+ libogg-dev
+ libtheora-dev
+ libtool
+ libvorbis-dev
+ libvpx-dev
+ libxcomposite-dev
+ libxt-dev
+ llvm-dev
+ mesa-dev
+ nasm
+ nodejs
+ nspr-dev
+ nss-dev
+ nss-static
+ paxmark
+ python3-dev
+ sed
+ sqlite-dev
+ startup-notification-dev
+ wireless-tools-dev
+ yasm
+ zip
+ "
+source="https://ftp.mozilla.org/pub/thunderbird/releases/$pkgver/source/thunderbird-$pkgver.source.tar.xz
+ stab.h
+ fix-fortify-system-wrappers.patch
+ fix-fortify-inline.patch
+ fix-seccomp-bpf.patch
+ fix-toolkit.patch
+ fix-tools.patch
+ mallinfo.patch
+ mozilla-build-arm.patch
+ disable-moz-stackwalk.patch
+ fix-rust-target.patch
+ fix-bug-1261392.patch
+ fix-webrtc-glibcisms.patch
+ sandbox-membarrier.patch
+ rust-unitialized-field.patch
+ rust133.patch
+ 0003-Disable-ccache-stats.patch
+ thunderbird.desktop
+ "
+_mozappdir=/usr/lib/$pkgname
+
+# Google API keys (see http://www.chromium.org/developers/how-tos/api-keys)
+# Note: These are for Arch Linux use ONLY. For your own distribution, please
+# get your own set of keys. Feel free to contact foutrelis@archlinux.org for
+# more information.
+_google_api_key=AIzaSyDwr302FpOSkGRpLlUpPThNTDPbXcIn_FM
+
+# Mozilla API keys (see https://location.services.mozilla.com/api)
+# Note: These are for Arch Linux use ONLY. For your own distribution, please
+# get your own set of keys. Feel free to contact heftig@archlinux.org for
+# more information.
+_mozilla_api_key=16674381-f021-49de-8622-3021c5942aff
+
+# help our shared-object scanner to find the libs
+ldpath="$_mozappdir"
+sonameprefix="$pkgname:"
+
+prepare() {
+ default_prepare
+
+ cp "$srcdir"/stab.h toolkit/crashreporter/google-breakpad/src/
+
+ # https://bugzilla.mozilla.org/show_bug.cgi?id=1341234
+ mkdir -p "$builddir"/objdir
+ echo "ac_add_options BINDGEN_CFLAGS='-I/usr/include/nspr -I/usr/include/pixman-1'" >>objdir/.mozconfig
+
+ # add API keys
+ echo -n "${_google_api_key}" > $builddir/objdir/google-api-key
+ echo -n "${_mozilla_api_key}" > $builddir/objdir/mozilla-api-key
+}
+
+build() {
+ cd "$builddir"/objdir
+
+ sed -e 's/checkImpl/checkFFImpl/g' -i ../js/src/vm/JSContext*.h
+
+ export SHELL=/bin/sh
+ export BUILD_OFFICIAL=1
+ export MOZILLA_OFFICIAL=1
+ export USE_SHORT_LIBNAME=1
+ export MACH_NO_TERMINAL_FOOTER=1
+ export TERM=ansi-generic
+
+ # gcc 6
+ export CXXFLAGS="-fno-delete-null-pointer-checks -fno-schedule-insns2"
+
+ # set rpath so linker finds the libs
+ export LDFLAGS="$LDFLAGS -Wl,-rpath,${_mozappdir} -Wl,--gc-sections"
+
+ # ignore compiler warnings
+ export CXXFLAGS="$CXXFLAGS -Wno-class-memaccess -Wno-multistatement-macros -Wno-ignored-qualifiers"
+ export LDFLAGS="$LDFLAGS -Wno-subobject-linkage"
+
+ ../mach configure \
+ --prefix=/usr \
+ --libdir=/usr/lib \
+ \
+ --disable-crashreporter \
+ --disable-elf-hack \
+ --disable-gold \
+ --enable-install-strip \
+ --disable-jemalloc \
+ --disable-profiling \
+ --disable-pulseaudio \
+ --enable-strip \
+ --disable-tests \
+ --disable-updater \
+ --disable-debug \
+ --disable-debug-symbols \
+ \
+ --with-distribution-id=org.alpinelinux \
+ --enable-alsa \
+ --enable-application=comm/mail \
+ --enable-default-toolkit=cairo-gtk3 \
+ --enable-official-branding \
+ --enable-optimize="$CFLAGS -fno-ident -fmerge-all-constants -ffunction-sections -fdata-sections -Wno-maybe-uninitialized -Wno-implicit-fallthrough" \
+ --enable-release \
+ --enable-startup-notification \
+ --enable-system-ffi \
+ --enable-system-sqlite \
+ --enable-ffmpeg \
+ --enable-hardening \
+ \
+ --with-google-location-service-api-keyfile="${builddir}/objdir/google-api-key" \
+ --with-google-safebrowsing-api-keyfile="${builddir}/objdir/google-api-key" \
+ --with-mozilla-api-keyfile="${builddir}/objdir/mozilla-api-key" \
+ \
+ --with-system-bz2 \
+ --with-system-hunspell \
+ --with-system-icu \
+ --with-system-jpeg \
+ --with-system-libevent \
+ --with-system-nspr \
+ --with-system-nss \
+ --with-system-pixman \
+ --with-system-png \
+ --with-system-zlib \
+ --without-ccache \
+ --with-clang-path=/usr/bin/clang-8 \
+ --with-libclang-path=/usr/lib
+ #--with-system-libvpx # requires 1.7x to work, we've got 1.8.0 currently
+
+ ../mach build -v
+}
+
+package() {
+ cd "$builddir"/objdir
+
+ DESTDIR="$pkgdir" \
+ MOZ_MAKE_FLAGS="$MAKEOPTS" \
+ ../mach install
+
+ install -m755 -d ${pkgdir}/usr/share/applications
+ install -m755 -d ${pkgdir}/usr/share/pixmaps
+ install -m755 -d ${pkgdir}/usr/share/icons
+ install -m755 -d ${pkgdir}/usr/share/icons/hicolor
+
+ for i in 16 22 24 32 48 64 128 256; do
+ install -Dm644 "$builddir"/comm/mail/branding/thunderbird/default${i}.png \
+ "$pkgdir/usr/share/icons/hicolor/${i}x${i}/apps/$pkgname.png"
+ done
+ install -Dm644 "$builddir"/comm/mail/branding/thunderbird/TB-symbolic.svg \
+ "$pkgdir/usr/share/icons/hicolor/symbolic/apps/thunderbird-symbolic.svg"
+ install -Dm644 "$builddir"/comm/mail/branding/thunderbird/default48.png \
+ ${pkgdir}/usr/share/pixmaps/$pkgname.png
+
+ install -m644 ${srcdir}/$pkgname.desktop ${pkgdir}/usr/share/applications/$pkgname.desktop
+
+ # thunderbird currently does not work with mprotect. disable it for now
+ local paxflags="-mp"
+ [ "$CARCH" = "x86" ] && paxflags="-msp"
+
+ paxmark "$paxflags" "$pkgdir"/$_mozappdir/thunderbird-bin
+ paxmark "$paxflags" "$pkgdir"/$_mozappdir/plugin-container
+ paxmark "$paxflags" "$pkgdir"/$_mozappdir/pingsender
+
+ _vendorjs="$pkgdir/usr/lib/$pkgname/defaults/preferences/vendor.js"
+ install -Dm644 /dev/stdin "$_vendorjs" <<END
+// Use LANG environment variable to choose locale
+pref("intl.locale.requested", "");
+
+// Use system-provided dictionaries
+pref("spellchecker.dictionary_path", "/usr/share/hunspell");
+
+// Disable default mailer checking.
+pref("mail.shell.checkDefaultMail", false);
+
+// Don't disable our bundled extensions in the application directory
+pref("extensions.autoDisableScopes", 11);
+pref("extensions.shownSelectionUI", true);
+END
+
+ _distini="$pkgdir/usr/lib/$pkgname/distribution/distribution.ini"
+ install -Dm644 /dev/stdin "$_distini" <<END
+[Global]
+id=alpinelinux
+version=1.0
+about=Mozilla Thunderbird for Alpine Linux
+
+[Preferences]
+app.distributor=alpinelinux
+app.distributor.channel=$pkgname
+app.partner.alpinelinux=alpinelinux
+END
+
+ # Use system-provided dictionaries
+ rm -r "$pkgdir/usr/lib/$pkgname/dictionaries"
+ ln -Ts /usr/share/hunspell "$pkgdir/usr/lib/$pkgname/dictionaries"
+ ln -Ts /usr/share/hyphen "$pkgdir/usr/lib/$pkgname/hyphenation"
+
+ # Install a wrapper to avoid confusion about binary path
+ install -Dm755 /dev/stdin "$pkgdir/usr/bin/$pkgname" <<END
+#!/bin/sh
+exec /usr/lib/$pkgname/thunderbird "\$@"
+END
+
+ # Replace duplicate binary with wrapper
+ # https://bugzilla.mozilla.org/show_bug.cgi?id=658850
+ ln -snf "$pkgdir/usr/bin/$pkgname" \
+ "$pkgdir/usr/lib/$pkgname/thunderbird-bin"
+}
+
+sha512sums="b465544a8cbedf0aff0f737cf98e2d030331f1ea016b2e541dfe30a5cf3172f9075e5a9c8d6b7e0f97ffc2e0d3eebbaf9a39e76a499b9fc976bbc0c944dfd058 thunderbird-60.8.0.source.tar.xz
+0b3f1e4b9fdc868e4738b5c81fd6c6128ce8885b260affcb9a65ff9d164d7232626ce1291aaea70132b3e3124f5e13fef4d39326b8e7173e362a823722a85127 stab.h
+2f4f15974d52de4bb273b62a332d13620945d284bbc6fe6bd0a1f58ff7388443bc1d3bf9c82cc31a8527aad92b0cd3a1bc41d0af5e1800e0dcbd7033e58ffd71 fix-fortify-system-wrappers.patch
+09bc32cf9ee81b9cc6bb58ddbc66e6cc5c344badff8de3435cde5848e5a451e0172153231db85c2385ff05b5d9c20760cb18e4138dfc99060a9e960de2befbd5 fix-fortify-inline.patch
+183a4ef62cd79728117797235fe46ecd3e4336c008d615c2b2a64c707477e403aed1ee5e19feb86611b93ebecc00df339aa28a73735e045e38f0d1ce3080341b fix-seccomp-bpf.patch
+2f1bf85a340a82800dd6ba406c23489c319ec037b404f4240837854e2520b9ff11fcca0d51ac05b451c474e800fd8be13b1c57ae2917e9d1c7e5b6d91cf7e2d2 fix-toolkit.patch
+48683964624bb58b5a2a2a5c89da56e3b8dcd04f8d42c6910bea5365010a77d6d82bdd48259774ca54341edc05b6768eaa6aa1b453718c02f760361197e78b52 fix-tools.patch
+69e628668a2f450da249f761e375600e03674aeb6268dac9e282b1a7008ba47292cc8470cbc04a0ccc1d836d1653c56bb1495d5a127f906adf5807f7f95438c1 mallinfo.patch
+3671bf7623c1825c977668efec62b57873bc6052becfd8a68ddcbc2d0ba96e0c3966c61b24716e6c48167d44280d3e690a4ff986907ceba5811a653e87770fff mozilla-build-arm.patch
+e62be6e08c7e0a1d2486f271426d3986a0870f2118442ccb424a509dfc5f92cc17d05cd7e46336176afb7bd9f495b29bb739c8f88ccf918de86209efe00caf95 disable-moz-stackwalk.patch
+42cc44fda4b05259b38f055d6f51461746aa89a474cedc5e92fb9d20879da0d12b1b515b273a549e7302cda9c7eddde20d5fdba09853e5c658784ad6d0b20078 fix-rust-target.patch
+fdd698ddd94d4265cc82aa063fce1522908ad4f5f118fd207e0d64a0409e1e04e3f096625caacbacb251b42cafe0d743bb0a0b9463a882d8938b5bb4562a05e1 fix-bug-1261392.patch
+d09401eaa9620c9d4fa368865539fc4efb66eafb362d2195a653a6c6fd65e9370ced1b1b005993cbd181011360327dcb38e4b3e77b711f2c5ccf22d235ed4ef6 fix-webrtc-glibcisms.patch
+e725a6e9b2361cd566ae2f90861dbce9f2231f16721ec02f4b9f9986b7dc82cc006ea6a500ae7f30c095ce746132a5bd1d9532c4cf0d1541dcc672a20aef8807 sandbox-membarrier.patch
+01b48a708cc6bc6e3cd7cc7b16f5137ec344566ac891d699b65e322bc992726072fa14a54cef1a7775799fcbbcf90a6c170107c8524caba3bc311b42d93b7581 rust-unitialized-field.patch
+66a847c2889acc794f4db5c47f8a30e819c120f84457d5c2e094e4a2ba990036e6ca84af9d799d7446b058a5fd7292926c6e4996f105d494f1b6e8e5f3b9a6a5 rust133.patch
+3e57b2541f3889a1cf701860c8bf299f294cb077b0e8cfffda271cf02d1f59b25a697485d0df66e847e47f795b1ace54488a84a42851f2f8587717335537b44d 0003-Disable-ccache-stats.patch
+95a2b1deb4f6c90750fdd2bfe8ca0a7879a5b267965091705a6beb0a0a4b1ccad75d11df7b9885543ca4232ff704e975c6946f4c11804cb71c471e06f9576001 thunderbird.desktop"
diff --git a/testing/thunderbird/disable-moz-stackwalk.patch b/testing/thunderbird/disable-moz-stackwalk.patch
new file mode 100644
index 0000000000..214ab69e73
--- /dev/null
+++ b/testing/thunderbird/disable-moz-stackwalk.patch
@@ -0,0 +1,16 @@
+--- a/mozglue/misc/StackWalk.cpp
++++ b/mozglue/misc/StackWalk.cpp
+@@ -32,13 +32,7 @@
+ #define MOZ_STACKWALK_SUPPORTS_MACOSX 0
+ #endif
+
+-#if (defined(linux) && \
+- ((defined(__GNUC__) && (defined(__i386) || defined(PPC))) || \
+- defined(HAVE__UNWIND_BACKTRACE)))
+-#define MOZ_STACKWALK_SUPPORTS_LINUX 1
+-#else
+ #define MOZ_STACKWALK_SUPPORTS_LINUX 0
+-#endif
+
+ #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1)
+ #define HAVE___LIBC_STACK_END 1
diff --git a/testing/thunderbird/fix-bug-1261392.patch b/testing/thunderbird/fix-bug-1261392.patch
new file mode 100644
index 0000000000..acf56e1ece
--- /dev/null
+++ b/testing/thunderbird/fix-bug-1261392.patch
@@ -0,0 +1,27 @@
+diff --git a/tools/profiler/core/platform.h b/tools/profiler/core/platform.h
+index 5f0fb69..086a511 100644
+--- a/tools/profiler/core/platform.h
++++ b/tools/profiler/core/platform.h
+@@ -42,10 +42,11 @@
+ #include "PlatformMacros.h"
+ #include <vector>
+
+-// We need a definition of gettid(), but glibc doesn't provide a
+-// wrapper for it.
+-#if defined(__GLIBC__)
++// We need a definition of gettid(), but Linux libc implementations don't
++// provide a wrapper for it (except for Bionic)
++#if defined(__linux__)
+ #include <unistd.h>
++#if !defined(__BIONIC__)
+ #include <sys/syscall.h>
+ static inline pid_t gettid() { return (pid_t)syscall(SYS_gettid); }
+ #elif defined(GP_OS_darwin)
+@@ -61,6 +62,7 @@ static inline pid_t gettid() { return (pid_t)syscall(SYS_thread_selfid); }
+ #define getpid _getpid
+ #endif
+ #endif
++#endif
+
+ extern mozilla::LazyLogModule gProfilerLog;
+
diff --git a/testing/thunderbird/fix-fortify-inline.patch b/testing/thunderbird/fix-fortify-inline.patch
new file mode 100644
index 0000000000..2498c57fc7
--- /dev/null
+++ b/testing/thunderbird/fix-fortify-inline.patch
@@ -0,0 +1,11 @@
+--- a/media/webrtc/signaling/src/sdp/sipcc/sdp_os_defs.h
++++ b/media/webrtc/signaling/src/sdp/sipcc/sdp_os_defs.h
+@@ -27,8 +27,5 @@
+ typedef int16_t int16;
+ typedef unsigned short ushort;
+ typedef unsigned long ulong;
+-#ifndef __GNUC_STDC_INLINE__
+-#define inline
+-#endif
+
+ #endif /* _SDP_OS_DEFS_H_ */
diff --git a/testing/thunderbird/fix-fortify-system-wrappers.patch b/testing/thunderbird/fix-fortify-system-wrappers.patch
new file mode 100644
index 0000000000..17cf7e303d
--- /dev/null
+++ b/testing/thunderbird/fix-fortify-system-wrappers.patch
@@ -0,0 +1,13 @@
+The wrapper features.h gets pulled in by system headers causing thigns to
+break. We work around it by simply not wrap features.h
+
+--- ./config/system-headers.mozbuild.orig
++++ ./config/system-headers.mozbuild
+@@ -229,7 +229,6 @@
+ 'execinfo.h',
+ 'extras.h',
+ 'fcntl.h',
+- 'features.h',
+ 'fenv.h',
+ 'ffi.h',
+ 'fibdef.h',
diff --git a/testing/thunderbird/fix-rust-target.patch b/testing/thunderbird/fix-rust-target.patch
new file mode 100644
index 0000000000..7dd760ca1d
--- /dev/null
+++ b/testing/thunderbird/fix-rust-target.patch
@@ -0,0 +1,24 @@
+--- a/build/moz.configure/rust.configure
++++ b/build/moz.configure/rust.configure
+@@ -181,9 +181,11 @@
+ die("Don't know how to translate {} for rustc".format(
+ host_or_target.alias))
+
++ fixed_alias = rustc_target.alias.replace("-unknown-", "-alpine-").replace("-gnu", "-musl")
++
+ # Check to see whether our rustc has a reasonably functional stdlib
+ # for our chosen target.
+- target_arg = '--target=' + rustc_target.alias
++ target_arg = '--target=' + fixed_alias
+ in_fd, in_path = mkstemp(prefix='conftest', suffix='.rs')
+ out_fd, out_path = mkstemp(prefix='conftest', suffix='.rlib')
+ os.close(out_fd)
+@@ -220,7 +222,7 @@
+ os.remove(out_path)
+
+ # This target is usable.
+- return rustc_target.alias
++ return fixed_alias
+
+ return rust_target
+
diff --git a/testing/thunderbird/fix-seccomp-bpf.patch b/testing/thunderbird/fix-seccomp-bpf.patch
new file mode 100644
index 0000000000..ae3ba5d44b
--- /dev/null
+++ b/testing/thunderbird/fix-seccomp-bpf.patch
@@ -0,0 +1,26 @@
+diff -ru firefox-62.0.3.orig/security/sandbox/chromium/sandbox/linux/seccomp-bpf/trap.cc firefox-62.0.3/security/sandbox/chromium/sandbox/linux/seccomp-bpf/trap.cc
+--- firefox-62.0.3.orig/security/sandbox/chromium/sandbox/linux/seccomp-bpf/trap.cc 2018-12-14 08:53:46.083976137 +0000
++++ firefox-62.0.3/security/sandbox/chromium/sandbox/linux/seccomp-bpf/trap.cc 2018-12-14 08:51:22.084596411 +0000
+@@ -25,6 +25,11 @@
+ #include "sandbox/linux/system_headers/linux_seccomp.h"
+ #include "sandbox/linux/system_headers/linux_signal.h"
+
++// musl libc defines siginfo_t __si_fields instead of _sifields
++#if defined(OS_LINUX) && !defined(__GLIBC__)
++#define _sifields __si_fields
++#endif
++
+ namespace {
+
+ struct arch_sigsys {
+diff -ru firefox-62.0.3.orig/security/sandbox/linux/SandboxFilter.cpp firefox-62.0.3/security/sandbox/linux/SandboxFilter.cpp
+--- firefox-62.0.3.orig/security/sandbox/linux/SandboxFilter.cpp 2018-10-01 18:35:28.000000000 +0000
++++ firefox-62.0.3/security/sandbox/linux/SandboxFilter.cpp 2018-12-14 08:57:50.645264590 +0000
+@@ -997,6 +997,7 @@ class ContentSandboxPolicy : public SandboxPolicyCommon {
+ // ffmpeg, and anything else that calls isatty(), will be told
+ // that nothing is a typewriter:
+ .ElseIf(request == TCGETS, Error(ENOTTY))
++ .ElseIf(request == TIOCGWINSZ, Error(ENOTTY))
+ // Allow anything that isn't a tty ioctl, for now; bug 1302711
+ // will cover changing this to a default-deny policy.
+ .ElseIf(shifted_type != kTtyIoctls, Allow())
diff --git a/testing/thunderbird/fix-stack-overflow.patch b/testing/thunderbird/fix-stack-overflow.patch
new file mode 100644
index 0000000000..e164fc69b6
--- /dev/null
+++ b/testing/thunderbird/fix-stack-overflow.patch
@@ -0,0 +1,45 @@
+https://bugs.alpinelinux.org/issues/5559
+https://bugzilla.mozilla.org/show_bug.cgi?id=1274732
+
+diff --git a/netwerk/streamconv/converters/nsHTTPCompressConv.cpp b/netwerk/streamconv/converters/nsHTTPCompressConv.cpp
+index 1193529..aeb96b5 100644
+--- a/netwerk/streamconv/converters/nsHTTPCompressConv.cpp
++++ b/netwerk/streamconv/converters/nsHTTPCompressConv.cpp
+@@ -165,9 +165,8 @@ nsHTTPCompressConv::BrotliHandler(nsIInputStream *stream, void *closure, const c
+ nsHTTPCompressConv *self = static_cast<nsHTTPCompressConv *>(closure);
+ *countRead = 0;
+
+- const uint32_t kOutSize = 128 * 1024; // just a chunk size, we call in a loop
+- unsigned char outBuffer[kOutSize];
+- unsigned char *outPtr;
++ const size_t kOutSize = 128 * 1024; // just a chunk size, we call in a loop
++ uint8_t *outPtr;
+ size_t outSize;
+ size_t avail = aAvail;
+ BrotliResult res;
+@@ -177,9 +176,15 @@ nsHTTPCompressConv::BrotliHandler(nsIInputStream *stream, void *closure, const c
+ return NS_OK;
+ }
+
++ auto outBuffer = MakeUniqueFallible<uint8_t[]>(kOutSize);
++ if (outBuffer == nullptr) {
++ self->mBrotli->mStatus = NS_ERROR_OUT_OF_MEMORY;
++ return self->mBrotli->mStatus;
++ }
++
+ do {
+ outSize = kOutSize;
+- outPtr = outBuffer;
++ outPtr = outBuffer.get();
+
+ // brotli api is documented in brotli/dec/decode.h and brotli/dec/decode.c
+ LOG(("nsHttpCompresssConv %p brotlihandler decompress %d\n", self, avail));
+@@ -210,7 +215,7 @@ nsHTTPCompressConv::BrotliHandler(nsIInputStream *stream, void *closure, const c
+ nsresult rv = self->do_OnDataAvailable(self->mBrotli->mRequest,
+ self->mBrotli->mContext,
+ self->mBrotli->mSourceOffset,
+- reinterpret_cast<const char *>(outBuffer),
++ reinterpret_cast<const char *>(outBuffer.get()),
+ outSize);
+ LOG(("nsHttpCompressConv %p BrotliHandler ODA rv=%x", self, rv));
+ if (NS_FAILED(rv)) {
diff --git a/testing/thunderbird/fix-toolkit.patch b/testing/thunderbird/fix-toolkit.patch
new file mode 100644
index 0000000000..8c7ebc1c86
--- /dev/null
+++ b/testing/thunderbird/fix-toolkit.patch
@@ -0,0 +1,90 @@
+diff --git a/toolkit/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc b/toolkit/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc
+index 4222ce3..4d40c6a 100644
+--- a/toolkit/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc
++++ b/toolkit/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc
+@@ -45,6 +45,7 @@
+ #include <sys/mman.h>
+ #include <sys/stat.h>
+ #include <unistd.h>
++#include <libgen.h>
+
+ #include <iostream>
+ #include <set>
+diff --git a/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.cc b/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.cc
+index 6019fc7..5953e32 100644
+--- a/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.cc
++++ b/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.cc
+@@ -41,6 +41,10 @@
+
+ #include "common/using_std_string.h"
+
++#ifndef N_UNDF
++#define N_UNDF 0
++#endif
++
+ using std::vector;
+
+ namespace google_breakpad {
+diff --git a/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.h b/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.h
+index 98ee2dd..d57aa68 100644
+--- a/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.h
++++ b/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.h
+@@ -55,7 +55,7 @@
+
+ #ifdef HAVE_MACH_O_NLIST_H
+ #include <mach-o/nlist.h>
+-#elif defined(HAVE_A_OUT_H)
++#elif 0
+ #include <a.out.h>
+ #endif
+
+diff --git a/toolkit/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h b/toolkit/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h
+index 93fdad7..f34e5e0 100644
+--- a/toolkit/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h
++++ b/toolkit/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h
+@@ -1134,6 +1134,12 @@ struct kernel_statfs {
+ #ifndef __NR_fallocate
+ #define __NR_fallocate 285
+ #endif
++
++#undef __NR_pread
++#define __NR_pread __NR_pread64
++#undef __NR_pwrite
++#define __NR_pwrite __NR_pwrite64
++
+ /* End of x86-64 definitions */
+ #elif defined(__mips__)
+ #if _MIPS_SIM == _MIPS_SIM_ABI32
+diff --git a/toolkit/mozapps/update/common/updatedefines.h b/toolkit/mozapps/update/common/updatedefines.h
+index 79276f7..4c67976 100644
+--- a/toolkit/mozapps/update/common/updatedefines.h
++++ b/toolkit/mozapps/update/common/updatedefines.h
+@@ -100,7 +100,7 @@ static inline int mywcsprintf(WCHAR* dest, size_t count, const WCHAR* fmt,
+
+ #ifdef SOLARIS
+ #include <sys/stat.h>
+-#else
++#elif !defined(__linux__) || defined(__GLIBC__)
+ #include <fts.h>
+ #endif
+ #include <dirent.h>
+diff --git a/toolkit/mozapps/update/updater/updater.cpp b/toolkit/mozapps/update/updater/updater.cpp
+index 257ccb4..01314e4 100644
+--- a/toolkit/mozapps/update/updater/updater.cpp
++++ b/toolkit/mozapps/update/updater/updater.cpp
+@@ -3737,6 +3737,7 @@ int add_dir_entries(const NS_tchar *dirpath, ActionList *list)
+ int add_dir_entries(const NS_tchar *dirpath, ActionList *list)
+ {
+ int rv = OK;
++#if !defined(__linux__) || defined(__GLIBC__)
+ FTS *ftsdir;
+ FTSENT *ftsdirEntry;
+ NS_tchar searchpath[MAXPATHLEN];
+@@ -3840,6 +3841,7 @@ int add_dir_entries(const NS_tchar *dirpath, ActionList *list)
+ }
+
+ fts_close(ftsdir);
++#endif
+
+ return rv;
+ }
diff --git a/testing/thunderbird/fix-tools.patch b/testing/thunderbird/fix-tools.patch
new file mode 100644
index 0000000000..edecb7f678
--- /dev/null
+++ b/testing/thunderbird/fix-tools.patch
@@ -0,0 +1,45 @@
+--- a/tools/profiler/core/platform.h
++++ b/tools/profiler/core/platform.h
+@@ -29,6 +29,8 @@
+ #ifndef TOOLS_PLATFORM_H_
+ #define TOOLS_PLATFORM_H_
+
++#include <sys/types.h>
++
+ #include <stdint.h>
+ #include <math.h>
+ #include "MainThreadUtils.h"
+--- a/tools/profiler/lul/LulElf.cpp
++++ b/tools/profiler/lul/LulElf.cpp
+@@ -469,10 +469,10 @@ string FormatIdentifier(unsigned char identifier[16]) {
+ // Return the non-directory portion of FILENAME: the portion after the
+ // last slash, or the whole filename if there are no slashes.
+ string BaseFileName(const string& filename) {
+- // Lots of copies! basename's behavior is less than ideal.
+- char* c_filename = strdup(filename.c_str());
+- string base = basename(c_filename);
+- free(c_filename);
++ // basename's behavior is less than ideal so avoid it
++ const char *c_filename = filename.c_str();
++ const char *p = strrchr(c_filename, '/');
++ string base = p ? p+1 : c_filename;
+ return base;
+ }
+
+--- a/tools/profiler/core/platform-linux-android.cpp
++++ b/tools/profiler/core/platform-linux-android.cpp
+@@ -497,8 +497,10 @@ static void PlatformInit(PSLockRef aLock) {}
+ ucontext_t sSyncUContext;
+
+ void Registers::SyncPopulate() {
+- if (!getcontext(&sSyncUContext)) {
+- PopulateRegsFromContext(*this, &sSyncUContext);
+- }
++ #if defined(__GLIBC__)
++ if (!getcontext(&sSyncUContext)) {
++ PopulateRegsFromContext(*this, &sSyncUContext);
++ }
++ #endif
+ }
+ #endif
+
diff --git a/testing/thunderbird/fix-webrtc-glibcisms.patch b/testing/thunderbird/fix-webrtc-glibcisms.patch
new file mode 100644
index 0000000000..958f9ef6c1
--- /dev/null
+++ b/testing/thunderbird/fix-webrtc-glibcisms.patch
@@ -0,0 +1,13 @@
+--- a/media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c 2018-05-09 23:48:44.677389171 +0200
++++ b/media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c 2018-05-09 23:48:56.254373557 +0200
+@@ -11,7 +11,9 @@
+ #include <stdlib.h>
+ #include <string.h>
+ #include <features.h>
+-#if __GLIBC_PREREQ(2, 16)
++#if !__GLIBC__
++#include <sys/auxv.h>
++#elif __GLIBC_PREREQ(2, 16)
+ #include <sys/auxv.h>
+ #else
+ #include <fcntl.h>
diff --git a/testing/thunderbird/mallinfo.patch b/testing/thunderbird/mallinfo.patch
new file mode 100644
index 0000000000..91c65dd059
--- /dev/null
+++ b/testing/thunderbird/mallinfo.patch
@@ -0,0 +1,18 @@
+--- a/xpcom/base/nsMemoryReporterManager.cpp
++++ b/xpcom/base/nsMemoryReporterManager.cpp
+@@ -153,6 +153,7 @@ ResidentUniqueDistinguishedAmount(int64_t* aN)
+ return GetProcSelfSmapsPrivate(aN);
+ }
+
++#ifdef __GLIBC__
+ #define HAVE_SYSTEM_HEAP_REPORTER 1
+ nsresult
+ SystemHeapSize(int64_t* aSizeOut)
+@@ -172,6 +173,7 @@ SystemHeapSize(int64_t* aSizeOut)
+ *aSizeOut = size_t(info.hblkhd) + size_t(info.uordblks);
+ return NS_OK;
+ }
++#endif
+
+ #elif defined(__DragonFly__) || defined(__FreeBSD__) \
+ || defined(__NetBSD__) || defined(__OpenBSD__) \
diff --git a/testing/thunderbird/mozilla-build-arm.patch b/testing/thunderbird/mozilla-build-arm.patch
new file mode 100644
index 0000000000..8b9022ca3c
--- /dev/null
+++ b/testing/thunderbird/mozilla-build-arm.patch
@@ -0,0 +1,11 @@
+--- ./gfx/ycbcr/moz.build.orig 2014-04-03 13:50:38.990296661 +0000
++++ ./gfx/ycbcr/moz.build 2014-04-03 13:52:26.878268547 +0000
+@@ -53,7 +53,7 @@ else:
+ 'yuv_row_other.cpp',
+ ]
+
+-if CONFIG['CPU_ARCH'] == 'arm' and CONFIG['HAVE_ARM_NEON']:
++if CONFIG['HAVE_ARM_NEON']:
+ SOURCES += [
+ 'yuv_row_arm.s',
+ ]
diff --git a/testing/thunderbird/rust-unitialized-field.patch b/testing/thunderbird/rust-unitialized-field.patch
new file mode 100644
index 0000000000..67ef3a02ab
--- /dev/null
+++ b/testing/thunderbird/rust-unitialized-field.patch
@@ -0,0 +1,19 @@
+--- ./media/audioipc/audioipc/src/cmsg.rs.orig 2018-05-09 22:19:14.748631939 +0200
++++ ./media/audioipc/audioipc/src/cmsg.rs 2018-05-09 22:19:22.961620862 +0200
+@@ -106,11 +106,11 @@ impl ControlMsgBuilder {
+ return Err(Error::NoSpace);
+ }
+
+- let cmsghdr = cmsghdr {
+- cmsg_len: cmsg_len as _,
+- cmsg_level: level,
+- cmsg_type: kind,
+- };
++ use std::mem;
++ let mut cmsghdr: cmsghdr = unsafe { mem::zeroed() };
++ cmsghdr.cmsg_len = cmsg_len as _;
++ cmsghdr.cmsg_level = level;
++ cmsghdr.cmsg_type = kind;
+
+ let cmsghdr = unsafe {
+ slice::from_raw_parts(&cmsghdr as *const _ as *const _, mem::size_of::<cmsghdr>())
diff --git a/testing/thunderbird/rust133.patch b/testing/thunderbird/rust133.patch
new file mode 100644
index 0000000000..9ec1e9c265
--- /dev/null
+++ b/testing/thunderbird/rust133.patch
@@ -0,0 +1,24 @@
+This fixes build errors under recent Rust.
+
+--- a/servo/components/style_traits/lib.rs
++++ b/servo/components/style_traits/lib.rs
+@@ -9,7 +9,7 @@
+ #![crate_name = "style_traits"]
+ #![crate_type = "rlib"]
+
+-#![deny(unsafe_code, missing_docs)]
++#![deny(unsafe_code)]
+
+ extern crate app_units;
+ #[macro_use] extern crate bitflags;
+--- a/servo/components/style/lib.rs
++++ b/servo/components/style/lib.rs
+@@ -23,8 +23,6 @@
+ //! [cssparser]: ../cssparser/index.html
+ //! [selectors]: ../selectors/index.html
+
+-#![deny(missing_docs)]
+-
+ extern crate app_units;
+ extern crate arrayvec;
+ extern crate atomic_refcell;
diff --git a/testing/thunderbird/sandbox-membarrier.patch b/testing/thunderbird/sandbox-membarrier.patch
new file mode 100644
index 0000000000..24b70ca401
--- /dev/null
+++ b/testing/thunderbird/sandbox-membarrier.patch
@@ -0,0 +1,54 @@
+allow usage of SYS_membarrier, needed since musl-1.1.22
+
+Taken from voidlinux: https://github.com/void-linux/void-packages/commit/4198411ac3b9e2620e171c662df82008da0faebb
+
+--- a/security/sandbox/linux/SandboxFilter.cpp
++++ b/security/sandbox/linux/SandboxFilter.cpp
+@@ -283,6 +283,8 @@
+ case __NR_set_tid_address:
+ return Allow();
+ #endif
++ case __NR_membarrier:
++ return Allow();
+
+ // prctl
+ case __NR_prctl: {
+
+--- a/security/sandbox/chromium/sandbox/linux/system_headers/arm_linux_syscalls.h
++++ b/security/sandbox/chromium/sandbox/linux/system_headers/arm_linux_syscalls.h
+@@ -1385,6 +1385,10 @@
+ #define __NR_memfd_create (__NR_SYSCALL_BASE+385)
+ #endif
+
++#if !defined(__NR_membarrier)
++#define __NR_membarrier (__NR_SYSCALL_BASE+389)
++#endif
++
+ // ARM private syscalls.
+ #if !defined(__ARM_NR_BASE)
+ #define __ARM_NR_BASE (__NR_SYSCALL_BASE + 0xF0000)
+
+--- a/security/sandbox/chromium/sandbox/linux/system_headers/x86_64_linux_syscalls.h
++++ b/security/sandbox/chromium/sandbox/linux/system_headers/x86_64_linux_syscalls.h
+@@ -1290,5 +1290,9 @@
+ #define __NR_memfd_create 319
+ #endif
+
++#if !defined(__NR_membarrier)
++#define __NR_membarrier 324
++#endif
++
+ #endif // SANDBOX_LINUX_SYSTEM_HEADERS_X86_64_LINUX_SYSCALLS_H_
+
+--- a/security/sandbox/chromium/sandbox/linux/system_headers/x86_32_linux_syscalls.h
++++ b/security/sandbox/chromium/sandbox/linux/system_headers/x86_32_linux_syscalls.h
+@@ -1490,5 +1490,9 @@
+ #define __NR_shutdown 373
+ #endif
+
++#if !defined(__NR_membarrier)
++#define __NR_membarrier 375
++#endif
++
+ #endif // SANDBOX_LINUX_SYSTEM_HEADERS_X86_32_LINUX_SYSCALLS_H_
+
diff --git a/testing/thunderbird/stab.h b/testing/thunderbird/stab.h
new file mode 100644
index 0000000000..6f70af3989
--- /dev/null
+++ b/testing/thunderbird/stab.h
@@ -0,0 +1,71 @@
+/* $OpenBSD: stab.h,v 1.3 2003/06/02 19:34:12 millert Exp $ */
+/* $NetBSD: stab.h,v 1.4 1994/10/26 00:56:25 cgd Exp $ */
+
+/*-
+ * Copyright (c) 1991 The Regents of the University of California.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``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 REGENTS OR CONTRIBUTORS 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.
+ *
+ * @(#)stab.h 5.2 (Berkeley) 4/4/91
+ */
+
+#ifndef _STAB_H_
+#define _STAB_H_
+
+/*
+ * The following are symbols used by various debuggers and by the Pascal
+ * compiler. Each of them must have one (or more) of the bits defined by
+ * the N_STAB mask set.
+ */
+
+#define N_GSYM 0x20 /* global symbol */
+#define N_FNAME 0x22 /* F77 function name */
+#define N_FUN 0x24 /* procedure name */
+#define N_STSYM 0x26 /* data segment variable */
+#define N_LCSYM 0x28 /* bss segment variable */
+#define N_MAIN 0x2a /* main function name */
+#define N_PC 0x30 /* global Pascal symbol */
+#define N_RSYM 0x40 /* register variable */
+#define N_SLINE 0x44 /* text segment line number */
+#define N_DSLINE 0x46 /* data segment line number */
+#define N_BSLINE 0x48 /* bss segment line number */
+#define N_SSYM 0x60 /* structure/union element */
+#define N_SO 0x64 /* main source file name */
+#define N_LSYM 0x80 /* stack variable */
+#define N_BINCL 0x82 /* include file beginning */
+#define N_SOL 0x84 /* included source file name */
+#define N_PSYM 0xa0 /* parameter variable */
+#define N_EINCL 0xa2 /* include file end */
+#define N_ENTRY 0xa4 /* alternate entry point */
+#define N_LBRAC 0xc0 /* left bracket */
+#define N_EXCL 0xc2 /* deleted include file */
+#define N_RBRAC 0xe0 /* right bracket */
+#define N_BCOMM 0xe2 /* begin common */
+#define N_ECOMM 0xe4 /* end common */
+#define N_ECOML 0xe8 /* end common (local name) */
+#define N_LENG 0xfe /* length of preceding entry */
+
+#endif /* !_STAB_H_ */
diff --git a/testing/thunderbird/thunderbird.desktop b/testing/thunderbird/thunderbird.desktop
new file mode 100644
index 0000000000..210859df01
--- /dev/null
+++ b/testing/thunderbird/thunderbird.desktop
@@ -0,0 +1,64 @@
+[Desktop Entry]
+Name=Thunderbird
+GenericName=Mail Client
+GenericName[ast]=Client de correu
+GenericName[ca]=Client de correu
+GenericName[cs]=Poštovní klient
+GenericName[da]=E-postklient
+GenericName[de]=E-Mail-Anwendung
+GenericName[el]=Λογισμικό αλληλογραφίας
+GenericName[es]=Cliente de correo
+GenericName[fi]=Sähköpostiohjelma
+GenericName[fr]=Client de messagerie
+GenericName[gl]=Cliente de correo electrónico
+GenericName[he]=לקוח דוא״ל
+GenericName[hr]=Klijent e-pošte
+GenericName[hu]=Levelezőkliens
+GenericName[it]=Client email
+GenericName[ja]=電子メールクライアント
+GenericName[ko]=메일 클라이언트
+GenericName[nl]=E-mailprogramma
+GenericName[pl]=Klient poczty
+GenericName[pt_BR]=Cliente de E-mail
+GenericName[ru]=Почтовый клиент
+GenericName[sk]=Poštový klient
+GenericName[ug]=ئېلخەت دېتالى
+GenericName[uk]=Поштова програма
+GenericName[vi]=Phần mềm khách quản lý thư điện tử
+GenericName[zh_CN]=邮件新闻客户端
+GenericName[zh_TW]=郵件用戶端
+Comment=Send and receive mail with Thunderbird
+Comment[ast]=Lleer y escribir corréu electrónicu
+Comment[ca]=Llegiu i escriviu correu
+Comment[cs]=Čtení a psaní pošty
+Comment[da]=Skriv/læs e-post/nyhedsgruppe med Mozilla Thunderbird
+Comment[de]=E-Mails und Nachrichten mit Thunderbird lesen und schreiben
+Comment[el]=Διαβάστε και γράψτε γράμματα με το Mozilla Thunderbird
+Comment[es]=Lea y escriba correos y noticias con Thunderbird
+Comment[fi]=Lue ja kirjoita sähköposteja
+Comment[fr]=Lire et écrire des courriels
+Comment[gl]=Lea e escriba correo electrónico
+Comment[he]=קריאה/כתיבה של דוא״ל/חדשות באמצעות Mozilla Thunderbird
+Comment[hr]=Čitajte/šaljite e-poštu s Thunderbird
+Comment[hu]=Levelek írása és olvasása a Thunderbirddel
+Comment[it]=Per leggere e scrivere email
+Comment[ja]=メールの読み書き
+Comment[ko]=Mozilla Thunderbird 메일/뉴스 읽기 및 쓰기 클라이언트
+Comment[nl]=E-mail/nieuws lezen en schrijven met Mozilla Thunderbird
+Comment[pl]=Czytanie i wysyłanie e-maili
+Comment[pt_BR]=Leia e escreva suas mensagens
+Comment[ru]=Читайте и пишите письма
+Comment[sk]=Čítajte a píšte poštu pomocou programu Thunderbird
+Comment[sv]=Läs och skriv e-post
+Comment[ug]=ئېلخەت ۋە خەۋەرلەرنى Mozilla Thunderbird دا كۆرۈش ۋە يېزىش
+Comment[uk]=Читання та написання листів
+Comment[vi]=Đọc và soạn thư điện tử
+Comment[zh_CN]=阅读邮件或新闻
+Comment[zh_TW]=以 Mozilla Thunderbird 讀寫郵件或新聞
+Exec=thunderbird %u
+Icon=thunderbird
+Terminal=false
+Type=Application
+MimeType=message/rfc822;x-scheme-handler/mailto;
+StartupNotify=true
+Categories=Network;Email;