summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'eclass/mozlinguas.eclass')
-rw-r--r--eclass/mozlinguas.eclass315
1 files changed, 0 insertions, 315 deletions
diff --git a/eclass/mozlinguas.eclass b/eclass/mozlinguas.eclass
deleted file mode 100644
index 8e9f409e4fff..000000000000
--- a/eclass/mozlinguas.eclass
+++ /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
-}