diff options
| author | Joseph Benden <joe@benden.us> | 2019-07-18 00:10:48 +0000 |
|---|---|---|
| committer | Leonardo Arena <rnalrd@alpinelinux.org> | 2019-08-28 12:33:37 +0000 |
| commit | 641fc95383be633859e0c4cd1a22b95b3ef10c79 (patch) | |
| tree | 7cb0a88f781352d32de2fa1ca85b57cb60169182 /testing | |
| parent | 76a5e58c61aa5b678248a6eff0937cdf4a924acb (diff) | |
| download | aports-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')
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; |
