commit:     b89433318e17e1a431201c39f8e2da993054b9bb
Author:     Ian Stakenvicius <axs <AT> gentoo <DOT> org>
AuthorDate: Tue Jun  7 20:12:17 2016 +0000
Commit:     Ian Stakenvicius <axs <AT> gentoo <DOT> org>
CommitDate: Wed Jun  8 02:12:12 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b8943331

Mozilla eclass changes for new versions and to improve cross-builds

- mozcoreconf-v4 introduced to centralize toolchain and related build
settings, and improve configuration settings related to toolchain usage.

- mozconfig-v6.45 modified to inherit new mozcoreconf-v4

- mozconfig-v6.47 introduced, also inheriting mozcoreconf-v4

- removed old versions of mozconfig related to mozilla versions no longer
in repo

 eclass/mozconfig-v5.34.eclass                      | 232 -----------------
 eclass/mozconfig-v5.36.eclass                      | 232 -----------------
 eclass/mozconfig-v5.38.eclass                      | 231 -----------------
 eclass/mozconfig-v6.39.eclass                      | 240 ------------------
 eclass/mozconfig-v6.40.eclass                      | 263 -------------------
 eclass/mozconfig-v6.45.eclass                      |   2 +-
 ...zconfig-v6.44.eclass => mozconfig-v6.47.eclass} | 150 ++++++++---
 eclass/mozcoreconf-v4.eclass                       | 277 +++++++++++++++++++++
 8 files changed, 387 insertions(+), 1240 deletions(-)

diff --git a/eclass/mozconfig-v5.34.eclass b/eclass/mozconfig-v5.34.eclass
deleted file mode 100644
index aa73966..0000000
--- a/eclass/mozconfig-v5.34.eclass
+++ /dev/null
@@ -1,232 +0,0 @@
-# Copyright 1999-2014 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-#
-# @ECLASS: mozconfig-v5.33.eclass
-# @MAINTAINER:
-# mozilla team <mozi...@gentoo.org>
-# @BLURB: the new mozilla common configuration eclass for FF33 and newer, v5
-# @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.
-
-inherit multilib flag-o-matic toolchain-funcs mozcoreconf-v3
-
-case ${EAPI} in
-       0|1|2|3|4) die "EAPI=${EAPI} not supported"
-esac
-
-# @ECLASS-VARIABLE: MOZCONFIG_OPTIONAL_WIFI
-# @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
-# @DESCRIPTION:
-# Set this variable before the inherit line, when an ebuild needs to provide
-# optional necko-wifi support via IUSE="jit".  Currently this would include
-# ebuilds for firefox, and potentially seamonkey.
-#
-# Leave the variable UNSET if optional jit 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 gstreamer pulseaudio selinux startup-notification 
system-cairo system-icu system-jpeg 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
-       >=dev-libs/libevent-1.4.7
-       >=x11-libs/cairo-1.10[X]
-       >=x11-libs/gtk+-2.14:2
-       x11-libs/gdk-pixbuf
-       >=x11-libs/pango-1.22.0
-       >=media-libs/libpng-1.6.13:0=[apng]
-       >=media-libs/mesa-10.2:*
-       media-libs/fontconfig
-       >=media-libs/freetype-2.4.10
-       kernel_linux? ( media-libs/alsa-lib )
-       pulseaudio? ( media-sound/pulseaudio )
-       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
-       virtual/libffi
-       gstreamer? (
-               >=media-libs/gstreamer-1.2.3:1.0
-               >=media-libs/gst-plugins-base-1.2.3:1.0
-               >=media-libs/gst-plugins-good-1.2.3:1.0
-               >=media-plugins/gst-plugins-libav-1.1.0_pre20130128-r1:1.0
-       )
-       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] >=x11-libs/pixman-0.19.2 )
-       system-icu? ( >=dev-libs/icu-51.1:= )
-       system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 )
-       system-sqlite? ( >=dev-db/sqlite-3.8.6:3[secure-delete,debug=] )
-       system-libvpx? ( =media-libs/libvpx-1.3.0*[postproc] )
-"
-
-if [[ -n ${MOZCONFIG_OPTIONAL_WIFI} ]]; then
-       if [[ ${MOZCONFIG_OPTIONAL_WIFI} = "enabled" ]]; then
-               IUSE+=" +wifi"
-       else
-               IUSE+=" wifi"
-       fi
-       RDEPEND+="
-       wifi? ( >=sys-apps/dbus-0.60
-               >=dev-libs/dbus-glib-0.72
-               net-wireless/wireless-tools )"
-fi
-if [[ -n ${MOZCONFIG_OPTIONAL_JIT} ]]; then
-       if [[ ${MOZCONFIG_OPTIONAL_JIT} = "enabled" ]]; then
-               IUSE+=" +jit"
-       else
-               IUSE+=" jit"
-       fi
-fi
-
-DEPEND="app-arch/zip
-       app-arch/unzip
-       >=sys-devel/binutils-2.16.1
-       ${RDEPEND}"
-
-RDEPEND+="
-       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-v5.33
-#
-# 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 \
-               --enable-pango \
-               --enable-svg \
-               --with-system-bz2
-
-       mozconfig_annotate '' --enable-default-toolkit=cairo-gtk2
-
-       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
-
-       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 wifi && ! use dbus; then
-                       echo "Enabling dbus support due to wifi request"
-                       mozconfig_annotate 'dbus required by necko-wifi' 
--enable-dbus
-               else
-                       mozconfig_use_enable dbus
-               fi
-       else
-               mozconfig_use_enable dbus
-               mozconfig_annotate 'disabled' --disable-necko-wifi
-       fi
-
-       # These are forced-on for webm support
-       mozconfig_annotate 'required' --enable-ogg
-       mozconfig_annotate 'required' --enable-wave
-
-       if [[ -n ${MOZCONFIG_OPTIONAL_JIT} ]]; then
-               mozconfig_use_enable jit ion
-               mozconfig_use_enable jit yarr-jit
-       fi
-
-       # These are enabled by default in all mozilla applications
-       mozconfig_annotate '' --with-system-nspr 
--with-nspr-prefix="${EPREFIX}"/usr
-       mozconfig_annotate '' --with-system-nss 
--with-nss-prefix="${EPREFIX}"/usr
-       mozconfig_annotate '' --x-includes="${EPREFIX}"/usr/include 
--x-libraries="${EPREFIX}"/usr/$(get_libdir)
-       mozconfig_annotate '' --with-system-libevent="${EPREFIX}"/usr
-       mozconfig_annotate '' --prefix="${EPREFIX}"/usr
-       mozconfig_annotate '' --libdir="${EPREFIX}"/usr/$(get_libdir)
-       mozconfig_annotate 'Gentoo default' --enable-system-hunspell
-       mozconfig_annotate '' --disable-gnomevfs
-       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
-
-       # 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; then
-               # We must force-enable jemalloc 3 via .mozconfig
-               echo "export MOZ_JEMALLOC3=1" >> "${S}"/.mozconfig || die
-               mozconfig_annotate '' --enable-jemalloc
-               mozconfig_annotate '' --enable-replace-malloc
-       fi
-
-       mozconfig_annotate '' --target="${CTARGET:-${CHOST}}"
-       mozconfig_annotate '' --build="${CTARGET:-${CHOST}}"
-
-       if use gstreamer; then
-               mozconfig_annotate '+gstreamer' --enable-gstreamer=1.0
-       else
-               mozconfig_annotate '' --disable-gstreamer
-       fi
-       mozconfig_use_enable pulseaudio
-
-       mozconfig_use_enable system-cairo
-       mozconfig_use_enable system-sqlite
-       mozconfig_use_with system-jpeg
-       mozconfig_use_with system-icu
-       mozconfig_use_enable system-icu intl-api
-       mozconfig_use_with system-libvpx
-}

