From c09b6254743a2c9126b5bcb2743a24f025a6795e Mon Sep 17 00:00:00 2001 From: Nick Bowler Date: Tue, 20 Dec 2022 20:34:33 -0500 Subject: [PATCH] Resurrect firefox-52.9.0 ebuild. The last XUL-based version from Mozilla, with some small fixes to build successfully with modern toolchains. --- eclass/mozconfig-v6.52.eclass | 398 ++++++++++++++++ eclass/mozcoreconf-v5.eclass | 275 ++++++++++++ www-client/firefox/Manifest | 104 +++++ .../files/firefox-52.9.0-blessings-TERM.patch | 56 +++ ...firefox-52.9.0-fix-idb-name-conflict.patch | 226 ++++++++++ .../firefox-52.9.0-fix-missing-includes.patch | 37 ++ .../firefox-52.9.0-fix-thebes-templates.patch | 183 ++++++++ .../files/firefox-52.9.0-glibc-2.30.patch | 13 + .../files/firefox-52.9.0-glibc-2.36.patch | 61 +++ .../files/firefox-52.9.0-less-werror.patch | 13 + .../firefox/files/gentoo-default-prefs.js-1 | 17 + .../firefox/files/gentoo-hwaccel-prefs.js-1 | 2 + www-client/firefox/files/icon/firefox.desktop | 10 + www-client/firefox/firefox-52.9.0-r2.ebuild | 424 ++++++++++++++++++ 14 files changed, 1819 insertions(+) create mode 100644 eclass/mozconfig-v6.52.eclass create mode 100644 eclass/mozcoreconf-v5.eclass create mode 100644 www-client/firefox/Manifest create mode 100644 www-client/firefox/files/firefox-52.9.0-blessings-TERM.patch create mode 100644 www-client/firefox/files/firefox-52.9.0-fix-idb-name-conflict.patch create mode 100644 www-client/firefox/files/firefox-52.9.0-fix-missing-includes.patch create mode 100644 www-client/firefox/files/firefox-52.9.0-fix-thebes-templates.patch create mode 100644 www-client/firefox/files/firefox-52.9.0-glibc-2.30.patch create mode 100644 www-client/firefox/files/firefox-52.9.0-glibc-2.36.patch create mode 100644 www-client/firefox/files/firefox-52.9.0-less-werror.patch create mode 100644 www-client/firefox/files/gentoo-default-prefs.js-1 create mode 100644 www-client/firefox/files/gentoo-hwaccel-prefs.js-1 create mode 100644 www-client/firefox/files/icon/firefox.desktop create mode 100644 www-client/firefox/firefox-52.9.0-r2.ebuild diff --git a/eclass/mozconfig-v6.52.eclass b/eclass/mozconfig-v6.52.eclass new file mode 100644 index 0000000..96efaa7 --- /dev/null +++ b/eclass/mozconfig-v6.52.eclass @@ -0,0 +1,398 @@ +# This eclass is a modified version of the work originally distributed with +# Gentoo GNU/Linux, covered by the following copyright and permission notice: +# +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 +# +# The modifications are: +# +# * Update libffi dependency (2022-12) +# +# @ECLASS: mozconfig-v6.52.eclass +# @MAINTAINER: +# mozilla team +# @SUPPORTED_EAPIS: 5 6 7 +# @BLURB: the new mozilla common configuration eclass for FF33 and newer, v6 +# @DESCRIPTION: +# This eclass is used in mozilla ebuilds (firefox, thunderbird, seamonkey) +# to provide a single common place for the common mozilla engine compoments. +# +# The eclass provides all common dependencies as well as common use flags. +# +# Some use flags which may be optional in particular mozilla packages can be +# supported through setting eclass variables. +# +# This eclass inherits mozconfig helper functions as defined in mozcoreconf-v3, +# and so ebuilds inheriting this eclass do not need to inherit that. + +case ${EAPI} in + 0|1|2|3|4) + die "EAPI=${EAPI} not supported" + ;; + 5) + inherit multilib + ;; +esac + +inherit flag-o-matic toolchain-funcs mozcoreconf-v5 + +# @ECLASS-VARIABLE: MOZCONFIG_OPTIONAL_WIFI +# @DEFAULT_UNSET +# @DESCRIPTION: +# Set this variable before the inherit line, when an ebuild needs to provide +# optional necko-wifi support via IUSE="wifi". Currently this would include +# ebuilds for firefox, and potentially seamonkey. +# +# Leave the variable UNSET if necko-wifi support should not be available. +# Set the variable to "enabled" if the use flag should be enabled by default. +# Set the variable to any value if the use flag should exist but not be default-enabled. + +# @ECLASS-VARIABLE: MOZCONFIG_OPTIONAL_JIT +# @DEFAULT_UNSET +# @DESCRIPTION: +# Set this variable before the inherit line, when an ebuild needs to provide +# deterministic jit support via IUSE="jit". The upstream default will be used +# otherwise, which is generally to enable jit unless support for the platform +# is missing. +# +# Set the variable to "enabled" if the use flag should be enabled by default. +# Set the variable to any value if the use flag should exist but not be default-enabled. + +# @ECLASS-VARIABLE: MOZCONFIG_OPTIONAL_GTK3 +# @DEFAULT_UNSET +# @DESCRIPTION: +# Set this variable before the inherit line, when an ebuild can provide +# optional gtk3 support via IUSE="force-gtk3". Currently this would include +# thunderbird and seamonkey in the future, once support is ready for testing. +# +# Leave the variable UNSET if gtk3 support should not be optionally available. +# Set the variable to "enabled" if the use flag should be enabled by default. +# Set the variable to any value if the use flag should exist but not be default-enabled. +# If gtk+:3 is to be the standard toolkit, do not use this and instead use +# MOZCONFIG_OPTIONAL_GTK2ONLY. + +# @ECLASS-VARIABLE: MOZCONFIG_OPTIONAL_GTK2ONLY +# @DEFAULT_UNSET +# @DESCRIPTION: +# Set this variable before the inherit line, when an ebuild can provide +# optional gtk2-only support via IUSE="gtk2". +# +# Note that this option conflicts directly with MOZCONFIG_OPTIONAL_GTK3, both +# variables cannot be set at the same time and this variable will be ignored if +# MOZCONFIG_OPTIONAL_GTK3 is set. +# +# Leave the variable UNSET if gtk2-only support should not be available. +# Set the variable to "enabled" if the use flag should be enabled by default. +# Set the variable to any value if the use flag should exist but not be default-enabled. + +# @ECLASS-VARIABLE: MOZCONFIG_OPTIONAL_QT5 +# @DEFAULT_UNSET +# @DESCRIPTION: +# Set this variable before the inherit line, when an ebuild can provide +# optional qt5 support via IUSE="qt5". Currently this would include +# ebuilds for firefox, but thunderbird and seamonkey could follow in the future. +# +# Leave the variable UNSET if qt5 support should not be available. +# Set the variable to "enabled" if the use flag should be enabled by default. +# Set the variable to any value if the use flag should exist but not be default-enabled. + +# use-flags common among all mozilla ebuilds +IUSE="${IUSE} dbus debug +jemalloc neon pulseaudio selinux startup-notification system-cairo + system-harfbuzz system-icu system-jpeg system-libevent system-sqlite system-libvpx" + +# some notes on deps: +# gtk:2 minimum is technically 2.10 but gio support (enabled by default) needs 2.14 +# media-libs/mesa needs to be 10.2 or above due to a bug with flash+vdpau + +RDEPEND=">=app-text/hunspell-1.2:= + dev-libs/atk + dev-libs/expat + >=x11-libs/cairo-1.10[X] + >=x11-libs/gtk+-2.18:2 + x11-libs/gdk-pixbuf + >=x11-libs/pango-1.22.0 + >=media-libs/libpng-1.6.25:0=[apng] + >=media-libs/mesa-10.2:* + media-libs/fontconfig + >=media-libs/freetype-2.4.10 + kernel_linux? ( !pulseaudio? ( media-libs/alsa-lib ) ) + pulseaudio? ( || ( media-sound/pulseaudio + >=media-sound/apulse-0.1.9 ) ) + virtual/freedesktop-icon-theme + dbus? ( >=sys-apps/dbus-0.60 + >=dev-libs/dbus-glib-0.72 ) + startup-notification? ( >=x11-libs/startup-notification-0.8 ) + >=dev-libs/glib-2.26:2 + >=sys-libs/zlib-1.2.3 + >=dev-libs/libffi-3.0.10:= + media-video/ffmpeg + x11-libs/libX11 + x11-libs/libXcomposite + x11-libs/libXdamage + x11-libs/libXext + x11-libs/libXfixes + x11-libs/libXrender + x11-libs/libXt + system-cairo? ( >=x11-libs/cairo-1.12[X,xcb(+)] >=x11-libs/pixman-0.19.2 ) + system-icu? ( >=dev-libs/icu-58.1:= ) + system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 ) + system-libevent? ( >=dev-libs/libevent-2.0:0=[threads] ) + system-sqlite? ( >=dev-db/sqlite-3.17.0:3[secure-delete,debug=] ) + system-libvpx? ( >=media-libs/libvpx-1.5.0:0=[postproc] ) + system-harfbuzz? ( >=media-libs/harfbuzz-1.3.3:0= >=media-gfx/graphite2-1.3.8 ) +" + +if [[ -n ${MOZCONFIG_OPTIONAL_GTK3} ]]; then + MOZCONFIG_OPTIONAL_GTK2ONLY= + if [[ ${MOZCONFIG_OPTIONAL_GTK3} = "enabled" ]]; then + IUSE+=" +force-gtk3" + else + IUSE+=" force-gtk3" + fi + RDEPEND+=" force-gtk3? ( >=x11-libs/gtk+-3.4.0:3 )" +elif [[ -n ${MOZCONFIG_OPTIONAL_GTK2ONLY} ]]; then + if [[ ${MOZCONFIG_OPTIONAL_GTK2ONLY} = "enabled" ]]; then + IUSE+=" +gtk2" + else + IUSE+=" gtk2" + fi + RDEPEND+=" !gtk2? ( >=x11-libs/gtk+-3.4.0:3 )" +fi +if [[ -n ${MOZCONFIG_OPTIONAL_WIFI} ]]; then + if [[ ${MOZCONFIG_OPTIONAL_WIFI} = "enabled" ]]; then + IUSE+=" +wifi" + else + IUSE+=" wifi" + fi + RDEPEND+=" + wifi? ( + kernel_linux? ( >=sys-apps/dbus-0.60 + >=dev-libs/dbus-glib-0.72 + net-misc/networkmanager ) + )" +fi + +DEPEND="app-arch/zip + app-arch/unzip + >=sys-devel/binutils-2.16.1 + sys-apps/findutils + pulseaudio? ( media-sound/pulseaudio ) + ${RDEPEND}" + +RDEPEND+=" + pulseaudio? ( || ( media-sound/pulseaudio + >=media-sound/apulse-0.1.9 ) ) + selinux? ( sec-policy/selinux-mozilla )" + +# @FUNCTION: mozconfig_config +# @DESCRIPTION: +# Set common configure options for mozilla packages. +# Call this within src_configure() phase, after mozconfig_init +# +# Example: +# +# inherit mozconfig-v6.46 +# +# src_configure() { +# mozconfig_init +# mozconfig_config +# # ... misc ebuild-unique settings via calls to +# # ... mozconfig_{annotate,use_with,use_enable} +# mozconfig_final +# } + +mozconfig_config() { + # Migrated from mozcoreconf-2 + mozconfig_annotate 'system_libs' \ + --with-system-zlib \ + --with-system-bz2 + + if has bindist ${IUSE}; then + mozconfig_use_enable !bindist official-branding + if [[ ${PN} == firefox ]] && use bindist ; then + mozconfig_annotate '' --with-branding=browser/branding/aurora + fi + fi + + # Enable position independent executables + mozconfig_annotate 'enabled by Gentoo' --enable-pie + mozconfig_use_enable debug + mozconfig_use_enable debug tests + + if ! use debug ; then + mozconfig_annotate 'disabled by Gentoo' --disable-debug-symbols + else + mozconfig_annotate 'enabled by Gentoo' --enable-debug-symbols + fi + + mozconfig_use_enable startup-notification + + if [[ -n ${MOZCONFIG_OPTIONAL_WIFI} ]] ; then + # wifi pulls in dbus so manage both here + mozconfig_use_enable wifi necko-wifi + if use kernel_linux && use wifi && ! use dbus; then + echo "Enabling dbus support due to wifi request" + mozconfig_annotate 'dbus required by necko-wifi on linux' --enable-dbus + else + mozconfig_use_enable dbus + fi + else + mozconfig_use_enable dbus + mozconfig_annotate 'disabled' --disable-necko-wifi + fi + + if [[ -n ${MOZCONFIG_OPTIONAL_JIT} ]]; then + mozconfig_use_enable jit ion + fi + + # These are enabled by default in all mozilla applications + mozconfig_annotate '' --with-system-nspr --with-nspr-prefix="${SYSROOT}${EPREFIX}"/usr + mozconfig_annotate '' --with-system-nss --with-nss-prefix="${SYSROOT}${EPREFIX}"/usr + mozconfig_annotate '' --x-includes="${SYSROOT}${EPREFIX}"/usr/include --x-libraries="${SYSROOT}${EPREFIX}"/usr/$(get_libdir) + if use system-libevent; then + mozconfig_annotate '' --with-system-libevent="${SYSROOT}${EPREFIX}"/usr + fi + mozconfig_annotate '' --prefix="${EPREFIX}"/usr + mozconfig_annotate '' --libdir="${EPREFIX}"/usr/$(get_libdir) + mozconfig_annotate 'Gentoo default' --enable-system-hunspell + mozconfig_annotate '' --disable-gnomeui + mozconfig_annotate '' --enable-gio + mozconfig_annotate '' --disable-crashreporter + mozconfig_annotate 'Gentoo default' --with-system-png + mozconfig_annotate '' --enable-system-ffi + mozconfig_annotate 'Gentoo default to honor system linker' --disable-gold + mozconfig_annotate '' --disable-gconf + mozconfig_annotate '' --with-intl-api + + # skia has no support for big-endian platforms + if [[ $(tc-endian) == "big" ]]; then + mozconfig_annotate 'big endian target' --disable-skia + else + mozconfig_annotate '' --enable-skia + fi + + # default toolkit is cairo-gtk2, optional use flags can change this + local toolkit="cairo-gtk2" + local toolkit_comment="" + if [[ -n ${MOZCONFIG_OPTIONAL_GTK3} ]]; then + if use force-gtk3; then + toolkit="cairo-gtk3" + toolkit_comment="force-gtk3 use flag" + fi + fi + if [[ -n ${MOZCONFIG_OPTIONAL_GTK2ONLY} ]]; then + if ! use gtk2 ; then + toolkit="cairo-gtk3" + else + toolkit_comment="gtk2 use flag" + fi + fi + if [[ -n ${MOZCONFIG_OPTIONAL_QT5} ]]; then + if use qt5; then + toolkit="cairo-qt" + toolkit_comment="qt5 use flag" + # need to specify these vars because the qt5 versions are not found otherwise, + # and setting --with-qtdir overrides the pkg-config include dirs + local i + for i in qmake moc rcc; do + echo "export HOST_${i^^}=\"$(qt5_get_bindir)/${i}\"" \ + >> "${S}"/.mozconfig || die + done + echo 'unset QTDIR' >> "${S}"/.mozconfig || die + mozconfig_annotate '+qt5' --disable-gio + fi + fi + mozconfig_annotate "${toolkit_comment}" --enable-default-toolkit=${toolkit} + + # Use jemalloc unless libc is not glibc >= 2.4 + # at this time the minimum glibc in the tree is 2.9 so we should be safe. + if use elibc_glibc && use jemalloc; then + # We must force-enable jemalloc 4 via .mozconfig + echo "export MOZ_JEMALLOC4=1" >> "${S}"/.mozconfig || die + mozconfig_annotate '' --enable-replace-malloc + fi + + # Instead of the standard --build= and --host=, mozilla uses --host instead + # of --build, and --target intstead of --host. + # Note, mozilla also has --build but it does not do what you think it does. + # Set both --target and --host as mozilla uses python to guess values otherwise + mozconfig_annotate '' --target="${CHOST}" + mozconfig_annotate '' --host="${CBUILD:-${CHOST}}" + + mozconfig_use_enable pulseaudio + # force the deprecated alsa sound code if pulseaudio is disabled + if use kernel_linux && ! use pulseaudio ; then + mozconfig_annotate '-pulseaudio' --enable-alsa + fi + + mozconfig_use_enable system-cairo + mozconfig_use_enable system-sqlite + mozconfig_use_with system-jpeg + mozconfig_use_with system-icu + mozconfig_use_with system-libvpx + mozconfig_use_with system-harfbuzz + mozconfig_use_with system-harfbuzz system-graphite2 + + # Modifications to better support ARM, bug 553364 + if use neon ; then + mozconfig_annotate '' --with-fpu=neon + mozconfig_annotate '' --with-thumb=yes + mozconfig_annotate '' --with-thumb-interwork=no + fi + if [[ ${CHOST} == armv* ]] ; then + mozconfig_annotate '' --with-float-abi=hard + if ! use system-libvpx ; then + sed -i -e "s|softfp|hard|" \ + "${S}"/media/libvpx/moz.build + fi + fi +} + +# @FUNCTION: mozconfig_install_prefs +# @DESCRIPTION: +# Set preferences into the prefs.js file specified as a parameter to +# the function. This sets both some common prefs to all mozilla +# packages, and any prefs that may relate to the use flags administered +# by mozconfig_config(). +# +# Call this within src_install() phase, after copying the template +# prefs file (if any) from ${FILESDIR} +# +# Example: +# +# inherit mozconfig-v6.46 +# +# src_install() { +# cp "${FILESDIR}"/gentoo-default-prefs.js \ +# "${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" \ +# || die +# +# mozconfig_install_prefs \ +# "${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" +# +# ... +# } + +mozconfig_install_prefs() { + local prefs_file="${1}" + + einfo "Adding prefs from mozconfig to ${prefs_file}" + + # set dictionary path, to use system hunspell + echo "pref(\"spellchecker.dictionary_path\", \"${EPREFIX}/usr/share/myspell\");" \ + >>"${prefs_file}" || die + + # force the graphite pref if system-harfbuzz is enabled, since the pref cant disable it + if use system-harfbuzz ; then + echo "sticky_pref(\"gfx.font_rendering.graphite.enabled\",true);" \ + >>"${prefs_file}" || die + fi + + # force cairo as the canvas renderer on platforms without skia support + if [[ $(tc-endian) == "big" ]] ; then + echo "sticky_pref(\"gfx.canvas.azure.backends\",\"cairo\");" \ + >>"${prefs_file}" || die + echo "sticky_pref(\"gfx.content.azure.backends\",\"cairo\");" \ + >>"${prefs_file}" || die + fi +} diff --git a/eclass/mozcoreconf-v5.eclass b/eclass/mozcoreconf-v5.eclass new file mode 100644 index 0000000..ce0e2a4 --- /dev/null +++ b/eclass/mozcoreconf-v5.eclass @@ -0,0 +1,275 @@ +# This eclass is a modified version of the work originally distributed with +# Gentoo GNU/Linux, covered by the following copyright and permission notice: +# +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 +# +# The modifications are: +# +# * Avoid python eclasses which no longer support python2 (2022-12) +# +# @DEAD +# @ECLASS: mozcoreconf-v5.eclass +# @MAINTAINER: +# Mozilla team +# @BLURB: core options and configuration functions for mozilla +# @DESCRIPTION: +# +# inherit mozconfig-v6.* or above for mozilla configuration support + +# @ECLASS_VARIABLE: MOZILLA_FIVE_HOME +# @DESCRIPTION: +# This is an eclass-generated variable that defines the rpath that the mozilla +# product will be installed in. Read-only + +if [[ ! ${_MOZCORECONF} ]]; then + +inherit multilib toolchain-funcs flag-o-matic versionator + +IUSE="${IUSE} custom-cflags custom-optimization" + +DEPEND="virtual/pkgconfig + dev-lang/python:2.7[ncurses,sqlite,ssl,threads(+)]" + +# @FUNCTION: mozconfig_annotate +# @DESCRIPTION: +# add an annotated line to .mozconfig +# +# Example: +# mozconfig_annotate "building on ultrasparc" --enable-js-ultrasparc +# => ac_add_options --enable-js-ultrasparc # building on ultrasparc +mozconfig_annotate() { + declare reason=$1 x ; shift + [[ $# -gt 0 ]] || die "mozconfig_annotate missing flags for ${reason}\!" + for x in ${*}; do + echo "ac_add_options ${x} # ${reason}" >>.mozconfig + done +} + +# @FUNCTION: mozconfig_use_enable +# @DESCRIPTION: +# add a line to .mozconfig based on a USE-flag +# +# Example: +# mozconfig_use_enable truetype freetype2 +# => ac_add_options --enable-freetype2 # +truetype +mozconfig_use_enable() { + declare flag=$(use_enable "$@") + mozconfig_annotate "$(use $1 && echo +$1 || echo -$1)" "${flag}" +} + +# @FUNCTION: mozconfig_use_with +# @DESCRIPTION: +# add a line to .mozconfig based on a USE-flag +# +# Example: +# mozconfig_use_with kerberos gss-api /usr/$(get_libdir) +# => ac_add_options --with-gss-api=/usr/lib # +kerberos +mozconfig_use_with() { + declare flag=$(use_with "$@") + mozconfig_annotate "$(use $1 && echo +$1 || echo -$1)" "${flag}" +} + +# @FUNCTION: mozconfig_use_extension +# @DESCRIPTION: +# enable or disable an extension based on a USE-flag +# +# Example: +# mozconfig_use_extension gnome gnomevfs +# => ac_add_options --enable-extensions=gnomevfs +mozconfig_use_extension() { + declare minus=$(use $1 || echo -) + mozconfig_annotate "${minus:-+}$1" --enable-extensions=${minus}${2} +} + +moz_pkgsetup() { + # Ensure we use C locale when building + export LANG="C" + export LC_ALL="C" + export LC_MESSAGES="C" + export LC_CTYPE="C" + + # Ensure we use correct toolchain + export HOST_CC="$(tc-getBUILD_CC)" + export HOST_CXX="$(tc-getBUILD_CXX)" + tc-export CC CXX LD PKG_CONFIG + + # Ensure that we have a sane build enviroment + export MOZILLA_CLIENT=1 + export BUILD_OPT=1 + export NO_STATIC_LIB=1 + export USE_PTHREADS=1 + export ALDFLAGS=${LDFLAGS} + # ensure MOZCONFIG is not defined + unset MOZCONFIG + + # set MOZILLA_FIVE_HOME + export MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}" + + # nested configure scripts in mozilla products generate unrecognized options + # false positives when toplevel configure passes downwards. + export QA_CONFIGURE_OPTIONS=".*" + + export PYTHON=python2.7 +} + +# @FUNCTION: mozconfig_init +# @DESCRIPTION: +# Initialize mozilla configuration and populate with core settings. +# This should be called in src_configure before any other mozconfig_* functions. +mozconfig_init() { + declare enable_optimize pango_version myext x + declare XUL=$([[ ${PN} == xulrunner ]] && echo true || echo false) + declare FF=$([[ ${PN} == firefox ]] && echo true || echo false) + declare SM=$([[ ${PN} == seamonkey ]] && echo true || echo false) + declare TB=$([[ ${PN} == thunderbird ]] && echo true || echo false) + declare WF=$([[ ${PN} == waterfox* ]] && echo true || echo false) + + #################################### + # + # Setup the initial .mozconfig + # See http://www.mozilla.org/build/configure-build.html + # + #################################### + + case ${PN} in + *xulrunner) + cp xulrunner/config/mozconfig .mozconfig \ + || die "cp xulrunner/config/mozconfig failed" ;; + *firefox|waterfox*) + cp browser/config/mozconfig .mozconfig \ + || die "cp browser/config/mozconfig failed" ;; + seamonkey) + # Must create the initial mozconfig to enable application + : >.mozconfig || die "initial mozconfig creation failed" + mozconfig_annotate "" --enable-application=suite ;; + *thunderbird) + # Must create the initial mozconfig to enable application + : >.mozconfig || die "initial mozconfig creation failed" + mozconfig_annotate "" --enable-application=mail ;; + esac + + #################################### + # + # CFLAGS setup and ARCH support + # + #################################### + + # Set optimization level + mozconfig_annotate "Workaround known breakage" --enable-optimize=-O2 + + if [[ ${ARCH} == hppa ]]; then + mozconfig_annotate "more than -O0 causes a segfault on hppa" --enable-optimize=-O0 + elif [[ ${ARCH} == x86 ]]; then + mozconfig_annotate "less then -O2 causes a segfault on x86" --enable-optimize=-O2 + elif use custom-optimization || [[ ${ARCH} =~ (alpha|ia64) ]]; then + # Set optimization level based on CFLAGS + if is-flag -O0; then + mozconfig_annotate "from CFLAGS" --enable-optimize=-O0 + elif [[ ${ARCH} == ppc ]] && has_version '>=sys-libs/glibc-2.8'; then + mozconfig_annotate "more than -O1 segfaults on ppc with glibc-2.8" --enable-optimize=-O1 + elif is-flag -O4; then + mozconfig_annotate "from CFLAGS" --enable-optimize=-O4 + elif is-flag -O3; then + mozconfig_annotate "from CFLAGS" --enable-optimize=-O3 + elif is-flag -O1; then + mozconfig_annotate "from CFLAGS" --enable-optimize=-O1 + elif is-flag -Os; then + mozconfig_annotate "from CFLAGS" --enable-optimize=-Os + else + mozconfig_annotate "Gentoo's default optimization" --enable-optimize=-O2 + fi + else + # Enable Mozilla's default + mozconfig_annotate "mozilla default" --enable-optimize + fi + + # Strip optimization so it does not end up in compile string + filter-flags '-O*' + + # Strip over-aggressive CFLAGS + use custom-cflags || strip-flags + + # Additional ARCH support + case "${ARCH}" in + arm) + # Reduce the memory requirements for linking + append-ldflags -Wl,--no-keep-memory -Wl,--reduce-memory-overheads + ;; + alpha) + # Historically we have needed to add -fPIC manually for 64-bit. + # Additionally, alpha should *always* build with -mieee for correct math + # operation + append-flags -fPIC -mieee + ;; + ia64) + # Historically we have needed to add this manually for 64-bit + append-flags -fPIC + ;; + ppc64) + append-flags -fPIC -mminimal-toc + # Reduce the memory requirements for linking + append-ldflags -Wl,--no-keep-memory -Wl,--reduce-memory-overheads + ;; + esac + + # We need to append flags for >= gcc-6 support + append-cxxflags -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2 + + # Use the MOZILLA_FIVE_HOME for the rpath + append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags + # Set MOZILLA_FIVE_HOME in mozconfig + mozconfig_annotate '' --with-default-mozilla-five-home=${MOZILLA_FIVE_HOME} + + #################################### + # + # mozconfig setup + # + #################################### + + mozconfig_annotate disable_update_strip \ + --disable-updater \ + --disable-strip \ + --disable-install-strip + + # jemalloc won't build with older glibc + ! has_version ">=sys-libs/glibc-2.4" && mozconfig_annotate "we have old glibc" --disable-jemalloc +} + +# @FUNCTION: mozconfig_final +# @DESCRIPTION: +# Apply EXTRA_ECONF values to .mozconfig +# Display a table describing all configuration options paired +# with reasons, then clean up extensions list. +# This should be called in src_configure at the end of all other mozconfig_* functions. +mozconfig_final() { + declare ac opt hash reason + + # Apply EXTRA_ECONF entries to .mozconfig + if [[ -n ${EXTRA_ECONF} ]]; then + IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!} + for opt in "${ac[@]}"; do + mozconfig_annotate "EXTRA_ECONF" --${opt#--} + done + fi + + echo + echo "==========================================================" + echo "Building ${PF} with the following configuration" + grep ^ac_add_options .mozconfig | while read ac opt hash reason; do + [[ -z ${hash} || ${hash} == \# ]] \ + || die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}" + printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}" + done + echo "==========================================================" + echo + + # Resolve multiple --enable-extensions down to one + declare exts=$(sed -n 's/^ac_add_options --enable-extensions=\([^ ]*\).*/\1/p' \ + .mozconfig | xargs) + sed -i '/^ac_add_options --enable-extensions/d' .mozconfig + echo "ac_add_options --enable-extensions=${exts// /,}" >> .mozconfig +} + +_MOZCORECONF=1 +fi diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest new file mode 100644 index 0000000..d961a05 --- /dev/null +++ b/www-client/firefox/Manifest @@ -0,0 +1,104 @@ +AUX firefox-52.9.0-blessings-TERM.patch 2276 BLAKE2B 2413368995dd8421a634e2a50f4bd9ee01062043a18bef4cd07645ecca05459891ff5aaa294f3abbc85e7ed9515e8936ede8b7faacfb19fadd81ec98ff8080b0 SHA512 08f8d2ba3258b3ef6bda1d2f8ea429e579e1f616dd940f6dc25ef231199d9155b22631f4366908c77ec5b9c4ce63310c9b9e075a6a7a7503b6423e13082f2b91 +AUX firefox-52.9.0-fix-idb-name-conflict.patch 10116 BLAKE2B 0f285f2918b1c3f50c5b31cfb6527b8cdf4593f4a21f09a6ee200f7c2c8b0840b99eac58c6a0dc24beb873c7cd1b451ce3cc9d39f8e336d2c4094d70766bb9e9 SHA512 848aef9eb4eb5e677e69522be3051afb1bfa508f098f8b06eec9f224356c2480f10a36e053c8555d74454ad40ecca13708c2abb140ad857d9bd5663a0b469ed3 +AUX firefox-52.9.0-fix-missing-includes.patch 1238 BLAKE2B 7046a0c6e5846732ef7ab3714c2e98bf6b77d0a711a5ae616cadb3dc65f2c82cbf2efdc4af932d0e2b1eb1497b6124b9b453d143f52d2e07d6531535738d5279 SHA512 ef6aa3c6d50ced3cde973429b3ce9a227e608463cdb8130cb3a4329ce01694765782c4cfa4a14284e29d98262bdf33cc5b7bcee7a925135d580c12139e74860f +AUX firefox-52.9.0-fix-thebes-templates.patch 5806 BLAKE2B 568d3bd61f43daa84957c719f38bad93c8cbbdb863156c9f350d96a2af020ff3c1f32e3dd211b2636f822bb34116c98c82c101e25d3d0b3c147b07ee77279467 SHA512 5d5f28fbd3cd6818aa11bf8dd2d14e6a6887f2b44d04a5e824696151e176273a7a2a384772ba748761ff2c2c9c6e1f6b43d6355e64a293cb3b76715313194798 +AUX firefox-52.9.0-glibc-2.30.patch 492 BLAKE2B a73d3da636cb65c882ad4f06a8aae26df32ce77aea74b8d9477eb7f6aa9eb1046ad9acf47f4a70dde55c9c98da6506846f83e75a4cf5f09d63d56a883effa8f6 SHA512 d028c35d3e33f2cfc1f3e806d16975810be5a5fad4b4e9c68a02d0159aed9258b5540728bbcadd31d7959691cfed5940e90b47a9733d1b1a6e1b944216e38174 +AUX firefox-52.9.0-glibc-2.36.patch 2475 BLAKE2B 93c6eeab26f5fcdc5a9a5acf6a78834b35839dd7511499edea0fbb9ea70b7c3a95982b4488619f6c132ec03f63f97c7b4c7c22b02d77d010bd469f180f60175c SHA512 3efa72a036a49f48461f6b36e39a71c79c03e7a41e55cc9195175886fc299e6bcf5966c98b52200aa0b84c3eadbe273a5db0dc88087165dfbf43ec3cf479c5bd +AUX firefox-52.9.0-less-werror.patch 395 BLAKE2B 32310b52988d6b54a4acfdba5fbb0b2baff5a5b1383b5e1336dc55c3c11c9f8d444bbdb68ed280fdece828c0d4b6969e86a60a6bd6c0bcc50c4530f6e661b4a2 SHA512 caacf8522ce05fa1fe1461719cf8381a2dac4f928c0077f7862c3b41103f9bfcc7710cd053e9d1f68c6bfd86406c68a960538a9ad4e6623a3edbb7480f01700f +AUX gentoo-default-prefs.js-1 821 BLAKE2B 2af9a9e9f3a71fae918a4098397e931c02df5a8021d0bc87ebc4981076674aba99d88c5b8acf2380c915e92ad07a7636891ea8a07cfc850e9c4d15e58d0cd276 SHA512 b63542c51edfe0158ce487b317ea6d36ffc17cf8457534adb6aa3f613d9a027f4285c9dcf76eb1b96de6bbc10ba09948fa6c081e00cfb25ca47450cbc32923f2 +AUX gentoo-hwaccel-prefs.js-1 100 BLAKE2B 08be790b58524077a5681cc06e10890b72dc6e8155c9e03e6ef9165035087d4b8cbcac4a6b8997f61db3721895c9247a12171eec7d082fa15e1d5312bf51fbee SHA512 cf5385c793056e66b8853fd641dce2e7804d6878675afd24485487f2201801e1bdd5d27c15cb0d483eb34bfb75e7a21c01f1bbf701cb1c2dfa48f8f6422ed42c +AUX icon/firefox.desktop 277 BLAKE2B 944a7b4706ba5f6b93a1369416adc31203dfaf0d12291a035ce05830f2c79bd14d1f7d5324c16d3e5be21fdda2a9237223901030a974f3ff778b1def7f8bb3e3 SHA512 99b57d36601bba420bb2e6647e0fa4baa1c31f15bf7c602ac43a347d7fe78f4350b3fb10af3a709a5aac02a4c4f283dcfacd780bacb43e7e8ed46b83b97d6f4d +DIST firefox-52.5-patches-02.tar.xz 15084 BLAKE2B 538dd61dbb7b290add4782b323a62f9ab4dbc57326a9a085710d207752118c504eb030a8741c1eed2e281c8d18e5453210b1905d71439250caa588137bbc37d0 SHA512 b80f9acaf49226cd5c2864714826c5b0e7e918e94c31ec81521b90c47edbb88ea85faa34fc22791efefbcd3867ddc413c563de58ca0f8ce21e10a3858899efce +DIST firefox-52.9.0esr-ach.xpi 420286 BLAKE2B 41643f6cdc43722dc2a61249720902a503c5f547979e80ace08bef097e2efef7b67d6d44b04a66965ee80722194b2183feed15d3b2f13d5b6ccdc993415eb9e3 SHA512 8a28262b9bb44592801e063348401924b2dc8ab1b4e042d11f560d892e276b7d14279a1a2ab3f6ad27068113969ca59377493839f1efbdd61a77f5246815989c +DIST firefox-52.9.0esr-af.xpi 429469 BLAKE2B 224617fcee13cbc62863dca9ecde4f45f1dc1a83535780a0f3b13f74ddd492ffd46b544ba93cb0ba505e99afc7327a5398c7bce735ba2d24612ea5ea80717221 SHA512 a723edc72c1e373e250fb878a73024054c670f0fd3ceadbd4a1306981f8cb560ec8f078a017cafb84dc49a11bb0d17046b102a6f67dba65b67d64946d909b189 +DIST firefox-52.9.0esr-an.xpi 437887 BLAKE2B 5be731c8d5f044c773ae34ac27009dae5f8bf9c87fb0c6a50d64e752810fd497533b74a5d409b98f53fbfab58b037904c418f5fe45da70c9da79ee1be3d6293f SHA512 07cbdfc2296a96b9fa9d286d803b1acabc14bffedefaf009ffb324909e4c4a923ca4a023cab92562821c1a5d30abd23debbc825ecd1121476924216c3668bed8 +DIST firefox-52.9.0esr-ar.xpi 466028 BLAKE2B e431e58c94de1c00d019534c4025977861864d1eaa32f5acc51052252ef7d20818464fc4c92b39ca955eff063b4b6df50cc3ccc0fb2322412d4d711dddc9def8 SHA512 037336c659890256fecc4bf0028c14a73a6e52fd0524da29bf4d58efc61a89a66fcb8a32f4a31e789e0ec7a7a376ddc232f9e0f850fc485e7e908b2caab00b96 +DIST firefox-52.9.0esr-as.xpi 479635 BLAKE2B 7ba88cc70b21a90dfce4ffee844434ea4ee756cf8d0d425f82e71009d325d74b8728fb28a7b8c1ab0826accf71144b126ee6f91d84821dd3ab037864aaf15303 SHA512 62038ed87f45c865a3fe2d10487ba69dc48cdb6f166e040cb2942f02afb9222bf7ff325bb47d2c0dd3582e752fe20e89440fd488028dd3f1b9cba5f696107a6a +DIST firefox-52.9.0esr-ast.xpi 432775 BLAKE2B 391aeaba518ac560d789fc7b6771b08c7f2437075767231b13e5575cb552d5fc388329ea794843a43dd4dd6ba68831fa28330a6120eafda60b215899543589c4 SHA512 97582f59348f18ec858bf09d8e496632ed618088d88a030a4d2801627f6c54c70e67595008483065e1df33d02661410fa49c17fe5a6625c7fb97140bb1749ea1 +DIST firefox-52.9.0esr-az.xpi 454923 BLAKE2B d6172b0ec8e90f843617f1b5e749b722dad8adfda51d5a0c8a464238202884f11f0583a19e4bbc005eea0d5bb94a0637d9be34693ccd78c473ddfb70bb52ffd4 SHA512 beb7758cc3d369b14dfe606144e1c6e64c3a6f6178f69ee91a64e5a3fb9df827e103afc6d8490a3a1359efd766d1c73bbfe2d00814c66f9d95d13c3be9a9d81f +DIST firefox-52.9.0esr-bg.xpi 487891 BLAKE2B a1acf93b23a68374f1af0e4cb017ee3da8ab33c54891b1aad62e6e5ed7ce5616f646df988a82fe58fb92b2d844de0cf5f8bc882a46166695fda1980b4d009d1e SHA512 cf416bfebeb56c32ac0a985cd3e3c532f7f6900833dd15c3d1ddb915189a18a382376b8b0909c1d4ba4beedd4dbbe652ebaa29fa0f1a480736effd1b2c6992a5 +DIST firefox-52.9.0esr-bn-BD.xpi 504634 BLAKE2B 17b4b7c8befe136b99ce869223dbf7e7172c878e07a0705726a04b41539596639c5c8299b01e50dba19b4d88a7da59ea9dd311abe43968f517b9181e991ecd5e SHA512 092e92a29700c9d5fe344aa027a5a01a6ffbae4aca4e15e852c5fa032eea81d7744f8901712efcca5819813d3d37877d104c3d96abf9c57732d3fe3a13a1bfe9 +DIST firefox-52.9.0esr-bn-IN.xpi 502114 BLAKE2B 26b90f95451b92d5c112e70687a99b9a24e6f3f948fac9fbd46aefb11d19e02a498111eec9673e3289a56995a92df0d86f7401e744b5e2ddf9e586565d0b79f8 SHA512 767016400fa3f582fe11e120250f158347270d66ba0b297961a3f362f09bbcaa8ad588c0b5ec25682e3b87bebb0cd68279d9a52e6ba91cf9f33264b7a63b5cfd +DIST firefox-52.9.0esr-br.xpi 428216 BLAKE2B 173495fad24e1bd24b2f8fd47e05256df47866bb0af3d1f254dd747cd753ef2d6555e83a1733a8bfc56b0c0b2ff83e5c8dca0ff0360c10354ff82def4c0233ef SHA512 78bc39ae71ce041d6cf8c202f6f0f9370711113363b6b01c14157b0762455c9f2da86539c77574d47402d3765bd05c6ab6798f9ffdd8b512b1c50fab768ce86b +DIST firefox-52.9.0esr-bs.xpi 434428 BLAKE2B 9f29aad62bab6480653a891249d2e922ee0828d6660e511f40ef064affe73486bd4e242831497f437477246cf8cc90e0517cfcf3575df8530a66eea6ea67458c SHA512 5d1377013e08e066b683d6b25677eb9fef4aa10a8fe3999b2e332c7f9971dcd571787e0268baf65a9288ce6a4bfdb6cb763692f0334ef76a7c7abff0a9467e28 +DIST firefox-52.9.0esr-ca.xpi 443304 BLAKE2B 9d9496eed906a40ca8c69e380c7849d5d927af1ec1cf754d6ee3da79d6de9c99551269a7b4593ec3a29594724c2c232b67441d3423bc54fe96d52862f1e85f4e SHA512 dbb2b09fbffbe3b69916ec36658764820e69125f51fae7be490e1d903444db7fdfea05736c4ab791b6cda3070aba592a736c787bb7fe283820fc91009ec10e4b +DIST firefox-52.9.0esr-cak.xpi 451911 BLAKE2B 4dbb016fe0f5dc5634d94f564514672583a324d2bf48f067aa2c911b0b6dd4239e9fea9405d4f4e34ccbaa48cd80a04218d229cb54a41ceebaccb76894c9aa07 SHA512 266bf767a4cc8ee7611b5e92903eecb8ff0f89b13cabb5bd2cb547a6345e20a52f1bcb59ed34f0b8f991c46d03062b0bb0a6edcf4732f7ca800f79cb1675626f +DIST firefox-52.9.0esr-cs.xpi 444075 BLAKE2B a39d90b7cdcc5bcc45e8bfbe971bd80036f1b01154dd65d14d2d68f2ed0468938d2a58e9db11841fdfc04c63496ba37fefef76da2b9c0b9a102a20bff38a1842 SHA512 8e3ca731a99c6aa774564aa8aba0de8ce0cd2c5c81d9f1bfd31a78546f03d2ba07999d296cd12bf02ebdff6e4874d7a82e58b412d21f6862dcfea296e90ef3fc +DIST firefox-52.9.0esr-cy.xpi 429300 BLAKE2B dba43dd71e970295b810bd6d27a7ead237e3ac67b83c5700b7cc26085b58c6ec3130f63146f72e3c7e688606905ed58ad4712d3ea535b96a91be47337ad36f81 SHA512 dc643461bf3ea0b7ef480bdef805522d0eac83ca0e41e9fa211282bc7e7b8110a5e06c76789e5d3f9f55da2699769c8622d06b351ad86569a2852d06ca4ac0cf +DIST firefox-52.9.0esr-da.xpi 424394 BLAKE2B 64018098d96ffda08caa6b260bfd6820844d94fb8d2bf02677812d10934068ed6ac7439bed93c559b16ecf731ef6f3744718bb98f390485015491a2667260c54 SHA512 80dc86a3dfa15c5cb4dfd349411a226267f12ecdb548e27f436750feb126bfed06d60389da3184432617f02853d62e8a2d98bcfb19c154f67144d42604435023 +DIST firefox-52.9.0esr-de.xpi 435228 BLAKE2B 7daaf9b278dd4cf48c5183dd92978f01719d06cb88a6b15c3e8059c423be9ef2a17760934e2746a3dff5e3211fe90109c53b60cb5a6d2c53ced87a84d1a965a2 SHA512 827fe20427fa3f9b81e1c256418c27ae917f964960ae3baa38ac3754530b682fbd6b54cfb8eaa943992180b16d72a474ad84fa7b02e1f809cf1c973a09c3840a +DIST firefox-52.9.0esr-dsb.xpi 452168 BLAKE2B 07a033dc80b73446d2342eb1a549a9b96a7ac5ab58ae53d2544a6c60f05767c350958d0c188b8e768b29880fb02b561ffa925bc80d480f5c18028d353782363c SHA512 494cfefce19ad75f254a4fda494f8a215773bff610ee88bd241ba034353ee2e4b7327791eb8c658a30b249e62e2f5430cff894c3e8e9064fe9f567e5c5e2669e +DIST firefox-52.9.0esr-el.xpi 509237 BLAKE2B 9391cd81457b15d5aa0bd62891e4e7e480a090e61e3cccdc789d8ac055a26071ba58963daeb66ffa8a2476f1d61ef55cd22ac196eb99dbca0b09a8d9944e5462 SHA512 9f4fc865795804b67d89542b28fe82c18a7b9ccdd3683928f876e24442336c43100a7881e4127439a1bf97dab90d919dd88e464410d321fe10a2cde116e8c38a +DIST firefox-52.9.0esr-en-GB.xpi 412038 BLAKE2B c5001c4f3a65d2427c8eab998852e7ef33f62735f6e423521e8bb281ff85bf8dadda7888aa3555b9e40a6d8ebb438345a21375fc1df4c54913f43e46f26993c2 SHA512 c16fb52dbb09c8e6ffdcb19c3e4ceca780ec69d521f5f422da3b0c58bce8da15d34c5c85dbf3f004865040f03de0c8c0b8ee0c4b21dfbc2be00dca04fc82358e +DIST firefox-52.9.0esr-en-ZA.xpi 412212 BLAKE2B 893c371bd5f8a8a84f3161395827d3b1e5dbdf1c31319f5e10f20d860324fce344795abe175eec8aef44c60f9c0ade56ee301d7810495dbcfb38370cbb8dc3a8 SHA512 12d2e7608c8a5964bdd237882cccb6b1e824918366ab7788a80b741046e8cb14cd5fa1c1c7d9d3b0641a03aab16e3ae5ed1af64d79cf384884bff26b7cad4395 +DIST firefox-52.9.0esr-eo.xpi 430117 BLAKE2B e707d92b1b02f42aa936ccddc3a613020f4ba73083e5f095670dc3e41628bdc2c530b8f83695a6bda92765a934f7e8ed823e0e1b040bba4a4af69de397e50d02 SHA512 a48039bc9e060fb6b7939effc5d0c7e223dcd47080d01fcbd8b4f1fca90621024dae408cc052b166f085e694d00ffc40d48c6a434006dfde088e75e4b509ec25 +DIST firefox-52.9.0esr-es-AR.xpi 438659 BLAKE2B de1cbb21cbbc4da5b608fd51ea4d3b21eef83ead67200e21a71887456b9837f641dd42fde33ffec40d1d3052950f70279af1a80a02eaa7c842957d3b8085ef61 SHA512 fb3d70ea97af2cfa3b0023473be9e6fb474e15c0622b9c247961222424e563027ff57a451e3dbb32b73d2fde06f6f857aca0d367ee38b8ed1d777ec1f2b21378 +DIST firefox-52.9.0esr-es-CL.xpi 438407 BLAKE2B 5bf5c07b5715762a81fd7b35338a3d4bf8d384de3df42e76940e386ab83c207ff7d9a11b7211e4bb3925e0e4f47a8ee8ccd82edb27f9fb9f2d7ec277ca9ab9e3 SHA512 a08d2de92afdcbd2ca238f70d425887154caf7fdc7df5df1c0475b21d4e40c2ae00192d6985986a8a30f81d29538832ae573da06c5b924723a19894a9f747702 +DIST firefox-52.9.0esr-es-ES.xpi 337614 BLAKE2B 3df8f326ebe81ea688b3b1c7ad2351f6d3aa3ddd954f923f5551a02fdcb3c1dd5dcc170140f0a202ea9ee102a3adba97331751bfa1d293789ae209a0dcaf871a SHA512 e4e8d5c434313416b8f07ce656a0d73de53e65412e99c29a41ccc3436d76eb3584df79351e56a6334ec2e46dff3c8c0c486b2a1be08b88ff3880d04502123ca8 +DIST firefox-52.9.0esr-es-MX.xpi 441127 BLAKE2B 97563eafb96234cd7f03e2a9c5092879812d0056037004ca023fd494d7163ad75842c1613ccab792a415aaba3eec786fd87b0ce5b84c9de667b03717574784ab SHA512 47cc9989fcdd99960befc310c259b84695a298b4472ea99a4f42a3c4b0024e6690b0957ef2588fe66a6cca2ec2a819df2264a6943da2caa1a293c1cd33a51965 +DIST firefox-52.9.0esr-et.xpi 425113 BLAKE2B 493abaf01932eb9e956cc805ea83036590186b8a3a40380d9b16119d8608ad034d5a0d332174b1de62ce365d443f3b9a70f2edfb7aa99fee0df4495123300348 SHA512 c8c26d1f60fa5d40bd34cb3c7d1f0e97f1a49f27ac43d7219bef2e8bf496cb8b358df30749118c21449393f9a5b1a9d2cbdda893fc90e6d4351efb648b86e122 +DIST firefox-52.9.0esr-eu.xpi 431124 BLAKE2B ed8ec8c178ea21befe2826dc08622e0d59f288f5f3ab23eb1de2ffa0caec2654800e4298ce5179e2366f46e11b2a35721e9ab3c2c783a9dec4e7b546225e0758 SHA512 4e5368994ed64f06fee4b5e7da0aea6f0b2f275b8d8a3d64ca0f09031b14efcf9198f62dfc7fccb273fc0028a963d9501e174224019780814fdd151e66261c64 +DIST firefox-52.9.0esr-fa.xpi 483990 BLAKE2B 4e94c51a04212f482dba4c1cdb20d5c36bc38da422d2038a1f3f03e04316a7f6bdffc11b26a1577021b396ee65cad60911694caa8e65d5bfc7501da2f38b2a73 SHA512 1ca907bb17f608d2225ea0749a25dfee5c76b7231fd95c21cc14e84db2c3ab09a55a2615560c51e88b47071ce1ada31ae8d23c92ed6246bbabb3109f536a5ac5 +DIST firefox-52.9.0esr-ff.xpi 433662 BLAKE2B b8a851374299b440ffed1b7ead4dbc6771eee3aee006802edaf3845566e53879547d244e1c84179ebeed8d6c66b0cc19bc8916bd6257ccf003ef01a2d417b49f SHA512 b537fc8239672e2d0ecb7439782052e196c41ba450abc05e5d2286711243d8dbabea81f376b85be904f9f77c3d1a1f5fb91b9eb2701e9af377d587d0868356e1 +DIST firefox-52.9.0esr-fi.xpi 422807 BLAKE2B cbaa72baf469b30f2d7d95b27bbf7f388e0555e45468a23f6b2b6b0305904c8bef8538c505202c0cf87099b15dc32b8cd85a464fc6e84b79e68eeea03bea1747 SHA512 3b86434f57fe6f5ce481f8e36187d6eafad0d467039eb62ca4e002634f911cfc9876c182557f39217c8bf80b0f14d0bbc6b654fdc43d0f9222aa980e8202482a +DIST firefox-52.9.0esr-fr.xpi 442944 BLAKE2B 8affb0817ac4108ae5f8102d7b03a6d097f0b7aad9435d39649c75e2efd20c617d1939594849b40c4af563b81c07dea8a330eb6219b0177e37298adfc3d7b535 SHA512 dc23b244ea163571beb8aa2a89f8f3fa63cd7afe63b2eb18e215133c2adb4aaeee5b262e08d5b64877a3374d53ab962baa1e85dff178680122f0560e6f788cea +DIST firefox-52.9.0esr-fy-NL.xpi 437699 BLAKE2B d31af005d37ce674e8397c8235cdc8718c8277708d788c342e53701a77589b5379a5868b67f3d8f68343bdd0029b3666622cda505e3b71b0488595724ebb921d SHA512 5d7a1b9ee9c95c785b73a618087bd3e9dda30dcd1396a3d107f0beb43caa67d75dc0def13f87177ff9a7a4f8d5c2b99b18834ddedf89e1d5013ae3ba33b219dc +DIST firefox-52.9.0esr-ga-IE.xpi 450875 BLAKE2B d80b05ccf9935d634ca6562f4785493ba392f2cee27b0d841b80317b67782e3644a76e16d5c77e132a1c551363827e03e5321426cbd77c6f02acc5b183c269f8 SHA512 2db28cc2b5223c3d8b48eb58049634ef1e3a1a954bfd77a31e3fa12fb28535ab65605c18b6672e3b5805afc12a3739b1e7a9a5563cdc3267214fcdd25916dc7e +DIST firefox-52.9.0esr-gd.xpi 439988 BLAKE2B f3e10713438a46a97281c56dc4fd58173684c7a38453bf88914b908dddd282f220bab86b14d5b164a795b301783fb5cf24250560c080ae8fd31e3d1f7f06794b SHA512 aef56c42cdd5a82349f9ded656a4c11a941ea3279fe0d2ee7a5229d33c67bc8b9ead560a4427c372e62385834b1b8ef1bcda2d50c92e94213a1f5135704d1f6b +DIST firefox-52.9.0esr-gl.xpi 440039 BLAKE2B 619cd93b30e041a6dbacd7357e7f24be16d14435e6c834ccf4f10c326440bc603e2de2e13ff66a2b000093769ae375a3879798262bc4cd72b69d449c010e926c SHA512 7972dda939fa001100cb212adaf946dbbf7b03e54216f67dc45885ceb764d9b8a5e3b819360c55b59cd7c1aa6168c945186d39be8b5280b6c3ed50c816353835 +DIST firefox-52.9.0esr-gn.xpi 448957 BLAKE2B 11b41c30a8cdae5a10047c7aff568844a74462359cf9853e7b20d7e4c21aa1c39c226bddc8b15c5c7a445556faccc1982d524ca39287a4f9455756065e58b2f4 SHA512 211b1a2f31fdbec47b0e77023671b080f55da7b19699fb4e32e7004e0813bd20aa6cbbfe8a1abe5d47ab0c93d3b5a0bbce75db1714b0a217f2081288e6bd0d32 +DIST firefox-52.9.0esr-gu-IN.xpi 482104 BLAKE2B 3c14cf446fa5d2c1c8ee4c2b4db8806396339b571ce9e6e1d4b7db25ea8b567d7d22dea6b19269e152d55cd25dde715acfc9ee4ac7714c74ac0592f77256e97e SHA512 d86e9a8b606ded3fb76b233b1513cd38e99be8bc882e8b2b8c5df7a332fcb4fb03dfaa286e52387e93ad744fe94a30cac41e80b42ed63b5b4744049349b4a390 +DIST firefox-52.9.0esr-he.xpi 447928 BLAKE2B f4978a409669d8d99f46ce7479a8e9f44b289d3094277f612065a95b867a68fe4a443dbaedb50593f420abb6f3d6767a29b0eb140cad60d11b39a4fa8d123a5c SHA512 f628411851367bc7dcc417cddba235a05e4f12dece9684f241a35d0c9f9b1c8841f75cc9c52f1f25759f45f0e894f6d43e161381ac4ce3ebd71f0c07c71f115c +DIST firefox-52.9.0esr-hi-IN.xpi 499257 BLAKE2B 3f3869f5265ec60c0a53ea11c61fa01508bf92817e97bc8a581f55c3b2bf0967ea767da48d644e246c93bda74221af6fe34fc6e1d44596795b3df17897514b0b SHA512 cbac7d87136df32d148682e1d82d8b0fd3c35720bdcc0b81be64ebd77a3ee1dc7e97bbdbb21d5afb3772eedd9d9202e17d915deca07463fcc1dc123a0ca7391a +DIST firefox-52.9.0esr-hr.xpi 440149 BLAKE2B 2e9a24250360014d8de360efda6d18ab007ac6641784b9fa709879aa9c712a34f61481f8f10dece5cdaacaf37f0c91c69dfb3cfce9f18a482139024037fd2660 SHA512 cdb66c3a0ef98c8016c3bcd1d3cf3d450c558a14abc1196b157621c4492f07f23dc93f915cdbbfe59444d2155fe088418e6d9c4b7f1f73ffe5ad9bb48627113f +DIST firefox-52.9.0esr-hsb.xpi 450002 BLAKE2B dcb67bf9a0162b7c2688f1ec3ab25b279e876dc957c1defbb8a84f4be2a1215dbd7cd5113fe9f3c98b3aa69703d1cc591d80c400074ffd3dc06e894e1f068e65 SHA512 159dfe8bbeef38643abb7392c57b427bc9e1bbf1402e6dca3ad8fd356f62702d67f499d2fd26be81b14cfc83a4b01169d9df9a0f29f0c085e88a921c252ff513 +DIST firefox-52.9.0esr-hu.xpi 451496 BLAKE2B 212e7bb20a4b98c6949160e39c4f47ea932fe415fa7ac0404b2515695e002e9fa0e75fba064a43c7098f950c65d1e1be92c8754c5d0bad775c6b4b46466413b9 SHA512 6f5a22354c7d9d9eb89611e94c80a9af7e6d7f0ef1b725bc16524ebe074c7e257e76255e831791640b98b19c055e82f8dd55be91697cf3d5e916c8199a05af2e +DIST firefox-52.9.0esr-hy-AM.xpi 488414 BLAKE2B d819c52642f4415d2b5d08e356051968f9cdfaea32be30fff3f7fb047ac0b351fff5bb9a1544720489c43eb075a199466bf1a44b68c6bf75a3121d7e6d6046d5 SHA512 65b11ceaeeb469eae121094f3d0213c7bfdca597de41a0d4b9cedafcc7d88c96ab7d5b9b26278b043f9630bc9e07b2aed5fc159d42c17960225c886e8f031959 +DIST firefox-52.9.0esr-id.xpi 418764 BLAKE2B ddefdf19d968ca8e638af6732704ef705384321a6329d2c481f7fff5d368ad4038c34072192739f2059269852f9d6a811e126323e0fc7d4bfa23fbfa6302bf30 SHA512 141482d12faea6e43a504d8e31328c3062d82c8022745caa4bd23a73e5df9ed64d853752597599ae414049ce9ea632e44c8e86ed3ae707546f75f94f96fa8e42 +DIST firefox-52.9.0esr-is.xpi 435339 BLAKE2B d0766d545566a90f6a5375d11fc773e2ec1c8a85ca9ae98bd0ad606e37fc22e63450f26991f303add43ca5b79bf9848fd9479dc80b6ff9b5df21056e9afe8cac SHA512 b0221f06de4c601443048149803be8cd5c69e9f304d6d9eedcd37cbf6bd26d0604c5152616a1f870c74926380a725a4b842e82eb182d271bf0b51f03490e4b47 +DIST firefox-52.9.0esr-it.xpi 331969 BLAKE2B 98959c1dc78bf6bfd30699e38f903ca8b00065da68b46cbacc858a585bb65e4469ebc80b9dd8ad6811f30cb1de4888bd354229944295bbb19bcc109be4cfa843 SHA512 67e7f2078fe373e31df041b569d3c90b69b32527a681b14e32ccb9af625daabfc6e68fd95ec4362600f894e8342839da907b71e30c8ef843f2ceaf3b68c2ebcb +DIST firefox-52.9.0esr-ja.xpi 488343 BLAKE2B 81418ab2289e83b81f33e6dc44cd1ed3fb4df15e572b23e94e2ab2b004aa09003459ba54b1d7fa014e06e877c71be88ea7eba53caceeec98c28668f49d052ac0 SHA512 e29fdfc09d780d9dfd952731fa12410a7709c3e2abfcde6b7d3e2bdf8476b2d0379390bf24590df5ad4815b85c4dce5b3a91d9c38caabe08f15f5cdaefbed809 +DIST firefox-52.9.0esr-ka.xpi 468023 BLAKE2B 3c167ea7fb92261d169bd3d23ee337534816e6ffa95538d202ac136dcf9a5c9a35eeddcd1bebd5d64ed43a9aa74981a9707ebf0bcde39c8c984200a8f77adc05 SHA512 bf0a4392b10479b7929786b6e8aa6a1065db19ee7c1c14fc472ecbf25d881558885b0905454c840bd25535b299253dcd154ed9c283720b3595e9d9ea33a99eb9 +DIST firefox-52.9.0esr-kab.xpi 437247 BLAKE2B dd9494064d6fcd4cdfd26b982800c4a9307b06110d5a95f3263eb62f04fef174e634b0fa92423644fc0bcd638b9192986ef189ff2bf977c6b89825b1f8ef184c SHA512 5d195c1f971a526881a1173542624ca9e3719e695a273421ceda8146f3d77d4a201f4906e4c0b5b29a14999447222818b1ec0b32959e710488bbb25092ac4c42 +DIST firefox-52.9.0esr-kk.xpi 496939 BLAKE2B ec2e0b3268761a9d87617551ea427d68c459dfacfeaeff1f0032a367ddf3e8ab69d0f5a6c9677e248787927a27945dbb0396455716611e75efe860efb8cb4558 SHA512 74ba2bf40a6a848639dec9503c2b3dcc827db260ee5afc58db127ea6a8c89e8b2e480313c2bd9a9de04e4fd2cef6cad478d331e5063447a9c4b73cc5b0def770 +DIST firefox-52.9.0esr-km.xpi 512989 BLAKE2B af9f819c635161285d8839b6920101208c20ac3b4022c052b03b01cce4ac06e630744268850ae9f2cb6a41e00f95e6b61ecb2b44e0f82a6a5d0d16c31706374f SHA512 87b6e4084321c996e1a806b1750f53158a4703ca5cd3042036bb6e961a1ac4c43f3163563c7e55b5c918559da3192e5e21d9c969e9f52e9d440dfa5f7248d02f +DIST firefox-52.9.0esr-kn.xpi 512200 BLAKE2B 37bfa1e3ecbd4c506241b91d18f9369e061b0b31f130577b78e2955699a88095f47202bb810c81b4c152925149869266e803c6890185f2ecc539cd9c2604fa76 SHA512 97cbf192278271ac9a80c02373ab69addd9c4be9403347a2a9da2dfdba4ffb8f772d7b4ee680ce6f48a9b6afd725cd6ae2dc6726776b8becc78c59ec973f0d6a +DIST firefox-52.9.0esr-ko.xpi 463630 BLAKE2B 1c782d20719976b59177e4f55794ae80bcac0c514fcd7f3e7ae1813f09ee29f0c8a28ef53443b6ec2d1f1c2bd913aa658782252d9a53b12dd2ec79ef29a9ee27 SHA512 b7533be9612d558f33a49fea3f071c84dbdc7a8faefe3791f458412d5107d5583534264166454170aff3daa9390bdee5d2f13c8b8077990e27631309f9820b5f +DIST firefox-52.9.0esr-lij.xpi 413817 BLAKE2B f5b2a630847dda4cc54d0795c5da95ccd0722e4e7f825c892fd18747be3545d900794638c8fd5af7e9ef99e99a5e62e4c72ff78686012f2127287c3294cc4e16 SHA512 fb45a04b078de54c1d9d8c395b839465efa7ded0db0733b9946d84a0dd38e6ac02d5de4fecda8e15036575d64ff20899cecc767d6531d4640d198eadc6925150 +DIST firefox-52.9.0esr-lt.xpi 452235 BLAKE2B a9938a725c35f5e515faa6b502785056712bb4faff2b4da396a39746c4c0207984989dc52123d00f1565b71c0de07eb2175fc9991a4982f6d9f5e214bc64d8a5 SHA512 912e6391587794457f2b314f36c77f395d634e41a2a0be7956015f3395b59c94b3cb854c0c9f424f6283f683934aab88732dcf36fbcbc8a26c860f354a516e1f +DIST firefox-52.9.0esr-lv.xpi 441096 BLAKE2B bf0ad68435f5224a24a4c994c592e38ed1e61d8200a71e47b6c4cdd3f8df4539a1780d840a6a46dde9265c10ee8097bfaa7e43061caa88f9552d2be4e334fa19 SHA512 a102f7d8e16ed9769b6d57a8fd7042e55b6fd66501f128e8d18ec22600997d66aba2c0ec0483fb7d5ed13fc539feeb64d93520f5298a982bf9840ab07932fba3 +DIST firefox-52.9.0esr-mai.xpi 492585 BLAKE2B 0e934428b6b81c427d340f373ab890c28ae8aa8c59e12ca2f53e8920196540088f3a656be43966e93c4fab90cb021d0a35db6e912f44b9c2b2e569ab9c558a4f SHA512 a545589ce072654cd68020da0bd31b48e780ebd9b2c2af0126bd96787c4a44931382de2b46f0d4e85c177f120263db5f1d1e10dfc961d0e420845a9e64e9368d +DIST firefox-52.9.0esr-mk.xpi 488846 BLAKE2B 674db9b2a50abd25e3002d6f0d16431137140f66f0cc5fd9462e43169cfe0f0f35a3cebdc6180e2b4747ffbcbf629c53952d66cb7023bade03b363844372d6d8 SHA512 7e0aa7aaebc4913b3ba7b688caa4d1013df635e768cbc33f4a018301ceae352ae9485c3b31e1237d98922f12e45046c875b09ce9ce0d02efe17d36eab040d5b6 +DIST firefox-52.9.0esr-ml.xpi 516487 BLAKE2B 2eee153f1a39c6c7064997c80026344e53fdd58cc503c437f1326644ca11eec835675ec16ee84d64816545bde8c456c6ccca2076928a1ae42d27c09d58b0d99d SHA512 d4adebc0a02e2d4ce05b5e83f688f4bca3cd4dce4eec34421c52e9c2452e11ca93e228b4a6d75aa67a9d9242f0ed34c0e802c70cd1c7d413ff5e8eb9da588174 +DIST firefox-52.9.0esr-mr.xpi 495178 BLAKE2B c1670230e9b26cf3a7e5b276d9fde1791056184155cbf96d36068124d46e57f696bfbfacb6793e2d24a594ca60d0152a13f2e106ae8aa620ac05185cd294b663 SHA512 2d9e642e9ec6719857fdf72577482d6a1a06620c9631970d4d67c07311c2a62bbf93da183a969b4b8c8c76f319d411867a199f4e31613b777ab80ea213a99ad0 +DIST firefox-52.9.0esr-ms.xpi 428635 BLAKE2B ba80493bd652777b9da12f98d698098a4f92db9c205a4ffd523023ae57aa1e5c10a4a54778f42d6ef0fa6a7ad2302f51a16e41f66f57387335b21e9ec3427a6c SHA512 ed7501b04c69782b810540b81df84ad4db48947ce8cb0f39b6f61b3d7cee155ca913edc31282b27f35a9c6d2971da802eafee7dbfe275eba101d19555eba7074 +DIST firefox-52.9.0esr-nb-NO.xpi 427148 BLAKE2B dcf7467a6c975b175668f05768dd8d1f9fca226fcc4241c2fab0a70148d0471fb457fdcfaaebc46cab35328b13813a55fe320f034cf62f909f881326c43515ff SHA512 0a00c4c4aa1522ce68f3303f08c510215e5273d35e7f7406c19fb85ae08fde86553f2ea9c2787555ebc3aefa20f18f7ecf630ff1314f317f994207e74f4aa380 +DIST firefox-52.9.0esr-nl.xpi 432007 BLAKE2B 371536f670062f6ec72363f2bc80d90993970fa17f1ae9de4d3e148ffe8ee23e621b43ecb123251985fd6c946fd10eb7e0523615c52f23a0ea2f0d9d8741c24a SHA512 bb3e47867fd63a2d0a92ad4502d51c57c210e9d46974a954e6f1f11c796b59a808063ff843d6126b5988c62b79dee654792a996502acf636fb4967b385aff1ed +DIST firefox-52.9.0esr-nn-NO.xpi 428645 BLAKE2B d0f230de22c79e8b36b585c0804a94cb48a1f75d775fdf84fde6b0f4c480a06e0622813ad3b0dd7e00c283ff76e7fdcee6f1b04ae748c01c12e532e49d88b0e0 SHA512 53cc4f9b1b77652dbbf3a3e3b665ab1b3e8fb5de4d02895104a2d10a9921729e6a2d5f8218d837f0af4ed041efcb376bdc1f6e6f8168a50921919d6883c0d765 +DIST firefox-52.9.0esr-or.xpi 489664 BLAKE2B 50423a7676ae406b32d4740c0503e1da4ca85335498f73d1f365636d6ad23f3e93491762bda54dd796a0b4c142f2e9936e460220ef62b28221d306873993be24 SHA512 10d32ec4ce701449e2bcf1b4189eb92d264f60cf023b2f570d51948beae90fbdff2727df94fd627a313795f7d92baaf3b0dd01b3db4fc73dd5ab2661f8c7868c +DIST firefox-52.9.0esr-pa-IN.xpi 469325 BLAKE2B 5921ceb576a2ea1889bab794b946c13c40906f5670e95e514aafe3009f3f29375891ec570f80e4a3cf4ae51ae4bf9a039086eac3060304a04cff025fdd8b8bd2 SHA512 e31cd78bfbea7eb1814fe094b2ece31c09fd024b20e090ff32c5af061a399ca5aedebff14a2db5fa47d35bfa7e417acf559dd7e5e766a72b5f900d19c6eef07f +DIST firefox-52.9.0esr-pl.xpi 352851 BLAKE2B 8c9b74f45b944ccb81483e25a4680bc03b02c7c85bab7ce922c69d215dd159a7cd9dd43fc90da081f631bb31ea5a7dbbbe5b02bb8c867013de47de4c8c0e63b6 SHA512 aa7f20805ee5acf997d613cc3001c255f362a6272fc59f1fa114f4fb57e901fcdd0aa8eb28ac588b30032165661dc5d2d075d8dd17fd7339774df1c233b641b0 +DIST firefox-52.9.0esr-pt-BR.xpi 430903 BLAKE2B 0f40107be529b3880129ebcdd1c5a56f5dcf4e70d25315015a8d9e8b68df098fdfd1a9d006577286e80dc1e4aa86146e060d4ca2ee4adcd1939ef56e4f0f82f1 SHA512 8643b1e7f5fd5a9b07b69a47b210a0e4d3749d03c5ab63d52517e88d126c6c76627fb09b31943bf35a5380864af8af5ff361092e7591aaa22070a373942068d4 +DIST firefox-52.9.0esr-pt-PT.xpi 436727 BLAKE2B 4a7aa318484d7c9e6ecc055b29d3f5b82d82b63e3763faa3f577864e96546e4de10fce6bad91a6a48f97f964bd16df72400144e9b345e253ef9b9c5c5ac827aa SHA512 eef828d957fc473ce6584a30f2ea3671ffc27d411ada3071336f1a2cd91f69dcf6d9f360a58efb7a40bdc5c8f5c413f3eaf2c4f430187f66c4701b8027a76352 +DIST firefox-52.9.0esr-rm.xpi 427342 BLAKE2B f66e25ea7da4af8adc91a54be715757c391df7b09957e5fab09dc4166d0324aa03a1acc19b83041d178b2bc3f9298e070da4e810eb95568fd4ac5aaeb930a766 SHA512 d927b6a139f385dce58efa16fade8f3c20912ceacfe565d3fd75ca68de3c57978bbc086aea990f835ecac2947fe66c555f6033871917b03ce1e14c4074d31ee6 +DIST firefox-52.9.0esr-ro.xpi 442585 BLAKE2B fc94f31cdef97ebc32098a38b2ac983431996dec99f8d11eea75bec52345d2fc4baef389e88ba5fe8c5757a15704a0b99cecc0bca870796dc643ffde569f4fe0 SHA512 476f07dd570526a21521d79c037caae93af7f3ee35fa02ed4979e9b9467ef6bfa92f1dcb55dbf903057111eccf384c309733d258096a6ac61698e22b4486d277 +DIST firefox-52.9.0esr-ru.xpi 395364 BLAKE2B e3d84689499863008c8e2232a66162aeb64549daafc4577cd71b6dccee3ec9c5d5acdc9f85d73a25992d2c67a85bfb82215dfcb07e97506f14c449506aac87b6 SHA512 7ab459b8a5612a2c9febcd092e6635058888323b72f243c39b22e066e2551b58d83c0168322499b2d1b452ee143e9de3c50b65667ee6c78879a3c91b5a55e91c +DIST firefox-52.9.0esr-si.xpi 484605 BLAKE2B f6f7427c96f9c4a96514104ac6eb3442b99ce776a3f57d78c86ef242b66df8c75ca752d5ef1639e53b85e2a2c4e815d6e32c9521260acb6d171bada4997e056a SHA512 8af28e2638d5ea386e9590af105eaa4df3e233a7b823b8a77cf1e9d1ec76abeb2479140fb6367657fbc80c0baf304cd0a42f09183e4c062b48011580c948ae11 +DIST firefox-52.9.0esr-sk.xpi 455820 BLAKE2B 57f5df2145aa45f7990a1d5de43a9b270ba00a4d52822aa1d617f170d950b11af04a0cb35c92f6ba946e2068e829cbdaaae825adcf08759254bd27dce3a832c6 SHA512 38bcf41427b96c021bcfd4f738ff2c33bb29cf5178cf0011a4e5f6549eca85e4d04ac8bbbe38c964e962d07b10227ee072c7a22c2594ce73e4efdf8927fe1c8b +DIST firefox-52.9.0esr-sl.xpi 433482 BLAKE2B cf3b598ad3daf81394f540d06663677fd1315a2896d69dfcf9aaa495f1d8bdd5f983dae8a4d0f0ab4226cbfef1c8a3d5e4e95b0feb985f2449ac75a07ff93c81 SHA512 0f17e2066f020a6117ecd5a1c7fbde6ace96cef3b0a14b481722a2d473e849ca9cff67500a33d56ddcb6ae420b5e7afe54483256c4d7fc11fa7b834c80172ff8 +DIST firefox-52.9.0esr-son.xpi 427860 BLAKE2B 1849c829572ee203a8210c150ec67276277618e3388110593c095bc18cfc9f61bc6bfa5c896b3569994a10aa8e51c19862296ef56e5ce5c969fc2c051807ef5f SHA512 6061748dd7b0694910c512d8af070e4e3372df47dd24ff707a9c4c0f9083cb0f60afe5eccc34c1bb7f091624604bc488a04a2e0682c321bcfad7bd6fc091a2cf +DIST firefox-52.9.0esr-sq.xpi 440802 BLAKE2B 3279141a3c7dd3fb84f26c1fdcf44a48314dc403488454ef26375fd065db3578277824116f0dd4169e97a65ebd128d1a5324c2f6f288892339719d5bf00fa462 SHA512 edfae845dacbe0a43946bdd8ccd4b9a6117d8f96b874a40ab00e0be739c6071f8b7fb680792c1a6fc3f218d6f2f000f5577b4ea3c4474bf4f455cb1a038f188d +DIST firefox-52.9.0esr-sr.xpi 463395 BLAKE2B 7cffd36615b93071b3eca75b581e055d23abab4aa41f53b473e4cf542696c381083176bfdf0a1120821b8f19389f2462bce76e4a795cc49263963d6ac011a1cd SHA512 069908acbfcfdc659b1da9148dd7b24af07b37112799f51c8c091f1af308f5f3d936b4473d0636c29550a3a8ed63e3f48638c981b7fe2d0b856a789c43e2f20b +DIST firefox-52.9.0esr-sv-SE.xpi 433908 BLAKE2B c3e8553b7963d3d1d291ef9ea7a4c081044cc6f54a5eb359575b9e60ad6cd824e478bee9b1a07087d1250090bb70f3768dda5f2c59948a19b82aa543044e464d SHA512 94dae19d2d94673d266eea3e9d496c39426ed9ef578bc65fa74cb2ab23153c824467ce75bb6e76c8115bbe939d8b07d8f75350dc6dcdf9729c10ea4d0792eafa +DIST firefox-52.9.0esr-ta.xpi 487541 BLAKE2B 41826cf559bb4e2d5c5471cf41e0903e81f5d1f01ced19a286905a13398cd43f25e9b3767324457b2a8a45061c7d203a09a4ed3d5aea7b55555bd3235f7db9a8 SHA512 e60a24bc6111ca3f3923c14ea59b4bb1a2bd8ea244bef2e0ecc123192f23f2e5e198b893811bc6edf4187fc11fb21935b4d8a35bc9010d5ac416770f4eec9e1a +DIST firefox-52.9.0esr-te.xpi 507988 BLAKE2B e362ddf9ac9b30a54800a3654849793f34d13a2ac00f349e0f9f77b1b7f6b8ea63582a418f73b237c334bafdf108d5dffde6cf70a7f95dd8ad320555b866a235 SHA512 2506b3c7be92a75dfb9cf0d91c049efc383ef6c3a08806f93b8909a89badef175d994b4b68d67d3bea8e1dd45a5293a796777c6b5b8764718a6ce3e604f351ba +DIST firefox-52.9.0esr-th.xpi 482022 BLAKE2B 19b036e40247d3eaf2c3098894ddb34e42e55fd261314c63192eec512d4aba1a43230be22ce5ad539a34d17dfc8a68d01535631c17cfcd90a38a9ca11f779400 SHA512 3c4c849a8b427f2e73d40ee8967713f5449b695a12e77c21f8d09ce18d605f68c0cdcaaf7edc6aa8d18f7c8e8e2a3467f6e1ed8b0f124ef43cc5c24a70980e5d +DIST firefox-52.9.0esr-tr.xpi 443673 BLAKE2B df7fb2fc035db9b965aba2ca5fe4658c9e4f10c09f15036449155e07f805ba3f09b0ead560df76aeaaf786d0d3d4fe45001c1b5c817fa0866c25abcf363a2b64 SHA512 3b36df56158713957a2b8b257623cf98a1b7955d079cf677b17f92e59639c69f144dd856688436ab10cfcadb1285173d73af8119e96b52e7a266f72286672c46 +DIST firefox-52.9.0esr-uk.xpi 495095 BLAKE2B 72202898138dfcd667c15b79fe22e9a5fb17b96473d674deea34c749477f1f09532a3c088d40c5d61d66aad51f63a1761ea534997780450eb7bf75a77eccfa8d SHA512 ab4d62f1198eeca113e68898e1af280644518cf934c94445d961cdcb8219ce9235d4f5208de8b27db2a6c741ab1f627f396b88e3414043e0d511e61d975b4c31 +DIST firefox-52.9.0esr-uz.xpi 440565 BLAKE2B 848c6fc36556fd89d026bd62b3b6005da3bc44b10c814492fed17d96ef92df5827fb230c036f606afa13e9066dde27a2ab5066f270bc27e84850e75a58b3335a SHA512 8f5df148343de6d01eb5125fe2933a349c491a63ad4f8a4b6f60efe7555bd4512c84160b24d653e5bd1ea48f9cc4a9ad900fb67fb5cd96b1cfc3c492c611ab83 +DIST firefox-52.9.0esr-vi.xpi 450805 BLAKE2B 9dacebac235a738cf7f068e16335b8b15ca977ec4a1f8787ce1bf2998442b2a80b4d027f70d3df0f1e565566e3530fd4aca4dc9813dea13786b6b74590c53142 SHA512 cff7ae8ef44ea5d19710f7e604847d7020e1d5ad4b33ccb990df6d37fa52da296f3fbebf53dab0573bacf57e20c3cb9fee45aa0f276a1693aebc4489104ca771 +DIST firefox-52.9.0esr-xh.xpi 441173 BLAKE2B 3e1b907a7659c639d17d25a1825f472853242891d55f6a5ad93c1f5a12e12f05706173dc6ef5594f27e049d9b9a4c748d7371780843f1da204c5d93a39213197 SHA512 54ac64f0c119ab42d4f87dd2663ba7e14310c215a1ea76acd463b4c1a9073491f8df8c9b03d391ecc6f9ffbbdccc3756a7b13ed559336a6d1527fad3097ddb53 +DIST firefox-52.9.0esr-zh-CN.xpi 461679 BLAKE2B 745b2cfb86e93a379e13fa73b7e3721bae06694768316e31a2aed608e3050f585a9603375cd35b90affca11b3e5e44401b1e676f9c8050ade287ed0feb442a7a SHA512 ca62e0e2ab075086741159b185b5eba44c6bdfc29fd9ba1cf25808f127c1aed8875ea61c1c33e4f742fa26af4455a8873730f96ad9c7bec1f66aed0595f253f1 +DIST firefox-52.9.0esr-zh-TW.xpi 453068 BLAKE2B 84e08ea4fd119db1f1c6f84b212fbbb5d6999c5ac6010c0e7836d8734726d281107f3d91ba7bac1aeaf855dc36d3b018ae3913dccdbe2b11aad02a8d8aaa893c SHA512 a99042ef7d00820e341dfcf2c45a8b5bd77eaf2cc8ecf0ff5ee982b7bd9beac7cb4bf051c57ef3b7a5d9b67cd35858dca396d21e65718e248f3b1fdba5273999 +DIST firefox-52.9.0esr.source.tar.xz 214087304 BLAKE2B eba5305ae3fc9a4306cbcbcd8d4610272ca5b75e369367961e9d94919b003de8aae8f3c58fe1c628787d98105a85fab575ae2b051e92a0b35bbb8b402c100766 SHA512 bfca42668ca78a12a9fb56368f4aae5334b1f7a71966fbba4c32b9c5e6597aac79a6e340ac3966779d2d5563eb47c054ab33cc40bfb7306172138ccbd3adb2b9 +EBUILD firefox-52.9.0-r2.ebuild 13549 BLAKE2B 281f186f41637bfb17ebefe56ee09b2da3c2fce051bb62fed0bfdacc390e1f69b50b50e9fc581aac90782e083bf3e0e18d8e049b3234684dcadb201eaf21b239 SHA512 f15de8a23a8e6350b93d49a773b664361752f2971b865e1e9b9464883c5df59f5f717fabfb2ad5ba42d208da2fae3876a9205a68303daa6a82d729a85992ba60 diff --git a/www-client/firefox/files/firefox-52.9.0-blessings-TERM.patch b/www-client/firefox/files/firefox-52.9.0-blessings-TERM.patch new file mode 100644 index 0000000..271a62a --- /dev/null +++ b/www-client/firefox/files/firefox-52.9.0-blessings-TERM.patch @@ -0,0 +1,56 @@ +https://github.com/erikrose/blessings/pull/137 + +Fixes: https://bugs.gentoo.org/654316 + +From 5fefc65c306cf9ec492e7b422d6bb4842385afbc Mon Sep 17 00:00:00 2001 +From: Jay Kamat +Date: Fri, 24 Aug 2018 11:11:57 -0700 +Subject: [PATCH 1/2] Fix error when TERM is unset or improperly set + +--- + blessings/__init__.py | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +diff --git a/blessings/__init__.py b/blessings/__init__.py +index 98b75c3..3872b5f 100644 +--- a/python/blessings/blessings/__init__.py ++++ b/python/blessings/blessings/__init__.py +@@ -94,8 +94,13 @@ def __init__(self, kind=None, stream=None, force_styling=False): + # init sequences to the stream if it has a file descriptor, and + # send them to stdout as a fallback, since they have to go + # somewhere. +- setupterm(kind or environ.get('TERM', 'unknown'), +- self._init_descriptor) ++ try: ++ setupterm(kind or environ.get('TERM', 'dumb') or 'dumb', ++ self._init_descriptor) ++ except: ++ # There was an error setting up the terminal, either curses is ++ # not supported or TERM is incorrectly set. Fall back to dumb. ++ self._does_styling = False + + self.stream = stream + + +From d885df78c6f931abf3259343aaaa897e16c8cba1 Mon Sep 17 00:00:00 2001 +From: Jay Kamat +Date: Sat, 1 Sep 2018 13:20:32 -0700 +Subject: [PATCH 2/2] Explicitly catch curses.error + +--- + blessings/__init__.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/blessings/__init__.py b/blessings/__init__.py +index 3872b5f..fdceb09 100644 +--- a/python/blessings/blessings/__init__.py ++++ b/python/blessings/blessings/__init__.py +@@ -97,7 +97,7 @@ def __init__(self, kind=None, stream=None, force_styling=False): + try: + setupterm(kind or environ.get('TERM', 'dumb'), + self._init_descriptor) +- except: ++ except curses.error: + # There was an error setting up the terminal, either curses is + # not supported or TERM is incorrectly set. Fall back to dumb. + self._does_styling = False diff --git a/www-client/firefox/files/firefox-52.9.0-fix-idb-name-conflict.patch b/www-client/firefox/files/firefox-52.9.0-fix-idb-name-conflict.patch new file mode 100644 index 0000000..8026f62 --- /dev/null +++ b/www-client/firefox/files/firefox-52.9.0-fix-idb-name-conflict.patch @@ -0,0 +1,226 @@ +diff --git a/dom/indexedDB/ActorsParent.cpp b/dom/indexedDB/ActorsParent.cpp +index 1118ece64..ac8e28828 100644 +--- a/dom/indexedDB/ActorsParent.cpp ++++ b/dom/indexedDB/ActorsParent.cpp +@@ -11529,7 +11529,7 @@ AutoSavepoint::~AutoSavepoint() + MOZ_ASSERT(mDEBUGTransaction->GetMode() == IDBTransaction::READ_WRITE || + mDEBUGTransaction->GetMode() == + IDBTransaction::READ_WRITE_FLUSH || +- mDEBUGTransaction->GetMode() == IDBTransaction::CLEANUP || ++ mDEBUGTransaction->GetMode() == IDBTransaction::IDB_MODE_CLEANUP || + mDEBUGTransaction->GetMode() == IDBTransaction::VERSION_CHANGE); + + if (NS_FAILED(mConnection->RollbackSavepoint())) { +@@ -11545,7 +11545,7 @@ AutoSavepoint::Start(const TransactionBase* aTransaction) + MOZ_ASSERT(aTransaction); + MOZ_ASSERT(aTransaction->GetMode() == IDBTransaction::READ_WRITE || + aTransaction->GetMode() == IDBTransaction::READ_WRITE_FLUSH || +- aTransaction->GetMode() == IDBTransaction::CLEANUP || ++ aTransaction->GetMode() == IDBTransaction::IDB_MODE_CLEANUP || + aTransaction->GetMode() == IDBTransaction::VERSION_CHANGE); + + DatabaseConnection* connection = aTransaction->GetDatabase()->GetConnection(); +@@ -14692,7 +14692,7 @@ Database::AllocPBackgroundIDBTransactionParent( + if (NS_WARN_IF(aMode != IDBTransaction::READ_ONLY && + aMode != IDBTransaction::READ_WRITE && + aMode != IDBTransaction::READ_WRITE_FLUSH && +- aMode != IDBTransaction::CLEANUP)) { ++ aMode != IDBTransaction::IDB_MODE_CLEANUP)) { + ASSERT_UNLESS_FUZZING(); + return nullptr; + } +@@ -14701,7 +14701,7 @@ Database::AllocPBackgroundIDBTransactionParent( + // has write access. + if (NS_WARN_IF((aMode == IDBTransaction::READ_WRITE || + aMode == IDBTransaction::READ_WRITE_FLUSH || +- aMode == IDBTransaction::CLEANUP) && ++ aMode == IDBTransaction::IDB_MODE_CLEANUP) && + mPrincipalInfo.type() == PrincipalInfo::TSystemPrincipalInfo && + !mChromeWriteAccessAllowed)) { + return nullptr; +@@ -14767,7 +14767,7 @@ Database::RecvPBackgroundIDBTransactionConstructor( + MOZ_ASSERT(aMode == IDBTransaction::READ_ONLY || + aMode == IDBTransaction::READ_WRITE || + aMode == IDBTransaction::READ_WRITE_FLUSH || +- aMode == IDBTransaction::CLEANUP); ++ aMode == IDBTransaction::IDB_MODE_CLEANUP); + MOZ_ASSERT(!mClosed); + + if (IsInvalidated()) { +@@ -14926,7 +14926,7 @@ StartTransactionOp::DoDatabaseWork(DatabaseConnection* aConnection) + + Transaction()->SetActiveOnConnectionThread(); + +- if (Transaction()->GetMode() == IDBTransaction::CLEANUP) { ++ if (Transaction()->GetMode() == IDBTransaction::IDB_MODE_CLEANUP) { + nsresult rv = aConnection->DisableQuotaChecks(); + if (NS_WARN_IF(NS_FAILED(rv))) { + return rv; +@@ -15245,7 +15245,7 @@ TransactionBase::VerifyRequestParams(const RequestParams& aParams) const + case RequestParams::TObjectStoreDeleteParams: { + if (NS_WARN_IF(mMode != IDBTransaction::READ_WRITE && + mMode != IDBTransaction::READ_WRITE_FLUSH && +- mMode != IDBTransaction::CLEANUP && ++ mMode != IDBTransaction::IDB_MODE_CLEANUP && + mMode != IDBTransaction::VERSION_CHANGE)) { + ASSERT_UNLESS_FUZZING(); + return false; +@@ -15269,7 +15269,7 @@ TransactionBase::VerifyRequestParams(const RequestParams& aParams) const + case RequestParams::TObjectStoreClearParams: { + if (NS_WARN_IF(mMode != IDBTransaction::READ_WRITE && + mMode != IDBTransaction::READ_WRITE_FLUSH && +- mMode != IDBTransaction::CLEANUP && ++ mMode != IDBTransaction::IDB_MODE_CLEANUP && + mMode != IDBTransaction::VERSION_CHANGE)) { + ASSERT_UNLESS_FUZZING(); + return false; +@@ -23959,7 +23959,7 @@ CommitOp::WriteAutoIncrementCounts() + mTransaction->AssertIsOnConnectionThread(); + MOZ_ASSERT(mTransaction->GetMode() == IDBTransaction::READ_WRITE || + mTransaction->GetMode() == IDBTransaction::READ_WRITE_FLUSH || +- mTransaction->GetMode() == IDBTransaction::CLEANUP || ++ mTransaction->GetMode() == IDBTransaction::IDB_MODE_CLEANUP || + mTransaction->GetMode() == IDBTransaction::VERSION_CHANGE); + + const nsTArray>& metadataArray = +@@ -24027,7 +24027,7 @@ CommitOp::CommitOrRollbackAutoIncrementCounts() + mTransaction->AssertIsOnConnectionThread(); + MOZ_ASSERT(mTransaction->GetMode() == IDBTransaction::READ_WRITE || + mTransaction->GetMode() == IDBTransaction::READ_WRITE_FLUSH || +- mTransaction->GetMode() == IDBTransaction::CLEANUP || ++ mTransaction->GetMode() == IDBTransaction::IDB_MODE_CLEANUP || + mTransaction->GetMode() == IDBTransaction::VERSION_CHANGE); + + nsTArray>& metadataArray = +@@ -24161,7 +24161,7 @@ CommitOp::Run() + + connection->FinishWriteTransaction(); + +- if (mTransaction->GetMode() == IDBTransaction::CLEANUP) { ++ if (mTransaction->GetMode() == IDBTransaction::IDB_MODE_CLEANUP) { + connection->DoIdleProcessing(/* aNeedsCheckpoint */ true); + + connection->EnableQuotaChecks(); +diff --git a/dom/indexedDB/IDBCursor.cpp b/dom/indexedDB/IDBCursor.cpp +index e5d8913f9..4ef7e8c7c 100644 +--- a/dom/indexedDB/IDBCursor.cpp ++++ b/dom/indexedDB/IDBCursor.cpp +@@ -696,7 +696,7 @@ IDBCursor::Update(JSContext* aCx, JS::Handle aValue, + return nullptr; + } + +- if (mTransaction->GetMode() == IDBTransaction::CLEANUP || ++ if (mTransaction->GetMode() == IDBTransaction::IDB_MODE_CLEANUP || + IsSourceDeleted() || + !mHaveValue || + mType == Type_ObjectStoreKey || +diff --git a/dom/indexedDB/IDBDatabase.cpp b/dom/indexedDB/IDBDatabase.cpp +index 5592e7f93..49f18093d 100644 +--- a/dom/indexedDB/IDBDatabase.cpp ++++ b/dom/indexedDB/IDBDatabase.cpp +@@ -668,7 +668,7 @@ IDBDatabase::Transaction(JSContext* aCx, + break; + case IDBTransactionMode::Readwrite: + if (mQuotaExceeded) { +- mode = IDBTransaction::CLEANUP; ++ mode = IDBTransaction::IDB_MODE_CLEANUP; + mQuotaExceeded = false; + } else { + mode = IDBTransaction::READ_WRITE; +@@ -678,7 +678,7 @@ IDBDatabase::Transaction(JSContext* aCx, + mode = IDBTransaction::READ_WRITE_FLUSH; + break; + case IDBTransactionMode::Cleanup: +- mode = IDBTransaction::CLEANUP; ++ mode = IDBTransaction::IDB_MODE_CLEANUP; + mQuotaExceeded = false; + break; + case IDBTransactionMode::Versionchange: +@@ -713,7 +713,7 @@ IDBDatabase::Transaction(JSContext* aCx, + + transaction->SetBackgroundActor(actor); + +- if (mode == IDBTransaction::CLEANUP) { ++ if (mode == IDBTransaction::IDB_MODE_CLEANUP) { + ExpireFileActors(/* aExpireAll */ true); + } + +@@ -863,7 +863,7 @@ IDBDatabase::AbortTransactions(bool aShouldWarn) + // We warn for any transactions that could have written data. + case IDBTransaction::READ_WRITE: + case IDBTransaction::READ_WRITE_FLUSH: +- case IDBTransaction::CLEANUP: ++ case IDBTransaction::IDB_MODE_CLEANUP: + case IDBTransaction::VERSION_CHANGE: + transactionsThatNeedWarning.AppendElement(transaction); + break; +diff --git a/dom/indexedDB/IDBObjectStore.cpp b/dom/indexedDB/IDBObjectStore.cpp +index c28979c87..4694746cc 100644 +--- a/dom/indexedDB/IDBObjectStore.cpp ++++ b/dom/indexedDB/IDBObjectStore.cpp +@@ -1406,7 +1406,7 @@ IDBObjectStore::AddOrPut(JSContext* aCx, + MOZ_ASSERT(aCx); + MOZ_ASSERT_IF(aFromCursor, aOverwrite); + +- if (mTransaction->GetMode() == IDBTransaction::CLEANUP || ++ if (mTransaction->GetMode() == IDBTransaction::IDB_MODE_CLEANUP || + mDeletedSpec) { + aRv.Throw(NS_ERROR_DOM_INDEXEDDB_NOT_ALLOWED_ERR); + return nullptr; +diff --git a/dom/indexedDB/IDBTransaction.cpp b/dom/indexedDB/IDBTransaction.cpp +index a50489898..ef9d02414 100644 +--- a/dom/indexedDB/IDBTransaction.cpp ++++ b/dom/indexedDB/IDBTransaction.cpp +@@ -216,7 +216,7 @@ IDBTransaction::Create(JSContext* aCx, IDBDatabase* aDatabase, + MOZ_ASSERT(aMode == READ_ONLY || + aMode == READ_WRITE || + aMode == READ_WRITE_FLUSH || +- aMode == CLEANUP); ++ aMode == IDB_MODE_CLEANUP); + + RefPtr transaction = + new IDBTransaction(aDatabase, aObjectStoreNames, aMode); +@@ -871,7 +871,7 @@ IDBTransaction::GetMode(ErrorResult& aRv) const + case READ_WRITE_FLUSH: + return IDBTransactionMode::Readwriteflush; + +- case CLEANUP: ++ case IDB_MODE_CLEANUP: + return IDBTransactionMode::Cleanup; + + case VERSION_CHANGE: +diff --git a/dom/indexedDB/IDBTransaction.h b/dom/indexedDB/IDBTransaction.h +index 1c3e8be99..4fc189902 100644 +--- a/dom/indexedDB/IDBTransaction.h ++++ b/dom/indexedDB/IDBTransaction.h +@@ -59,7 +59,7 @@ public: + READ_ONLY = 0, + READ_WRITE, + READ_WRITE_FLUSH, +- CLEANUP, ++ IDB_MODE_CLEANUP, + VERSION_CHANGE, + + // Only needed for IPC serialization helper, should never be used in code. +@@ -189,7 +189,7 @@ public: + AssertIsOnOwningThread(); + return mMode == READ_WRITE || + mMode == READ_WRITE_FLUSH || +- mMode == CLEANUP || ++ mMode == IDB_MODE_CLEANUP || + mMode == VERSION_CHANGE; + } + +diff --git a/dom/indexedDB/ProfilerHelpers.h b/dom/indexedDB/ProfilerHelpers.h +index 63fdafcce..b9192d5d6 100644 +--- a/dom/indexedDB/ProfilerHelpers.h ++++ b/dom/indexedDB/ProfilerHelpers.h +@@ -129,7 +129,7 @@ public: + case IDBTransaction::READ_WRITE_FLUSH: + AppendLiteral("\"readwriteflush\""); + break; +- case IDBTransaction::CLEANUP: ++ case IDBTransaction::IDB_MODE_CLEANUP: + AppendLiteral("\"cleanup\""); + break; + case IDBTransaction::VERSION_CHANGE: diff --git a/www-client/firefox/files/firefox-52.9.0-fix-missing-includes.patch b/www-client/firefox/files/firefox-52.9.0-fix-missing-includes.patch new file mode 100644 index 0000000..7f57d32 --- /dev/null +++ b/www-client/firefox/files/firefox-52.9.0-fix-missing-includes.patch @@ -0,0 +1,37 @@ +diff --git a/gfx/2d/BaseRect.h b/gfx/2d/BaseRect.h +index 57d01ba09..b1eed9ddb 100644 +--- a/gfx/2d/BaseRect.h ++++ b/gfx/2d/BaseRect.h +@@ -9,6 +9,7 @@ + #include + #include + #include ++#include + + #include "mozilla/Assertions.h" + #include "mozilla/FloatingPoint.h" +diff --git a/gfx/2d/Matrix.h b/gfx/2d/Matrix.h +index 22a01ca10..e221ba3d2 100644 +--- a/gfx/2d/Matrix.h ++++ b/gfx/2d/Matrix.h +@@ -13,6 +13,7 @@ + #include "Quaternion.h" + #include + #include ++#include + #include "mozilla/Attributes.h" + #include "mozilla/DebugOnly.h" + #include "mozilla/FloatingPoint.h" +diff --git a/media/webrtc/trunk/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.cc b/media/webrtc/trunk/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.cc +index 941e635b1..3668a5047 100644 +--- a/media/webrtc/trunk/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.cc ++++ b/media/webrtc/trunk/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.cc +@@ -8,6 +8,8 @@ + * be found in the AUTHORS file in the root of the source tree. + */ + ++#include ++ + #include "webrtc/modules/audio_coding/codecs/opus/interface/audio_encoder_opus.h" + + #include "webrtc/base/checks.h" diff --git a/www-client/firefox/files/firefox-52.9.0-fix-thebes-templates.patch b/www-client/firefox/files/firefox-52.9.0-fix-thebes-templates.patch new file mode 100644 index 0000000..ac62839 --- /dev/null +++ b/www-client/firefox/files/firefox-52.9.0-fix-thebes-templates.patch @@ -0,0 +1,183 @@ +diff --git a/gfx/thebes/gfxFont.cpp b/gfx/thebes/gfxFont.cpp +index d0b747fff..9ec629285 100644 +--- a/gfx/thebes/gfxFont.cpp ++++ b/gfx/thebes/gfxFont.cpp +@@ -2535,85 +2535,6 @@ IsBoundarySpace(char16_t aChar, char16_t aNextChar) + return 0; + } + +-#ifdef __GNUC__ +-#define GFX_MAYBE_UNUSED __attribute__((unused)) +-#else +-#define GFX_MAYBE_UNUSED +-#endif +- +-template +-gfxShapedWord* +-gfxFont::GetShapedWord(DrawTarget *aDrawTarget, +- const T *aText, +- uint32_t aLength, +- uint32_t aHash, +- Script aRunScript, +- bool aVertical, +- int32_t aAppUnitsPerDevUnit, +- uint32_t aFlags, +- gfxTextPerfMetrics *aTextPerf GFX_MAYBE_UNUSED) +-{ +- // if the cache is getting too big, flush it and start over +- uint32_t wordCacheMaxEntries = +- gfxPlatform::GetPlatform()->WordCacheMaxEntries(); +- if (mWordCache->Count() > wordCacheMaxEntries) { +- NS_WARNING("flushing shaped-word cache"); +- ClearCachedWords(); +- } +- +- // if there's a cached entry for this word, just return it +- CacheHashKey key(aText, aLength, aHash, +- aRunScript, +- aAppUnitsPerDevUnit, +- aFlags); +- +- CacheHashEntry *entry = mWordCache->PutEntry(key); +- if (!entry) { +- NS_WARNING("failed to create word cache entry - expect missing text"); +- return nullptr; +- } +- gfxShapedWord* sw = entry->mShapedWord.get(); +- +- bool isContent = !mStyle.systemFont; +- +- if (sw) { +- sw->ResetAge(); +- Telemetry::Accumulate((isContent ? Telemetry::WORD_CACHE_HITS_CONTENT : +- Telemetry::WORD_CACHE_HITS_CHROME), +- aLength); +-#ifndef RELEASE_OR_BETA +- if (aTextPerf) { +- aTextPerf->current.wordCacheHit++; +- } +-#endif +- return sw; +- } +- +- Telemetry::Accumulate((isContent ? Telemetry::WORD_CACHE_MISSES_CONTENT : +- Telemetry::WORD_CACHE_MISSES_CHROME), +- aLength); +-#ifndef RELEASE_OR_BETA +- if (aTextPerf) { +- aTextPerf->current.wordCacheMiss++; +- } +-#endif +- +- sw = gfxShapedWord::Create(aText, aLength, aRunScript, aAppUnitsPerDevUnit, +- aFlags); +- entry->mShapedWord.reset(sw); +- if (!sw) { +- NS_WARNING("failed to create gfxShapedWord - expect missing text"); +- return nullptr; +- } +- +- DebugOnly ok = +- ShapeText(aDrawTarget, aText, 0, aLength, aRunScript, aVertical, sw); +- +- NS_WARNING_ASSERTION(ok, "failed to shape word - expect garbled text"); +- +- return sw; +-} +- + bool + gfxFont::CacheHashEntry::KeyEquals(const KeyTypePointer aKey) const + { +diff --git a/gfx/thebes/gfxFont.h b/gfx/thebes/gfxFont.h +index ead0b7666..c38d06675 100644 +--- a/gfx/thebes/gfxFont.h ++++ b/gfx/thebes/gfxFont.h +@@ -2220,4 +2220,88 @@ struct EmphasisMarkDrawParams { + bool isVertical; + }; + ++#include "mozilla/Telemetry.h" ++#include "mozilla/DebugOnly.h" ++ ++#ifdef __GNUC__ ++#define GFX_MAYBE_UNUSED __attribute__((unused)) ++#else ++#define GFX_MAYBE_UNUSED ++#endif ++ ++template ++gfxShapedWord* ++gfxFont::GetShapedWord(DrawTarget *aDrawTarget, ++ const T *aText, ++ uint32_t aLength, ++ uint32_t aHash, ++ Script aRunScript, ++ bool aVertical, ++ int32_t aAppUnitsPerDevUnit, ++ uint32_t aFlags, ++ gfxTextPerfMetrics *aTextPerf GFX_MAYBE_UNUSED) ++{ ++ using namespace mozilla; ++ ++ // if the cache is getting too big, flush it and start over ++ uint32_t wordCacheMaxEntries = ++ gfxPlatform::GetPlatform()->WordCacheMaxEntries(); ++ if (mWordCache->Count() > wordCacheMaxEntries) { ++ NS_WARNING("flushing shaped-word cache"); ++ ClearCachedWords(); ++ } ++ ++ // if there's a cached entry for this word, just return it ++ CacheHashKey key(aText, aLength, aHash, ++ aRunScript, ++ aAppUnitsPerDevUnit, ++ aFlags); ++ ++ CacheHashEntry *entry = mWordCache->PutEntry(key); ++ if (!entry) { ++ NS_WARNING("failed to create word cache entry - expect missing text"); ++ return nullptr; ++ } ++ gfxShapedWord* sw = entry->mShapedWord.get(); ++ ++ bool isContent = !mStyle.systemFont; ++ ++ if (sw) { ++ sw->ResetAge(); ++ Telemetry::Accumulate((isContent ? Telemetry::WORD_CACHE_HITS_CONTENT : ++ Telemetry::WORD_CACHE_HITS_CHROME), ++ aLength); ++#ifndef RELEASE_OR_BETA ++ if (aTextPerf) { ++ aTextPerf->current.wordCacheHit++; ++ } ++#endif ++ return sw; ++ } ++ ++ Telemetry::Accumulate((isContent ? Telemetry::WORD_CACHE_MISSES_CONTENT : ++ Telemetry::WORD_CACHE_MISSES_CHROME), ++ aLength); ++#ifndef RELEASE_OR_BETA ++ if (aTextPerf) { ++ aTextPerf->current.wordCacheMiss++; ++ } ++#endif ++ ++ sw = gfxShapedWord::Create(aText, aLength, aRunScript, aAppUnitsPerDevUnit, ++ aFlags); ++ entry->mShapedWord.reset(sw); ++ if (!sw) { ++ NS_WARNING("failed to create gfxShapedWord - expect missing text"); ++ return nullptr; ++ } ++ ++ DebugOnly ok = ++ ShapeText(aDrawTarget, aText, 0, aLength, aRunScript, aVertical, sw); ++ ++ NS_WARNING_ASSERTION(ok, "failed to shape word - expect garbled text"); ++ ++ return sw; ++} ++ + #endif diff --git a/www-client/firefox/files/firefox-52.9.0-glibc-2.30.patch b/www-client/firefox/files/firefox-52.9.0-glibc-2.30.patch new file mode 100644 index 0000000..caa1141 --- /dev/null +++ b/www-client/firefox/files/firefox-52.9.0-glibc-2.30.patch @@ -0,0 +1,13 @@ +diff --git a/tools/profiler/core/platform.h b/tools/profiler/core/platform.h +index 2e736d97c..8f9c2ede3 100644 +--- a/tools/profiler/core/platform.h ++++ b/tools/profiler/core/platform.h +@@ -61,7 +61,7 @@ + + // We need a definition of gettid(), but Linux libc implementations don't + // provide a wrapper for it (except for Bionic) +-#if defined(__linux__) ++#if defined(__linux__) && __GLIBC__ <= 2 && __GLIBC_MINOR__ < 30 + #include + #if !defined(__BIONIC__) + #include diff --git a/www-client/firefox/files/firefox-52.9.0-glibc-2.36.patch b/www-client/firefox/files/firefox-52.9.0-glibc-2.36.patch new file mode 100644 index 0000000..774e903 --- /dev/null +++ b/www-client/firefox/files/firefox-52.9.0-glibc-2.36.patch @@ -0,0 +1,61 @@ +diff --git a/ipc/chromium/src/third_party/libevent/evutil_rand.c b/ipc/chromium/src/third_party/libevent/evutil_rand.c +index 3bab23121..c1e8a98ef 100644 +--- a/ipc/chromium/src/third_party/libevent/evutil_rand.c ++++ b/ipc/chromium/src/third_party/libevent/evutil_rand.c +@@ -39,7 +39,7 @@ + #include "util-internal.h" + #include "evthread-internal.h" + +-#ifdef _EVENT_HAVE_ARC4RANDOM ++#if _EVENT_HAVE_ARC4RANDOM + #include + #include + int +@@ -58,7 +58,7 @@ evutil_secure_rng_global_setup_locks_(const int enable_locks) + static void + ev_arc4random_buf(void *buf, size_t n) + { +-#if defined(_EVENT_HAVE_ARC4RANDOM_BUF) && !(defined(__APPLE__) || defined(__ANDROID__)) ++#if _EVENT_HAVE_ARC4RANDOM_BUF && !(defined(__APPLE__) || defined(__ANDROID__)) + arc4random_buf(buf, n); + #else + unsigned char *b = buf; +@@ -139,7 +139,7 @@ evutil_secure_rng_get_bytes(void *buf, size_t n) + ev_arc4random_buf(buf, n); + } + +-#if !defined(__OpenBSD__) && !defined(ANDROID) ++#if 0 + void + evutil_secure_rng_add_bytes(const char *buf, size_t n) + { +diff --git a/ipc/chromium/src/third_party/libevent/include/event2/util.h b/ipc/chromium/src/third_party/libevent/include/event2/util.h +index 42a28adcb..ed6b6207f 100644 +--- a/ipc/chromium/src/third_party/libevent/include/event2/util.h ++++ b/ipc/chromium/src/third_party/libevent/include/event2/util.h +@@ -672,7 +672,7 @@ void evutil_secure_rng_get_bytes(void *buf, size_t n); + */ + int evutil_secure_rng_init(void); + +-#if !defined(__OpenBSD__) && !defined(ANDROID) ++#if 0 + /** Seed the random number generator with extra random bytes. + + You should almost never need to call this function; it should be +diff --git a/ipc/chromium/src/third_party/libevent/linux/event2/event-config.h b/ipc/chromium/src/third_party/libevent/linux/event2/event-config.h +index 56ebd3aba..21717abed 100644 +--- a/ipc/chromium/src/third_party/libevent/linux/event2/event-config.h ++++ b/ipc/chromium/src/third_party/libevent/linux/event2/event-config.h +@@ -24,10 +24,10 @@ + /* #undef _EVENT_DISABLE_THREAD_SUPPORT */ + + /* Define to 1 if you have the `arc4random' function. */ +-/* #undef _EVENT_HAVE_ARC4RANDOM */ ++#define _EVENT_HAVE_ARC4RANDOM (__GLIBC__ >= 2 && __GLIBC_MINOR__ >= 36) + + /* Define to 1 if you have the `arc4random_buf' function. */ +-/* #undef _EVENT_HAVE_ARC4RANDOM_BUF */ ++#define _EVENT_HAVE_ARC4RANDOM_BUF _EVENT_HAVE_ARC4RANDOM + + /* Define to 1 if you have the header file. */ + #define _EVENT_HAVE_ARPA_INET_H 1 diff --git a/www-client/firefox/files/firefox-52.9.0-less-werror.patch b/www-client/firefox/files/firefox-52.9.0-less-werror.patch new file mode 100644 index 0000000..7e624e3 --- /dev/null +++ b/www-client/firefox/files/firefox-52.9.0-less-werror.patch @@ -0,0 +1,13 @@ +diff --git a/js/src/moz.build b/js/src/moz.build +index 1162cb70c..595ea9842 100644 +--- a/js/src/moz.build ++++ b/js/src/moz.build +@@ -785,7 +785,7 @@ if CONFIG['JS_HAS_CTYPES']: + DEFINES['FFI_BUILDING'] = True + + if CONFIG['GNU_CXX']: +- CXXFLAGS += ['-Wno-shadow', '-Werror=format'] ++ CXXFLAGS += ['-Wno-shadow'] + + # Suppress warnings in third-party code. + if CONFIG['CLANG_CXX']: diff --git a/www-client/firefox/files/gentoo-default-prefs.js-1 b/www-client/firefox/files/gentoo-default-prefs.js-1 new file mode 100644 index 0000000..22a51ff --- /dev/null +++ b/www-client/firefox/files/gentoo-default-prefs.js-1 @@ -0,0 +1,17 @@ +pref("app.update.enabled", false); +pref("app.update.autoInstallEnabled", false); +pref("browser.display.use_system_colors", true); +pref("browser.link.open_external", 3); +pref("general.smoothScroll", true); +pref("general.autoScroll", false); +pref("browser.tabs.tabMinWidth", 15); +pref("browser.backspace_action", 0); +pref("browser.urlbar.hideGoButton", true); +pref("accessibility.typeaheadfind", true); +pref("browser.shell.checkDefaultBrowser", false); +pref("browser.EULA.override", true); +pref("general.useragent.vendor", "Gentoo"); +pref("intl.locale.matchOS", true); +pref("general.useragent.locale", "chrome://global/locale/intl.properties"); +pref("extensions.autoDisableScopes", 0); +pref("layout.css.dpi", 0); diff --git a/www-client/firefox/files/gentoo-hwaccel-prefs.js-1 b/www-client/firefox/files/gentoo-hwaccel-prefs.js-1 new file mode 100644 index 0000000..0cb92b0 --- /dev/null +++ b/www-client/firefox/files/gentoo-hwaccel-prefs.js-1 @@ -0,0 +1,2 @@ +pref("layers.acceleration.force-enabled", true); +pref("webgl.force-enabled", true); diff --git a/www-client/firefox/files/icon/firefox.desktop b/www-client/firefox/files/icon/firefox.desktop new file mode 100644 index 0000000..1affce8 --- /dev/null +++ b/www-client/firefox/files/icon/firefox.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Name=@NAME@ +Comment=Web Browser +Exec=firefox %u +Icon=@ICON@ +Terminal=false +Type=Application +MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https; +Categories=Network;WebBrowser; + diff --git a/www-client/firefox/firefox-52.9.0-r2.ebuild b/www-client/firefox/firefox-52.9.0-r2.ebuild new file mode 100644 index 0000000..f60ba25 --- /dev/null +++ b/www-client/firefox/firefox-52.9.0-r2.ebuild @@ -0,0 +1,424 @@ +# This ebuild is a modified version of the work originally distributed with +# Gentoo GNU/Linux, covered by the following copyright and permission notice: +# +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 +# +# The modifications are: +# +# * Apply patches to build on modern systems (2022-12) + +EAPI=6 +VIRTUALX_REQUIRED="pgo" +WANT_AUTOCONF="2.1" +MOZ_ESR=1 + +# This list can be updated with scripts/get_langs.sh from the mozilla overlay +MOZ_LANGS=( ach af an ar as ast az bg bn-BD bn-IN br bs ca cak cs cy da de dsb +el en en-GB en-US en-ZA eo es-AR es-CL es-ES es-MX et eu fa ff fi fr fy-NL ga-IE +gd gl gn gu-IN he hi-IN hr hsb hu hy-AM id is it ja ka kab kk km kn ko lij lt lv +mai mk ml mr ms nb-NO nl nn-NO or pa-IN pl pt-BR pt-PT rm ro ru si sk sl son sq +sr sv-SE ta te th tr uk uz vi xh zh-CN zh-TW ) + +# Convert the ebuild version to the upstream mozilla version, used by mozlinguas +MOZ_PV="${PV/_alpha/a}" # Handle alpha for SRC_URI +MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI +MOZ_PV="${MOZ_PV/_rc/rc}" # Handle rc for SRC_URI + +if [[ ${MOZ_ESR} == 1 ]]; then + # ESR releases have slightly different version numbers + MOZ_PV="${MOZ_PV}esr" +fi + +# Patch version +PATCH="${PN}-52.5-patches-02" +MOZ_HTTP_URI="https://archive.mozilla.org/pub/${PN}/releases" + +MOZCONFIG_OPTIONAL_GTK2ONLY=1 +MOZCONFIG_OPTIONAL_WIFI=1 + +inherit check-reqs flag-o-matic toolchain-funcs eutils gnome2-utils mozconfig-v6.52 pax-utils xdg-utils autotools virtualx mozlinguas-v2 + +DESCRIPTION="Firefox Web Browser" +HOMEPAGE="https://www.mozilla.org/firefox" + +KEYWORDS="~alpha amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 x86 ~amd64-linux ~x86-linux" + +SLOT="0" +LICENSE="MPL-2.0 GPL-2 LGPL-2.1" +IUSE="bindist eme-free +gmp-autoupdate hardened hwaccel jack pgo rust selinux test" +RESTRICT="!bindist? ( bindist ) !test? ( test )" + +PATCH_URIS=( https://dev.gentoo.org/~{anarchy,axs,polynomial-c}/mozilla/patchsets/${PATCH}.tar.xz ) +SRC_URI="${SRC_URI} + ${MOZ_HTTP_URI}/${MOZ_PV}/source/firefox-${MOZ_PV}.source.tar.xz + ${PATCH_URIS[@]}" + +ASM_DEPEND=">=dev-lang/yasm-1.1" + +RDEPEND=" + jack? ( virtual/jack ) + >=dev-libs/nss-3.28.3 + >=dev-libs/nspr-4.13.1 + selinux? ( sec-policy/selinux-mozilla )" + +DEPEND="${RDEPEND} + pgo? ( >=sys-devel/gcc-4.5 ) + rust? ( virtual/rust ) + amd64? ( ${ASM_DEPEND} virtual/opengl ) + x86? ( ${ASM_DEPEND} virtual/opengl )" + +S="${WORKDIR}/firefox-${MOZ_PV}" + +QA_PRESTRIPPED="usr/lib*/${PN}/firefox" + +BUILD_OBJ_DIR="${S}/ff" + +# allow GMP_PLUGIN_LIST to be set in an eclass or +# overridden in the enviromnent (advanced hackers only) +if [[ -z $GMP_PLUGIN_LIST ]]; then + GMP_PLUGIN_LIST=( gmp-gmpopenh264 gmp-widevinecdm ) +fi + +pkg_setup() { + moz_pkgsetup + + # Avoid PGO profiling problems due to enviroment leakage + # These should *always* be cleaned up anyway + unset DBUS_SESSION_BUS_ADDRESS \ + DISPLAY \ + ORBIT_SOCKETDIR \ + SESSION_MANAGER \ + XDG_SESSION_COOKIE \ + XAUTHORITY + + if ! use bindist; then + einfo + elog "You are enabling official branding. You may not redistribute this build" + elog "to any users on your network or the internet. Doing so puts yourself into" + elog "a legal problem with Mozilla Foundation" + elog "You can disable it by emerging ${PN} _with_ the bindist USE-flag" + fi + + if use pgo; then + einfo + ewarn "You will do a double build for profile guided optimization." + ewarn "This will result in your build taking at least twice as long as before." + fi + + if use rust; then + einfo + ewarn "This is very experimental, should only be used by those developing firefox." + fi +} + +pkg_pretend() { + # Ensure we have enough disk space to compile + if use pgo || use debug || use test ; then + CHECKREQS_DISK_BUILD="8G" + else + CHECKREQS_DISK_BUILD="4G" + fi + check-reqs_pkg_setup +} + +src_unpack() { + unpack ${A} + + # Unpack language packs + mozlinguas_src_unpack +} + +src_prepare() { + # Apply our patches + rm -f "${WORKDIR}"/firefox/2007_fix_nvidia_latest.patch + eapply "${WORKDIR}/firefox" + + eapply "${FILESDIR}"/${P}-blessings-TERM.patch # 654316 + eapply "${FILESDIR}"/${P}-fix-missing-includes.patch + eapply "${FILESDIR}"/${P}-fix-idb-name-conflict.patch + eapply "${FILESDIR}"/${P}-glibc-2.30.patch + eapply "${FILESDIR}"/${P}-glibc-2.36.patch + eapply "${FILESDIR}"/${P}-less-werror.patch + eapply "${FILESDIR}"/${P}-fix-thebes-templates.patch + + # Enable gnomebreakpad + if use debug ; then + sed -i -e "s:GNOME_DISABLE_CRASH_DIALOG=1:GNOME_DISABLE_CRASH_DIALOG=0:g" \ + "${S}"/build/unix/run-mozilla.sh || die "sed failed!" + fi + + # Drop -Wl,--as-needed related manipulation for ia64 as it causes ld sefgaults, bug #582432 + if use ia64 ; then + sed -i \ + -e '/^OS_LIBS += no_as_needed/d' \ + -e '/^OS_LIBS += as_needed/d' \ + "${S}"/widget/gtk/mozgtk/gtk2/moz.build \ + "${S}"/widget/gtk/mozgtk/gtk3/moz.build \ + || die "sed failed to drop --as-needed for ia64" + fi + + # Ensure that our plugins dir is enabled as default + sed -i -e "s:/usr/lib/mozilla/plugins:/usr/lib/nsbrowser/plugins:" \ + "${S}"/xpcom/io/nsAppFileLocationProvider.cpp || die "sed failed to replace plugin path for 32bit!" + sed -i -e "s:/usr/lib64/mozilla/plugins:/usr/lib64/nsbrowser/plugins:" \ + "${S}"/xpcom/io/nsAppFileLocationProvider.cpp || die "sed failed to replace plugin path for 64bit!" + + # Fix sandbox violations during make clean, bug 372817 + sed -e "s:\(/no-such-file\):${T}\1:g" \ + -i "${S}"/config/rules.mk \ + -i "${S}"/nsprpub/configure{.in,} \ + || die + + # Don't exit with error when some libs are missing which we have in + # system. + sed '/^MOZ_PKG_FATAL_WARNINGS/s@= 1@= 0@' \ + -i "${S}"/browser/installer/Makefile.in || die + + # Don't error out when there's no files to be removed: + sed 's@\(xargs rm\)$@\1 -f@' \ + -i "${S}"/toolkit/mozapps/installer/packager.mk || die + + # Keep codebase the same even if not using official branding + sed '/^MOZ_DEV_EDITION=1/d' \ + -i "${S}"/browser/branding/aurora/configure.sh || die + + # Allow user to apply any additional patches without modifing ebuild + eapply_user + + # Autotools configure is now called old-configure.in + # This works because there is still a configure.in that happens to be for the + # shell wrapper configure script + eautoreconf old-configure.in + + # Must run autoconf in js/src + cd "${S}"/js/src || die + eautoconf old-configure.in + + # Need to update jemalloc's configure + cd "${S}"/memory/jemalloc/src || die + WANT_AUTOCONF= eautoconf +} + +src_configure() { + MEXTENSIONS="default" + # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys) + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please + # get your own set of keys. + _google_api_key=AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc + + #################################### + # + # mozconfig, CFLAGS and CXXFLAGS setup + # + #################################### + + mozconfig_init + mozconfig_config + + # enable JACK, bug 600002 + mozconfig_use_enable jack + + use eme-free && mozconfig_annotate '+eme-free' --disable-eme + + # It doesn't compile on alpha without this LDFLAGS + use alpha && append-ldflags "-Wl,--no-relax" + + # Add full relro support for hardened + use hardened && append-ldflags "-Wl,-z,relro,-z,now" + + # Only available on mozilla-overlay for experimentation -- Removed in Gentoo repo per bug 571180 + #use egl && mozconfig_annotate 'Enable EGL as GL provider' --with-gl-provider=EGL + + # Setup api key for location services + echo -n "${_google_api_key}" > "${S}"/google-api-key + mozconfig_annotate '' --with-google-api-keyfile="${S}/google-api-key" + + mozconfig_annotate '' --enable-extensions="${MEXTENSIONS}" + + mozconfig_use_enable rust + + # Allow for a proper pgo build + if use pgo; then + echo "mk_add_options PROFILE_GEN_SCRIPT='EXTRA_TEST_ARGS=10 \$(MAKE) -C \$(MOZ_OBJDIR) pgo-profile-run'" >> "${S}"/.mozconfig + fi + + echo "mk_add_options MOZ_OBJDIR=${BUILD_OBJ_DIR}" >> "${S}"/.mozconfig + echo "mk_add_options XARGS=/usr/bin/xargs" >> "${S}"/.mozconfig + + # Finalize and report settings + mozconfig_final + + if [[ $(gcc-major-version) -lt 4 ]]; then + append-cxxflags -fno-stack-protector +# else +# append-cxxflags -fpermissive + fi + + # workaround for funky/broken upstream configure... + SHELL="${SHELL:-${EPREFIX}/bin/bash}" \ + emake -f client.mk configure +} + +src_compile() { + if use pgo; then + addpredict /root + addpredict /etc/gconf + # Reset and cleanup environment variables used by GNOME/XDG + gnome2_environment_reset + + # Firefox tries to use dri stuff when it's run, see bug 380283 + shopt -s nullglob + cards=$(echo -n /dev/dri/card* | sed 's/ /:/g') + if test -z "${cards}"; then + cards=$(echo -n /dev/ati/card* /dev/nvidiactl* | sed 's/ /:/g') + if test -n "${cards}"; then + # Binary drivers seem to cause access violations anyway, so + # let's use indirect rendering so that the device files aren't + # touched at all. See bug 394715. + export LIBGL_ALWAYS_INDIRECT=1 + fi + fi + shopt -u nullglob + [[ -n "${cards}" ]] && addpredict "${cards}" + + MOZ_MAKE_FLAGS="${MAKEOPTS}" SHELL="${SHELL:-${EPREFIX}/bin/bash}" \ + virtx emake -f client.mk profiledbuild + else + MOZ_MAKE_FLAGS="${MAKEOPTS}" SHELL="${SHELL:-${EPREFIX}/bin/bash}" \ + emake -f client.mk realbuild + fi + +} + +src_install() { + cd "${BUILD_OBJ_DIR}" || die + + # Pax mark xpcshell for hardened support, only used for startupcache creation. + pax-mark m "${BUILD_OBJ_DIR}"/dist/bin/xpcshell + + # Add our default prefs for firefox + cp "${FILESDIR}"/gentoo-default-prefs.js-1 \ + "${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" \ + || die + + mozconfig_install_prefs \ + "${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" + + # Augment this with hwaccel prefs + if use hwaccel ; then + cat "${FILESDIR}"/gentoo-hwaccel-prefs.js-1 >> \ + "${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" \ + || die + fi + + echo "pref(\"extensions.autoDisableScopes\", 3);" >> \ + "${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" \ + || die + + local plugin + use gmp-autoupdate || use eme-free || for plugin in "${GMP_PLUGIN_LIST[@]}" ; do + echo "pref(\"media.${plugin}.autoupdate\", false);" >> \ + "${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" \ + || die + done + + MOZ_MAKE_FLAGS="${MAKEOPTS}" SHELL="${SHELL:-${EPREFIX}/bin/bash}" \ + emake DESTDIR="${D}" install + + # Install language packs + mozlinguas_src_install + + local size sizes icon_path icon name + if use bindist; then + sizes="16 32 48" + icon_path="${S}/browser/branding/aurora" + # Firefox's new rapid release cycle means no more codenames + # Let's just stick with this one... + icon="aurora" + name="Aurora" + + # Override preferences to set the MOZ_DEV_EDITION defaults, since we + # don't define MOZ_DEV_EDITION to avoid profile debaucles. + # (source: browser/app/profile/firefox.js) + cat >>"${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" <> "${ED}/usr/share/applications/${PN}.desktop" \ + || die + fi + + # Required in order to use plugins and even run firefox on hardened. + pax-mark m "${ED}"${MOZILLA_FIVE_HOME}/{firefox,firefox-bin,plugin-container} +} + +pkg_preinst() { + gnome2_icon_savelist + + # if the apulse libs are available in MOZILLA_FIVE_HOME then apulse + # doesn't need to be forced into the LD_LIBRARY_PATH + if use pulseaudio && has_version ">=media-sound/apulse-0.1.9" ; then + einfo "APULSE found - Generating library symlinks for sound support" + local lib + pushd "${ED}"${MOZILLA_FIVE_HOME} &>/dev/null || die + for lib in ../apulse/libpulse{.so{,.0},-simple.so{,.0}} ; do + # a quickpkg rolled by hand will grab symlinks as part of the package, + # so we need to avoid creating them if they already exist. + if ! [ -L ${lib##*/} ]; then + ln -s "${lib}" ${lib##*/} || die + fi + done + popd &>/dev/null || die + fi +} + +pkg_postinst() { + # Update mimedb for the new .desktop file + xdg_desktop_database_update + gnome2_icon_cache_update + + if ! use gmp-autoupdate && ! use eme-free ; then + elog "USE='-gmp-autoupdate' has disabled the following plugins from updating or" + elog "installing into new profiles:" + local plugin + for plugin in "${GMP_PLUGIN_LIST[@]}"; do elog "\t ${plugin}" ; done + fi + + if use pulseaudio && has_version ">=media-sound/apulse-0.1.9" ; then + elog "Apulse was detected at merge time on this system and so it will always be" + elog "used for sound. If you wish to use pulseaudio instead please unmerge" + elog "media-sound/apulse." + fi +} + +pkg_postrm() { + gnome2_icon_cache_update +} -- 2.43.2