123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305 |
- # Maintainer (Arch): Levente Polyak <anthraxx[at]archlinux[dot]org>
- # Contributor (Arch): Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
- # Contributor (Arch): Ionut Biru <ibiru@archlinux.org>
- # Contributor (Arch): Alexander Baldeck <alexander@archlinux.org>
- # Contributor (Arch): Dale Blount <dale@archlinux.org>
- # Contributor (Arch): Anders Bostrom <anders.bostrom@home.se>
- # Maintainer: Andreas Grapentin <andreas@grapentin.org>
- # Contributor: André Silva <emulatorman@hyperbola.info>
- # Contributor: Márcio Silva <coadde@hyperbola.info>
- # Contributor: Luke R. <g4jc@openmailbox.org>
- # Contributor: Isaac David <isacdaavid@isacdaavid.info>
- # Contributor: bill-auger <bill-auger@programmer.net>
- # parabola changes and rationale:
- # - rebranded to icedove
- # - added makedepends: quilt mozilla-searchplugins python2-blessings
- # - added replaces, conflicts: thunderbird
- # - disabled tests, they break in an environment without network access.
- # - disabled geo-location
- # - removed nonfree search engines
- # - removed support for insecure chat protocols
- _pkgname=thunderbird
- pkgname=icedove
- replaces=("$_pkgname")
- epoch=1
- pkgver=68.9.0
- pkgrel=1
- pkgrel+=.parabola1.nonprism1
- _brandingver=68.6
- _brandingrel=1
- pkgdesc='Standalone mail and news reader based on Mozilla Thunderbird'
- pkgdesc+=', without support for unsafe and dangerous for privacy protocols'
- url="https://wiki.parabola.nu/$pkgname"
- arch=(x86_64)
- arch+=(i686 armv7h)
- license=(MPL GPL LGPL)
- depends=(gtk3 libxt startup-notification mime-types dbus-glib alsa-lib
- nss hunspell sqlite ttf-font) # libvpx
- # TODO: depends+=(libicui18n.so libicuuc.so)
- depends_armv7h=(icu=65)
- depends_i686+=(libicui18n.so libicuuc.so)
- depends_x86_64+=(libicui18n.so libicuuc.so)
- makedepends=(unzip zip diffutils python python2 yasm nasm mesa imake libpulse inetutils xorg-server-xvfb
- autoconf2.13 rust clang llvm gtk2 cbindgen nodejs)
- makedepends+=(quilt mozilla-searchplugins imagemagick)
- optdepends=('libcanberra: sound support')
- options=(!emptydirs !makeflags)
- source=(https://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/$pkgver/source/thunderbird-$pkgver.source.tar.xz{,.asc}
- $pkgname.desktop)
- source+=(https://repo.parabola.nu/other/icedove/${pkgname}_$_brandingver-$_brandingrel.branding.tar.xz{,.sig}
- libre-searchengines.patch
- mozilla-1338795-regression.patch)
- source_armv7h=(arm-wasm-vfp.patch)
- sha512sums=('891472c95ba6ff46061131504e89010da512a84b0e1dea0482e603fd4c87f11e099280a245c7dd9fc9320c48229c26602565c089d86f1a1f4271b29b6fc606f0'
- 'SKIP'
- 'a3c9815491d9bed0440c60f35867a5b8a2a1343521f288035fcc46e651a11b926c75a9eca2d262b43d510a7a7119709b53637f1b00ddbbee8e5b0a4b33d7b8fd'
- '5784493253f9b2b231a7f18d7c3c4a4bb9aec7ac4fa801772ac223342676e388ae0c094b95d89d92c1bd38c2f19feb6f51e074d0ea20228a256b6240ecf34832'
- 'SKIP'
- '3f3160441aa17a50b8bf9f95a0fed8e3428864901d7368409903289f069f51fa94e24b6140bf17981b91b55df77c7c29adb870dda9f1596a77ce1a54a62cac00'
- 'f4e892fc7af85877ef6cedd82313f6c0f335cb676cfb30badaa127c51aed00773212b99f1598f5709d6f481f12264463d6334bcde8e8da38ec1ea666622d28a1')
- sha512sums_armv7h=('c25883c4860e511a99d9fbfba5b824145c0862729101721605725f609ca2a41848b741dd100eff390f57031dc5f14af3ea30133de30f75cb20197c420ae20972')
- validpgpkeys=(14F26682D0916CDD81E37B6D61B7B526D98F0353) # Mozilla Software Releases <release@mozilla.com>
- validpgpkeys+=(BFA8008A8265677063B11BF47171986E4B745536) # Andreas Grapentin
- prepare() {
- cd $_pkgname-$pkgver
- # see: https://labs.parabola.nu/issues/2267
- # upstream BR: https://bugzilla.mozilla.org/show_bug.cgi?id=1628296
- patch -Np1 -i "$srcdir"/mozilla-1338795-regression.patch
- cat >.mozconfig <<END
- ac_add_options --enable-application=comm/mail
- ac_add_options --enable-calendar
- ac_add_options --prefix=/usr
- ac_add_options --enable-release
- ac_add_options --enable-linker=gold
- ac_add_options --enable-hardening
- ac_add_options --enable-optimize
- # https://bugzilla.mozilla.org/show_bug.cgi?id=1521249
- #ac_add_options --enable-rust-simd
- # https://bugzilla.mozilla.org/show_bug.cgi?id=1423822
- ac_add_options --disable-elf-hack
- # Branding
- ac_add_options --disable-official-branding
- ac_add_options --with-branding=comm/mail/branding/icedove
- ac_add_options --enable-update-channel=release
- ac_add_options --with-distribution-id=nu.parabola
- # System libraries
- ac_add_options --with-system-zlib
- ac_add_options --with-system-bz2
- ac_add_options --with-system-icu
- ac_add_options --with-system-jpeg
- # ac_add_options --with-system-libvpx
- ac_add_options --with-system-nspr
- ac_add_options --with-system-nss
- ac_add_options --enable-system-sqlite
- ac_add_options --enable-system-ffi
- # Features
- ac_add_options --enable-alsa
- ac_add_options --disable-jack
- ac_add_options --enable-startup-notification
- ac_add_options --disable-crashreporter
- ac_add_options --disable-updater
- ac_add_options --disable-gconf
- # tests require network access.
- ac_add_options --disable-tests
- END
- if [[ $CARCH = arm* ]]; then
- patch -Np1 -i "$srcdir"/arm-wasm-vfp.patch
- sed -i '/--enable-linker=gold/d' .mozconfig
- sed -i '/--enable-hardening/d' .mozconfig
- sed -i '/--enable-optimize/d' .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"
- cat >> .mozconfig <<END
- ac_add_options --disable-webrtc
- ac_add_options --disable-elf-hack
- ac_add_options --enable-optimize="-g0 -O2"
- END
- fi
- if [[ $CARCH = i686 ]]; then
- sed -i 's/--enable-linker=gold/--enable-linker=bfd/' .mozconfig
- LDFLAGS+=" -Wl,--no-keep-memory -Wl,--reduce-memory-overheads"
- export LDFLAGS
- fi
- # perform rebranding
- local brandingdir="$srcdir/$pkgname-$_brandingver"
- rm -rf -- comm/mail/branding/$pkgname
- cp -aT -- $brandingdir/$pkgname-branding/ comm/mail/branding/$pkgname
- export QUILT_PATCHES=$brandingdir/patches
- export QUILT_REFRESH_ARGS='-p ab --no-timestamps --no-index'
- export QUILT_DIFF_ARGS='--no-timestamps'
- quilt push -av
- # produce icons
- for i in 16 22 24 32; do
- rsvg-convert -w $i -h $i "$brandingdir/app-icons/${pkgname}_small.svg" \
- -o "comm/mail/branding/$pkgname/default$i.png"
- done
- for i in 48 64 128 256; do
- rsvg-convert -w $i -h $i "$brandingdir/app-icons/${pkgname}_big.svg" \
- -o "comm/mail/branding/$pkgname/default$i.png"
- done
- cp "$brandingdir/logo/icedove_icon.svg" "comm/mail/branding/$pkgname/"
- # Patch and remove anything that's left
- patch -Np1 -i "$srcdir/libre-searchengines.patch"
- sed -i '\|Phishing Protection|d
- \|UrlClassifier|d
- \|URLClassifier|d
- \|url-classifier|d
- ' comm/mail/installer/package-manifest.in
- 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;
- ' comm/mail/app/profile/all-thunderbird.js
- sed -i '\|facebook|d
- \|gtalk|d
- \|odnoklassniki|d
- \|skype|d
- \|twitter|d
- \|yahoo|d
- ' comm/chat/moz.build
- sed -i '\|facebook[.]js|d
- \|facebook[.]manifest|d
- \|gtalk[.]js|d
- \|gtalk[.]manifest|d
- \|odnoklassniki[.]js|d
- \|odnoklassniki[.]manifest|d
- \|skype[.]js|d
- \|skype[.]manifest|d
- \|twitter[.]js|d
- \|twitter[.]manifest|d
- \|yahoo[.]js|d
- \|yahoo[.]manifest|d
- ' comm/mail/installer/package-manifest.in
- rm -rv comm/chat/protocols/{facebook,gtalk,odnoklassniki,skype,twitter,yahoo}
- cp -av $srcdir/$pkgname-$_brandingver/preview.png \
- comm/mail/themes/linux/mail/preview.png
- # Load our searchplugins
- rm -rv comm/suite/locales/en-US/searchplugins
- cp -av /usr/lib/mozilla/searchplugins comm/suite/locales/en-US/
- }
- build() {
- cd $_pkgname-$pkgver
- # clang-{9,10,11} -> error: unknown argument: '-fvar-tracking-assignments'
- CFLAGS="${CFLAGS/-fvar-tracking-assignments/}"
- CXXFLAGS="${CXXFLAGS/-fvar-tracking-assignments/}"
- case "${CARCH}" in
- armv*)
- export LDFLAGS+=" -Wl,--no-keep-memory -Wl,--reduce-memory-overheads"
- sed -i "s/\(cargo_rustc_flags += -C lto\)/#\1/" config/rules.mk
- sed -i "s/debug_info = '2'/debug_info = '1'/" build/moz.configure/toolchain.configure
- export MOZ_MAKE_FLAGS=-j1
- ;;
- i686)
- sed -i "s/\(cargo_rustc_flags += -C lto\)/#\1/" config/rules.mk
- sed -i "s/debug_info = '2'/debug_info = '1'/" build/moz.configure/toolchain.configure
- export MOZ_MAKE_FLAGS=-j1
- ;;
- esac
- ./mach configure
- ./mach build
- ./mach buildsymbols
- }
- package() {
- cd $_pkgname-$pkgver
- DESTDIR="$pkgdir" ./mach install
- _vendorjs="$pkgdir/usr/lib/$pkgname/defaults/preferences/vendor.js"
- install -Dm644 /dev/stdin "$_vendorjs" <<END
- // Use LANG environment variable to choose locale
- pref("intl.locale.requested", "");
- // Use system-provided dictionaries
- pref("spellchecker.dictionary_path", "/usr/share/hunspell");
- // Disable default mailer checking.
- pref("mail.shell.checkDefaultMail", false);
- // Don't disable our bundled extensions in the application directory
- pref("extensions.autoDisableScopes", 11);
- pref("extensions.shownSelectionUI", true);
- // Disable Social API for content
- pref("social.remote-install.enabled", false);
- pref("social.toast-notifications.enabled", false);
- // Make sure that whitelisted and directory installs are empty
- pref("social.whitelist", "");
- pref("social.directories", "");
- // Disable the GeoLocation API for content
- pref("geo.enabled", false);
- // TODO: this "whats new" page should be in the branding package or abslibre
- // Pointing the "Help -> What's new" menu entry to mozilla.debian.net
- //pref("mailnews.start_page.override_url", "http://wiki.debian.org/Icedove/WhatsNew45");
- END
- _distini="$pkgdir/usr/lib/$pkgname/distribution/distribution.ini"
- install -Dm644 /dev/stdin "$_distini" <<END
- [Global]
- id=parabola
- version=1.0
- about=Icedove for Parabola GNU/Linux-libre
- [Preferences]
- app.distributor=parabola
- app.distributor.channel=$pkgname
- app.partner.parabola=parabola
- END
- for i in 16 22 24 32 48 64 128 256; do
- install -Dm644 comm/mail/branding/$pkgname/default${i}.png \
- "$pkgdir/usr/share/icons/hicolor/${i}x${i}/apps/$pkgname.png"
- done
- install -Dm644 comm/mail/branding/$pkgname/${pkgname}_icon.svg \
- "$pkgdir/usr/share/icons/hicolor/symbolic/apps/$pkgname-symbolic.svg"
- install -Dm644 ../$pkgname.desktop \
- "$pkgdir/usr/share/applications/$pkgname.desktop"
- # 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/$pkgname "\$@"
- 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/$pkgname-bin"
- }
|