diff --git a/eclass/mozconfig-v5.36.eclass b/eclass/mozconfig-v5.36.eclass
deleted file mode 100644
index d86fe55..0000000
--- a/eclass/mozconfig-v5.36.eclass
+++ /dev/null
@@ -1,232 +0,0 @@
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-#
-# @ECLASS: mozconfig-v5.33.eclass
-# @MAINTAINER:
-# mozilla team <mozi...@gentoo.org>
-# @BLURB: the new mozilla common configuration eclass for FF33 and newer, v5
-# @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.
-
-inherit multilib flag-o-matic toolchain-funcs mozcoreconf-v3
-
-case ${EAPI} in
-       0|1|2|3|4) die "EAPI=${EAPI} not supported"
-esac
-
-# @ECLASS-VARIABLE: MOZCONFIG_OPTIONAL_WIFI
-# @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
-# @DESCRIPTION:
-# Set this variable before the inherit line, when an ebuild needs to provide
-# optional necko-wifi support via IUSE="jit".  Currently this would include
-# ebuilds for firefox, and potentially seamonkey.
-#
-# Leave the variable UNSET if optional jit 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 gstreamer pulseaudio selinux startup-notification 
system-cairo system-icu system-jpeg 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
-       >=dev-libs/libevent-1.4.7
-       >=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.14:0=[apng]
-       >=media-libs/mesa-10.2:*
-       media-libs/fontconfig
-       >=media-libs/freetype-2.4.10
-       kernel_linux? ( media-libs/alsa-lib )
-       pulseaudio? ( media-sound/pulseaudio )
-       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
-       >=virtual/libffi-3.0.10
-       gstreamer? (
-               >=media-libs/gstreamer-1.2.3:1.0
-               >=media-libs/gst-plugins-base-1.2.3:1.0
-               >=media-libs/gst-plugins-good-1.2.3:1.0
-               >=media-plugins/gst-plugins-libav-1.1.0_pre20130128-r1:1.0
-       )
-       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] >=x11-libs/pixman-0.19.2 )
-       system-icu? ( >=dev-libs/icu-51.1:= )
-       system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 )
-       system-sqlite? ( >=dev-db/sqlite-3.8.7.4:3[secure-delete,debug=] )
-       system-libvpx? ( >=media-libs/libvpx-1.3.0:0=[postproc] )
-"
-
-if [[ -n ${MOZCONFIG_OPTIONAL_WIFI} ]]; then
-       if [[ ${MOZCONFIG_OPTIONAL_WIFI} = "enabled" ]]; then
-               IUSE+=" +wifi"
-       else
-               IUSE+=" wifi"
-       fi
-       RDEPEND+="
-       wifi? ( >=sys-apps/dbus-0.60
-               >=dev-libs/dbus-glib-0.72
-               net-wireless/wireless-tools )"
-fi
-if [[ -n ${MOZCONFIG_OPTIONAL_JIT} ]]; then
-       if [[ ${MOZCONFIG_OPTIONAL_JIT} = "enabled" ]]; then
-               IUSE+=" +jit"
-       else
-               IUSE+=" jit"
-       fi
-fi
-
-DEPEND="app-arch/zip
-       app-arch/unzip
-       >=sys-devel/binutils-2.16.1
-       ${RDEPEND}"
-
-RDEPEND+="
-       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-v5.33
-#
-# 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 \
-               --enable-pango \
-               --enable-svg \
-               --with-system-bz2
-
-       mozconfig_annotate '' --enable-default-toolkit=cairo-gtk2
-
-       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
-
-       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 wifi && ! use dbus; then
-                       echo "Enabling dbus support due to wifi request"
-                       mozconfig_annotate 'dbus required by necko-wifi' 
--enable-dbus
-               else
-                       mozconfig_use_enable dbus
-               fi
-       else
-               mozconfig_use_enable dbus
-               mozconfig_annotate 'disabled' --disable-necko-wifi
-       fi
-
-       # These are forced-on for webm support
-       mozconfig_annotate 'required' --enable-ogg
-       mozconfig_annotate 'required' --enable-wave
-
-       if [[ -n ${MOZCONFIG_OPTIONAL_JIT} ]]; then
-               mozconfig_use_enable jit ion
-               mozconfig_use_enable jit yarr-jit
-       fi
-
-       # These are enabled by default in all mozilla applications
-       mozconfig_annotate '' --with-system-nspr 
--with-nspr-prefix="${EPREFIX}"/usr
-       mozconfig_annotate '' --with-system-nss 
--with-nss-prefix="${EPREFIX}"/usr
-       mozconfig_annotate '' --x-includes="${EPREFIX}"/usr/include 
--x-libraries="${EPREFIX}"/usr/$(get_libdir)
-       mozconfig_annotate '' --with-system-libevent="${EPREFIX}"/usr
-       mozconfig_annotate '' --prefix="${EPREFIX}"/usr
-       mozconfig_annotate '' --libdir="${EPREFIX}"/usr/$(get_libdir)
-       mozconfig_annotate 'Gentoo default' --enable-system-hunspell
-       mozconfig_annotate '' --disable-gnomevfs
-       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
-
-       # 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; then
-               # We must force-enable jemalloc 3 via .mozconfig
-               echo "export MOZ_JEMALLOC3=1" >> "${S}"/.mozconfig || die
-               mozconfig_annotate '' --enable-jemalloc
-               mozconfig_annotate '' --enable-replace-malloc
-       fi
-
-       mozconfig_annotate '' --target="${CTARGET:-${CHOST}}"
-       mozconfig_annotate '' --build="${CTARGET:-${CHOST}}"
-
-       if use gstreamer; then
-               mozconfig_annotate '+gstreamer' --enable-gstreamer=1.0
-       else
-               mozconfig_annotate '' --disable-gstreamer
-       fi
-       mozconfig_use_enable pulseaudio
-
-       mozconfig_use_enable system-cairo
-       mozconfig_use_enable system-sqlite
-       mozconfig_use_with system-jpeg
-       mozconfig_use_with system-icu
-       mozconfig_use_enable system-icu intl-api
-       mozconfig_use_with system-libvpx
-}

