# Maintainer: Andreas Grapentin # Contributor: André Silva # Contributor: Márcio Silva # Contributor: Luke R. # Contributor: Isaac David _oldname=thunderbird pkgname=icedove epoch=1 pkgver=52.4.0 pkgrel=3.nonprism1 _brandingver=52.1 _brandingrel=1 arch=(i686 x86_64 armv7h) pkgdesc="Icedove, the libre standalone mail and news reader based on Mozilla Thunderbird, without support for unsafe and dangerous for privacy protocols" url="https://wiki.parabola.nu/$pkgname" license=(MPL GPL LGPL) depends=(alsa-lib dbus-glib gtk2 gtk3 hunspell libvpx libxt mime-types mozilla-common nss sqlite startup-notification ttf-font) depends_x86_64=(icu=60.1) depends_i686=(icu=60.1) depends_armv7d=(icu=58.2) makedepends=(autoconf2.13 diffutils gconf imake inetutils libpulse mesa mozilla-searchplugins pkg-config python2 quilt unzip yasm zip) makedepends_i686=(cargo) makedepends_x86_64=("${makedepends_i686[@]}") optdepends=('libcanberra: for sound support') replaces=("$pkgname-libre" "$_oldname") conflicts=("$pkgname-libre" "$_oldname") provides=("$_oldname") options=(!emptydirs !makeflags) install=$pkgname.install _parabolarepo=https://repo.parabola.nu/other/icedove source=("https://ftp.mozilla.org/pub/$_oldname/releases/$pkgver/source/$_oldname-$pkgver.source.tar.xz" "$_parabolarepo/${pkgname}_$_brandingver-$_brandingrel.branding.tar.xz" "$_parabolarepo/${pkgname}_$_brandingver-$_brandingrel.branding.tar.xz.sig" mozconfig $pkgname.desktop $pkgname-install-dir.patch changing-the-default-search-engine.patch vendor.js rust-target-i586-to-i686.patch mp4parse-bindings.patch libre-searchengines.patch no-neon.patch no-crmf.patch) sha256sums=('7f57b5b4d4ec42b04afcff8327abc2d3c6185c0bcc1ad138825d021a2d3f578c' '246418976524fbead5b99e6227f97322f8d4c45e0edf9ce75561ae8eccdefc65' 'SKIP' 'cafd1cf384791e8e3284f52370b2913a8b05935ecfd10d2a19c6dd5a8c219b62' '0b0d25067c64c6b829c84e5259ffca978e3971f85acc8483f47bdbed5b0b5b6a' '36e0a5ac0e994bfc939b4ac69a1a4aa365210e9dd5b49317d647c683817b2c5d' 'ff3474b7d8f7ad245a324c14f01daf05834462b4f0144fbc50f055ebb573dac8' '058b58074368b57acf8a6df9a9ffac848b7d7b39f5abd84cb2039bcee42b73e2' '069fab4b99dd51d7d004124d0052ea7b864cf060ea943348d290ba6aae50b0ab' '45a9e651278e39df39d17a679ac9ad81255cd51b530ba23b8e55e4d39c3b35d0' '0db12bef46e0ad68dbdf6ce0c767956d6758b073531012a850e7975eda3fc7fe' '59f40d8b2480aa67bf76f4f119826b6828a6a59cc040caf1ab5a6e19eef44c6e' 'a7317caba56e89932bd9e3b9352d94701dd9a419685057f238b1ded8dc0adcd7') validpgpkeys=( 'BFA8008A8265677063B11BF47171986E4B745536' # Andreas Grapentin ) prepare() { cd "$srcdir/$_oldname-$pkgver" local brandingdir="$srcdir/$pkgname-$_brandingver" # Prepare branding for the Icedove packages mkdir -v mail/branding/$pkgname # copy the branding files cp -va $brandingdir/$pkgname-branding/* mail/branding/$pkgname # patch export QUILT_PATCHES=$brandingdir/patches export QUILT_REFRESH_ARGS='-p ab --no-timestamps --no-index' export QUILT_DIFF_ARGS='--no-timestamps' quilt push -av # install the icons for i in 16 22 24 32 48 64 128 256; do install -Dm644 $brandingdir/app-icons/$pkgname$i.png \ mail/branding/$pkgname/mailicon$i.png done for i in 48 64; do install -Dm644 $brandingdir/app-icons/$pkgname$i.png \ mail/branding/$pkgname/content/icon$i.png done cp -av $brandingdir/preview.png mail/themes/linux/mail/preview.png # install to /usr/lib/icedove patch -Np1 -i "$srcdir/$pkgname-install-dir.patch" # https://bugzilla.mozilla.org/show_bug.cgi?id=1371991 patch -Np1 -i "$srcdir/no-crmf.patch" # Fix rust build patch -Np1 -i "$srcdir/rust-target-i586-to-i686.patch" patch -Np1 -i "$srcdir/mp4parse-bindings.patch" # Fix freedom issues patch -Np1 -i "$srcdir/libre-searchengines.patch" # Remove url-classifier from package-manifest.in to build and disable Phishing Protection sed -i '\|Phishing Protection|d \|UrlClassifier|d \|URLClassifier|d \|url-classifier|d ' mail/installer/package-manifest.in # Replace common URLs sed -i '\|extensions[.]getAddons[.]get[.]url| s|https://services[.]addons[.]mozilla[.]org.\+["][)][;]|https://directory.fsf.org/wiki/Icedove");|g; \|extensions[.]getAddons[.]search[.]browseURL| s|https://addons[.]mozilla[.]org.\+["][)][;]|https://directory.fsf.org/wiki/Icedove");|g; \|extensions[.]getAddons[.]search[.]url| s|https://services[.]addons[.]mozilla[.]org.\+["][)][;]|https://directory.fsf.org/wiki/Icedove");|g; \|extensions[.]webservice[.]discoverURL| s|https://services[.]addons[.]mozilla[.]org.\+["][)][;]|https://directory.fsf.org/wiki/Icedove");|g; ' mail/app/profile/all-thunderbird.js # Remove support for unsafe and dangerous for privacy protocols sed -i '\|facebook|d \|gtalk|d \|odnoklassniki|d \|twitter|d \|yahoo|d ' chat/moz.build sed -i '\|facebook[.]js|d \|facebook[.]manifest|d \|gtalk[.]js|d \|gtalk[.]manifest|d \|twitter[.]js|d \|twitter[.]manifest|d \|yahoo[.]js|d \|yahoo[.]manifest|d ' mail/installer/package-manifest.in rm -rv chat/protocols/{facebook,gtalk,twitter,yahoo} cp -v "$srcdir/mozconfig" .mozconfig # make sure we use python2 mkdir "$srcdir/path" ln -s /usr/bin/python2 "$srcdir/path/python" # Change the default search engine using our system-provided searchplugins patch -Np1 -i "$srcdir/changing-the-default-search-engine.patch" # Load our searchplugins rm -rv mail/locales/en-US/searchplugins cp -av /usr/lib/mozilla/searchplugins mail/locales/en-US/ # ARM-specific changes: if [[ "$CARCH" == arm* ]]; then # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=850984 sed -i 's/\^\[:space:\]\*/^[[:space:]]*/' mozilla/{,js/src/}configure patch -Np0 -i ../no-neon.patch sed -i '/ac_add_options --enable-gold/d' .mozconfig cat >> .mozconfig <<- EOF ac_add_options --disable-elf-hack ac_add_options --disable-neon ac_add_options --disable-ion ac_add_options --disable-webrtc ac_add_options --disable-debug ac_add_options --disable-debug-symbols EOF fi } build() { cd "$srcdir/$_oldname-$pkgver" # _FORTIFY_SOURCE causes configure failures CPPFLAGS+=" -O2" # Hardening LDFLAGS+=" -Wl,-z,now" # GCC 6 CFLAGS+=" -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2" CXXFLAGS+=" -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2" export PATH="$srcdir/path:$PATH" export PYTHON="/usr/bin/python2" make -f client.mk build } package() { cd "$srcdir/$_oldname-$pkgver" make -f client.mk DESTDIR="$pkgdir" INSTALL_SDK= install install -Dm644 "$srcdir/vendor.js" "$pkgdir/usr/lib/$pkgname/defaults/preferences/vendor.js" local brandingdir="$srcdir/$pkgname-$_brandingver" # Install Icedove menu icon install -Dm644 $brandingdir/$pkgname.xpm "$pkgdir/usr/share/pixmaps/$pkgname.xpm" # Install Icedove icons local icondir="$pkgdir/usr/share/icons/hicolor" for i in 16 22 24 32 48 64 128 256; do install -Dm644 "$brandingdir/app-icons/$pkgname$i.png" \ "$icondir/${i}x${i}/apps/$pkgname.png" done install -Dm644 "$brandingdir/app-icons/${pkgname}big.svg" \ "$icondir/scalable/apps/$pkgname.svg" # Install Icedove desktop install -d "$pkgdir/usr/share/applications" install -m644 "$srcdir/$pkgname.desktop" \ "$pkgdir/usr/share/applications" # Use system-provided dictionaries rm -rf "$pkgdir/usr/lib/$pkgname/"{dictionaries,hyphenation} ln -s /usr/share/hunspell "$pkgdir/usr/lib/$pkgname/dictionaries" ln -s /usr/share/hyphen "$pkgdir/usr/lib/$pkgname/hyphenation" # Replace duplicate binary with symlink # https://bugzilla.mozilla.org/show_bug.cgi?id=658850 ln -sf $pkgname "$pkgdir/usr/lib/$pkgname/$pkgname-bin" }