| 3 |
3 |
|
| 4 |
4 |
EAPI=8
|
| 5 |
5 |
|
| 6 |
|
FIREFOX_PATCHSET="firefox-140esr-patches-07t.tar.xz"
|
| 7 |
|
FIREFOX_LOONG_PATCHSET="firefox-139-loong-patches-02.tar.xz"
|
|
6 |
FIREFOX_PATCHSET="firefox-150-patches-01t.tar.xz"
|
| 8 |
7 |
|
| 9 |
|
LLVM_COMPAT=( 19 20 21 )
|
|
8 |
LLVM_COMPAT=( 20 21 )
|
| 10 |
9 |
|
| 11 |
|
PYTHON_COMPAT=( python3_{11..14} )
|
|
10 |
PYTHON_COMPAT=( python3_{12..14} )
|
| 12 |
11 |
PYTHON_REQ_USE="ncurses,sqlite,ssl"
|
| 13 |
12 |
|
| 14 |
|
RUST_MIN_VER="1.82.0"
|
|
13 |
RUST_MIN_VER="1.90.0"
|
| 15 |
14 |
RUST_NEEDS_LLVM=1
|
| 16 |
15 |
|
| 17 |
16 |
WANT_AUTOCONF="2.1"
|
| ... | ... | |
| 19 |
18 |
VIRTUALX_REQUIRED="manual"
|
| 20 |
19 |
|
| 21 |
20 |
# Thunderbird will have separate release and esr channels, matching Firefox's rapid and esr.
|
| 22 |
|
MOZ_ESR=yes
|
|
21 |
MOZ_ESR=
|
| 23 |
22 |
|
| 24 |
23 |
MOZ_PV=${PV}
|
| 25 |
24 |
MOZ_PV_SUFFIX=
|
| ... | ... | |
| 59 |
58 |
)
|
| 60 |
59 |
|
| 61 |
60 |
SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz
|
| 62 |
|
${PATCH_URIS[@]}
|
| 63 |
|
loong? (
|
| 64 |
|
https://dev.gentoo.org/~xen0n/distfiles/www-client/${MOZ_PN}/${FIREFOX_LOONG_PATCHSET}
|
| 65 |
|
)"
|
|
61 |
${PATCH_URIS[@]}"
|
| 66 |
62 |
S="${WORKDIR}/${PN}-${PV%_*}"
|
| 67 |
63 |
|
| 68 |
64 |
if [[ -n ${MOZ_ESR} ]] ; then
|
| ... | ... | |
| 72 |
68 |
fi
|
| 73 |
69 |
|
| 74 |
70 |
LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
|
| 75 |
|
KEYWORDS="amd64 arm64 ~loong ~ppc64 ~x86"
|
|
71 |
KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~x86"
|
| 76 |
72 |
|
| 77 |
|
IUSE="+clang debug eme-free hardened hwaccel jack libproxy pgo pulseaudio selinux sndio"
|
|
73 |
IUSE="+clang debug eme-free hardened hwaccel jack libproxy pgo pulseaudio sndio selinux"
|
| 78 |
74 |
IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent +system-libvpx"
|
| 79 |
75 |
IUSE+=" system-pipewire system-png +system-webp wayland wifi +X"
|
| 80 |
76 |
|
| 81 |
77 |
# Thunderbird-only USE flags.
|
| 82 |
78 |
IUSE+=" +system-librnp"
|
| 83 |
79 |
|
|
80 |
# "-system-librnp" requires clang, bmo#2006910
|
| 84 |
81 |
REQUIRED_USE="|| ( X wayland )
|
|
82 |
!system-librnp? ( clang )
|
| 85 |
83 |
debug? ( !system-av1 )"
|
| 86 |
84 |
|
| 87 |
85 |
TB_ONLY_DEPEND="selinux? ( sec-policy/selinux-thunderbird )
|
| ... | ... | |
| 99 |
97 |
app-alternatives/awk
|
| 100 |
98 |
app-arch/unzip
|
| 101 |
99 |
app-arch/zip
|
| 102 |
|
>=dev-util/cbindgen-0.27.0
|
|
100 |
>=dev-util/cbindgen-0.29.1
|
| 103 |
101 |
net-libs/nodejs
|
| 104 |
102 |
virtual/pkgconfig
|
| 105 |
103 |
amd64? ( >=dev-lang/nasm-2.14 )
|
| ... | ... | |
| 119 |
117 |
>=app-accessibility/at-spi2-core-2.46.0:2
|
| 120 |
118 |
dev-libs/glib:2
|
| 121 |
119 |
dev-libs/libffi:=
|
| 122 |
|
>=dev-libs/nss-3.112.3
|
| 123 |
|
>=dev-libs/nspr-4.36
|
|
120 |
>=dev-libs/nss-3.122.1
|
|
121 |
>=dev-libs/nspr-4.38
|
| 124 |
122 |
media-libs/alsa-lib
|
| 125 |
123 |
media-libs/fontconfig
|
| 126 |
124 |
media-libs/freetype
|
| ... | ... | |
| 152 |
150 |
>=media-gfx/graphite2-1.3.13
|
| 153 |
151 |
>=media-libs/harfbuzz-2.8.1:0=
|
| 154 |
152 |
)
|
| 155 |
|
system-icu? ( >=dev-libs/icu-76.1:= )
|
|
153 |
system-icu? ( >=dev-libs/icu-78.1:= )
|
| 156 |
154 |
system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1:= )
|
| 157 |
155 |
system-libevent? ( >=dev-libs/libevent-2.1.12:0=[threads(+)] )
|
| 158 |
156 |
system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] )
|
| 159 |
|
system-pipewire? ( >=media-video/pipewire-1.4.7-r2:= )
|
|
157 |
system-pipewire? ( media-video/pipewire:= )
|
| 160 |
158 |
system-png? ( >=media-libs/libpng-1.6.45:0=[apng] )
|
| 161 |
159 |
system-webp? ( >=media-libs/libwebp-1.1.0:0= )
|
| 162 |
160 |
wayland? (
|
| ... | ... | |
| 192 |
190 |
x11-libs/libSM
|
| 193 |
191 |
)"
|
| 194 |
192 |
|
|
193 |
# Thunderbird-only RDEPEND.
|
|
194 |
RDEPEND+=" ~mail-client/thunderbird-l10n-${PV}"
|
|
195 |
|
| 195 |
196 |
llvm_check_deps() {
|
| 196 |
197 |
if ! has_version -b "llvm-core/clang:${LLVM_SLOT}" ; then
|
| 197 |
198 |
einfo "llvm-core/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
|
| ... | ... | |
| 216 |
217 |
einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
|
| 217 |
218 |
}
|
| 218 |
219 |
|
| 219 |
|
MOZ_LANGS=(
|
| 220 |
|
af ar ast be bg br ca cak cs cy da de dsb
|
| 221 |
|
el en-CA en-GB en-US es-AR es-ES es-MX et eu
|
| 222 |
|
fi fr fy-NL ga-IE gd gl he hr hsb hu
|
| 223 |
|
id is it ja ka kab kk ko lt lv ms nb-NO nl nn-NO
|
| 224 |
|
pa-IN pl pt-BR pt-PT rm ro ru
|
| 225 |
|
sk sl sq sr sv-SE th tr uk uz vi zh-CN zh-TW
|
| 226 |
|
)
|
| 227 |
|
|
| 228 |
|
mozilla_set_globals() {
|
| 229 |
|
# https://bugs.gentoo.org/587334
|
| 230 |
|
local MOZ_TOO_REGIONALIZED_FOR_L10N=(
|
| 231 |
|
fy-NL ga-IE gu-IN hi-IN hy-AM nb-NO ne-NP nn-NO pa-IN sv-SE
|
| 232 |
|
)
|
| 233 |
|
|
| 234 |
|
local lang xflag
|
| 235 |
|
for lang in "${MOZ_LANGS[@]}" ; do
|
| 236 |
|
# en and en_US are handled internally
|
| 237 |
|
if [[ ${lang} == en ]] || [[ ${lang} == en-US ]] ; then
|
| 238 |
|
continue
|
| 239 |
|
fi
|
| 240 |
|
|
| 241 |
|
# strip region subtag if $lang is in the list
|
| 242 |
|
if has ${lang} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then
|
| 243 |
|
xflag=${lang%%-*}
|
| 244 |
|
else
|
| 245 |
|
xflag=${lang}
|
| 246 |
|
fi
|
| 247 |
|
|
| 248 |
|
SRC_URI+=" l10n_${xflag/[_@]/-}? ("
|
| 249 |
|
SRC_URI+=" ${MOZ_SRC_BASE_URI}/linux-x86_64/xpi/${lang}.xpi -> ${MOZ_P_DISTFILES}-${lang}.xpi"
|
| 250 |
|
SRC_URI+=" )"
|
| 251 |
|
IUSE+=" l10n_${xflag/[_@]/-}"
|
| 252 |
|
done
|
| 253 |
|
}
|
| 254 |
|
mozilla_set_globals
|
| 255 |
|
|
| 256 |
220 |
moz_clear_vendor_checksums() {
|
| 257 |
221 |
debug-print-function ${FUNCNAME} "$@"
|
| 258 |
222 |
|
| ... | ... | |
| 508 |
472 |
rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die
|
| 509 |
473 |
fi
|
| 510 |
474 |
|
| 511 |
|
# Workaround for bgo#915651 on musl
|
|
475 |
# Workaround for bgo#915651 and bmo#1988166 on musl
|
| 512 |
476 |
if use elibc_glibc ; then
|
| 513 |
477 |
rm -v "${WORKDIR}"/firefox-patches/*bgo-748849-RUST_TARGET_override.patch || die
|
|
478 |
rm -v "${WORKDIR}"/firefox-patches/*bmo-1988166-musl-remove-nonexisting-system-header-req.patch || die
|
| 514 |
479 |
fi
|
| 515 |
480 |
|
| 516 |
|
eapply "${WORKDIR}/firefox-patches"
|
| 517 |
|
use loong && eapply "${WORKDIR}/firefox-loong-patches"
|
|
481 |
# Enable jpeg-xl only in Firefox.
|
|
482 |
rm -v "${WORKDIR}"/firefox-patches/*bgo-928126-enable-jxl.patch || die
|
| 518 |
483 |
|
| 519 |
|
# ICU's subslot change should trigger rebuild on Firefox if it is updated 77->78.
|
| 520 |
|
if use system-icu && has_version ">=dev-libs/icu-78.1" ; then
|
| 521 |
|
eapply "${FILESDIR}/firefox-146.0.1-icu78.patch" # bgo#967261
|
| 522 |
|
fi
|
|
484 |
eapply "${WORKDIR}/firefox-patches"
|
| 523 |
485 |
|
| 524 |
486 |
# Allow user to apply any additional patches without modifing ebuild
|
| 525 |
487 |
eapply_user
|
| ... | ... | |
| 726 |
688 |
# amd64, arm, arm64 & x86.
|
| 727 |
689 |
# Might want to flip the logic around if Firefox is to support more arches.
|
| 728 |
690 |
# bug 833001, bug 903411#c8
|
| 729 |
|
if use loong || use ppc64 || use riscv ; then
|
|
691 |
if use loong || use ppc64 || use riscv; then
|
| 730 |
692 |
mozconfig_add_options_ac '' --disable-sandbox
|
| 731 |
693 |
else
|
| 732 |
694 |
mozconfig_add_options_ac '' --enable-sandbox
|
| ... | ... | |
| 800 |
762 |
|
| 801 |
763 |
if use hardened ; then
|
| 802 |
764 |
mozconfig_add_options_ac "+hardened" --enable-hardening
|
|
765 |
# mozconfig_add_options_ac "+hardened stl" --enable-stl-hardening # not available in TB
|
| 803 |
766 |
append-ldflags "-Wl,-z,relro -Wl,-z,now"
|
| 804 |
767 |
|
| 805 |
768 |
# Increase the FORTIFY_SOURCE value, #910071.
|
| ... | ... | |
| 1084 |
1047 |
EOF
|
| 1085 |
1048 |
fi
|
| 1086 |
1049 |
|
| 1087 |
|
# Install language packs
|
| 1088 |
|
local langpacks=( $(find "${WORKDIR}/language_packs" -type f -name '*.xpi') )
|
| 1089 |
|
if [[ -n "${langpacks}" ]] ; then
|
| 1090 |
|
moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions" "${langpacks[@]}"
|
| 1091 |
|
fi
|
| 1092 |
|
|
| 1093 |
1050 |
# Install icons
|
| 1094 |
1051 |
local icon_srcdir="${S}/comm/mail/branding/thunderbird"
|
| 1095 |
1052 |
local icon_symbolic_file="${icon_srcdir}/TB-symbolic.svg"
|