diff --git a/eclass/mozconfig-v5.38.eclass b/eclass/mozconfig-v5.38.eclass
deleted file mode 100644
index 2882b8b..0000000
--- a/eclass/mozconfig-v5.38.eclass
+++ /dev/null
@@ -1,231 +0,0 @@
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-#
-# @ECLASS: mozconfig-v5.33.eclass
-# @MAINTAINER:
-# mozilla team <mozi...@gentoo.org>
-# @BLURB: the new mozilla common configuration eclass for FF33 and newer, v5
-# @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.
-
-inherit multilib flag-o-matic toolchain-funcs mozcoreconf-v3
-
-case ${EAPI} in
-       0|1|2|3|4) die "EAPI=${EAPI} not supported"
-esac
-
-# @ECLASS-VARIABLE: MOZCONFIG_OPTIONAL_WIFI
-# @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
-# @DESCRIPTION:
-# Set this variable before the inherit line, when an ebuild needs to provide
-# optional necko-wifi support via IUSE="jit".  Currently this would include
-# ebuilds for firefox, and potentially seamonkey.
-#
-# Leave the variable UNSET if optional jit 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 gstreamer +jemalloc3 pulseaudio selinux 
startup-notification system-cairo system-icu system-jpeg 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
-       >=dev-libs/libevent-1.4.7
-       >=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.16:0=[apng]
-       >=media-libs/mesa-10.2:*
-       media-libs/fontconfig
-       >=media-libs/freetype-2.4.10
-       kernel_linux? ( media-libs/alsa-lib )
-       pulseaudio? ( media-sound/pulseaudio )
-       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
-       >=virtual/libffi-3.0.10
-       gstreamer? (
-               >=media-libs/gstreamer-1.2.3:1.0
-               >=media-libs/gst-plugins-base-1.2.3:1.0
-               >=media-libs/gst-plugins-good-1.2.3:1.0
-               >=media-plugins/gst-plugins-libav-1.1.0_pre20130128-r1:1.0
-       )
-       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] >=x11-libs/pixman-0.19.2 )
-       system-icu? ( >=dev-libs/icu-51.1:= )
-       system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 )
-       system-sqlite? ( >=dev-db/sqlite-3.8.8.2:3[secure-delete,debug=] )
-       system-libvpx? ( >=media-libs/libvpx-1.3.0:0=[postproc] )
-"
-
-if [[ -n ${MOZCONFIG_OPTIONAL_WIFI} ]]; then
-       if [[ ${MOZCONFIG_OPTIONAL_WIFI} = "enabled" ]]; then
-               IUSE+=" +wifi"
-       else
-               IUSE+=" wifi"
-       fi
-       RDEPEND+="
-       wifi? ( >=sys-apps/dbus-0.60
-               >=dev-libs/dbus-glib-0.72
-               net-wireless/wireless-tools )"
-fi
-if [[ -n ${MOZCONFIG_OPTIONAL_JIT} ]]; then
-       if [[ ${MOZCONFIG_OPTIONAL_JIT} = "enabled" ]]; then
-               IUSE+=" +jit"
-       else
-               IUSE+=" jit"
-       fi
-fi
-
-DEPEND="app-arch/zip
-       app-arch/unzip
-       >=sys-devel/binutils-2.16.1
-       ${RDEPEND}"
-
-RDEPEND+="
-       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-v5.33
-#
-# 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 \
-               --enable-pango \
-               --enable-svg \
-               --with-system-bz2
-
-       mozconfig_annotate '' --enable-default-toolkit=cairo-gtk2
-
-       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
-
-       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 wifi && ! use dbus; then
-                       echo "Enabling dbus support due to wifi request"
-                       mozconfig_annotate 'dbus required by necko-wifi' 
--enable-dbus
-               else
-                       mozconfig_use_enable dbus
-               fi
-       else
-               mozconfig_use_enable dbus
-               mozconfig_annotate 'disabled' --disable-necko-wifi
-       fi
-
-       # These are forced-on for webm support
-       mozconfig_annotate 'required' --enable-ogg
-       mozconfig_annotate 'required' --enable-wave
-
-       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="${EPREFIX}"/usr
-       mozconfig_annotate '' --with-system-nss 
--with-nss-prefix="${EPREFIX}"/usr
-       mozconfig_annotate '' --x-includes="${EPREFIX}"/usr/include 
--x-libraries="${EPREFIX}"/usr/$(get_libdir)
-       mozconfig_annotate '' --with-system-libevent="${EPREFIX}"/usr
-       mozconfig_annotate '' --prefix="${EPREFIX}"/usr
-       mozconfig_annotate '' --libdir="${EPREFIX}"/usr/$(get_libdir)
-       mozconfig_annotate 'Gentoo default' --enable-system-hunspell
-       mozconfig_annotate '' --disable-gnomevfs
-       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
-
-       # 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 jemalloc3; then
-               # We must force-enable jemalloc 3 via .mozconfig
-               echo "export MOZ_JEMALLOC3=1" >> "${S}"/.mozconfig || die
-               mozconfig_annotate '' --enable-jemalloc
-               mozconfig_annotate '' --enable-replace-malloc
-       fi
-
-       mozconfig_annotate '' --target="${CTARGET:-${CHOST}}"
-       mozconfig_annotate '' --build="${CTARGET:-${CHOST}}"
-
-       if use gstreamer; then
-               mozconfig_annotate '+gstreamer' --enable-gstreamer=1.0
-       else
-               mozconfig_annotate '' --disable-gstreamer
-       fi
-       mozconfig_use_enable pulseaudio
-
-       mozconfig_use_enable system-cairo
-       mozconfig_use_enable system-sqlite
-       mozconfig_use_with system-jpeg
-       mozconfig_use_with system-icu
-       mozconfig_use_enable system-icu intl-api
-       mozconfig_use_with system-libvpx
-}

