void-packages/srcpkgs/firefox-esr/template
Helmut Pozimski 8ca8ebae43 Fix font rendering issues with freetype 2.8.1 for firefox and firefox-esr (#7723)
* firefox: add patch to fix font rendering issue with freetype 2.8.1

After the recent freetype upgrade, font rendering in firefox was
messed up because of issues with the bundled Skia library as documented
in https://bugzilla.mozilla.org/show_bug.cgi?id=1393467 . This commit
adds the patch from https://bugzilla.mozilla.org/attachment.cgi?id=8902859 .

* firefox-esr: add patch to fix font rendering issue with freetype 2.8.1

After the recent freetype upgrade, font rendering in firefox-esr was
messed up because of issues with the bundled Skia library as documented
in https://bugzilla.mozilla.org/show_bug.cgi?id=1393467 . This commit
adds the patch from https://bugzilla.mozilla.org/attachment.cgi?id=8904705
which is a backported version of the Skia fix for Firefox 52 ESR.
2017-09-19 08:38:07 +02:00

127 lines
4.6 KiB
Bash

# Template build file for 'firefox-esr'.
pkgname=firefox-esr
version=52.3.0
revision=2
wrksrc="firefox-${version}esr"
short_desc="Mozilla Firefox web browser - Extended Support Release (ESR)"
maintainer="Eivind Uggedal <eivind@uggedal.com>"
homepage="https://www.mozilla.org/firefox/"
license="MPL-2.0, GPL-2, LGPL-2.1"
distfiles="${MOZILLA_SITE}/firefox/releases/${version}esr/source/firefox-${version}esr.source.tar.xz"
checksum=c16bc86d6cb8c2199ed1435ab80a9ae65f9324c820ea0eeb38bf89a97d253b5b
only_for_archs="i686 i686-musl x86_64 x86_64-musl"
nopie=yes
lib32disabled=yes
hostmakedepends="autoconf213 unzip zip pkg-config perl python yasm
$(vopt_if rust 'rust cargo')"
makedepends="
nss-devel libjpeg-turbo-devel gtk+-devel icu-devel pixman-devel
sqlite-devel libevent-devel libnotify-devel libvpx-devel libXrender-devel
hunspell-devel libXcomposite-devel libSM-devel libXt-devel libXdamage-devel
$(vopt_if alsa alsa-lib-devel) $(vopt_if dbus dbus-glib-devel)
$(vopt_if gtk3 gtk+3-devel) $(vopt_if pulseaudio pulseaudio-devel)
$(vopt_if startup_notification startup-notification-devel)
$(vopt_if xscreensaver libXScrnSaver-devel)"
depends="nss>=3.27 desktop-file-utils hicolor-icon-theme"
conflicts="firefox>=0"
build_options="alsa dbus gtk3 rust pulseaudio startup_notification xscreensaver"
build_options_default="alsa dbus gtk3 pulseaudio startup_notification xscreensaver"
desc_option_rust="Build rust components"
case "$XBPS_TARGET_MACHINE" in
x86_64*) build_options_default+=" rust";;
esac
post_extract() {
case "$XBPS_TARGET_MACHINE" in
*-musl)
# fix musl rust triplet
sed -i "s/\(x86_64-unknown-linux\)-gnu/\1-musl/" build/moz.configure/rust.configure
cp "${FILESDIR}/stab.h" toolkit/crashreporter/google-breakpad/src/
;;
esac
# Google API key (see http://www.chromium.org/developers/how-tos/api-keys)
# Note: This is for Void Linux use ONLY.
echo -n "AIzaSyCIFdBA7eQP43R6kXRwTq7j6Mvj1ITze90" > google-api-key
# Mozilla API keys (see https://location.services.mozilla.com/api)
# Note: This is for Void Linux use ONLY.
echo -n "cd894504-7a2a-4263-abff-ff73ee89ffca" > mozilla-api-key
}
do_build() {
cp "${FILESDIR}/mozconfig" "${wrksrc}/.mozconfig"
case "$XBPS_TARGET_MACHINE" in
*-musl)
echo "ac_add_options --disable-jemalloc" >>.mozconfig
echo "ac_add_options --enable-gold=no" >>.mozconfig
;;
esac
if [ "$CROSS_BUILD" ]; then
export HOST_CFLAGS="${XBPS_CFLAGS}"
export HOST_CXXFLAGS="${XBPS_CXXFLAGS}"
export ac_cv_sqlite_secure_delete=yes \
ac_cv_sqlite_threadsafe=yes \
ac_cv_sqlite_enable_fts3=yes \
ac_cv_sqlite_dbstat_vtab=yes \
ac_cv_sqlite_enable_unlock_notify=yes \
ac_cv_prog_hostcxx_works=1
echo "ac_add_options --target=$XBPS_CROSS_TRIPLET" >>.mozconfig
fi
# Append CFLAGS and CXXFLAGS to set work around code which gcc6 would
# otherwise regard as out-of-specification and allow it to produce a
# working program.
export CFLAGS+=" -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2"
export CXXFLAGS+=" -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2"
export LDFLAGS+=" -Wl,-rpath=/usr/lib/firefox"
if [ "$SOURCE_DATE_EPOCH" ]; then
export MOZ_BUILD_DATE=$(date --date "@$SOURCE_DATE_EPOCH" "+%Y%m%d%H%M%S")
fi
export MOZ_MAKE_FLAGS="${makejobs}"
cat <<! >>.mozconfig
ac_add_options --with-google-api-keyfile="${wrksrc}/google-api-key"
ac_add_options --with-mozilla-api-keyfile="${wrksrc}/mozilla-api-key"
ac_add_options --enable-default-toolkit=cairo-gtk$(vopt_if gtk3 '3' '2')
ac_add_options $(vopt_enable alsa)
ac_add_options $(vopt_enable dbus)
ac_add_options $(vopt_enable dbus necko-wifi)
ac_add_options $(vopt_enable pulseaudio)
ac_add_options $(vopt_enable rust)
ac_add_options $(vopt_enable startup_notification startup-notification)
!
make -f client.mk build
}
do_install() {
make -f client.mk DESTDIR="$DESTDIR" install
vinstall ${FILESDIR}/vendor.js 644 usr/lib/firefox/browser/defaults/preferences
vinstall ${FILESDIR}/firefox.desktop 644 usr/share/applications
for i in 16x16 22x22 24x24 32x32 48x48 256x256; do
vinstall ${wrksrc}/browser/branding/official/default${i%x*}.png 644 \
usr/share/icons/hicolor/${i}/apps firefox.png
done
# Use system-provided dictionaries
rm -rf ${DESTDIR}/usr/lib/firefox/{dictionaries,hyphenation}
ln -s /usr/share/hunspell ${DESTDIR}/usr/lib/firefox/dictionaries
ln -s /usr/share/hyphen ${DESTDIR}/usr/lib/firefox/hyphenation
# We don't want the development stuff
rm -rf ${DESTDIR}/usr/{include,lib/firefox-devel,share/idl}
# https://bugzilla.mozilla.org/show_bug.cgi?id=658850
ln -sf firefox ${DESTDIR}/usr/lib/firefox/firefox-bin
}