From 5c845fa4eff437b4a22bb0181fbde03776f2ca36 Mon Sep 17 00:00:00 2001 From: Alfred Wingate Date: Sat, 9 Jul 2022 19:51:05 +0300 Subject: [PATCH] eclass: remove old icecat eclasses Signed-off-by: Alfred Wingate --- eclass/icecatconfig-v6.60.eclass | 422 ------------------------------ eclass/icecatlinguas-v2.eclass | 382 ---------------------------- eclass/mozconfig-v6.56.eclass | 424 ------------------------------- eclass/mozcoreconf-v5.eclass | 278 -------------------- 4 files changed, 1506 deletions(-) delete mode 100644 eclass/icecatconfig-v6.60.eclass delete mode 100644 eclass/icecatlinguas-v2.eclass delete mode 100644 eclass/mozconfig-v6.56.eclass delete mode 100644 eclass/mozcoreconf-v5.eclass diff --git a/eclass/icecatconfig-v6.60.eclass b/eclass/icecatconfig-v6.60.eclass deleted file mode 100644 index d7f6644..0000000 --- a/eclass/icecatconfig-v6.60.eclass +++ /dev/null @@ -1,422 +0,0 @@ -# Copyright 2019-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 -# -# @ECLASS: icecatconfig-v6.60.eclass -# @MAINTAINER: -# moog621@gmail.com -# @SUPPORTED_EAPIS: 5 6 7 -# @BLURB: the new gnuzilla common configuration eclass for FF33 and newer, v6 -# @DESCRIPTION: -# This eclass is used in gnuzilla ebuilds (icecat) -# to provide a single common place for the common gnuzilla engine compoments. -# -# The eclass provides all common dependencies as well as common use flags. -# -# Some use flags which may be optional in particular gnuzilla packages can be -# supported through setting eclass variables. -# -# This eclass inherits mozconfig helper functions as defined in mozcoreconf-v3, -# and so ebuilds inheriting this eclass do not need to inherit that. - -case ${EAPI} in - 0|1|2|3|4) - die "EAPI=${EAPI} not supported" - ;; - 5) - inherit multilib - ;; -esac - -inherit flag-o-matic toolchain-funcs mozcoreconf-v6 - -# @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 -# deterministic jit support via IUSE="jit". The upstream default will be used -# otherwise, which is generally to enable jit unless support for the platform -# is missing. -# -# Set the variable to "enabled" if the use flag should be enabled by default. -# Set the variable to any value if the use flag should exist but not be default-enabled. - -# @ECLASS_VARIABLE: MOZCONFIG_OPTIONAL_GTK3 -# @DESCRIPTION: -# Set this variable before the inherit line, when an ebuild can provide -# optional gtk3 support via IUSE="force-gtk3". Currently this would include -# thunderbird and seamonkey in the future, once support is ready for testing. -# -# Leave the variable UNSET if gtk3 support should not be optionally available. -# Set the variable to "enabled" if the use flag should be enabled by default. -# Set the variable to any value if the use flag should exist but not be default-enabled. -# If gtk+:3 is to be the standard toolkit, do not use this and instead use -# MOZCONFIG_OPTIONAL_GTK2ONLY. - -# @ECLASS_VARIABLE: MOZCONFIG_OPTIONAL_GTK2ONLY -# @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. - -# use-flags common among all gnuzilla ebuilds -IUSE="${IUSE} clang dbus debug neon pulseaudio selinux startup-notification - system-icu system-jpeg system-libevent system-sqlite system-libvpx" - -# some notes on deps: -# gtk:2 minimum is technically 2.10 but gio support (enabled by default) needs 2.14 -# media-libs/mesa needs to be 10.2 or above due to a bug with flash+vdpau - -RDEPEND=">=app-text/hunspell-1.5.4:= - dev-libs/atk - dev-libs/expat - >=x11-libs/cairo-1.10[X] - >=x11-libs/gtk+-2.18:2 - x11-libs/gdk-pixbuf - >=x11-libs/pango-1.22.0 - >=media-libs/libpng-1.6.34:0=[apng] - >=media-libs/mesa-10.2:* - media-libs/fontconfig - >=media-libs/freetype-2.4.10 - kernel_linux? ( !pulseaudio? ( media-libs/alsa-lib ) ) - virtual/freedesktop-icon-theme - dbus? ( >=sys-apps/dbus-0.60 - >=dev-libs/dbus-glib-0.72 ) - startup-notification? ( >=x11-libs/startup-notification-0.8 ) - >=x11-libs/pixman-0.19.2 - >=dev-libs/glib-2.26:2 - >=sys-libs/zlib-1.2.3 - >=virtual/libffi-3.0.10:= - virtual/ffmpeg - x11-libs/libX11 - x11-libs/libXcomposite - x11-libs/libXdamage - x11-libs/libXext - x11-libs/libXfixes - x11-libs/libXrender - x11-libs/libXt - system-icu? ( >=dev-libs/icu-59.1:= ) - system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 ) - system-libevent? ( >=dev-libs/libevent-2.0:0=[threads] ) - system-sqlite? ( >=dev-db/sqlite-3.23.1:3[secure-delete,debug=] ) - system-libvpx? ( - >=media-libs/libvpx-1.5.0:0=[postproc] - >"${prefs_file}" || die - - # force cairo as the canvas renderer on platforms without skia support - if [[ $(tc-endian) == "big" ]] ; then - echo "sticky_pref(\"gfx.canvas.azure.backends\",\"cairo\");" \ - >>"${prefs_file}" || die - echo "sticky_pref(\"gfx.content.azure.backends\",\"cairo\");" \ - >>"${prefs_file}" || die - fi -} diff --git a/eclass/icecatlinguas-v2.eclass b/eclass/icecatlinguas-v2.eclass deleted file mode 100644 index 9d3f564..0000000 --- a/eclass/icecatlinguas-v2.eclass +++ /dev/null @@ -1,382 +0,0 @@ -# Copyright 2019-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -# @ECLASS: icecatlinguas-v2.eclass -# @MAINTAINER: -# moog621@gmail.com -# @AUTHOR: -# moog621@gmail.com -# @SUPPORTED_EAPIS: 2 3 4 5 6 -# @BLURB: Handle language packs for gnuzilla 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_HTTP_URI -# @DESCRIPTION: -# An alternative http URI if it differs from official mozilla URI. -# Defaults to whatever MOZ_HTTP_URI was set to. -: ${MOZ_LANGPACK_HTTP_URI:=${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}/langpacks -: ${MOZ_LANGPACK_PREFIX:="${MOZ_PV}/langpacks/${MOZ_P}."} - -# @ECLASS_VARIABLE: MOZ_LANGPACK_SUFFIX -# @DESCRIPTION: -# The suffix after the lang code in the langpack file URI. -# Defaults to '.xpi' -: ${MOZ_LANGPACK_SUFFIX:=".langpack.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 gnuzilla or if they were generated -# unofficially by others. 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"} - -# @ECLASS_VARIABLE: MOZ_FORCE_UPSTREAM_L10N -# @DESCRIPTION: -# Set this to use upstream langpaks even if the package normally -# shouldn't (ie it is an alpha or beta package) -: ${MOZ_FORCE_UPSTREAM_L10N:=""} - -# @ECLASS_VARIABLE: MOZ_TOO_REGIONALIZED_FOR_L10N -# @INTERNAL -# @DESCRIPTION: -# Upstream identifiers that should not contain region subtags in L10N -MOZ_TOO_REGIONALIZED_FOR_L10N=( fy-NL ga-IE gu-IN hi-IN hy-AM nb-NO nn-NO pa-IN sv-SE ) - -# @ECLASS_VARIABLE: MOZ_INSTALL_L10N_XPIFILE -# @DESCRIPTION: -# Install langpacks as .xpi file instead of unpacked directory. -# Leave unset to install unpacked -: ${MOZ_INSTALL_L10N_XPIFILE:=""} - -# Add l10n_* 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 ]] ; } || [[ -n ${MOZ_FORCE_UPSTREAM_L10N} ]] ; then - [[ -z ${MOZ_FTP_URI} ]] && [[ -z ${MOZ_LANGPACK_HTTP_URI} ]] && die "No URI set to download langpacks, please set one of MOZ_{FTP,HTTP_LANGPACK}_URI" - for x in "${MOZ_LANGS[@]}" ; do - # en and en_US are handled internally - if [[ ${x} == en ]] || [[ ${x} == en-US ]]; then - continue - fi - # strip region subtag if $x is in the list - if has ${x} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then - xflag=${x%%-*} - else - xflag=${x} - fi - SRC_URI+=" l10n_${xflag/[_@]/-}? (" - [[ -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_LANGPACK_HTTP_URI} ]] && SRC_URI+=" - ${MOZ_LANGPACK_HTTP_URI}/${MOZ_LANGPACK_PREFIX}${x}${MOZ_LANGPACK_SUFFIX} -> ${MOZ_P}.${x}${MOZ_LANGPACK_UNOFFICIAL:+.unofficial}.xpi" - SRC_URI+=" )" - IUSE+=" l10n_${xflag/[_@]/-}" -# einfo "MOZ_LANGPACK_HTTP_URI: ${MOZ_LANGPACK_HTTP_URI}" -# einfo "MOZ_LANGPACK_PREFIX: ${MOZ_LANGPACK_PREFIX}" -# einfo "x: ${x}" -# einfo "MOZ_LANGPACK_SUFFIX: ${MOZ_LANGPACK_SUFFIX}" - # 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 - # strip region subtag if $x is in the list - if has ${x} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then - xflag=${x%%-*} - else - xflag=${x} - fi - if [[ -n ${MOZ_L10N_URI_PREFIX} ]]; then - SRC_URI+=" l10n_${xflag/[_@]/-}? ( ${MOZ_L10N_URI_PREFIX}${x}${MOZ_L10N_URI_SUFFIX} )" - fi - IUSE+=" l10n_${xflag/[_@]/-}" - done -fi -unset x xflag - -# @FUNCTION: icecatlinguas_export -# @INTERNAL -# @DESCRIPTION: -# Generate the list of language packs called "icecatlinguas" -# This list is used to unpack and install the xpi language packs -icecatlinguas_export() { - if [[ ${PN} == seamonkey ]] ; then - [[ ${PV} =~ alpha ]] && ! [[ -n ${MOZ_GENERATE_LANGPACKS} ]] && return - else - [[ ${PV} =~ alpha|beta ]] && ! [[ -n ${MOZ_GENERATE_LANGPACKS} ]] && return - fi - local lingua lflag - icecatlinguas=() - # Set icecatlinguas based on the enabled l10n_* USE flags. - for lingua in "${MOZ_LANGS[@]}"; do - # strip region subtag if $x is in the list - if has ${lingua} en en-US; then - # For gnuzilla products, en and en_US are handled internally - continue - elif has ${lingua} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then - lflag=${lingua%%-*} - else - lflag=${lingua} - fi - use l10n_${lflag/[_@]/-} && icecatlinguas+=( ${lingua} ) - done - # Compatibility code - Check LINGUAS and warn if anything set there isn't enabled via l10n - for lingua in ${LINGUAS}; do - if has ${lingua//[_@]/-} en en-US; then - # For gnuzilla products, en and en_US are handled internally - continue - # If this language is supported by ${P}, - elif has ${lingua} "${MOZ_LANGS[@]//-/_}"; then - # Warn the language is missing, if it isn't already there - has ${lingua//[_@]/-} "${icecatlinguas[@]//[_@]/-}" || \ - ewarn "LINGUAS value ${lingua} is not enabled using L10N use flags" - continue - # For each short lingua that isn't in MOZ_LANGS, - # We used to add *all* long MOZ_LANGS to the icecatlinguas list, - # but we stopped doing that due to bug 325195. - else - : - fi - einfo "Sorry, but ${P} does not support the ${lingua} locale in LINGUAS" - done -} - -# @FUNCTION: icecatlinguas_src_unpack -# @DESCRIPTION: -# Unpack xpi language packs according to the user's LINGUAS settings -icecatlinguas_src_unpack() { - local x - einfo "LOL" - if ! [[ -n ${MOZ_GENERATE_LANGPACKS} ]]; then - icecatlinguas_export - for x in "${icecatlinguas[@]}"; do - # FIXME: Add support for unpacking xpis to portage - xpi_unpack "${MOZ_P}.${x}${MOZ_LANGPACK_UNOFFICIAL:+.unofficial}.xpi" - done - if [[ "${icecatlinguas[*]}" != "" && "${icecatlinguas[*]}" != "en" ]]; then - einfo "Selected language packs (first will be default): ${icecatlinguas[*]}" - fi - fi -} -# For the phase function export -icecatlinguas-v2_src_unpack() { - icecatlinguas_src_unpack -} - - -# @FUNCTION: icecatlinguas_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. -icecatlinguas_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: icecatlinguas_src_compile -# @DESCRIPTION: -# if applicable, build the selected locales. -icecatlinguas_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 - icecatlinguas_export - for x in "${icecatlinguas[@]}"; do for y in "${targets[@]}"; do - emake ${y}-${x} LOCALE_MERGEDIR="./${y}-${x}" - done; done - popd > /dev/null || die - fi -} - -# For the phase function export -icecatlinguas-v2_src_compile() { - icecatlinguas_src_compile -} - -# @FUNCTION: icecatlinguas_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 -# icecatlinguas_xpistage_langpacks \ -# "${BUILD_OBJ_DIR}"/dist/xpi-stage/lightning \ -# "${WORKDIR}"/lightning \ -# lightning calendar -# ... # proceed with installation from the xpi-stage dir -# } - -icecatlinguas_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 - - icecatlinguas_export - mkdir -p "${modpath}/chrome" || die - for l in "${icecatlinguas[@]}"; 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: icecatlinguas-v2_src_install -# @DESCRIPTION: -# Install xpi language packs according to the user's L10N settings -# NOTE - uses ${BUILD_OBJ_DIR} or PWD if unset, for source-generated langpacks -icecatlinguas_src_install() { - local x - icecatlinguas_export - if [[ -n ${MOZ_GENERATE_LANGPACKS} ]] && [[ -n ${icecatlinguas[*]} ]]; then - local repopath="${WORKDIR}/${PN}-generated-langpacks" - mkdir -p "${repopath}" || die - pushd "${BUILD_OBJ_DIR:-.}"/dist/*/xpi > /dev/null || die - for x in "${icecatlinguas[@]}"; 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 "${icecatlinguas[@]}"; do - if [[ -n ${MOZ_INSTALL_L10N_XPIFILE} ]]; then - xpi_copy "${WORKDIR}/${MOZ_P}.${x}${MOZ_LANGPACK_UNOFFICIAL:+.unofficial}" - else - xpi_install "${WORKDIR}/${MOZ_P}.${x}${MOZ_LANGPACK_UNOFFICIAL:+.unofficial}" - fi - done -} - -# For the phase function export -icecatlinguas-v2_src_install() { - icecatlinguas_src_install -} diff --git a/eclass/mozconfig-v6.56.eclass b/eclass/mozconfig-v6.56.eclass deleted file mode 100644 index 1aa92b2..0000000 --- a/eclass/mozconfig-v6.56.eclass +++ /dev/null @@ -1,424 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 -# -# @ECLASS: mozconfig-v6.55.eclass -# @MAINTAINER: -# mozilla team -# @BLURB: the new mozilla common configuration eclass for FF33 and newer, v6 -# @DESCRIPTION: -# This eclass is used in mozilla ebuilds (firefox, thunderbird, seamonkey) -# to provide a single common place for the common mozilla engine compoments. -# -# The eclass provides all common dependencies as well as common use flags. -# -# Some use flags which may be optional in particular mozilla packages can be -# supported through setting eclass variables. -# -# This eclass inherits mozconfig helper functions as defined in mozcoreconf-v3, -# and so ebuilds inheriting this eclass do not need to inherit that. - -case ${EAPI} in - 0|1|2|3|4) - die "EAPI=${EAPI} not supported" - ;; - 5) - inherit multilib - ;; -esac - -inherit flag-o-matic toolchain-funcs - -case ${PN} in - (seamonkey) inherit mozcoreconf-v6 ;; - (waterfox) inherit mozcoreconf-v5 ;; - (*) die "Don't use this eclass with some other package!" ;; -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 -# deterministic jit support via IUSE="jit". The upstream default will be used -# otherwise, which is generally to enable jit unless support for the platform -# is missing. -# -# Set the variable to "enabled" if the use flag should be enabled by default. -# Set the variable to any value if the use flag should exist but not be default-enabled. - -# @ECLASS_VARIABLE: MOZCONFIG_OPTIONAL_GTK3 -# @DESCRIPTION: -# Set this variable before the inherit line, when an ebuild can provide -# optional gtk3 support via IUSE="force-gtk3". Currently this would include -# thunderbird and seamonkey in the future, once support is ready for testing. -# -# Leave the variable UNSET if gtk3 support should not be optionally available. -# Set the variable to "enabled" if the use flag should be enabled by default. -# Set the variable to any value if the use flag should exist but not be default-enabled. -# If gtk+:3 is to be the standard toolkit, do not use this and instead use -# MOZCONFIG_OPTIONAL_GTK2ONLY. - -# @ECLASS_VARIABLE: MOZCONFIG_OPTIONAL_GTK2ONLY -# @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 -# optional qt5 support via IUSE="qt5". Currently this would include -# ebuilds for firefox, but thunderbird and seamonkey could follow in the future. -# -# Leave the variable UNSET if qt5 support should not be available. -# Set the variable to "enabled" if the use flag should be enabled by default. -# Set the variable to any value if the use flag should exist but not be default-enabled. - -# use-flags common among all mozilla ebuilds -IUSE="${IUSE} dbus debug neon pulseaudio selinux startup-notification system-harfbuzz - system-icu system-jpeg system-libevent system-sqlite system-libvpx" - -# some notes on deps: -# gtk:2 minimum is technically 2.10 but gio support (enabled by default) needs 2.14 -# media-libs/mesa needs to be 10.2 or above due to a bug with flash+vdpau - -RDEPEND=" - >=app-text/hunspell-1.5.4:= - >=dev-libs/glib-2.26:2 - >=media-libs/freetype-2.4.10 - >=media-libs/libpng-1.6.31:0=[apng] - >=media-libs/mesa-10.2:* - >=sys-libs/zlib-1.2.3 - >=x11-libs/cairo-1.10[X] - >=x11-libs/gtk+-2.18:2 - >=x11-libs/pango-1.22.0 - >=x11-libs/pixman-0.19.2 - dev-libs/atk - dev-libs/expat - dev-libs/libffi - media-libs/fontconfig - media-video/ffmpeg - virtual/freedesktop-icon-theme - x11-libs/gdk-pixbuf - x11-libs/libX11 - x11-libs/libXcomposite - x11-libs/libXdamage - x11-libs/libXext - x11-libs/libXfixes - x11-libs/libXrender - x11-libs/libXt - dbus? ( - >=sys-apps/dbus-0.60 - >=dev-libs/dbus-glib-0.72 - ) - kernel_linux? ( - !pulseaudio? ( - media-libs/alsa-lib - ) - ) - pulseaudio? ( - || ( - media-sound/pulseaudio - >=media-sound/apulse-0.1.9 - ) - ) - startup-notification? ( - >=x11-libs/startup-notification-0.8 - ) - system-icu? ( - >=dev-libs/icu-59.1:= - ) - system-jpeg? ( - >=media-libs/libjpeg-turbo-1.2.1 - ) - system-libevent? ( - >=dev-libs/libevent-2.0:0= - ) - system-sqlite? ( - >=dev-db/sqlite-3.19.3:3[secure-delete,debug=] - ) - system-libvpx? ( - >=media-libs/libvpx-1.5.0:0=[postproc] - ) - system-harfbuzz? ( - >=media-libs/harfbuzz-1.3.3:0= - >=media-gfx/graphite2-1.3.9-r1 - ) -" - -if [[ -n ${MOZCONFIG_OPTIONAL_GTK3} ]]; then - MOZCONFIG_OPTIONAL_GTK2ONLY= - if [[ ${MOZCONFIG_OPTIONAL_GTK3} = "enabled" ]]; then - IUSE+=" +force-gtk3" - else - IUSE+=" force-gtk3" - fi - RDEPEND+=" force-gtk3? ( >=x11-libs/gtk+-3.4.0:3 )" -elif [[ -n ${MOZCONFIG_OPTIONAL_GTK2ONLY} ]]; then - if [[ ${MOZCONFIG_OPTIONAL_GTK2ONLY} = "enabled" ]]; then - IUSE+=" +gtk2" - else - IUSE+=" gtk2" - fi - RDEPEND+=" !gtk2? ( >=x11-libs/gtk+-3.4.0:3 )" -else - # no gtk3 related dep set by optional use flags, force it - RDEPEND+=" >=x11-libs/gtk+-3.4.0:3" -fi -if [[ -n ${MOZCONFIG_OPTIONAL_WIFI} ]]; then - if [[ ${MOZCONFIG_OPTIONAL_WIFI} = "enabled" ]]; then - IUSE+=" +wifi" - else - IUSE+=" wifi" - fi - RDEPEND+=" - wifi? ( - kernel_linux? ( >=sys-apps/dbus-0.60 - >=dev-libs/dbus-glib-0.72 - net-misc/networkmanager ) - )" -fi - -DEPEND="app-arch/zip - app-arch/unzip - >=sys-devel/binutils-2.16.1 - sys-apps/findutils - pulseaudio? ( media-sound/pulseaudio ) - ${RDEPEND}" - -RDEPEND+=" - pulseaudio? ( || ( media-sound/pulseaudio - >=media-sound/apulse-0.1.9 ) ) - selinux? ( sec-policy/selinux-mozilla )" - -# @FUNCTION: mozconfig_config -# @DESCRIPTION: -# Set common configure options for mozilla packages. -# Call this within src_configure() phase, after mozconfig_init -# -# Example: -# -# inherit mozconfig-v6.46 -# -# src_configure() { -# mozconfig_init -# mozconfig_config -# # ... misc ebuild-unique settings via calls to -# # ... mozconfig_{annotate,use_with,use_enable} -# mozconfig_final -# } - -mozconfig_config() { - # Migrated from mozcoreconf-2 - mozconfig_annotate 'system_libs' \ - --with-system-zlib \ - --with-system-bz2 - - # Disable for testing purposes only - mozconfig_annotate 'Upstream bug 1341234' --disable-stylo - - # Must pass release in order to properly select linker via gold useflag - mozconfig_annotate 'Enable by Gentoo' --enable-release - - # Must pass --enable-gold if using ld.gold - if tc-ld-is-gold ; then - mozconfig_annotate 'tc-ld-is-gold=true' --enable-gold - else - mozconfig_annotate 'tc-ld-is-gold=false' --disable-gold - 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 - - # Enable position independent executables - mozconfig_annotate 'enabled by Gentoo' --enable-pie - mozconfig_use_enable debug - mozconfig_use_enable debug tests - - if ! use debug ; then - mozconfig_annotate 'disabled by Gentoo' --disable-debug-symbols - else - mozconfig_annotate 'enabled by Gentoo' --enable-debug-symbols - fi - - mozconfig_use_enable startup-notification - - if [[ -n ${MOZCONFIG_OPTIONAL_WIFI} ]] ; then - # wifi pulls in dbus so manage both here - mozconfig_use_enable wifi necko-wifi - if use kernel_linux && use wifi && ! use dbus; then - echo "Enabling dbus support due to wifi request" - mozconfig_annotate 'dbus required by necko-wifi on linux' --enable-dbus - else - mozconfig_use_enable dbus - fi - else - mozconfig_use_enable dbus - mozconfig_annotate 'disabled' --disable-necko-wifi - fi - - if [[ -n ${MOZCONFIG_OPTIONAL_JIT} ]]; then - mozconfig_use_enable jit ion - fi - - # These are enabled by default in all mozilla applications - mozconfig_annotate '' --with-system-nspr --with-nspr-prefix="${SYSROOT}${EPREFIX}"/usr - mozconfig_annotate '' --with-system-nss --with-nss-prefix="${SYSROOT}${EPREFIX}"/usr - mozconfig_annotate '' --x-includes="${SYSROOT}${EPREFIX}"/usr/include --x-libraries="${SYSROOT}${EPREFIX}"/usr/$(get_libdir) - if use system-libevent; then - mozconfig_annotate '' --with-system-libevent="${SYSROOT}${EPREFIX}"/usr - fi - mozconfig_annotate '' --prefix="${EPREFIX}"/usr - mozconfig_annotate '' --libdir="${EPREFIX}"/usr/$(get_libdir) - mozconfig_annotate 'Gentoo default' --enable-system-hunspell - mozconfig_annotate '' --disable-crashreporter - mozconfig_annotate 'Gentoo default' --with-system-png - mozconfig_annotate '' --enable-system-ffi - mozconfig_annotate '' --disable-gconf - mozconfig_annotate '' --with-intl-api - - # skia has no support for big-endian platforms - if [[ $(tc-endian) == "big" ]]; then - mozconfig_annotate 'big endian target' --disable-skia - else - mozconfig_annotate '' --enable-skia - fi - - # default toolkit is cairo-gtk3, optional use flags can change this - local toolkit="cairo-gtk3" - local toolkit_comment="" - if [[ -n ${MOZCONFIG_OPTIONAL_GTK3} ]]; then - if ! use force-gtk3; then - toolkit="cairo-gtk2" - toolkit_comment="force-gtk3 use flag" - fi - fi - if [[ -n ${MOZCONFIG_OPTIONAL_GTK2ONLY} ]]; then - if use gtk2 ; then - toolkit="cairo-gtk2" - else - toolkit_comment="gtk2 use flag" - fi - fi - if [[ -n ${MOZCONFIG_OPTIONAL_QT5} ]]; then - if use qt5; then - toolkit="cairo-qt" - toolkit_comment="qt5 use flag" - # need to specify these vars because the qt5 versions are not found otherwise, - # and setting --with-qtdir overrides the pkg-config include dirs - local i - for i in qmake moc rcc; do - echo "export HOST_${i^^}=\"$(qt5_get_bindir)/${i}\"" \ - >> "${S}"/.mozconfig || die - done - echo 'unset QTDIR' >> "${S}"/.mozconfig || die - mozconfig_annotate '+qt5' --disable-gio - fi - fi - mozconfig_annotate "${toolkit_comment}" --enable-default-toolkit=${toolkit} - - # Instead of the standard --build= and --host=, mozilla uses --host instead - # of --build, and --target intstead of --host. - # Note, mozilla also has --build but it does not do what you think it does. - # Set both --target and --host as mozilla uses python to guess values otherwise - mozconfig_annotate '' --target="${CHOST}" - mozconfig_annotate '' --host="${CBUILD:-${CHOST}}" - - mozconfig_use_enable pulseaudio - # force the deprecated alsa sound code if pulseaudio is disabled - if use kernel_linux && ! use pulseaudio ; then - mozconfig_annotate '-pulseaudio' --enable-alsa - fi - - # For testing purpose only - mozconfig_annotate 'Sandbox' --enable-content-sandbox - - mozconfig_use_enable system-sqlite - mozconfig_use_with system-jpeg - mozconfig_use_with system-icu - mozconfig_use_with system-libvpx - mozconfig_use_with system-harfbuzz - mozconfig_use_with system-harfbuzz system-graphite2 - - # Modifications to better support ARM, bug 553364 - if use neon ; then - mozconfig_annotate '' --with-fpu=neon - mozconfig_annotate '' --with-thumb=yes - mozconfig_annotate '' --with-thumb-interwork=no - fi - if [[ ${CHOST} == armv* ]] ; then - mozconfig_annotate '' --with-float-abi=hard - if ! use system-libvpx ; then - sed -i -e "s|softfp|hard|" \ - "${S}"/media/libvpx/moz.build - fi - fi -} - -# @FUNCTION: mozconfig_install_prefs -# @DESCRIPTION: -# Set preferences into the prefs.js file specified as a parameter to -# the function. This sets both some common prefs to all mozilla -# packages, and any prefs that may relate to the use flags administered -# by mozconfig_config(). -# -# Call this within src_install() phase, after copying the template -# prefs file (if any) from ${FILESDIR} -# -# Example: -# -# inherit mozconfig-v6.46 -# -# src_install() { -# cp "${FILESDIR}"/gentoo-default-prefs.js \ -# "${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" \ -# || die -# -# mozconfig_install_prefs \ -# "${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" -# -# ... -# } - -mozconfig_install_prefs() { - local prefs_file="${1}" - - einfo "Adding prefs from mozconfig to ${prefs_file}" - - # set dictionary path, to use system hunspell - echo "pref(\"spellchecker.dictionary_path\", \"${EPREFIX}/usr/share/myspell\");" \ - >>"${prefs_file}" || die - - # force the graphite pref if system-harfbuzz is enabled, since the pref cant disable it - if use system-harfbuzz ; then - echo "sticky_pref(\"gfx.font_rendering.graphite.enabled\",true);" \ - >>"${prefs_file}" || die - fi - - # force cairo as the canvas renderer on platforms without skia support - if [[ $(tc-endian) == "big" ]] ; then - echo "sticky_pref(\"gfx.canvas.azure.backends\",\"cairo\");" \ - >>"${prefs_file}" || die - echo "sticky_pref(\"gfx.content.azure.backends\",\"cairo\");" \ - >>"${prefs_file}" || die - fi -} diff --git a/eclass/mozcoreconf-v5.eclass b/eclass/mozcoreconf-v5.eclass deleted file mode 100644 index da164f2..0000000 --- a/eclass/mozcoreconf-v5.eclass +++ /dev/null @@ -1,278 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 -# -# @ECLASS: mozcoreconf-v5.eclass -# @MAINTAINER: -# Mozilla team -# @BLURB: core options and configuration functions for mozilla -# @DESCRIPTION: -# -# inherit mozconfig-v6.* or above for mozilla configuration support - -# @ECLASS_VARIABLE: MOZILLA_FIVE_HOME -# @DESCRIPTION: -# This is an eclass-generated variable that defines the rpath that the mozilla -# product will be installed in. Read-only - -if [[ ! ${_MOZCORECONF} ]]; then - -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 - export HOST_CC="$(tc-getBUILD_CC)" - export HOST_CXX="$(tc-getBUILD_CXX)" - tc-export CC CXX LD PKG_CONFIG - - # Ensure that we have a sane build enviroment - export MOZILLA_CLIENT=1 - export BUILD_OPT=1 - export NO_STATIC_LIB=1 - export USE_PTHREADS=1 - export ALDFLAGS=${LDFLAGS} - # ensure MOZCONFIG is not defined - unset MOZCONFIG - - # set MOZILLA_FIVE_HOME - export MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}" - - # nested configure scripts in mozilla products generate unrecognized options - # false positives when toplevel configure passes downwards. - export QA_CONFIGURE_OPTIONS=".*" - - 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) - declare WF=$([[ ${PN} == waterfox ]] && echo true || echo false) - - #################################### - # - # Setup the initial .mozconfig - # See http://www.mozilla.org/build/configure-build.html - # - #################################### - - case ${PN} in - *xulrunner) - cp xulrunner/config/mozconfig .mozconfig \ - || die "cp xulrunner/config/mozconfig failed" ;; - *firefox|waterfox) - cp browser/config/mozconfig .mozconfig \ - || die "cp browser/config/mozconfig failed" ;; - seamonkey) - # Must create the initial mozconfig to enable application - : >.mozconfig || die "initial mozconfig creation failed" - mozconfig_annotate "" --enable-application=suite ;; - *thunderbird) - # Must create the initial mozconfig to enable application - : >.mozconfig || die "initial mozconfig creation failed" - mozconfig_annotate "" --enable-application=mail ;; - esac - - #################################### - # - # CFLAGS setup and ARCH support - # - #################################### - - # Set optimization level - if [[ $(gcc-major-version) -ge 7 ]]; then - mozconfig_annotate "Workaround known breakage" --enable-optimize=-O2 - elif [[ ${ARCH} == hppa ]]; then - mozconfig_annotate "more than -O0 causes a segfault on hppa" --enable-optimize=-O0 - elif [[ ${ARCH} == x86 ]]; then - mozconfig_annotate "less then -O2 causes a segfault on x86" --enable-optimize=-O2 - elif use custom-optimization || [[ ${ARCH} =~ (alpha|ia64) ]]; then - # Set optimization level based on CFLAGS - if is-flag -O0; then - mozconfig_annotate "from CFLAGS" --enable-optimize=-O0 - elif [[ ${ARCH} == ppc ]] && has_version '>=sys-libs/glibc-2.8'; then - mozconfig_annotate "more than -O1 segfaults on ppc with glibc-2.8" --enable-optimize=-O1 - elif is-flag -O4; then - mozconfig_annotate "from CFLAGS" --enable-optimize=-O4 - elif is-flag -O3; then - mozconfig_annotate "from CFLAGS" --enable-optimize=-O3 - elif is-flag -O1; then - mozconfig_annotate "from CFLAGS" --enable-optimize=-O1 - elif is-flag -Os; then - mozconfig_annotate "from CFLAGS" --enable-optimize=-Os - else - mozconfig_annotate "Gentoo's default optimization" --enable-optimize=-O2 - fi - else - # Enable Mozilla's default - mozconfig_annotate "mozilla default" --enable-optimize - fi - - # Strip optimization so it does not end up in compile string - filter-flags '-O*' - - # Strip over-aggressive CFLAGS - use custom-cflags || strip-flags - - # Additional ARCH support - case "${ARCH}" in - arm) - # Reduce the memory requirements for linking - append-ldflags -Wl,--no-keep-memory -Wl,--reduce-memory-overheads - ;; - alpha) - # Historically we have needed to add -fPIC manually for 64-bit. - # Additionally, alpha should *always* build with -mieee for correct math - # operation - append-flags -fPIC -mieee - ;; - ia64) - # Historically we have needed to add this manually for 64-bit - append-flags -fPIC - ;; - ppc64) - append-flags -fPIC -mminimal-toc - # Reduce the memory requirements for linking - append-ldflags -Wl,--no-keep-memory -Wl,--reduce-memory-overheads - ;; - esac - - # We need to append flags for gcc-6 support - if [[ $(gcc-major-version) -ge 6 ]]; then - append-cxxflags -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2 - fi - - # Use the MOZILLA_FIVE_HOME for the rpath - append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags - # Set MOZILLA_FIVE_HOME in mozconfig - mozconfig_annotate '' --with-default-mozilla-five-home=${MOZILLA_FIVE_HOME} - - #################################### - # - # mozconfig setup - # - #################################### - - mozconfig_annotate disable_update_strip \ - --disable-updater \ - --disable-strip \ - --disable-install-strip - - # jemalloc won't build with older glibc - ! has_version ">=sys-libs/glibc-2.4" && mozconfig_annotate "we have old glibc" --disable-jemalloc -} - -# @FUNCTION: mozconfig_final -# @DESCRIPTION: -# Apply EXTRA_ECONF values to .mozconfig -# Display a table describing all configuration options paired -# with reasons, then clean up extensions list. -# This should be called in src_configure at the end of all other mozconfig_* functions. -mozconfig_final() { - declare ac opt hash reason - - # Apply EXTRA_ECONF entries to .mozconfig - if [[ -n ${EXTRA_ECONF} ]]; then - IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!} - for opt in "${ac[@]}"; do - mozconfig_annotate "EXTRA_ECONF" --${opt#--} - done - fi - - echo - echo "==========================================================" - echo "Building ${PF} with the following configuration" - grep ^ac_add_options .mozconfig | while read ac opt hash reason; do - [[ -z ${hash} || ${hash} == \# ]] \ - || die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}" - printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}" - done - echo "==========================================================" - echo - - # Resolve multiple --enable-extensions down to one - declare exts=$(sed -n 's/^ac_add_options --enable-extensions=\([^ ]*\).*/\1/p' \ - .mozconfig | xargs) - sed -i '/^ac_add_options --enable-extensions/d' .mozconfig - echo "ac_add_options --enable-extensions=${exts// /,}" >> .mozconfig -} - -_MOZCORECONF=1 -fi