diff --git a/eclass/mozconfig-v6.39.eclass b/eclass/mozconfig-v6.39.eclass
deleted file mode 100644
index 7f7d353..0000000
--- a/eclass/mozconfig-v6.39.eclass
+++ /dev/null
@@ -1,240 +0,0 @@
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-#
-# @ECLASS: mozconfig-v5.33.eclass
-# @MAINTAINER:
-# mozilla team <mozi...@gentoo.org>
-# @BLURB: the new mozilla common configuration eclass for FF33 and newer, v5
-# @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.
-
-inherit multilib flag-o-matic toolchain-funcs mozcoreconf-v3
-
-case ${EAPI} in
-       0|1|2|3|4) die "EAPI=${EAPI} not supported"
-esac
-
-# @ECLASS-VARIABLE: MOZCONFIG_OPTIONAL_WIFI
-# @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
-# @DESCRIPTION:
-# Set this variable before the inherit line, when an ebuild needs to provide
-# optional necko-wifi support via IUSE="jit".  Currently this would include
-# ebuilds for firefox, and potentially seamonkey.
-#
-# Leave the variable UNSET if optional jit 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 gstreamer gstreamer-0 +jemalloc3 pulseaudio selinux 
startup-notification system-cairo system-icu system-jpeg 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
-       >=dev-libs/libevent-1.4.7
-       >=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.16:0=[apng]
-       >=media-libs/mesa-10.2:*
-       media-libs/fontconfig
-       >=media-libs/freetype-2.4.10
-       kernel_linux? ( media-libs/alsa-lib )
-       pulseaudio? ( media-sound/pulseaudio )
-       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
-       >=virtual/libffi-3.0.10
-       gstreamer? (
-               >=media-libs/gstreamer-1.4.5:1.0
-               >=media-libs/gst-plugins-base-1.4.5:1.0
-               >=media-libs/gst-plugins-good-1.4.5:1.0
-               >=media-plugins/gst-plugins-libav-1.4.5:1.0
-       )
-       gstreamer-0? (
-               >=media-libs/gstreamer-0.10.25:0.10
-               media-plugins/gst-plugins-meta:0.10[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] >=x11-libs/pixman-0.19.2 )
-       system-icu? ( >=dev-libs/icu-51.1:= )
-       system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 )
-       system-sqlite? ( >=dev-db/sqlite-3.8.9:3[secure-delete,debug=] )
-       system-libvpx? ( >=media-libs/libvpx-1.3.0:0=[postproc] )
-"
-
-if [[ -n ${MOZCONFIG_OPTIONAL_WIFI} ]]; then
-       if [[ ${MOZCONFIG_OPTIONAL_WIFI} = "enabled" ]]; then
-               IUSE+=" +wifi"
-       else
-               IUSE+=" wifi"
-       fi
-       RDEPEND+="
-       wifi? ( >=sys-apps/dbus-0.60
-               >=dev-libs/dbus-glib-0.72
-               net-wireless/wireless-tools )"
-fi
-if [[ -n ${MOZCONFIG_OPTIONAL_JIT} ]]; then
-       if [[ ${MOZCONFIG_OPTIONAL_JIT} = "enabled" ]]; then
-               IUSE+=" +jit"
-       else
-               IUSE+=" jit"
-       fi
-fi
-
-DEPEND="app-arch/zip
-       app-arch/unzip
-       >=sys-devel/binutils-2.16.1
-       ${RDEPEND}"
-
-RDEPEND+="
-       selinux? ( sec-policy/selinux-mozilla )"
-
-# only one of gstreamer and gstreamer-0 can be enabled at a time, so set 
REQUIRED_USE to signify this
-REQUIRED_USE="?? ( gstreamer gstreamer-0 )"
-
-# @FUNCTION: mozconfig_config
-# @DESCRIPTION:
-# Set common configure options for mozilla packages.
-# Call this within src_configure() phase, after mozconfig_init
-#
-# Example:
-#
-# inherit mozconfig-v5.33
-#
-# 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 \
-               --enable-pango \
-               --enable-svg \
-               --with-system-bz2
-
-       mozconfig_annotate '' --enable-default-toolkit=cairo-gtk2
-
-       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
-
-       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 wifi && ! use dbus; then
-                       echo "Enabling dbus support due to wifi request"
-                       mozconfig_annotate 'dbus required by necko-wifi' 
--enable-dbus
-               else
-                       mozconfig_use_enable dbus
-               fi
-       else
-               mozconfig_use_enable dbus
-               mozconfig_annotate 'disabled' --disable-necko-wifi
-       fi
-
-       # These are forced-on for webm support
-       mozconfig_annotate 'required' --enable-ogg
-       mozconfig_annotate 'required' --enable-wave
-
-       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="${EPREFIX}"/usr
-       mozconfig_annotate '' --with-system-nss 
--with-nss-prefix="${EPREFIX}"/usr
-       mozconfig_annotate '' --x-includes="${EPREFIX}"/usr/include 
--x-libraries="${EPREFIX}"/usr/$(get_libdir)
-       mozconfig_annotate '' --with-system-libevent="${EPREFIX}"/usr
-       mozconfig_annotate '' --prefix="${EPREFIX}"/usr
-       mozconfig_annotate '' --libdir="${EPREFIX}"/usr/$(get_libdir)
-       mozconfig_annotate 'Gentoo default' --enable-system-hunspell
-       mozconfig_annotate '' --disable-gnomevfs
-       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
-
-       # 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 jemalloc3; then
-               # We must force-enable jemalloc 3 via .mozconfig
-               echo "export MOZ_JEMALLOC3=1" >> "${S}"/.mozconfig || die
-               mozconfig_annotate '' --enable-jemalloc
-               mozconfig_annotate '' --enable-replace-malloc
-       fi
-
-       mozconfig_annotate '' --target="${CTARGET:-${CHOST}}"
-       mozconfig_annotate '' --build="${CTARGET:-${CHOST}}"
-
-       if use gstreamer ; then
-               mozconfig_annotate '+gstreamer' --enable-gstreamer=1.0
-       elif use gstreamer-0 ; then
-               mozconfig_annotate '+gstreamer-0' --enable-gstreamer=0.10
-       else
-               mozconfig_annotate '' --disable-gstreamer
-       fi
-       mozconfig_use_enable pulseaudio
-
-       mozconfig_use_enable system-cairo
-       mozconfig_use_enable system-sqlite
-       mozconfig_use_with system-jpeg
-       mozconfig_use_with system-icu
-       mozconfig_use_with system-icu intl-api
-       mozconfig_use_with system-libvpx
-}

