From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 85DCB138334 for ; Wed, 20 Mar 2019 17:26:43 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 6E328E069C; Wed, 20 Mar 2019 17:26:42 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 18D18E069C for ; Wed, 20 Mar 2019 17:26:42 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 6B6C9335CCD for ; Wed, 20 Mar 2019 17:26:40 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 114A64E3 for ; Wed, 20 Mar 2019 17:26:39 +0000 (UTC) From: "Jory Pratt" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Jory Pratt" Message-ID: <1553102775.02abb83eb0958c3054afabcfd6e02228bcdb876a.anarchy@gentoo> Subject: [gentoo-commits] proj/mozilla:master commit in: eclass/ X-VCS-Repository: proj/mozilla X-VCS-Files: eclass/mozconfig-v6.45.eclass eclass/mozconfig-v6.49.eclass eclass/mozconfig-v6.52.eclass eclass/mozconfig-v6.53.eclass eclass/mozconfig-v6.55.eclass eclass/mozconfig-v6.56.eclass eclass/mozconfig-v6.57.eclass eclass/mozconfig-v6.58.eclass eclass/mozconfig-v6.60.eclass eclass/mozcoreconf-v4.eclass eclass/mozcoreconf-v5.eclass eclass/mozcoreconf-v6.eclass eclass/mozextension.eclass eclass/mozlinguas-v2.eclass eclass/nsplugins.eclass X-VCS-Directories: eclass/ X-VCS-Committer: anarchy X-VCS-Committer-Name: Jory Pratt X-VCS-Revision: 02abb83eb0958c3054afabcfd6e02228bcdb876a X-VCS-Branch: master Date: Wed, 20 Mar 2019 17:26:39 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 11464f8f-a27b-43b2-b91b-49a21c90bffe X-Archives-Hash: 814d54b14667edf9b255df907a321be7 commit: 02abb83eb0958c3054afabcfd6e02228bcdb876a Author: Jory Pratt gentoo org> AuthorDate: Wed Mar 20 17:26:15 2019 +0000 Commit: Jory Pratt gentoo org> CommitDate: Wed Mar 20 17:26:15 2019 +0000 URL: https://gitweb.gentoo.org/proj/mozilla.git/commit/?id=02abb83e All eclass changes are in main tree eclass/mozconfig-v6.45.eclass | 410 --------------------------------------- eclass/mozconfig-v6.49.eclass | 408 --------------------------------------- eclass/mozconfig-v6.52.eclass | 391 ------------------------------------- eclass/mozconfig-v6.53.eclass | 388 ------------------------------------- eclass/mozconfig-v6.55.eclass | 381 ------------------------------------ eclass/mozconfig-v6.56.eclass | 392 -------------------------------------- eclass/mozconfig-v6.57.eclass | 394 -------------------------------------- eclass/mozconfig-v6.58.eclass | 396 -------------------------------------- eclass/mozconfig-v6.60.eclass | 434 ------------------------------------------ eclass/mozcoreconf-v4.eclass | 261 ------------------------- eclass/mozcoreconf-v5.eclass | 277 --------------------------- eclass/mozcoreconf-v6.eclass | 300 ----------------------------- eclass/mozextension.eclass | 125 ------------ eclass/mozlinguas-v2.eclass | 386 ------------------------------------- eclass/nsplugins.eclass | 79 -------- 15 files changed, 5022 deletions(-) diff --git a/eclass/mozconfig-v6.45.eclass b/eclass/mozconfig-v6.45.eclass deleted file mode 100644 index 65d5878..0000000 --- a/eclass/mozconfig-v6.45.eclass +++ /dev/null @@ -1,410 +0,0 @@ -# Copyright 1999-2015 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# -# @ECLASS: mozconfig-v6.45.eclass -# @MAINTAINER: -# mozilla team -# @SUPPORTED_EAPIS: 5 6 7 -# @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-v4, -# 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-v4 - -# @ECLASS-VARIABLE: MOZCONFIG_OPTIONAL_WIFI -# @DEFAULT_UNSET -# @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 -# @DEFAULT_UNSET -# @DESCRIPTION: -# Set this variable before the inherit line, when an ebuild needs to provide -# optional necko-wifi support via IUSE="jit". Currently this would include -# ebuilds for firefox, and potentially seamonkey. -# -# Leave the variable UNSET if optional jit support should not be available. -# Set the variable to "enabled" if the use flag should be enabled by default. -# Set the variable to any value if the use flag should exist but not be default-enabled. - -# @ECLASS-VARIABLE: MOZCONFIG_OPTIONAL_GTK3 -# @DEFAULT_UNSET -# @DESCRIPTION: -# Set this variable before the inherit line, when an ebuild can provide -# optional gtk3 support via IUSE="gtk3". Currently this would include -# ebuilds for firefox, but thunderbird and seamonkey could follow in the future. -# -# Leave the variable UNSET if gtk3 support should not be available. -# Set the variable to "enabled" if the use flag should be enabled by default. -# Set the variable to any value if the use flag should exist but not be default-enabled. - -# @ECLASS-VARIABLE: MOZCONFIG_OPTIONAL_QT5 -# @DEFAULT_UNSET -# @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 ffmpeg +gstreamer +jemalloc3 neon pulseaudio selinux startup-notification system-cairo - system-harfbuzz system-icu system-jpeg system-libevent system-sqlite system-libvpx" - -# some notes on deps: -# gtk:2 minimum is technically 2.10 but gio support (enabled by default) needs 2.14 -# media-libs/mesa needs to be 10.2 or above due to a bug with flash+vdpau -# media-libs/libcanberra is dlopen'ed rather than linked - -RDEPEND=">=app-text/hunspell-1.2:= - 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.19:0=[apng] - >=media-libs/mesa-10.2:* - media-libs/fontconfig - >=media-libs/freetype-2.4.10 - media-libs/libcanberra:*[pulseaudio?] - kernel_linux? ( media-libs/alsa-lib ) - pulseaudio? ( media-sound/pulseaudio ) - virtual/freedesktop-icon-theme - dbus? ( >=sys-apps/dbus-0.60 - >=dev-libs/dbus-glib-0.72 ) - startup-notification? ( >=x11-libs/startup-notification-0.8 ) - >=dev-libs/glib-2.26:2 - >=sys-libs/zlib-1.2.3 - >=virtual/libffi-3.0.10 - ffmpeg? ( virtual/ffmpeg ) - gstreamer? ( - >=media-libs/gstreamer-1.4.5:1.0 - >=media-libs/gst-plugins-base-1.4.5:1.0 - >=media-libs/gst-plugins-good-1.4.5:1.0 - >=media-plugins/gst-plugins-libav-1.4.5:1.0 - ) - x11-libs/libX11 - x11-libs/libXcomposite - x11-libs/libXdamage - x11-libs/libXext - x11-libs/libXfixes - x11-libs/libXrender - x11-libs/libXt - system-cairo? ( >=x11-libs/cairo-1.12[X,xcb] >=x11-libs/pixman-0.19.2 ) - system-icu? ( >=dev-libs/icu-51.1:= ) - system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 ) - system-libevent? ( >=dev-libs/libevent-2.0:0= ) - system-sqlite? ( >=dev-db/sqlite-3.9.1:3[secure-delete,debug=] ) - system-harfbuzz? ( >=media-libs/harfbuzz-1.1.3:0=[graphite,icu] >=media-gfx/graphite2-1.3.8 ) -" - -if [[ ${PV/45.0*/} == "" ]]; then - RDEPEND+=" - system-libvpx? ( >=media-libs/libvpx-1.3.0:0=[postproc] )" -else - # 45.1.0 and above bumped the libvpx requirement - RDEPEND+=" - system-libvpx? ( >=media-libs/libvpx-1.5.0:0=[postproc] )" -fi - -if [[ -n ${MOZCONFIG_OPTIONAL_GTK3} ]]; then - if [[ ${MOZCONFIG_OPTIONAL_GTK3} = "enabled" ]]; then - IUSE+=" +gtk3" - else - IUSE+=" gtk3" - fi - RDEPEND+=" - gtk3? ( >=x11-libs/gtk+-3.4.0:3 )" -fi -if [[ -n ${MOZCONFIG_OPTIONAL_QT5} ]]; then - inherit qmake-utils - if [[ ${MOZCONFIG_OPTIONAL_QT5} = "enabled" ]]; then - IUSE+=" +qt5" - else - IUSE+=" qt5" - fi - RDEPEND+=" - qt5? ( - dev-qt/qtcore:5 - dev-qt/qtgui:5 - dev-qt/qtnetwork:5 - dev-qt/qtprintsupport:5 - dev-qt/qtwidgets:5 - dev-qt/qtxml:5 - dev-qt/qtdeclarative:5 - )" -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 -if [[ -n ${MOZCONFIG_OPTIONAL_JIT} ]]; then - if [[ ${MOZCONFIG_OPTIONAL_JIT} = "enabled" ]]; then - IUSE+=" +jit" - else - IUSE+=" jit" - fi -fi - -DEPEND="app-arch/zip - app-arch/unzip - >=sys-devel/binutils-2.16.1 - ${RDEPEND}" - -RDEPEND+=" - selinux? ( sec-policy/selinux-mozilla )" - -# force system-icu if system-harfbuzz is set to avoid any potential ABI issues -REQUIRED_USE=" - system-harfbuzz? ( system-icu )" - -# only one of gtk3 or qt5 should be permitted to be selected, since only one will be used. -[[ -n ${MOZCONFIG_OPTIONAL_GTK3} ]] && [[ -n ${MOZCONFIG_OPTIONAL_QT5} ]] && \ - REQUIRED_USE+=" ?? ( gtk3 qt5 )" - -# @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-v3 - mozconfig_annotate 'more disable_update_strip' \ - --disable-pedantic \ - --disable-installer \ - --disable-strip-libs - - if [[ ${PN} != seamonkey ]]; then - mozconfig_annotate 'basic_profile' \ - --disable-profilelocking \ - --enable-single-profile \ - --disable-profilesharing - fi - - # Migrated from mozcoreconf-2 - mozconfig_annotate 'system_libs' \ - --with-system-zlib \ - --enable-pango \ - --enable-svg \ - --with-system-bz2 - - if has bindist ${IUSE}; then - mozconfig_use_enable !bindist official-branding - if [[ ${PN} == firefox ]] && use bindist ; then - mozconfig_annotate '' --with-branding=browser/branding/aurora - fi - fi - - mozconfig_use_enable debug - mozconfig_use_enable debug tests - - if ! use debug ; then - mozconfig_annotate 'disabled by Gentoo' --disable-debug-symbols - else - mozconfig_annotate 'enabled by Gentoo' --enable-debug-symbols - fi - - mozconfig_use_enable startup-notification - - if [[ -n ${MOZCONFIG_OPTIONAL_WIFI} ]] ; then - # wifi pulls in dbus so manage both here - mozconfig_use_enable wifi necko-wifi - if use 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 - - # These are forced-on for webm support - mozconfig_annotate 'required' --enable-ogg - mozconfig_annotate 'required' --enable-wave - - if [[ -n ${MOZCONFIG_OPTIONAL_JIT} ]]; then - mozconfig_use_enable jit ion - fi - - # These are enabled by default in all mozilla applications - mozconfig_annotate '' --with-system-nspr --with-nspr-prefix="${EPREFIX}"/usr - mozconfig_annotate '' --with-system-nss --with-nss-prefix="${EPREFIX}"/usr - mozconfig_annotate '' --x-includes="${EPREFIX}"/usr/include --x-libraries="${EPREFIX}"/usr/$(get_libdir) - if use system-libevent; then - mozconfig_annotate '' --with-system-libevent="${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-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 'Gentoo default' --disable-skia - mozconfig_annotate '' --disable-gconf - mozconfig_annotate '' --with-intl-api - - # default toolkit is cairo-gtk2, optional use flags can change this - local toolkit="cairo-gtk2" - local toolkit_comment="" - if [[ -n ${MOZCONFIG_OPTIONAL_GTK3} ]]; then - if use gtk3; then - toolkit="cairo-gtk3" - toolkit_comment="gtk3 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} - - # Use jemalloc unless libc is not glibc >= 2.4 - # at this time the minimum glibc in the tree is 2.9 so we should be safe. - if use elibc_glibc && use jemalloc3; then - # We must force-enable jemalloc 3 via .mozconfig - echo "export MOZ_JEMALLOC3=1" >> "${S}"/.mozconfig || die - mozconfig_annotate '' --enable-jemalloc - mozconfig_annotate '' --enable-replace-malloc - fi - - mozconfig_annotate '' --target="${CTARGET:-${CHOST}}" - mozconfig_annotate '' --build="${CTARGET:-${CHOST}}" - - use ffmpeg || mozconfig_annotate '-ffmpeg' --disable-ffmpeg - if use gstreamer ; then - use ffmpeg && einfo "${PN} will not use ffmpeg unless gstreamer:1.0 is not available at runtime" - mozconfig_annotate '+gstreamer' --enable-gstreamer=1.0 - else - mozconfig_annotate '' --disable-gstreamer - fi - mozconfig_use_enable pulseaudio - - mozconfig_use_enable system-cairo - mozconfig_use_enable system-sqlite - mozconfig_use_with system-jpeg - mozconfig_use_with system-icu - mozconfig_use_with system-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 - mozconfig_annotate '' --enable-skia - - 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 -} diff --git a/eclass/mozconfig-v6.49.eclass b/eclass/mozconfig-v6.49.eclass deleted file mode 100644 index a986197..0000000 --- a/eclass/mozconfig-v6.49.eclass +++ /dev/null @@ -1,408 +0,0 @@ -# Copyright 1999-2015 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# -# @ECLASS: mozconfig-v6.46.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 mozcoreconf-v4 - -# @ECLASS-VARIABLE: MOZCONFIG_OPTIONAL_WIFI -# @DESCRIPTION: -# Set this variable before the inherit line, when an ebuild needs to provide -# optional necko-wifi support via IUSE="wifi". Currently this would include -# ebuilds for firefox, and potentially seamonkey. -# -# Leave the variable UNSET if necko-wifi support should not be available. -# Set the variable to "enabled" if the use flag should be enabled by default. -# Set the variable to any value if the use flag should exist but not be default-enabled. - -# @ECLASS-VARIABLE: MOZCONFIG_OPTIONAL_JIT -# @DESCRIPTION: -# Set this variable before the inherit line, when an ebuild needs to provide -# optional necko-wifi support via IUSE="jit". Currently this would include -# ebuilds for firefox, and potentially seamonkey. -# -# Leave the variable UNSET if optional jit support should not be available. -# Set the variable to "enabled" if the use flag should be enabled by default. -# Set the variable to any value if the use flag should exist but not be default-enabled. - -# @ECLASS-VARIABLE: MOZCONFIG_OPTIONAL_GTK3 -# @DESCRIPTION: -# Set this variable before the inherit line, when an ebuild can provide -# optional gtk3 support via IUSE="gtk3". Currently this would include -# ebuilds for firefox, but thunderbird and seamonkey could follow in the future. -# -# Leave the variable UNSET if gtk3 support should not be available. -# Set the variable to "enabled" if the use flag should be enabled by default. -# Set the variable to any value if the use flag should exist but not be default-enabled. - -# @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 +jemalloc neon pulseaudio selinux +skia startup-notification system-cairo - system-harfbuzz system-icu system-jpeg system-libevent system-sqlite system-libvpx" - -# some notes on deps: -# gtk:2 minimum is technically 2.10 but gio support (enabled by default) needs 2.14 -# 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 - >=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.21:0=[apng] - >=media-libs/mesa-10.2:* - media-libs/fontconfig - >=media-libs/freetype-2.4.10 - kernel_linux? ( media-libs/alsa-lib ) - pulseaudio? ( media-sound/pulseaudio ) - virtual/freedesktop-icon-theme - dbus? ( >=sys-apps/dbus-0.60 - >=dev-libs/dbus-glib-0.72 ) - startup-notification? ( >=x11-libs/startup-notification-0.8 ) - >=dev-libs/glib-2.26:2 - >=sys-libs/zlib-1.2.3 - >=virtual/libffi-3.0.10 - virtual/ffmpeg - x11-libs/libX11 - x11-libs/libXcomposite - x11-libs/libXdamage - x11-libs/libXext - x11-libs/libXfixes - x11-libs/libXrender - x11-libs/libXt - system-cairo? ( >=x11-libs/cairo-1.12[X,xcb] >=x11-libs/pixman-0.19.2 ) - system-icu? ( >=dev-libs/icu-56.1:= ) - system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 ) - system-libevent? ( >=dev-libs/libevent-2.0:0= ) - system-sqlite? ( >=dev-db/sqlite-3.13.0:3[secure-delete,debug=] ) - system-libvpx? ( >=media-libs/libvpx-1.5.0:0=[postproc] ) - system-harfbuzz? ( >=media-libs/harfbuzz-1.2.6:0=[graphite,icu] >=media-gfx/graphite2-1.3.8 ) -" - -if [[ -n ${MOZCONFIG_OPTIONAL_GTK3} ]]; then - MOZCONFIG_OPTIONAL_GTK2ONLY= - if [[ ${MOZCONFIG_OPTIONAL_GTK3} = "enabled" ]]; then - IUSE+=" +gtk3" - else - IUSE+=" gtk3" - fi - RDEPEND+=" - gtk3? ( >=x11-libs/gtk+-3.4.0:3 )" -elif [[ -n ${MOZCONFIG_OPTIONAL_GTK2ONLY} ]]; then - if [[ ${MOZCONFIG_OPTIONAL_GTK2ONLY} = "enabled" ]]; then - IUSE+=" +gtk2" - else - IUSE+=" gtk2" - fi - RDEPEND+=" - !gtk2? ( >=x11-libs/gtk+-3.4.0:3 )" -fi -if [[ -n ${MOZCONFIG_OPTIONAL_QT5} ]]; then - inherit qmake-utils - if [[ ${MOZCONFIG_OPTIONAL_QT5} = "enabled" ]]; then - IUSE+=" +qt5" - else - IUSE+=" qt5" - fi - RDEPEND+=" - qt5? ( - dev-qt/qtcore:5 - dev-qt/qtgui:5 - dev-qt/qtnetwork:5 - dev-qt/qtprintsupport:5 - dev-qt/qtwidgets:5 - dev-qt/qtxml:5 - dev-qt/qtdeclarative:5 - )" -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 -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 - sys-apps/findutils - ${RDEPEND}" - -RDEPEND+=" - selinux? ( sec-policy/selinux-mozilla )" - -# force system-icu if system-harfbuzz is selected, to avoid potential ABI issues -REQUIRED_USE=" - system-harfbuzz? ( system-icu )" - -# only one of gtk3 or qt5 should be permitted to be selected, since only one will be used. -[[ -n ${MOZCONFIG_OPTIONAL_GTK3} ]] && [[ -n ${MOZCONFIG_OPTIONAL_QT5} ]] && \ - REQUIRED_USE+=" ?? ( gtk3 qt5 )" - -# only one of gtk2 or qt5 should be permitted to be selected, since only one will be used. -[[ -n ${MOZCONFIG_OPTIONAL_GTK2ONLY} ]] && [[ -n ${MOZCONFIG_OPTIONAL_QT5} ]] && \ - REQUIRED_USE+=" ?? ( gtk2 qt5 )" - -# @FUNCTION: mozconfig_config -# @DESCRIPTION: -# Set common configure options for mozilla packages. -# 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 - - if has bindist ${IUSE}; then - mozconfig_use_enable !bindist official-branding - if [[ ${PN} == firefox ]] && use bindist ; then - mozconfig_annotate '' --with-branding=browser/branding/aurora - fi - fi - - mozconfig_use_enable debug - mozconfig_use_enable debug tests - - if ! use debug ; then - mozconfig_annotate 'disabled by Gentoo' --disable-debug-symbols - else - mozconfig_annotate 'enabled by Gentoo' --enable-debug-symbols - fi - - mozconfig_use_enable startup-notification - - if [[ -n ${MOZCONFIG_OPTIONAL_WIFI} ]] ; then - # wifi pulls in dbus so manage both here - mozconfig_use_enable wifi necko-wifi - if use 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-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_use_enable skia - mozconfig_annotate '' --disable-gconf - mozconfig_annotate '' --with-intl-api - - # default toolkit is cairo-gtk2, optional use flags can change this - local toolkit="cairo-gtk2" - local toolkit_comment="" - if [[ -n ${MOZCONFIG_OPTIONAL_GTK3} ]]; then - if use gtk3; then - toolkit="cairo-gtk3" - toolkit_comment="gtk3 use flag" - fi - fi - if [[ -n ${MOZCONFIG_OPTIONAL_GTK2ONLY} ]]; then - if ! use gtk2 ; then - toolkit="cairo-gtk3" - else - toolkit_comment="gtk2 use flag" - fi - fi - if [[ -n ${MOZCONFIG_OPTIONAL_QT5} ]]; then - if use qt5; then - toolkit="cairo-qt" - 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} - - # Use jemalloc unless libc is not glibc >= 2.4 - # at this time the minimum glibc in the tree is 2.9 so we should be safe. - if use elibc_glibc && use jemalloc; then - # We must force-enable jemalloc 4 via .mozconfig - echo "export MOZ_JEMALLOC4=1" >> "${S}"/.mozconfig || die - mozconfig_annotate '' --enable-replace-malloc - fi - - # 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 - - mozconfig_use_enable system-cairo - 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 - mozconfig_annotate '' --enable-skia - - 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 if USE=skia is disabled - if ! use skia ; then - echo "lockPref(\"gfx.canvas.azure.backends\",\"cairo\");" \ - >>"${prefs_file}" || die - echo "lockPref(\"gfx.content.azure.backends\",\"cairo\");" \ - >>"${prefs_file}" || die - fi -} diff --git a/eclass/mozconfig-v6.52.eclass b/eclass/mozconfig-v6.52.eclass deleted file mode 100644 index 646232c..0000000 --- a/eclass/mozconfig-v6.52.eclass +++ /dev/null @@ -1,391 +0,0 @@ -# Copyright 1999-2015 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# -# @ECLASS: mozconfig-v6.52.eclass -# @MAINTAINER: -# mozilla team -# @SUPPORTED_EAPIS: 5 6 7 -# @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 mozcoreconf-v5 - -# @ECLASS-VARIABLE: MOZCONFIG_OPTIONAL_WIFI -# @DEFAULT_UNSET -# @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 -# @DEFAULT_UNSET -# @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 -# @DEFAULT_UNSET -# @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 -# @DEFAULT_UNSET -# @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 -# @DEFAULT_UNSET -# @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 +jemalloc neon pulseaudio selinux startup-notification system-cairo - system-harfbuzz system-icu system-jpeg system-libevent system-sqlite system-libvpx" - -# some notes on deps: -# gtk:2 minimum is technically 2.10 but gio support (enabled by default) needs 2.14 -# 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 - >=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.25:0=[apng] - >=media-libs/mesa-10.2:* - media-libs/fontconfig - >=media-libs/freetype-2.4.10 - kernel_linux? ( !pulseaudio? ( media-libs/alsa-lib ) ) - pulseaudio? ( || ( media-sound/pulseaudio - >=media-sound/apulse-0.1.9 ) ) - virtual/freedesktop-icon-theme - dbus? ( >=sys-apps/dbus-0.60 - >=dev-libs/dbus-glib-0.72 ) - startup-notification? ( >=x11-libs/startup-notification-0.8 ) - >=dev-libs/glib-2.26:2 - >=sys-libs/zlib-1.2.3 - >=virtual/libffi-3.0.10 - virtual/ffmpeg - x11-libs/libX11 - x11-libs/libXcomposite - x11-libs/libXdamage - x11-libs/libXext - x11-libs/libXfixes - x11-libs/libXrender - x11-libs/libXt - system-cairo? ( >=x11-libs/cairo-1.12[X,xcb] >=x11-libs/pixman-0.19.2 ) - system-icu? ( >=dev-libs/icu-58.1:= ) - system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 ) - system-libevent? ( >=dev-libs/libevent-2.0:0= ) - system-sqlite? ( >=dev-db/sqlite-3.17.0: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.8 ) -" - -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 )" -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 - - 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-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 '' --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-gtk2, optional use flags can change this - local toolkit="cairo-gtk2" - local toolkit_comment="" - if [[ -n ${MOZCONFIG_OPTIONAL_GTK3} ]]; then - if use force-gtk3; then - toolkit="cairo-gtk3" - toolkit_comment="force-gtk3 use flag" - fi - fi - if [[ -n ${MOZCONFIG_OPTIONAL_GTK2ONLY} ]]; then - if ! use gtk2 ; then - toolkit="cairo-gtk3" - else - toolkit_comment="gtk2 use flag" - fi - fi - if [[ -n ${MOZCONFIG_OPTIONAL_QT5} ]]; then - if use qt5; then - toolkit="cairo-qt" - 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} - - # Use jemalloc unless libc is not glibc >= 2.4 - # at this time the minimum glibc in the tree is 2.9 so we should be safe. - if use elibc_glibc && use jemalloc; then - # We must force-enable jemalloc 4 via .mozconfig - echo "export MOZ_JEMALLOC4=1" >> "${S}"/.mozconfig || die - mozconfig_annotate '' --enable-replace-malloc - fi - - # 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 - - mozconfig_use_enable system-cairo - 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/mozconfig-v6.53.eclass b/eclass/mozconfig-v6.53.eclass deleted file mode 100644 index d15c47e..0000000 --- a/eclass/mozconfig-v6.53.eclass +++ /dev/null @@ -1,388 +0,0 @@ -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# -# @ECLASS: mozconfig-v6.53.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 mozcoreconf-v5 - -# @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 +jemalloc neon pulseaudio selinux startup-notification system-cairo - system-harfbuzz system-icu system-jpeg system-libevent system-sqlite system-libvpx" - -# some notes on deps: -# gtk:2 minimum is technically 2.10 but gio support (enabled by default) needs 2.14 -# 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.28:0=[apng] - >=media-libs/mesa-10.2:* - media-libs/fontconfig - >=media-libs/freetype-2.4.10 - kernel_linux? ( !pulseaudio? ( media-libs/alsa-lib ) ) - pulseaudio? ( || ( media-sound/pulseaudio - >=media-sound/apulse-0.1.9 ) ) - virtual/freedesktop-icon-theme - dbus? ( >=sys-apps/dbus-0.60 - >=dev-libs/dbus-glib-0.72 ) - startup-notification? ( >=x11-libs/startup-notification-0.8 ) - >=dev-libs/glib-2.26:2 - >=sys-libs/zlib-1.2.3 - >=virtual/libffi-3.0.10 - virtual/ffmpeg - x11-libs/libX11 - x11-libs/libXcomposite - x11-libs/libXdamage - x11-libs/libXext - x11-libs/libXfixes - x11-libs/libXrender - x11-libs/libXt - system-cairo? ( >=x11-libs/cairo-1.12[X,xcb] >=x11-libs/pixman-0.19.2 ) - system-icu? ( >=dev-libs/icu-58.1:= ) - system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 ) - system-libevent? ( >=dev-libs/libevent-2.0:0= ) - system-sqlite? ( >=dev-db/sqlite-3.17.0: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 - - 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-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 '' --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} - - # Use jemalloc unless libc is not glibc >= 2.4 - # at this time the minimum glibc in the tree is 2.9 so we should be safe. - if use elibc_glibc && use jemalloc; then - # We must force-enable jemalloc 4 via .mozconfig - echo "export MOZ_JEMALLOC4=1" >> "${S}"/.mozconfig || die - mozconfig_annotate '' --enable-replace-malloc - fi - - # 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 - - mozconfig_use_enable system-cairo - 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/mozconfig-v6.55.eclass b/eclass/mozconfig-v6.55.eclass deleted file mode 100644 index 4c20d97..0000000 --- a/eclass/mozconfig-v6.55.eclass +++ /dev/null @@ -1,381 +0,0 @@ -# Copyright 1999-2017 Gentoo Foundation -# 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 mozcoreconf-v5 - -# @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-cairo - system-harfbuzz system-icu system-jpeg system-libevent system-sqlite system-libvpx" - -# some notes on deps: -# gtk:2 minimum is technically 2.10 but gio support (enabled by default) needs 2.14 -# 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.29:0=[apng] - >=media-libs/mesa-10.2:* - media-libs/fontconfig - >=media-libs/freetype-2.4.10 - kernel_linux? ( !pulseaudio? ( media-libs/alsa-lib ) ) - pulseaudio? ( || ( media-sound/pulseaudio - >=media-sound/apulse-0.1.9 ) ) - virtual/freedesktop-icon-theme - dbus? ( >=sys-apps/dbus-0.60 - >=dev-libs/dbus-glib-0.72 ) - startup-notification? ( >=x11-libs/startup-notification-0.8 ) - >=dev-libs/glib-2.26:2 - >=sys-libs/zlib-1.2.3 - >=virtual/libffi-3.0.10 - virtual/ffmpeg - x11-libs/libX11 - x11-libs/libXcomposite - x11-libs/libXdamage - x11-libs/libXext - x11-libs/libXfixes - x11-libs/libXrender - x11-libs/libXt - system-cairo? ( >=x11-libs/cairo-1.12[X,xcb] >=x11-libs/pixman-0.19.2 ) - system-icu? ( >=dev-libs/icu-58.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 - - 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 'Gentoo default to honor system linker' --disable-gold - 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-cairo - 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/mozconfig-v6.56.eclass b/eclass/mozconfig-v6.56.eclass deleted file mode 100644 index c0ecf59..0000000 --- a/eclass/mozconfig-v6.56.eclass +++ /dev/null @@ -1,392 +0,0 @@ -# Copyright 1999-2017 Gentoo Foundation -# 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 mozcoreconf-v5 - -# @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/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.31:0=[apng] - >=media-libs/mesa-10.2:* - media-libs/fontconfig - >=media-libs/freetype-2.4.10 - kernel_linux? ( !pulseaudio? ( media-libs/alsa-lib ) ) - pulseaudio? ( || ( media-sound/pulseaudio - >=media-sound/apulse-0.1.9 ) ) - 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= ) - 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/mozconfig-v6.57.eclass b/eclass/mozconfig-v6.57.eclass deleted file mode 100644 index 8aed435..0000000 --- a/eclass/mozconfig-v6.57.eclass +++ /dev/null @@ -1,394 +0,0 @@ -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# -# @ECLASS: mozconfig-v6.57.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 mozcoreconf-v5 - -# @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/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.31:0=[apng] - >=media-libs/mesa-10.2:* - media-libs/fontconfig - >=media-libs/freetype-2.4.10 - kernel_linux? ( !pulseaudio? ( media-libs/alsa-lib ) ) - pulseaudio? ( || ( media-sound/pulseaudio - >=media-sound/apulse-0.1.9 ) ) - 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= ) - system-sqlite? ( >=dev-db/sqlite-3.20.1: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 ) - >=virtual/rust-1.19.0 - dev-util/cargo - ${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 - - # Stylo is only broken on x86 builds - use x86 && mozconfig_annotate 'Upstream bug 1341234' --disable-stylo - - # Must pass release in order to properly select linker - 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/mozconfig-v6.58.eclass b/eclass/mozconfig-v6.58.eclass deleted file mode 100644 index a27e404..0000000 --- a/eclass/mozconfig-v6.58.eclass +++ /dev/null @@ -1,396 +0,0 @@ -# Copyright 1999-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# -# @ECLASS: mozconfig-v6.58.eclass -# @MAINTAINER: -# mozilla team -# @SUPPORTED_EAPIS: 5 6 7 -# @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 mozcoreconf-v5 - -# @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/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= ) - system-sqlite? ( >=dev-db/sqlite-3.20.1:3[secure-delete,debug=] ) - system-libvpx? ( >=media-libs/libvpx-1.5.0:0=[postproc] ) - system-harfbuzz? ( >=media-libs/harfbuzz-1.4.2: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 ) - || ( - ( >=dev-lang/rust-1.21.0 >=dev-util/cargo-0.22.0 ) - >=dev-lang/rust-1.21.0[extended] - ( >=dev-lang/rust-bin-1.21.0 >=dev-util/cargo-0.22.0 ) - ) - ${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 - - # Stylo is only broken on x86 builds - use x86 && mozconfig_annotate 'Upstream bug 1341234' --disable-stylo - - # Must pass release in order to properly select linker - 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/mozconfig-v6.60.eclass b/eclass/mozconfig-v6.60.eclass deleted file mode 100644 index 5dfe34d..0000000 --- a/eclass/mozconfig-v6.60.eclass +++ /dev/null @@ -1,434 +0,0 @@ -# Copyright 1999-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# -# @ECLASS: mozconfig-v6.60.eclass -# @MAINTAINER: -# mozilla team -# @SUPPORTED_EAPIS: 5 6 7 -# @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 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 mozilla ebuilds -IUSE="${IUSE} clang 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/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= ) - system-sqlite? ( >=dev-db/sqlite-3.23.1:3[secure-delete,debug=] ) - system-libvpx? ( - >=media-libs/libvpx-1.5.0:0=[postproc] - =media-libs/harfbuzz-1.4.2: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.30 - sys-apps/findutils - || ( - ( - sys-devel/clang:8 - !clang? ( sys-devel/llvm:8 ) - clang? ( - =sys-devel/lld-8* - sys-devel/llvm:8[gold] - ) - ) - ( - sys-devel/clang:7 - !clang? ( sys-devel/llvm:7 ) - clang? ( - =sys-devel/lld-7* - sys-devel/llvm:7[gold] - ) - ) - ( - sys-devel/clang:6 - !clang? ( sys-devel/llvm:6 ) - clang? ( - =sys-devel/lld-6* - sys-devel/llvm:6[gold] - ) - ) - ) - pulseaudio? ( media-sound/pulseaudio ) - elibc_glibc? ( - virtual/cargo - virtual/rust - ) - elibc_musl? ( - virtual/cargo - virtual/rust - ) - ${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() { - if use clang && ! tc-is-clang ; then - # Force clang - einfo "Enforcing the use of clang due to USE=clang ..." - CC=${CHOST}-clang - CXX=${CHOST}-clang++ - strip-unsupported-flags - elif ! use clang && ! tc-is-gcc ; then - # Force gcc - einfo "Enforcing the use of gcc due to USE=-clang ..." - CC=${CHOST}-gcc - CXX=${CHOST}-g++ - strip-unsupported-flags - fi - - # Migrated from mozcoreconf-2 - mozconfig_annotate 'system_libs' \ - --with-system-zlib \ - --with-system-bz2 - - # Stylo is horribly broken on arm, renders GUI unusable - use arm && mozconfig_annotate 'breaks UI on arm' --disable-stylo - - # Must pass release in order to properly select linker - mozconfig_annotate 'Enable by Gentoo' --enable-release - - # Set correct update channel, bug 677722 - if [[ -n "${MOZ_ESR}" ]] ; then - mozconfig_annotate 'set update channel to ESR' --enable-update-channel=esr - fi - - # Avoid auto-magic on linker - if use clang ; then - # This is upstream's default - mozconfig_annotate "forcing ld=lld due to USE=clang" --enable-linker=lld - elif tc-ld-is-gold ; then - mozconfig_annotate "linker is set to gold" --enable-linker=gold - else - mozconfig_annotate "linker is set to bfd" --enable-linker=bfd - 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 - mozconfig_annotate '' --enable-system-pixman - - # 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 - 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 - - 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 - - if use clang ; then - # https://bugzilla.mozilla.org/show_bug.cgi?id=1423822 - mozconfig_annotate 'elf-hack is broken when using Clang' --disable-elf-hack - elif use arm ; then - mozconfig_annotate 'elf-hack is broken on arm' --disable-elf-hack - fi - - # Modifications to better support ARM, bug 553364 - if use neon ; then - mozconfig_annotate '' --with-fpu=neon - - if ! tc-is-clang ; then - # thumb options aren't supported when using clang, bug 666966 - mozconfig_annotate '' --with-thumb=yes - mozconfig_annotate '' --with-thumb-interwork=no - fi - fi - if [[ ${CHOST} == armv*h* ]] ; 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-v4.eclass b/eclass/mozcoreconf-v4.eclass deleted file mode 100644 index eef1b5e..0000000 --- a/eclass/mozcoreconf-v4.eclass +++ /dev/null @@ -1,261 +0,0 @@ -# Copyright 1999-2015 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# -# @ECLASS: mozcoreconf-v4.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) - - #################################### - # - # 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 -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 - 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 - - # 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: -# 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=1 -fi diff --git a/eclass/mozcoreconf-v5.eclass b/eclass/mozcoreconf-v5.eclass deleted file mode 100644 index ab8440b..0000000 --- a/eclass/mozcoreconf-v5.eclass +++ /dev/null @@ -1,277 +0,0 @@ -# Copyright 1999-2017 Gentoo Foundation -# 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) - - #################################### - # - # 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 [[ $(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 diff --git a/eclass/mozcoreconf-v6.eclass b/eclass/mozcoreconf-v6.eclass deleted file mode 100644 index 945b95c..0000000 --- a/eclass/mozcoreconf-v6.eclass +++ /dev/null @@ -1,300 +0,0 @@ -# Copyright 1999-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# -# @ECLASS: mozcoreconf-v6.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 - -inherit multilib toolchain-funcs flag-o-matic python-any-r1 versionator - -IUSE="${IUSE} custom-cflags custom-optimization" - -DEPEND="virtual/pkgconfig - dev-lang/python:2.7[ncurses,sqlite,ssl,threads(+)] - ${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 AR RANLIB - - # 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 - # workaround to set python3 into PYTHON3 until mozilla doesn't need py2 - if [[ "${PYTHON_COMPAT[@]}" != "${PYTHON_COMPAT[@]#python3*}" ]]; then - export PYTHON3=${PYTHON} - python_export python2_7 PYTHON EPYTHON - fi -} - -# @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 TRB=$([[ ${PN} == torbrowser ]] && 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" ;; - *torbrowser) - 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" - # NOTE--this is not compatible with mozilla prior to v60 - mozconfig_annotate "" --enable-application=comm/suite ;; - *thunderbird) - # Must create the initial mozconfig to enable application - : >.mozconfig || die "initial mozconfig creation failed" - # NOTE--this is not compatible with mozilla prior to v60 - mozconfig_annotate "" --enable-application=comm/mail ;; - esac - - #################################### - # - # CFLAGS setup and ARCH support - # - #################################### - - # Set optimization level - if [[ $(gcc-major-version) -eq 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 than -O2 causes a segfault on x86" --enable-optimize=-O2 - elif [[ ${ARCH} == arm ]] && [[ $(gcc-major-version) -ge 6 ]]; then - mozconfig_annotate "less than -O2 causes a breakage on arm with gcc-6" --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 - if use clang ; then - # Nothing to do - :; - elif tc-ld-is-gold ; then - append-ldflags -Wl,--no-keep-memory - else - append-ldflags -Wl,--no-keep-memory -Wl,--reduce-memory-overheads - fi - ;; - 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 - if use clang ; then - # Nothing to do - :; - elif tc-ld-is-gold ; then - append-ldflags -Wl,--no-keep-memory - else - append-ldflags -Wl,--no-keep-memory -Wl,--reduce-memory-overheads - fi - ;; - 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-insns -fno-schedule-insns2 - fi - - # Use the MOZILLA_FIVE_HOME for the rpath - append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags - - #################################### - # - # 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 diff --git a/eclass/mozextension.eclass b/eclass/mozextension.eclass deleted file mode 100644 index 68f401e..0000000 --- a/eclass/mozextension.eclass +++ /dev/null @@ -1,125 +0,0 @@ -# Copyright 1999-2015 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# -# @ECLASS: mozextension.eclass -# @MAINTAINER: -# Mozilla team -# @BLURB: Install extensions for use in mozilla products. -# -if [[ ! ${_MOZEXTENSION} ]]; then - -# @ECLASS-VARIABLE: MOZEXTENSION_TARGET -# @DESCRIPTION: -# This variable allows the installation path for xpi_install -# to be overridden from the default app-global extensions path. -# Default is empty, which installs to predetermined hard-coded -# paths specified in the eclass. -: ${MOZEXTENSION_TARGET:=""} - -inherit eutils - -DEPEND="app-arch/unzip" - -mozversion_extension_location() { - case ${PN} in - firefox|firefox-bin|palemoon) - if [[ $(get_version_component_range 1) -ge 21 ]] ; then - return 0 - fi - ;; - esac - - return 1 -} - -xpi_unpack() { - local xpi xpiname srcdir - - # Not gonna use ${A} as we are looking for a specific option being passed to function - # You must specify which xpi to use - [[ -z "$*" ]] && die "Nothing passed to the $FUNCNAME command. please pass which xpi to unpack" - - for xpi in "$@"; do - einfo "Unpacking ${xpi} to ${PWD}" - xpiname=$(basename ${xpi%.*}) - - if [[ "${xpi:0:2}" != "./" ]] && [[ "${xpi:0:1}" != "/" ]] ; then - srcdir="${DISTDIR}/" - fi - - [[ -s "${srcdir}${xpi}" ]] || die "${xpi} does not exist" - - case "${xpi##*.}" in - ZIP|zip|jar|xpi) - mkdir "${WORKDIR}/${xpiname}" && \ - unzip -qo "${srcdir}${xpi}" -d "${WORKDIR}/${xpiname}" || die "failed to unpack ${xpi}" - ;; - *) - einfo "unpack ${xpi}: file format not recognized. Ignoring." - ;; - esac - done -} - - -xpi_install() { - local emid - - # You must tell xpi_install which xpi to use - [[ ${#} -ne 1 ]] && die "$FUNCNAME takes exactly one argument, please specify an xpi to unpack" - - x="${1}" - #cd ${x} - # determine id for extension - if [[ -f "${x}"/install.rdf ]]; then - emid="$(sed -n -e '/install-manifest/,$ { /em:id/!d; s/.*[\">]\([^\"<>]*\)[\"<].*/\1/; p; q }' "${x}"/install.rdf)" \ - || die "failed to determine extension id from install.rdf" - elif [[ -f "${x}"/manifest.json ]]; then - emid="$( sed -n 's/.*"id": "\(.*\)",/\1/p' "${x}"/manifest.json )" \ - || die "failed to determine extension id from manifest.json" - else - die "failed to determine extension id" - fi - - if [[ -n ${MOZEXTENSION_TARGET} ]]; then - insinto "${MOZILLA_FIVE_HOME}"/${MOZEXTENSION_TARGET%/}/${emid} - elif $(mozversion_extension_location) ; then - insinto "${MOZILLA_FIVE_HOME}"/browser/extensions/${emid} - else - insinto "${MOZILLA_FIVE_HOME}"/extensions/${emid} - fi - doins -r "${x}"/* || die "failed to copy extension" -} - -xpi_copy() { - local emid - - # You must tell xpi_install which xpi to use - [[ ${#} -ne 1 ]] && die "$FUNCNAME takes exactly one argument, please specify an xpi to unpack" - - x="${1}" - #cd ${x} - # determine id for extension - if [[ -f "${x}"/install.rdf ]]; then - emid="$(sed -n -e '/install-manifest/,$ { /em:id/!d; s/.*[\">]\([^\"<>]*\)[\"<].*/\1/; p; q }' "${x}"/install.rdf)" \ - || die "failed to determine extension id from install.rdf" - elif [[ -f "${x}"/manifest.json ]]; then - emid="$( sed -n 's/.*"id": "\([^"]*\)",.*/\1/p' "${x}"/manifest.json )" \ - || die "failed to determine extension id from manifest.json" - else - die "failed to determine extension id" - fi - - if [[ -n ${MOZEXTENSION_TARGET} ]]; then - insinto "${MOZILLA_FIVE_HOME}"/${MOZEXTENSION_TARGET%/} - elif $(mozversion_extension_location) ; then - insinto "${MOZILLA_FIVE_HOME}"/browser/extensions - else - insinto "${MOZILLA_FIVE_HOME}"/extensions - fi - - newins "${DISTDIR%/}"/${x##*/}.xpi ${emid}.xpi -} - -_MOZEXTENSION=1 -fi diff --git a/eclass/mozlinguas-v2.eclass b/eclass/mozlinguas-v2.eclass deleted file mode 100644 index 73576e9..0000000 --- a/eclass/mozlinguas-v2.eclass +++ /dev/null @@ -1,386 +0,0 @@ -# Copyright 1999-2015 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -# @ECLASS: mozlinguas-v2.eclass -# @MAINTAINER: -# mozilla@gentoo.org -# @AUTHOR: -# Nirbheek Chauhan -# Ian Stakenvicius -# @SUPPORTED_EAPIS: 2 3 4 5 6 -# @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_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}/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"} - -# @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/[_@]/-}" - # 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 -# 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+=" l10n_${xflag/[_@]/-}? ( 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+=" l10n_${xflag/[_@]/-}? ( 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+=" l10n_${xflag/[_@]/-}? ( ${MOZ_L10N_URI_PREFIX}${x}${MOZ_L10N_URI_SUFFIX} )" - fi - IUSE+=" l10n_${xflag/[_@]/-}" - done -fi -unset x xflag - -# @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 lflag - mozlinguas=() - # Set mozlinguas 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 mozilla 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/[_@]/-} && mozlinguas+=( ${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 mozilla 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//[_@]/-} "${mozlinguas[@]//[_@]/-}" || \ - 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 mozlinguas 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: 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 -} -# For the phase function export -mozlinguas-v2_src_unpack() { - mozlinguas_src_unpack -} - - -# @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 -} - -# For the phase function export -mozlinguas-v2_src_compile() { - mozlinguas_src_compile -} - -# @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-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 -mozlinguas_src_install() { - local x - mozlinguas_export - if [[ -n ${MOZ_GENERATE_LANGPACKS} ]] && [[ -n ${mozlinguas[*]} ]]; then - local repopath="${WORKDIR}/${PN}-generated-langpacks" - mkdir -p "${repopath}" || die - 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 - 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 -mozlinguas-v2_src_install() { - mozlinguas_src_install -} diff --git a/eclass/nsplugins.eclass b/eclass/nsplugins.eclass deleted file mode 100644 index 0b154c8..0000000 --- a/eclass/nsplugins.eclass +++ /dev/null @@ -1,79 +0,0 @@ -# Copyright 1999-2013 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# -# @ECLASS: nsplugins.eclass -# @MAINTAINER: -# Mozilla Team -# @AUTHOR: -# Original Author: Martin Schlemmer -# @BLURB: reusable functions for netscape/moz plugin sharing -# @DESCRIPTION: -# Reusable functions that promote sharing of netscape/moz plugins, also provides -# share_plugins_dir function for mozilla applications. - -inherit eutils multilib versionator mozextension - -PLUGINS_DIR="nsbrowser/plugins" - -# This function move the plugin dir in src_install() to -# ${D}/usr/$(get_libdir)/${PLUGIN_DIR}. First argument should be -# the full path (without $D) to old plugin dir. -src_mv_plugins() { - has "${EAPI:-0}" 0 1 2 && ! use prefix && ED="${D}" - - # Move plugins dir. We use keepdir so that it might not be unmerged - # by mistake ... - keepdir /usr/$(get_libdir)/${PLUGINS_DIR} - cp -a "${ED}"/$1/* "${ED}"/usr/$(get_libdir)/${PLUGINS_DIR} - rm -rf "${ED}"/$1 - dosym /usr/$(get_libdir)/${PLUGINS_DIR} $1 -} - -# This function move plugins in pkg_preinst() in old dir to -# ${ROOT}/usr/$(get_libdir)/${PLUGIN_DIR}. First argument should be -# the full path (without $ROOT) to old plugin dir. -pkg_mv_plugins() { - has "${EAPI:-0}" 0 1 2 && ! use prefix && ED="${ROOT}" - - # Move old plugins dir - if [ -d "${ROOT}/$1" -a ! -L "${ROOT}/$1" ] - then - mkdir -p "${EROOT}"/usr/$(get_libdir)/${PLUGINS_DIR} - cp -a "${EROOT}"/$1/* "${EROOT}"/usr/$(get_libdir)/${PLUGINS_DIR} - rm -rf "${EROOT}"/$1 - fi -} - -# This function installs a plugin with dosym to PLUGINS_DIR. -# First argument should be the plugin file. -inst_plugin() { - if [[ -z "${1}" ]]; then - eerror "The plugin file \"${1}\" does not exist." - die "No such file or directory." - fi - - dodir /usr/$(get_libdir)/${PLUGINS_DIR} - dosym ${1} /usr/$(get_libdir)/${PLUGINS_DIR}/$(basename ${1}) -} - -# This function ensures we use proper plugin path for Gentoo. -# This should only be used by mozilla packages. -# ${MOZILLA_FIVE_HOME} must be defined in src_install to support -share_plugins_dir() { - if [[ ${PN} == seamonkey ]] ; then - rm -rf "${D}"${MOZILLA_FIVE_HOME}/plugins \ - || die "failed to remove existing plugins dir" - fi - - if [[ ${PN} == *-bin ]] ; then - PLUGIN_BASE_PATH="/usr/$(get_libdir)" - else - PLUGIN_BASE_PATH=".." - fi - - if $(mozversion_extension_location) ; then - dosym "${PLUGIN_BASE_PATH}/nsbrowser/plugins" "${MOZILLA_FIVE_HOME}/browser/plugins" - else - dosym "${PLUGIN_BASE_PATH}/nsbrowser/plugins" "${MOZILLA_FIVE_HOME}/plugins" - fi -}