# Contributor: Joseph Benden # Maintainer: Joseph Benden pkgname=thunderbird pkgver=78.3.2 pkgrel=0 pkgdesc="Thunderbird email client" url="https://www.thunderbird.net/" # Limited on: # s390x, mips, mips64: limited by rust and cargo # armhf: build failure on armhf due to wasm arch="all !s390x !armhf !mips !mips64" 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 gnupg gtk+3.0 hunspell icu libevent libjpeg-turbo libnotify libogg libtheora libvorbis libxcomposite libxt nspr nss " makedepends=" alsa-lib-dev autoconf2.13 automake bsd-compat-headers cargo cbindgen clang-dev dbus-glib-dev ffmpeg-dev gettext gtk+2.0-dev gtk+3.0-dev hunspell-dev icu-dev libevent-dev libffi-dev libidl-dev libjpeg-turbo-dev libnotify-dev libogg-dev libtheora-dev libtool libvorbis-dev libvpx-dev libwebp-dev libxcomposite-dev libxt-dev llvm-dev mesa-dev nasm nodejs nspr-dev nss-dev nss-static pipewire-dev pulseaudio-dev python3 sed 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-tools.patch mallinfo.patch disable-moz-stackwalk.patch fix-rust-target.patch fix-webrtc-glibcisms.patch fd6847c9416f9eebde636e21d794d25d1be8791d.patch allow-custom-rust-vendor.patch remove-faulty-libvpx-check.patch disable-neon-in-aom.patch sandbox-fork.patch sandbox-sched_setscheduler.patch thunderbird.desktop " # secfixes: # 68.10.0-r0: # - CVE-2020-12417 # - CVE-2020-12418 # - CVE-2020-12419 # - CVE-2020-12420 # - CVE-2020-12421 # 68.9.0-r0: # - CVE-2020-12398 # - CVE-2020-12399 # - CVE-2020-12405 # - CVE-2020-12406 # - CVE-2020-12410 # 68.8.0-r0: # - CVE-2020-12387 # - CVE-2020-12392 # - CVE-2020-12393 # - CVE-2020-12395 # - CVE-2020-12397 # - CVE-2020-6831 # 68.7.0-r0: # - CVE-2020-6819 # - CVE-2020-6820 # - CVE-2020-6821 # - CVE-2020-6822 # - CVE-2020-6825 # 68.6.0-r0: # - CVE-2019-20503 # - CVE-2020-6805 # - CVE-2020-6806 # - CVE-2020-6807 # - CVE-2020-6811 # - CVE-2020-6812 # - CVE-2020-6814 # 68.5.0-r0: # - CVE-2020-6793 # - CVE-2020-6794 # - CVE-2020-6795 # - CVE-2020-6797 # - CVE-2020-6798 # - CVE-2020-6792 # - CVE-2020-6800 _mozappdir=/usr/lib/$pkgname # help our shared-object scanner to find the libs ldpath="$_mozappdir" sonameprefix="$pkgname:" # we need this because cargo verifies checksums of all files in vendor # crates when it builds and gives us no way to override or update the # file sanely... so just clear out the file list _clear_vendor_checksums() { sed -i 's/\("files":{\)[^}]*/\1/' third_party/rust/$1/.cargo-checksum.json } prepare() { default_prepare cp "$srcdir"/stab.h toolkit/crashreporter/google-breakpad/src/ _clear_vendor_checksums audio_thread_priority _clear_vendor_checksums target-lexicon-0.9.0 } build() { mkdir -p "$builddir"/objdir cd "$builddir"/objdir export SHELL=/bin/sh export BUILD_OFFICIAL=1 export MOZILLA_OFFICIAL=1 export USE_SHORT_LIBNAME=1 # Find our triplet JSON export RUST_TARGET="$CTARGET" # set rpath so linker finds the libs export LDFLAGS="$LDFLAGS -Wl,-rpath,$_mozappdir" case "$CARCH" in arm*|x86*) # disable-elf-hack: exists only on arm, x86, x86_64 _arch_config="--disable-elf-hack" ;; esac # TB doesn't have SIMD available on these arches. case "$CARCH" in armhf|armv7) _rust_simd="--disable-rust-simd" _low_mem_flags="--disable-debug-symbols --disable-debug" export RUSTFLAGS="$RUSTFLAGS -C debuginfo=0" ;; x86) _low_mem_flags="--disable-debug-symbols --disable-debug" export RUSTFLAGS="$RUSTFLAGS -C debuginfo=0" ;; *) _rust_simd="--enable-rust-simd" ;; esac ../configure \ --prefix=/usr \ --libdir=/usr/lib \ $_arch_config \ $_low_mem_flags \ $_rust_simd \ \ --disable-crashreporter \ --disable-gold \ --disable-install-strip \ --disable-jemalloc \ --disable-profiling \ --disable-pulseaudio \ --disable-strip \ --disable-tests \ --disable-updater \ \ --enable-alsa \ --enable-application=comm/mail \ --enable-cdp \ --enable-dbus \ --enable-default-toolkit=cairo-gtk3-wayland \ --enable-ffmpeg \ --enable-hardening \ --enable-necko-wifi \ --enable-official-branding \ --enable-openpgp \ --enable-optimize="$CFLAGS -O2" \ --enable-release \ --enable-smoosh \ --enable-system-ffi \ --enable-system-pixman \ \ --with-system-ffi \ --with-system-icu \ --with-system-jpeg \ --with-system-libevent \ --with-system-libvpx \ --with-system-nspr \ --with-system-nss \ --with-system-pixman \ --with-system-png \ --with-system-webp \ --with-system-zlib \ --with-distribution-id=org.alpinelinux \ --with-clang-path=/usr/bin/clang \ --with-libclang-path=/usr/lib make } package() { cd "$builddir"/objdir make install \ DESTDIR="$pkgdir" \ MOZ_MAKE_FLAGS="$MAKEOPTS" install -m755 -d "$pkgdir"/usr/share/applications install -m755 -d "$pkgdir"/usr/share/pixmaps local _png for _png in "$builddir"/comm/mail/branding/thunderbird/default*.png; do local i=${_png%.png} i=${i##*/default} install -D -m644 "$_png" "$pkgdir"/usr/share/icons/hicolor/"$i"x"$i"/apps/thunderbird.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"/thunderbird.desktop "$pkgdir"/usr/share/applications/thunderbird.desktop # Add StartupWMClass=firefox on the .desktop files so Desktop Environments # correctly associate the window with their icon, the correct fix is to have # thunderbird sets its own AppID but this will work for the meantime # See: https://bugzilla.mozilla.org/show_bug.cgi?id=1607399 echo "StartupWMClass=thunderbird" >> "$pkgdir"/usr/share/applications/thunderbird.desktop # install our vendor prefs install -d "$pkgdir"/$_mozappdir/defaults/preferences cat >> "$pkgdir"/$_mozappdir/defaults/preferences/vendor.js <<- EOF // 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); EOF install -d "$pkgdir"/$_mozappdir/distribution cat >> "$pkgdir"/$_mozappdir/distribution/distribution.ini <<- EOF [Global] id=alpinelinux version=1.0 about=Mozilla Thunderbird for Alpine Linux [Preferences] app.distributor=alpinelinux app.distributor.channel=$pkgname app.partner.alpinelinux=alpinelinux EOF # Install a wrapper to avoid confusion about binary path cat >> "$pkgdir/usr/bin/$pkgname" <<- EOF #!/bin/sh exec $_mozappdir/thunderbird "\$@" EOF # Replace duplicate binary with wrapper # https://bugzilla.mozilla.org/show_bug.cgi?id=658850 ln -snf "$pkgdir/usr/bin/$pkgname" \ "$pkgdir/$_mozappdir/thunderbird-bin" } sha512sums="8c0beb2a54f34f9b06605ddc54443c8dbb4e376911bcfa2d5c4b235d4e6f484f1862afba977d0cfcac1222c1b738f967c9b74397ba99c84bd16cc70480a455d8 thunderbird-78.3.2.source.tar.xz 0b3f1e4b9fdc868e4738b5c81fd6c6128ce8885b260affcb9a65ff9d164d7232626ce1291aaea70132b3e3124f5e13fef4d39326b8e7173e362a823722a85127 stab.h 2f4f15974d52de4bb273b62a332d13620945d284bbc6fe6bd0a1f58ff7388443bc1d3bf9c82cc31a8527aad92b0cd3a1bc41d0af5e1800e0dcbd7033e58ffd71 fix-fortify-system-wrappers.patch 4d55f41d15be7457ad630f8f07e4fc0314c2f75720010b4bbe6a2a7f3228210a1e069949e11795efbe2e784b0762e79fdfe5b8ec38e8a64cb8d9cf3b57dd5af1 fix-tools.patch a4a3e062661bda64d502d426c480ac9645345860118de9df9ffe6e0597738c70c11e5cdef2d4fd12c5e2ee30a09310159230524655a419a4f7e4eeeb0f3c06b0 mallinfo.patch 454ea3263cabce099accbdc47aaf83be26a19f8b5a4568c01a7ef0384601cf8315efd86cd917f9c8bf419c2c845db89a905f3ff9a8eb0c8e41042e93aa96a85c disable-moz-stackwalk.patch 089c97e6011e86a9b9d9e7b0c8ba3af0519d1ce4e2b1e9ab7719762d6968388bfa47dad3bf23a6d41c3d66fdcc6c15e2c926e3ff9500bfd4fbf1b53e6d19dc57 fix-rust-target.patch d35cacb9ede80e6bfbef0709823e536dddfb1c02d776275b0b7adb5969e9927d8c6117df96873569c3f3db0a18ee5db24f8086a9311a05077892be43a3dd8d79 fix-webrtc-glibcisms.patch 60845dcb034b2c4459c30f7d5f25c8176cf42df794e2cc0e86c3e2abb6541c24b962f3a16ca70a288d4d6f377b68d00b2904b22463108559612053d835d9bff1 fd6847c9416f9eebde636e21d794d25d1be8791d.patch 4e584621145cf8add069c6dac18e805b3274a1ee402d84e924df2341f7d3c5be261a93ef51283bacbd606f47fbdc628c4323ecc31efc5b403b8d224b18dc278f allow-custom-rust-vendor.patch bb75b2abda86e455d81571052a2cfec5a9d858ffa91c50a7217b4b6c02cbfc0400e9114a27bd54ce78d7d3a44e9b03927cf0317654d98c0f39d26c63c9670117 remove-faulty-libvpx-check.patch f963fcdba7307a0b1712dfb95ceba4ab49f449f60e550bb69d15d50272e6df9add90862251ee561e4ea5fd171a2703552ffa7aade92996f5f0b3e577f1544a6d disable-neon-in-aom.patch 4911ddb41bef8d9f6d6200159cde465627e940fe1c09099be55769d21a5a52a3f737e1bf803daa96126c035b091aea880fbc5d2e6cf5da96ddd17322461a72d6 sandbox-fork.patch db26757b2ebf9f567962e32294b4ae48b3a5d0378a7589dfe650fe3a179ff58befbab5082981c68e1c25fb9e56b2db1e4e510d4bca17c3e3aedbf9a2f21806eb sandbox-sched_setscheduler.patch 95a2b1deb4f6c90750fdd2bfe8ca0a7879a5b267965091705a6beb0a0a4b1ccad75d11df7b9885543ca4232ff704e975c6946f4c11804cb71c471e06f9576001 thunderbird.desktop"