diff --git a/eclass/mozconfig-v6.40.eclass b/eclass/mozconfig-v6.40.eclass
deleted file mode 100644
index f763a34..0000000
--- a/eclass/mozconfig-v6.40.eclass
+++ /dev/null
@@ -1,263 +0,0 @@
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-#
-# @ECLASS: mozconfig-v6.40.eclass
-# @MAINTAINER:
-# mozilla team <mozi...@gentoo.org>
-# @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.
-
-inherit multilib flag-o-matic toolchain-funcs mozcoreconf-v3
-
-case ${EAPI} in
-       0|1|2|3|4) die "EAPI=${EAPI} not supported"
-esac
-
-# @ECLASS-VARIABLE: MOZCONFIG_OPTIONAL_WIFI
-# @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
-# @DESCRIPTION:
-# Set this variable before the inherit line, when an ebuild needs to provide
-# optional necko-wifi support via IUSE="jit".  Currently this would include
-# ebuilds for firefox, and potentially seamonkey.
-#
-# Leave the variable UNSET if optional jit 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_GTK3
-# @DESCRIPTION:
-# Set this variable before the inherit line, when an ebuild can provide
-# optional gtk3 support via IUSE="gtk3".  Currently this would include
-# ebuilds for firefox, but thunderbird and seamonkey could follow in the 
future.
-#
-# Leave the variable UNSET if gtk3 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 gstreamer gstreamer-0 +jemalloc3 pulseaudio selinux 
startup-notification system-cairo system-icu system-jpeg 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
-       >=dev-libs/libevent-1.4.7
-       >=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.17:0=[apng]
-       >=media-libs/mesa-10.2:*
-       media-libs/fontconfig
-       >=media-libs/freetype-2.4.10
-       kernel_linux? ( media-libs/alsa-lib )
-       pulseaudio? ( media-sound/pulseaudio )
-       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
-       >=virtual/libffi-3.0.10
-       gstreamer? (
-               >=media-libs/gstreamer-1.4.5:1.0
-               >=media-libs/gst-plugins-base-1.4.5:1.0
-               >=media-libs/gst-plugins-good-1.4.5:1.0
-               >=media-plugins/gst-plugins-libav-1.4.5:1.0
-       )
-       gstreamer-0? (
-               >=media-libs/gstreamer-0.10.25:0.10
-               media-plugins/gst-plugins-meta:0.10[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] >=x11-libs/pixman-0.19.2 )
-       system-icu? ( >=dev-libs/icu-51.1:= )
-       system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 )
-       system-sqlite? ( >=dev-db/sqlite-3.8.9:3[secure-delete,debug=] )
-       system-libvpx? ( >=media-libs/libvpx-1.3.0:0=[postproc] )
-"
-
-if [[ -n ${MOZCONFIG_OPTIONAL_GTK3} ]]; then
-       if [[ ${MOZCONFIG_OPTIONAL_GTK3} = "enabled" ]]; then
-               IUSE+=" +gtk3"
-       else
-               IUSE+=" gtk3"
-       fi
-       RDEPEND+="
-       gtk3? ( >=x11-libs/gtk+-3.14.0:3 )"
-fi
-if [[ -n ${MOZCONFIG_OPTIONAL_WIFI} ]]; then
-       if [[ ${MOZCONFIG_OPTIONAL_WIFI} = "enabled" ]]; then
-               IUSE+=" +wifi"
-       else
-               IUSE+=" wifi"
-       fi
-       RDEPEND+="
-       wifi? ( >=sys-apps/dbus-0.60
-               >=dev-libs/dbus-glib-0.72
-               net-wireless/wireless-tools )"
-fi
-if [[ -n ${MOZCONFIG_OPTIONAL_JIT} ]]; then
-       if [[ ${MOZCONFIG_OPTIONAL_JIT} = "enabled" ]]; then
-               IUSE+=" +jit"
-       else
-               IUSE+=" jit"
-       fi
-fi
-
-DEPEND="app-arch/zip
-       app-arch/unzip
-       >=sys-devel/binutils-2.16.1
-       ${RDEPEND}"
-
-RDEPEND+="
-       selinux? ( sec-policy/selinux-mozilla )"
-
-# only one of gstreamer and gstreamer-0 can be enabled at a time, so set 
REQUIRED_USE to signify this
-REQUIRED_USE="?? ( gstreamer gstreamer-0 )"
-
-# @FUNCTION: mozconfig_config
-# @DESCRIPTION:
-# Set common configure options for mozilla packages.
-# Call this within src_configure() phase, after mozconfig_init
-#
-# Example:
-#
-# inherit mozconfig-v5.33
-#
-# 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 \
-               --enable-pango \
-               --enable-svg \
-               --with-system-bz2
-
-       if [[ -n ${MOZCONFIG_OPTIONAL_GTK3} ]]; then
-               mozconfig_annotate 'gtk3 use flag' 
--enable-default-toolkit=$(usex gtk3 cairo-gtk3 cairo-gtk2)
-       else
-               mozconfig_annotate '' --enable-default-toolkit=cairo-gtk2
-       fi
-
-       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
-
-       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 wifi && ! use dbus; then
-                       echo "Enabling dbus support due to wifi request"
-                       mozconfig_annotate 'dbus required by necko-wifi' 
--enable-dbus
-               else
-                       mozconfig_use_enable dbus
-               fi
-       else
-               mozconfig_use_enable dbus
-               mozconfig_annotate 'disabled' --disable-necko-wifi
-       fi
-
-       # These are forced-on for webm support
-       mozconfig_annotate 'required' --enable-ogg
-       mozconfig_annotate 'required' --enable-wave
-
-       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="${EPREFIX}"/usr
-       mozconfig_annotate '' --with-system-nss 
--with-nss-prefix="${EPREFIX}"/usr
-       mozconfig_annotate '' --x-includes="${EPREFIX}"/usr/include 
--x-libraries="${EPREFIX}"/usr/$(get_libdir)
-       mozconfig_annotate '' --with-system-libevent="${EPREFIX}"/usr
-       mozconfig_annotate '' --prefix="${EPREFIX}"/usr
-       mozconfig_annotate '' --libdir="${EPREFIX}"/usr/$(get_libdir)
-       mozconfig_annotate 'Gentoo default' --enable-system-hunspell
-       mozconfig_annotate '' --disable-gnomevfs
-       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
-
-       # 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 jemalloc3; then
-               # We must force-enable jemalloc 3 via .mozconfig
-               echo "export MOZ_JEMALLOC3=1" >> "${S}"/.mozconfig || die
-               mozconfig_annotate '' --enable-jemalloc
-               mozconfig_annotate '' --enable-replace-malloc
-       fi
-
-       mozconfig_annotate '' --target="${CTARGET:-${CHOST}}"
-       mozconfig_annotate '' --build="${CTARGET:-${CHOST}}"
-
-       if use gstreamer ; then
-               mozconfig_annotate '+gstreamer' --enable-gstreamer=1.0
-       elif use gstreamer-0 ; then
-               mozconfig_annotate '+gstreamer-0' --enable-gstreamer=0.10
-       else
-               mozconfig_annotate '' --disable-gstreamer
-       fi
-       mozconfig_use_enable pulseaudio
-
-       mozconfig_use_enable system-cairo
-       mozconfig_use_enable system-sqlite
-       mozconfig_use_with system-jpeg
-       mozconfig_use_with system-icu
-       mozconfig_use_enable system-icu intl-api
-       mozconfig_use_with system-libvpx
-}

