PKGBUILDs/extra/thunderbird/PKGBUILD
2023-03-29 13:46:09 -04:00

319 lines
17 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
# - disable rust lto for v7
highmem=1
pkgbase=thunderbird
pkgname=(thunderbird)
pkgver=102.9.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 libgtk-3.so mime-types dbus libdbus-1.so dbus-glib
alsa-lib nss hunspell sqlite ttf-font libvpx libvpx.so zlib bzip2 libbz2.so
botan libwebp libwebp.so libwebpdemux.so libevent libjpeg-turbo libffi
libffi.so 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 json-c
)
makedepends=(
unzip zip diffutils python nasm mesa libpulse libice libsm
rust clang llvm cbindgen nodejs lld
gawk perl findutils libotr
)
options=(!emptydirs !makeflags !lto)
source=(https://archive.mozilla.org/pub/thunderbird/releases/$pkgver/source/thunderbird-$pkgver.source.tar.xz{,.asc}
thunderbird.desktop
vendor-prefs.js
distribution.ini
mozconfig.cfg
metainfo.patch
rustc_version-0.4.0.patch)
validpgpkeys=(
14F26682D0916CDD81E37B6D61B7B526D98F0353 # Mozilla Software Releases <release@mozilla.com>
4360FE2109C49763186F8E21EBE41E90F6F12F6D # 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
msg2 "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="-j4"
# disable hard-coded LTO
sed -i '/cargo_rustc_flags += -Clto/d' config/makefiles/rust.mk
sed -i '/RUSTFLAGS += -Cembed-bitcode=yes/d' config/makefiles/rust.mk
# increase codegen-units due to RAM constraints
sed -i 's/codegen-units=1/codegen-units=16/' config/makefiles/rust.mk
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 LDFLAGS+=" -Wl,--no-keep-memory"
export RUSTFLAGS="-Cdebuginfo=0"
CFLAGS=${CFLAGS/-fstack-clash-protection}
CXXFLAGS=${CXXFLAGS/-fstack-clash-protection}
}
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
export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=none
export MOZBUILD_STATE_PATH="${srcdir}/mozbuild"
./mach configure
./mach build
./mach buildsymbols
}
package_thunderbird() {
optdepends=(
'libotr: OTR support for active one-to-one chats'
'libnotify: Notification integration'
)
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"
install -Dm 644 comm/mail/branding/thunderbird/net.thunderbird.Thunderbird.appdata.xml \
"$pkgdir/usr/share/metainfo/net.thunderbird.Thunderbird.appdata.xml"
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=(
'af "Afrikaans"'
'ar "Arabic"'
'ast "Asturian"'
'be "Belarusian"'
'bg "Bulgarian"'
'br "Breton"'
'ca "Catalan"'
'cak "Kaqchikel"'
'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"'
'ka "Georgian"'
'kab "Kabyle"'
'kk "Kazakh"'
'ko "Korean"'
'lt "Lithuanian"'
'ms "Malay"'
'nb-NO "Norwegian (Bokmål)"'
'nl "Dutch"'
'nn-NO "Norwegian (Nynorsk)"'
'pa-IN "Punjabi (India)"'
'pl "Polish"'
'pt-BR "Portuguese (Brazilian)"'
'pt-PT "Portuguese (Portugal)"'
'rm "Romansh"'
'ro "Romanian"'
'ru "Russian"'
'sk "Slovak"'
'sl "Slovenian"'
'sq "Albanian"'
'sr "Serbian"'
'sv-SE "Swedish"'
'th "Thai"'
'tr "Turkish"'
'uk "Ukrainian"'
'uz "Uzbek"'
'vi "Vietnamese"'
'zh-CN "Chinese (Simplified)"'
'zh-TW "Chinese (Traditional)"'
)
_url=https://archive.mozilla.org/pub/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=('0a4aa344387d19ab6e8e70a08f27ea0e47e74f90e8cf47545870b7ef30b08babfae9be229b13bee31b6797c45683859ba54ecbc0d1e31c40f780851ae0c0a84b'
'SKIP'
'a0061fcb2a7f66061e336a8d95948592f56f4752e56467f14ba63846720ebf845cce7511d1a2637e3b80d5a1ffdaa2fb783fa37195103425ef65222d45372012'
'6918c0de63deeddc6f53b9ba331390556c12e0d649cf54587dfaabb98b32d6a597b63cf02809c7c58b15501720455a724d527375a8fb9d757ccca57460320734'
'5cd3ac4c94ef6dcce72fba02bc18b771a2f67906ff795e0e3d71ce7db6d8a41165bd5443908470915bdbdb98dddd9cf3f837c4ba3a36413f55ec570e6efdbb9f'
'a34dd97954f415a5ffe956ca1f10718bd164950566ceba328805c2ccbb54ed9081df07f2e063479bf932c4a443bb5b7443cca2f82eea3914465ed6e4863e0c0e'
'7e43b1f25827ddae615ad43fc1e11c6ba439d6c2049477dfe60e00188a70c0a76160c59a97cc01d1fd99c476f261c7cecb57628b5be48874be7cf991c22db290'
'36d9662fc94cbf7dcf371adc13a9cda679bc75df961d86de019d3c8ebb0be3062d5ef762d175fab58696db74758100a65de45d7832e0e2bd4e15c901f72d8349'
'7b304ac6ebaf660623a80b2a26961d757750f4bfd0496791dfed847a759c0f4567cb9d07211cdd6a749c64203cfb4978ff39d773322fa5480db79d2cb7c9b30c'
'f715452c476f80d72fadaa553d45abfd49e30f80728353a1a668144d907a1b2ce2dbebc857d7ead9258371e9b524ca1c7c060b3450b600fa9d078c47bcbf6a38'
'20753d8414fe613d522b13cdf0d0d84c5582cd16374eb3b4918873aa5e16c385c77d2ba2c35145422cfa51dbdf9e449a5d700bd1c43de2b6da6f491400491da3'
'a8f92dc4a02264cce9debbf40b0af69b84179f53f9c92249d2f7049f25a2a8274481a981f581e40dc78b3a2dfdebebc866815eeba676b6e00699b9137e21ca53'
'fffc163dde41f9b13191f95399dc8c9dd84b3095a6062b5c0201a34e9c571bfa2971db3173fd0a023bd24987391585416a4a0a7db653442ee859f857ccfb7dd6'
'882fe372a911468e57306c91e2679ae2f8c3be80eb48558469e22cb21f1cf64d78f54386c66019bb879cabb475cd7323445a92688ec7dc3f0b92e21314a0cd07'
'5e45266077619625bc4d58269b42caa586d83cdfada6b93d745083e1deaf84a0125779e065f384d36c8ce59805bc03aa925a0fbc036213ef491c1225f4c11533'
'ea72c1faa56e59a28f6dc79693cb06fd4b87fa07c1d86f2593a38265d02d308cf159a267da672e94a0208d2a93d88542fbcb02d7daaf14c6ac28c387186805db'
'b72ae65319275465628f26c0f16b2f435ba06e42df34fc9c456102b584a6699f3553208bab81051288379b3913923607d59ef74fbad9a3ca13b3005b6e54fbb9'
'f5cdd1a2cb1ac580204f1563807a43134489183c37dc16505b20a9d64d36ee5b2567c95c9699346d466eac28b9ba398717cc4e61ad366f6c9976aaf206849f89'
'556b97134efa62e94be58364a7a402708604726598b1463169410daceb2cd8b019d155eec922e31554edd53ba0562c14cc4cb50e726a29865ed7d33537f8601e'
'3de342550d52231245a2efe7c52acedb10679a1e79612432964808e050f6c5c72403ba24a71bbcad10a5868be244fb1e00888ae7f2647715fbcc224e2565e5d1'
'103e0a73be5918b79acf3e4bff5ce4aaa96260e343fca70e94337bb9e54f1311b29d21045030f32f9165f6b86a62d84117ceab0e8ea26ff893cd67a357733b95'
'882f7a254653a51345233b9005966f52b3d0daa95bb9a092bce753ac416cd2888be92d33a57d5ddaba2df8582c1588461c604b0850076916b6117fe0a3221014'
'd4b10e6cac395d60471866ec9f355bbf058e95b8d0498f53733e9ff51630ceef21e2c6e8902a1564ae838bc743a32e06bff1ac187febb8e9e932b06c9d5adcfd'
'5a640cd8c4cfcac5f4bb6c94f2b51498fb4cf89df842f7821f118f017b53dc5ce73d336e4e38ddf3cf07e0f38b45dbd6ff3f9b0204213a6b67f972d49e5c799a'
'eefa1153d723d8c80380339d9a6feb3cd0b171ae5a185b9df369d176eacf66486f53601b5aecf185c39e281999bf70c7ca62916bfb92d395a892a2a12ded9fb9'
'8b0a2481eac2ac49904425dfa7a9b07466e5f856303d0a2c25d65f8036d3504d1d0cc54e4534dee64acd0f25ca5b04af2e3372770c5570591067c6beaa6a518d'
'0229d7ebd5d27fd7fbddf670ce23d9410b5729553393366df478039d40168b3f3b9074dcc3c03ef3103cdebba0e6777f0933a241596567d8dbd689308e9f64ea'
'500c1fa133bedb70bf16694d820c1565422cc9e2acebe94af084a4312fd1dc81acc1bbd671266d5d0246f4cbaa694eba51c34afb73ac45d446567585822a5fea'
'0276688b9a85dc3aa72131c1938533605a2745479502d330c84561fcc91873a16a9646b5f618c0c59f932357aa1a894d52480cc2958e4fc7ee9a96e25afd5842'
'878319e9fef5f8df3f8163ee528cb348647c6dc96f05f59297d4d7ca0b1fb022a8950519caa141cdec0f0147176701b702813941e3f5144ee517e1af2447edb8'
'78539ca78321e84eade07a03f33b0c186ea054b4f75982a8d3b9a65deb9b36cecd6a9530712bf55380f6e7aa9de2bf44e47937db614488512f92d1eadb6bd639'
'784a0870ed5f3c1b13264ce6fda33a3ba976fef39a0b4be782b9dba15f25593f9b456c549ec474ff786209b785649bc68e8fa3ad41f19a41e84455cd57ab2c9f'
'28149f313451c4ef65f82d37bbde336f3fbc6dc550127de661b2834781fce794c672f04aef72df6082ec185af7022300bd897929c5bc97e9e10c0e9cfe05e55a'
'3c8f8c4d4c99356d599f3c70531713edc09ceda73e6839742db2a8a7623f319c984ee356b656a0fe2db014c37e108803fe3565937b679404fa4b3d412ac8e054'
'954f8c28037851aa21640b537ad2548ef9f5f9b573ec9ba00c6195bd116fd43fd7cdeffb95fff6d3041fe189fc24347dbfb1480eab41fb1cbdf8b8917d2ed9fe'
'875930527c2118bb088241cbb79d4e32f5f5dce0c2e43975ab2b9b75c60d5c49f852d5d873fcfd8be35b30d175fe4836f71f8ad7aad527cc6052b4265858fcbe'
'b115527235396c82fd7b70e12470e62c133f4668f3b4c19dcc03db2544aa15958e0b1346be3becddc1a4ff17db984af2b439ce69196e23a6cb1e75c09dded215'
'bca5dc6afac1e07ce5b5da3f1583552f05f0920a31c0c678dee49125b5256186f92328068d6f61db3c33bfce5a78be016abf464e32fe84d081929e00b0d48b9f'
'33eec0fae69f399c0c5879813b45578fc097d4ffef32f3d40967275579979449210b2327857b26bdade87a7bc4bb3363acc595aa1ac9ab1b38fc972f2e5c2355'
'9bacbbddf693175ffa555c90a367cedcd8ea0e56b8acfa3921dfcd5793a53695e78e39385a00dcd96e95eb3211c52c055eaa76eb8dac305116f8d41e46c9c199'
'a6bea30ca4493543c15915c6100b0b73697e0ee9336cda914fc0407fc38519e89a7be60a94ab3776a3cb615a0a593519d4fbf57f6b783004d184b85161b219ce'
'65e23a945aac3147a7816c9eefacf656448cdad0e1bc72d7eba16e8071f5d791ba276faa18b7793895a3a30751243e5f20e8c8eab4a3b14dac3578570c1c4d3c'
'972f58e5cdf7cead42e441833f7ef74d5e688b8620e5323ac6d513cd1d1b55cc491785ce7878356e15ab7cb7cf7e1015a9e9a9fe4cff45fdf183b40e419098d2'
'293aa93579baaa1ccd9481080396ef1377833bd3fddf297207a31e52d4f195f8456099cfd58618540ce313d4a66fe7ac7794f4d7fa9c430e6561bd7f4294277a'
'ae905de1d7f963370fcc42dd10b15bcb40f903f44e5a481514068be0d0aaed84bf2178bf6b4bf648c5c00f5e3ab7003bd1c364c9cba59666cb5fedbff540e0bd'
'f0e27c2e8dce359d17ccfe7b8f0aa43fc96cf543a3b8c9fb91c79839b52b85d210d83c553e720e250f090c407fac7df6f83208dfa5118b5e4f67eed3376548a5'
'3e2cd0997e095dffd2365fde8f331baa14d86ee7e75357ef5c0103cf5ca704c48a062aebd3cd990c1e8c068e686249100cd1437170ecdd247a11855a05d74804'
'8cb24e5241796026ac3cc8555808ca684701ac18a8997f8ecf41303935055a023bc85ef792297c99bc1c49dd43d6fa89966fe70c5025d42a1af835aabe22fc03'
'a77659a97cffa43da0d97789bb293c1c24b9b8e043b1b795c2e69e39c92cf69c944770e1e66d530df13966b33bee553b1e1f542325d53310d9c59623165ce947'
'3a9d6e8569886870319750ed7ff6eb05f8932aa227510f3576c8e52c17b8ee094776fe05dfc79e983d894a51ff9087986bef59e7837e87cf3a9da384d643f6ab'
'49c6f517aac3f4a870800d4db4bff747e5ef25b8aaee11a809b73f3fa3b467f16df597513e4b42db2a1d4cf63e766f8f2a57c3ff1b98a7875cfd246020ea52cf'
'e2d49777c24734bf5e784904a5bbe2340cf3935ca3fe8b8dc59550a1bc16dc169e22d4fc5990e79be8c257db8e8c2865524e7324b2eaadd47e99475eff8abd0e'
'5b2056d1f454061bd3502cb730861f78a7592832f00f85f834415a9b540f7a65f81c1c72fd5f4edc2a51f3dee0fda21c8038c26c4a7dd48b0ca0b8410b9a75c3'
'0a0545250551d5951f20c69b96180e7970c2cffee1b577a522c9e8e1554ebfb416152662afd13f9da24f43007213da31785f805f186f9f1c3c6fcddd67c330dd'
'dcee7d17d408717623c1042b90b27c995eb91966b12f54de2759e45ea1728174cd5ef41f438f9c4ba65f635f1c6e026bc333bdd7c5bc06212c488df707001687'
'737372d1876aff607c079ec15e91427d978e540a254cb1076397e9a8c4d28767d0222fb0e449262397cb45e56d05ad0c9bafce7d23e937d0267195324ad49614'
'e24eb9cb9b9cc4e63e9f99e7d34ea015cdcbd2fd93ba59cb201ffacbf9b20d4bf1c9d06dfe5dcb03893986bbc2a18e0c247295e4fa421ec15b82c51c50869eb0'
'e3eb3c21b976253cd21b50e0728b65000e2435624c155afecce300406882df1b93b8c3bbe2da0239c98b1acbd9a4dfe593c1bd1f9beb570984fbec1e92ed39d8'
'6fea866ccbcec77bdc84e293bc455623361f9a1bf8aa25a4b833d6c4c83d0e27ab26968c98216fb7c830d02f270485846b4035f67163318049167198d9b82cbc'
'0085c0b259f7671ddbfc529cac4c9e3e27b09084221deca4aafcf500b0bc73b774b21c83474deebe08b542599d977314f8f015327c2646ae292730c2d4ad2c0b'
'8088b9536ffb333d3fa9b70249e984b5345068c1daa3c49139f493ee11f3624c0e9f416927f749843b946e93eb9ebe382cad5ae00b47094ae0af47b93ca2d9b8'
'2f149aa369e4ba52f6ede11810049deb895d0b507e789406068c290094a24a313b06fe50548c7acb135674decec1d75d8f63b5b74c082ec5408371d6501f5c28'
'24154f6536f9196692ce17cba062adb7f1f46d00378f1ac28e2d72fa3e64a120ce139bf55eece1bb28c448351a77b5841188cf2600bbc66b0fb3e27bc8df54ff'
'599718d0e3dc44df3b0a0d8541d784ac7146d5057fa52a616fc73be83f08447b82f6ff9241a686e129f9e178e2b81cb004cd2ea00d5b8b646bf03455c58225bb'
'd4269b6ac010d90c3457ebb5652aaf46d208bb135e1dd91198fb52e0ddc0fd76630dbae8e9dabb7387550fc43f6908e7f013d80c02e6b68f113554e089462049'
'44e9ed5cd54c0d207d2670e6e6753253c996e6e6752e708ed5513b9628ba5950d49fdcac686f2261d8fa32ad848995b2546acba1599d58c9866aa2b1f1b5a6bf'
'df7db03a9dd48318780f5cb60e37405898f5d0edffa0c96040924e4440a30ae14e4aaa2cb2a80139373a4228f8159420ac02ed146a8329a4fb9249d170c1a46a'
'05758070482f3f467ff1f3415ea8e85c2cfbf0455dbd1bb503bc61d679a27d4ab4e133e5be1e72078b9dfe791c7d60c38e61fc12774a7c99d12d0eb37401e18e'
'18b55ed318096aaccfc64b6b6d31668c4bcd8ed2dff353833b7f124649652e81b2125f74ecc1cbef36ae580f040dccc45f43b6e997aaef48137b4487c47d87e4'
'292a0810d8ba90017c5a2370197c883e77bed74270f3079fa8dddb8db2884b67581a2eb74dabeea9b375bf7d46e1f6233d21cd4b5a1c0124d8c1379ba430d309'
'd751cb5e9c9a9e103b5c79a16d295b44f66cea2753aaf1bdfe21f635d7a692d10f5573c5ee40980c6ae2625a6d1f35311fd62f6ae64389761fdfc8654e40b4ed')
# vim:set sw=2 et: