commit:     13b8ae33614bed8f4fe7ed07f62cd95937942caf
Author:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
AuthorDate: Fri Feb 12 01:08:49 2021 +0000
Commit:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
CommitDate: Fri Feb 12 01:10:22 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=13b8ae33

mail-client/thunderbird: prepare for rust-1.50.0

Package-Manager: Portage-3.0.14, Repoman-3.0.2
Signed-off-by: Thomas Deutschmann <whissi <AT> gentoo.org>

 mail-client/thunderbird/thunderbird-78.7.0.ebuild  |    4 +-
 .../thunderbird/thunderbird-78.7.1-r1.ebuild       |    4 +-
 mail-client/thunderbird/thunderbird-78.7.1.ebuild  | 1073 --------------------
 3 files changed, 4 insertions(+), 1077 deletions(-)

diff --git a/mail-client/thunderbird/thunderbird-78.7.0.ebuild 
b/mail-client/thunderbird/thunderbird-78.7.0.ebuild
index 1b6d9fe8f96..a7c64f07539 100644
--- a/mail-client/thunderbird/thunderbird-78.7.0.ebuild
+++ b/mail-client/thunderbird/thunderbird-78.7.0.ebuild
@@ -399,12 +399,12 @@ pkg_setup() {
                        [[ -z ${version_lld} ]] && die "Failed to read ld.lld 
version!"
 
                        # temp fix for https://bugs.gentoo.org/768543
-                       # we can assume that rust 1.49.0 always uses llvm 11
+                       # we can assume that rust 1.{49,50}.0 always uses llvm 
11
                        local version_rust=$(rustc -Vv 2>/dev/null | grep -F -- 
'release:' | awk '{ print $2 }')
                        [[ -n ${version_rust} ]] && version_rust=$(ver_cut 1-2 
"${version_rust}")
                        [[ -z ${version_rust} ]] && die "Failed to read version 
from rustc!"
 
-                       if ver_test "${version_rust}" -eq "1.49" ; then
+                       if ver_test "${version_rust}" -ge "1.49" && ver_test 
"${version_rust}" -le "1.50" ; then
                                local version_llvm_rust="11"
                        else
                                local version_llvm_rust=$(rustc -Vv 2>/dev/null 
| grep -F -- 'LLVM version:' | awk '{ print $3 }')

diff --git a/mail-client/thunderbird/thunderbird-78.7.1-r1.ebuild 
b/mail-client/thunderbird/thunderbird-78.7.1-r1.ebuild
index 7ed10b02e08..baf8b608c07 100644
--- a/mail-client/thunderbird/thunderbird-78.7.1-r1.ebuild
+++ b/mail-client/thunderbird/thunderbird-78.7.1-r1.ebuild
@@ -399,12 +399,12 @@ pkg_setup() {
                        [[ -z ${version_lld} ]] && die "Failed to read ld.lld 
version!"
 
                        # temp fix for https://bugs.gentoo.org/768543
-                       # we can assume that rust 1.49.0 always uses llvm 11
+                       # we can assume that rust 1.{49,50}.0 always uses llvm 
11
                        local version_rust=$(rustc -Vv 2>/dev/null | grep -F -- 
'release:' | awk '{ print $2 }')
                        [[ -n ${version_rust} ]] && version_rust=$(ver_cut 1-2 
"${version_rust}")
                        [[ -z ${version_rust} ]] && die "Failed to read version 
from rustc!"
 
-                       if ver_test "${version_rust}" -eq "1.49" ; then
+                       if ver_test "${version_rust}" -ge "1.49" && ver_test 
"${version_rust}" -le "1.50" ; then
                                local version_llvm_rust="11"
                        else
                                local version_llvm_rust=$(rustc -Vv 2>/dev/null 
| grep -F -- 'LLVM version:' | awk '{ print $3 }')

diff --git a/mail-client/thunderbird/thunderbird-78.7.1.ebuild 
b/mail-client/thunderbird/thunderbird-78.7.1.ebuild
deleted file mode 100644
index 400d7ac8061..00000000000
--- a/mail-client/thunderbird/thunderbird-78.7.1.ebuild
+++ /dev/null
@@ -1,1073 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="7"
-
-FIREFOX_PATCHSET="firefox-78esr-patches-08.tar.xz"
-
-LLVM_MAX_SLOT=11
-
-PYTHON_COMPAT=( python3_{7..9} )
-PYTHON_REQ_USE="ncurses,sqlite,ssl"
-
-WANT_AUTOCONF="2.1"
-
-VIRTUALX_REQUIRED="pgo"
-
-MOZ_ESR=
-
-MOZ_PV=${PV}
-MOZ_PV_SUFFIX=
-if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then
-       MOZ_PV_SUFFIX=${BASH_REMATCH[1]}
-
-       # Convert the ebuild version to the upstream Mozilla version
-       MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI
-       MOZ_PV="${MOZ_PV/_beta/b}"  # Handle beta for SRC_URI
-       MOZ_PV="${MOZ_PV%%_rc*}"    # Handle rc for SRC_URI
-fi
-
-if [[ -n ${MOZ_ESR} ]] ; then
-       # ESR releases have slightly different version numbers
-       MOZ_PV="${MOZ_PV}esr"
-fi
-
-MOZ_PN="${PN%-bin}"
-MOZ_P="${MOZ_PN}-${MOZ_PV}"
-MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
-MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
-
-inherit autotools check-reqs desktop flag-o-matic gnome2-utils llvm \
-       multiprocessing pax-utils python-any-r1 toolchain-funcs \
-       virtualx xdg
-
-MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}";
-
-if [[ ${PV} == *_rc* ]] ; then
-       
MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}";
-fi
-
-PATCH_URIS=(
-       
https://dev.gentoo.org/~{axs,polynomial-c,whissi}/mozilla/patchsets/${FIREFOX_PATCHSET}
-)
-
-SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> 
${MOZ_P_DISTFILES}.source.tar.xz
-       ${PATCH_URIS[@]}"
-
-DESCRIPTION="Thunderbird Mail Client"
-HOMEPAGE="https://www.mozilla.org/thunderbird";
-
-KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
-
-SLOT="0/$(ver_cut 1)"
-LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
-IUSE="+clang cpu_flags_arm_neon dbus debug eme-free
-       hardened hwaccel jack lto +openh264 pgo pulseaudio selinux
-       +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent
-       +system-libvpx +system-webp wayland wifi"
-
-REQUIRED_USE="x86? ( lto? ( clang ) )
-       wifi? ( dbus )"
-
-BDEPEND="${PYTHON_DEPS}
-       app-arch/unzip
-       app-arch/zip
-       >=dev-util/cbindgen-0.14.3
-       >=net-libs/nodejs-10.21.0
-       virtual/pkgconfig
-       >=virtual/rust-1.41.0
-       || (
-               (
-                       sys-devel/clang:11
-                       sys-devel/llvm:11
-                       clang? (
-                               =sys-devel/lld-11*
-                               pgo? ( 
=sys-libs/compiler-rt-sanitizers-11*[profile] )
-                       )
-               )
-               (
-                       sys-devel/clang:10
-                       sys-devel/llvm:10
-                       clang? (
-                               =sys-devel/lld-10*
-                               pgo? ( 
=sys-libs/compiler-rt-sanitizers-10*[profile] )
-                       )
-               )
-               (
-                       sys-devel/clang:9
-                       sys-devel/llvm:9
-                       clang? (
-                               =sys-devel/lld-9*
-                               pgo? ( 
=sys-libs/compiler-rt-sanitizers-9*[profile] )
-                       )
-               )
-       )
-       lto? (
-               !clang? ( sys-devel/binutils[gold] )
-       )
-       amd64? ( >=dev-lang/yasm-1.1 )
-       x86? ( >=dev-lang/yasm-1.1 )
-       !system-av1? (
-               amd64? ( >=dev-lang/nasm-2.13 )
-               x86? ( >=dev-lang/nasm-2.13 )
-       )"
-
-CDEPEND="
-       >=dev-libs/nss-3.53.1
-       >=dev-libs/nspr-4.25
-       dev-libs/atk
-       dev-libs/expat
-       >=x11-libs/cairo-1.10[X]
-       >=x11-libs/gtk+-2.18:2
-       >=x11-libs/gtk+-3.4.0:3[X]
-       x11-libs/gdk-pixbuf
-       >=x11-libs/pango-1.22.0
-       >=media-libs/libpng-1.6.35: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
-       >=x11-libs/pixman-0.19.2
-       >=dev-libs/glib-2.26:2
-       >=sys-libs/zlib-1.2.3
-       >=dev-libs/libffi-3.0.10:=
-       media-video/ffmpeg
-       x11-libs/libX11
-       x11-libs/libXcomposite
-       x11-libs/libXdamage
-       x11-libs/libXext
-       x11-libs/libXfixes
-       x11-libs/libXrender
-       x11-libs/libXt
-       dbus? (
-               sys-apps/dbus
-               dev-libs/dbus-glib
-       )
-       system-av1? (
-               >=media-libs/dav1d-0.3.0:=
-               >=media-libs/libaom-1.0.0:=
-       )
-       system-harfbuzz? (
-               >=media-libs/harfbuzz-2.6.8:0=
-               >=media-gfx/graphite2-1.3.13
-       )
-       system-icu? ( >=dev-libs/icu-67.1:= )
-       system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 )
-       system-libevent? ( >=dev-libs/libevent-2.0:0=[threads] )
-       system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] )
-       system-webp? ( >=media-libs/libwebp-1.1.0:0= )
-       wifi? (
-               kernel_linux? (
-                       sys-apps/dbus
-                       dev-libs/dbus-glib
-                       net-misc/networkmanager
-               )
-       )
-       jack? ( virtual/jack )
-       selinux? ( sec-policy/selinux-mozilla )"
-
-RDEPEND="${CDEPEND}
-       jack? ( virtual/jack )
-       openh264? ( media-libs/openh264:*[plugin] )
-       pulseaudio? (
-               || (
-                       media-sound/pulseaudio
-                       >=media-sound/apulse-0.1.12-r4
-               )
-       )
-       selinux? ( sec-policy/selinux-mozilla )
-       !<x11-plugins/enigmail-2.2"
-
-DEPEND="${CDEPEND}
-       pulseaudio? (
-               || (
-                       media-sound/pulseaudio
-                       >=media-sound/apulse-0.1.12-r4[sdk]
-               )
-       )
-       wayland? ( >=x11-libs/gtk+-3.11:3[wayland] )
-       amd64? ( virtual/opengl )
-       x86? ( virtual/opengl )"
-
-S="${WORKDIR}/${PN}-${PV%_*}"
-
-llvm_check_deps() {
-       if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
-               ewarn "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM 
slot ${LLVM_SLOT} ..." >&2
-               return 1
-       fi
-
-       if use clang ; then
-               if ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then
-                       ewarn "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot 
use LLVM slot ${LLVM_SLOT} ..." >&2
-                       return 1
-               fi
-
-               if use pgo ; then
-                       if ! has_version -b 
"=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*" ; then
-                               ewarn 
"=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}* is missing! Cannot use LLVM 
slot ${LLVM_SLOT} ..." >&2
-                               return 1
-                       fi
-               fi
-       fi
-
-       einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
-}
-
-MOZ_LANGS=(
-       af ar ast be bg br ca cak cs cy da de dsb el en-CA en-GB en-US
-       es-AR es-ES et eu fa fi fr fy-NL ga-IE gd gl he hr hsb hu hy-AM
-       id is it ja ka kab kk ko lt ms nb-NO nl nn-NO pa-IN pl pt-BR
-       pt-PT rm ro ru si sk sl sq sr sv-SE th tr uz vi zh-CN zh-TW
-)
-
-mozilla_set_globals() {
-       # https://bugs.gentoo.org/587334
-       local MOZ_TOO_REGIONALIZED_FOR_L10N=(
-               fy-NL ga-IE gu-IN hi-IN hy-AM nb-NO ne-NP nn-NO pa-IN sv-SE
-       )
-
-       local lang xflag
-       for lang in "${MOZ_LANGS[@]}" ; do
-               # en and en_US are handled internally
-               if [[ ${lang} == en ]] || [[ ${lang} == en-US ]] ; then
-                       continue
-               fi
-
-               # strip region subtag if $lang is in the list
-               if has ${lang} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then
-                       xflag=${lang%%-*}
-               else
-                       xflag=${lang}
-               fi
-
-               SRC_URI+=" l10n_${xflag/[_@]/-}? ("
-               SRC_URI+=" ${MOZ_SRC_BASE_URI}/linux-x86_64/xpi/${lang}.xpi -> 
${MOZ_P_DISTFILES}-${lang}.xpi"
-               SRC_URI+=" )"
-               IUSE+=" l10n_${xflag/[_@]/-}"
-       done
-}
-mozilla_set_globals
-
-moz_clear_vendor_checksums() {
-       debug-print-function ${FUNCNAME} "$@"
-
-       if [[ ${#} -ne 1 ]] ; then
-               die "${FUNCNAME} requires exact one argument"
-       fi
-
-       einfo "Clearing cargo checksums for ${1} ..."
-
-       sed -i \
-               -e 's/\("files":{\)[^}]*/\1/' \
-               "${S}"/third_party/rust/${1}/.cargo-checksum.json \
-               || die
-}
-
-moz_install_xpi() {
-       debug-print-function ${FUNCNAME} "$@"
-
-       if [[ ${#} -lt 2 ]] ; then
-               die "${FUNCNAME} requires at least two arguments"
-       fi
-
-       local DESTDIR=${1}
-       shift
-
-       insinto "${DESTDIR}"
-
-       local emid xpi_file xpi_tmp_dir
-       for xpi_file in "${@}" ; do
-               emid=
-               xpi_tmp_dir=$(mktemp -d --tmpdir="${T}")
-
-               # Unpack XPI
-               unzip -qq "${xpi_file}" -d "${xpi_tmp_dir}" || die
-
-               # Determine extension ID
-               if [[ -f "${xpi_tmp_dir}/install.rdf" ]] ; then
-                       emid=$(sed -n -e '/install-manifest/,$ { /em:id/!d; 
s/.*[\">]\([^\"<>]*\)[\"<].*/\1/; p; q }' "${xpi_tmp_dir}/install.rdf")
-                       [[ -z "${emid}" ]] && die "failed to determine 
extension id from install.rdf"
-               elif [[ -f "${xpi_tmp_dir}/manifest.json" ]] ; then
-                       emid=$(sed -n -e 's/.*"id": "\([^"]*\)".*/\1/p' 
"${xpi_tmp_dir}/manifest.json")
-                       [[ -z "${emid}" ]] && die "failed to determine 
extension id from manifest.json"
-               else
-                       die "failed to determine extension id"
-               fi
-
-               einfo "Installing ${emid}.xpi into ${ED}${DESTDIR} ..."
-               newins "${xpi_file}" "${emid}.xpi"
-       done
-}
-
-mozconfig_add_options_ac() {
-       debug-print-function ${FUNCNAME} "$@"
-
-       if [[ ${#} -lt 2 ]] ; then
-               die "${FUNCNAME} requires at least two arguments"
-       fi
-
-       local reason=${1}
-       shift
-
-       local option
-       for option in ${@} ; do
-               echo "ac_add_options ${option} # ${reason}" >>${MOZCONFIG}
-       done
-}
-
-mozconfig_add_options_mk() {
-       debug-print-function ${FUNCNAME} "$@"
-
-       if [[ ${#} -lt 2 ]] ; then
-               die "${FUNCNAME} requires at least two arguments"
-       fi
-
-       local reason=${1}
-       shift
-
-       local option
-       for option in ${@} ; do
-               echo "mk_add_options ${option} # ${reason}" >>${MOZCONFIG}
-       done
-}
-
-mozconfig_use_enable() {
-       debug-print-function ${FUNCNAME} "$@"
-
-       if [[ ${#} -lt 1 ]] ; then
-               die "${FUNCNAME} requires at least one arguments"
-       fi
-
-       local flag=$(use_enable "${@}")
-       mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" 
"${flag}"
-}
-
-mozconfig_use_with() {
-       debug-print-function ${FUNCNAME} "$@"
-
-       if [[ ${#} -lt 1 ]] ; then
-               die "${FUNCNAME} requires at least one arguments"
-       fi
-
-       local flag=$(use_with "${@}")
-       mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" 
"${flag}"
-}
-
-pkg_pretend() {
-       if [[ ${MERGE_TYPE} != binary ]] ; then
-               if use pgo ; then
-                       if ! has usersandbox $FEATURES ; then
-                               die "You must enable usersandbox as X server 
can not run as root!"
-                       fi
-               fi
-
-               # Ensure we have enough disk space to compile
-               if use pgo || use lto || use debug ; then
-                       CHECKREQS_DISK_BUILD="13500M"
-               else
-                       CHECKREQS_DISK_BUILD="6400M"
-               fi
-
-               check-reqs_pkg_pretend
-       fi
-}
-
-pkg_setup() {
-       if [[ ${MERGE_TYPE} != binary ]] ; then
-               if use pgo ; then
-                       if ! has userpriv ${FEATURES} ; then
-                               eerror "Building ${PN} with USE=pgo and 
FEATURES=-userpriv is not supported!"
-                       fi
-               fi
-
-               # Ensure we have enough disk space to compile
-               if use pgo || use lto || use debug ; then
-                       CHECKREQS_DISK_BUILD="13500M"
-               else
-                       CHECKREQS_DISK_BUILD="6400M"
-               fi
-
-               check-reqs_pkg_setup
-
-               llvm_pkg_setup
-
-               if use clang && use lto ; then
-                       local version_lld=$(ld.lld --version 2>/dev/null | awk 
'{ print $2 }')
-                       [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 
"${version_lld}")
-                       [[ -z ${version_lld} ]] && die "Failed to read ld.lld 
version!"
-
-                       # temp fix for https://bugs.gentoo.org/768543
-                       # we can assume that rust 1.49.0 always uses llvm 11
-                       local version_rust=$(rustc -Vv 2>/dev/null | grep -F -- 
'release:' | awk '{ print $2 }')
-                       [[ -n ${version_rust} ]] && version_rust=$(ver_cut 1-2 
"${version_rust}")
-                       [[ -z ${version_rust} ]] && die "Failed to read version 
from rustc!"
-
-                       if ver_test "${version_rust}" -eq "1.49" ; then
-                               local version_llvm_rust="11"
-                       else
-                               local version_llvm_rust=$(rustc -Vv 2>/dev/null 
| grep -F -- 'LLVM version:' | awk '{ print $3 }')
-                               [[ -n ${version_llvm_rust} ]] && 
version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}")
-                               [[ -z ${version_llvm_rust} ]] && die "Failed to 
read used LLVM version from rustc!"
-                       fi
-
-                       if ver_test "${version_lld}" -ne "${version_llvm_rust}" 
; then
-                               eerror "Rust is using LLVM version 
${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}."
-                               eerror "You will be unable to link 
${CATEGORY}/${PN}. To proceed you have the following options:"
-                               eerror "  - Manually switch rust version using 
'eselect rust' to match used LLVM version"
-                               eerror "  - Switch to 
dev-lang/rust[system-llvm] which will guarantee matching version"
-                               eerror "  - Build ${CATEGORY}/${PN} without 
USE=lto"
-                               die "LLVM version used by Rust 
(${version_llvm_rust}) does not match with ld.lld version (${version_lld})!"
-                       fi
-               fi
-
-               python-any-r1_pkg_setup
-
-               # Avoid PGO profiling problems due to enviroment leakage
-               # These should *always* be cleaned up anyway
-               unset \
-                       DBUS_SESSION_BUS_ADDRESS \
-                       DISPLAY \
-                       ORBIT_SOCKETDIR \
-                       SESSION_MANAGER \
-                       XAUTHORITY \
-                       XDG_CACHE_HOME \
-                       XDG_SESSION_COOKIE
-
-               # Build system is using /proc/self/oom_score_adj, bug #604394
-               addpredict /proc/self/oom_score_adj
-
-               if ! mountpoint -q /dev/shm ; then
-                       # If /dev/shm is not available, configure is known to 
fail with
-                       # a traceback report referencing 
/usr/lib/pythonN.N/multiprocessing/synchronize.py
-                       ewarn "/dev/shm is not mounted -- expect build 
failures!"
-               fi
-
-               # Google API keys (see 
http://www.chromium.org/developers/how-tos/api-keys)
-               # Note: These are for Gentoo Linux use ONLY. For your own 
distribution, please
-               # get your own set of keys.
-               if [[ -z "${MOZ_API_KEY_GOOGLE+set}" ]] ; then
-                       
MOZ_API_KEY_GOOGLE="AIzaSyDEAOvatFogGaPi0eTgsV_ZlEzx0ObmepsMzfAc"
-               fi
-
-               # Ensure we use C locale when building, bug #746215
-               export LC_ALL=C
-       fi
-}
-
-src_unpack() {
-       local _lp_dir="${WORKDIR}/language_packs"
-       local _src_file
-
-       if [[ ! -d "${_lp_dir}" ]] ; then
-               mkdir "${_lp_dir}" || die
-       fi
-
-       for _src_file in ${A} ; do
-               if [[ ${_src_file} == *.xpi ]]; then
-                       cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die 
"Failed to copy '${_src_file}' to '${_lp_dir}'!"
-               else
-                       unpack ${_src_file}
-               fi
-       done
-}
-
-src_prepare() {
-       use lto && rm -v 
"${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch
-       eapply "${WORKDIR}/firefox-patches"
-
-       # Allow user to apply any additional patches without modifing ebuild
-       eapply_user
-
-       # Make LTO respect MAKEOPTS
-       sed -i \
-               -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
-               "${S}"/build/moz.configure/lto-pgo.configure \
-               || die "sed failed to set num_cores"
-
-       # Make ICU respect MAKEOPTS
-       sed -i \
-               -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
-               "${S}"/intl/icu_sources_data.py \
-               || die "sed failed to set num_cores"
-
-       # sed-in toolchain prefix
-       sed -i \
-               -e "s/objdump/${CHOST}-objdump/" \
-               "${S}"/python/mozbuild/mozbuild/configure/check_debug_ranges.py 
\
-               || die "sed failed to set toolchain prefix"
-
-       sed -i \
-               -e 's/ccache_stats = None/return None/' \
-               "${S}"/python/mozbuild/mozbuild/controller/building.py \
-               || die "sed failed to disable ccache stats call"
-
-       einfo "Removing pre-built binaries ..."
-       find "${S}"/third_party -type f \( -name '*.so' -o -name '*.o' \) 
-print -delete || die
-
-       # Clearing checksums where we have applied patches
-       moz_clear_vendor_checksums target-lexicon-0.9.0
-
-       # Create build dir
-       BUILD_DIR="${WORKDIR}/${PN}_build"
-       mkdir -p "${BUILD_DIR}" || die
-
-       # Write API keys to disk
-       echo -n "${MOZ_API_KEY_GOOGLE//gGaPi/}" > "${S}"/api-google.key || die
-
-       xdg_src_prepare
-}
-
-src_configure() {
-       # Show flags set at the beginning
-       einfo "Current BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}"
-       einfo "Current CFLAGS:\t\t${CFLAGS:-no value set}"
-       einfo "Current CXXFLAGS:\t\t${CXXFLAGS:-no value set}"
-       einfo "Current LDFLAGS:\t\t${LDFLAGS:-no value set}"
-       einfo "Current RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}"
-
-       local have_switched_compiler=
-       if use clang && ! tc-is-clang ; then
-               # Force clang
-               einfo "Enforcing the use of clang due to USE=clang ..."
-               have_switched_compiler=yes
-               AR=llvm-ar
-               CC=${CHOST}-clang
-               CXX=${CHOST}-clang++
-               NM=llvm-nm
-               RANLIB=llvm-ranlib
-       elif ! use clang && ! tc-is-gcc ; then
-               # Force gcc
-               have_switched_compiler=yes
-               einfo "Enforcing the use of gcc due to USE=-clang ..."
-               AR=gcc-ar
-               CC=${CHOST}-gcc
-               CXX=${CHOST}-g++
-               NM=gcc-nm
-               RANLIB=gcc-ranlib
-       fi
-
-       if [[ -n "${have_switched_compiler}" ]] ; then
-               # Because we switched active compiler we have to ensure
-               # that no unsupported flags are set
-               strip-unsupported-flags
-       fi
-
-       # Ensure we use correct toolchain
-       export HOST_CC="$(tc-getBUILD_CC)"
-       export HOST_CXX="$(tc-getBUILD_CXX)"
-       tc-export CC CXX LD AR NM OBJDUMP RANLIB PKG_CONFIG
-
-       # Pass the correct toolchain paths through cbindgen
-       if tc-is-cross-compiler ; then
-               export BINDGEN_CFLAGS="${SYSROOT:+--sysroot=${ESYSROOT}} 
--target=${CHOST} ${BINDGEN_CFLAGS-}"
-       fi
-
-       # Set MOZILLA_FIVE_HOME
-       export MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}"
-
-       # python/mach/mach/mixin/process.py fails to detect SHELL
-       export SHELL="${EPREFIX}/bin/bash"
-
-       # Set MOZCONFIG
-       export MOZCONFIG="${S}/.mozconfig"
-
-       # Initialize MOZCONFIG
-       mozconfig_add_options_ac '' --enable-application=comm/mail
-       mozconfig_add_options_ac '' --enable-calendar
-
-       # Set Gentoo defaults
-       export MOZILLA_OFFICIAL=1
-
-       mozconfig_add_options_ac 'Gentoo default' \
-               --allow-addon-sideload \
-               --disable-cargo-incremental \
-               --disable-crashreporter \
-               --disable-install-strip \
-               --disable-strip \
-               --disable-updater \
-               --enable-official-branding \
-               --enable-release \
-               --enable-system-ffi \
-               --enable-system-pixman \
-               --host="${CBUILD:-${CHOST}}" \
-               --libdir="${EPREFIX}/usr/$(get_libdir)" \
-               --prefix="${EPREFIX}/usr" \
-               --target="${CHOST}" \
-               --without-ccache \
-               --with-intl-api \
-               --with-libclang-path="$(llvm-config --libdir)" \
-               --with-system-nspr \
-               --with-system-nss \
-               --with-system-png \
-               --with-system-zlib \
-               --with-toolchain-prefix="${CHOST}-" \
-               --with-unsigned-addon-scopes=app,system \
-               --x-includes="${SYSROOT}${EPREFIX}/usr/include" \
-               --x-libraries="${SYSROOT}${EPREFIX}/usr/$(get_libdir)"
-
-       # Set update channel
-       local update_channel=release
-       [[ -n ${MOZ_ESR} ]] && update_channel=esr
-       mozconfig_add_options_ac '' --update-channel=${update_channel}
-
-       if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then
-               mozconfig_add_options_ac '' --enable-rust-simd
-       fi
-
-       if [[ -s "${S}/api-google.key" ]] ; then
-               local key_origin="Gentoo default"
-               if [[ $(cat "${S}/api-google.key" | md5sum | awk '{ print $1 
}') != 709560c02f94b41f9ad2c49207be6c54 ]] ; then
-                       key_origin="User value"
-               fi
-
-               mozconfig_add_options_ac "${key_origin}" \
-                       
--with-google-location-service-api-keyfile="${S}/api-google.key" \
-                       
--with-google-safebrowsing-api-keyfile="${S}/api-google.key"
-       else
-               einfo "Building without Google API key ..."
-       fi
-
-       mozconfig_use_with system-av1
-       mozconfig_use_with system-harfbuzz
-       mozconfig_use_with system-harfbuzz system-graphite2
-       mozconfig_use_with system-icu
-       mozconfig_use_with system-jpeg
-       mozconfig_use_with system-libevent system-libevent 
"${SYSROOT}${EPREFIX}/usr"
-       mozconfig_use_with system-libvpx
-       mozconfig_use_with system-webp
-
-       mozconfig_use_enable dbus
-
-       use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme
-
-       if use hardened ; then
-               mozconfig_add_options_ac "+hardened" --enable-hardening
-               append-ldflags "-Wl,-z,relro -Wl,-z,now"
-       fi
-
-       mozconfig_use_enable jack
-
-       mozconfig_use_enable pulseaudio
-       # force the deprecated alsa sound code if pulseaudio is disabled
-       if use kernel_linux && ! use pulseaudio ; then
-               mozconfig_add_options_ac '-pulseaudio' --enable-alsa
-       fi
-
-       mozconfig_use_enable wifi necko-wifi
-
-       if use wayland ; then
-               mozconfig_add_options_ac '+wayland' 
--enable-default-toolkit=cairo-gtk3-wayland
-       else
-               mozconfig_add_options_ac '' --enable-default-toolkit=cairo-gtk3
-       fi
-
-       if use lto ; then
-               if use clang ; then
-                       # Upstream only supports lld when using clang
-                       mozconfig_add_options_ac "forcing ld=lld due to 
USE=clang and USE=lto" --enable-linker=lld
-
-                       mozconfig_add_options_ac '+lto' --enable-lto=cross
-               else
-                       # Linking only works when using ld.gold when LTO is 
enabled
-                       mozconfig_add_options_ac "forcing ld=gold due to 
USE=lto" --enable-linker=gold
-
-                       # ThinLTO is currently broken, see bmo#1644409
-                       mozconfig_add_options_ac '+lto' --enable-lto=full
-               fi
-
-               if use pgo ; then
-                       mozconfig_add_options_ac '+pgo' MOZ_PGO=1
-
-                       if use clang ; then
-                               # Used in build/pgo/profileserver.py
-                               export LLVM_PROFDATA="llvm-profdata"
-                       fi
-               fi
-       else
-               # Avoid auto-magic on linker
-               if use clang ; then
-                       # This is upstream's default
-                       mozconfig_add_options_ac "forcing ld=lld due to 
USE=clang" --enable-linker=lld
-               elif tc-ld-is-gold ; then
-                       mozconfig_add_options_ac "linker is set to gold" 
--enable-linker=gold
-               else
-                       mozconfig_add_options_ac "linker is set to bfd" 
--enable-linker=bfd
-               fi
-       fi
-
-       # LTO flag was handled via configure
-       filter-flags '-flto*'
-
-       mozconfig_use_enable debug
-       if use debug ; then
-               mozconfig_add_options_ac '+debug' --disable-optimize
-       else
-               if is-flag '-g*' ; then
-                       if use clang ; then
-                               mozconfig_add_options_ac 'from CFLAGS' 
--enable-debug-symbols=$(get-flag '-g*')
-                       else
-                               mozconfig_add_options_ac 'from CFLAGS' 
--enable-debug-symbols
-                       fi
-               else
-                       mozconfig_add_options_ac 'Gentoo default' 
--disable-debug-symbols
-               fi
-
-               if is-flag '-O0' ; then
-                       mozconfig_add_options_ac "from CFLAGS" 
--enable-optimize=-O0
-               elif is-flag '-O4' ; then
-                       mozconfig_add_options_ac "from CFLAGS" 
--enable-optimize=-O4
-               elif is-flag '-O3' ; then
-                       mozconfig_add_options_ac "from CFLAGS" 
--enable-optimize=-O3
-               elif is-flag '-O1' ; then
-                       mozconfig_add_options_ac "from CFLAGS" 
--enable-optimize=-O1
-               elif is-flag '-Os' ; then
-                       mozconfig_add_options_ac "from CFLAGS" 
--enable-optimize=-Os
-               else
-                       mozconfig_add_options_ac "Gentoo default" 
--enable-optimize=-O2
-               fi
-       fi
-
-       # Debug flag was handled via configure
-       filter-flags '-g*'
-
-       # Optimization flag was handled via configure
-       filter-flags '-O*'
-
-       # Modifications to better support ARM, bug #553364
-       if use cpu_flags_arm_neon ; then
-               mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-fpu=neon
-
-               if ! tc-is-clang ; then
-                       # thumb options aren't supported when using clang, bug 
666966
-                       mozconfig_add_options_ac '+cpu_flags_arm_neon' \
-                               --with-thumb=yes \
-                               --with-thumb-interwork=no
-               fi
-       fi
-
-       if [[ ${CHOST} == armv*h* ]] ; then
-               mozconfig_add_options_ac 'CHOST=armv*h*' --with-float-abi=hard
-
-               if ! use system-libvpx ; then
-                       sed -i \
-                               -e "s|softfp|hard|" \
-                               "${S}"/media/libvpx/moz.build \
-                               || die
-               fi
-       fi
-
-       if use clang ; then
-               # https://bugzilla.mozilla.org/show_bug.cgi?id=1482204
-               # https://bugzilla.mozilla.org/show_bug.cgi?id=1483822
-               # toolkit/moz.configure Elfhack section: target.cpu in ('arm', 
'x86', 'x86_64')
-               local disable_elf_hack=
-               if use amd64 ; then
-                       disable_elf_hack=yes
-               elif use x86 ; then
-                       disable_elf_hack=yes
-               elif use arm ; then
-                       disable_elf_hack=yes
-               fi
-
-               if [[ -n ${disable_elf_hack} ]] ; then
-                       mozconfig_add_options_ac 'elf-hack is broken when using 
Clang' --disable-elf-hack
-               fi
-       elif tc-is-gcc ; then
-               if ver_test $(gcc-fullversion) -ge 10 ; then
-                       einfo "Forcing -fno-tree-loop-vectorize to workaround 
GCC bug, see bug 758446 ..."
-                       append-cxxflags -fno-tree-loop-vectorize
-               fi
-       fi
-
-       # 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 || use lto ; then
-                               append-ldflags -Wl,--no-keep-memory
-                       else
-                               append-ldflags -Wl,--no-keep-memory 
-Wl,--reduce-memory-overheads
-                       fi
-                       ;;
-       esac
-
-       if ! use elibc_glibc ; then
-               mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc
-       fi
-
-       # Allow elfhack to work in combination with unstripped binaries
-       # when they would normally be larger than 2GiB.
-       append-ldflags "-Wl,--compress-debug-sections=zlib"
-
-       # Make revdep-rebuild.sh happy; Also required for musl
-       append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags
-
-       # Pass $MAKEOPTS to build system
-       export MOZ_MAKE_FLAGS="${MAKEOPTS}"
-
-       # Use system's Python environment
-       export MACH_USE_SYSTEM_PYTHON=1
-
-       # Disable notification when build system has finished
-       export MOZ_NOSPAM=1
-
-       # Build system requires xargs but is unable to find it
-       mozconfig_add_options_mk 'Gentoo default' 
"XARGS=${EPREFIX}/usr/bin/xargs"
-
-       # Set build dir
-       mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}"
-
-       # Show flags we will use
-       einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}"
-       einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}"
-       einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}"
-       einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}"
-       einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}"
-
-       # Handle EXTRA_CONF and show summary
-       local 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_add_options_ac "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
-
-       ./mach configure || die
-}
-
-src_compile() {
-       local virtx_cmd=
-
-       if use pgo ; then
-               virtx_cmd=virtx
-
-               # Reset and cleanup environment variables used by GNOME/XDG
-               gnome2_environment_reset
-
-               addpredict /root
-       fi
-
-       local -x GDK_BACKEND=x11
-
-       ${virtx_cmd} ./mach build --verbose \
-               || die
-}
-
-src_install() {
-       # xpcshell is getting called during install
-       pax-mark m \
-               "${BUILD_DIR}"/dist/bin/xpcshell \
-               "${BUILD_DIR}"/dist/bin/${PN} \
-               "${BUILD_DIR}"/dist/bin/plugin-container
-
-       DESTDIR="${D}" ./mach install || die
-
-       # Upstream cannot ship symlink but we can (bmo#658850)
-       rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die
-       dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin
-
-       # Don't install llvm-symbolizer from sys-devel/llvm package
-       if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then
-               rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die
-       fi
-
-       # Install policy (currently only used to disable application updates)
-       insinto "${MOZILLA_FIVE_HOME}/distribution"
-       newins "${FILESDIR}"/distribution.ini distribution.ini
-       newins "${FILESDIR}"/disable-auto-update.policy.json policies.json
-
-       # Install system-wide preferences
-       local PREFS_DIR="${MOZILLA_FIVE_HOME}/defaults/pref"
-       insinto "${PREFS_DIR}"
-       newins "${FILESDIR}"/gentoo-default-prefs.js gentoo-prefs.js
-
-       local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.js"
-
-       # Set dictionary path to use system hunspell
-       cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set 
spellchecker.dictionary_path pref"
-       pref("spellchecker.dictionary_path",       
"${EPREFIX}/usr/share/myspell");
-       EOF
-
-       # Force hwaccel prefs if USE=hwaccel is enabled
-       if use hwaccel ; then
-               cat "${FILESDIR}"/gentoo-hwaccel-prefs.js \
-               >>"${GENTOO_PREFS}" \
-               || die "failed to add prefs to force hardware-accelerated 
rendering to all-gentoo.js"
-       fi
-
-       # Force the graphite pref if USE=system-harfbuzz is enabled, since the 
pref cannot disable it
-       if use system-harfbuzz ; then
-               cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set 
gfx.font_rendering.graphite.enabled pref"
-               sticky_pref("gfx.font_rendering.graphite.enabled", true);
-               EOF
-       fi
-
-       # Install language packs
-       local langpacks=( $(find "${WORKDIR}/language_packs" -type f -name 
'*.xpi') )
-       if [[ -n "${langpacks}" ]] ; then
-               moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions" 
"${langpacks[@]}"
-       fi
-
-       # Install icons
-       local icon_srcdir="${S}/comm/mail/branding/thunderbird"
-       local icon_symbolic_file="${icon_srcdir}/TB-symbolic.svg"
-
-       insinto /usr/share/icons/hicolor/symbolic/apps
-       newins "${icon_symbolic_file}" ${PN}-symbolic.svg
-
-       local icon size
-       for icon in "${icon_srcdir}"/default*.png ; do
-               size=${icon%.png}
-               size=${size##*/default}
-
-               if [[ ${size} -eq 48 ]] ; then
-                       newicon "${icon}" ${PN}.png
-               fi
-
-               newicon -s ${size} "${icon}" ${PN}.png
-       done
-
-       # Install menus
-       local wrapper_wayland="${PN}-wayland.sh"
-       local wrapper_x11="${PN}-x11.sh"
-       local desktop_file="${FILESDIR}/icon/${PN}-r2.desktop"
-       local display_protocols="auto X11"
-       local icon="${PN}"
-       local name="Mozilla ${MOZ_PN^}"
-       local use_wayland="false"
-
-       if use wayland ; then
-               display_protocols+=" Wayland"
-               use_wayland="true"
-       fi
-
-       local app_name desktop_filename display_protocol exec_command
-       for display_protocol in ${display_protocols} ; do
-               app_name="${name} on ${display_protocol}"
-               desktop_filename="${PN}-${display_protocol,,}.desktop"
-
-               case ${display_protocol} in
-                       Wayland)
-                               exec_command="${PN}-wayland --name 
${PN}-wayland"
-                               newbin "${FILESDIR}/${wrapper_wayland}" 
${PN}-wayland
-                               ;;
-                       X11)
-                               if ! use wayland ; then
-                                       # Exit loop here because there's no 
choice so
-                                       # we don't need wrapper/.desktop file 
for X11.
-                                       continue
-                               fi
-
-                               exec_command="${PN}-x11 --name ${PN}-x11"
-                               newbin "${FILESDIR}/${wrapper_x11}" ${PN}-x11
-                               ;;
-                       *)
-                               app_name="${name}"
-                               desktop_filename="${PN}.desktop"
-                               exec_command="${PN}"
-                               ;;
-               esac
-
-               cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die
-
-               sed -i \
-                       -e "s:@NAME@:${app_name}:" \
-                       -e "s:@EXEC@:${exec_command}:" \
-                       -e "s:@ICON@:${icon}:" \
-                       "${WORKDIR}/${PN}.desktop-template" \
-                       || die
-
-               newmenu "${WORKDIR}/${PN}.desktop-template" 
"${desktop_filename}"
-
-               rm "${WORKDIR}/${PN}.desktop-template" || die
-       done
-
-       # Install generic wrapper script
-       [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}"
-       newbin "${FILESDIR}/${PN}.sh" ${PN}
-
-       # Update wrapper
-       local wrapper
-       for wrapper in \
-               "${ED}/usr/bin/${PN}" \
-               "${ED}/usr/bin/${PN}-x11" \
-               "${ED}/usr/bin/${PN}-wayland" \
-       ; do
-               [[ ! -f "${wrapper}" ]] && continue
-
-               sed -i \
-                       -e "s:@PREFIX@:${EPREFIX}/usr:" \
-                       -e "s:@MOZ_FIVE_HOME@:${MOZILLA_FIVE_HOME}:" \
-                       -e "s:@APULSELIB_DIR@:${apulselib}:" \
-                       -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \
-                       "${wrapper}" \
-                       || die
-       done
-}
-
-pkg_preinst() {
-       xdg_pkg_preinst
-
-       # If the apulse libs are available in MOZILLA_FIVE_HOME then apulse
-       # does not need to be forced into the LD_LIBRARY_PATH
-       if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then
-               einfo "APULSE found; Generating library symlinks for sound 
support ..."
-               local lib
-               pushd "${ED}${MOZILLA_FIVE_HOME}" &>/dev/null || die
-               for lib in ../apulse/libpulse{.so{,.0},-simple.so{,.0}} ; do
-                       # A quickpkg rolled by hand will grab symlinks as part 
of the package,
-                       # so we need to avoid creating them if they already 
exist.
-                       if [[ ! -L ${lib##*/} ]] ; then
-                               ln -s "${lib}" ${lib##*/} || die
-                       fi
-               done
-               popd &>/dev/null || die
-       fi
-}
-
-pkg_postinst() {
-       xdg_pkg_postinst
-
-       if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then
-               elog "Apulse was detected at merge time on this system and so 
it will always be"
-               elog "used for sound.  If you wish to use pulseaudio instead 
please unmerge"
-               elog "media-sound/apulse."
-               elog
-       fi
-
-       local show_doh_information
-
-       if [[ -z "${REPLACING_VERSIONS}" ]] ; then
-               # New install; Tell user that DoH is disabled by default
-               show_doh_information=yes
-       fi
-
-       if [[ -n "${show_doh_information}" ]] ; then
-               elog
-               elog "Note regarding Trusted Recursive Resolver aka 
DNS-over-HTTPS (DoH):"
-               elog "Due to privacy concerns (encrypting DNS might be a good 
thing, sending all"
-               elog "DNS traffic to Cloudflare by default is not a good idea 
and applications"
-               elog "should respect OS configured settings), 
\"network.trr.mode\" was set to 5"
-               elog "(\"Off by choice\") by default."
-               elog "You can enable DNS-over-HTTPS in ${PN^}'s preferences."
-       fi
-}

Reply via email to