diff --git a/eclass/mozconfig-v6.45.eclass b/eclass/mozconfig-v6.45.eclass
index 7ff0f9d..e92f769 100644
--- a/eclass/mozconfig-v6.45.eclass
+++ b/eclass/mozconfig-v6.45.eclass
@@ -27,7 +27,7 @@ case ${EAPI} in
                ;;
 esac
 
-inherit flag-o-matic toolchain-funcs mozcoreconf-v3
+inherit flag-o-matic toolchain-funcs mozcoreconf-v4
 
 # @ECLASS-VARIABLE: MOZCONFIG_OPTIONAL_WIFI
 # @DESCRIPTION:

diff --git a/eclass/mozconfig-v6.44.eclass b/eclass/mozconfig-v6.47.eclass
similarity index 70%
rename from eclass/mozconfig-v6.44.eclass
rename to eclass/mozconfig-v6.47.eclass
index a833e91..263f4c0 100644
--- a/eclass/mozconfig-v6.44.eclass
+++ b/eclass/mozconfig-v6.47.eclass
@@ -2,7 +2,7 @@
 # Distributed under the terms of the GNU General Public License v2
 # $Id$
 #
-# @ECLASS: mozconfig-v6.44.eclass
+# @ECLASS: mozconfig-v6.46.eclass
 # @MAINTAINER:
 # mozilla team <mozi...@gentoo.org>
 # @BLURB: the new mozilla common configuration eclass for FF33 and newer, v6
