summaryrefslogtreecommitdiff
path: root/www-client
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2024-11-10 03:03:09 +0000
committerV3n3RiX <venerix@koprulu.sector>2024-11-10 03:03:09 +0000
commitbe94ae04eee564451203d45977c2ef7c7ace1580 (patch)
tree616ffc0ad9aee18dc7d5e9e62bf62394e8e520ba /www-client
parent2be329ae14bbf99f0fc4de7567e2386bbb529fdc (diff)
gentoo auto-resync : 10:11:2024 - 03:03:09
Diffstat (limited to 'www-client')
-rw-r--r--www-client/Manifest.gzbin6206 -> 6204 bytes
-rw-r--r--www-client/chromium/Manifest10
-rw-r--r--www-client/chromium/chromium-129.0.6668.100-r1.ebuild (renamed from www-client/chromium/chromium-129.0.6668.100.ebuild)145
-rw-r--r--www-client/chromium/chromium-130.0.6723.116-r1.ebuild (renamed from www-client/chromium/chromium-130.0.6723.116.ebuild)176
-rw-r--r--www-client/chromium/chromium-130.0.6723.91-r1.ebuild (renamed from www-client/chromium/chromium-130.0.6723.91.ebuild)147
-rw-r--r--www-client/chromium/chromium-131.0.6753.0-r1.ebuild (renamed from www-client/chromium/chromium-131.0.6753.0.ebuild)137
-rw-r--r--www-client/chromium/chromium-131.0.6778.24-r1.ebuild (renamed from www-client/chromium/chromium-131.0.6778.24.ebuild)139
-rw-r--r--www-client/firefox/Manifest12
-rw-r--r--www-client/firefox/firefox-115.16.1-r1.ebuild (renamed from www-client/firefox/firefox-115.16.1.ebuild)68
-rw-r--r--www-client/firefox/firefox-128.3.1-r1.ebuild (renamed from www-client/firefox/firefox-128.3.1.ebuild)17
-rw-r--r--www-client/firefox/firefox-128.4.0-r1.ebuild (renamed from www-client/firefox/firefox-128.4.0.ebuild)64
-rw-r--r--www-client/firefox/firefox-131.0.3-r1.ebuild (renamed from www-client/firefox/firefox-131.0.3.ebuild)72
-rw-r--r--www-client/firefox/firefox-132.0-r1.ebuild (renamed from www-client/firefox/firefox-132.0.ebuild)84
-rw-r--r--www-client/firefox/firefox-132.0.1-r1.ebuild (renamed from www-client/firefox/firefox-132.0.1.ebuild)84
-rw-r--r--www-client/seamonkey/Manifest4
-rw-r--r--www-client/seamonkey/seamonkey-2.53.18.2-r2.ebuild (renamed from www-client/seamonkey/seamonkey-2.53.18.2-r1.ebuild)4
-rw-r--r--www-client/seamonkey/seamonkey-2.53.19-r1.ebuild (renamed from www-client/seamonkey/seamonkey-2.53.19.ebuild)4
17 files changed, 275 insertions, 892 deletions
diff --git a/www-client/Manifest.gz b/www-client/Manifest.gz
index 00c7d7eeec63..2c08a87a2de9 100644
--- a/www-client/Manifest.gz
+++ b/www-client/Manifest.gz
Binary files differ
diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 82e8ab0e1574..fa71ede28b0d 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -30,9 +30,9 @@ DIST chromium-ppc64le-gentoo-patches-1.tar.xz 5636 BLAKE2B 1d898939df023c59285b2
DIST chromium-profiler-0.2.tar 259952640 BLAKE2B 5e82389fce00b267280d633b26551231c558b80f0c92cd7d60271095a3503365ab673e7a46dc5f74f8a82db1f21262cb24dcc0531d954bab5fb3b175dab3394d SHA512 9fa89a5ab728419683e7495ae676567480987d68a2d589f2aa97bfcbcf123f3c8f97f8bca5f65e5e3f6e41475535add473ded83b9c7a33bb4746a9d05b298a6c
DIST chromium-testfonts-f26f29c9d3.tar.gz 32750602 BLAKE2B 498f8b2e0811c98dc3d4aaa75559e69c782afb4bd12328cfdb7244ddba5cae7ee47becd27b2549d7b36bed417601f70f4c192934b0f08496cef1547d0502d93c SHA512 96b090446862997c8134e2971f0e38793ecc1208d547e554c9b651ccfb4127c4de86754903fea57a7292a2823c45117bae0ec13ed87aed20c248fb779579fbde
DIST chromium_128.0.6613.84-1raptor0~deb12u1.debian.tar.xz 8674292 BLAKE2B 74c8556f578231cd133ce3a11306ce38d32332a3db7b0f32a63df1806201933e69e9ff01e66d7ccef279f2134e0a69c89365d7a08a7a7e7d69816a188ae0b91c SHA512 b1b85bc99493676d466e648c00eb7e337efbcb197e9ed5ae6394133721db828583340df5ebfa45a3dccc72f400ad6ada637d400d8e2fae35c1322ca5e15dc10e
-EBUILD chromium-129.0.6668.100.ebuild 50210 BLAKE2B eb9afe794482d87bb6e3a041bbd15d9e1de40eee74d840e30973591c309f54cfb0ae6d46fb83d0333faf2765726963ba15e8b18cb4ffcd98070d2661ded39d92 SHA512 b4c54fa949e02cde6a759afc260366da3005913bb0bd438a5cf9402bb672b7b3a1ecff80b24ae365bf911d6f06101f1aeb6bdf984e56c03409e6bf95bc7ed11d
-EBUILD chromium-130.0.6723.116.ebuild 51838 BLAKE2B ea7b9a6cc308c9fa3fa85c113b82742be0cccc6cfd5d4b8e8ffb0ebf130960d83a3decb4c3b9c6abc1318b0e320f38319f128c95401e43cf228ddc0742bd53f2 SHA512 ef7a4a449fe928b81a2ea6049941a4f403ba89e33ac255994fdcf0b91c438212ddb880d9174a402bb5928fcf734846f79f643dc21963d3afd71f2261771357e8
-EBUILD chromium-130.0.6723.91.ebuild 50204 BLAKE2B 01b82db54bbef2fef2b4500017ce80a553c80f3afbce95346e11f0562b8a09259de4a252f9a62264ee2f1841eceaf6d94c69424b9930af948bdf7fc86fe5dabc SHA512 d83b06cdf6b0f1082de579f213cf78d34a46e322e354be800ac75c38b81de087e1ad4583422c473ada580a4f058543777cc43bf0d74fc7ac075945a2a0e3d97a
-EBUILD chromium-131.0.6753.0.ebuild 52042 BLAKE2B c84c878b5e9990881d767158b8008c200b12e1e3c2e291b11aca7314a5a57fc108c4377d1f025cd5fd389ab1805bbd2a6b536a6b3327ffd8668793f8598d24fa SHA512 3c597be835c5f35112a778e9dd4c882bfa5acafa4ad70e9c8b89e56381eaff0d7ae166086b23477a480296f0902bd3f5aeb279dc314c0e50ed89d71d4c123e43
-EBUILD chromium-131.0.6778.24.ebuild 50927 BLAKE2B eb2c21c543a8080e0dedfde5491674b47acee690f64baf143b25798b84f14e26b03e7f3030ebfdfa4214ef88f3a70f7394bfae4781d0652ac06b58fa1c10f27b SHA512 cb866380cfd311c0db471f5b9c2256166298534176666f67175269111f73b38cba7c82a127d595abe424ff62e04a89ac86c764328ac26ee079c2848c7e6237fd
+EBUILD chromium-129.0.6668.100-r1.ebuild 45716 BLAKE2B f6c3195da1d056f73adae2238c52cef85628ab5c03988cab89958452119ddf7ca9cf54c46165929e44a49f932b588c9569919257b9ed9d34bfc7c37e301deaee SHA512 ecb2f141df66b75dcdcc3bf77cc67536316ce5895b9cf89b53d3a73b1bbd73d35c3e10d78491f1eb873a123fe4bab685719c5cd5cfb99f5a16720c2f73b65d43
+EBUILD chromium-130.0.6723.116-r1.ebuild 45851 BLAKE2B c69301c9f653eb11d4ed5870df11d48770b780e0e53e9eba206cf1a06b736153042b46f79f0d60b00b91aebeb634a7838acfdf880201f236fc656c0b08d100ce SHA512 d787678897e72efd94feaa96b92645f3c54f9e47c1c017a308717393552fab2f50543d03eafe25d779f746f4aadf0de7f958f40712b8a6c1a64a02183bb1d2cd
+EBUILD chromium-130.0.6723.91-r1.ebuild 45784 BLAKE2B 2be3c4d02d136b0c842f7d9bffa981eb625be0dea51614c56d2714a6a9d2c10003af86089297a17a4f7e1b08b05cd508d224f9a276b39e7c3fc0313feb66a112 SHA512 b041f23a3c5fbae066e093900774b028efcf0fbbd9369cb9605f38f01da0c03f32c5651e4bcead096d129528c3367a876db6f853e1e95da617ddf3ecf6669a31
+EBUILD chromium-131.0.6753.0-r1.ebuild 47432 BLAKE2B 2db6e555affe9b7bc98cffad00ed892bc87188ae6a49119dfb2616c41bcae0c05b90af663db4bd425a3d71e03dff41d9c3dc1ace4f64a977dcf2270e2af2cd41 SHA512 7fcdeaf98037a11754a0620c59069164925fda9e4085258bca93539a4e9a406d0ccc35549afd09e36a43f75b9f549a050764389ab92aea2d5b3d618d86197fab
+EBUILD chromium-131.0.6778.24-r1.ebuild 46524 BLAKE2B 6cfabda5e65be9c09aacd8e1f027d88edb74547a35f4042e26f02a8efbeb6737cdeb71e79da9cf74c6c53ebffa8792b630c6c7e0be080d33916f94e3b7abe268 SHA512 f9bb6702096962fef9839949c8ce81929c0c256451ab33c703fc681f1c201e2dfc7c1eee9bb32f7240d3accdc135644a2bc03e6eee48969a97fd6e8b9cb833f4
MISC metadata.xml 2083 BLAKE2B e556591b48916e2b26d66b8b3a3f67d8f7c17d7cf2d03bfca4c91e0181604d853b16139583a8364646f5c2db55a2e3281a5b6ee623535452dbc8b0755fac89dc SHA512 b64e3140c1237d45aea47748a259b51685e7aa54c2ba259f6feb60df5a98ec434bd0ecde2e5dc2115d6c6409621ec3111e8b6b2a0fc8be2d9634dc465260dbe2
diff --git a/www-client/chromium/chromium-129.0.6668.100.ebuild b/www-client/chromium/chromium-129.0.6668.100-r1.ebuild
index 0e199853bf36..6a3d532c5b99 100644
--- a/www-client/chromium/chromium-129.0.6668.100.ebuild
+++ b/www-client/chromium/chromium-129.0.6668.100-r1.ebuild
@@ -25,7 +25,6 @@ EAPI=8
# no reason not to. Todo: Re-enable USE=system-ffmpeg.
GN_MIN_VER=0.2165
-RUST_MIN_VER=1.78.0
# chromium-tools/get-chromium-toolchain-strings.sh
GOOGLE_CLANG_VER=llvmorg-20-init-1009-g7088a5ed-10
GOOGLE_RUST_VER=595316b4006932405a63862d8fe65f71a6356293-5
@@ -38,15 +37,15 @@ CHROMIUM_LANGS="af am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu
hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
sv sw ta te th tr uk ur vi zh-CN zh-TW"
-# While prerelease llvm is actually used in the google build, until we have a
-# sane way to select 'rust built with this llvm slot' that isn't stable and testing
-# subslots we will have to restrict LLVM_COMPAT to stable and testing keywords.
-LLVM_COMPAT=( {17..18} )
+LLVM_COMPAT=( 18 )
PYTHON_COMPAT=( python3_{11..13} )
PYTHON_REQ_USE="xml(+)"
+RUST_MIN_VER=1.78.0
+RUST_NEEDS_LLVM=1
+RUST_OPTIONAL=1
-inherit check-reqs chromium-2 desktop flag-o-matic llvm-utils ninja-utils pax-utils
-inherit python-any-r1 qmake-utils readme.gentoo-r1 systemd toolchain-funcs virtualx xdg-utils
+inherit check-reqs chromium-2 desktop flag-o-matic llvm-r1 ninja-utils pax-utils
+inherit python-any-r1 qmake-utils readme.gentoo-r1 rust systemd toolchain-funcs virtualx xdg-utils
DESCRIPTION="Open-source version of Google Chrome web browser"
HOMEPAGE="https://www.chromium.org/"
@@ -182,29 +181,6 @@ DEPEND="${COMMON_DEPEND}
)
"
-depend_clang_llvm_version() {
- echo "sys-devel/clang:$1"
- echo "sys-devel/llvm:$1"
- echo "=sys-devel/lld-$1*"
- echo "virtual/rust:0/llvm-${1}[profiler(-)]"
- echo "pgo? ( sys-libs/compiler-rt-sanitizers:${1}[profile] )"
-}
-
-# Parse LLVM_COMPAT and generate a usedep for each version
-depend_clang_llvm_versions() {
- if [[ ${#LLVM_COMPAT[@]} -eq 0 ]]; then
- depend_clang_llvm_version ${#LLVM_COMPAT[0]}
- else
- echo "|| ("
- for (( i=${#LLVM_COMPAT[@]}-1 ; i>=0 ; i-- )); do
- echo "("
- depend_clang_llvm_version ${LLVM_COMPAT[i]}
- echo ")"
- done
- echo ")"
- fi
-}
-
BDEPEND="
${COMMON_SNAPSHOT_DEPEND}
${PYTHON_DEPS}
@@ -217,7 +193,12 @@ BDEPEND="
qt6? ( dev-qt/qtbase:6 )
)
system-toolchain? (
- $(depend_clang_llvm_versions)
+ $(llvm_gen_dep "
+ sys-devel/clang:\${LLVM_SLOT}
+ sys-devel/llvm:\${LLVM_SLOT}
+ sys-devel/lld:\${LLVM_SLOT}
+ ")
+ ${RUST_DEPEND}
pgo? (
>=dev-python/selenium-3.141.0
>=dev-util/web_page_replay_go-20220314
@@ -313,47 +294,6 @@ pkg_pretend() {
fi
}
-# Chromium should build with any version of clang that we support
-# but we may need to pick the "best" one for a build (highest installed,
-# rust is built against it, etc.)
-# Check each slot in LLVM_COMPAT to see if clang/llvm/lld are available
-# and output the _highest_ slot that is actually available on a system.
-chromium_pick_llvm_slot() {
- # LLVM_COMPAT is always going to be oldest to newest (or one value)
- # let's flip it and check from newest to oldest and return the first one we find.
- local slot
- for (( i=${#LLVM_COMPAT[@]}-1 ; i>=0 ; i-- )); do
- slot=${LLVM_COMPAT[i]}
- if has_version "sys-devel/clang:${slot}" && \
- has_version "sys-devel/llvm:${slot}" && \
- has_version "sys-devel/lld:${slot}" && \
- has_version "virtual/rust:0/llvm-${slot}" && \
- ( ! use pgo || has_version "sys-libs/compiler-rt-sanitizers:${slot}" ) ; then
-
- echo "${slot}"
- return
- fi
- done
-
- die_msg="
-No suitable clang/llvm/lld slot found.
-Slots checked: ${LLVM_COMPAT[*]}.
-"
- die "${die_msg}"
-}
-
-# We need the rust version in src_configure and pkg_setup
-chromium_extract_rust_version() {
- [[ ${MERGE_TYPE} == binary ]] && return
- local rustc_version=( $(eselect --brief rust show 2>/dev/null) )
- rustc_version=${rustc_version[0]#rust-bin-}
- rustc_version=${rustc_version#rust-}
-
- [[ -z "${rustc_version}" ]] && die "Failed to determine rust version, check 'eselect rust' output"
-
- echo $rustc_version
-}
-
pkg_setup() {
if [[ ${MERGE_TYPE} != binary ]]; then
# The pre_build_checks are all about compilation resources, no need to run it for a binpkg
@@ -361,10 +301,7 @@ pkg_setup() {
if use system-toolchain; then
# The linux:unbundle toolchain in GN grabs CC, CXX, CPP (etc) from the environment
- # We'll set these to clang here then use llvm-utils functions to very explicitly set these
- # to a sane value.
# This is effectively the 'force-clang' path if GCC support is re-added.
- # TODO: check if the user has already selected a specific impl via make.conf and respect that.
if ! tc-is-lto && use official; then
einfo "USE=official selected and LTO not detected."
einfo "It is _highly_ recommended that LTO be enabled for performance reasons"
@@ -378,8 +315,7 @@ pkg_setup() {
die "Please switch to a different linker."
fi
- LLVM_SLOT=$(chromium_pick_llvm_slot)
- export LLVM_SLOT # used in src_configure for rust-y business
+ # We're forcing clang here; user choice is respected via llvm_slot_x USE
AR=llvm-ar
CPP="${CHOST}-clang++ -E"
NM=llvm-nm
@@ -391,45 +327,8 @@ pkg_setup() {
CPP="${CBUILD}-clang++ -E"
fi
- # The llvm-r1_pkg_setup we have at home.
- # We prepend the path _first_ to explicitly use the selected slot.
- llvm_prepend_path "${LLVM_SLOT}"
-
- llvm_fix_clang_version CC CPP CXX
- llvm_fix_tool_path ADDR2LINE AR AS LD NM OBJCOPY OBJDUMP RANLIB
- llvm_fix_tool_path READELF STRINGS STRIP
-
- # Set LLVM_CONFIG to help Meson (bug #907965) but only do it
- # for empty ESYSROOT (as a proxy for "are we cross-compiling?").
- if [[ -z ${ESYSROOT} ]] ; then
- llvm_fix_tool_path LLVM_CONFIG
- fi
-
- einfo "Using LLVM/Clang slot ${LLVM_SLOT} to build"
-
- local rustc_ver=$(chromium_extract_rust_version)
- if ver_test "${rustc_ver}" -lt "${RUST_MIN_VER}"; then
- eerror "Rust >=${RUST_MIN_VER} is required to build Chromium"
- eerror "The currently selected version is ${rustc_ver}"
- eerror "Please run \`eselect rust\` and select an appropriate Rust."
- die "Selected Rust version is too old"
- else
- einfo "Using Rust ${rustc_ver} to build"
- fi
-
- # Chromium requires the Rust profiler library while setting up its build environment.
- # Since a standard Rust comes with the profiler, instead of patching it out (build/rust/std/BUILD.gn#L103)
- # we'll just do a sanity check on the selected slot.
- # The -bin always contains profiler support, so we only need to check for the non-bin version.
- if [[ "$(eselect --brief rust show 2>/dev/null)" != *"bin"* ]]; then
- local rust_lib_path="${EPREFIX}$(rustc --print target-libdir)"
- local profiler_lib=$(find "${rust_lib_path}" -name "libprofiler_builtins-*.rlib" -print -quit)
- if [[ -z "${profiler_lib}" ]]; then
- eerror "Rust ${rustc_ver} is missing the profiler library."
- eerror "ebuild dependency resolution should have ensured that a Rust with the profiler was installed."
- die "Please \`eselect\` a Rust slot that has the profiler."
- fi
- fi
+ llvm-r1_pkg_setup
+ rust_pkg_setup
fi
# Users should never hit this, it's purely a development convenience
@@ -886,23 +785,15 @@ chromium_configure() {
# rust_bindgen_root = directory with `bin/bindgen` beneath it.
myconf_gn+=" rust_bindgen_root=\"${EPREFIX}/usr/\""
- # from get_llvm_prefix
- local prefix=${ESYSROOT}
- [[ ${1} == -b ]] && prefix=${BROOT}
- myconf_gn+=" bindgen_libclang_path=\"${prefix}/usr/lib/llvm/${LLVM_SLOT}/$(get_libdir)\""
+ myconf_gn+=" bindgen_libclang_path=\"$(get_llvm_prefix)/$(get_libdir)\""
# We don't need to set 'clang_base_bath' for anything in our build
# and it defaults to the google toolchain location. Instead provide a location
# to where system clang lives sot that bindgen can find system headers (e.g. stddef.h)
myconf_gn+=" clang_base_path=\"${EPREFIX}/usr/lib/clang/${LLVM_SLOT}/\""
# We need to provide this to GN in both the path to rust _and_ the version
- local rustc_ver=$(chromium_extract_rust_version)
- if [[ "$(eselect --brief rust show 2>/dev/null)" == *"bin"* ]]; then
- myconf_gn+=" rust_sysroot_absolute=\"${EPREFIX}/opt/rust-bin-${rustc_ver}/\""
- else
- myconf_gn+=" rust_sysroot_absolute=\"${EPREFIX}/usr/lib/rust/${rustc_ver}/\""
- fi
- myconf_gn+=" rustc_version=\"${rustc_ver}\""
+ myconf_gn+=" rust_sysroot_absolute=\"$(get_rust_prefix)\""
+ myconf_gn+=" rustc_version=\"${RUST_SLOT}\""
fi
# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
diff --git a/www-client/chromium/chromium-130.0.6723.116.ebuild b/www-client/chromium/chromium-130.0.6723.116-r1.ebuild
index b8702db794c7..9b7032b7c9aa 100644
--- a/www-client/chromium/chromium-130.0.6723.116.ebuild
+++ b/www-client/chromium/chromium-130.0.6723.116-r1.ebuild
@@ -9,9 +9,7 @@ EAPI=8
# Use 132 as a base for new official tarballs.
GN_MIN_VER=0.2165
-RUST_MIN_VER=1.78.0
# chromium-tools/get-chromium-toolchain-strings.py
-TEST_FONT=f26f29c9d3bfae588207bbc9762de8d142e58935c62a86f67332819b15203b35
VIRTUALX_REQUIRED="pgo"
@@ -19,20 +17,19 @@ CHROMIUM_LANGS="af am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu
hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
sv sw ta te th tr uk ur vi zh-CN zh-TW"
-# While prerelease llvm is actually used in the google build, until we have a
-# sane way to select 'rust built with this llvm slot' that isn't stable and testing
-# subslots we will have to restrict LLVM_COMPAT to stable and testing keywords.
-# Requires 18.1.8 or 19.1.1 (or newer) for ppc64
LLVM_COMPAT=( 18 19 )
+RUST_NEEDS_LLVM="yes please"
PYTHON_COMPAT=( python3_{11..13} )
PYTHON_REQ_USE="xml(+)"
+RUST_MIN_VER=1.78.0
-inherit check-reqs chromium-2 desktop flag-o-matic llvm-utils multiprocessing ninja-utils pax-utils
-inherit python-any-r1 qmake-utils readme.gentoo-r1 systemd toolchain-funcs virtualx xdg-utils
+inherit check-reqs chromium-2 desktop flag-o-matic llvm-r1 multiprocessing ninja-utils pax-utils
+inherit python-any-r1 qmake-utils readme.gentoo-r1 rust systemd toolchain-funcs virtualx xdg-utils
DESCRIPTION="Open-source version of Google Chrome web browser"
HOMEPAGE="https://www.chromium.org/"
PPC64_HASH="a85b64f07b489b8c6fdb13ecf79c16c56c560fc6"
+TEST_FONT=f26f29c9d3bfae588207bbc9762de8d142e58935c62a86f67332819b15203b35
PATCH_V="${PV%%\.*}-2"
SRC_URI="https://chromium-tarballs.distfiles.gentoo.org/${P}.tar.xz -> ${P}-gentoo.tar.xz
https://gitlab.com/Matt.Jolly/chromium-patches/-/archive/${PATCH_V}/chromium-patches-${PATCH_V}.tar.bz2
@@ -53,6 +50,7 @@ if [[ ${SLOT} != "0/dev" ]]; then
KEYWORDS="~amd64 ~arm64 ~ppc64"
fi
+
IUSE_SYSTEM_LIBS="+system-harfbuzz +system-icu +system-png +system-zstd"
IUSE="+X ${IUSE_SYSTEM_LIBS} bindist cups debug ffmpeg-chromium gtk4 +hangouts headless kerberos +official pax-kernel pgo +proprietary-codecs pulseaudio"
IUSE+=" qt5 qt6 +screencast selinux test +vaapi +wayland +widevine cpu_flags_ppc_vsx3"
@@ -167,29 +165,6 @@ DEPEND="${COMMON_DEPEND}
)
"
-depend_clang_llvm_version() {
- echo "sys-devel/clang:$1"
- echo "sys-devel/llvm:$1"
- echo "=sys-devel/lld-$1*"
- echo "virtual/rust:0/llvm-${1}[profiler(-)]"
- echo "pgo? ( sys-libs/compiler-rt-sanitizers:${1}[profile] )"
-}
-
-# Parse LLVM_COMPAT and generate a usedep for each version
-depend_clang_llvm_versions() {
- if [[ ${#LLVM_COMPAT[@]} -eq 0 ]]; then
- depend_clang_llvm_version ${#LLVM_COMPAT[0]}
- else
- echo "|| ("
- for (( i=${#LLVM_COMPAT[@]}-1 ; i>=0 ; i-- )); do
- echo "("
- depend_clang_llvm_version ${LLVM_COMPAT[i]}
- echo ")"
- done
- echo ")"
- fi
-}
-
BDEPEND="
${COMMON_SNAPSHOT_DEPEND}
${PYTHON_DEPS}
@@ -201,7 +176,11 @@ BDEPEND="
qt5? ( dev-qt/qtcore:5 )
qt6? ( dev-qt/qtbase:6 )
)
- $(depend_clang_llvm_versions)
+ $(llvm_gen_dep "
+ sys-devel/clang:\${LLVM_SLOT}
+ sys-devel/llvm:\${LLVM_SLOT}
+ sys-devel/lld:\${LLVM_SLOT}
+ ")
pgo? (
>=dev-python/selenium-3.141.0
>=dev-util/web_page_replay_go-20220314
@@ -296,57 +275,13 @@ pkg_pretend() {
fi
}
-# Chromium should build with any version of clang that we support
-# but we may need to pick the "best" one for a build (highest installed,
-# rust is built against it, etc.)
-# Check each slot in LLVM_COMPAT to see if clang/llvm/lld are available
-# and output the _highest_ slot that is actually available on a system.
-chromium_pick_llvm_slot() {
- # LLVM_COMPAT is always going to be oldest to newest (or one value)
- # let's flip it and check from newest to oldest and return the first one we find.
- local slot
- for (( i=${#LLVM_COMPAT[@]}-1 ; i>=0 ; i-- )); do
- slot=${LLVM_COMPAT[i]}
- if has_version "sys-devel/clang:${slot}" && \
- has_version "sys-devel/llvm:${slot}" && \
- has_version "sys-devel/lld:${slot}" && \
- has_version "virtual/rust:0/llvm-${slot}" && \
- ( ! use pgo || has_version "sys-libs/compiler-rt-sanitizers:${slot}" ) ; then
-
- echo "${slot}"
- return
- fi
- done
-
- die_msg="
-No suitable clang/llvm/lld slot found.
-Slots checked: ${LLVM_COMPAT[*]}.
-"
- die "${die_msg}"
-}
-
-# We need the rust version in src_configure and pkg_setup
-chromium_extract_rust_version() {
- [[ ${MERGE_TYPE} == binary ]] && return
- local rustc_version=( $(eselect --brief rust show 2>/dev/null) )
- rustc_version=${rustc_version[0]#rust-bin-}
- rustc_version=${rustc_version#rust-}
-
- [[ -z "${rustc_version}" ]] && die "Failed to determine rust version, check 'eselect rust' output"
-
- echo $rustc_version
-}
-
pkg_setup() {
if [[ ${MERGE_TYPE} != binary ]]; then
# The pre_build_checks are all about compilation resources, no need to run it for a binpkg
pre_build_checks
# The linux:unbundle toolchain in GN grabs CC, CXX, CPP (etc) from the environment
- # We'll set these to clang here then use llvm-utils functions to very explicitly set these
- # to a sane value.
# This is effectively the 'force-clang' path if GCC support is re-added.
- # TODO: check if the user has already selected a specific impl via make.conf and respect that.
use_lto="false"
if tc-is-lto; then
use_lto="true"
@@ -374,8 +309,7 @@ pkg_setup() {
die "Please switch to a different linker."
fi
- LLVM_SLOT=$(chromium_pick_llvm_slot)
- export LLVM_SLOT # used in src_configure for rust-y business
+ # We're forcing Clang here. User choice is respected via llvm_slot_# USE flags.
AR=llvm-ar
CPP="${CHOST}-clang++ -E"
NM=llvm-nm
@@ -387,52 +321,16 @@ pkg_setup() {
CPP="${CBUILD}-clang++ -E"
fi
- # The llvm-r1_pkg_setup we have at home.
- # We prepend the path _first_ to explicitly use the selected slot.
- llvm_prepend_path "${LLVM_SLOT}"
-
- llvm_fix_clang_version CC CPP CXX
- llvm_fix_tool_path ADDR2LINE AR AS LD NM OBJCOPY OBJDUMP RANLIB
- llvm_fix_tool_path READELF STRINGS STRIP
-
- # Set LLVM_CONFIG to help Meson (bug #907965) but only do it
- # for empty ESYSROOT (as a proxy for "are we cross-compiling?").
- if [[ -z ${ESYSROOT} ]] ; then
- llvm_fix_tool_path LLVM_CONFIG
- fi
+ llvm-r1_pkg_setup
+ rust_pkg_setup
einfo "Using LLVM/Clang slot ${LLVM_SLOT} to build"
-
- rustc_ver=$(chromium_extract_rust_version)
- if ver_test "${rustc_ver}" -lt "${RUST_MIN_VER}"; then
- eerror "Rust >=${RUST_MIN_VER} is required to build Chromium"
- eerror "The currently selected version is ${rustc_ver}"
- eerror "Please run \`eselect rust\` and select an appropriate Rust."
- die "Selected Rust version is too old"
- else
- einfo "Using Rust ${rustc_ver} to build"
- fi
-
- export rustc_ver # used in src_configure, may as well avoid calling it again
+ einfo "Using Rust slot ${RUST_SLOT}, ${RUST_TYPE} to build"
# I hate doing this but upstream Rust have yet to come up with a better solution for
# us poor packagers. Required for Split LTO units, which are required for CFI.
export RUSTC_BOOTSTRAP=1
- # Chromium requires the Rust profiler library while setting up its build environment.
- # Since a standard Rust comes with the profiler, instead of patching it out (build/rust/std/BUILD.gn#L103)
- # we'll just do a sanity check on the selected slot.
- # The -bin always contains profiler support, so we only need to check for the non-bin version.
- if [[ "$(eselect --brief rust show 2>/dev/null)" != *"bin"* ]]; then
- local rust_lib_path="${EPREFIX}$(rustc --print target-libdir)"
- local profiler_lib=$(find "${rust_lib_path}" -name "libprofiler_builtins-*.rlib" -print -quit)
- if [[ -z "${profiler_lib}" ]]; then
- eerror "Rust ${rustc_ver} is missing the profiler library."
- eerror "ebuild dependency resolution should have ensured that a Rust with the profiler was installed."
- die "Please \`eselect\` a Rust slot that has the profiler."
- fi
- fi
-
# Users should never hit this, it's purely a development convenience
if ver_test $(gn --version || die) -lt ${GN_MIN_VER}; then
die "dev-build/gn >= ${GN_MIN_VER} is required to build this Chromium"
@@ -455,8 +353,7 @@ src_unpack() {
unpack ${P}-testdata-gentoo.tar.xz
# This just contains a bunch of font files that need to be unpacked (or moved) to the correct location.
local testfonts_dir="${WORKDIR}/${P}/third_party/test_fonts"
- local testfonts_tar="${DISTDIR}/${PN}-testfonts-${TEST_FONT:0:10}.tar.gz"
- tar xf "${testfonts_tar}" -C "${testfonts_dir}" || die "Failed to unpack testfonts"
+ tar xf "${DISTDIR}/${P%%\.*}-testfonts.tar.gz" -C "${testfonts_dir}" || die "Failed to unpack testfonts"
fi
if use ppc64; then
@@ -928,22 +825,15 @@ chromium_configure() {
# rust_bindgen_root = directory with `bin/bindgen` beneath it.
myconf_gn+=" rust_bindgen_root=\"${EPREFIX}/usr/\""
- # from get_llvm_prefix
- local prefix=${ESYSROOT}
- [[ ${1} == -b ]] && prefix=${BROOT}
- myconf_gn+=" bindgen_libclang_path=\"${prefix}/usr/lib/llvm/${LLVM_SLOT}/$(get_libdir)\""
+ myconf_gn+=" bindgen_libclang_path=\"$(get_llvm_prefix)/$(get_libdir)\""
# We don't need to set 'clang_base_bath' for anything in our build
# and it defaults to the google toolchain location. Instead provide a location
# to where system clang lives sot that bindgen can find system headers (e.g. stddef.h)
myconf_gn+=" clang_base_path=\"${EPREFIX}/usr/lib/clang/${LLVM_SLOT}/\""
# We need to provide this to GN in both the path to rust _and_ the version
- if [[ "$(eselect --brief rust show 2>/dev/null)" == *"bin"* ]]; then
- myconf_gn+=" rust_sysroot_absolute=\"${EPREFIX}/opt/rust-bin-${rustc_ver}/\""
- else
- myconf_gn+=" rust_sysroot_absolute=\"${EPREFIX}/usr/lib/rust/${rustc_ver}/\""
- fi
- myconf_gn+=" rustc_version=\"${rustc_ver}\""
+ myconf_gn+=" rust_sysroot_absolute=\"$(get_rust_prefix)\""
+ myconf_gn+=" rustc_version=\"${RUST_SLOT}\""
# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
myconf_gn+=" is_debug=false"
@@ -1340,35 +1230,7 @@ src_test() {
StringPieceTest.OutOfBoundsDeath
ThreadPoolEnvironmentConfig.CanUseBackgroundPriorityForWorker
ValuesUtilTest.FilePath
- # Gentoo-specific
- AlternateTestParams/PartitionAllocDeathTest.RepeatedAllocReturnNullDirect/0
- AlternateTestParams/PartitionAllocDeathTest.RepeatedAllocReturnNullDirect/1
- AlternateTestParams/PartitionAllocDeathTest.RepeatedAllocReturnNullDirect/2
- AlternateTestParams/PartitionAllocDeathTest.RepeatedAllocReturnNullDirect/3
- AlternateTestParams/PartitionAllocDeathTest.RepeatedReallocReturnNullDirect/0
- AlternateTestParams/PartitionAllocDeathTest.RepeatedReallocReturnNullDirect/1
- AlternateTestParams/PartitionAllocDeathTest.RepeatedReallocReturnNullDirect/2
- AlternateTestParams/PartitionAllocDeathTest.RepeatedReallocReturnNullDirect/3
- CharacterEncodingTest.GetCanonicalEncodingNameByAliasName
- CheckExitCodeAfterSignalHandlerDeathTest.CheckSIGFPE
- CheckExitCodeAfterSignalHandlerDeathTest.CheckSIGILL
- CheckExitCodeAfterSignalHandlerDeathTest.CheckSIGSEGV
- CheckExitCodeAfterSignalHandlerDeathTest.CheckSIGSEGVNonCanonicalAddress
- FilePathTest.FromUTF8Unsafe_And_AsUTF8Unsafe
- ICUStringConversionsTest.ConvertToUtf8AndNormalize
- NumberFormattingTest.FormatPercent
- PathServiceTest.CheckedGetFailure
- PlatformThreadTest.CanChangeThreadType
- StackCanary.ChangingStackCanaryCrashesOnReturn
- StackTraceDeathTest.StackDumpSignalHandlerIsMallocFree
- SysStrings.SysNativeMBAndWide
- SysStrings.SysNativeMBToWide
- SysStrings.SysWideToNativeMB
- TestLauncherTools.TruncateSnippetFocusedMatchesFatalMessagesTest
- ToolsSanityTest.BadVirtualCallNull
- ToolsSanityTest.BadVirtualCallWrongType
)
-
local test_filter="-$(IFS=:; printf '%s' "${skip_tests[*]}")"
# test-launcher-bot-mode enables parallelism and plain output
./out/Release/base_unittests --test-launcher-bot-mode \
diff --git a/www-client/chromium/chromium-130.0.6723.91.ebuild b/www-client/chromium/chromium-130.0.6723.91-r1.ebuild
index ed4c82004d6a..ca59fb8a697e 100644
--- a/www-client/chromium/chromium-130.0.6723.91.ebuild
+++ b/www-client/chromium/chromium-130.0.6723.91-r1.ebuild
@@ -9,9 +9,7 @@ EAPI=8
# Use 132 as a base for new official tarballs.
GN_MIN_VER=0.2165
-RUST_MIN_VER=1.78.0
# chromium-tools/get-chromium-toolchain-strings.py
-TEST_FONT=f26f29c9d3bfae588207bbc9762de8d142e58935c62a86f67332819b15203b35
VIRTUALX_REQUIRED="pgo"
@@ -19,20 +17,19 @@ CHROMIUM_LANGS="af am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu
hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
sv sw ta te th tr uk ur vi zh-CN zh-TW"
-# While prerelease llvm is actually used in the google build, until we have a
-# sane way to select 'rust built with this llvm slot' that isn't stable and testing
-# subslots we will have to restrict LLVM_COMPAT to stable and testing keywords.
-# Requires 18.1.8 or 19.1.1 (or newer) for ppc64
LLVM_COMPAT=( 18 19 )
+RUST_NEEDS_LLVM="yes please"
PYTHON_COMPAT=( python3_{11..13} )
PYTHON_REQ_USE="xml(+)"
+RUST_MIN_VER=1.78.0
-inherit check-reqs chromium-2 desktop flag-o-matic llvm-utils multiprocessing ninja-utils pax-utils
-inherit python-any-r1 qmake-utils readme.gentoo-r1 systemd toolchain-funcs virtualx xdg-utils
+inherit check-reqs chromium-2 desktop flag-o-matic llvm-r1 multiprocessing ninja-utils pax-utils
+inherit python-any-r1 qmake-utils readme.gentoo-r1 rust systemd toolchain-funcs virtualx xdg-utils
DESCRIPTION="Open-source version of Google Chrome web browser"
HOMEPAGE="https://www.chromium.org/"
PPC64_HASH="a85b64f07b489b8c6fdb13ecf79c16c56c560fc6"
+TEST_FONT=f26f29c9d3bfae588207bbc9762de8d142e58935c62a86f67332819b15203b35
PATCH_V="${PV%%\.*}-2"
SRC_URI="https://chromium-tarballs.distfiles.gentoo.org/${P}.tar.xz
https://gitlab.com/Matt.Jolly/chromium-patches/-/archive/${PATCH_V}/chromium-patches-${PATCH_V}.tar.bz2
@@ -53,6 +50,7 @@ if [[ ${SLOT} != "0/dev" ]]; then
KEYWORDS="~amd64 ~arm64 ~ppc64"
fi
+
IUSE_SYSTEM_LIBS="+system-harfbuzz +system-icu +system-png +system-zstd"
IUSE="+X ${IUSE_SYSTEM_LIBS} bindist cups debug ffmpeg-chromium gtk4 +hangouts headless kerberos +official pax-kernel pgo +proprietary-codecs pulseaudio"
IUSE+=" qt5 qt6 +screencast selinux test +vaapi +wayland +widevine cpu_flags_ppc_vsx3"
@@ -167,29 +165,6 @@ DEPEND="${COMMON_DEPEND}
)
"
-depend_clang_llvm_version() {
- echo "sys-devel/clang:$1"
- echo "sys-devel/llvm:$1"
- echo "=sys-devel/lld-$1*"
- echo "virtual/rust:0/llvm-${1}[profiler(-)]"
- echo "pgo? ( sys-libs/compiler-rt-sanitizers:${1}[profile] )"
-}
-
-# Parse LLVM_COMPAT and generate a usedep for each version
-depend_clang_llvm_versions() {
- if [[ ${#LLVM_COMPAT[@]} -eq 0 ]]; then
- depend_clang_llvm_version ${#LLVM_COMPAT[0]}
- else
- echo "|| ("
- for (( i=${#LLVM_COMPAT[@]}-1 ; i>=0 ; i-- )); do
- echo "("
- depend_clang_llvm_version ${LLVM_COMPAT[i]}
- echo ")"
- done
- echo ")"
- fi
-}
-
BDEPEND="
${COMMON_SNAPSHOT_DEPEND}
${PYTHON_DEPS}
@@ -201,7 +176,11 @@ BDEPEND="
qt5? ( dev-qt/qtcore:5 )
qt6? ( dev-qt/qtbase:6 )
)
- $(depend_clang_llvm_versions)
+ $(llvm_gen_dep "
+ sys-devel/clang:\${LLVM_SLOT}
+ sys-devel/llvm:\${LLVM_SLOT}
+ sys-devel/lld:\${LLVM_SLOT}
+ ")
pgo? (
>=dev-python/selenium-3.141.0
>=dev-util/web_page_replay_go-20220314
@@ -296,57 +275,13 @@ pkg_pretend() {
fi
}
-# Chromium should build with any version of clang that we support
-# but we may need to pick the "best" one for a build (highest installed,
-# rust is built against it, etc.)
-# Check each slot in LLVM_COMPAT to see if clang/llvm/lld are available
-# and output the _highest_ slot that is actually available on a system.
-chromium_pick_llvm_slot() {
- # LLVM_COMPAT is always going to be oldest to newest (or one value)
- # let's flip it and check from newest to oldest and return the first one we find.
- local slot
- for (( i=${#LLVM_COMPAT[@]}-1 ; i>=0 ; i-- )); do
- slot=${LLVM_COMPAT[i]}
- if has_version "sys-devel/clang:${slot}" && \
- has_version "sys-devel/llvm:${slot}" && \
- has_version "sys-devel/lld:${slot}" && \
- has_version "virtual/rust:0/llvm-${slot}" && \
- ( ! use pgo || has_version "sys-libs/compiler-rt-sanitizers:${slot}" ) ; then
-
- echo "${slot}"
- return
- fi
- done
-
- die_msg="
-No suitable clang/llvm/lld slot found.
-Slots checked: ${LLVM_COMPAT[*]}.
-"
- die "${die_msg}"
-}
-
-# We need the rust version in src_configure and pkg_setup
-chromium_extract_rust_version() {
- [[ ${MERGE_TYPE} == binary ]] && return
- local rustc_version=( $(eselect --brief rust show 2>/dev/null) )
- rustc_version=${rustc_version[0]#rust-bin-}
- rustc_version=${rustc_version#rust-}
-
- [[ -z "${rustc_version}" ]] && die "Failed to determine rust version, check 'eselect rust' output"
-
- echo $rustc_version
-}
-
pkg_setup() {
if [[ ${MERGE_TYPE} != binary ]]; then
# The pre_build_checks are all about compilation resources, no need to run it for a binpkg
pre_build_checks
# The linux:unbundle toolchain in GN grabs CC, CXX, CPP (etc) from the environment
- # We'll set these to clang here then use llvm-utils functions to very explicitly set these
- # to a sane value.
# This is effectively the 'force-clang' path if GCC support is re-added.
- # TODO: check if the user has already selected a specific impl via make.conf and respect that.
use_lto="false"
if tc-is-lto; then
use_lto="true"
@@ -374,8 +309,7 @@ pkg_setup() {
die "Please switch to a different linker."
fi
- LLVM_SLOT=$(chromium_pick_llvm_slot)
- export LLVM_SLOT # used in src_configure for rust-y business
+ # We're forcing Clang here. User choice is respected via llvm_slot_# USE flags.
AR=llvm-ar
CPP="${CHOST}-clang++ -E"
NM=llvm-nm
@@ -387,53 +321,16 @@ pkg_setup() {
CPP="${CBUILD}-clang++ -E"
fi
- # The llvm-r1_pkg_setup we have at home.
- # We prepend the path _first_ to explicitly use the selected slot.
- llvm_prepend_path "${LLVM_SLOT}"
-
- llvm_fix_clang_version CC CPP CXX
- llvm_fix_tool_path ADDR2LINE AR AS LD NM OBJCOPY OBJDUMP RANLIB
- llvm_fix_tool_path READELF STRINGS STRIP
-
- # Set LLVM_CONFIG to help Meson (bug #907965) but only do it
- # for empty ESYSROOT (as a proxy for "are we cross-compiling?").
- if [[ -z ${ESYSROOT} ]] ; then
- llvm_fix_tool_path LLVM_CONFIG
- fi
+ llvm-r1_pkg_setup
+ rust_pkg_setup
einfo "Using LLVM/Clang slot ${LLVM_SLOT} to build"
-
- rustc_ver=$(chromium_extract_rust_version)
- if ver_test "${rustc_ver}" -lt "${RUST_MIN_VER}"; then
- eerror "Rust >=${RUST_MIN_VER} is required to build Chromium"
- eerror "The currently selected version is ${rustc_ver}"
- eerror "Please run \`eselect rust\` and select an appropriate Rust."
- die "Selected Rust version is too old"
- else
- einfo "Using Rust ${rustc_ver} to build"
- fi
-
- export rustc_ver # used in src_configure, may as well avoid calling it again
+ einfo "Using Rust slot ${RUST_SLOT}, ${RUST_TYPE} to build"
# I hate doing this but upstream Rust have yet to come up with a better solution for
# us poor packagers. Required for Split LTO units, which are required for CFI.
export RUSTC_BOOTSTRAP=1
- # Chromium requires the Rust profiler library while setting up its build environment.
- # Since a standard Rust comes with the profiler, instead of patching it out (build/rust/std/BUILD.gn#L103)
- # we'll just do a sanity check on the selected slot.
- # The -bin always contains profiler support, so we only need to check for the non-bin version.
- if [[ "$(eselect --brief rust show 2>/dev/null)" != *"bin"* ]]; then
- local rust_lib_path="${EPREFIX}$(rustc --print target-libdir)"
- local profiler_lib=$(find "${rust_lib_path}" -name "libprofiler_builtins-*.rlib" -print -quit)
- if [[ -z "${profiler_lib}" ]]; then
- eerror "Rust ${rustc_ver} is missing the profiler library."
- eerror "ebuild dependency resolution should have ensured that a Rust with the profiler was installed."
- die "Please \`eselect\` a Rust slot that has the profiler."
- fi
- fi
-
-
# Users should never hit this, it's purely a development convenience
if ver_test $(gn --version || die) -lt ${GN_MIN_VER}; then
die "dev-build/gn >= ${GN_MIN_VER} is required to build this Chromium"
@@ -928,23 +825,15 @@ chromium_configure() {
# rust_bindgen_root = directory with `bin/bindgen` beneath it.
myconf_gn+=" rust_bindgen_root=\"${EPREFIX}/usr/\""
- # from get_llvm_prefix
- local prefix=${ESYSROOT}
- [[ ${1} == -b ]] && prefix=${BROOT}
- myconf_gn+=" bindgen_libclang_path=\"${prefix}/usr/lib/llvm/${LLVM_SLOT}/$(get_libdir)\""
+ myconf_gn+=" bindgen_libclang_path=\"$(get_llvm_prefix)/$(get_libdir)\""
# We don't need to set 'clang_base_bath' for anything in our build
# and it defaults to the google toolchain location. Instead provide a location
# to where system clang lives sot that bindgen can find system headers (e.g. stddef.h)
myconf_gn+=" clang_base_path=\"${EPREFIX}/usr/lib/clang/${LLVM_SLOT}/\""
# We need to provide this to GN in both the path to rust _and_ the version
- if [[ "$(eselect --brief rust show 2>/dev/null)" == *"bin"* ]]; then
- myconf_gn+=" rust_sysroot_absolute=\"${EPREFIX}/opt/rust-bin-${rustc_ver}/\""
- else
- myconf_gn+=" rust_sysroot_absolute=\"${EPREFIX}/usr/lib/rust/${rustc_ver}/\""
- fi
- myconf_gn+=" rustc_version=\"${rustc_ver}\""
-
+ myconf_gn+=" rust_sysroot_absolute=\"$(get_rust_prefix)\""
+ myconf_gn+=" rustc_version=\"${RUST_SLOT}\""
# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
myconf_gn+=" is_debug=false"
diff --git a/www-client/chromium/chromium-131.0.6753.0.ebuild b/www-client/chromium/chromium-131.0.6753.0-r1.ebuild
index b9fbbe6b9e34..082a394cd0a8 100644
--- a/www-client/chromium/chromium-131.0.6753.0.ebuild
+++ b/www-client/chromium/chromium-131.0.6753.0-r1.ebuild
@@ -39,15 +39,12 @@ CHROMIUM_LANGS="af am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu
hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
sv sw ta te th tr uk ur vi zh-CN zh-TW"
-# While prerelease llvm is actually used in the google build, until we have a
-# sane way to select 'rust built with this llvm slot' that isn't stable and testing
-# subslots we will have to restrict LLVM_COMPAT to stable and testing keywords.
LLVM_COMPAT=( 17 18 )
PYTHON_COMPAT=( python3_{11..13} )
PYTHON_REQ_USE="xml(+)"
-inherit check-reqs chromium-2 desktop flag-o-matic llvm-utils ninja-utils pax-utils
-inherit python-any-r1 qmake-utils readme.gentoo-r1 systemd toolchain-funcs virtualx xdg-utils
+inherit check-reqs chromium-2 desktop flag-o-matic llvm-r1 ninja-utils pax-utils
+inherit python-any-r1 qmake-utils readme.gentoo-r1 rust systemd toolchain-funcs virtualx xdg-utils
DESCRIPTION="Open-source version of Google Chrome web browser"
HOMEPAGE="https://www.chromium.org/"
@@ -72,9 +69,7 @@ SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}
LICENSE="BSD"
SLOT="0/dev"
# Dev exists mostly to give devs some breathing room for beta/stable releases; it shouldn't be keyworded but adventurous users can select it.
-if [[ ${SLOT} == "0/dev" ]]; then
- KEYWORDS=""
-else
+if [[ ${SLOT} != "0/dev" ]]; then
KEYWORDS="~amd64 ~arm64"
fi
@@ -189,29 +184,6 @@ DEPEND="${COMMON_DEPEND}
)
"
-depend_clang_llvm_version() {
- echo "sys-devel/clang:$1"
- echo "sys-devel/llvm:$1"
- echo "=sys-devel/lld-$1*"
- echo "virtual/rust:0/llvm-${1}[profiler(-)]"
- echo "pgo? ( sys-libs/compiler-rt-sanitizers:${1}[profile] )"
-}
-
-# Parse LLVM_COMPAT and generate a usedep for each version
-depend_clang_llvm_versions() {
- if [[ ${#LLVM_COMPAT[@]} -eq 0 ]]; then
- depend_clang_llvm_version ${#LLVM_COMPAT[0]}
- else
- echo "|| ("
- for (( i=${#LLVM_COMPAT[@]}-1 ; i>=0 ; i-- )); do
- echo "("
- depend_clang_llvm_version ${LLVM_COMPAT[i]}
- echo ")"
- done
- echo ")"
- fi
-}
-
BDEPEND="
${COMMON_SNAPSHOT_DEPEND}
${PYTHON_DEPS}
@@ -224,7 +196,7 @@ BDEPEND="
qt6? ( dev-qt/qtbase:6 )
)
system-toolchain? (
- $(depend_clang_llvm_versions)
+ $()
pgo? (
>=dev-python/selenium-3.141.0
>=dev-util/web_page_replay_go-20220314
@@ -320,47 +292,6 @@ pkg_pretend() {
fi
}
-# Chromium should build with any version of clang that we support
-# but we may need to pick the "best" one for a build (highest installed,
-# rust is built against it, etc.)
-# Check each slot in LLVM_COMPAT to see if clang/llvm/lld are available
-# and output the _highest_ slot that is actually available on a system.
-chromium_pick_llvm_slot() {
- # LLVM_COMPAT is always going to be oldest to newest (or one value)
- # let's flip it and check from newest to oldest and return the first one we find.
- local slot
- for (( i=${#LLVM_COMPAT[@]}-1 ; i>=0 ; i-- )); do
- slot=${LLVM_COMPAT[i]}
- if has_version "sys-devel/clang:${slot}" && \
- has_version "sys-devel/llvm:${slot}" && \
- has_version "sys-devel/lld:${slot}" && \
- has_version "virtual/rust:0/llvm-${slot}" && \
- ( ! use pgo || has_version "sys-libs/compiler-rt-sanitizers:${slot}" ) ; then
-
- echo "${slot}"
- return
- fi
- done
-
- die_msg="
-No suitable clang/llvm/lld slot found.
-Slots checked: ${LLVM_COMPAT[*]}.
-"
- die "${die_msg}"
-}
-
-# We need the rust version in src_configure and pkg_setup
-chromium_extract_rust_version() {
- [[ ${MERGE_TYPE} == binary ]] && return
- local rustc_version=( $(eselect --brief rust show 2>/dev/null) )
- rustc_version=${rustc_version[0]#rust-bin-}
- rustc_version=${rustc_version#rust-}
-
- [[ -z "${rustc_version}" ]] && die "Failed to determine rust version, check 'eselect rust' output"
-
- echo $rustc_version
-}
-
pkg_setup() {
if [[ ${MERGE_TYPE} != binary ]]; then
# The pre_build_checks are all about compilation resources, no need to run it for a binpkg
@@ -396,8 +327,6 @@ pkg_setup() {
die "Please switch to a different linker."
fi
- LLVM_SLOT=$(chromium_pick_llvm_slot)
- export LLVM_SLOT # used in src_configure for rust-y business
AR=llvm-ar
CPP="${CHOST}-clang++ -E"
NM=llvm-nm
@@ -409,49 +338,12 @@ pkg_setup() {
CPP="${CBUILD}-clang++ -E"
fi
- # The llvm-r1_pkg_setup we have at home.
- # We prepend the path _first_ to explicitly use the selected slot.
- llvm_prepend_path "${LLVM_SLOT}"
-
- llvm_fix_clang_version CC CPP CXX
- llvm_fix_tool_path ADDR2LINE AR AS LD NM OBJCOPY OBJDUMP RANLIB
- llvm_fix_tool_path READELF STRINGS STRIP
-
- # Set LLVM_CONFIG to help Meson (bug #907965) but only do it
- # for empty ESYSROOT (as a proxy for "are we cross-compiling?").
- if [[ -z ${ESYSROOT} ]] ; then
- llvm_fix_tool_path LLVM_CONFIG
- fi
-
- einfo "Using LLVM/Clang slot ${LLVM_SLOT} to build"
-
- local rustc_ver=$(chromium_extract_rust_version)
- if ver_test "${rustc_ver}" -lt "${RUST_MIN_VER}"; then
- eerror "Rust >=${RUST_MIN_VER} is required to build Chromium"
- eerror "The currently selected version is ${rustc_ver}"
- eerror "Please run \`eselect rust\` and select an appropriate Rust."
- die "Selected Rust version is too old"
- else
- einfo "Using Rust ${rustc_ver} to build"
- fi
+ llvm-r1_pkg_setup
+ rust_pkg_setup
# I hate doing this but upstream Rust have yet to come up with a better solution for
# us poor packagers. Required for Split LTO units, which are required for CFI.
export RUSTC_BOOTSTRAP=1
-
- # Chromium requires the Rust profiler library while setting up its build environment.
- # Since a standard Rust comes with the profiler, instead of patching it out (build/rust/std/BUILD.gn#L103)
- # we'll just do a sanity check on the selected slot.
- # The -bin always contains profiler support, so we only need to check for the non-bin version.
- if [[ "$(eselect --brief rust show 2>/dev/null)" != *"bin"* ]]; then
- local rust_lib_path="${EPREFIX}$(rustc --print target-libdir)"
- local profiler_lib=$(find "${rust_lib_path}" -name "libprofiler_builtins-*.rlib" -print -quit)
- if [[ -z "${profiler_lib}" ]]; then
- eerror "Rust ${rustc_ver} is missing the profiler library."
- eerror "ebuild dependency resolution should have ensured that a Rust with the profiler was installed."
- die "Please \`eselect\` a Rust slot that has the profiler."
- fi
- fi
fi
# Users should never hit this, it's purely a development convenience
@@ -946,23 +838,14 @@ chromium_configure() {
# rust_bindgen_root = directory with `bin/bindgen` beneath it.
myconf_gn+=" rust_bindgen_root=\"${EPREFIX}/usr/\""
- # from get_llvm_prefix
- local prefix=${ESYSROOT}
- [[ ${1} == -b ]] && prefix=${BROOT}
- myconf_gn+=" bindgen_libclang_path=\"${prefix}/usr/lib/llvm/${LLVM_SLOT}/$(get_libdir)\""
+
+ myconf_gn+=" bindgen_libclang_path=\"$(get_llvm_prefix)/$(get_libdir)\""
# We don't need to set 'clang_base_bath' for anything in our build
# and it defaults to the google toolchain location. Instead provide a location
# to where system clang lives sot that bindgen can find system headers (e.g. stddef.h)
myconf_gn+=" clang_base_path=\"${EPREFIX}/usr/lib/clang/${LLVM_SLOT}/\""
-
- # We need to provide this to GN in both the path to rust _and_ the version
- local rustc_ver=$(chromium_extract_rust_version)
- if [[ "$(eselect --brief rust show 2>/dev/null)" == *"bin"* ]]; then
- myconf_gn+=" rust_sysroot_absolute=\"${EPREFIX}/opt/rust-bin-${rustc_ver}/\""
- else
- myconf_gn+=" rust_sysroot_absolute=\"${EPREFIX}/usr/lib/rust/${rustc_ver}/\""
- fi
- myconf_gn+=" rustc_version=\"${rustc_ver}\""
+ myconf_gn+=" rust_sysroot_absolute=\"$(get_rust_prefix)\""
+ myconf_gn+=" rustc_version=\"${RUST_SLOT}\""
fi
# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
diff --git a/www-client/chromium/chromium-131.0.6778.24.ebuild b/www-client/chromium/chromium-131.0.6778.24-r1.ebuild
index 3a1fa9fc3807..981c37fea572 100644
--- a/www-client/chromium/chromium-131.0.6778.24.ebuild
+++ b/www-client/chromium/chromium-131.0.6778.24-r1.ebuild
@@ -9,7 +9,6 @@ EAPI=8
# Use 132 as a base for new official tarballs.
GN_MIN_VER=0.2165
-RUST_MIN_VER=1.78.0
# chromium-tools/get-chromium-toolchain-strings.py
TEST_FONT=f26f29c9d3bfae588207bbc9762de8d142e58935c62a86f67332819b15203b35
@@ -19,15 +18,13 @@ CHROMIUM_LANGS="af am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu
hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
sv sw ta te th tr uk ur vi zh-CN zh-TW"
-# While prerelease llvm is actually used in the google build, until we have a
-# sane way to select 'rust built with this llvm slot' that isn't stable and testing
-# subslots we will have to restrict LLVM_COMPAT to stable and testing keywords.
LLVM_COMPAT=( {17..19} )
PYTHON_COMPAT=( python3_{11..13} )
PYTHON_REQ_USE="xml(+)"
+RUST_MIN_VER=1.78.0
-inherit check-reqs chromium-2 desktop flag-o-matic llvm-utils multiprocessing ninja-utils pax-utils
-inherit python-any-r1 qmake-utils readme.gentoo-r1 systemd toolchain-funcs virtualx xdg-utils
+inherit check-reqs chromium-2 desktop flag-o-matic llvm-r1 multiprocessing ninja-utils pax-utils
+inherit python-any-r1 qmake-utils readme.gentoo-r1 rust systemd toolchain-funcs virtualx xdg-utils
DESCRIPTION="Open-source version of Google Chrome web browser"
HOMEPAGE="https://www.chromium.org/"
@@ -167,29 +164,6 @@ DEPEND="${COMMON_DEPEND}
)
"
-depend_clang_llvm_version() {
- echo "sys-devel/clang:$1"
- echo "sys-devel/llvm:$1"
- echo "=sys-devel/lld-$1*"
- echo "virtual/rust:0/llvm-${1}[profiler(-)]"
- echo "pgo? ( sys-libs/compiler-rt-sanitizers:${1}[profile] )"
-}
-
-# Parse LLVM_COMPAT and generate a usedep for each version
-depend_clang_llvm_versions() {
- if [[ ${#LLVM_COMPAT[@]} -eq 0 ]]; then
- depend_clang_llvm_version ${#LLVM_COMPAT[0]}
- else
- echo "|| ("
- for (( i=${#LLVM_COMPAT[@]}-1 ; i>=0 ; i-- )); do
- echo "("
- depend_clang_llvm_version ${LLVM_COMPAT[i]}
- echo ")"
- done
- echo ")"
- fi
-}
-
BDEPEND="
${COMMON_SNAPSHOT_DEPEND}
${PYTHON_DEPS}
@@ -201,7 +175,11 @@ BDEPEND="
qt5? ( dev-qt/qtcore:5 )
qt6? ( dev-qt/qtbase:6 )
)
- $(depend_clang_llvm_versions)
+ $(llvm_gen_dep "
+ sys-devel/clang:\${LLVM_SLOT}
+ sys-devel/llvm:\${LLVM_SLOT}
+ sys-devel/lld:\${LLVM_SLOT}
+ ")
pgo? (
>=dev-python/selenium-3.141.0
>=dev-util/web_page_replay_go-20220314
@@ -296,47 +274,6 @@ pkg_pretend() {
fi
}
-# Chromium should build with any version of clang that we support
-# but we may need to pick the "best" one for a build (highest installed,
-# rust is built against it, etc.)
-# Check each slot in LLVM_COMPAT to see if clang/llvm/lld are available
-# and output the _highest_ slot that is actually available on a system.
-chromium_pick_llvm_slot() {
- # LLVM_COMPAT is always going to be oldest to newest (or one value)
- # let's flip it and check from newest to oldest and return the first one we find.
- local slot
- for (( i=${#LLVM_COMPAT[@]}-1 ; i>=0 ; i-- )); do
- slot=${LLVM_COMPAT[i]}
- if has_version "sys-devel/clang:${slot}" && \
- has_version "sys-devel/llvm:${slot}" && \
- has_version "sys-devel/lld:${slot}" && \
- has_version "virtual/rust:0/llvm-${slot}" && \
- ( ! use pgo || has_version "sys-libs/compiler-rt-sanitizers:${slot}" ) ; then
-
- echo "${slot}"
- return
- fi
- done
-
- die_msg="
-No suitable clang/llvm/lld slot found.
-Slots checked: ${LLVM_COMPAT[*]}.
-"
- die "${die_msg}"
-}
-
-# We need the rust version in src_configure and pkg_setup
-chromium_extract_rust_version() {
- [[ ${MERGE_TYPE} == binary ]] && return
- local rustc_version=( $(eselect --brief rust show 2>/dev/null) )
- rustc_version=${rustc_version[0]#rust-bin-}
- rustc_version=${rustc_version#rust-}
-
- [[ -z "${rustc_version}" ]] && die "Failed to determine rust version, check 'eselect rust' output"
-
- echo $rustc_version
-}
-
pkg_setup() {
if [[ ${MERGE_TYPE} != binary ]]; then
# The pre_build_checks are all about compilation resources, no need to run it for a binpkg
@@ -374,8 +311,7 @@ pkg_setup() {
die "Please switch to a different linker."
fi
- LLVM_SLOT=$(chromium_pick_llvm_slot)
- export LLVM_SLOT # used in src_configure for rust-y business
+ # Forcing clang; user choice respected by llvm_slot_x USE
AR=llvm-ar
CPP="${CHOST}-clang++ -E"
NM=llvm-nm
@@ -387,52 +323,13 @@ pkg_setup() {
CPP="${CBUILD}-clang++ -E"
fi
- # The llvm-r1_pkg_setup we have at home.
- # We prepend the path _first_ to explicitly use the selected slot.
- llvm_prepend_path "${LLVM_SLOT}"
-
- llvm_fix_clang_version CC CPP CXX
- llvm_fix_tool_path ADDR2LINE AR AS LD NM OBJCOPY OBJDUMP RANLIB
- llvm_fix_tool_path READELF STRINGS STRIP
-
- # Set LLVM_CONFIG to help Meson (bug #907965) but only do it
- # for empty ESYSROOT (as a proxy for "are we cross-compiling?").
- if [[ -z ${ESYSROOT} ]] ; then
- llvm_fix_tool_path LLVM_CONFIG
- fi
-
- einfo "Using LLVM/Clang slot ${LLVM_SLOT} to build"
-
- rustc_ver=$(chromium_extract_rust_version)
- if ver_test "${rustc_ver}" -lt "${RUST_MIN_VER}"; then
- eerror "Rust >=${RUST_MIN_VER} is required to build Chromium"
- eerror "The currently selected version is ${rustc_ver}"
- eerror "Please run \`eselect rust\` and select an appropriate Rust."
- die "Selected Rust version is too old"
- else
- einfo "Using Rust ${rustc_ver} to build"
- fi
-
- export rustc_ver # used in src_configure, may as well avoid calling it again
+ llvm-r1_pkg_setup
+ rust_pkg_setup
# I hate doing this but upstream Rust have yet to come up with a better solution for
# us poor packagers. Required for Split LTO units, which are required for CFI.
export RUSTC_BOOTSTRAP=1
- # Chromium requires the Rust profiler library while setting up its build environment.
- # Since a standard Rust comes with the profiler, instead of patching it out (build/rust/std/BUILD.gn#L103)
- # we'll just do a sanity check on the selected slot.
- # The -bin always contains profiler support, so we only need to check for the non-bin version.
- if [[ "$(eselect --brief rust show 2>/dev/null)" != *"bin"* ]]; then
- local rust_lib_path="${EPREFIX}$(rustc --print target-libdir)"
- local profiler_lib=$(find "${rust_lib_path}" -name "libprofiler_builtins-*.rlib" -print -quit)
- if [[ -z "${profiler_lib}" ]]; then
- eerror "Rust ${rustc_ver} is missing the profiler library."
- eerror "ebuild dependency resolution should have ensured that a Rust with the profiler was installed."
- die "Please \`eselect\` a Rust slot that has the profiler."
- fi
- fi
-
# Users should never hit this, it's purely a development convenience
if ver_test $(gn --version || die) -lt ${GN_MIN_VER}; then
die "dev-build/gn >= ${GN_MIN_VER} is required to build this Chromium"
@@ -926,22 +823,14 @@ chromium_configure() {
# rust_bindgen_root = directory with `bin/bindgen` beneath it.
myconf_gn+=" rust_bindgen_root=\"${EPREFIX}/usr/\""
- # from get_llvm_prefix
- local prefix=${ESYSROOT}
- [[ ${1} == -b ]] && prefix=${BROOT}
- myconf_gn+=" bindgen_libclang_path=\"${prefix}/usr/lib/llvm/${LLVM_SLOT}/$(get_libdir)\""
+ myconf_gn+=" bindgen_libclang_path=\"$(get_llvm_prefix)/$(get_libdir)\""
# We don't need to set 'clang_base_bath' for anything in our build
# and it defaults to the google toolchain location. Instead provide a location
# to where system clang lives sot that bindgen can find system headers (e.g. stddef.h)
myconf_gn+=" clang_base_path=\"${EPREFIX}/usr/lib/clang/${LLVM_SLOT}/\""
- # We need to provide this to GN in both the path to rust _and_ the version
- if [[ "$(eselect --brief rust show 2>/dev/null)" == *"bin"* ]]; then
- myconf_gn+=" rust_sysroot_absolute=\"${EPREFIX}/opt/rust-bin-${rustc_ver}/\""
- else
- myconf_gn+=" rust_sysroot_absolute=\"${EPREFIX}/usr/lib/rust/${rustc_ver}/\""
- fi
- myconf_gn+=" rustc_version=\"${rustc_ver}\""
+ myconf_gn+=" rust_sysroot_absolute=\"$(get_rust_prefix)\""
+ myconf_gn+=" rustc_version=\"${RUST_SLOT}\""
# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
myconf_gn+=" is_debug=false"
diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
index 1b3731429f96..00e5633b07a5 100644
--- a/www-client/firefox/Manifest
+++ b/www-client/firefox/Manifest
@@ -619,10 +619,10 @@ DIST firefox-132.0.1-zh-CN.xpi 672173 BLAKE2B 103aae4cfa0847f6c6d598ebc13e69b30d
DIST firefox-132.0.1-zh-TW.xpi 674245 BLAKE2B 6f74de755ae7f3f87dd9fc2d905b77595c27c3698cc8ee214414ff704903f5ceadcf634b6407506143b541bb30918c92fe1cd8e855d149da0539404bcb67d10d SHA512 a0e24d82e9e33c4b2a28ff08576f3c1652609ab59f354a7fc14c63667715f9ab64ea2d2798b1c7af5c21ab4c0cd19d0eef9a730f24ba567c4cedc29b8e9cbd67
DIST firefox-132.0.1.source.tar.xz 577539004 BLAKE2B 2773f6f74088954ab067df978e7069cbd92d96933190b32a24c7762ae7f300a8b4b9c95d6fee36ccceceebda86b51fd3842074d49869f8fa0cda5cb98402ed54 SHA512 10d5b05f61628deb9a69cb34b2cf3c75bb6b8768f5a718cef2157d5feb1671ede0d583439562e1c1221914eb6ed37fdf415dd651b1465c056be174136cd80b9d
DIST firefox-132.0.source.tar.xz 564734500 BLAKE2B e1fb70d2d699153921bcb500801b77beeba8e1ff79ef9af678a0c573c252f61d7ad20e9f0676fe2fa2731bf14af7d2eff30c0b3b562102820fddb06f63a66a91 SHA512 254ffba16d6e6c61cffaa8131f81a9a78880e5723b7ee78ac36251a27d82e6ff088238ae289d07469ba3a51b5b5969a08ecd1fc02dcb4d93325a08fac1cfc916
-EBUILD firefox-115.16.1.ebuild 39935 BLAKE2B d2634c9a774135b121da45942a0b7a2614695503b13b1f277703dc54f2d8a0dbfaba7e19b1665b0fe503723d61439498c3dd7b352bd1696619de1bf46cd92a7e SHA512 db5f90432d1c6f8c88ba54faed8fe6adbc6ac345bb45976fe1a02056b642dda9495e11695dd5fd04d1c8b8edcab83a0f0f06cdfd9806e3aec605c5ef01fcdbac
-EBUILD firefox-128.3.1.ebuild 41715 BLAKE2B 35226120d233ff6fd60e9ff74b0417f4d370d11c0ea9cb1b48bf17ff8bf7eb6ff3296d857dfaefecedf91227726766536b37828ed2a8c478f0f69815cfcca3ef SHA512 663a87d2122261f683515c64fbe9d9e3c372aa098c7b8a0af57862d27489981f55c122e9165945a08e1f15ad8f75c70295059460252211bbd29911d0ca1f2992
-EBUILD firefox-128.4.0.ebuild 40641 BLAKE2B ca57953facd55af93cb7f2b858db6c3a2d6237e9efaa23f4a302709839a4373ac4814de2f48387afb06ac6b604f17578fd1d34bfffbfb3052aa382d486701102 SHA512 a9835cb36e4293d2ec9b96053cd598be1a0c56018da0e657075418feb3a9699ba8111a1a682292cb15ec7eac58026d30ce14e7db6e3b0761add8c72f6d0c191f
-EBUILD firefox-131.0.3.ebuild 41525 BLAKE2B ce0d47247dd85f5616ad4fece1ad415a3825d1aa47c8b983f2d2e9cc05f0646762f00911efc700a52d212077fa2fb61c0ead79a4947f18bb6ff9334969f46c1f SHA512 49ff2e9ce2e611113596dc51e047dc00b112203fdf2b1074c298072e4babbd35149aa421870c0b422e4c7749f71ccbe8d875eb91c9e11136765035f418efd81c
-EBUILD firefox-132.0.1.ebuild 40318 BLAKE2B c1419a3fdc8b1ba567cb09dca7532c4005e38b1c7646484a3e920585c10a94e43d7a73e17032bf72a5c2632a0afea15e428eb2d6c852a8a34a06ae875f6d538e SHA512 13cdef62ab5fa86840ba9417241a0c6262364de1bdd5fc735ffacf92fe26a1bff5a518b87dc507489ff50a679327cea447179de2dea43e572e3b9d619e9bf529
-EBUILD firefox-132.0.ebuild 40448 BLAKE2B bf1dfc6ae70f39fe3ad6bb86fb41eb39c34758ec97b7884a131e292e1d0261e1718329cd19cfab24e51df3571d7a3cc06c5154ed176d3628c9f50398e8cfbf05 SHA512 f541036ce97d118efe9b209c3ab22eb1ca15efeb552af235336ad4ae3342f9ad47fc295233217dd7d00fc0e712b04daaa1f01a0ec2315eea5304ee1fa0efd401
+EBUILD firefox-115.16.1-r1.ebuild 39187 BLAKE2B 2e708bb20394605304630e3b9e12b4dbfcaf9f300d6b60a182e943f4c7f19fb5a1996cd6c4a6216965b5c04309613b0e9cfc82053642cbdb0c9c25a034aed4c2 SHA512 184aa94944271de9c19a5ed6fa6a9af60ba25c14aabff66bcac9c1025ebd161d1ca060b2c05feabefba1c79e403f26c3817f9372031673f5c266234b922557cb
+EBUILD firefox-128.3.1-r1.ebuild 41479 BLAKE2B 6cef8a8aa4e038bd8514520f5d420025757ad136151cf642d2ca82081b5bb995c49cf59e352492ad259f04eab4ffc1e3fd1b801957cd2a67cc6054a7f4c565a4 SHA512 47cf75b11a2334a10e2d6a564505a3b8f5c75b74ce2d99fcadbc2c633dd5f74fb2cc05bc4f2eb0df3a26e61d5e1ddd4906376d004bef1b15157d053bfcc84074
+EBUILD firefox-128.4.0-r1.ebuild 41054 BLAKE2B 996c9188f5bee45b13a5d87a16492eb6001d58c7545be1bd66e852257d0cd590277645c04103ec79b65f81069cf4f5bd34871bebf75d50a1d04df6acfa4705c6 SHA512 689ff62ac32c3dfaacc4d25210e80ea28e9d05ca6fe61ecd0e17ea8d5c3fad6daf22f6e11263c73bdac12dea00fbf83de068836eb6e73566823efcf048e00366
+EBUILD firefox-131.0.3-r1.ebuild 41029 BLAKE2B 407c7a730dcbd88341ad8f2ca59c71aa7ada044bb8675baa4a52f4e9acfb9dd8a9dc2ff8a472e1f1c071021562feb5749e8e8adf11bb33b3b57aa0ac841cb7a3 SHA512 606df7613bbee59f3e336196d7fdaaa1e7f874cf8f33c9cca8679917bdd51414908e8607f0cb26ee683120ef05bdd762aa9304bb3d521d93757d0c1a7a8d1f2c
+EBUILD firefox-132.0-r1.ebuild 39735 BLAKE2B 8dee8322db7ec172ef1c4506be7cddd92d466d6fcb13ae1e976a5a1ee9be5fec3a43a16050601fde71c241573e5ef9e4892bee500dc235af2e9de6cc06a939d4 SHA512 f44c7fa1cfa5c425dac389ddd942f38f02b1e43cb7d386a5e9ac3cc293cb094967d7a8bc5b150766216479123bd4d06866001354185c499e92e30a2af2e5e81e
+EBUILD firefox-132.0.1-r1.ebuild 39605 BLAKE2B 4ed4bfbdec0ed2bfa9a63762e6c99ab2b84ea4e52f4dc864044173e510fd1d6affb7d0603c1e02350f36230909fefd39385b6773e2a56d056062c6f50e1be818 SHA512 ddd0f6f13df09e4b20fd1a0c848d6c4f4b9e071e095e2199685a2699d1788d3d5d005b1eb41ceafbc42c5186ca4d848f10c56f235eb4c66430253e210ddda793
MISC metadata.xml 2675 BLAKE2B 57721fdb9b8e0f1ea4a7d96dc284d5bc2f02e486086778bcb56f1a6166e327c4a06766cc4f2a7dd3716eef352c78ae28659971d9c71880d3ab22524ff060f57c SHA512 e0331f26da3dfa53b5f5c3b68e1f19b02dff662bc70bf4275d55edc077a508ac26be031f8693000fc903ea84c637cfc656358aa8f20f42747dd9a6994df6d724
diff --git a/www-client/firefox/firefox-115.16.1.ebuild b/www-client/firefox/firefox-115.16.1-r1.ebuild
index 02142c4cbddb..e01a588149b5 100644
--- a/www-client/firefox/firefox-115.16.1.ebuild
+++ b/www-client/firefox/firefox-115.16.1-r1.ebuild
@@ -5,10 +5,11 @@ EAPI=8
FIREFOX_PATCHSET="firefox-115esr-patches-13.tar.xz"
-LLVM_MAX_SLOT=18
+LLVM_COMPAT=(17 18)
PYTHON_COMPAT=( python3_{10..11} )
PYTHON_REQ_USE="ncurses,sqlite,ssl"
+RUST_NEEDS_LLVM=1
WANT_AUTOCONF="2.1"
@@ -37,8 +38,8 @@ 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 \
- optfeature pax-utils python-any-r1 readme.gentoo-r1 toolchain-funcs virtualx xdg
+inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info llvm-r1 multiprocessing \
+ optfeature pax-utils python-any-r1 readme.gentoo-r1 rust toolchain-funcs virtualx xdg
MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
@@ -51,7 +52,7 @@ PATCH_URIS=(
)
DESCRIPTION="Firefox Web Browser"
-HOMEPAGE="https://www.mozilla.com/firefox"
+HOMEPAGE="https://www.mozilla.org/firefox"
SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz
${PATCH_URIS[@]}"
S="${WORKDIR}/${PN}-${PV%_*}"
@@ -77,57 +78,20 @@ FF_ONLY_DEPEND="!www-client/firefox:0
screencast? ( media-video/pipewire:= )
selinux? ( sec-policy/selinux-mozilla )"
BDEPEND="${PYTHON_DEPS}
- || (
- (
- sys-devel/clang:18
- sys-devel/llvm:18
- clang? (
- sys-devel/lld:18
- virtual/rust:0/llvm-18
- pgo? ( =sys-libs/compiler-rt-sanitizers-18*[profile] )
- )
- )
- (
- sys-devel/clang:17
- sys-devel/llvm:17
- clang? (
- sys-devel/lld:17
- virtual/rust:0/llvm-17
- pgo? ( =sys-libs/compiler-rt-sanitizers-17*[profile] )
- )
- )
- (
- sys-devel/clang:16
- sys-devel/llvm:16
- clang? (
- sys-devel/lld:16
- virtual/rust:0/llvm-16
- pgo? ( =sys-libs/compiler-rt-sanitizers-16*[profile] )
- )
- )
- (
- sys-devel/clang:15
- sys-devel/llvm:15
- clang? (
- sys-devel/lld:15
- virtual/rust:0/llvm-15
- pgo? ( =sys-libs/compiler-rt-sanitizers-15*[profile] )
- )
+ $(llvm_gen_dep '
+ sys-devel/clang:${LLVM_SLOT}
+ sys-devel/llvm:${LLVM_SLOT}
+ clang? (
+ sys-devel/lld:${LLVM_SLOT}
)
- )
+ pgo? ( sys-libs/compiler-rt-sanitizers:${LLVM_SLOT}[profile] )
+ ')
app-alternatives/awk
app-arch/unzip
app-arch/zip
>=dev-util/cbindgen-0.24.3
net-libs/nodejs
virtual/pkgconfig
- !clang? ( virtual/rust )
- !elibc_glibc? (
- || (
- dev-lang/rust
- <dev-lang/rust-bin-1.73
- )
- )
amd64? ( >=dev-lang/nasm-2.14 )
x86? ( >=dev-lang/nasm-2.14 )
pgo? (
@@ -249,11 +213,6 @@ llvm_check_deps() {
return 1
fi
- if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then
- einfo "virtual/rust:0/llvm-${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}*[profile]" ; then
einfo "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing!"
@@ -537,7 +496,8 @@ pkg_setup() {
check-reqs_pkg_setup
- llvm_pkg_setup
+ llvm-r1_pkg_setup
+ rust_pkg_setup
if use clang && use lto && tc-ld-is-lld ; then
local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }')
diff --git a/www-client/firefox/firefox-128.3.1.ebuild b/www-client/firefox/firefox-128.3.1-r1.ebuild
index 22d0a2570ee5..6ab88f43f63d 100644
--- a/www-client/firefox/firefox-128.3.1.ebuild
+++ b/www-client/firefox/firefox-128.3.1-r1.ebuild
@@ -10,6 +10,10 @@ LLVM_COMPAT=( 17 18 )
PYTHON_COMPAT=( python3_{10..12} )
PYTHON_REQ_USE="ncurses,sqlite,ssl"
+RUST_NEEDS_LLVM=1
+RUST_MIN_VER=1.77.1
+
+
WANT_AUTOCONF="2.1"
VIRTUALX_REQUIRED="manual"
@@ -30,10 +34,10 @@ fi
if [[ -n ${MOZ_ESR} ]] ; then
# ESR releases have slightly different version numbers
MOZ_PV="${MOZ_PV}esr"
- HOMEPAGE="https://www.mozilla.com/firefox https://www.mozilla.org/firefox/enterprise/"
+ HOMEPAGE="https://www.mozilla.org/firefox https://www.mozilla.org/firefox/enterprise/"
SLOT="esr"
else
- HOMEPAGE="https://www.mozilla.com/firefox"
+ HOMEPAGE="https://www.mozilla.org/firefox"
SLOT="rapid"
fi
@@ -43,7 +47,7 @@ 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-r1 multiprocessing \
- optfeature pax-utils python-any-r1 readme.gentoo-r1 toolchain-funcs virtualx xdg
+ optfeature pax-utils python-any-r1 readme.gentoo-r1 rust toolchain-funcs virtualx xdg
MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
@@ -83,7 +87,6 @@ BDEPEND="${PYTHON_DEPS}
sys-devel/llvm:${LLVM_SLOT}
clang? (
sys-devel/lld:${LLVM_SLOT}
- virtual/rust:0/llvm-${LLVM_SLOT}
)
pgo? ( sys-libs/compiler-rt-sanitizers:${LLVM_SLOT}[profile] )
')
@@ -93,8 +96,6 @@ BDEPEND="${PYTHON_DEPS}
>=dev-util/cbindgen-0.26.0
net-libs/nodejs
virtual/pkgconfig
- !clang? ( >=virtual/rust-1.76 )
- !elibc_glibc? ( dev-lang/rust )
amd64? ( >=dev-lang/nasm-2.14 )
x86? ( >=dev-lang/nasm-2.14 )
pgo? (
@@ -220,10 +221,6 @@ llvm_check_deps() {
return 1
fi
- if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then
- einfo "virtual/rust:0/llvm-${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}*[profile]" ; then
diff --git a/www-client/firefox/firefox-128.4.0.ebuild b/www-client/firefox/firefox-128.4.0-r1.ebuild
index 2bba7a648bda..f0293ac98385 100644
--- a/www-client/firefox/firefox-128.4.0.ebuild
+++ b/www-client/firefox/firefox-128.4.0-r1.ebuild
@@ -10,6 +10,11 @@ LLVM_COMPAT=( 17 18 19 )
PYTHON_COMPAT=( python3_{10..12} )
PYTHON_REQ_USE="ncurses,sqlite,ssl"
+# This will also filter rust versions that don't match LLVM_COMPAT in the non-clang path; this is fine.
+RUST_NEEDS_LLVM=1
+# If not building with clang we need at least rust 1.76
+RUST_MIN_VER=1.77.1
+
WANT_AUTOCONF="2.1"
VIRTUALX_REQUIRED="manual"
@@ -30,10 +35,10 @@ fi
if [[ -n ${MOZ_ESR} ]] ; then
# ESR releases have slightly different version numbers
MOZ_PV="${MOZ_PV}esr"
- HOMEPAGE="https://www.mozilla.com/firefox https://www.mozilla.org/firefox/enterprise/"
+ HOMEPAGE="https://www.mozilla.org/firefox https://www.mozilla.org/firefox/enterprise/"
SLOT="esr"
else
- HOMEPAGE="https://www.mozilla.com/firefox"
+ HOMEPAGE="https://www.mozilla.org/firefox"
SLOT="rapid"
fi
@@ -43,7 +48,7 @@ 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-r1 multiprocessing \
- optfeature pax-utils python-any-r1 readme.gentoo-r1 toolchain-funcs virtualx xdg
+ optfeature pax-utils python-any-r1 readme.gentoo-r1 rust toolchain-funcs virtualx xdg
MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
@@ -62,7 +67,7 @@ S="${WORKDIR}/${PN}-${PV%_*}"
LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86"
-IUSE="clang dbus debug eme-free hardened hwaccel jack +jumbo-build libproxy lto openh264 pgo"
+IUSE="clang dbus debug eme-free hardened hwaccel jack +jumbo-build libproxy openh264 pgo"
IUSE+=" pulseaudio selinux sndio +system-av1 +system-harfbuzz +system-icu +system-jpeg"
IUSE+=" +system-libevent +system-libvpx system-png +system-webp +telemetry wayland wifi +X"
@@ -71,7 +76,6 @@ IUSE+=" +gmp-autoupdate gnome-shell"
REQUIRED_USE="|| ( X wayland )
debug? ( !system-av1 )
- pgo? ( lto )
wayland? ( dbus )
wifi? ( dbus )"
@@ -83,7 +87,6 @@ BDEPEND="${PYTHON_DEPS}
sys-devel/llvm:${LLVM_SLOT}
clang? (
sys-devel/lld:${LLVM_SLOT}
- virtual/rust:0/llvm-${LLVM_SLOT}
)
pgo? ( sys-libs/compiler-rt-sanitizers:${LLVM_SLOT}[profile] )
')
@@ -93,8 +96,6 @@ BDEPEND="${PYTHON_DEPS}
>=dev-util/cbindgen-0.26.0
net-libs/nodejs
virtual/pkgconfig
- !clang? ( >=virtual/rust-1.76 )
- !elibc_glibc? ( dev-lang/rust )
amd64? ( >=dev-lang/nasm-2.14 )
x86? ( >=dev-lang/nasm-2.14 )
pgo? (
@@ -220,11 +221,6 @@ llvm_check_deps() {
return 1
fi
- if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then
- einfo "virtual/rust:0/llvm-${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}*[profile]" ; then
einfo "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing!" >&2
@@ -447,7 +443,7 @@ pkg_pretend() {
fi
# Ensure we have enough disk space to compile
- if use pgo || use lto || use debug ; then
+ if use pgo || tc-is-lto || use debug ; then
CHECKREQS_DISK_BUILD="13500M"
else
CHECKREQS_DISK_BUILD="6600M"
@@ -458,15 +454,34 @@ pkg_pretend() {
}
pkg_setup() {
+
+ # Get LTO from environment; export after this phase for use in src_configure (etc)
+ use_lto=no
+
if [[ ${MERGE_TYPE} != binary ]] ; then
+
+ if tc-is-lto; then
+ use_lto=yes
+ # LTO is handled via configure
+ # -Werror=lto-type-mismatch -Werror=odr are going to fail with GCC,
+ # bmo#1516758, bgo#942288
+ filter-lto
+ filter-flags -Werror=lto-type-mismatch -Werror=odr
+ fi
+
if use pgo ; then
+ if [[ ${use_lto} == "no" ]]; then
+ elog "Building ${PN} with USE=pgo requires LTO, however this was not detected in your environment."
+ elog "Forcing LTO, however it is recommended to enable LTO explicitly."
+ use_lto=yes
+ fi
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
+ if use pgo || [[ ${use_lto} == "yes" ]] || use debug ; then
CHECKREQS_DISK_BUILD="13500M"
else
CHECKREQS_DISK_BUILD="6400M"
@@ -475,8 +490,9 @@ pkg_setup() {
check-reqs_pkg_setup
llvm-r1_pkg_setup
+ rust_pkg_setup
- if use clang && use lto && tc-ld-is-lld ; then
+ if use clang && [[ ${use_lto} == "yes" ]] && tc-ld-is-lld ; 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!"
@@ -490,7 +506,7 @@ pkg_setup() {
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"
+ eerror " - Build ${CATEGORY}/${PN} without lto"
eerror " - Rebuild lld with llvm that was used to build rust (may need to rebuild the whole "
eerror " llvm/clang/lld/rust chain depending on your @world updates)"
die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!"
@@ -551,6 +567,8 @@ pkg_setup() {
export LC_ALL=C
fi
+ export use_lto
+
CONFIG_CHECK="~SECCOMP"
WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to play DRM-protected content."
linux-info_pkg_setup
@@ -574,7 +592,7 @@ src_unpack() {
}
src_prepare() {
- if use lto; then
+ if [[ ${use_lto} == "yes" ]]; then
rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die
fi
@@ -904,13 +922,7 @@ src_configure() {
mozconfig_add_options_ac '+x11' --enable-default-toolkit=cairo-gtk3-x11-only
fi
- # LTO is handled via configure.
- # -Werror=lto-type-mismatch -Werror=odr are going to fail with GCC,
- # bmo#1516758, bgo#942288
- filter-lto
- filter-flags -Werror=lto-type-mismatch -Werror=odr
-
- if use lto ; then
+ if [[ ${use_lto} == "yes" ]]; then
if use clang ; then
# Upstream only supports lld or mold when using clang.
if tc-ld-is-mold ; then
@@ -1085,7 +1097,7 @@ src_configure() {
src_compile() {
local virtx_cmd=
- if tc-ld-is-mold && use lto; then
+ if tc-ld-is-mold && [[ ${use_lto} == "yes" ]]; then
# increase ulimit with mold+lto, bugs #892641, #907485
if ! ulimit -n 16384 1>/dev/null 2>&1 ; then
ewarn "Unable to modify ulimits - building with mold+lto might fail due to low ulimit -n resources."
diff --git a/www-client/firefox/firefox-131.0.3.ebuild b/www-client/firefox/firefox-131.0.3-r1.ebuild
index e746e07abc33..0ce5be76b3ca 100644
--- a/www-client/firefox/firefox-131.0.3.ebuild
+++ b/www-client/firefox/firefox-131.0.3-r1.ebuild
@@ -10,6 +10,11 @@ LLVM_COMPAT=( 17 18 19 )
PYTHON_COMPAT=( python3_{10..12} )
PYTHON_REQ_USE="ncurses,sqlite,ssl"
+# This will also filter rust versions that don't match LLVM_COMPAT in the non-clang path; this is fine.
+RUST_NEEDS_LLVM=1
+# If not building with clang we need at least rust 1.76
+RUST_MIN_VER=1.77.1
+
WANT_AUTOCONF="2.1"
VIRTUALX_REQUIRED="manual"
@@ -30,10 +35,10 @@ fi
if [[ -n ${MOZ_ESR} ]] ; then
# ESR releases have slightly different version numbers
MOZ_PV="${MOZ_PV}esr"
- HOMEPAGE="https://www.mozilla.com/firefox https://www.mozilla.org/firefox/enterprise/"
+ HOMEPAGE="https://www.mozilla.org/firefox https://www.mozilla.org/firefox/enterprise/"
SLOT="esr"
else
- HOMEPAGE="https://www.mozilla.com/firefox"
+ HOMEPAGE="https://www.mozilla.org/firefox"
SLOT="rapid"
fi
@@ -43,7 +48,7 @@ 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-r1 multiprocessing \
- optfeature pax-utils python-any-r1 readme.gentoo-r1 toolchain-funcs virtualx xdg
+ optfeature pax-utils python-any-r1 readme.gentoo-r1 rust toolchain-funcs virtualx xdg
MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
@@ -86,7 +91,6 @@ BDEPEND="${PYTHON_DEPS}
sys-devel/llvm:${LLVM_SLOT}
clang? (
sys-devel/lld:${LLVM_SLOT}
- virtual/rust:0/llvm-${LLVM_SLOT}
)
pgo? ( sys-libs/compiler-rt-sanitizers:${LLVM_SLOT}[profile] )
')
@@ -96,8 +100,6 @@ BDEPEND="${PYTHON_DEPS}
>=dev-util/cbindgen-0.26.0
net-libs/nodejs
virtual/pkgconfig
- !clang? ( >=virtual/rust-1.76 )
- !elibc_glibc? ( dev-lang/rust )
amd64? ( >=dev-lang/nasm-2.14 )
x86? ( >=dev-lang/nasm-2.14 )
pgo? (
@@ -224,11 +226,6 @@ llvm_check_deps() {
return 1
fi
- if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then
- einfo "virtual/rust:0/llvm-${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}*[profile]" ; then
einfo "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing!" >&2
@@ -451,7 +448,7 @@ pkg_pretend() {
fi
# Ensure we have enough disk space to compile
- if use pgo || use lto || use debug ; then
+ if use pgo || tc-is-lto || use debug ; then
CHECKREQS_DISK_BUILD="13500M"
else
CHECKREQS_DISK_BUILD="6600M"
@@ -462,15 +459,33 @@ pkg_pretend() {
}
pkg_setup() {
+ # Get LTO from environment; export after this phase for use in src_configure (etc)
+ use_lto=no
+
if [[ ${MERGE_TYPE} != binary ]] ; then
+
+ if tc-is-lto; then
+ use_lto=yes
+ # LTO is handled via configure
+ # -Werror=lto-type-mismatch -Werror=odr are going to fail with GCC,
+ # bmo#1516758, bgo#942288
+ filter-lto
+ filter-flags -Werror=lto-type-mismatch -Werror=odr
+ fi
+
if use pgo ; then
+ if [[ ${use_lto} == "no" ]] ; then
+ elog "Building ${PN} with USE=pgo requires LTO, however this was not detected in your environment."
+ elog "Forcing LTO, however it is recommended to enable LTO explicitly."
+ use_lto=yes
+ fi
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
+ if [[ "${use_lto}" == "yes" ]] || use pgo || use debug ; then
CHECKREQS_DISK_BUILD="13500M"
else
CHECKREQS_DISK_BUILD="6400M"
@@ -479,25 +494,12 @@ pkg_setup() {
check-reqs_pkg_setup
llvm-r1_pkg_setup
+ rust_pkg_setup
- if use clang && use lto && tc-ld-is-lld ; 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!"
-
- 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!"
-
- 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"
- eerror " - Rebuild lld with llvm that was used to build rust (may need to rebuild the whole "
- eerror " llvm/clang/lld/rust chain depending on your @world updates)"
- die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!"
+ if [[ ${use_lto} == "yes" ]] && use clang; then
+ if ! (tc-ld-is-lld || tc-ld-is-mold) ; then
+ eerror "Building ${PN} with LTO and Clang requires the sys-devel/lld or sys-devel/mold linker!"
+ die "Please fix your toolchain configuration."
fi
fi
@@ -555,6 +557,8 @@ pkg_setup() {
export LC_ALL=C
fi
+ export use_lto
+
CONFIG_CHECK="~SECCOMP"
WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to play DRM-protected content."
linux-info_pkg_setup
@@ -578,7 +582,7 @@ src_unpack() {
}
src_prepare() {
- if use lto; then
+ if [[ "${use_lto}" == "yes" ]]; then
rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die
fi
@@ -900,7 +904,7 @@ src_configure() {
# LTO is handled via configure
filter-lto
- if use lto ; then
+ if [[ "${use_lto}" == "yes" ]] ; then
if use clang ; then
# Upstream only supports lld or mold when using clang.
if tc-ld-is-mold ; then
@@ -1087,7 +1091,7 @@ src_configure() {
src_compile() {
local virtx_cmd=
- if tc-ld-is-mold && use lto; then
+ if tc-ld-is-mold && [[ ${use_lto} == "yes" ]]; then
# increase ulimit with mold+lto, bugs #892641, #907485
if ! ulimit -n 16384 1>/dev/null 2>&1 ; then
ewarn "Unable to modify ulimits - building with mold+lto might fail due to low ulimit -n resources."
diff --git a/www-client/firefox/firefox-132.0.ebuild b/www-client/firefox/firefox-132.0-r1.ebuild
index 8cfa5b1c3a92..2987f1489cb0 100644
--- a/www-client/firefox/firefox-132.0.ebuild
+++ b/www-client/firefox/firefox-132.0-r1.ebuild
@@ -6,6 +6,10 @@ EAPI=8
FIREFOX_PATCHSET="firefox-132-patches-01.tar.xz"
LLVM_COMPAT=( 17 18 19 )
+# This will also filter rust versions that don't match LLVM_COMPAT in the non-clang path; this is fine.
+RUST_NEEDS_LLVM=1
+# If not building with clang we need at least rust 1.76
+RUST_MIN_VER=1.77.1
PYTHON_COMPAT=( python3_{10..12} )
PYTHON_REQ_USE="ncurses,sqlite,ssl"
@@ -30,10 +34,10 @@ fi
if [[ -n ${MOZ_ESR} ]] ; then
# ESR releases have slightly different version numbers
MOZ_PV="${MOZ_PV}esr"
- HOMEPAGE="https://www.mozilla.com/firefox https://www.mozilla.org/firefox/enterprise/"
+ HOMEPAGE="https://www.mozilla.org/firefox https://www.mozilla.org/firefox/enterprise/"
SLOT="esr"
else
- HOMEPAGE="https://www.mozilla.com/firefox"
+ HOMEPAGE="https://www.mozilla.org/firefox"
SLOT="rapid"
fi
@@ -43,7 +47,7 @@ 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-r1 multiprocessing \
- optfeature pax-utils python-any-r1 readme.gentoo-r1 toolchain-funcs virtualx xdg
+ optfeature pax-utils python-any-r1 rust readme.gentoo-r1 toolchain-funcs virtualx xdg
MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
@@ -62,7 +66,7 @@ S="${WORKDIR}/${PN}-${PV%_*}"
LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
-IUSE="clang dbus debug eme-free hardened hwaccel jack +jumbo-build libproxy lto openh264 pgo"
+IUSE="clang dbus debug eme-free hardened hwaccel jack +jumbo-build libproxy openh264 pgo"
IUSE+=" pulseaudio sndio selinux +system-av1 +system-harfbuzz +system-icu +system-jpeg"
IUSE+=" +system-jpeg +system-libevent +system-libvpx system-png +system-webp +telemetry valgrind"
IUSE+=" wayland wifi +X"
@@ -74,9 +78,9 @@ IUSE+=" +gmp-autoupdate gnome-shell"
REQUIRED_USE="|| ( X wayland )
debug? ( !system-av1 )
!jumbo-build? ( clang )
- pgo? ( lto )
wayland? ( dbus )
- wifi? ( dbus )"
+ wifi? ( dbus )
+"
FF_ONLY_DEPEND="!www-client/firefox:0
selinux? ( sec-policy/selinux-mozilla )"
@@ -86,7 +90,6 @@ BDEPEND="${PYTHON_DEPS}
sys-devel/llvm:${LLVM_SLOT}
clang? (
sys-devel/lld:${LLVM_SLOT}
- virtual/rust:0/llvm-${LLVM_SLOT}
)
pgo? ( sys-libs/compiler-rt-sanitizers:${LLVM_SLOT}[profile] )
')
@@ -96,8 +99,6 @@ BDEPEND="${PYTHON_DEPS}
>=dev-util/cbindgen-0.26.0
net-libs/nodejs
virtual/pkgconfig
- !clang? ( >=virtual/rust-1.76 )
- !elibc_glibc? ( dev-lang/rust )
amd64? ( >=dev-lang/nasm-2.14 )
x86? ( >=dev-lang/nasm-2.14 )
pgo? (
@@ -224,11 +225,6 @@ llvm_check_deps() {
return 1
fi
- if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then
- einfo "virtual/rust:0/llvm-${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}*[profile]" ; then
einfo "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing!" >&2
@@ -451,7 +447,7 @@ pkg_pretend() {
fi
# Ensure we have enough disk space to compile
- if use pgo || use lto || use debug ; then
+ if use pgo || tc-is-lto || use debug ; then
CHECKREQS_DISK_BUILD="13500M"
else
CHECKREQS_DISK_BUILD="6600M"
@@ -462,15 +458,34 @@ pkg_pretend() {
}
pkg_setup() {
+
+ # Get LTO from environment; export after this phase for use in src_configure (etc)
+ use_lto=no
+
if [[ ${MERGE_TYPE} != binary ]] ; then
+
+ if tc-is-lto; then
+ use_lto=yes
+ # LTO is handled via configure
+ # -Werror=lto-type-mismatch -Werror=odr are going to fail with GCC,
+ # bmo#1516758, bgo#942288
+ filter-lto
+ filter-flags -Werror=lto-type-mismatch -Werror=odr
+ fi
+
if use pgo ; then
+ if [[ ${use_lto} == "no" ]] ; then
+ elog "Building ${PN} with USE=pgo requires LTO, however this was not detected in your environment."
+ elog "Forcing LTO, however it is recommended to enable LTO explicitly."
+ use_lto=yes
+ fi
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
+ if [[ ${use_lto} == "yes" ]] || use pgo || use debug ; then
CHECKREQS_DISK_BUILD="13500M"
else
CHECKREQS_DISK_BUILD="6400M"
@@ -479,25 +494,12 @@ pkg_setup() {
check-reqs_pkg_setup
llvm-r1_pkg_setup
+ rust_pkg_setup
- if use clang && use lto && tc-ld-is-lld ; 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!"
-
- 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!"
-
- 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"
- eerror " - Rebuild lld with llvm that was used to build rust (may need to rebuild the whole "
- eerror " llvm/clang/lld/rust chain depending on your @world updates)"
- die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!"
+ if [[ ${use_lto} == "yes" ]] && use clang; then
+ if ! (tc-ld-is-lld || tc-ld-is-mold) ; then
+ eerror "Building ${PN} with LTO and Clang requires the sys-devel/lld or sys-devel/mold linker!"
+ die "Please fix your toolchain configuration."
fi
fi
@@ -555,6 +557,8 @@ pkg_setup() {
export LC_ALL=C
fi
+ export use_lto
+
CONFIG_CHECK="~SECCOMP"
WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to play DRM-protected content."
linux-info_pkg_setup
@@ -578,7 +582,7 @@ src_unpack() {
}
src_prepare() {
- if use lto; then
+ if [[ ${use_lto} == "yes" ]]; then
rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die
fi
@@ -897,13 +901,7 @@ src_configure() {
mozconfig_add_options_ac '+x11' --enable-default-toolkit=cairo-gtk3-x11-only
fi
- # LTO is handled via configure
- # -Werror=lto-type-mismatch -Werror=odr are going to fail with GCC,
- # bmo#1516758, bgo#942288
- filter-lto
- filter-flags -Werror=lto-type-mismatch -Werror=odr
-
- if use lto ; then
+ if [[ ${use_lto} == "yes" ]] ; then
if use clang ; then
# Upstream only supports lld or mold when using clang.
if tc-ld-is-mold ; then
@@ -1086,7 +1084,7 @@ src_configure() {
src_compile() {
local virtx_cmd=
- if tc-ld-is-mold && use lto; then
+ if [[ ${use_lto} == "yes" ]] && tc-ld-is-mold; then
# increase ulimit with mold+lto, bugs #892641, #907485
if ! ulimit -n 16384 1>/dev/null 2>&1 ; then
ewarn "Unable to modify ulimits - building with mold+lto might fail due to low ulimit -n resources."
diff --git a/www-client/firefox/firefox-132.0.1.ebuild b/www-client/firefox/firefox-132.0.1-r1.ebuild
index f9ec87f960b8..6f0ec147305c 100644
--- a/www-client/firefox/firefox-132.0.1.ebuild
+++ b/www-client/firefox/firefox-132.0.1-r1.ebuild
@@ -6,6 +6,10 @@ EAPI=8
FIREFOX_PATCHSET="firefox-132-patches-02.tar.xz"
LLVM_COMPAT=( 17 18 19 )
+# This will also filter rust versions that don't match LLVM_COMPAT in the non-clang path; this is fine.
+RUST_NEEDS_LLVM=1
+# If not building with clang we need at least rust 1.76
+RUST_MIN_VER=1.77.1
PYTHON_COMPAT=( python3_{10..12} )
PYTHON_REQ_USE="ncurses,sqlite,ssl"
@@ -30,10 +34,10 @@ fi
if [[ -n ${MOZ_ESR} ]] ; then
# ESR releases have slightly different version numbers
MOZ_PV="${MOZ_PV}esr"
- HOMEPAGE="https://www.mozilla.com/firefox https://www.mozilla.org/firefox/enterprise/"
+ HOMEPAGE="https://www.mozilla.org/firefox https://www.mozilla.org/firefox/enterprise/"
SLOT="esr"
else
- HOMEPAGE="https://www.mozilla.com/firefox"
+ HOMEPAGE="https://www.mozilla.org/firefox"
SLOT="rapid"
fi
@@ -43,7 +47,7 @@ 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-r1 multiprocessing \
- optfeature pax-utils python-any-r1 readme.gentoo-r1 toolchain-funcs virtualx xdg
+ optfeature pax-utils python-any-r1 rust readme.gentoo-r1 toolchain-funcs virtualx xdg
MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
@@ -62,7 +66,7 @@ S="${WORKDIR}/${PN}-${PV%_*}"
LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
-IUSE="clang dbus debug eme-free hardened hwaccel jack +jumbo-build libproxy lto openh264 pgo"
+IUSE="clang dbus debug eme-free hardened hwaccel jack +jumbo-build libproxy openh264 pgo"
IUSE+=" pulseaudio sndio selinux +system-av1 +system-harfbuzz +system-icu +system-jpeg"
IUSE+=" +system-jpeg +system-libevent +system-libvpx system-png +system-webp +telemetry valgrind"
IUSE+=" wayland wifi +X"
@@ -72,9 +76,9 @@ IUSE+=" +gmp-autoupdate gnome-shell"
REQUIRED_USE="|| ( X wayland )
debug? ( !system-av1 )
- pgo? ( lto )
wayland? ( dbus )
- wifi? ( dbus )"
+ wifi? ( dbus )
+"
FF_ONLY_DEPEND="!www-client/firefox:0
selinux? ( sec-policy/selinux-mozilla )"
@@ -84,7 +88,6 @@ BDEPEND="${PYTHON_DEPS}
sys-devel/llvm:${LLVM_SLOT}
clang? (
sys-devel/lld:${LLVM_SLOT}
- virtual/rust:0/llvm-${LLVM_SLOT}
)
pgo? ( sys-libs/compiler-rt-sanitizers:${LLVM_SLOT}[profile] )
')
@@ -94,8 +97,6 @@ BDEPEND="${PYTHON_DEPS}
>=dev-util/cbindgen-0.26.0
net-libs/nodejs
virtual/pkgconfig
- !clang? ( >=virtual/rust-1.76 )
- !elibc_glibc? ( dev-lang/rust )
amd64? ( >=dev-lang/nasm-2.14 )
x86? ( >=dev-lang/nasm-2.14 )
pgo? (
@@ -222,11 +223,6 @@ llvm_check_deps() {
return 1
fi
- if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then
- einfo "virtual/rust:0/llvm-${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}*[profile]" ; then
einfo "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing!" >&2
@@ -449,7 +445,7 @@ pkg_pretend() {
fi
# Ensure we have enough disk space to compile
- if use pgo || use lto || use debug ; then
+ if use pgo || tc-is-lto || use debug ; then
CHECKREQS_DISK_BUILD="13500M"
else
CHECKREQS_DISK_BUILD="6600M"
@@ -460,15 +456,34 @@ pkg_pretend() {
}
pkg_setup() {
+
+ # Get LTO from environment; export after this phase for use in src_configure (etc)
+ use_lto=no
+
if [[ ${MERGE_TYPE} != binary ]] ; then
+
+ if tc-is-lto; then
+ use_lto=yes
+ # LTO is handled via configure
+ # -Werror=lto-type-mismatch -Werror=odr are going to fail with GCC,
+ # bmo#1516758, bgo#942288
+ filter-lto
+ filter-flags -Werror=lto-type-mismatch -Werror=odr
+ fi
+
if use pgo ; then
+ if [[ ${use_lto} == "no" ]] ; then
+ elog "Building ${PN} with USE=pgo requires LTO, however this was not detected in your environment."
+ elog "Forcing LTO, however it is recommended to enable LTO explicitly."
+ use_lto=yes
+ fi
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
+ if [[ ${use_lto} == "yes" ]] || use pgo || use debug ; then
CHECKREQS_DISK_BUILD="13500M"
else
CHECKREQS_DISK_BUILD="6400M"
@@ -477,25 +492,12 @@ pkg_setup() {
check-reqs_pkg_setup
llvm-r1_pkg_setup
+ rust_pkg_setup
- if use clang && use lto && tc-ld-is-lld ; 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!"
-
- 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!"
-
- 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"
- eerror " - Rebuild lld with llvm that was used to build rust (may need to rebuild the whole "
- eerror " llvm/clang/lld/rust chain depending on your @world updates)"
- die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!"
+ if [[ ${use_lto} == "yes" ]] && use clang; then
+ if ! (tc-ld-is-lld || tc-ld-is-mold) ; then
+ eerror "Building ${PN} with LTO and Clang requires the sys-devel/lld or sys-devel/mold linker!"
+ die "Please fix your toolchain configuration."
fi
fi
@@ -553,6 +555,8 @@ pkg_setup() {
export LC_ALL=C
fi
+ export use_lto
+
CONFIG_CHECK="~SECCOMP"
WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to play DRM-protected content."
linux-info_pkg_setup
@@ -576,7 +580,7 @@ src_unpack() {
}
src_prepare() {
- if use lto; then
+ if [[ ${use_lto} == "yes" ]]; then
rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die
fi
@@ -895,13 +899,7 @@ src_configure() {
mozconfig_add_options_ac '+x11' --enable-default-toolkit=cairo-gtk3-x11-only
fi
- # LTO is handled via configure
- # -Werror=lto-type-mismatch -Werror=odr are going to fail with GCC,
- # bmo#1516758, bgo#942288
- filter-lto
- filter-flags -Werror=lto-type-mismatch -Werror=odr
-
- if use lto ; then
+ if [[ ${use_lto} == "yes" ]] ; then
if use clang ; then
# Upstream only supports lld or mold when using clang.
if tc-ld-is-mold ; then
@@ -1084,7 +1082,7 @@ src_configure() {
src_compile() {
local virtx_cmd=
- if tc-ld-is-mold && use lto; then
+ if [[ ${use_lto} == "yes" ]] && tc-ld-is-mold; then
# increase ulimit with mold+lto, bugs #892641, #907485
if ! ulimit -n 16384 1>/dev/null 2>&1 ; then
ewarn "Unable to modify ulimits - building with mold+lto might fail due to low ulimit -n resources."
diff --git a/www-client/seamonkey/Manifest b/www-client/seamonkey/Manifest
index 6af15df5743b..8c803ac6ea9b 100644
--- a/www-client/seamonkey/Manifest
+++ b/www-client/seamonkey/Manifest
@@ -6,6 +6,6 @@ DIST seamonkey-2.53.18.2.source.tar.xz 252310768 BLAKE2B e10ad79a25d5b6c0a6d1d89
DIST seamonkey-2.53.19-patches.tar.gz 172606 BLAKE2B c634f536d1fb6d6be76f246ac76c0656297644c8993a55cc7f809e3a3577c391b563dea9f01d8cd4b35fc0042c61a9019466d951eaced35656c44032cca44a68 SHA512 9b895e0c592609da109ea16c45466e3d978907a92a3f6eed12f9849ea7258212876b07d3fee8fffbc72a0b168722369ccef44c550dea606799db4498ba9c292f
DIST seamonkey-2.53.19.source-l10n.tar.xz 13430044 BLAKE2B d100d077655353317a5416417008289671b1008ae1a533b7b2dff9f4413b146c5fe94b2b53d88291186c4487c06928da973fd900deb8ece317b189a4dba9f470 SHA512 c5b6e3ca0b5d43b230aa528cf04a3264b3e3aa40dc16ba29fe4f2668f97cdaed2edd5fc1ad5afe6203088a3f80b7557ed702c75c496aee69396bad8da2f27545
DIST seamonkey-2.53.19.source.tar.xz 249145892 BLAKE2B 2446c89a9d6aa98a47c71a21a317844c7225f1a633ba59ae6e00aa58da8f5d624c03a9d452c49d3d1bea5c552fcce47a5f661b86ae60d4c3d67bf4de10f92d38 SHA512 fda052d7fb21837cdc79df80eec64f6c973b3fc3fea2ce3554115ba9b623fdf998dd461d5932562c088d2204c4da88e53f90f24e914a6d98382334bba3218e88
-EBUILD seamonkey-2.53.18.2-r1.ebuild 16967 BLAKE2B 9270b34d9273a0fe24111bcd4f5e5dbefacb9b7033ae1feb56f82c6f923f5f57c173b1176008ab92eb87b82d20660ead542f6e2f6285ef7ee43967e41fb3b4f7 SHA512 133aad9d78e861dec6be56287e94b601491bb38b8285e0f2507b39a25c3cda3ab2ddfc2a5cd6d22f3a4a329dd4c5dcaa445a5fab1527e74a6a591afa3a4db4a7
-EBUILD seamonkey-2.53.19.ebuild 16897 BLAKE2B c7d8827ebd5c238421d69512e03357b5978bd04dc53de33ded2a554fde4c6e1047931337441fd633f4f58a314fe06f3eea52c9ef89b8e6798f6b546d08caedba SHA512 c5a4df8567c834522242b57637954dc1b03fe487920f380d3113d1d970998701d325043f4db3a4cb0e89c2fb2ad6b26330a3aacdae300abd6914c9ce31593a04
+EBUILD seamonkey-2.53.18.2-r2.ebuild 16974 BLAKE2B 302a23c462eacc8f9afa70c96ab0144a23bd3be342117b55f7766d56621757997fb1141e6e0c6efe824c44304a9be750e8bcbd534e67ed4a390ad3d61c19506d SHA512 92bd92777869252d24dd347bf9f1919df3caf3c2036bf9b3a4e78962158d1836af96ccd4d761727cac66342269be2eb657c9f933ac3ebbc076d623e2d34f8820
+EBUILD seamonkey-2.53.19-r1.ebuild 16904 BLAKE2B 39ee2f97d406516f36def8cf078f839e3a93c7aa312d72fb7885179632b39157fb87ef01824a405123bca0dd5b6874c95033bf0c35cd5ea4ed470a9e8cd69275 SHA512 b83996430c4faedaa4e9401a9e0aae1d31201c16823f0fb82799be7001bbdba359accc49287d2be6489950c31f5fed960e1484f5222e80eea08dafc503ae2f1c
MISC metadata.xml 2182 BLAKE2B ee38b9fda8af84b2559c9ce96f7cb5caadb2835bc7151013dca9afd29a9c56526ea59c79fa7943d243317544a80a2fbaf8020441e9865463712b3d11e5cd7933 SHA512 c67988e076776ab7bad9730d3d54c9a5780d00bc282654cf14fef4f5957354880d9293e2db57bdb820ad2a0a06111fe121ea841d8c0bb1941e2781ee585914bb
diff --git a/www-client/seamonkey/seamonkey-2.53.18.2-r1.ebuild b/www-client/seamonkey/seamonkey-2.53.18.2-r2.ebuild
index f0d536cad6e9..4a35f691bde8 100644
--- a/www-client/seamonkey/seamonkey-2.53.18.2-r1.ebuild
+++ b/www-client/seamonkey/seamonkey-2.53.18.2-r2.ebuild
@@ -34,7 +34,7 @@ S="${WORKDIR}/${MY_MOZ_P}"
MOZ_GENERATE_LANGPACKS=1
MOZ_L10N_SOURCEDIR="${S}/${P}-l10n"
inherit autotools check-reqs desktop edos2unix flag-o-matic llvm-r1 mozcoreconf-v6 mozlinguas-v2 pax-utils \
- toolchain-funcs xdg-utils
+ rust toolchain-funcs xdg-utils
DESCRIPTION="Seamonkey Web Browser"
HOMEPAGE="https://www.seamonkey-project.org/"
@@ -61,7 +61,6 @@ BDEPEND="
sys-devel/llvm:${LLVM_SLOT}=
')
virtual/pkgconfig
- virtual/rust
amd64? ( >=dev-lang/yasm-1.1 )
lto? ( sys-devel/binutils[gold] )
x86? ( >=dev-lang/yasm-1.1 )
@@ -154,6 +153,7 @@ pkg_setup() {
llvm-r1_pkg_setup
einfo "Using LLVM slot ${LLVM_SLOT} to build." >&2
+ rust_pkg_setup
moz_pkgsetup
}
diff --git a/www-client/seamonkey/seamonkey-2.53.19.ebuild b/www-client/seamonkey/seamonkey-2.53.19-r1.ebuild
index 6e06f3bd6d4d..7c4e59bd5119 100644
--- a/www-client/seamonkey/seamonkey-2.53.19.ebuild
+++ b/www-client/seamonkey/seamonkey-2.53.19-r1.ebuild
@@ -37,7 +37,7 @@ S="${WORKDIR}/${MY_MOZ_P}"
MOZ_GENERATE_LANGPACKS=1
MOZ_L10N_SOURCEDIR="${S}/${P}-l10n"
inherit autotools check-reqs desktop edos2unix flag-o-matic llvm-r1 mozcoreconf-v6 mozlinguas-v2 pax-utils \
- toolchain-funcs xdg-utils
+ rust toolchain-funcs xdg-utils
LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
SLOT="0"
@@ -61,7 +61,6 @@ BDEPEND="
sys-devel/llvm:${LLVM_SLOT}=
')
virtual/pkgconfig
- virtual/rust
amd64? ( >=dev-lang/yasm-1.1 )
lto? ( sys-devel/binutils[gold] )
x86? ( >=dev-lang/yasm-1.1 )
@@ -155,6 +154,7 @@ pkg_setup() {
llvm-r1_pkg_setup
einfo "Using LLVM slot ${LLVM_SLOT} to build." >&2
+ rust_pkg_setup
moz_pkgsetup
}