Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 734536 Details for
Bug 807868
mail-client/thunderbird{,-bin}-91.3.0: version bump
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
Thunderbird-91.0.1.ebuild with config change inspired by thunderbird-bin
thunderbird-91.0.1.ebuild (text/plain), 31.85 KB, created by
/cbx
on 2021-08-20 13:52:07 UTC
(
hide
)
Description:
Thunderbird-91.0.1.ebuild with config change inspired by thunderbird-bin
Filename:
MIME Type:
Creator:
/cbx
Created:
2021-08-20 13:52:07 UTC
Size:
31.85 KB
patch
obsolete
># Copyright 1999-2021 Gentoo Authors ># Distributed under the terms of the GNU General Public License v2 > >EAPI="7" > >FIREFOX_PATCHSET="firefox-91-patches-02.tar.xz" > >LLVM_MAX_SLOT=12 > >PYTHON_COMPAT=( python3_{7..10} ) >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 linux-info \ > 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 +gmp-autoupdate > hardened hwaccel jack lto +openh264 pgo pulseaudio screencast sndio selinux > +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent > +system-libvpx +system-webp wayland wifi" > >REQUIRED_USE="debug? ( !system-av1 ) > screencast? ( wayland )" > >BDEPEND="${PYTHON_DEPS} > app-arch/unzip > app-arch/zip > >=dev-util/cbindgen-0.19.0 > >=net-libs/nodejs-10.23.1 > virtual/pkgconfig > >=virtual/rust-1.51.0 > || ( > ( > sys-devel/clang:12 > sys-devel/llvm:12 > clang? ( > =sys-devel/lld-12* > pgo? ( =sys-libs/compiler-rt-sanitizers-12*[profile] ) > ) > ) > ( > 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] ) > ) > ) > ) > amd64? ( >=dev-lang/nasm-2.13 ) > x86? ( >=dev-lang/nasm-2.13 )" > >CDEPEND=" > >=dev-libs/nss-3.68 > >=dev-libs/nspr-4.32 > dev-libs/atk > dev-libs/expat > >=x11-libs/cairo-1.10[X] > >=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 > ) > screencast? ( media-video/pipewire:0/0.3 ) > system-av1? ( > >=media-libs/dav1d-0.8.1:= > >=media-libs/libaom-1.0.0:= > ) > system-harfbuzz? ( > >=media-libs/harfbuzz-2.8.1:0= > >=media-gfx/graphite2-1.3.13 > ) > system-icu? ( >=dev-libs/icu-69.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 ) > sndio? ( media-sound/sndio )" > >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 )" > >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 > einfo "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 > einfo "=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 > einfo "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 > return 1 > fi > fi > einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2 > else > einfo "Using gcc to build" >&2 > fi > >} > >MOZ_LANGS=( > de en-US fr ru >) > >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,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}" -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 }') > [[ -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 > > if ! use clang && [[ $(gcc-major-version) -eq 11 ]] \ > && ! has_version -b ">sys-devel/gcc-11.1.0:11" ; then > # bug 792705 > eerror "Using GCC 11 to compile firefox is currently known to be broken (see bug #792705)." > die "Set USE=clang or select <gcc-11 to build ${CATEGORY}/${P}." > 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 > > if [[ -z "${MOZ_API_KEY_LOCATION+set}" ]] ; then > MOZ_API_KEY_LOCATION="AIzaSyB2h2OuRgGaPicUgy5N-5hsZqiPW6sH3n_rptiQ" > fi > > # Mozilla API keys (see https://location.services.mozilla.com/api) > # Note: These are for Gentoo Linux use ONLY. For your own distribution, please > # get your own set of keys. > if [[ -z "${MOZ_API_KEY_MOZILLA+set}" ]] ; then > MOZ_API_KEY_MOZILLA="edb3d487-3a84-46m0ap1e3-9dfd-92b5efaaa005" > 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 > > rm -v "${WORKDIR}"/firefox-patches/???-musl*.patch > rm -v "${WORKDIR}"/firefox-patches/0001-Don-t-use-build-id.patch > rm -v "${WORKDIR}"/firefox-patches/0002-Fortify-sources-properly.patch > rm -v "${WORKDIR}"/firefox-patches/0003-Check-additional-plugins-dir.patch > rm -v "${WORKDIR}"/firefox-patches/0010-Fix-building-spellchecker-when-using-GCC-and-PGO.patch > rm -v "${WORKDIR}"/firefox-patches/0030-Disable-FFVPX-with-VA-API.patch > rm -v "${WORKDIR}"/firefox-patches/0031-Enable-FLAC-on-platforms-without-ffvpx-via-ffmpeg.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 > echo -n "${MOZ_API_KEY_LOCATION//gGaPi/}" > "${S}"/api-location.key || die > echo -n "${MOZ_API_KEY_MOZILLA//m0ap1/}" > "${S}"/api-mozilla.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 > > # Set Gentoo defaults > export MOZILLA_OFFICIAL=1 > export MOZ_REQUIRE_SIGNING= > > 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-safebrowsing-api-keyfile="${S}/api-google.key" > else > einfo "Building without Google API key ..." > fi > > if [[ -s "${S}/api-location.key" ]] ; then > local key_origin="Gentoo default" > if [[ $(cat "${S}/api-location.key" | md5sum | awk '{ print $1 }') != ffb7895e35dedf832eb1c5d420ac7420 ]] ; then > key_origin="User value" > fi > > mozconfig_add_options_ac "${key_origin}" \ > --with-google-location-service-api-keyfile="${S}/api-location.key" > else > einfo "Building without Location API key ..." > fi > > if [[ -s "${S}/api-mozilla.key" ]] ; then > local key_origin="Gentoo default" > if [[ $(cat "${S}/api-mozilla.key" | md5sum | awk '{ print $1 }') != 3927726e9442a8e8fa0e46ccc39caa27 ]] ; then > key_origin="User value" > fi > > mozconfig_add_options_ac "${key_origin}" \ > --with-mozilla-api-keyfile="${S}/api-mozilla.key" > else > einfo "Building without Mozilla 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 > > # try not to... > # mozconfig_use_enable geckodriver > > 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 sndio > > 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 > # 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 > 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 > > # Portage sets XARGS environment variable to "xargs -r" by default which > # breaks build system's check_prog() function which doesn't support arguments > mozconfig_add_options_ac '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 (from tb-78) > 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 menu > local app_name="Mozilla ${MOZ_PN^}" > local desktop_file="${FILESDIR}/icon/${PN}-r2.desktop" > local desktop_filename="${PN}.desktop" > local exec_command="${PN}" > local icon="${PN}" > local use_wayland="false" > > if use wayland ; then > use_wayland="true" > fi > > 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 > > # Install wrapper script > [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}" > newbin "${FILESDIR}/${PN}-r1.sh" ${PN} > > # Update wrapper > 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}:" \ > "${ED}/usr/bin/${PN}" \ > || die >} > >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 show_normandy_information show_shortcut_information > > if [[ -z "${REPLACING_VERSIONS}" ]] ; then > # New install; Tell user that DoH is disabled by default > show_doh_information=yes > show_normandy_information=yes > show_shortcut_information=no > else > local replacing_version > for replacing_version in ${REPLACING_VERSIONS} ; do > if ver_test "${replacing_version}" -lt 91.0 ; then > # Tell user that we no longer install a shortcut > # per supported display protocol > show_shortcut_information=yes > fi > done > 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 > > # bug 713782 > if [[ -n "${show_normandy_information}" ]] ; then > elog > elog "Upstream operates a service named Normandy which allows Mozilla to" > elog "push changes for default settings or even install new add-ons remotely." > elog "While this can be useful to address problems like 'Armagadd-on 2.0' or" > elog "revert previous decisions to disable TLS 1.0/1.1, privacy and security" > elog "concerns prevail, which is why we have switched off the use of this" > elog "service by default." > elog > elog "To re-enable this service set" > elog > elog " app.normandy.enabled=true" > elog > elog "in about:config." > fi > > if [[ -n "${show_shortcut_information}" ]] ; then > elog > elog "Since thunderbird-91.0 we no longer install multiple shortcuts for" > elog "each supported display protocol. Instead we will only install" > elog "one generic Mozilla Firefox shortcut." > elog "If you still want to be able to select between running Mozilla Firefox" > elog "on X11 or Wayland, you have to re-create these shortcuts on your own." > fi >}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 807868
:
733831
|
733833
| 734536