mozilla eclasses: remove old mozcoreconf and mozlinguas
authorIan Stakenvicius <axs@gentoo.org>
Thu, 23 Feb 2017 15:49:21 +0000 (10:49 -0500)
committerIan Stakenvicius <axs@gentoo.org>
Thu, 23 Feb 2017 17:01:21 +0000 (12:01 -0500)
eclass/mozcoreconf-2.eclass [deleted file]
eclass/mozcoreconf-v3.eclass [deleted file]
eclass/mozlinguas.eclass [deleted file]

diff --git a/eclass/mozcoreconf-2.eclass b/eclass/mozcoreconf-2.eclass
deleted file mode 100644 (file)
index d7008b9..0000000
+++ /dev/null
@@ -1,274 +0,0 @@
-# Copyright 1999-2014 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-#
-# mozcoreconf.eclass : core options for mozilla
-# inherit mozconfig-2 if you need USE flags
-
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE='threads,sqlite'
-
-inherit multilib flag-o-matic python-any-r1 versionator
-
-IUSE="${IUSE} custom-cflags custom-optimization"
-
-RDEPEND="x11-libs/libXrender
-       x11-libs/libXt
-       >=sys-libs/zlib-1.1.4"
-
-DEPEND="${RDEPEND}
-       virtual/pkgconfig
-       ${PYTHON_DEPS}"
-
-# mozconfig_annotate: 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
-}
-
-# mozconfig_use_enable: 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}"
-}
-
-# mozconfig_use_with: 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}"
-}
-
-# mozconfig_use_extension: 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}
-}
-
-mozversion_is_new_enough() {
-       case ${PN} in
-               firefox|thunderbird)
-                       if [[ $(get_version_component_range 1) -ge 17 ]] ; then
-                               return 0
-                       fi
-               ;;
-               seamonkey)
-                       if [[ $(get_version_component_range 1) -eq 2 ]] && [[ $(get_version_component_range 2) -ge 14 ]] ; then
-                               return 0
-                       fi
-               ;;
-       esac
-
-       return 1
-}
-
-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
-}
-
-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 system_libs \
-               --with-system-jpeg \
-               --with-system-zlib \
-               --enable-pango \
-               --enable-system-cairo
-               if ! $(mozversion_is_new_enough) ; then
-                       mozconfig_annotate system-libs --enable-svg
-               fi
-
-       mozconfig_annotate disable_update_strip \
-               --disable-pedantic \
-               --disable-updater \
-               --disable-strip \
-               --disable-install-strip
-               if ! $(mozversion_is_new_enough) ; then
-                       mozconfig_annotate disable_update_strip \
-                               --disable-installer \
-                               --disable-strip-libs
-               fi
-
-       if [[ ${PN} != seamonkey ]]; then
-               mozconfig_annotate basic_profile \
-                       --disable-profilelocking
-                       if ! $(mozversion_is_new_enough) ; then
-                               mozconfig_annotate basic_profile \
-                                       --enable-single-profile \
-                                       --disable-profilesharing
-                       fi
-       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 <weeve@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
-}
-
-# mozconfig_final: display a table describing all configuration options paired
-# with reasons, then clean up extensions list
-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
-}
-
diff --git a/eclass/mozcoreconf-v3.eclass b/eclass/mozcoreconf-v3.eclass
deleted file mode 100644 (file)
index 5060c73..0000000
+++ /dev/null
@@ -1,261 +0,0 @@
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-#
-# @ECLASS: mozcoreconf.eclass
-# @MAINTAINER:
-# Mozilla team <mozilla@gentoo.org>
-# @BLURB: core options and configuration functions for mozilla
-# @DESCRIPTION:
-#
-# inherit mozconfig-v5.* or above for mozilla configuration support
-
-if [[ ! ${_MOZCORECONF_V3} ]]; then
-
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE='ncurses,sqlite,ssl,threads'
-
-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 <weeve@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
diff --git a/eclass/mozlinguas.eclass b/eclass/mozlinguas.eclass
deleted file mode 100644 (file)
index 8e9f409..0000000
+++ /dev/null
@@ -1,315 +0,0 @@
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-# @ECLASS: mozlinguas.eclass
-# @MAINTAINER:
-# mozilla@gentoo.org
-# @AUTHOR:
-# Nirbheek Chauhan <nirbheek@gentoo.org>
-# Ian Stakenvicius <axs@gentoo.org>
-# @BLURB: Handle language packs for mozilla products
-# @DESCRIPTION:
-# Sets IUSE according to MOZ_LANGS (language packs available). Also exports
-# src_unpack, src_compile and src_install for use in ebuilds, and provides
-# supporting functions for langpack generation and installation.
-
-inherit mozextension
-
-case "${EAPI:-0}" in
-       0|1)
-               die "EAPI ${EAPI:-0} does not support the '->' SRC_URI operator";;
-       2|3|4|5|6)
-               EXPORT_FUNCTIONS src_unpack src_compile src_install;;
-       *)
-               die "EAPI ${EAPI} is not supported, contact eclass maintainers";;
-esac
-
-# @ECLASS-VARIABLE: MOZ_LANGS
-# @DESCRIPTION:
-# Array containing the list of language pack xpis available for
-# this release. The list can be updated with scripts/get_langs.sh from the
-# mozilla overlay.
-: ${MOZ_LANGS:=()}
-
-# @ECLASS-VARIABLE: MOZ_PV
-# @DESCRIPTION:
-# Ebuild package version converted to equivalent upstream version.
-# Defaults to ${PV}, and should be overridden for alphas, betas, and RCs
-: ${MOZ_PV:="${PV}"}
-
-# @ECLASS-VARIABLE: MOZ_PN
-# @DESCRIPTION:
-# Ebuild package name converted to equivalent upstream name.
-# Defaults to ${PN}, and should be overridden for binary ebuilds.
-: ${MOZ_PN:="${PN}"}
-
-# @ECLASS-VARIABLE: MOZ_P
-# @DESCRIPTION:
-# Ebuild package name + version converted to upstream equivalent.
-# Defaults to ${MOZ_PN}-${MOZ_PV}
-: ${MOZ_P:="${MOZ_PN}-${MOZ_PV}"}
-
-# @ECLASS-VARIABLE: MOZ_FTP_URI
-# @DESCRIPTION:
-# The ftp URI prefix for the release tarballs and language packs.
-: ${MOZ_FTP_URI:=""}
-
-# @ECLASS-VARIABLE: MOZ_HTTP_URI
-# @DESCRIPTION:
-# The http URI prefix for the release tarballs and language packs.
-: ${MOZ_HTTP_URI:=""}
-
-# @ECLASS-VARIABLE: MOZ_LANGPACK_PREFIX
-# @DESCRIPTION:
-# The relative path till the lang code in the langpack file URI.
-# Defaults to ${MOZ_PV}/linux-i686/xpi/
-: ${MOZ_LANGPACK_PREFIX:="${MOZ_PV}/linux-i686/xpi/"}
-
-# @ECLASS-VARIABLE: MOZ_LANGPACK_SUFFIX
-# @DESCRIPTION:
-# The suffix after the lang code in the langpack file URI.
-# Defaults to '.xpi'
-: ${MOZ_LANGPACK_SUFFIX:=".xpi"}
-
-# @ECLASS-VARIABLE: MOZ_LANGPACK_UNOFFICIAL
-# @DESCRIPTION:
-# The status of the langpack, used to differentiate within
-# Manifests and on Gentoo mirrors as to when the langpacks are
-# generated officially by Mozilla or if they were generated
-# unofficially by others (ie the Gentoo mozilla team).  When
-# this var is set, the distfile will have a .unofficial.xpi
-# suffix.
-: ${MOZ_LANGPACK_UNOFFICIAL:=""}
-
-# @ECLASS-VARIABLE: MOZ_GENERATE_LANGPACKS
-# @DESCRIPTION:
-# This flag specifies whether or not the langpacks should be
-# generated directly during the build process, rather than
-# being downloaded and installed from upstream pre-built
-# extensions.  Primarily it supports pre-release builds.
-# Defaults to empty.
-: ${MOZ_GENERATE_LANGPACKS:=""}
-
-# @ECLASS-VARIABLE: MOZ_L10N_SOURCEDIR
-# @DESCRIPTION:
-# The path that l10n sources can be found at, once unpacked.
-# Defaults to ${WORKDIR}/l10n-sources
-: ${MOZ_L10N_SOURCEDIR:="${WORKDIR}/l10n-sources"}
-
-# @ECLASS-VARIABLE: MOZ_L10N_URI_PREFIX
-# @DESCRIPTION:
-# The full URI prefix of the distfile for each l10n locale.  The
-# AB_CD and MOZ_L10N_URI_SUFFIX will be appended to this to complete the
-# SRC_URI when MOZ_GENERATE_LANGPACKS is set.  If empty, nothing will
-# be added to SRC_URI.
-# Defaults to empty.
-: ${MOZ_L10N_URI_PREFIX:=""}
-
-# @ECLASS-VARIABLE: MOZ_L10N_URI_SUFFIX
-# @DESCRIPTION:
-# The suffix of l10n source distfiles.
-# Defaults to '.tar.xz'
-: ${MOZ_L10N_URI_SUFFIX:=".tar.xz"}
-
-# Add linguas_* to IUSE according to available language packs
-# No language packs for alphas and betas
-if ! [[ -n ${MOZ_GENERATE_LANGPACKS} ]] ; then
-       if ! [[ ${PV} =~ alpha|beta ]] || { [[ ${PN} == seamonkey ]] && ! [[ ${PV} =~ alpha ]] ; } ; then
-       [[ -z ${MOZ_FTP_URI} ]] && [[ -z ${MOZ_HTTP_URI} ]] && die "No URI set to download langpacks, please set one of MOZ_{FTP,HTTP}_URI"
-       for x in "${MOZ_LANGS[@]}" ; do
-               # en and en_US are handled internally
-               if [[ ${x} == en ]] || [[ ${x} == en-US ]]; then
-                       continue
-               fi
-               SRC_URI+=" linguas_${x/-/_}? ("
-               [[ -n ${MOZ_FTP_URI} ]] && SRC_URI+="
-                       ${MOZ_FTP_URI}/${MOZ_LANGPACK_PREFIX}${x}${MOZ_LANGPACK_SUFFIX} -> ${MOZ_P}-${x}${MOZ_LANGPACK_UNOFFICIAL:+.unofficial}.xpi"
-               [[ -n ${MOZ_HTTP_URI} ]] && SRC_URI+="
-                       ${MOZ_HTTP_URI}/${MOZ_LANGPACK_PREFIX}${x}${MOZ_LANGPACK_SUFFIX} -> ${MOZ_P}-${x}${MOZ_LANGPACK_UNOFFICIAL:+.unofficial}.xpi"
-               SRC_URI+=" )"
-               IUSE+=" linguas_${x/-/_}"
-               # We used to do some magic if specific/generic locales were missing, but
-               # we stopped doing that due to bug 325195.
-       done
-       fi
-else
-       for x in "${MOZ_LANGS[@]}" ; do
-               # en and en_US are handled internally
-               if [[ ${x} == en ]] || [[ ${x} == en-US ]]; then
-                       continue
-               fi
-# Do NOT grab l10n sources from hg tip at this time, since it is a moving target
-#              if [[ ${PV} =~ alpha ]]; then
-#                      # Please note that this URI is not deterministic - digest breakage could occur
-#                      SRC_URI+=" linguas_${x/-/_}? ( http://hg.mozilla.org/releases/l10n/mozilla-aurora/ach/archive/tip.tar.bz2 -> ${MOZ_P}-l10n-${x}.tar.bz2 )"
-#              elif [[ ${PV} =~ beta ]] && ! [[ ${PN} == seamonkey ]]; then
-#                      # Please note that this URI is not deterministic - digest breakage could occur
-#                      SRC_URI+=" linguas_${x/-/_}? ( http://hg.mozilla.org/releases/l10n/mozilla-beta/ach/archive/tip.tar.bz2 -> ${MOZ_P}-l10n-${x}.tar.bz2 )"
-#              elif [[ -n ${MOZ_L10N_URI_PREFIX} ]]; then
-               if [[ -n ${MOZ_L10N_URI_PREFIX} ]]; then
-                       SRC_URI+=" linguas_${x/-/_}? ( ${MOZ_L10N_URI_PREFIX}${x}${MOZ_L10N_URI_SUFFIX} )"
-               fi
-               IUSE+=" linguas_${x/-/_}"
-       done
-fi
-unset x
-
-# @FUNCTION: mozlinguas_export
-# @INTERNAL
-# @DESCRIPTION:
-# Generate the list of language packs called "mozlinguas"
-# This list is used to unpack and install the xpi language packs
-mozlinguas_export() {
-       if [[ ${PN} == seamonkey ]] ; then
-               [[ ${PV} =~ alpha ]] && ! [[ -n ${MOZ_GENERATE_LANGPACKS} ]] && return
-       else
-               [[ ${PV} =~ alpha|beta ]] && ! [[ -n ${MOZ_GENERATE_LANGPACKS} ]] && return
-       fi
-       local lingua
-       mozlinguas=()
-       for lingua in ${LINGUAS}; do
-               if has ${lingua} en en_US; then
-                       # For mozilla products, en and en_US are handled internally
-                       continue
-               # If this language is supported by ${P},
-               elif has ${lingua} "${MOZ_LANGS[@]//-/_}"; then
-                       # Add the language to mozlinguas, if it isn't already there
-                       has ${lingua//_/-} "${mozlinguas[@]}" || mozlinguas+=(${lingua//_/-})
-                       continue
-               # For each short lingua that isn't in MOZ_LANGS,
-               # We used to add *all* long MOZ_LANGS to the mozlinguas list,
-               # but we stopped doing that due to bug 325195.
-               else
-                       :
-               fi
-               ewarn "Sorry, but ${P} does not support the ${lingua} locale"
-       done
-}
-
-# @FUNCTION: mozlinguas_src_unpack
-# @DESCRIPTION:
-# Unpack xpi language packs according to the user's LINGUAS settings
-mozlinguas_src_unpack() {
-       local x
-       if ! [[ -n ${MOZ_GENERATE_LANGPACKS} ]]; then
-               mozlinguas_export
-               for x in "${mozlinguas[@]}"; do
-                       # FIXME: Add support for unpacking xpis to portage
-                       xpi_unpack "${MOZ_P}-${x}${MOZ_LANGPACK_UNOFFICIAL:+.unofficial}.xpi"
-               done
-               if [[ "${mozlinguas[*]}" != "" && "${mozlinguas[*]}" != "en" ]]; then
-                       einfo "Selected language packs (first will be default): ${mozlinguas[*]}"
-               fi
-       fi
-}
-
-# @FUNCTION: mozlinguas_mozconfig
-# @DESCRIPTION:
-# if applicable, add the necessary flag to .mozconfig to support
-# the generation of locales.  Note that this function requires
-# mozconfig_annontate to already be declared via an inherit of
-# mozconfig or mozcoreconf.
-mozlinguas_mozconfig() {
-       if [[ -n ${MOZ_GENERATE_LANGPACKS} ]]; then
-               if declare -f mozconfig_annotate >/dev/null ; then
-                       mozconfig_annotate 'for building locales' --with-l10n-base=${MOZ_L10N_SOURCEDIR}
-               else
-                       die "Could not configure l10n-base, mozconfig_annotate not declared -- missing inherit?"
-               fi
-       fi
-}
-
-# @FUNCTION: mozlinguas_src_compile
-# @DESCRIPTION:
-# if applicable, build the selected locales.
-mozlinguas_src_compile() {
-       if [[ -n ${MOZ_GENERATE_LANGPACKS} ]]; then
-               # leverage BUILD_OBJ_DIR if set otherwise assume PWD.
-               local x y targets=( "langpack" ) localedir="${BUILD_OBJ_DIR:-.}"
-               case ${PN} in
-                       *firefox)
-                               localedir+="/browser/locales"
-                               ;;
-                       seamonkey)
-                               localedir+="/suite/locales"
-                               ;;
-                       *thunderbird)
-                               localedir+="/mail/locales"
-                               targets+=( "calendar-langpack" )
-                               ;;
-                       *) die "Building locales for ${PN} is not supported."
-               esac
-               pushd "${localedir}" > /dev/null || die
-               mozlinguas_export
-               for x in "${mozlinguas[@]}"; do for y in "${targets[@]}"; do
-                       emake ${y}-${x} LOCALE_MERGEDIR="./${y}-${x}"
-               done; done
-               popd > /dev/null || die
-       fi
-}
-
-# @FUNCTION: mozlinguas_xpistage_langpacks
-# @DESCRIPTION:
-# Add extra langpacks to the xpi-stage dir for prebuilt plugins
-#
-# First argument is the path to the extension
-# Second argument is the prefix of the source (same as first if unspecified)
-# Remaining arguments are the modules in the extension that are localized
-#  (basename of first if unspecified)
-#
-# Example - installing extra langpacks for lightning:
-# src_install() {
-#      ... # general installation steps
-#      mozlinguas_xpistage_langpacks \
-#              "${BUILD_OBJ_DIR}"/dist/xpi-stage/lightning \
-#              "${WORKDIR}"/lightning \
-#              lightning calendar
-#      ... # proceed with installation from the xpi-stage dir
-# }
-
-mozlinguas_xpistage_langpacks() {
-       local l c modpath="${1}" srcprefix="${1}" modules=( "${1##*/}" )
-       shift
-       if [[ -n ${1} ]] ; then srcprefix="${1}" ; shift ; fi
-       if [[ -n ${1} ]] ; then modules=( $@ ) ; fi
-
-       mozlinguas_export
-       mkdir -p "${modpath}/chrome" || die
-       for l in "${mozlinguas[@]}"; do for c in "${modules[@]}" ; do
-               if [[ -e "${srcprefix}-${l}/chrome/${c}-${l}" ]]; then
-                       cp -RLp -t "${modpath}/chrome" "${srcprefix}-${l}/chrome/${c}-${l}" || die
-                       grep "locale ${c} ${l} chrome/" "${srcprefix}-${l}/chrome.manifest" \
-                               >>"${modpath}/chrome.manifest" || die
-               elif [[ -e "${srcprefix}/chrome/${c}-${l}" ]]; then
-                       cp -RLp -t "${modpath}/chrome" "${srcprefix}/chrome/${c}-${l}" || die
-                       grep "locale ${c} ${l} chrome/" "${srcprefix}/chrome.manifest" \
-                               >>"${modpath}/chrome.manifest" || die
-               else
-                       ewarn "Locale ${l} was not found for ${c}, skipping."
-               fi
-       done; done
-}
-
-# @FUNCTION: mozlinguas_src_install
-# @DESCRIPTION:
-# Install xpi language packs according to the user's LINGUAS settings
-# NOTE - uses ${BUILD_OBJ_DIR} or PWD if unset, for source-generated langpacks
-mozlinguas_src_install() {
-       local x
-       mozlinguas_export
-       if [[ -n ${MOZ_GENERATE_LANGPACKS} ]]; then
-               local repopath="${WORKDIR}/${PN}-generated-langpacks"
-               mkdir -p "${repopath}"
-               pushd "${BUILD_OBJ_DIR:-.}"/dist/*/xpi > /dev/null || die
-               for x in "${mozlinguas[@]}"; do
-                       cp "${MOZ_P}.${x}.langpack.xpi" \
-                       "${repopath}/${MOZ_P}-${x}${MOZ_LANGPACK_UNOFFICIAL:+.unofficial}.xpi" || die
-                       xpi_unpack "${repopath}/${MOZ_P}-${x}${MOZ_LANGPACK_UNOFFICIAL:+.unofficial}.xpi"
-               done
-               popd > /dev/null || die
-       fi
-       for x in "${mozlinguas[@]}"; do
-               xpi_install "${WORKDIR}/${MOZ_P}-${x}${MOZ_LANGPACK_UNOFFICIAL:+.unofficial}"
-       done
-}