axs         14/10/14 16:10:36

  Modified:             ChangeLog
  Added:                mozconfig-v5.31.eclass mozconfig-v5.33.eclass
                        mozcoreconf-v3.eclass
  Removed:              mozconfig-v4.1.eclass
  Log:
  added bumps to mozilla config eclasses and removed old

Revision  Changes    Path
1.1383               eclass/ChangeLog

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1383&view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1383&content-type=text/plain
diff : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.1382&r2=1.1383

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.1382
retrieving revision 1.1383
diff -u -r1.1382 -r1.1383
--- ChangeLog   9 Oct 2014 16:55:28 -0000       1.1382
+++ ChangeLog   14 Oct 2014 16:10:36 -0000      1.1383
@@ -1,6 +1,11 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1382 2014/10/09 
16:55:28 pesa Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1383 2014/10/14 
16:10:36 axs Exp $
+
+  14 Oct 2014; Ian Stakenvicius (_AxS_) <a...@gentoo.org>
+  -mozconfig-v4.1.eclass, +mozconfig-v5.31.eclass, +mozconfig-v5.33.eclass,
+  +mozcoreconf-v3.eclass:
+  added bumps to mozilla config eclasses and removed old
 
   09 Oct 2014; Davide Pesavento <p...@gentoo.org> qt5-build.eclass:
   Fix assignments to RESTRICT.



1.1                  eclass/mozconfig-v5.31.eclass

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/mozconfig-v5.31.eclass?rev=1.1&view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/mozconfig-v5.31.eclass?rev=1.1&content-type=text/plain

Index: mozconfig-v5.31.eclass
===================================================================
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/eclass/mozconfig-v5.31.eclass,v 1.1 
2014/10/14 16:10:36 axs Exp $
#
# @ECLASS: mozconfig-v5.31.eclass
# @MAINTAINER:
# mozilla team <mozi...@gentoo.org>
# @BLURB: the new mozilla common configuration eclass for FF31 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 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.10: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 )
        >=sys-libs/zlib-1.2.3
        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
        virtual/libffi
        gstreamer? ( media-plugins/gst-plugins-meta:1.0[ffmpeg] )
        x11-libs/libX11
        x11-libs/libXext
        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.4.2:3[secure-delete,debug=] )
        system-libvpx? ( =media-libs/libvpx-1.3.0* )
"

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}"

# @FUNCTION: mozconfig_config
# @DESCRIPTION:
# Set common configure options for mozilla packages.
# Call this within src_configure() phase, after mozconfig_init
#
# Example:
#
# inherit mozconfig-v5.31
#
# 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

        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
        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

        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 '' --enable-system-hunspell
        mozconfig_annotate '' --disable-gnomevfs
        mozconfig_annotate '' --disable-gnomeui
        mozconfig_annotate '' --enable-gio
        mozconfig_annotate '' --disable-crashreporter
        mozconfig_annotate '' --with-system-png
        mozconfig_annotate '' --enable-system-ffi
        mozconfig_annotate '' --disable-gold
        mozconfig_annotate '' --disable-gconf

        # We must force enable jemalloc 3 threw .mozconfig
        echo "export MOZ_JEMALLOC=1" >> "${S}"/.mozconfig || die
        mozconfig_annotate '' --enable-jemalloc
        mozconfig_annotate '' --enable-replace-malloc

        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
}



1.1                  eclass/mozconfig-v5.33.eclass

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/mozconfig-v5.33.eclass?rev=1.1&view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/mozconfig-v5.33.eclass?rev=1.1&content-type=text/plain

Index: mozconfig-v5.33.eclass
===================================================================
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/eclass/mozconfig-v5.33.eclass,v 1.1 
2014/10/14 16:10:36 axs Exp $
#
# @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 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.10: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/libXext
        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.5:3[secure-delete,debug=] )
        system-libvpx? ( =media-libs/libvpx-1.3.0* )
"

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}"

# @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

        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
        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
        mozconfig_annotate 'Gentoo default' --with-system-zlib

        # We must force-enable jemalloc 3 via .mozconfig
        echo "export MOZ_JEMALLOC=1" >> "${S}"/.mozconfig || die
        mozconfig_annotate '' --enable-jemalloc
        mozconfig_annotate '' --enable-replace-malloc

        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
}



1.1                  eclass/mozcoreconf-v3.eclass

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/mozcoreconf-v3.eclass?rev=1.1&view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/mozcoreconf-v3.eclass?rev=1.1&content-type=text/plain

Index: mozcoreconf-v3.eclass
===================================================================
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/eclass/mozcoreconf-v3.eclass,v 1.1 
2014/10/14 16:10:36 axs Exp $
#
# @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

PYTHON_COMPAT=( python2_7 )
PYTHON_REQ_USE='threads,sqlite'

inherit multilib 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 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

        # 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"

        ####################################
        #
        # 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
}





Reply via email to