@@ -18,12 +18,17 @@
 # This eclass inherits mozconfig helper functions as defined in mozcoreconf-v3,
 # and so ebuilds inheriting this eclass do not need to inherit that.
 
-inherit multilib flag-o-matic toolchain-funcs mozcoreconf-v3
-
 case ${EAPI} in
-       0|1|2|3|4) die "EAPI=${EAPI} not supported"
+       0|1|2|3|4)
+               die "EAPI=${EAPI} not supported"
+               ;;
+       5)
+               inherit multilib
+               ;;
 esac
 
+inherit flag-o-matic toolchain-funcs mozcoreconf-v4
+
 # @ECLASS-VARIABLE: MOZCONFIG_OPTIONAL_WIFI
 # @DESCRIPTION:
 # Set this variable before the inherit line, when an ebuild needs to provide
@@ -54,6 +59,19 @@ esac
 # 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_GTK2ONLY
+# @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
 # @DESCRIPTION:
 # Set this variable before the inherit line, when an ebuild can provide
@@ -65,8 +83,8 @@ esac
 # 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 ffmpeg +gstreamer gstreamer-0 +jemalloc3 neon 
pulseaudio selinux startup-notification system-cairo
-       system-icu system-jpeg system-libevent system-sqlite system-libvpx"
+IUSE="${IUSE} dbus debug +jemalloc3 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
@@ -75,12 +93,11 @@ IUSE="${IUSE} dbus debug ffmpeg +gstreamer gstreamer-0 
+jemalloc3 neon pulseaudi
 RDEPEND=">=app-text/hunspell-1.2
        dev-libs/atk
        dev-libs/expat
-       >=dev-libs/libevent-1.4.7
        >=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.17:0=[apng]
+       >=media-libs/libpng-1.6.21:0=[apng]
        >=media-libs/mesa-10.2:*
        media-libs/fontconfig
        >=media-libs/freetype-2.4.10
@@ -93,17 +110,7 @@ RDEPEND=">=app-text/hunspell-1.2
        >=dev-libs/glib-2.26:2
        >=sys-libs/zlib-1.2.3
        >=virtual/libffi-3.0.10
-       ffmpeg? ( virtual/ffmpeg )
-       gstreamer? (
-               >=media-libs/gstreamer-1.4.5:1.0
-               >=media-libs/gst-plugins-base-1.4.5:1.0
-               >=media-libs/gst-plugins-good-1.4.5:1.0
-               >=media-plugins/gst-plugins-libav-1.4.5:1.0
-       )
-       gstreamer-0? (
-               >=media-libs/gstreamer-0.10.25:0.10
-               media-plugins/gst-plugins-meta:0.10[ffmpeg]
-       )
+       virtual/ffmpeg
        x11-libs/libX11
        x11-libs/libXcomposite
        x11-libs/libXdamage
@@ -114,12 +121,14 @@ RDEPEND=">=app-text/hunspell-1.2
        system-cairo? ( >=x11-libs/cairo-1.12[X,xcb] >=x11-libs/pixman-0.19.2 )
        system-icu? ( >=dev-libs/icu-51.1:= )
        system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 )
-       system-libevent? ( =dev-libs/libevent-2.0* )
-       system-sqlite? ( >=dev-db/sqlite-3.9.1:3[secure-delete,debug=] )
-       system-libvpx? ( >=media-libs/libvpx-1.3.0:0=[postproc] )
+       system-libevent? ( =dev-libs/libevent-2.0*:0= )
+       system-sqlite? ( >=dev-db/sqlite-3.11.0:3[secure-delete,debug=] )
+       system-libvpx? ( >=media-libs/libvpx-1.5.0:0=[postproc] )
+       system-harfbuzz? ( >=media-libs/harfbuzz-1.2.2:0=[graphite,icu] 
>=media-gfx/graphite2-1.3.8 )
 "
 
 if [[ -n ${MOZCONFIG_OPTIONAL_GTK3} ]]; then
+       MOZCONFIG_OPTIONAL_GTK2ONLY=
        if [[ ${MOZCONFIG_OPTIONAL_GTK3} = "enabled" ]]; then
                IUSE+=" +gtk3"
        else
@@ -127,6 +136,14 @@ if [[ -n ${MOZCONFIG_OPTIONAL_GTK3} ]]; then
        fi
        RDEPEND+="
        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_QT5} ]]; then
        inherit qmake-utils
@@ -175,13 +192,18 @@ DEPEND="app-arch/zip
 RDEPEND+="
        selinux? ( sec-policy/selinux-mozilla )"
 
-# only one of gstreamer and gstreamer-0 can be enabled at a time, so set 
REQUIRED_USE to signify this
-REQUIRED_USE="?? ( gstreamer gstreamer-0 )"
+# force system-icu if system-harfbuzz is selected, to avoid potential ABI 
issues
+REQUIRED_USE="
+       system-harfbuzz? ( system-icu )"
 
 # only one of gtk3 or qt5 should be permitted to be selected, since only one 
will be used.
 [[ -n ${MOZCONFIG_OPTIONAL_GTK3} ]] && [[ -n ${MOZCONFIG_OPTIONAL_QT5} ]] && \
        REQUIRED_USE+=" ?? ( gtk3 qt5 )"
 
+# only one of gtk2 or qt5 should be permitted to be selected, since only one 
will be used.
+[[ -n ${MOZCONFIG_OPTIONAL_GTK2ONLY} ]] && [[ -n ${MOZCONFIG_OPTIONAL_QT5} ]] 
&& \
+       REQUIRED_USE+=" ?? ( gtk2 qt5 )"
+
 # @FUNCTION: mozconfig_config
 # @DESCRIPTION:
 # Set common configure options for mozilla packages.
@@ -189,7 +211,7 @@ REQUIRED_USE="?? ( gstreamer gstreamer-0 )"
 #
 # Example:
 #
