PKGBUILDs/extra/thunderbird/PKGBUILD
2021-02-10 01:40:27 +00:00

292 lines
16 KiB
Bash

# Maintainer: Levente Polyak <anthraxx[at]archlinux[dot]org>
# Contributor: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
# Contributor: Ionut Biru <ibiru@archlinux.org>
# Contributor: Alexander Baldeck <alexander@archlinux.org>
# Contributor: Dale Blount <dale@archlinux.org>
# Contributor: Anders Bostrom <anders.bostrom@home.se>
# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
# - mozconfig changes for ARM
# - revert change for clang that breaks gcc build on ARM
buildarch=12
highmem=3
pkgbase=thunderbird
pkgname=(thunderbird)
pkgver=78.7.1
pkgrel=1
pkgdesc='Standalone mail and news reader from mozilla.org'
url='https://www.mozilla.org/thunderbird/'
arch=(x86_64)
license=(MPL GPL LGPL)
depends=(
glibc gtk3 libgdk-3.so mime-types dbus libdbus-1.so dbus-glib alsa-lib nss
hunspell sqlite ttf-font libvpx libvpx.so zlib bzip2 botan libwebp libevent
libjpeg-turbo libffi nspr gcc-libs libx11 libxrender libxfixes libxext
libxcomposite libxdamage pango libpango-1.0.so cairo gdk-pixbuf2 icu
libicui18n.so libicuuc.so freetype2 libfreetype.so fontconfig
libfontconfig.so glib2 libglib-2.0.so pixman libpixman-1.so gnupg
)
optdepends=(
'libotr: OTR support for active one-to-one chats'
)
makedepends=(
unzip zip diffutils python python-setuptools yasm nasm mesa imake libpulse
inetutils xorg-server-xvfb autoconf2.13 rust clang llvm gtk2 cbindgen nodejs
gawk perl findutils libotr
)
options=(!emptydirs !makeflags)
source=(https://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/$pkgver/source/thunderbird-$pkgver.source.tar.xz{,.asc}
thunderbird.desktop
vendor-prefs.js
distribution.ini
mozconfig.cfg
configure-fix-passing-system-bzip2-ldflags.patch
thunderbird-78.5-rust-1.48.patch
arm.patch
Bug-1238661---fix-mozillaSignalTrampoline-to-work-.patch)
validpgpkeys=(14F26682D0916CDD81E37B6D61B7B526D98F0353) # Mozilla Software Releases <release@mozilla.com>
# 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
prepare() {
cd $pkgname-$pkgver
echo "${noextract[@]}"
local src
for src in "${source[@]}"; do
src="${src%%::*}"
src="${src##*/}"
[[ $src = *.patch ]] || continue
echo "Applying patch $src..."
patch -Np1 < "../$src"
done
printf "%s" "$_google_api_key" >google-api-key
printf "%s" "$_mozilla_api_key" >mozilla-api-key
cp ../mozconfig.cfg .mozconfig
sed "s|@PWD@|${PWD@Q}|g" -i .mozconfig
if [[ $CARCH == "armv7h" ]]; then
echo "ac_add_options --disable-elf-hack" >> .mozconfig
MAKEFLAGS="-j2"
CFLAGS=`echo $CFLAGS | sed -e 's/vfpv3-d16/neon/'`
CXXFLAGS="$CFLAGS"
fi
echo 'ac_add_options --enable-optimize="-g0 -O2"' >> .mozconfig
echo "mk_add_options MOZ_MAKE_FLAGS=\"${MAKEFLAGS}\"" >> .mozconfig
export MOZ_DEBUG_FLAGS=" "
export CFLAGS+=" -g0"
export CXXFLAGS+=" -g0"
export LDFLAGS+=" -Wl,--no-keep-memory -Wl,--reduce-memory-overheads"
export RUSTFLAGS="-Cdebuginfo=0"
}
build() {
cd $pkgname-$pkgver
if [[ -n "${SOURCE_DATE_EPOCH}" ]]; then
export MOZ_BUILD_DATE=$(date --date "@${SOURCE_DATE_EPOCH}" "+%Y%m%d%H%M%S")
fi
./mach configure
./mach build
./mach buildsymbols
}
package_thunderbird() {
optdepends=('libcanberra: sound support')
cd $pkgname-$pkgver
DESTDIR="$pkgdir" ./mach install
install -Dm 644 ../vendor-prefs.js -t "$pkgdir/usr/lib/$pkgname/defaults/pref"
install -Dm 644 ../distribution.ini -t "$pkgdir/usr/lib/$pkgname/distribution"
install -Dm 644 ../thunderbird.desktop -t "$pkgdir/usr/share/applications"
for i in 16 22 24 32 48 64 128 256; do
install -Dm644 comm/mail/branding/thunderbird/default${i}.png \
"$pkgdir/usr/share/icons/hicolor/${i}x${i}/apps/$pkgname.png"
done
install -Dm644 comm/mail/branding/thunderbird/TB-symbolic.svg \
"$pkgdir/usr/share/icons/hicolor/symbolic/apps/thunderbird-symbolic.svg"
# Use system-provided 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 -srf "$pkgdir/usr/bin/$pkgname" \
"$pkgdir/usr/lib/$pkgname/thunderbird-bin"
}
_package_i18n() {
pkgdesc="$2 language pack for Thunderbird"
depends=("thunderbird>=$pkgver")
install -Dm644 thunderbird-i18n-$pkgver-$1.xpi \
"$pkgdir/usr/lib/thunderbird/extensions/langpack-$1@thunderbird.mozilla.org.xpi"
}
_languages=(
'ar "Arabic"'
'ast "Asturian"'
'be "Belarusian"'
'bg "Bulgarian"'
'br "Breton"'
'ca "Catalan"'
'cs "Czech"'
'cy "Welsh"'
'da "Danish"'
'de "German"'
'dsb "Lower Sorbian"'
'el "Greek"'
'en-GB "English (British)"'
'en-US "English (US)"'
'es-AR "Spanish (Argentina)"'
'es-ES "Spanish (Spain)"'
'et "Estonian"'
'eu "Basque"'
'fi "Finnish"'
'fr "French"'
'fy-NL "Frisian"'
'ga-IE "Irish"'
'gd "Gaelic (Scotland)"'
'gl "Galician"'
'he "Hebrew"'
'hr "Croatian"'
'hsb "Upper Sorbian"'
'hu "Hungarian"'
'hy-AM "Armenian"'
'id "Indonesian"'
'is "Icelandic"'
'it "Italian"'
'ja "Japanese"'
'ko "Korean"'
'lt "Lithuanian"'
'nb-NO "Norwegian (Bokmål)"'
'nl "Dutch"'
'nn-NO "Norwegian (Nynorsk)"'
'pl "Polish"'
'pt-BR "Portuguese (Brazilian)"'
'pt-PT "Portuguese (Portugal)"'
'rm "Romansh"'
'ro "Romanian"'
'ru "Russian"'
'si "Sinhala"'
'sk "Slovak"'
'sl "Slovenian"'
'sq "Albanian"'
'sr "Serbian"'
'sv-SE "Swedish"'
'tr "Turkish"'
'uk "Ukrainian"'
'vi "Vietnamese"'
'zh-CN "Chinese (Simplified)"'
'zh-TW "Chinese (Traditional)"'
)
_url=https://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/$pkgver/linux-x86_64/xpi
for _lang in "${_languages[@]}"; do
_locale=${_lang%% *}
_pkgname=thunderbird-i18n-${_locale,,}
pkgname+=($_pkgname)
source+=("thunderbird-i18n-$pkgver-$_locale.xpi::$_url/$_locale.xpi")
eval "package_$_pkgname() {
_package_i18n $_lang
}"
done
# Don't extract languages
noextract=()
for _src in "${source[@]%%::*}"; do
case "$_src" in
*.xpi) noextract+=("$_src") ;;
esac
done
sha512sums=('fe5635eda67ea356cc83e8e5ced4ca3c4555a964192c3e77fa0095a26a8e7366c6520604283bb9f3a5f529fee18baf54ca169bdcb7b402bd3752157b95848bc4'
'SKIP'
'a0061fcb2a7f66061e336a8d95948592f56f4752e56467f14ba63846720ebf845cce7511d1a2637e3b80d5a1ffdaa2fb783fa37195103425ef65222d45372012'
'6918c0de63deeddc6f53b9ba331390556c12e0d649cf54587dfaabb98b32d6a597b63cf02809c7c58b15501720455a724d527375a8fb9d757ccca57460320734'
'5cd3ac4c94ef6dcce72fba02bc18b771a2f67906ff795e0e3d71ce7db6d8a41165bd5443908470915bdbdb98dddd9cf3f837c4ba3a36413f55ec570e6efdbb9f'
'6048bce2bae535007422854affa3cc2cc588e6029ea3083aa4817795beb25dc6e2726df082ed0fe9664f328d68b2f60e2619b87c359c99e73c9ace3dce0f3176'
'e3ed2708b8354015cb3d2c81048d1ce4932d1effbe2b40efa7cf9b45c1b923b9fd708645e2f8aa0136a485a3f7ce6b396b85721aaf535a4a764fd5005fb7e222'
'bbb8b0e7b9c67372eb22e1d6b6b5758fe504ded84c40a076d4a064374a1bf34ac12d5b514b328ac9ca984d976b9e0fbde81e68a66bec915c997d6be0c0917584'
'34a430b789c0032b5f093d206ac3cfb7b63c59d0e08fd439f0793790475eb1691932b8babac5a067d48c381e497127e9d11f9abdecd8e70f953320142403f539'
'dfe810e362fa0947d4a44445f491b0899def9e9da463f39af4335634dc843172a3a296a49dc0d13e5d8a25fce6acb608b7ab82b8a32236eb52815a05372231af'
'e1f51aeb93111b8123c07318859fd66950f31f6582b61164680fd7fc7f3a217f35bcba4d0341be77e1167b71006e3275169a2e50e546622389e77c2256cddd19'
'b1e15994104e05897222308b9fe519813492be5da6166e793cc0d91e90c61678c7d4c1b82a1027f33dfa19f7bb69aaa13be61525ddb0460396ff1ccac545b07a'
'961d6d6aea6eed4eac787e2b443bf465d041221e8e1387ccc96de79da8a057ac26a3337cdcc4c328f792aa5a56298ad53c3db37426730ad6dd2784bdd2cc2a7c'
'7e002f78f84acb130d8d5542451c8fe7168e8994c00413da912e789b096b4c1fe325158d727b2044d316568b4ed058d071752b014df68b369a6b36b8dfb4cb73'
'cfbf99ab4fde04aae64f0d100d2c567fad4db3853b9fc6635bceed6dd1d86cb5fe692ea27ee8fdd6ae67c6001fc47e7315107787944734a011804d9834c579dc'
'02f7be6a3b77c5b0db4fb6b50958d91564d1069fe797195943d5302316e289d8da792acedac2d5a110e914e46ac7220423b055d3380d7f00e4350fc674cb3e2b'
'c9df0d22d1fce230e89fdf29b7c3d9a825002e7928b5bf30489974c77040d085ce25db488cfeba8ea61aa5d263f8b625cf4edf0e7440a0fa5bf8423124fd7e68'
'5bc1c5f59a64e483ecf11ddd42e70143cd130ff314ff7fd73867ef8a830bcab74ff1b1674393b332103804c040f10b3bf6ce851c3e5c44ec75daaecc1deb9e5c'
'9db0ca9433077fa26de4e6a973cbe20e9a2ec41ee9d3e74c531e7c88ecae7e8ba50259cca0494ad63042050a0465eb51e40244f61f513134fa32e879f2710230'
'868d0ebfc82678c7aa10042789054dfe9ae4fe7a5ae0b67ebd18be029053ec1f74f25edce5704d9ba05664e77c365b71335399e56bf5b6670364c03f05393fd0'
'794bb8e10f5c24b98cf15ba2475043a14d1ee9a1df1881ae5036ee62c323e001ade87d0eeead597a2064a3034db748b54198db8be5b405844a118c48b18e1fe6'
'd03c1313ee4a73b61d63953de7923b4971e295c2381cbc972636e6a473fd7a1beab80b2a7c4f5082d95f925d76bccb6dd16c998bec6960366eef150af613fc23'
'e57066af4cb8d84c081eb22517e1fb7ac5977dae801eebb3aa4f97cb4b839a239cf345deab21c8818e022f74e5a4f2b92e8359d6c1106c80660225c15587f279'
'8aece81c6a4f62299f645e96ed40218bd25b946131292b1d5e9d19ef0b7b73bcece2af6230871fb2efff16ad4726a7bff8718706e58b990794d505b8f5cb5103'
'af732a1ddca07237c80ce69190e208125dac124a7843a11cafd96876810b6144cd3d9793ce7c87856cb4145648f5b201a2096f51e75d86a3f5457730a2942072'
'ad8ca0510d0c809a11fd4785cf06bf7aa0d9599a5b3f39688bf92ba690fdbdc27c4e0eeb01c33d916683fae25780114c8f917c2691a22effd9f370dbfc80a930'
'ba397c237bf936196e06c233a682a36fb8769fc73277bb46e8950545854ca6048fbdd56b418cac12964be4bf10c68a5a0dbacd928955a091741dfb3a65b8d341'
'24b49b86e7582d67d70b24667fd94a301eef6af835136c2adbbebe412d9dde8f63e0e2dde43f4f37096da38d0e6d886a89b28e0138d6311fae69d34b4fb3f128'
'7aa34efeb70d0900b2f51932e8509c5a5b980c557c7fc27997db8273a4899289ddc964ab96d901854aaf8da2b343cbb2c8ca4c92f0c5fe650968f6c3033696d3'
'ecf380c370a24182d1403cf8ae14faa18bbb5f1ca435e360f12d8bba845c7e4b800425d882756e451e0264f0f52829c1c384f24005631b48f77a11bb45c4d61f'
'9fb3e2aa5bb7e0ef449a61a80e0169adc48a92232440d29b605e201cbc83b3fa99659528488e8ce9a44df67d5a7d5a6072c991dc401d3b98d4cf973556436d6a'
'2a9b6061502d7e5a2880d00b89dcc56005578015cf151180351e10665b71b93ba478a5acf6345f1071ec7d64e5e6cd8495ac460524d3d18879117a38c38afa69'
'8cc5d1d5c775dfd55bb952fde2ea9340c076f0cbbf40ca12650104cf5afc6c7c651dcfd9a7216ff269e9df081cadf1aa709db0b461410aca938ed4e7a475bf25'
'efb1e006ce71797035876249e7bfb8be1a3761341daff24d8b479cd174070deb8635711a1510539a447925a3efe9e58605091c2e3eacb303a34fe785fc089a40'
'17f10bf78a84bd0466d8fc4a6777cb2189ca0438a7d36c7cc7a6b34b3d2d7217ee95829b35bc762a3fef6a27e3e9c23f17926dadef0cd63be7381d974c7976dd'
'196be3d4dda0ec9eba59bc084bb79e175054578bc1fca566d50f557ccdecc1719ebee86c9028490cb801fb7d10acf9379362615f0386a089f0619cf33a4ee6d4'
'37f1c1353f2574bc2d627f4d3414e9e5178be19d3cc3c21a26acc9960d80a54e32692e7ffb8440a96f484177dc3daedb690d1a5f5e979efb72c2894e08f42703'
'df18ee1a241c2c4116ad9239c7d82a714b8bc9215731dceab5e17622fcbc1ba9ebf70aeba1ba6d035cefd8142cb230196279a7109582e03dec782bb26b5d8e9e'
'8ef05fb92582d37b03a054dcce3c2dc275e320aa21b7a0362e58d8b28eae135b099274a777649fb342d0d9aeff14a8ea6c9bf6c967efe9d2d2469b1eb7128d0c'
'6845c8f28362c3b02c93b13136c2f4d58aa5abf444d37ec05a654557a67bc0195959c95d631a3fd7b4830e35580f8b6fee030c2c8f0243bdb163278d5bf18463'
'5cc4837d2415f1d9a5f1dfb8a7cdff31e361778823b323f8967b25844e4f14521fea761c9e814c66d9ff11f976e9ebb89dd043eb4dc8f4997a392235ddaef4fd'
'ecd1a4019a0e0eee95f337b9cd736632a5795e833b2c838d33d3eaf908bc2e46befa53754956705ca572d68711cda24873267803eca221a92813c9e3ec9f9822'
'9f22f0aafc7e2161fc25c83e5e7ab0f465d83efa83c7142a28781e86802846b97dfc1b414e27277bd9f372cfe2d9ea8e55d25ed9abc0922de305a19dcac14dba'
'5b4571d11a889ccaf009b832b4298acb481e2bb6986a78807b6316c5ad37721243a4ba1927c7c445661c68e992251b7a3573a254c77360ede5f4ccdfb55cd895'
'8189ab4077117d2023463158ecfbcc9d429a2b69bb29a768037fb886c048d333399247c64d4a4718e05ad0f4212527bc7efc9edb306ff7e880536736027de5a8'
'91e25c62d13c84c130fe7eb9c5c1fa44bb1f0b18c5a7c989bd1f572beb9f369bcde46251e326102644871403f0d87813aab88fa3d4a975558e95c555d0d0d44b'
'66eefff7f14b46efd1d36935e7f103af64906411acaa7b04aa1fe2b52743dbafc35e9df169d386e6396a644ba195ae9f36d899ccb6c563feeefa748d0d69b926'
'a8e68b939a4d9408664979af43a4f4d4d3d8742f742635f14b124b58e36438c52f6cebbd888c343d628a7ddca630ee1dbd3db7c031090695ec24bb7f5e448cc3'
'ab6fdb6b89a22e2cb95a957749480b346b789625311768f9ec76af8b21b69709a07256dd9fbbb8215dbefbcea6e2d27ce4307cde646be9b1bde6b8e09cc921ba'
'55b2d7ca443ee785c6189f0774e86027abd489394b061d4328c5fc7b9cec069dae02f3921d4ff5195ea864083325fe635e87184d6eb0c8eab1e2096452ae7774'
'239d9f6a02cf14949cb621e19d7a29dd065ebeb64b8efe4b7d7eb4d725798d554579fd3781242162a911f2962b59178c3100f6ef679381f19a894f3400bb4ef3'
'18f0b7a5ab507bfb1ed2de4f55a9fc3957cf8fd4922732f634c16033222d3d15566d37a2c9bf4d6867aaa27c8e8dd373ae06c21448ac3022d3d8d131f0d29062'
'7f0a78581d9c53b79cd1e91738233e9539de7fa7bc42fc581c61d0f50d06737900b7b04fe8696a9f5fdfea50ef586e9dc0b4648148a4fe91e843f001076d6b0b'
'4bb180beba717cefa559199af4060cafad5341492ca3bcbeb986a963b694764a44ede400680f22eb1465bb419ae657df0add60cb2ac9099b1f1e045882212178'
'f7b8c65fcdcc68c60853ca2b598e6b2d3c4aa025165745ba7a6c790ea33cee0fc9657824f8750b3784a1d4cf76d8ddc28f3b83183c9df391e71f1e9c12e9515b'
'd318d60fb9c4ea8c434b3dc31c9abb588e897e3b1e8fa651b70a65cc9854dc70f61863f64836ee7f2f297d63ab6b5955f239e7ac8fea6b313616d86ad1692213'
'6d6261487c625abd5c2738ae4b6ddb62673e042dfedfb8890e59d799cbc015cd4e2c729791dd60c6e33026a9682af529de9936d32643bd6667c364eeab5136d9'
'e053347d503c5bf8eb9f991e47b5e4a2769ffb7065432e17035f3ad762354265dc1355701027255d66fc232bb2160c8bb18b31db33496ec552b304675f0f468a'
'00334c3555edb39d0f015ec2bb1a5238367496bb40133f2cfda8393a5ee493261bab57f2d27f5a2e1e01cc2bc0aee23e55e960354426e63649d745745c58a0a3'
'8dea7737d5aa211887455ca7b17b18c38dfb9fd9aa137cf372c810213731cedda9a15fe83b510cb110fef7d94c09c7e959b2e210967c7489dccfd00932711917'
'8670bf8ade9dcdb95941e5f2f345d51ddf86d40e8d4aedd1b25f879820d83e146c211c1300ce1542ccabb5e6db3087ea7663a98290a88e1fe7edc1b79b4dc30b'
'abf954d65768e9598534232d74da8ea44bf9491453d71bf17ad64a4deacb3572985abbca16bfb9047b64f3b2e33f379a6ee50a29eb470006f8f442bb05d6a597'
'871fe27f95cc17e29145039f52d4fbbb126d231a7bdd27fcb11a2e5d1925631a708e49c3fa8c8d08f0f2fee838f3ca929c1e7619761d0444843f8c8d47611c7a')
# vim:set sw=2 et: