# Maintainer: André Silva # Contributor: Márcio Silva # Contributor: Luke R. # Contributor: Isaac David # We're getting this from Debian Sid _debname=icedove _debver=45.5.0 _debrel=deb1 _debrepo=http://ftp.debian.org/debian/pool/main/ debfile() { echo $@|sed -r 's@(.).*@\1/&/&@'; } _pkgname=thunderbird pkgname=icedove-hardened epoch=1 pkgver=$_debver.$_debrel pkgrel=1 pkgdesc="A libre version of Debian Icedove, the standalone mail and news reader based on Mozilla Thunderbird, with several patches that were introduced to strengthen and protect the end user from security threats and without support for unsafe and dangerous for privacy protocols" arch=(i686 x86_64 armv7h) license=(MPL GPL LGPL) depends=(alsa-lib dbus-glib gtk2 hunspell icu=57.1 libevent libvpx=1.6.0 libxt mime-types mozilla-common nss sqlite startup-notification ttf-font) makedepends=(autoconf2.13 diffutils gconf imake inetutils libpulse mesa mozilla-searchplugins pkg-config python2 quilt unzip yasm zip) options=(!emptydirs !makeflags) optdepends=('libcanberra: for sound support') url="https://wiki.parabola.nu/${pkgname%-*}" replaces=("${pkgname%-*}-libre" "${_pkgname}-hardening" "$_pkgname") conflicts=("${pkgname%-*}-libre" "$_pkgname") provides=("$_pkgname" "${pkgname%-*}=$epoch.$pkgver") install=${pkgname%-*}.install source=("$_debrepo/`debfile $_debname`_$_debver.orig.tar.xz" "$_debrepo/`debfile $_debname`_$_debver-${_debrel#deb}.debian.tar.xz" mozconfig ${pkgname%-*}.desktop changing-the-default-search-engine.patch firefox-gcc-6.0.patch mozilla-1228540.patch mozilla-1228540-1.patch vendor.js fix-missing-files.patch no-neon.patch mozilla-1253216.patch) sha256sums=('953db5edf31101f6cfc546bc2d9c9857134b5a7cfabf2251294a444364b45fa8' '33cc4f2355a7f30f1679dc7ff6c6be9c57c9399f9c5163d719fe1c2a6bb95fc2' 'aaca37bcca176d1b8ebe7c18d3fb0c61e3d21769fbf8e994a189eb3263257d3d' '0b0d25067c64c6b829c84e5259ffca978e3971f85acc8483f47bdbed5b0b5b6a' 'e1f72c44e31f191271207fc874dcfbf3d504b6b42dc1bb063ba8c7c9ee032130' '4d1e1ddabc9e975ed39f49e134559a29e01cd49439e358233f1ede43bf5a52bf' '3a3e84c702ee31450a3e84698441aceb11cf44e64c9fedcaddb8cb50db759417' 'd1ccbaf0973615c57f7893355e5cd3a89efb4e91071d0ec376e429b50cf6ed19' '9a7d1a31274bd2e0b530fbabb2e382a8ce6eba3f06ccada1fecf67654b72d1ed' '294a2cc7b0477ad285af10ac2a04b767cabec07f03b23da23014bda71caea510' '59f40d8b2480aa67bf76f4f119826b6828a6a59cc040caf1ab5a6e19eef44c6e' '1e7ef08acd46aeacc8cd8b2c89012983fb2c8c18648e0f3e9371b0c76caedbde') prepare() { cd "$srcdir/$_pkgname-$_debver" mv "$srcdir/debian" . export QUILT_PATCHES=debian/patches export QUILT_REFRESH_ARGS='-p ab --no-timestamps --no-index' export QUILT_DIFF_ARGS='--no-timestamps' # Prepare branding for the Icedove packages mkdir -v mail/branding/${pkgname%-*} # Copy needed icons cp -va debian/${pkgname%-*}-branding/* mail/branding/${pkgname%-*} for i in 16 22 24 32 48 256; do install -Dm644 debian/app-icons/${pkgname%-*}$i.png \ mail/branding/${pkgname%-*}/mailicon$i.png done for i in 48 64; do install -Dm644 debian/app-icons/${pkgname%-*}$i.png \ mail/branding/${pkgname%-*}/content/icon$i.png done cp -av debian/preview.png mail/themes/linux/mail/preview.png # Useless since we are doing it ourselves rm -rv debian/patches/icedove-l10n || true rm -rv debian/patches/iceowl-l10n || true rm -v debian/patches/debian-hacks/changing-the-default-search-engine.patch || true quilt push -av # Fix missing files patch -Np1 -i "$srcdir/fix-missing-files.patch" # Modify MOZ_APP_NAME for icedove-hardened be installed side by side with icedove sed -i '\|MOZ_APP_NAME| s|icedove|icedove-hardened| ' mail/confvars.sh # 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 # Fix branding sed -i 's|Icedove Mail/News|Icedove| ' mail/branding/icedove/locales/en-US/brand.{dtd,properties} # 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} # Required for GCC 6 patch -d mozilla -Np1 < ../firefox-gcc-6.0.patch patch -d mozilla -Np1 < ../mozilla-1228540.patch patch -d mozilla -Np1 < ../mozilla-1228540-1.patch cp -v "$srcdir/mozconfig" .mozconfig 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 patch -Np0 -i ../no-neon.patch patch -p2 -d mozilla < ../mozilla-1253216.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/$_pkgname-$_debver" # _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" make -f client.mk build } package() { cd "$srcdir/$_pkgname-$_debver" make -f client.mk DESTDIR="$pkgdir" INSTALL_SDK= install install -Dm644 ../vendor.js "$pkgdir/usr/lib/$pkgname/defaults/preferences/vendor.js" # Install Icedove menu icon install -Dm644 debian/${pkgname%-*}.xpm "$pkgdir/usr/share/pixmaps/$pkgname.xpm" # Install Icedove icons brandingdir=debian/app-icons icondir="$pkgdir/usr/share/icons/hicolor" for i in 16 22 24 32 48 64 128 256; do install -Dm644 "$brandingdir/${pkgname%-*}$i.png" \ "$icondir/${i}x${i}/apps/$pkgname.png" done install -Dm644 "$brandingdir/${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/$pkgname.desktop" # 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" }