diff options
Diffstat (limited to 'libre/icedove/PKGBUILD')
-rw-r--r-- | libre/icedove/PKGBUILD | 233 |
1 files changed, 103 insertions, 130 deletions
diff --git a/libre/icedove/PKGBUILD b/libre/icedove/PKGBUILD index 856c00f11..3621e8f61 100644 --- a/libre/icedove/PKGBUILD +++ b/libre/icedove/PKGBUILD @@ -11,103 +11,95 @@ # 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 +# - added makedepends for branding: quilt mozilla-searchplugins imagemagick # - disabled tests, they break in an environment without network access. # - disabled geo-location + _pkgname=thunderbird pkgname=icedove -replaces=("$_pkgname") epoch=1 -pkgver=68.9.0 +pkgver=78.5.0 pkgrel=1 pkgrel+=.parabola1 -_brandingver=68.6 +_brandingver=78.5 _brandingrel=1 pkgdesc='Standalone mail and news reader based on Mozilla Thunderbird' -url="https://wiki.parabola.nu/$pkgname" +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 -depends+=(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) +depends=( + glibc gtk3 libgdk-3.so mime-types dbus libdbus-1.so dbus-glib alsa-lib nss + hunspell sqlite ttf-font libvpx libvpx.so zlib bzip2 botan libwebp libevent + libjpeg-turbo libffi 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 + inetutils xorg-server-xvfb autoconf2.13 rust clang llvm gtk2 cbindgen nodejs + gawk perl findutils +) +makedepends[15]='llvm10' # FIXME: DEBUG: | rustup: error while loading shared libraries: libLLVM-10.so: cannot open shared object file: No such file or directory + # ERROR: Command `rustup which rustc` failed with exit status 127. makedepends+=(quilt mozilla-searchplugins imagemagick) -optdepends=('libcanberra: sound support') +replaces=(${_pkgname}) options=(!emptydirs !makeflags) source=(https://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/$pkgver/source/thunderbird-$pkgver.source.tar.xz{,.asc} - $pkgname.desktop) + $pkgname.desktop + vendor-prefs.js + distribution.ini + mozconfig.cfg + configure-fix-passing-system-bzip2-ldflags.patch + thunderbird-78.4.3-gpgme-double-armored-fix.patch) source+=(https://repo.parabola.nu/other/icedove/${pkgname}_$_brandingver-$_brandingrel.branding.tar.xz{,.sig} - libre-searchengines.patch - mozilla-1338795-regression.patch) + libre-searchengines.patch) source_armv7h=(arm-wasm-vfp.patch) -sha512sums=('891472c95ba6ff46061131504e89010da512a84b0e1dea0482e603fd4c87f11e099280a245c7dd9fc9320c48229c26602565c089d86f1a1f4271b29b6fc606f0' +sha512sums=('dae49dc0910dd017250643c920c79f03d3ef14bcbafde7fcdb3aaeba2b27a42ef6f88c8de8b961f8bb1c3d1a153bc8988ab43a39eb051d81839cf3b9e8373118' 'SKIP' 'a3c9815491d9bed0440c60f35867a5b8a2a1343521f288035fcc46e651a11b926c75a9eca2d262b43d510a7a7119709b53637f1b00ddbbee8e5b0a4b33d7b8fd' - '5784493253f9b2b231a7f18d7c3c4a4bb9aec7ac4fa801772ac223342676e388ae0c094b95d89d92c1bd38c2f19feb6f51e074d0ea20228a256b6240ecf34832' - 'SKIP' - '3f3160441aa17a50b8bf9f95a0fed8e3428864901d7368409903289f069f51fa94e24b6140bf17981b91b55df77c7c29adb870dda9f1596a77ce1a54a62cac00' - 'f4e892fc7af85877ef6cedd82313f6c0f335cb676cfb30badaa127c51aed00773212b99f1598f5709d6f481f12264463d6334bcde8e8da38ec1ea666622d28a1') + 'e21d30a8b79724eda3488ac2bf9dfeb0c7f6bf39e59c37f17574b529d33043765eb54408a55fcbf6f3afa7a58ca99124992d443cdff23ac5c9bdbff33c75f60f' + '31d46f91d9612d30d8553a19d0d309d743467e58b568a4aeea3caf6bd805ba00656561c84a1511c59bce1cf24ba323bfad2cd26a19985f1bf7dfb6d282642972' + '636aad861322df5cc3cb9e7b0142a56981b9eeb010bacaa10148d3f74f43bc3c26580475ee5646556acb9980028cb3ffcc1a15788f8039ca0fe57e261457c113' + 'e3ed2708b8354015cb3d2c81048d1ce4932d1effbe2b40efa7cf9b45c1b923b9fd708645e2f8aa0136a485a3f7ce6b396b85721aaf535a4a764fd5005fb7e222' + '92f4c5946f288b30728382830b99b91980ecd845d1606ab251bbdde5cf53387e966727a23f35a3bf7756ee77e72e478f3fb468668e8c412f552547eeb3408299') +sha512sums+=('3b757a7c5f1f4aa83405d0dc7bb69b72230e0e2c944f9b5aeff8e22cc8e6a053aeb16e3ca6f450bf5de763a1aba8028bf4f299bdfb6f203239605ea16c40b4ed' + 'SKIP' + 'be1bf98b65471aa36d1e4a55a24907ac99ddd401daee180dfe26302bad6928f6b4fe5dc6bbc7a96d884237bbd1f6205a4788a82b13fd7e929edbaf64200e0f52') sha512sums_armv7h=('c25883c4860e511a99d9fbfba5b824145c0862729101721605725f609ca2a41848b741dd100eff390f57031dc5f14af3ea30133de30f75cb20197c420ae20972') validpgpkeys=(14F26682D0916CDD81E37B6D61B7B526D98F0353) # Mozilla Software Releases <release@mozilla.com> -validpgpkeys+=(BFA8008A8265677063B11BF47171986E4B745536) # Andreas Grapentin +validpgpkeys+=(BFA8008A8265677063B11BF47171986E4B745536 # Andreas Grapentin + 3954A7AB837D0EA9CFA9798925DB7D9B5A8D4B40) # bill-auger + 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 + echo "${noextract[@]}" -# Branding -ac_add_options --disable-official-branding -ac_add_options --enable-update-channel=release -ac_add_options --with-distribution-id=nu.parabola -ac_add_options --with-branding=comm/mail/branding/icedove - -# 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 + local src + for src in "${source[@]}"; do + src="${src%%::*}" + src="${src##*/}" + [[ $src = *.patch ]] || continue + [[ $src = libre-searchengines.patch ]] && continue # defer parabola patches + [[ $src = arm-wasm-vfp.patch ]] && continue # defer parabola patches - if [[ $CARCH = arm* ]]; then - patch -Np1 -i "$srcdir"/arm-wasm-vfp.patch + echo "Applying patch $src..." + patch -Np1 < "../$src" + done + + cp ../mozconfig.cfg .mozconfig + sed "s|@PWD@|${PWD@Q}|g" -i .mozconfig + + 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 @@ -126,35 +118,59 @@ ac_add_options --enable-optimize="-g0 -O2" END fi - if [[ $CARCH = i686 ]]; then + 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 + local branding_indir="${srcdir}"/${pkgname}-${_brandingver} + local branding_outdir=comm/mail/branding/${pkgname} + rm -rf -- ${branding_outdir} + cp -aT -- "${branding_indir}"/${pkgname}-branding ${branding_outdir} - export QUILT_PATCHES=$brandingdir/patches + export QUILT_PATCHES="${branding_indir}"/patches export QUILT_REFRESH_ARGS='-p ab --no-timestamps --no-index' export QUILT_DIFF_ARGS='--no-timestamps' quilt push -av - # produce icons + # generate 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" + rsvg-convert -w ${i} -h ${i} "${branding_indir}"/app-icons/${pkgname}_small.svg \ + -o "${branding_outdir}/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" + rsvg-convert -w ${i} -h ${i} "${branding_indir}"/app-icons/${pkgname}_big.svg \ + -o "${branding_outdir}/default${i}.png" done - cp "$brandingdir/logo/icedove_icon.svg" "comm/mail/branding/$pkgname/" + cp "${branding_indir}"/logo/icedove_icon.svg ${branding_outdir}/ + cp -av "${branding_indir}"/preview.png comm/mail/themes/linux/mail/preview.png + + # Patch search-engines config + echo "applying libre-searchengines.patch" + patch -Np1 -i "${srcdir}"/libre-searchengines.patch + # TODO: custom searchplugins ID per new format ("ddg" is standard) + # where: ID is comm/mail/components/search/extensions/<ID>/ + # eg: "ddg", "duckduckgo-html", "duckduckgo-lite", "internet-archive", "parabola-labs", "parabola-packages", "parabola-wiki-en", "searx", "wikipedia", "yacy"|g' + local remove_engines_sed_cmd='s|.*"google".*"wikipedia".*| "ddg", "wikipedia"| ; s|.*"google".*"wikipedia\(-[^"]*\)".*| "ddg", "wikipedia\1"|' + local engines_cfg_dir=comm/mail/components/search/extensions + local engines_cfg_file=${engines_cfg_dir}/list.json + sed -i "${remove_engines_sed_cmd}" ${engines_cfg_file} + + # Sanity-check search-engines patching + local removed_engines_regex='Bing|Google|Seznam|Twitter|Yahoo|Yandex|Яндекс|amazon|bing|google|ebay|twitter' + local engines_err_msg="search-engines patch and/or sed command needs re-working" + ! grep -E ${removed_engines_regex} ${engines_cfg_file} > /dev/null || ! echo "${engines_err_msg}" + + # Delete unused search engine configs + find ${engines_cfg_dir} -mindepth 1 -maxdepth 1 \ + -not -name ddg \ + -not -name wikipedia \ + -not -name list.json \ + -exec rm -rf {} \; # Patch and remove anything that's left - patch -Np1 -i "$srcdir/libre-searchengines.patch" sed -i '\|Phishing Protection|d \|UrlClassifier|d \|URLClassifier|d @@ -166,11 +182,10 @@ END \|extensions[.]webservice[.]discoverURL| s|https://services[.]addons[.]mozilla[.]org.\+["][)][;]|https://directory.fsf.org/wiki/Icedove");|g; ' comm/mail/app/profile/all-thunderbird.js - 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 + # TODO: this 'searchplugins' directory no longer exists, as of v78 + # so perhaps the replacement will not be used + rm -rv comm/suite/locales/en-US/searchplugins || : cp -av /usr/lib/mozilla/searchplugins comm/suite/locales/en-US/ } @@ -201,52 +216,14 @@ build() { } package() { + optdepends=('libcanberra: sound support') + 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 + 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 ../$pkgname.desktop -t "$pkgdir/usr/share/applications" for i in 16 22 24 32 48 64 128 256; do install -Dm644 comm/mail/branding/$pkgname/default${i}.png \ @@ -255,9 +232,6 @@ END 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" @@ -273,4 +247,3 @@ END ln -srf "$pkgdir/usr/bin/$pkgname" \ "$pkgdir/usr/lib/$pkgname/$pkgname-bin" } - |