-# inherit mozconfig-v5.33
+# inherit mozconfig-v6.46
 #
 # src_configure() {
 #      mozconfig_init
@@ -248,11 +270,11 @@ mozconfig_config() {
        fi
 
        # These are enabled by default in all mozilla applications
-       mozconfig_annotate '' --with-system-nspr 
--with-nspr-prefix="${EPREFIX}"/usr
-       mozconfig_annotate '' --with-system-nss 
--with-nss-prefix="${EPREFIX}"/usr
-       mozconfig_annotate '' --x-includes="${EPREFIX}"/usr/include 
--x-libraries="${EPREFIX}"/usr/$(get_libdir)
+       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="${EPREFIX}"/usr
+               mozconfig_annotate '' 
--with-system-libevent="${SYSROOT}${EPREFIX}"/usr
        fi
        mozconfig_annotate '' --prefix="${EPREFIX}"/usr
        mozconfig_annotate '' --libdir="${EPREFIX}"/usr/$(get_libdir)
@@ -276,6 +298,13 @@ mozconfig_config() {
                        toolkit_comment="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"
@@ -302,19 +331,15 @@ mozconfig_config() {
                mozconfig_annotate '' --enable-replace-malloc
        fi
 
-       mozconfig_annotate '' --target="${CTARGET:-${CHOST}}"
-       mozconfig_annotate '' --build="${CTARGET:-${CHOST}}"
-
-       use ffmpeg || mozconfig_annotate '-ffmpeg' --disable-ffmpeg
-       if use gstreamer ; then
-               use ffmpeg && einfo "${PN} will not use ffmpeg unless 
gstreamer:1.0 is not available at runtime"
-               mozconfig_annotate '+gstreamer' --enable-gstreamer=1.0
-       elif use gstreamer-0 ; then
-               use ffmpeg && einfo "${PN} will not use ffmpeg unless 
gstreamer:0.10 is not available at runtime"
-               mozconfig_annotate '+gstreamer-0' --enable-gstreamer=0.10
-       else
-               mozconfig_annotate '' --disable-gstreamer
+       # 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.
+       mozconfig_annotate '' --target="${CHOST}"
+       if [[ "${CBUILD:-${CHOST}}" != "${CHOST}" ]]; then
+               # set --host only when cross-compiling
+               mozconfig_annotate '' --host="${CBUILD:-${CHOST}}"
        fi
+
        mozconfig_use_enable pulseaudio
 
        mozconfig_use_enable system-cairo
@@ -322,6 +347,8 @@ mozconfig_config() {
        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
@@ -339,3 +366,44 @@ mozconfig_config() {
                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
+}

diff --git a/eclass/mozcoreconf-v4.eclass b/eclass/mozcoreconf-v4.eclass
new file mode 100644
index 0000000..88f7b4b
--- /dev/null
+++ b/eclass/mozcoreconf-v4.eclass
@@ -0,0 +1,277 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+#
+# @ECLASS: mozcoreconf.eclass
+# @MAINTAINER:
+# Mozilla team <mozi...@gentoo.org>
+# @BLURB: core options and configuration functions for mozilla
+# @DESCRIPTION:
+#
+# inherit mozconfig-v5.* or above for mozilla configuration support
+
+# @ECLASS-VARIABLE: MOZILLA_FIVE_HOME
+# @DESCCRIPTION:
+# This is an eclass-generated variable that defines the rpath that the mozilla
+# product will be installed in.  Read-only
+
+if [[ ! ${_MOZCORECONF_V3} ]]; then
+
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE='ncurses,sqlite,ssl,threads'
+
+inherit multilib toolchain-funcs flag-o-matic python-any-r1 versionator
+
+IUSE="${IUSE} custom-cflags custom-optimization"
+
+DEPEND="virtual/pkgconfig
+       ${PYTHON_DEPS}"
+
+# @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
+       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
+       eval 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=".*"
+
+       if [[ $(gcc-major-version) -eq 3 ]]; then
+               ewarn "Unsupported compiler detected, DO NOT file bugs for"
+               ewarn "outdated compilers. Bugs opened with gcc-3 will be 
closed"
+               ewarn "invalid."
+       fi
+
+       python-any-r1_pkg_setup
+}
+
+# @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)
+
+       ####################################
+       #
+       # 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)
+                       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
+       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 -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
+       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
+               ;;
+       esac
+
+       # Go a little faster; use less RAM
+       append-flags "$MAKEEDIT_FLAGS"
+
+       # Use the MOZILLA_FIVE_HOME for the rpath
+       append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}"
+       # Set MOZILLA_FIVE_HOME in mozconfig
+       mozconfig_annotate '' 
--with-default-mozilla-five-home=${MOZILLA_FIVE_HOME}
+
+       ####################################
+       #
+       # mozconfig setup
+       #
+       ####################################
+
+       mozconfig_annotate disable_update_strip \
+               --disable-pedantic \
+               --disable-updater \
+               --disable-strip \
+               --disable-install-strip \
+               --disable-installer \
+               --disable-strip-libs
+
+       if [[ ${PN} != seamonkey ]]; then
+               mozconfig_annotate basic_profile \
+                       --disable-profilelocking \
+                       --enable-single-profile \
+                       --disable-profilesharing
+       fi
+
+       # Here is a strange one...
+       if is-flag '-mcpu=ultrasparc*' || is-flag '-mtune=ultrasparc*'; then
+               mozconfig_annotate "building on ultrasparc" 
--enable-js-ultrasparc
+       fi
+
+       # Currently --enable-elf-dynstr-gc only works for x86,
+       # thanks to Jason Wever <we...@gentoo.org> for the fix.
+       if use x86 && [[ ${enable_optimize} != -O0 ]]; then
+               mozconfig_annotate "${ARCH} optimized build" 
--enable-elf-dynstr-gc
+       fi
+
+       # 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:
+# 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
+       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_V3=1
+fi

Reply via email to