PKGBUILDs/extra/thunderbird/PKGBUILD
2022-10-13 00:35:30 +00:00

320 lines
18 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.3.3
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
)
makedepends=(
unzip zip diffutils python python-setuptools yasm nasm mesa imake libpulse
xorg-server-xvfb autoconf2.13 rust clang llvm cbindgen nodejs lld
gawk perl findutils libotr
)
options=(!emptydirs !makeflags !lto)
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
metainfo.patch
cbindgen-0.24.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://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=('37027f251513885d1432ee8cbe0fb2b4cb3c95b0ce88bd35f207cd7a4552d6700a63d13e0542712f796d46be6cfc165d6d1c224b30a445be7f5058fc396655fe'
'SKIP'
'a0061fcb2a7f66061e336a8d95948592f56f4752e56467f14ba63846720ebf845cce7511d1a2637e3b80d5a1ffdaa2fb783fa37195103425ef65222d45372012'
'6918c0de63deeddc6f53b9ba331390556c12e0d649cf54587dfaabb98b32d6a597b63cf02809c7c58b15501720455a724d527375a8fb9d757ccca57460320734'
'5cd3ac4c94ef6dcce72fba02bc18b771a2f67906ff795e0e3d71ce7db6d8a41165bd5443908470915bdbdb98dddd9cf3f837c4ba3a36413f55ec570e6efdbb9f'
'c9e4966e135907f7ac3c669da9102de3e1cb90eb84e9d89a572037a2999f552ef9ceacfb031e386b27190449f820784ede8421915ac5dde4ccda3b178a9adff6'
'7e43b1f25827ddae615ad43fc1e11c6ba439d6c2049477dfe60e00188a70c0a76160c59a97cc01d1fd99c476f261c7cecb57628b5be48874be7cf991c22db290'
'3526402ccae1f0428f2e45bae8d0b2cb909ac2698bc3508b692b827839ccb21203ce414206039776f6ce946fc53e636290b7870e9886284d5e9d1e8ad050aac9'
'36d9662fc94cbf7dcf371adc13a9cda679bc75df961d86de019d3c8ebb0be3062d5ef762d175fab58696db74758100a65de45d7832e0e2bd4e15c901f72d8349'
'48b815d40572a261267536e49e2dbcd488536d2b884071bad9138ca81cbacee34881c17649df919794343ad7169c91de56a3fdf66cca0f998c100af26bc30055'
'10d9d36db74833c4167a6b403a39bb7db471edc141440632f7ab5dedc6dc8ae8ef2f1ebb814dabfe28196426a8acd37ebe182a90af5e5ee5f62f8e7fc4777a12'
'3d4b080ff8150d7b3576f09e4df65c530d59dac098fb3f1678c5fbe3206d345612112f82c84e99b7f49e914263243b1ed0b2b21e7c67b25317697ed14dce22e6'
'3c7ba4b4f02b9a95a08bcfab79c9d2a0568bcc06a1e5663d8e35f6ca391ad613dbb11bb1ab7f93a715363df7b28e8d9d984de8d3a2d5f10be8fa9d258fc21667'
'4ee20e692b91fa55bad268c73d7eef01465148dfa5e02f38c043ff9d5b7217398593666aca2b2fc838a521298aa6a39942a88e5dae43a4180de2a2174dbdd090'
'2c90b0b6cc065f2bda52cd66a4245588f7eddca23972e8200ab138f735a04654b507f667cefd0a72bf6cfaefc1dbbf55a0bd7197005a3c4ffd67f03cefa2f044'
'56e8ef2e778d2a71354d126dfd98ac6dfe251d49e3d2c5c5b83c5478369d71076dc8226e83b7035e5338776cd63e1a9989707a71cee85088dbb9c0fc6eecc785'
'aa72c09354ab9388f117fc13ec7f22a5fa9389421789d92bfe060782a82837dc6bb42509cfc09cb77b014706f4621947cf7a9f628fa5c5263d50c60a8f8459f1'
'acf528c82129f95b18623062f4a9915e59d17a34444c0779332e409f328f7ca8d856864df4fd5434a84812935c8a9d6dc1b595b8e38f879d278de7557846abd6'
'eeb5ec62a9372052f061604035bc256a946ee9a9504b576dd9580609768e8c9b023789767fc7e2347dfd91549b6996b1bf52b231fd336f3345f8d14146df7783'
'8a493bc5dada1dada6e96594669ab1442e2c83619f1de3d6f3ec59c8173a5de9818e28af0680687dbee42d9d1634e5100c7a9ce04c4369b272d647d6144d5a98'
'431f54dce4322cfb866895412bde083cbb9200f05ef25f6acf0f76a9dda4b389bd028c1f8a7d46df8ccdd2c83820c1cd3f5dad7c65cb9f6a7f0f9b7ab3c4f173'
'25a976bd1ef064717d7ffaf481cad3cfa84c32a8418131cec4a5bc17d5d0e47e9f65893a2f3ce1d6f8280d2c1d84a986d466257e0a7a9ffc1c1be885952854fc'
'5a4ecb1949dc700c1eeeaa00054f3a806af0b0a25a435bb3d0d30660caa6cbed5cd5ed8a609d3bec575fb497d3807fa8c75856c41e8b0c00558a1aeb3ffc6353'
'8723d7f4e2deca7b3cb1713ea34d2bed16535931d4c177aef4215fe2627319eb890c4d706374efc886feea01950dc8ee6dd1f8053ed895ca4ef7297054df1d1e'
'e4ebac815e96d67d757456bbb4f217dfd7a6377ad47859abcb07a0efdfbe4445b6e934d8595878887a30adffef1ec4526a37a14f86c1ae05d3b3f5f8f8ad721a'
'0a409974a5876104e15bff70b6a9030e589b268d6ffdd8d769184622ba91c82d3753144beb3376edf8bc14f077364c81eda8ab80a5b8b468ff2b1fa51bf2f381'
'f194f6da15998e7d7bd5c0330928cff19c30898f5892a87be95094eca5335f1be6a37f098ab51b45a0dfe44e5b38704c0b20ca38b7e387af0805b8192e28b8d8'
'6afd0294fdc31e1b0d2fecf3bf4c448beab10923e5ceb03ee1a8d9bea1e279e5db0afb5534cb0eaaf11ca10bbaa5d135ce11dc8ae8753840f302ffc699ef0a49'
'b72d8f831678c66434daee691ab928edfe504ffa33c921959889c08c78f5be6f7fa0ef9466ae3e4a57a585c6f101a401ce747e9f88a34d8ef45df628ed3bc94e'
'db57a415db4c54a3f351855485bea784585ff3102029160f758decf711b9becee2f74eaaa815a97465875ad5b27df39f95b11c95cc2258f8516aa50d74b51b38'
'8064666216e16360606af3744fedcf562d5110238b4aa527a3a7670d8d980d87ddc19a31e3f3ae922c507dd798028746267dd476b42f9af92ee359b034b953bd'
'80f0acebd80a78b1a70304785e0fe489699f69025eec5001750506daf34cd512bff9cb91b7bbc14457fa51e6ea1361762b9b7952b7f97a6841a08ff559cabfe5'
'536754659a3bcdcd82203ad63bca8e4b72ec15b95b93af30205fa15a6a54b448da482c02486d18755be6c4d128f44bd5106ac786599c95fac83fe10817c6ad5e'
'608e2d52263b777e00d4f750753ccfdf4afa9f794c2553e986e748213757a98a12ee54e7c6bc875cbe1b5563d425de377f125ca9a504388081439fc1e140f853'
'7f133956b90b3021dc08e000d0fbc80115aab2b83be94a88610e32bfaad7ad1eb80e45a1f649af7d4afc3f18196087150cf47abec72f08939b8984a7880a6906'
'41314ef5035a26cf17a87af7fd20773f7dc1fdc6cb46d379782975cb5092d8a4bda592d1ae3060c9d109e169cce1dc639578c0f0ca053a2d192b0fb31b9a280d'
'38ff0cf101c888d94cb486f5b343e1a437723a2edaf5cc70971ac85e3a2a70a15ff89875c0d41eb9f9291556b44f1819734ede52ff097d3b67ac8e3b75b8f49d'
'8354909ced8c7e3fe703cce4f28d1666dd325f2e5a76a9617c7b96e55aba3be176db4ac1da9991f2a28174dd1ae2c58c48e370637d85ca196afdbc5d12335866'
'c2815864a7e62a8006648f3fb3e63a8f071e22c2fb6bae2f9a019b481b3d9722c1d5bdc2138cf8a43b9ffb268d05d51329a374040ff0204a9158fda58968f4b8'
'671ca0e757bc444ed4453dec4fc28c0608fb7e1d92dffe7b0cb24a92d9a36a97ac8349d2661df88121f99af4fdb3c8f00bb4352c00090c8100c4cb24ddda2e51'
'f8ebaaa26efa37c74d9a04561b7da3559dbb82eb7dae725019468eeeefa078596011cebe1e0bd18b87a0d6bb49ffd029086667ea38e0eb6d788d87e7b116e63d'
'4d74af459130fd87cb0ab009f5463cc98169c898acdc0501139efef6f07f38a0695b1760e3749a2838304d42ada63bb5218eddcd9aea6a02b3b57d8cfb9271b4'
'bb2a11b341964ed81e40ec1316523efaed89d3b796eb822479c1b78df1d0b533d0a843ebab01a69a12359b39d7faae94575bbf4ef6b94eee5741cddeb6df2f0a'
'5fabe66b296567f017b1a700a1d698f64b466624d5d59288a4ae2e785905ca7c9b9ebe551da1acb4d752159bedf8b239495ebfcea9a9b85781f969ef919b26c2'
'c0c401353fa1c20def0510248ea92856d1b095384af51c2d94448c251f2b43d6d278313387da1fb086fa91327379f7acb96db14fab7b377e12d3d8eca7455bca'
'5f66cfc3556198fb7b43a11cb66cc4ca9801ca8a89bd57ada09fadfe2502f089c4e973dc029342b5ea11a07371ce1c9d38e945f778cefa35fb1bda603cb6a1c9'
'65a338801833e3d062511458976ea28d0d994ec961870464434c62c17fea917be966e894d1a22d2959bac38a5769f29459a687cbce9db23cc0ecde7a002a1270'
'c254b873dadbb8ec23064a5c5542357ca5aaeaa45098a8b2eb0759a6b64336f28dd8051adba93cbe37f0c9bab0e91c3a007fb34802e06ef7f4f42eaa5714cf43'
'7b342d35f2d384c35000146a65a4db879e92f90563ee3d0d9d3d91492da46e16b165e44d9fa5dd2e562e18ea81d1a7ad3c8002d759cfbcca311157133c8281d8'
'464935c2e6ab93b75af64465e30f7145ee8d807cc753c9092a91905f9c4d6ac7d033b68a83a65237a4474def24b8bb4b97072f7ae05433d239a3367e6a517c1f'
'53bd453e8cf1fcc75afe6d040d0bca8752fa6927de95efffeb071eaa4c17ab712f546aa0f0e26326bdf2b2b72eef567378c1ad2ed7da404294b21553c431471e'
'16a62c37562086f83eebf03add12a233d311f02c32f4da75ad061ba1d05feda341811c241958edb535bd636b90146a4112bac48e9b31c04a5595ec638dbe8a5e'
'1b36f8d11de3defecf8b5578ff690f9de6e12f70612ed1737726db4786d37fb9b63bbe8ab3418f8e79b8b974cbf2e7f6755091f6c92671ea6b21b4df7034fbb6'
'18ea82aa3d5e4e7a24e68a879510c6402c1eafe94495eb6b42ae69783f0a0eb29ef013a76081b7e2b1c507c5311aee285882c3fccf44273a9ded6dd9ed64d8ef'
'85fe0049465c56190e8bea9f2aa8e02e2dc361761575b087e995d18cf67c19ba49653b0edd78234bb3b2408e4816591472bae10b22087f56181cde1de3fb465a'
'b7592740e3b1bae397ad5d63db9fe5ff2ed19e436f7b4f3cf491a0a580eced8bb3c97b34dabd6eacc53ef865ca841a21727f478d6699792a63cd9882f0f455f8'
'e2a874a1bdebda736329f42881dc2f1d17ca594c28835523655974df0d23f7de37b434aa91b38b5017d90b5b0a0bc326486dca9def29d3efe2e87f109f27507a'
'152f7331262e292b9b55942f4541dc9d6c7e12be2599620f19cbb8fb0ea999bc7c6e3f10019db5a18527533811fb457d6aa476e894ae1b75b448a1b7cef8f03a'
'0fbe6e0da0580d98a25b928f45a8ee76fb84775b2173ada96d9854172609fbe2fad210cf87de0b5b437b9084717a75ed6c335b57f6d6445a88f9fd942666a705'
'e1d4f680038a98612de612c5209ebc30acedfab17ff28b19d79e5ea8f72701cb22bd5d3568e6925d452cd0bfb86c090a7b4faf1e9aed279ffea7f8c530abac9b'
'd5a27037fe309f84bb38a30be01fa337612c7c41a6216528b441b8f586b62cf0af71f15bbbca391397d542537d58a52a8fd4342d564590de8ac28908142b764e'
'302de72a255de678664922841c56229109ed9967753987f84daf4052152d53a850ca8ebf25d4a5464cd0942daa9ad72e4bcfd7ff969543c1b7d96e76de59febf'
'4c17aae68a153335e16923901efc1e224adca0f2e571127bdaaa4ccb05df881c01833ce1a1ca65d8ef2eb479fee28024c7ca259f2852c3dd8002793b011787d4'
'4e2f99e331bc69dd5463d16f59d6f9707631b7ad55646c8210e00f864e0d9ce54ec6acec036f333193d04a174ffdc08ed65649f7d7cfee250039b37477d2a61f'
'8d2f378ef1f6f2b9ba47acc55d17db23382ad51e7cae07d39144f0e446da3a2ff326cfdcc9dc76fdbfd34b92e0225506d0a0628ef86ad4226d3d86cd5d60f9bf'
'6231a8554379dd2a0f5d8026ee7e2ec4d94c8b18f839d3cff3784f4700a8262a16d0a6ea941313a853eb4c4513f3fc926fe08272bb03045eff245be5722a4c20'
'c1ea088b93e88194b8c899fbb0d8a9db8cd1d56cfd94c06725648d8882253e832c5f3f9c56395d8b78eefd37ef3e058cbee969e609ae695e40e3596e2575f714'
'd1464684f3281dc5b44c56fb39266c0724d24a1b90cedf8a0f02e106aaee268bd27824653a387ae9835a12501dfadb56b9e74e3890de725684fb3d30e22b13d2'
'ed50753badd0b588348f56d651e863d92ff52aac759ad919fe75a36fa26ebbaa42b2c916757b150fe3a1b775547486ab800a239381a6939c0c071ad493516b5e'
'00f91b0cf8e77c8d6582462edf6eed069b5be8ace290e0ad6ec6ab9d0998c5712db82354f42b363b3cee41d3b2e386cd14a8828e6556dc391166faf05230324a'
'7360f3cb3ec5ff68ffd49bb9051a44b66ab082767bcd2f699a3ad3c8eb5226f3a03f7ece672654785d40599e401b92f6be533b1ab1b39036da8f318230a19e90'
'de7e4373513b95f131eea4d48795d9d5260499a95237af275440e43c9873eec45eef665a89251dc61d4f25d307f6e96130531398342d7afedafdc59dfffaf3a0')
# vim:set sw=2 et: