From 59d772d9463f8cf6a145a677bedbf377a0625aff Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sat, 14 Dec 2024 02:02:08 +0000 Subject: gentoo auto-resync : 14:12:2024 - 02:02:07 --- www-client/Manifest.gz | Bin 6201 -> 6202 bytes www-client/chromium/Manifest | 6 +- www-client/chromium/chromium-133.0.6876.4.ebuild | 1464 --------------------- www-client/chromium/chromium-133.0.6888.2.ebuild | 1459 ++++++++++++++++++++ www-client/firefox-bin/Manifest | 100 ++ www-client/firefox-bin/firefox-bin-128.5.2.ebuild | 364 +++++ 6 files changed, 1926 insertions(+), 1467 deletions(-) delete mode 100644 www-client/chromium/chromium-133.0.6876.4.ebuild create mode 100644 www-client/chromium/chromium-133.0.6888.2.ebuild create mode 100644 www-client/firefox-bin/firefox-bin-128.5.2.ebuild (limited to 'www-client') diff --git a/www-client/Manifest.gz b/www-client/Manifest.gz index ba01cfd4e454..a4c8ee73f977 100644 Binary files a/www-client/Manifest.gz and b/www-client/Manifest.gz differ diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest index d2bca983e80a..88769ea3afa0 100644 --- a/www-client/chromium/Manifest +++ b/www-client/chromium/Manifest @@ -19,8 +19,8 @@ DIST chromium-131.0.6778.85-gentoo.tar.xz 4749434048 BLAKE2B 8addba3589566cc5029 DIST chromium-131.0.6778.85-testdata-gentoo.tar.xz 83176 BLAKE2B 1fa58c8b1e3b16b9076fdd0fe0c8a3e4d6761fc3f9433e160dc19f5bce989d949c4f458d56ba4aacd5ce5dae578a3b27c308e3a3c6ae51b95683b1bb97c7c651 SHA512 6d4f6e2afa8c7982518c69def5bf7392226ac4cf71725201908af5f8b0395d7e26f52a68ec9306c1ee6e2cd239ab24aa17b0228d40ef768cfba11d21ecd13102 DIST chromium-132.0.6834.46-linux-testdata.tar.xz 299805496 BLAKE2B e3a5ca8fe2d557ac4f2b731b30c9fbb781e362d5f62d09e93bb4c899f07a841be5467cacfc6c690fac599d9bbc4057e99a03702925fb62fffc206a57781cbb18 SHA512 0ff0cb4d5ce75b63583d003c6a6d9fca895cdeec7e67c65a75ff4468628fc5ffbacdbf9df250bb8a66419205c5ad1933f0f228e821d019d35973ce6ad3ca2b92 DIST chromium-132.0.6834.46-linux.tar.xz 2193310724 BLAKE2B edacfec054f9ebc51fed26aa20222f6a9c61f0c503484cbef4081d819d110465f661ae1fc18bb4cd0223ed7917a4d191af6cc8f32c8d0ff65e750408b62f5dd8 SHA512 2c161b71ce988d864ea5353221fc1b8eefbf8b26dc4e31c8312574b749e44d07a80f52fea18bf5c9e9f08c90fe724fb20c97963472883fb8a3b49482874878b8 -DIST chromium-133.0.6876.4-linux-testdata.tar.xz 299201056 BLAKE2B a6c7b96f48b39fae3479bbfffe551fe1956ab52dfea1dc865e3aec23db16071f26575877efd7ecf8639974c5d4b893cc9a8e36bb1bf71e6ca436cddb510af571 SHA512 db742ae44ae8d3f3e6005c43e24d20a822c8c94df4e080b18b13f06f845c4f8a0e50f9c4ade76ae6cca6486f42ec05df843c993fac74085063112cd2e35018be -DIST chromium-133.0.6876.4-linux.tar.xz 2219652820 BLAKE2B 4b021b5166c4d85466076b46fa6195c97822056a2c9eb1b6f827a380c762bc487dc7a049b08a48065a9f5e3c27fff3c20d6422e34139cba7ac473a69c6db93c1 SHA512 9e340db20199ba2b4dc3dc5a6e9393a793754d11841eac1eaf5e5a7f1886cbd20cdf8a586878514074801ba08aebc65e368b38c5649b514df1847ef8102d206d +DIST chromium-133.0.6888.2-linux-testdata.tar.xz 299227756 BLAKE2B ecf1a79034c9c06fcd667d812ae7ee4b05b60e9dc1a0db587c7d0c3af5ad8b787b1b885abcc27ec4a3cf89ec3038f686f1d37410109c4845e32c4dec9ead7af4 SHA512 fb37b91b243bc584da41f1be58932817dd757a2be0acfa01aafa23c15a53250934938ea8e51efb3f40d3fbcc12af20b7d13cc1364720a2d4cb977ea6ce432493 +DIST chromium-133.0.6888.2-linux.tar.xz 2286980464 BLAKE2B 747741f415ad00be3120cebd4a691a39f3f0374e57f57272700c366ba50d394359fb22fdc6a89f7ab41a49ff59f2c6c7e664aee1a003be75a4651dd1e642b39e SHA512 11e18014e9f4d3e7ff6b7c8789546a0d8f0d4a24b6fa413c1e10e6d911f4d81fa1c8b1803a9d5e7bf1f8243710c2ad0aa625b2ba6ca52ad9964e37d2b7851af7 DIST chromium-openpower-a85b64f07b.tar.bz2 387899 BLAKE2B b01fda2d64ce73068d1536a10cc0896f07a4b714cdb25698b1df8b3252baa0c21c4209b307cf1cb554854f6d0bfe3cd35e06aaa8d02ac5d409a119335084c324 SHA512 05eee81677e8766808441c939bee68e2e6c58ec91f471d88a40181d2eda78614a0a6d27d92ff8f9dda564d12f3451bace4ff2727594748c5c238a3533038019b DIST chromium-patches-130-2.tar.bz2 10151 BLAKE2B b46515a3e01153d8c4e5c3ee1f6e9f905265bf88b698d46c8ceed0f90d36a057b8bb30a860e8d934bf0b85f9c0a671bef2c9a00349228fa076b7aec37ff62ca0 SHA512 e1ecca666c3998ee285426751be3220a5b67a057f2c92b1f45c7b786efb8d0b0e1d49ba70471fa74155f79f22811d240af636f61007191756c9981b53d3b23de DIST chromium-patches-131-1.tar.bz2 4932 BLAKE2B 72006a6d751ae1207352547cdeef87f8cc9f9639283238da201d879c6fcd0f8bc499669cb030d8b4c2216fcd2730de46b0a071007b3d69a2bbdd22ba38bcd279 SHA512 11d7f861c007e9e28e5192fb354940180aea0e01e6e8ae77547e2dffd7b541b11f1acfe0fd0c8b6b4cbfc6c39ddfa79c8c08db42c1292ad329d49027d1406fc3 @@ -32,5 +32,5 @@ EBUILD chromium-130.0.6723.116-r1.ebuild 47304 BLAKE2B 90d2b03d081827702750209d0 EBUILD chromium-131.0.6778.139.ebuild 48174 BLAKE2B 3334883f18e281a8a6138864a6c9007a2dbaef572883c69867d4e0a1ea8e6702b6114edaa83a8ae6604b1576b8fadeaa90cfaba489d6569aa6d6267989e9f50f SHA512 81ee6873892fe0b2ab7d933e1c5203906858cbfa9a67081e1ba15fed1a7f1e8105cb495d60eb95c5e2c2de12bb64d75f35f33382881acd1495df9c525fe450d1 EBUILD chromium-131.0.6778.85.ebuild 48263 BLAKE2B 3c3403c2f0a007b7b13cc86a31073cc83fbd9b59169d07dd129f40080bda4eb5b6cbe70fada90ecec64f49a2b274e9c3fb4da4ee2951b2c8ed54aacd17773dd9 SHA512 d816c6191cd3fe93ed43f6191a4b91b1138e03326953c50c57f9ecaa24b650cc521f0f01e33ee9db0de0e0d66f48e4f9efa00e842b0766ffa4df1e2cfef1ee14 EBUILD chromium-132.0.6834.46.ebuild 48663 BLAKE2B e0d0b6004b3d005ef11044d8fc81a23a1689a8c8bff77c85fa842647e9f61c9ea18087cd2bed441002b7b1bf0a4b285b8facf4074af6044633e831897ad1811d SHA512 b1a89d50806711ce181e8bd7055170bbea23f5e57dad921567ef9c7009d7021dd8e9f363f1e3c2373e3310c0688a1187bcbaf067f6c6c3b886223364cb105fff -EBUILD chromium-133.0.6876.4.ebuild 50137 BLAKE2B 0bcbb4954503f07f2a2684efc30900e5e085cf6cf63826c49d0f8fcc04908ac6bb15fd74b6857a8f496b67def6c532cb83c60aa85ae754ec7ea35eeac6475355 SHA512 3c32efce0cfd0f87a7f7d112a98cf364ccbd682173c7f470b02445131412f567178d4026bd01456698d53d068fe5a0c4ee07ea25d98e3b3e7132a03f90cb86b5 +EBUILD chromium-133.0.6888.2.ebuild 49899 BLAKE2B d06a085ec4ae6a3f39b6914638488ea1d46e1ca4ebf5b567b88d5a64a69fefaa7866ba1b648625ea3bdaae3e3ca7ea0df00453a751f523efcdde20a74746c4dc SHA512 f0809593163b392736be6d7d7a25802ef5b12cca1bf644af1771bf3e1918f0d07c9f00dab2d3254e4a3b6d33c3faa8c001c3697f47033eef9ea96f95ee73b177 MISC metadata.xml 1982 BLAKE2B c5655b7fbb57e9569223607b1a1b666968cca9799b21911a177ed9b1083c5661497c04e3208aaec02f0a64daea2bb022cd9c7e37f59b3c3f9786767489f8e17d SHA512 71b8602268714983283d4ce7ac0849f7d1a8d3e2a0cf86f4f3b337b7c69df27666f1fd71c94687aa63e2370a71d58963e22ec3f5da9aef6975b9c4a74e294c7b diff --git a/www-client/chromium/chromium-133.0.6876.4.ebuild b/www-client/chromium/chromium-133.0.6876.4.ebuild deleted file mode 100644 index ae4f80ad1d49..000000000000 --- a/www-client/chromium/chromium-133.0.6876.4.ebuild +++ /dev/null @@ -1,1464 +0,0 @@ -# Copyright 2009-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# PACKAGING NOTES - -# Since m133 (and backported a bit...) we are using CI-generated tarballs from -# https://github.com/chromium-linux-tarballs/chromium-tarballs/ (uploaded to S3 -# and made available via https://chromium-tarballs.distfiles.gentoo.org/). - -# We do this because upstream tarballs weigh in at about 3.5x the size of our -# new "Distro tarballs" and include binaries (etc) that are not useful for -# downstream consumers (like distributions). - -# It is probably still possible to download the google Rust and Clang toolchains -# and use them to build this package, however we removed this when upstream CI -# broke for m131 and haven't re-added it. - -GN_MIN_VER=0.2165 -# chromium-tools/get-chromium-toolchain-strings.py -TEST_FONT=f26f29c9d3bfae588207bbc9762de8d142e58935c62a86f67332819b15203b35 - -VIRTUALX_REQUIRED="pgo" - -CHROMIUM_LANGS="af am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he - 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" - -LLVM_COMPAT=( 19 ) -PYTHON_COMPAT=( python3_{11..13} ) -PYTHON_REQ_USE="xml(+)" -RUST_MIN_VER=1.78.0 -RUST_NEEDS_LLVM="yes please" - -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" -PATCH_V="${PV%%\.*}-1" -SRC_URI="https://chromium-tarballs.distfiles.gentoo.org/${P}-linux.tar.xz - https://gitlab.com/Matt.Jolly/chromium-patches/-/archive/${PATCH_V}/chromium-patches-${PATCH_V}.tar.bz2 - test? ( - https://chromium-tarballs.distfiles.gentoo.org/${P}-linux-testdata.tar.xz - https://chromium-fonts.storage.googleapis.com/${TEST_FONT} -> chromium-testfonts-${TEST_FONT:0:10}.tar.gz - ) - ppc64? ( - https://gitlab.solidsilicon.io/public-development/open-source/chromium/openpower-patches/-/archive/${PPC64_HASH}/openpower-patches-${PPC64_HASH}.tar.bz2 -> chromium-openpower-${PPC64_HASH:0:10}.tar.bz2 - ) - pgo? ( https://github.com/elkablo/chromium-profiler/releases/download/v0.2/chromium-profiler-0.2.tar )" - -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="~amd64 ~arm64" -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" -RESTRICT=" - !bindist? ( bindist ) - !test? ( test ) -" - -REQUIRED_USE=" - !headless? ( || ( X wayland ) ) - pgo? ( X !wayland ) - qt6? ( qt5 ) - screencast? ( wayland ) - ffmpeg-chromium? ( bindist proprietary-codecs ) -" - -COMMON_X_DEPEND=" - x11-libs/libXcomposite:= - x11-libs/libXcursor:= - x11-libs/libXdamage:= - x11-libs/libXfixes:= - >=x11-libs/libXi-1.6.0:= - x11-libs/libXrandr:= - x11-libs/libXrender:= - x11-libs/libXtst:= - x11-libs/libxshmfence:= -" - -COMMON_SNAPSHOT_DEPEND=" - system-icu? ( >=dev-libs/icu-73.0:= ) - >=dev-libs/libxml2-2.12.4:=[icu] - dev-libs/nspr:= - >=dev-libs/nss-3.26:= - dev-libs/libxslt:= - media-libs/fontconfig:= - >=media-libs/freetype-2.11.0-r1:= - system-harfbuzz? ( >=media-libs/harfbuzz-3:0=[icu(-)] ) - media-libs/libjpeg-turbo:= - system-png? ( media-libs/libpng:=[-apng(-)] ) - system-zstd? ( >=app-arch/zstd-1.5.5:= ) - >=media-libs/libwebp-0.4.0:= - media-libs/mesa:=[gbm(+)] - >=media-libs/openh264-1.6.0:= - sys-libs/zlib:= - !headless? ( - dev-libs/glib:2 - >=media-libs/alsa-lib-1.0.19:= - pulseaudio? ( media-libs/libpulse:= ) - sys-apps/pciutils:= - kerberos? ( virtual/krb5 ) - vaapi? ( >=media-libs/libva-2.7:=[X?,wayland?] ) - X? ( - x11-base/xorg-proto:= - x11-libs/libX11:= - x11-libs/libxcb:= - x11-libs/libXext:= - ) - x11-libs/libxkbcommon:= - wayland? ( - dev-libs/libffi:= - dev-libs/wayland:= - screencast? ( media-video/pipewire:= ) - ) - ) -" - -COMMON_DEPEND=" - ${COMMON_SNAPSHOT_DEPEND} - app-arch/bzip2:= - dev-libs/expat:= - net-misc/curl[ssl] - sys-apps/dbus:= - media-libs/flac:= - sys-libs/zlib:=[minizip] - !headless? ( - X? ( ${COMMON_X_DEPEND} ) - >=app-accessibility/at-spi2-core-2.46.0:2 - media-libs/mesa:=[X?,wayland?] - cups? ( >=net-print/cups-1.3.11:= ) - virtual/udev - x11-libs/cairo:= - x11-libs/gdk-pixbuf:2 - x11-libs/pango:= - qt5? ( - dev-qt/qtcore:5 - dev-qt/qtwidgets:5 - ) - qt6? ( dev-qt/qtbase:6[gui,widgets] ) - ) -" -RDEPEND="${COMMON_DEPEND} - !headless? ( - || ( - x11-libs/gtk+:3[X?,wayland?] - gui-libs/gtk:4[X?,wayland?] - ) - qt5? ( dev-qt/qtgui:5[X?,wayland?] ) - qt6? ( dev-qt/qtbase:6[X?,wayland?] ) - ) - virtual/ttf-fonts - selinux? ( sec-policy/selinux-chromium ) - bindist? ( - !ffmpeg-chromium? ( >=media-video/ffmpeg-6.1-r1:0/58.60.60[chromium] ) - ffmpeg-chromium? ( media-video/ffmpeg-chromium:${PV%%\.*} ) - ) -" -DEPEND="${COMMON_DEPEND} - !headless? ( - gtk4? ( gui-libs/gtk:4[X?,wayland?] ) - !gtk4? ( x11-libs/gtk+:3[X?,wayland?] ) - ) -" - -BDEPEND=" - ${COMMON_SNAPSHOT_DEPEND} - ${PYTHON_DEPS} - $(python_gen_any_dep ' - dev-python/setuptools[${PYTHON_USEDEP}] - ') - >=app-arch/gzip-1.7 - !headless? ( - qt5? ( dev-qt/qtcore:5 ) - qt6? ( dev-qt/qtbase:6 ) - ) - $(llvm_gen_dep ' - llvm-core/clang:${LLVM_SLOT} - llvm-core/llvm:${LLVM_SLOT} - llvm-core/lld:${LLVM_SLOT} - ') - pgo? ( - >=dev-python/selenium-3.141.0 - >=dev-util/web_page_replay_go-20220314 - ) - >=dev-util/bindgen-0.68.0 - >=dev-build/gn-${GN_MIN_VER} - dev-build/ninja - dev-lang/perl - >=dev-util/gperf-3.0.3 - dev-vcs/git - >=net-libs/nodejs-7.6.0[inspector] - >=sys-devel/bison-2.4.3 - sys-devel/flex - virtual/pkgconfig -" - -if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then - EBUILD_DEATH_HOOKS+=" chromium_pkg_die"; -fi - -DISABLE_AUTOFORMATTING="yes" -DOC_CONTENTS=" -Some web pages may require additional fonts to display properly. -Try installing some of the following packages if some characters -are not displayed properly: -- media-fonts/arphicfonts -- media-fonts/droid -- media-fonts/ipamonafont -- media-fonts/noto -- media-fonts/ja-ipafonts -- media-fonts/takao-fonts -- media-fonts/wqy-microhei -- media-fonts/wqy-zenhei - -To fix broken icons on the Downloads page, you should install an icon -theme that covers the appropriate MIME types, and configure this as your -GTK+ icon theme. - -For native file dialogs in KDE, install kde-apps/kdialog. - -To make password storage work with your desktop environment you may -have install one of the supported credentials management applications: -- app-crypt/libsecret (GNOME) -- kde-frameworks/kwallet (KDE) -If you have one of above packages installed, but don't want to use -them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS -in /etc/chromium/default. -" - -python_check_deps() { - python_has_version "dev-python/setuptools[${PYTHON_USEDEP}]" -} - -pre_build_checks() { - # Check build requirements: bugs #471810, #541816, #914220 - # We're going to start doing maths here on the size of an unpacked source tarball, - # this should make updates easier as chromium continues to balloon in size. - local BASE_DISK=24 - local EXTRA_DISK=1 - local CHECKREQS_MEMORY="4G" - tc-is-cross-compiler && EXTRA_DISK=2 - if tc-is-lto || use pgo; then - CHECKREQS_MEMORY="9G" - tc-is-cross-compiler && EXTRA_DISK=4 - use pgo && EXTRA_DISK=8 - fi - if is-flagq '-g?(gdb)?([1-9])'; then - if use custom-cflags; then - EXTRA_DISK=13 - fi - CHECKREQS_MEMORY="16G" - fi - CHECKREQS_DISK_BUILD="$((BASE_DISK + EXTRA_DISK))G" - check-reqs_${EBUILD_PHASE_FUNC} -} - -pkg_pretend() { - 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 - fi - - if use headless; then - local headless_unused_flags=("cups" "kerberos" "pulseaudio" "qt5" "qt6" "vaapi" "wayland") - for myiuse in ${headless_unused_flags[@]}; do - use ${myiuse} && ewarn "Ignoring USE=${myiuse}, USE=headless is set." - done - fi - - if ! use bindist && use ffmpeg-chromium; then - ewarn "Ignoring USE=ffmpeg-chromium, USE=bindist is not set." - fi -} - -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" - # We can rely on GN to do this for us; anecdotally without this builds - # take significantly longer with LTO enabled and it doesn't hurt anything. - filter-lto - fi - - if [ "$use_lto" = "false" ] && use official; then - einfo "USE=official selected and LTO not detected." - einfo "It is _highly_ recommended that LTO be enabled for performance reasons" - einfo "and to be consistent with the upstream \"official\" build optimisations." - fi - - if [ "$use_lto" = "false" ] && use test; then - die "Tests require CFI which requires LTO" - fi - - export use_lto - - # 936858 - if tc-ld-is-mold; then - eerror "Your toolchain is using the mold linker." - eerror "This is not supported by Chromium." - die "Please switch to a different linker." - fi - - llvm-r1_pkg_setup - rust_pkg_setup - - # Forcing clang; respect llvm_slot_x to enable selection of impl from LLVM_COMPAT - AR=llvm-ar - CPP="${CHOST}-clang++-${LLVM_SLOT} -E" - NM=llvm-nm - CC="${CHOST}-clang-${LLVM_SLOT}" - CXX="${CHOST}-clang++-${LLVM_SLOT}" - - if tc-is-cross-compiler; then - use pgo && die "The pgo USE flag cannot be used when cross-compiling" - CPP="${CBUILD}-clang++-${LLVM_SLOT} -E" - fi - - # 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 - - # 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" - fi - fi - - chromium_suid_sandbox_check_kernel_config -} - -src_unpack() { - unpack ${P}-linux.tar.xz - unpack chromium-patches-${PATCH_V}.tar.bz2 - - use pgo && unpack chromium-profiler-0.2.tar - - if use test; then - # A new testdata tarball is available for each release; but testfonts tend to remain stable - # for the duration of a release. - # This unpacks directly into/over ${WORKDIR}/${P} so we can just use `unpack`. - unpack ${P}-linux-testdata.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}/chromium-testfonts-${TEST_FONT:0:10}.tar.gz" - tar xf "${testfonts_tar}" -C "${testfonts_dir}" || die "Failed to unpack testfonts" - fi - - if use ppc64; then - unpack chromium-openpower-${PPC64_HASH:0:10}.tar.bz2 - fi -} - -src_prepare() { - # Calling this here supports resumption via FEATURES=keepwork - python_setup - - # disable global media controls, crashes with libstdc++ - sed -i -e \ - "/\"GlobalMediaControlsCastStartStop\"/,+4{s/ENABLED/DISABLED/;}" \ - "chrome/browser/media/router/media_router_feature.cc" - - local PATCHES=( - "${FILESDIR}/chromium-cross-compile.patch" - "${FILESDIR}/chromium-109-system-zlib.patch" - "${FILESDIR}/chromium-111-InkDropHost-crash.patch" - "${FILESDIR}/chromium-131-unbundle-icu-target.patch" - "${FILESDIR}/chromium-131-oauth2-client-switches.patch" - "${FILESDIR}/chromium-132-bindgen-custom-toolchain.patch" - "${FILESDIR}/chromium-133-openh264-decoder-source-set.patch" - ) - - shopt -s globstar nullglob - # 130: moved the PPC64 patches into the chromium-patches repo - local patch - for patch in "${WORKDIR}/chromium-patches-${PATCH_V}"/**/*.patch; do - if [[ ${patch} == *"ppc64le"* ]]; then - use ppc64 && PATCHES+=( "${patch}" ) - else - PATCHES+=( "${patch}" ) - fi - done - - shopt -u globstar nullglob - - # We can't use the bundled compiler builtins with the system toolchain - # `grep` is a development convenience to ensure we fail early when google changes something. - local builtins_match="if (is_clang && !is_nacl && !is_cronet_build) {" - grep -q "${builtins_match}" build/config/compiler/BUILD.gn || die "Failed to disable bundled compiler builtins" - sed -i -e "/${builtins_match}/,+2d" build/config/compiler/BUILD.gn - - if use ppc64; then - local patchset_dir="${WORKDIR}/openpower-patches-${PPC64_HASH}/patches" - # patch causes build errors on 4K page systems (https://bugs.gentoo.org/show_bug.cgi?id=940304) - local page_size_patch="ppc64le/third_party/use-sysconf-page-size-on-ppc64.patch" - # Apply the OpenPOWER patches (check for page size) - openpower_patches=( $(grep -E "^ppc64le|^upstream" "${patchset_dir}/series" | grep -v "${page_size_patch}" || die) ) - for patch in "${openpower_patches[@]}"; do - PATCHES+=( "${patchset_dir}/${patch}" ) - done - if [[ $(getconf PAGESIZE) == 65536 ]]; then - PATCHES+=( "${patchset_dir}/${page_size_patch}" ) - fi - # We use vsx3 as a proxy for 'want isa3.0' (POWER9) - if use cpu_flags_ppc_vsx3 ; then - PATCHES+=( "${patchset_dir}/ppc64le/core/baseline-isa-3-0.patch" ) - fi - fi - - # This is a nightly option that does not exist any current release - # https://github.com/rust-lang/rust/commit/389a399a501a626ebf891ae0bb076c25e325ae64 - if ver_test ${RUST_SLOT} -le "1.82.0"; then - sed '/rustflags = \[ "-Zdefault-visibility=hidden" \]/d' -i build/config/gcc/BUILD.gn || - die "Failed to remove default visibility nightly option" - fi - - default - - rm third_party/node/linux/node-linux-x64/bin/node || die - ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die - - # adjust python interpreter version - sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die - - # remove_bundled_libraries.py walks the source tree and looks for paths containing the substring 'third_party' - # whitelist matches use the right-most matching path component, so we need to whitelist from that point down. - local keeplibs=( - base/third_party/cityhash - base/third_party/double_conversion - base/third_party/icu - base/third_party/nspr - base/third_party/superfasthash - base/third_party/symbolize - base/third_party/xdg_user_dirs - buildtools/third_party/libc++ - buildtools/third_party/libc++abi - chrome/third_party/mozilla_security_manager - net/third_party/mozilla_security_manager - net/third_party/nss - net/third_party/quic - net/third_party/uri_template - third_party/abseil-cpp - third_party/angle - third_party/angle/src/common/third_party/xxhash - third_party/angle/src/third_party/ceval - third_party/angle/src/third_party/libXNVCtrl - third_party/angle/src/third_party/volk - third_party/anonymous_tokens - third_party/apple_apsl - third_party/axe-core - third_party/bidimapper - third_party/blink - third_party/boringssl - third_party/boringssl/src/third_party/fiat - third_party/breakpad - third_party/breakpad/breakpad/src/third_party/curl - third_party/brotli - third_party/catapult - third_party/catapult/common/py_vulcanize/third_party/rcssmin - third_party/catapult/common/py_vulcanize/third_party/rjsmin - third_party/catapult/third_party/beautifulsoup4-4.9.3 - third_party/catapult/third_party/html5lib-1.1 - third_party/catapult/third_party/polymer - third_party/catapult/third_party/six - third_party/catapult/tracing/third_party/d3 - third_party/catapult/tracing/third_party/gl-matrix - third_party/catapult/tracing/third_party/jpeg-js - third_party/catapult/tracing/third_party/jszip - third_party/catapult/tracing/third_party/mannwhitneyu - third_party/catapult/tracing/third_party/oboe - third_party/catapult/tracing/third_party/pako - third_party/ced - third_party/cld_3 - third_party/closure_compiler - third_party/content_analysis_sdk - third_party/cpuinfo - third_party/crabbyavif - third_party/crashpad - third_party/crashpad/crashpad/third_party/lss - third_party/crashpad/crashpad/third_party/zlib - third_party/crc32c - third_party/cros_system_api - third_party/d3 - third_party/dav1d - third_party/dawn - third_party/dawn/third_party/gn/webgpu-cts - third_party/dawn/third_party/khronos - third_party/depot_tools - third_party/devscripts - third_party/devtools-frontend - third_party/devtools-frontend/src/front_end/third_party/acorn - third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json - third_party/devtools-frontend/src/front_end/third_party/axe-core - third_party/devtools-frontend/src/front_end/third_party/chromium - third_party/devtools-frontend/src/front_end/third_party/codemirror - third_party/devtools-frontend/src/front_end/third_party/csp_evaluator - third_party/devtools-frontend/src/front_end/third_party/diff - third_party/devtools-frontend/src/front_end/third_party/i18n - third_party/devtools-frontend/src/front_end/third_party/intl-messageformat - third_party/devtools-frontend/src/front_end/third_party/json5 - third_party/devtools-frontend/src/front_end/third_party/lighthouse - third_party/devtools-frontend/src/front_end/third_party/lit - third_party/devtools-frontend/src/front_end/third_party/marked - third_party/devtools-frontend/src/front_end/third_party/puppeteer - third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/mitt - third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/parsel-js - third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/rxjs - third_party/devtools-frontend/src/front_end/third_party/third-party-web - third_party/devtools-frontend/src/front_end/third_party/vscode.web-custom-data - third_party/devtools-frontend/src/front_end/third_party/wasmparser - third_party/devtools-frontend/src/front_end/third_party/web-vitals - third_party/devtools-frontend/src/third_party - third_party/distributed_point_functions - third_party/dom_distiller_js - third_party/eigen3 - third_party/emoji-segmenter - third_party/farmhash - third_party/fast_float - third_party/fdlibm - third_party/ffmpeg - third_party/fft2d - third_party/flatbuffers - third_party/fp16 - third_party/freetype - third_party/fusejs - third_party/fxdiv - third_party/gemmlowp - third_party/google_input_tools - third_party/google_input_tools/third_party/closure_library - third_party/google_input_tools/third_party/closure_library/third_party/closure - third_party/googletest - third_party/highway - third_party/hunspell - third_party/iccjpeg - third_party/ink_stroke_modeler/src/ink_stroke_modeler - third_party/ink_stroke_modeler/src/ink_stroke_modeler/internal - third_party/ink/src/ink/brush - third_party/ink/src/ink/color - third_party/ink/src/ink/geometry - third_party/ink/src/ink/rendering - third_party/ink/src/ink/rendering/skia/common_internal - third_party/ink/src/ink/rendering/skia/native - third_party/ink/src/ink/rendering/skia/native/internal - third_party/ink/src/ink/strokes - third_party/ink/src/ink/types - third_party/inspector_protocol - third_party/ipcz - third_party/jinja2 - third_party/jsoncpp - third_party/jstemplate - third_party/khronos - third_party/lens_server_proto - third_party/leveldatabase - third_party/libaddressinput - third_party/libaom - third_party/libaom/source/libaom/third_party/fastfeat - third_party/libaom/source/libaom/third_party/SVT-AV1 - third_party/libaom/source/libaom/third_party/vector - third_party/libaom/source/libaom/third_party/x86inc - third_party/libavif - third_party/libc++ - third_party/libdrm - third_party/libevent - third_party/libgav1 - third_party/libjingle - third_party/libphonenumber - third_party/libsecret - third_party/libsrtp - third_party/libsync - third_party/libtess2/libtess2 - third_party/libtess2/src/Include - third_party/libtess2/src/Source - third_party/liburlpattern - third_party/libva_protected_content - third_party/libvpx - third_party/libvpx/source/libvpx/third_party/x86inc - third_party/libwebm - third_party/libx11 - third_party/libxcb-keysyms - third_party/libxml/chromium - third_party/libyuv - third_party/libzip - third_party/lit - third_party/llvm-libc - third_party/llvm-libc/src/shared/ - third_party/lottie - third_party/lss - third_party/lzma_sdk - third_party/mako - third_party/markupsafe - third_party/material_color_utilities - third_party/mesa - third_party/metrics_proto - third_party/minigbm - third_party/modp_b64 - third_party/nasm - third_party/nearby - third_party/neon_2_sse - third_party/node - third_party/omnibox_proto - third_party/one_euro_filter - third_party/openscreen - third_party/openscreen/src/third_party/ - third_party/openscreen/src/third_party/tinycbor/src/src - third_party/opus - third_party/ots - third_party/pdfium - third_party/pdfium/third_party/agg23 - third_party/pdfium/third_party/bigint - third_party/pdfium/third_party/freetype - third_party/pdfium/third_party/lcms - third_party/pdfium/third_party/libopenjpeg - third_party/pdfium/third_party/libtiff - third_party/perfetto - third_party/perfetto/protos/third_party/chromium - third_party/perfetto/protos/third_party/simpleperf - third_party/pffft - third_party/ply - third_party/polymer - third_party/private_membership - third_party/private-join-and-compute - third_party/protobuf - third_party/pthreadpool - third_party/puffin - third_party/pyjson5 - third_party/pyyaml - third_party/qcms - third_party/rapidhash - third_party/re2 - third_party/rnnoise - third_party/rust - third_party/ruy - third_party/s2cellid - third_party/securemessage - third_party/selenium-atoms - third_party/sentencepiece - third_party/sentencepiece/src/third_party/darts_clone - third_party/shell-encryption - third_party/simplejson - third_party/six - third_party/skia - third_party/skia/include/third_party/vulkan - third_party/skia/third_party/vulkan - third_party/smhasher - third_party/snappy - third_party/spirv-headers - third_party/spirv-tools - third_party/sqlite - third_party/swiftshader - third_party/swiftshader/third_party/astc-encoder - third_party/swiftshader/third_party/llvm-subzero - third_party/swiftshader/third_party/marl - third_party/swiftshader/third_party/SPIRV-Headers/include/spirv - third_party/swiftshader/third_party/SPIRV-Tools - third_party/swiftshader/third_party/subzero - third_party/tensorflow_models - third_party/tensorflow-text - third_party/tflite - third_party/tflite/src/third_party/eigen3 - third_party/tflite/src/third_party/fft2d - third_party/tflite/src/third_party/xla/third_party/tsl - third_party/tflite/src/third_party/xla/xla/tsl/framework - third_party/tflite/src/third_party/xla/xla/tsl/lib/random - third_party/tflite/src/third_party/xla/xla/tsl/protobuf - third_party/tflite/src/third_party/xla/xla/tsl/util - third_party/ukey2 - third_party/unrar - third_party/utf - third_party/vulkan - third_party/wayland - third_party/webdriver - third_party/webgpu-cts - third_party/webrtc - third_party/webrtc/common_audio/third_party/ooura - third_party/webrtc/common_audio/third_party/spl_sqrt_floor - third_party/webrtc/modules/third_party/fft - third_party/webrtc/modules/third_party/g711 - third_party/webrtc/modules/third_party/g722 - third_party/webrtc/rtc_base/third_party/base64 - third_party/webrtc/rtc_base/third_party/sigslot - third_party/widevine - third_party/woff2 - third_party/wuffs - third_party/x11proto - third_party/xcbproto - third_party/xnnpack - third_party/zlib/google - third_party/zxcvbn-cpp - url/third_party/mozilla - v8/src/third_party/siphash - v8/src/third_party/utf8-decoder - v8/src/third_party/valgrind - v8/third_party/glibc - v8/third_party/inspector_protocol - v8/third_party/v8 - - # gyp -> gn leftovers - third_party/speech-dispatcher - third_party/usb_ids - third_party/xdg-utils - ) - - if use test; then - # tar tvf /var/cache/distfiles/${P}-testdata.tar.xz | grep '^d' | grep 'third_party' | awk '{print $NF}' - keeplibs+=( - third_party/breakpad/breakpad/src/processor - third_party/fuzztest - third_party/google_benchmark/src/include/benchmark - third_party/google_benchmark/src/src - third_party/perfetto/protos/third_party/pprof - third_party/test_fonts - third_party/test_fonts/fontconfig - ) - fi - - # USE=system-* - if ! use system-harfbuzz; then - keeplibs+=( third_party/harfbuzz-ng ) - fi - - if ! use system-icu; then - keeplibs+=( third_party/icu ) - fi - - if ! use system-png; then - keeplibs+=( third_party/libpng ) - fi - - if ! use system-zstd; then - keeplibs+=( third_party/zstd ) - fi - - # Arch-specific - if use arm64 || use ppc64 ; then - keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 ) - fi - # we need to generate ppc64 stuff because upstream does not ship it yet - # it has to be done before unbundling. - if use ppc64; then - pushd third_party/libvpx >/dev/null || die - mkdir -p source/config/linux/ppc64 || die - # requires git and clang, bug #832803 - # Revert https://chromium.googlesource.com/chromium/src/+/b463d0f40b08b4e896e7f458d89ae58ce2a27165%5E%21/third_party/libvpx/generate_gni.sh - # and https://chromium.googlesource.com/chromium/src/+/71ebcbce867dd31da5f8b405a28fcb0de0657d91%5E%21/third_party/libvpx/generate_gni.sh - # since we're not in a git repo - sed -i -e "s|^update_readme||g; s|clang-format|${EPREFIX}/bin/true|g; /^git -C/d; /git cl/d; /cd \$BASE_DIR\/\$LIBVPX_SRC_DIR/ign format --in-place \$BASE_DIR\/BUILD.gn\ngn format --in-place \$BASE_DIR\/libvpx_srcs.gni" \ - generate_gni.sh || die - ./generate_gni.sh || die - popd >/dev/null || die - - pushd third_party/ffmpeg >/dev/null || die - cp libavcodec/ppc/h264dsp.c libavcodec/ppc/h264dsp_ppc.c || die - cp libavcodec/ppc/h264qpel.c libavcodec/ppc/h264qpel_ppc.c || die - popd >/dev/null || die - fi - - # Sanity check keeplibs, on major version bumps it is often necessary to update this list - # and this enables us to hit them all at once. - # There are some entries that need to be whitelisted (TODO: Why? The file is understandable, the rest seem odd) - whitelist_libs=( - net/third_party/quic - third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json - third_party/libjingle - third_party/mesa - third_party/skia/third_party/vulkan - third_party/vulkan - ) - local not_found_libs=() - for lib in "${keeplibs[@]}"; do - if [[ ! -d "${lib}" ]] && ! has "${lib}" "${whitelist_libs[@]}"; then - not_found_libs+=( "${lib}" ) - fi - done - - if [[ ${#not_found_libs[@]} -gt 0 ]]; then - eerror "The following \`keeplibs\` directories were not found in the source tree:" - for lib in "${not_found_libs[@]}"; do - eerror " ${lib}" - done - die "Please update the ebuild." - fi - - # Remove most bundled libraries. Some are still needed. - einfo "Unbundling third-party libraries ..." - build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die - - # TODO: From 127 chromium includes a bunch of binaries? Unbundle them; they're not needed. - - # bundled eu-strip is for amd64 only and we don't want to pre-stripped binaries - mkdir -p buildtools/third_party/eu-strip/bin || die - ln -s "${EPREFIX}"/bin/true buildtools/third_party/eu-strip/bin/eu-strip || die -} - -chromium_configure() { - # Calling this here supports resumption via FEATURES=keepwork - python_setup - - local myconf_gn="" - - # We already forced the "correct" clang via pkg_setup - - if tc-is-cross-compiler; then - CC="${CC} -target ${CHOST} --sysroot ${ESYSROOT}" - CXX="${CXX} -target ${CHOST} --sysroot ${ESYSROOT}" - BUILD_AR=${AR} - BUILD_CC=${CC} - BUILD_CXX=${CXX} - BUILD_NM=${NM} - fi - - strip-unsupported-flags - - myconf_gn+=" is_clang=true clang_use_chrome_plugins=false" - # https://bugs.gentoo.org/918897#c32 - append-ldflags -Wl,--undefined-version - myconf_gn+=" use_lld=true" - - # Make sure the build system will use the right tools, bug #340795. - tc-export AR CC CXX NM - - myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\"" - - if tc-is-cross-compiler; then - tc-export BUILD_{AR,CC,CXX,NM} - myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\"" - myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\"" - myconf_gn+=" pkg_config=\"$(tc-getPKG_CONFIG)\"" - myconf_gn+=" host_pkg_config=\"$(tc-getBUILD_PKG_CONFIG)\"" - - # setup cups-config, build system only uses --libs option - if use cups; then - mkdir "${T}/cups-config" || die - cp "${ESYSROOT}/usr/bin/${CHOST}-cups-config" "${T}/cups-config/cups-config" || die - export PATH="${PATH}:${T}/cups-config" - fi - - # Don't inherit PKG_CONFIG_PATH from environment - local -x PKG_CONFIG_PATH= - else - myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\"" - fi - - # bindgen settings - # From 127, to make bindgen work, we need to provide a location for libclang. - # We patch this in for gentoo - see chromium-*-bindgen-custom-toolchain.patch - # rust_bindgen_root = directory with `bin/bindgen` beneath it. - myconf_gn+=" rust_bindgen_root=\"${EPREFIX}/usr/\"" - - 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}/\"" - - 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" - - # enable DCHECK with USE=debug only, increases chrome binary size by 30%, bug #811138. - # DCHECK is fatal by default, make it configurable at runtime, #bug 807881. - myconf_gn+=" dcheck_always_on=$(usex debug true false)" - myconf_gn+=" dcheck_is_configurable=$(usex debug true false)" - - # Component build isn't generally intended for use by end users. It's mostly useful - # for development and debugging. - myconf_gn+=" is_component_build=false" - - # Disable nacl, we can't build without pnacl (http://crbug.com/269560). - myconf_gn+=" enable_nacl=false" - - # Use system-provided libraries. - # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733). - # TODO: use_system_hunspell (upstream changes needed). - # TODO: use_system_protobuf (bug #525560). - # TODO: use_system_sqlite (http://crbug.com/22208). - - # libevent: https://bugs.gentoo.org/593458 - local gn_system_libraries=( - flac - fontconfig - freetype - # Need harfbuzz_from_pkgconfig target - #harfbuzz-ng - libjpeg - libwebp - libxml - libxslt - openh264 - zlib - ) - if use system-icu; then - gn_system_libraries+=( icu ) - fi - if use system-png; then - gn_system_libraries+=( libpng ) - fi - if use system-zstd; then - gn_system_libraries+=( zstd ) - fi - - build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die - - # TODO 131: The above call clobbers `enable_freetype = true` in the freetype gni file - # drop the last line, then append the freetype line and a new curly brace to end the block - local freetype_gni="build/config/freetype/freetype.gni" - sed -i -e '$d' ${freetype_gni} || die - echo " enable_freetype = true" >> ${freetype_gni} || die - echo "}" >> ${freetype_gni} || die - - # See dependency logic in third_party/BUILD.gn - myconf_gn+=" use_system_harfbuzz=$(usex system-harfbuzz true false)" - - # Optional dependencies. - myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)" - myconf_gn+=" enable_widevine=$(usex widevine true false)" - - if use headless; then - myconf_gn+=" use_cups=false" - myconf_gn+=" use_kerberos=false" - myconf_gn+=" use_pulseaudio=false" - myconf_gn+=" use_vaapi=false" - myconf_gn+=" rtc_use_pipewire=false" - else - myconf_gn+=" use_cups=$(usex cups true false)" - myconf_gn+=" use_kerberos=$(usex kerberos true false)" - myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)" - myconf_gn+=" use_vaapi=$(usex vaapi true false)" - myconf_gn+=" rtc_use_pipewire=$(usex screencast true false)" - myconf_gn+=" gtk_version=$(usex gtk4 4 3)" - fi - - # Allows distributions to link pulseaudio directly (DT_NEEDED) instead of - # using dlopen. This helps with automated detection of ABI mismatches and - # prevents silent errors. - if use pulseaudio; then - myconf_gn+=" link_pulseaudio=true" - fi - - # Non-developer builds of Chromium (for example, non-Chrome browsers, or - # Chromium builds provided by Linux distros) should disable the testing config - myconf_gn+=" disable_fieldtrial_testing_config=true" - - # The sysroot is the oldest debian image that chromium supports, we don't need it - myconf_gn+=" use_sysroot=false" - - # Use in-tree libc++ (buildtools/third_party/libc++ and buildtools/third_party/libc++abi) - # instead of the system C++ library for C++ standard library support. - # default: true, but let's be explicit (forced since 120 ; USE removed 127). - myconf_gn+=" use_custom_libcxx=true" - - # Disable pseudolocales, only used for testing - myconf_gn+=" enable_pseudolocales=false" - - # Disable code formating of generated files - myconf_gn+=" blink_enable_generated_code_formatting=false" - - if use bindist ; then - # proprietary_codecs just forces Chromium to say that it can use h264/aac, - # the work is still done by ffmpeg. If this is set to no Chromium - # won't be able to load the codec even if the library can handle it - myconf_gn+=" proprietary_codecs=true" - myconf_gn+=" ffmpeg_branding=\"Chrome\"" - # build ffmpeg as an external component (libffmpeg.so) that we can remove / substitute - myconf_gn+=" is_component_ffmpeg=true" - else - ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)" - myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)" - myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\"" - fi - - # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys . - # Note: these are for Gentoo use ONLY. For your own distribution, - # please get your own set of keys. Feel free to contact chromium@gentoo.org - # for more info. The OAuth2 credentials, however, have been left out. - # Those OAuth2 credentials have been broken for quite some time anyway. - # Instead we apply a patch to use the --oauth2-client-id= and - # --oauth2-client-secret= switches for setting GOOGLE_DEFAULT_CLIENT_ID and - # GOOGLE_DEFAULT_CLIENT_SECRET at runtime. This allows signing into - # Chromium without baked-in values. - local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc" - myconf_gn+=" google_api_key=\"${google_api_key}\"" - local myarch="$(tc-arch)" - - # Avoid CFLAGS problems, bug #352457, bug #390147. - if ! use custom-cflags; then - replace-flags "-Os" "-O2" - strip-flags - - # Debug info section overflows without component build - # Prevent linker from running out of address space, bug #471810 . - filter-flags "-g*" - - # Prevent libvpx/xnnpack build failures. Bug 530248, 544702, 546984, 853646. - if [[ ${myarch} == amd64 ]]; then - filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4 -mno-xop -mno-sse4a - fi - fi - - if [[ $myarch = amd64 ]] ; then - myconf_gn+=" target_cpu=\"x64\"" - ffmpeg_target_arch=x64 - elif [[ $myarch = arm64 ]] ; then - myconf_gn+=" target_cpu=\"arm64\"" - ffmpeg_target_arch=arm64 - elif [[ $myarch = ppc64 ]] ; then - myconf_gn+=" target_cpu=\"ppc64\"" - ffmpeg_target_arch=ppc64 - else - die "Failed to determine target arch, got '$myarch'." - fi - - myconf_gn+=" treat_warnings_as_errors=false" - # Disable fatal linker warnings, bug 506268. - myconf_gn+=" fatal_linker_warnings=false" - - # Disable external code space for V8 for ppc64. It is disabled for ppc64 - # by default, but cross-compiling on amd64 enables it again. - if tc-is-cross-compiler; then - if ! use amd64 && ! use arm64; then - myconf_gn+=" v8_enable_external_code_space=false" - fi - fi - - # Only enabled for clang, but gcc has endian macros too - myconf_gn+=" v8_use_libm_trig_functions=true" - - # Bug 491582. - export TMPDIR="${WORKDIR}/temp" - mkdir -p -m 755 "${TMPDIR}" || die - - # https://bugs.gentoo.org/654216 - addpredict /dev/dri/ #nowarn - - # We don't use the same clang version as upstream, and with -Werror - # we need to make sure that we don't get superfluous warnings. - append-flags -Wno-unknown-warning-option - if tc-is-cross-compiler; then - export BUILD_CXXFLAGS+=" -Wno-unknown-warning-option" - export BUILD_CFLAGS+=" -Wno-unknown-warning-option" - fi - - # Explicitly disable ICU data file support for system-icu/headless builds. - if use system-icu || use headless; then - myconf_gn+=" icu_use_data_file=false" - fi - - # Don't need nocompile checks and GN crashes with our config - myconf_gn+=" enable_nocompile_tests=false" - - # 131 began laying the groundwork for replacing freetype with - # "Rust-based Fontations set of libraries plus Skia path rendering" - # We now need to opt-in - myconf_gn+=" enable_freetype=true" - - # Enable ozone wayland and/or headless support - myconf_gn+=" use_ozone=true ozone_auto_platforms=false" - myconf_gn+=" ozone_platform_headless=true" - if use headless; then - myconf_gn+=" ozone_platform=\"headless\"" - myconf_gn+=" use_xkbcommon=false use_gtk=false use_qt=false" - myconf_gn+=" use_glib=false use_gio=false" - myconf_gn+=" use_pangocairo=false use_alsa=false" - myconf_gn+=" use_libpci=false use_udev=false" - myconf_gn+=" enable_print_preview=false" - myconf_gn+=" enable_remoting=false" - else - myconf_gn+=" use_system_minigbm=true" - myconf_gn+=" use_xkbcommon=true" - if use qt5 || use qt6; then - local cbuild_libdir=$(get_libdir) - if tc-is-cross-compiler; then - # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181 - local cbuild_libdir=$($(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libxslt) - cbuild_libdir=${cbuild_libdir:2} - cbuild_libdir=${cbuild_libdir/% } - fi - if use qt5; then - if tc-is-cross-compiler; then - myconf_gn+=" moc_qt5_path=\"${EPREFIX}/${cbuild_libdir}/qt5/bin\"" - else - myconf_gn+=" moc_qt5_path=\"$(qt5_get_bindir)\"" - fi - fi - if use qt6; then - myconf_gn+=" moc_qt6_path=\"${EPREFIX}/usr/${cbuild_libdir}/qt6/libexec\"" - fi - - myconf_gn+=" use_qt=true" - myconf_gn+=" use_qt6=$(usex qt6 true false)" - else - myconf_gn+=" use_qt=false" - fi - myconf_gn+=" ozone_platform_x11=$(usex X true false)" - myconf_gn+=" ozone_platform_wayland=$(usex wayland true false)" - myconf_gn+=" ozone_platform=$(usex wayland \"wayland\" \"x11\")" - use wayland && myconf_gn+=" use_system_libffi=true" - fi - - myconf_gn+=" use_thin_lto=${use_lto}" - myconf_gn+=" thin_lto_enable_optimizations=${use_lto}" - - # Enable official builds - myconf_gn+=" is_official_build=$(usex official true false)" - if use official; then - # Allow building against system libraries in official builds - sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \ - tools/generate_shim_headers/generate_shim_headers.py || die - myconf_gn+=" is_cfi=${use_lto}" - # Don't add symbols to build - myconf_gn+=" symbol_level=0" - fi - - if use pgo; then - myconf_gn+=" chrome_pgo_phase=${1}" - if [[ "$1" == "2" ]]; then - myconf_gn+=" pgo_data_path=\"${2}\"" - fi - else - # Disable PGO - myconf_gn+=" chrome_pgo_phase=0" - fi - - # skipping typecheck is only supported on amd64, bug #876157 - if ! use amd64; then - myconf_gn+=" devtools_skip_typecheck=false" - fi - - einfo "Configuring Chromium ..." - set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release - echo "$@" - "$@" || die -} - -src_configure() { - chromium_configure $(usex pgo 1 0) -} - -chromium_compile() { - - # Final link uses lots of file descriptors. - ulimit -n 2048 - - # Calling this here supports resumption via FEATURES=keepwork - python_setup - - # Don't inherit PYTHONPATH from environment, bug #789021, #812689 - local -x PYTHONPATH= - - # Build mksnapshot and pax-mark it. - if use pax-kernel; then - local x - for x in mksnapshot v8_context_snapshot_generator; do - if tc-is-cross-compiler; then - eninja -C out/Release "host/${x}" - pax-mark m "out/Release/host/${x}" - else - eninja -C out/Release "${x}" - pax-mark m "out/Release/${x}" - fi - done - fi - - # Even though ninja autodetects number of CPUs, we respect - # user's options, for debugging with -j 1 or any other reason. - eninja -C out/Release chrome chromedriver chrome_sandbox $(use test && echo "base_unittests") - - pax-mark m out/Release/chrome - -} - -# This function is called from virtx, and must always return so that Xvfb -# session isn't left running. If we return 1, virtx will call die(). -chromium_profile() { - einfo "Profiling for PGO" - - pushd "${WORKDIR}/chromium-profiler-"* >/dev/null || return 1 - - # Remove old profdata in case profiling was interrupted. - rm -rf "${1}" || return 1 - - if ! "${EPYTHON}" ./chromium_profiler.py \ - --chrome-executable "${S}/out/Release/chrome" \ - --chromedriver-executable "${S}/out/Release/chromedriver.unstripped" \ - --add-arg no-sandbox --add-arg disable-dev-shm-usage \ - --profile-output "${1}"; then - eerror "Profiling failed" - return 1 - fi - - popd >/dev/null || return 1 -} - -src_compile() { - if use pgo; then - local profdata - - profdata="${WORKDIR}/chromium.profdata" - - if [[ ! -e "${WORKDIR}/.pgo-profiled" ]]; then - chromium_compile - virtx chromium_profile "$profdata" - - touch "${WORKDIR}/.pgo-profiled" || die - fi - - if [[ ! -e "${WORKDIR}/.pgo-phase-2-configured" ]]; then - # Remove phase 1 output - rm -r out/Release || die - - chromium_configure 2 "$profdata" - - touch "${WORKDIR}/.pgo-phase-2-configured" || die - fi - - if [[ ! -e "${WORKDIR}/.pgo-phase-2-compiled" ]]; then - chromium_compile - touch "${WORKDIR}/.pgo-phase-2-compiled" || die - fi - else - chromium_compile - fi - - mv out/Release/chromedriver{.unstripped,} || die - - rm -f out/Release/locales/*.pak.info || die - - # Build manpage; bug #684550 - sed -e 's|@@PACKAGE@@|chromium-browser|g; - s|@@MENUNAME@@|Chromium|g;' \ - chrome/app/resources/manpage.1.in > \ - out/Release/chromium-browser.1 || die - - # Build desktop file; bug #706786 - sed -e 's|@@MENUNAME@@|Chromium|g; - s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g; - s|@@PACKAGE@@|chromium-browser|g; - s|\(^Exec=\)/usr/bin/|\1|g;' \ - chrome/installer/linux/common/desktop.template > \ - out/Release/chromium-browser-chromium.desktop || die - - # Build vk_swiftshader_icd.json; bug #827861 - sed -e 's|${ICD_LIBRARY_PATH}|./libvk_swiftshader.so|g' \ - third_party/swiftshader/src/Vulkan/vk_swiftshader_icd.json.tmpl > \ - out/Release/vk_swiftshader_icd.json || die -} - -src_test() { - # Initial list of tests to skip pulled from Alpine. Thanks Lauren! - # https://issues.chromium.org/issues/40939315 - local skip_tests=( - 'MessagePumpLibeventTest.NestedNotification*' - ClampTest.Death - OptionalTest.DereferencingNoValueCrashes - PlatformThreadTest.SetCurrentThreadTypeTest - RawPtrTest.TrivialRelocability - SafeNumerics.IntMaxOperations - StackTraceTest.TraceStackFramePointersFromBuffer - StringPieceTest.InvalidLengthDeath - 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 - FileTest.GetInfoForCreationTime - ICUStringConversionsTest.ConvertToUtf8AndNormalize - NumberFormattingTest.FormatPercent - PathServiceTest.CheckedGetFailure - PlatformThreadTest.CanChangeThreadType - RustLogIntegrationTest.CheckAllSeverity - StackCanary.ChangingStackCanaryCrashesOnReturn - StackTraceDeathTest.StackDumpSignalHandlerIsMallocFree - SysStrings.SysNativeMBAndWide - SysStrings.SysNativeMBToWide - SysStrings.SysWideToNativeMB - TestLauncherTools.TruncateSnippetFocusedMatchesFatalMessagesTest - ToolsSanityTest.BadVirtualCallNull - ToolsSanityTest.BadVirtualCallWrongType - CancelableEventTest.BothCancelFailureAndSucceedOccurUnderContention #new m133: TODO investigate - ) - 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 \ - --test-launcher-jobs="$(makeopts_jobs)" \ - --gtest_filter="${test_filter}" || die "Tests failed!" -} - -src_install() { - local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser" - exeinto "${CHROMIUM_HOME}" - doexe out/Release/chrome - - newexe out/Release/chrome_sandbox chrome-sandbox - fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox" - - doexe out/Release/chromedriver - doexe out/Release/chrome_crashpad_handler - - ozone_auto_session () { - use X && use wayland && ! use headless && echo true || echo false - } - local sedargs=( -e - "s:/usr/lib/:/usr/$(get_libdir)/:g; - s:@@OZONE_AUTO_SESSION@@:$(ozone_auto_session):g" - ) - sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r7.sh" > chromium-launcher.sh || die - doexe chromium-launcher.sh - - # It is important that we name the target "chromium-browser", - # xdg-utils expect it; bug #355517. - dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser - # keep the old symlink around for consistency - dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium - - dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver - - # Allow users to override command-line options, bug #357629. - insinto /etc/chromium - newins "${FILESDIR}/chromium.default" "default" - - pushd out/Release/locales > /dev/null || die - chromium_remove_language_paks - popd - - insinto "${CHROMIUM_HOME}" - doins out/Release/*.bin - doins out/Release/*.pak - - if use bindist; then - # We built libffmpeg as a component library, but we can't distribute it - # with proprietary codec support. Remove it and make a symlink to the requested - # system library. - rm -f out/Release/libffmpeg.so \ - || die "Failed to remove bundled libffmpeg.so (with proprietary codecs)" - # symlink the libffmpeg.so from either ffmpeg-chromium or ffmpeg[chromium]. - einfo "Creating symlink to libffmpeg.so from $(usex ffmpeg-chromium ffmpeg-chromium ffmpeg[chromium])..." - dosym ../chromium/libffmpeg.so$(usex ffmpeg-chromium .${PV%%\.*} "") \ - /usr/$(get_libdir)/chromium-browser/libffmpeg.so - fi - - ( - shopt -s nullglob - local files=(out/Release/*.so out/Release/*.so.[0-9]) - [[ ${#files[@]} -gt 0 ]] && doins "${files[@]}" - ) - - # Install bundled xdg-utils, avoids installing X11 libraries with USE="-X wayland" - doins out/Release/xdg-{settings,mime} - - if ! use system-icu && ! use headless; then - doins out/Release/icudtl.dat - fi - - doins -r out/Release/locales - doins -r out/Release/MEIPreload - - # Install vk_swiftshader_icd.json; bug #827861 - doins out/Release/vk_swiftshader_icd.json - - if [[ -d out/Release/swiftshader ]]; then - insinto "${CHROMIUM_HOME}/swiftshader" - doins out/Release/swiftshader/*.so - fi - - # Install icons - local branding size - for size in 16 24 32 48 64 128 256 ; do - case ${size} in - 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;; - *) branding="chrome/app/theme/chromium" ;; - esac - newicon -s ${size} "${branding}/product_logo_${size}.png" \ - chromium-browser.png - done - - # Install desktop entry - domenu out/Release/chromium-browser-chromium.desktop - - # Install GNOME default application entry (bug #303100). - insinto /usr/share/gnome-control-center/default-apps - newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml - - # Install manpage; bug #684550 - doman out/Release/chromium-browser.1 - dosym chromium-browser.1 /usr/share/man/man1/chromium.1 - - readme.gentoo_create_doc -} - -pkg_postrm() { - xdg_icon_cache_update - xdg_desktop_database_update -} - -pkg_postinst() { - xdg_icon_cache_update - xdg_desktop_database_update - readme.gentoo_print_elog - - if ! use headless; then - if use vaapi; then - elog "VA-API is disabled by default at runtime. You have to enable it" - elog "by adding --enable-features=VaapiVideoDecoder to CHROMIUM_FLAGS" - elog "in /etc/chromium/default." - fi - if use screencast; then - elog "Screencast is disabled by default at runtime. Either enable it" - elog "by navigating to chrome://flags/#enable-webrtc-pipewire-capturer" - elog "inside Chromium or add --enable-features=WebRTCPipeWireCapturer" - elog "to CHROMIUM_FLAGS in /etc/chromium/default." - fi - if use gtk4; then - elog "Chromium prefers GTK3 over GTK4 at runtime. To override this" - elog "behavior you need to pass --gtk-version=4, e.g. by adding it" - elog "to CHROMIUM_FLAGS in /etc/chromium/default." - fi - if use qt5 && use qt6; then - elog "Chromium automatically selects Qt5 or Qt6 based on your desktop" - elog "environment. To override you need to pass --qt-version=5 or" - elog "--qt-version=6, e.g. by adding it to CHROMIUM_FLAGS in" - elog "/etc/chromium/default." - fi - fi - - if systemd_is_booted && ! [[ -f "/etc/machine-id" ]]; then - ewarn "The lack of an '/etc/machine-id' file on this system booted with systemd" - ewarn "indicates that the Gentoo handbook was not followed to completion." - ewarn "" - ewarn "Chromium is known to behave unpredictably with this system configuration;" - ewarn "please complete the configuration of this system before logging any bugs." - fi -} diff --git a/www-client/chromium/chromium-133.0.6888.2.ebuild b/www-client/chromium/chromium-133.0.6888.2.ebuild new file mode 100644 index 000000000000..ffe050806e0c --- /dev/null +++ b/www-client/chromium/chromium-133.0.6888.2.ebuild @@ -0,0 +1,1459 @@ +# Copyright 2009-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# PACKAGING NOTES + +# Since m133 (and backported a bit...) we are using CI-generated tarballs from +# https://github.com/chromium-linux-tarballs/chromium-tarballs/ (uploaded to S3 +# and made available via https://chromium-tarballs.distfiles.gentoo.org/). + +# We do this because upstream tarballs weigh in at about 3.5x the size of our +# new "Distro tarballs" and include binaries (etc) that are not useful for +# downstream consumers (like distributions). + +# It is probably still possible to download the google Rust and Clang toolchains +# and use them to build this package, however we removed this when upstream CI +# broke for m131 and haven't re-added it. + +GN_MIN_VER=0.2165 +# chromium-tools/get-chromium-toolchain-strings.py +TEST_FONT=f26f29c9d3bfae588207bbc9762de8d142e58935c62a86f67332819b15203b35 + +VIRTUALX_REQUIRED="pgo" + +CHROMIUM_LANGS="af am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he + 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" + +LLVM_COMPAT=( 19 ) +PYTHON_COMPAT=( python3_{11..13} ) +PYTHON_REQ_USE="xml(+)" +RUST_MIN_VER=1.78.0 +RUST_NEEDS_LLVM="yes please" + +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" +PATCH_V="${PV%%\.*}-1" +SRC_URI="https://chromium-tarballs.distfiles.gentoo.org/${P}-linux.tar.xz + https://gitlab.com/Matt.Jolly/chromium-patches/-/archive/${PATCH_V}/chromium-patches-${PATCH_V}.tar.bz2 + test? ( + https://chromium-tarballs.distfiles.gentoo.org/${P}-linux-testdata.tar.xz + https://chromium-fonts.storage.googleapis.com/${TEST_FONT} -> chromium-testfonts-${TEST_FONT:0:10}.tar.gz + ) + ppc64? ( + https://gitlab.solidsilicon.io/public-development/open-source/chromium/openpower-patches/-/archive/${PPC64_HASH}/openpower-patches-${PPC64_HASH}.tar.bz2 -> chromium-openpower-${PPC64_HASH:0:10}.tar.bz2 + ) + pgo? ( https://github.com/elkablo/chromium-profiler/releases/download/v0.2/chromium-profiler-0.2.tar )" + +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="~amd64 ~arm64" +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" +RESTRICT=" + !bindist? ( bindist ) + !test? ( test ) +" + +REQUIRED_USE=" + !headless? ( || ( X wayland ) ) + pgo? ( X !wayland ) + qt6? ( qt5 ) + screencast? ( wayland ) + ffmpeg-chromium? ( bindist proprietary-codecs ) +" + +COMMON_X_DEPEND=" + x11-libs/libXcomposite:= + x11-libs/libXcursor:= + x11-libs/libXdamage:= + x11-libs/libXfixes:= + >=x11-libs/libXi-1.6.0:= + x11-libs/libXrandr:= + x11-libs/libXrender:= + x11-libs/libXtst:= + x11-libs/libxshmfence:= +" + +COMMON_SNAPSHOT_DEPEND=" + system-icu? ( >=dev-libs/icu-73.0:= ) + >=dev-libs/libxml2-2.12.4:=[icu] + dev-libs/nspr:= + >=dev-libs/nss-3.26:= + dev-libs/libxslt:= + media-libs/fontconfig:= + >=media-libs/freetype-2.11.0-r1:= + system-harfbuzz? ( >=media-libs/harfbuzz-3:0=[icu(-)] ) + media-libs/libjpeg-turbo:= + system-png? ( media-libs/libpng:=[-apng(-)] ) + system-zstd? ( >=app-arch/zstd-1.5.5:= ) + >=media-libs/libwebp-0.4.0:= + media-libs/mesa:=[gbm(+)] + >=media-libs/openh264-1.6.0:= + sys-libs/zlib:= + !headless? ( + dev-libs/glib:2 + >=media-libs/alsa-lib-1.0.19:= + pulseaudio? ( media-libs/libpulse:= ) + sys-apps/pciutils:= + kerberos? ( virtual/krb5 ) + vaapi? ( >=media-libs/libva-2.7:=[X?,wayland?] ) + X? ( + x11-base/xorg-proto:= + x11-libs/libX11:= + x11-libs/libxcb:= + x11-libs/libXext:= + ) + x11-libs/libxkbcommon:= + wayland? ( + dev-libs/libffi:= + dev-libs/wayland:= + screencast? ( media-video/pipewire:= ) + ) + ) +" + +COMMON_DEPEND=" + ${COMMON_SNAPSHOT_DEPEND} + app-arch/bzip2:= + dev-libs/expat:= + net-misc/curl[ssl] + sys-apps/dbus:= + media-libs/flac:= + sys-libs/zlib:=[minizip] + !headless? ( + X? ( ${COMMON_X_DEPEND} ) + >=app-accessibility/at-spi2-core-2.46.0:2 + media-libs/mesa:=[X?,wayland?] + cups? ( >=net-print/cups-1.3.11:= ) + virtual/udev + x11-libs/cairo:= + x11-libs/gdk-pixbuf:2 + x11-libs/pango:= + qt5? ( + dev-qt/qtcore:5 + dev-qt/qtwidgets:5 + ) + qt6? ( dev-qt/qtbase:6[gui,widgets] ) + ) +" +RDEPEND="${COMMON_DEPEND} + !headless? ( + || ( + x11-libs/gtk+:3[X?,wayland?] + gui-libs/gtk:4[X?,wayland?] + ) + qt5? ( dev-qt/qtgui:5[X?,wayland?] ) + qt6? ( dev-qt/qtbase:6[X?,wayland?] ) + ) + virtual/ttf-fonts + selinux? ( sec-policy/selinux-chromium ) + bindist? ( + !ffmpeg-chromium? ( >=media-video/ffmpeg-6.1-r1:0/58.60.60[chromium] ) + ffmpeg-chromium? ( media-video/ffmpeg-chromium:${PV%%\.*} ) + ) +" +DEPEND="${COMMON_DEPEND} + !headless? ( + gtk4? ( gui-libs/gtk:4[X?,wayland?] ) + !gtk4? ( x11-libs/gtk+:3[X?,wayland?] ) + ) +" + +BDEPEND=" + ${COMMON_SNAPSHOT_DEPEND} + ${PYTHON_DEPS} + $(python_gen_any_dep ' + dev-python/setuptools[${PYTHON_USEDEP}] + ') + >=app-arch/gzip-1.7 + !headless? ( + qt5? ( dev-qt/qtcore:5 ) + qt6? ( dev-qt/qtbase:6 ) + ) + $(llvm_gen_dep ' + llvm-core/clang:${LLVM_SLOT} + llvm-core/llvm:${LLVM_SLOT} + llvm-core/lld:${LLVM_SLOT} + ') + pgo? ( + >=dev-python/selenium-3.141.0 + >=dev-util/web_page_replay_go-20220314 + ) + >=dev-util/bindgen-0.68.0 + >=dev-build/gn-${GN_MIN_VER} + dev-build/ninja + dev-lang/perl + >=dev-util/gperf-3.0.3 + dev-vcs/git + >=net-libs/nodejs-7.6.0[inspector] + >=sys-devel/bison-2.4.3 + sys-devel/flex + virtual/pkgconfig +" + +if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then + EBUILD_DEATH_HOOKS+=" chromium_pkg_die"; +fi + +DISABLE_AUTOFORMATTING="yes" +DOC_CONTENTS=" +Some web pages may require additional fonts to display properly. +Try installing some of the following packages if some characters +are not displayed properly: +- media-fonts/arphicfonts +- media-fonts/droid +- media-fonts/ipamonafont +- media-fonts/noto +- media-fonts/ja-ipafonts +- media-fonts/takao-fonts +- media-fonts/wqy-microhei +- media-fonts/wqy-zenhei + +To fix broken icons on the Downloads page, you should install an icon +theme that covers the appropriate MIME types, and configure this as your +GTK+ icon theme. + +For native file dialogs in KDE, install kde-apps/kdialog. + +To make password storage work with your desktop environment you may +have install one of the supported credentials management applications: +- app-crypt/libsecret (GNOME) +- kde-frameworks/kwallet (KDE) +If you have one of above packages installed, but don't want to use +them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS +in /etc/chromium/default. +" + +python_check_deps() { + python_has_version "dev-python/setuptools[${PYTHON_USEDEP}]" +} + +pre_build_checks() { + # Check build requirements: bugs #471810, #541816, #914220 + # We're going to start doing maths here on the size of an unpacked source tarball, + # this should make updates easier as chromium continues to balloon in size. + local BASE_DISK=24 + local EXTRA_DISK=1 + local CHECKREQS_MEMORY="4G" + tc-is-cross-compiler && EXTRA_DISK=2 + if tc-is-lto || use pgo; then + CHECKREQS_MEMORY="9G" + tc-is-cross-compiler && EXTRA_DISK=4 + use pgo && EXTRA_DISK=8 + fi + if is-flagq '-g?(gdb)?([1-9])'; then + if use custom-cflags; then + EXTRA_DISK=13 + fi + CHECKREQS_MEMORY="16G" + fi + CHECKREQS_DISK_BUILD="$((BASE_DISK + EXTRA_DISK))G" + check-reqs_${EBUILD_PHASE_FUNC} +} + +pkg_pretend() { + 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 + fi + + if use headless; then + local headless_unused_flags=("cups" "kerberos" "pulseaudio" "qt5" "qt6" "vaapi" "wayland") + for myiuse in ${headless_unused_flags[@]}; do + use ${myiuse} && ewarn "Ignoring USE=${myiuse}, USE=headless is set." + done + fi + + if ! use bindist && use ffmpeg-chromium; then + ewarn "Ignoring USE=ffmpeg-chromium, USE=bindist is not set." + fi +} + +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" + # We can rely on GN to do this for us; anecdotally without this builds + # take significantly longer with LTO enabled and it doesn't hurt anything. + filter-lto + fi + + if [ "$use_lto" = "false" ] && use official; then + einfo "USE=official selected and LTO not detected." + einfo "It is _highly_ recommended that LTO be enabled for performance reasons" + einfo "and to be consistent with the upstream \"official\" build optimisations." + fi + + if [ "$use_lto" = "false" ] && use test; then + die "Tests require CFI which requires LTO" + fi + + export use_lto + + # 936858 + if tc-ld-is-mold; then + eerror "Your toolchain is using the mold linker." + eerror "This is not supported by Chromium." + die "Please switch to a different linker." + fi + + llvm-r1_pkg_setup + rust_pkg_setup + + # Forcing clang; respect llvm_slot_x to enable selection of impl from LLVM_COMPAT + AR=llvm-ar + CPP="${CHOST}-clang++-${LLVM_SLOT} -E" + NM=llvm-nm + CC="${CHOST}-clang-${LLVM_SLOT}" + CXX="${CHOST}-clang++-${LLVM_SLOT}" + + if tc-is-cross-compiler; then + use pgo && die "The pgo USE flag cannot be used when cross-compiling" + CPP="${CBUILD}-clang++-${LLVM_SLOT} -E" + fi + + # 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 + + # 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" + fi + fi + + chromium_suid_sandbox_check_kernel_config +} + +src_unpack() { + unpack ${P}-linux.tar.xz + unpack chromium-patches-${PATCH_V}.tar.bz2 + + use pgo && unpack chromium-profiler-0.2.tar + + if use test; then + # A new testdata tarball is available for each release; but testfonts tend to remain stable + # for the duration of a release. + # This unpacks directly into/over ${WORKDIR}/${P} so we can just use `unpack`. + unpack ${P}-linux-testdata.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}/chromium-testfonts-${TEST_FONT:0:10}.tar.gz" + tar xf "${testfonts_tar}" -C "${testfonts_dir}" || die "Failed to unpack testfonts" + fi + + if use ppc64; then + unpack chromium-openpower-${PPC64_HASH:0:10}.tar.bz2 + fi +} + +src_prepare() { + # Calling this here supports resumption via FEATURES=keepwork + python_setup + + local PATCHES=( + "${FILESDIR}/chromium-cross-compile.patch" + "${FILESDIR}/chromium-109-system-zlib.patch" + "${FILESDIR}/chromium-111-InkDropHost-crash.patch" + "${FILESDIR}/chromium-131-unbundle-icu-target.patch" + "${FILESDIR}/chromium-131-oauth2-client-switches.patch" + "${FILESDIR}/chromium-132-bindgen-custom-toolchain.patch" + ) + + shopt -s globstar nullglob + # 130: moved the PPC64 patches into the chromium-patches repo + local patch + for patch in "${WORKDIR}/chromium-patches-${PATCH_V}"/**/*.patch; do + if [[ ${patch} == *"ppc64le"* ]]; then + use ppc64 && PATCHES+=( "${patch}" ) + else + PATCHES+=( "${patch}" ) + fi + done + + shopt -u globstar nullglob + + # We can't use the bundled compiler builtins with the system toolchain + # `grep` is a development convenience to ensure we fail early when google changes something. + local builtins_match="if (is_clang && !is_nacl && !is_cronet_build) {" + grep -q "${builtins_match}" build/config/compiler/BUILD.gn || die "Failed to disable bundled compiler builtins" + sed -i -e "/${builtins_match}/,+2d" build/config/compiler/BUILD.gn + + if use ppc64; then + local patchset_dir="${WORKDIR}/openpower-patches-${PPC64_HASH}/patches" + # patch causes build errors on 4K page systems (https://bugs.gentoo.org/show_bug.cgi?id=940304) + local page_size_patch="ppc64le/third_party/use-sysconf-page-size-on-ppc64.patch" + # Apply the OpenPOWER patches (check for page size) + openpower_patches=( $(grep -E "^ppc64le|^upstream" "${patchset_dir}/series" | grep -v "${page_size_patch}" || die) ) + for patch in "${openpower_patches[@]}"; do + PATCHES+=( "${patchset_dir}/${patch}" ) + done + if [[ $(getconf PAGESIZE) == 65536 ]]; then + PATCHES+=( "${patchset_dir}/${page_size_patch}" ) + fi + # We use vsx3 as a proxy for 'want isa3.0' (POWER9) + if use cpu_flags_ppc_vsx3 ; then + PATCHES+=( "${patchset_dir}/ppc64le/core/baseline-isa-3-0.patch" ) + fi + fi + + # This is a nightly option that does not exist any current release + # https://github.com/rust-lang/rust/commit/389a399a501a626ebf891ae0bb076c25e325ae64 + if ver_test ${RUST_SLOT} -le "1.82.0"; then + sed '/rustflags = \[ "-Zdefault-visibility=hidden" \]/d' -i build/config/gcc/BUILD.gn || + die "Failed to remove default visibility nightly option" + fi + + default + + rm third_party/node/linux/node-linux-x64/bin/node || die + ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die + + # adjust python interpreter version + sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die + + # remove_bundled_libraries.py walks the source tree and looks for paths containing the substring 'third_party' + # whitelist matches use the right-most matching path component, so we need to whitelist from that point down. + local keeplibs=( + base/third_party/cityhash + base/third_party/double_conversion + base/third_party/icu + base/third_party/nspr + base/third_party/superfasthash + base/third_party/symbolize + base/third_party/xdg_user_dirs + buildtools/third_party/libc++ + buildtools/third_party/libc++abi + chrome/third_party/mozilla_security_manager + net/third_party/mozilla_security_manager + net/third_party/nss + net/third_party/quic + net/third_party/uri_template + third_party/abseil-cpp + third_party/angle + third_party/angle/src/common/third_party/xxhash + third_party/angle/src/third_party/ceval + third_party/angle/src/third_party/libXNVCtrl + third_party/angle/src/third_party/volk + third_party/anonymous_tokens + third_party/apple_apsl + third_party/axe-core + third_party/bidimapper + third_party/blink + third_party/boringssl + third_party/boringssl/src/third_party/fiat + third_party/breakpad + third_party/breakpad/breakpad/src/third_party/curl + third_party/brotli + third_party/catapult + third_party/catapult/common/py_vulcanize/third_party/rcssmin + third_party/catapult/common/py_vulcanize/third_party/rjsmin + third_party/catapult/third_party/beautifulsoup4-4.9.3 + third_party/catapult/third_party/html5lib-1.1 + third_party/catapult/third_party/polymer + third_party/catapult/third_party/six + third_party/catapult/tracing/third_party/d3 + third_party/catapult/tracing/third_party/gl-matrix + third_party/catapult/tracing/third_party/jpeg-js + third_party/catapult/tracing/third_party/jszip + third_party/catapult/tracing/third_party/mannwhitneyu + third_party/catapult/tracing/third_party/oboe + third_party/catapult/tracing/third_party/pako + third_party/ced + third_party/cld_3 + third_party/closure_compiler + third_party/content_analysis_sdk + third_party/cpuinfo + third_party/crabbyavif + third_party/crashpad + third_party/crashpad/crashpad/third_party/lss + third_party/crashpad/crashpad/third_party/zlib + third_party/crc32c + third_party/cros_system_api + third_party/d3 + third_party/dav1d + third_party/dawn + third_party/dawn/third_party/gn/webgpu-cts + third_party/dawn/third_party/khronos + third_party/depot_tools + third_party/devscripts + third_party/devtools-frontend + third_party/devtools-frontend/src/front_end/third_party/acorn + third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json + third_party/devtools-frontend/src/front_end/third_party/axe-core + third_party/devtools-frontend/src/front_end/third_party/chromium + third_party/devtools-frontend/src/front_end/third_party/codemirror + third_party/devtools-frontend/src/front_end/third_party/csp_evaluator + third_party/devtools-frontend/src/front_end/third_party/diff + third_party/devtools-frontend/src/front_end/third_party/i18n + third_party/devtools-frontend/src/front_end/third_party/intl-messageformat + third_party/devtools-frontend/src/front_end/third_party/json5 + third_party/devtools-frontend/src/front_end/third_party/lighthouse + third_party/devtools-frontend/src/front_end/third_party/lit + third_party/devtools-frontend/src/front_end/third_party/marked + third_party/devtools-frontend/src/front_end/third_party/puppeteer + third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/mitt + third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/parsel-js + third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/rxjs + third_party/devtools-frontend/src/front_end/third_party/third-party-web + third_party/devtools-frontend/src/front_end/third_party/vscode.web-custom-data + third_party/devtools-frontend/src/front_end/third_party/wasmparser + third_party/devtools-frontend/src/front_end/third_party/web-vitals + third_party/devtools-frontend/src/third_party + third_party/distributed_point_functions + third_party/dom_distiller_js + third_party/eigen3 + third_party/emoji-segmenter + third_party/farmhash + third_party/fast_float + third_party/fdlibm + third_party/ffmpeg + third_party/fft2d + third_party/flatbuffers + third_party/fp16 + third_party/freetype + third_party/fusejs + third_party/fxdiv + third_party/gemmlowp + third_party/google_input_tools + third_party/google_input_tools/third_party/closure_library + third_party/google_input_tools/third_party/closure_library/third_party/closure + third_party/googletest + third_party/highway + third_party/hunspell + third_party/iccjpeg + third_party/ink_stroke_modeler/src/ink_stroke_modeler + third_party/ink_stroke_modeler/src/ink_stroke_modeler/internal + third_party/ink/src/ink/brush + third_party/ink/src/ink/color + third_party/ink/src/ink/geometry + third_party/ink/src/ink/rendering + third_party/ink/src/ink/rendering/skia/common_internal + third_party/ink/src/ink/rendering/skia/native + third_party/ink/src/ink/rendering/skia/native/internal + third_party/ink/src/ink/strokes + third_party/ink/src/ink/types + third_party/inspector_protocol + third_party/ipcz + third_party/jinja2 + third_party/jsoncpp + third_party/jstemplate + third_party/khronos + third_party/lens_server_proto + third_party/leveldatabase + third_party/libaddressinput + third_party/libaom + third_party/libaom/source/libaom/third_party/fastfeat + third_party/libaom/source/libaom/third_party/SVT-AV1 + third_party/libaom/source/libaom/third_party/vector + third_party/libaom/source/libaom/third_party/x86inc + third_party/libavif + third_party/libc++ + third_party/libdrm + third_party/libevent + third_party/libgav1 + third_party/libjingle + third_party/libphonenumber + third_party/libsecret + third_party/libsrtp + third_party/libsync + third_party/libtess2/libtess2 + third_party/libtess2/src/Include + third_party/libtess2/src/Source + third_party/liburlpattern + third_party/libva_protected_content + third_party/libvpx + third_party/libvpx/source/libvpx/third_party/x86inc + third_party/libwebm + third_party/libx11 + third_party/libxcb-keysyms + third_party/libxml/chromium + third_party/libyuv + third_party/libzip + third_party/lit + third_party/llvm-libc + third_party/llvm-libc/src/shared/ + third_party/lottie + third_party/lss + third_party/lzma_sdk + third_party/mako + third_party/markupsafe + third_party/material_color_utilities + third_party/mesa + third_party/metrics_proto + third_party/minigbm + third_party/modp_b64 + third_party/nasm + third_party/nearby + third_party/neon_2_sse + third_party/node + third_party/omnibox_proto + third_party/one_euro_filter + third_party/openscreen + third_party/openscreen/src/third_party/ + third_party/openscreen/src/third_party/tinycbor/src/src + third_party/opus + third_party/ots + third_party/pdfium + third_party/pdfium/third_party/agg23 + third_party/pdfium/third_party/bigint + third_party/pdfium/third_party/freetype + third_party/pdfium/third_party/lcms + third_party/pdfium/third_party/libopenjpeg + third_party/pdfium/third_party/libtiff + third_party/perfetto + third_party/perfetto/protos/third_party/chromium + third_party/perfetto/protos/third_party/simpleperf + third_party/pffft + third_party/ply + third_party/polymer + third_party/private_membership + third_party/private-join-and-compute + third_party/protobuf + third_party/pthreadpool + third_party/puffin + third_party/pyjson5 + third_party/pyyaml + third_party/qcms + third_party/rapidhash + third_party/re2 + third_party/rnnoise + third_party/rust + third_party/ruy + third_party/s2cellid + third_party/securemessage + third_party/selenium-atoms + third_party/sentencepiece + third_party/sentencepiece/src/third_party/darts_clone + third_party/shell-encryption + third_party/simdutf + third_party/simplejson + third_party/six + third_party/skia + third_party/skia/include/third_party/vulkan + third_party/skia/third_party/vulkan + third_party/smhasher + third_party/snappy + third_party/spirv-headers + third_party/spirv-tools + third_party/sqlite + third_party/swiftshader + third_party/swiftshader/third_party/astc-encoder + third_party/swiftshader/third_party/llvm-subzero + third_party/swiftshader/third_party/marl + third_party/swiftshader/third_party/SPIRV-Headers/include/spirv + third_party/swiftshader/third_party/SPIRV-Tools + third_party/swiftshader/third_party/subzero + third_party/tensorflow_models + third_party/tensorflow-text + third_party/tflite + third_party/tflite/src/third_party/eigen3 + third_party/tflite/src/third_party/fft2d + third_party/tflite/src/third_party/xla/third_party/tsl + third_party/tflite/src/third_party/xla/xla/tsl/framework + third_party/tflite/src/third_party/xla/xla/tsl/lib/random + third_party/tflite/src/third_party/xla/xla/tsl/protobuf + third_party/tflite/src/third_party/xla/xla/tsl/util + third_party/ukey2 + third_party/unrar + third_party/utf + third_party/vulkan + third_party/wayland + third_party/webdriver + third_party/webgpu-cts + third_party/webrtc + third_party/webrtc/common_audio/third_party/ooura + third_party/webrtc/common_audio/third_party/spl_sqrt_floor + third_party/webrtc/modules/third_party/fft + third_party/webrtc/modules/third_party/g711 + third_party/webrtc/modules/third_party/g722 + third_party/webrtc/rtc_base/third_party/base64 + third_party/webrtc/rtc_base/third_party/sigslot + third_party/widevine + third_party/woff2 + third_party/wuffs + third_party/x11proto + third_party/xcbproto + third_party/xnnpack + third_party/zlib/google + third_party/zxcvbn-cpp + url/third_party/mozilla + v8/src/third_party/siphash + v8/src/third_party/utf8-decoder + v8/src/third_party/valgrind + v8/third_party/glibc + v8/third_party/inspector_protocol + v8/third_party/v8 + + # gyp -> gn leftovers + third_party/speech-dispatcher + third_party/usb_ids + third_party/xdg-utils + ) + + if use test; then + # tar tvf /var/cache/distfiles/${P}-testdata.tar.xz | grep '^d' | grep 'third_party' | awk '{print $NF}' + keeplibs+=( + third_party/breakpad/breakpad/src/processor + third_party/fuzztest + third_party/google_benchmark/src/include/benchmark + third_party/google_benchmark/src/src + third_party/perfetto/protos/third_party/pprof + third_party/test_fonts + third_party/test_fonts/fontconfig + ) + fi + + # USE=system-* + if ! use system-harfbuzz; then + keeplibs+=( third_party/harfbuzz-ng ) + fi + + if ! use system-icu; then + keeplibs+=( third_party/icu ) + fi + + if ! use system-png; then + keeplibs+=( third_party/libpng ) + fi + + if ! use system-zstd; then + keeplibs+=( third_party/zstd ) + fi + + # Arch-specific + if use arm64 || use ppc64 ; then + keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 ) + fi + # we need to generate ppc64 stuff because upstream does not ship it yet + # it has to be done before unbundling. + if use ppc64; then + pushd third_party/libvpx >/dev/null || die + mkdir -p source/config/linux/ppc64 || die + # requires git and clang, bug #832803 + # Revert https://chromium.googlesource.com/chromium/src/+/b463d0f40b08b4e896e7f458d89ae58ce2a27165%5E%21/third_party/libvpx/generate_gni.sh + # and https://chromium.googlesource.com/chromium/src/+/71ebcbce867dd31da5f8b405a28fcb0de0657d91%5E%21/third_party/libvpx/generate_gni.sh + # since we're not in a git repo + sed -i -e "s|^update_readme||g; s|clang-format|${EPREFIX}/bin/true|g; /^git -C/d; /git cl/d; /cd \$BASE_DIR\/\$LIBVPX_SRC_DIR/ign format --in-place \$BASE_DIR\/BUILD.gn\ngn format --in-place \$BASE_DIR\/libvpx_srcs.gni" \ + generate_gni.sh || die + ./generate_gni.sh || die + popd >/dev/null || die + + pushd third_party/ffmpeg >/dev/null || die + cp libavcodec/ppc/h264dsp.c libavcodec/ppc/h264dsp_ppc.c || die + cp libavcodec/ppc/h264qpel.c libavcodec/ppc/h264qpel_ppc.c || die + popd >/dev/null || die + fi + + # Sanity check keeplibs, on major version bumps it is often necessary to update this list + # and this enables us to hit them all at once. + # There are some entries that need to be whitelisted (TODO: Why? The file is understandable, the rest seem odd) + whitelist_libs=( + net/third_party/quic + third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json + third_party/libjingle + third_party/mesa + third_party/skia/third_party/vulkan + third_party/vulkan + ) + local not_found_libs=() + for lib in "${keeplibs[@]}"; do + if [[ ! -d "${lib}" ]] && ! has "${lib}" "${whitelist_libs[@]}"; then + not_found_libs+=( "${lib}" ) + fi + done + + if [[ ${#not_found_libs[@]} -gt 0 ]]; then + eerror "The following \`keeplibs\` directories were not found in the source tree:" + for lib in "${not_found_libs[@]}"; do + eerror " ${lib}" + done + die "Please update the ebuild." + fi + + # Remove most bundled libraries. Some are still needed. + einfo "Unbundling third-party libraries ..." + build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die + + # TODO: From 127 chromium includes a bunch of binaries? Unbundle them; they're not needed. + + # bundled eu-strip is for amd64 only and we don't want to pre-stripped binaries + mkdir -p buildtools/third_party/eu-strip/bin || die + ln -s "${EPREFIX}"/bin/true buildtools/third_party/eu-strip/bin/eu-strip || die +} + +chromium_configure() { + # Calling this here supports resumption via FEATURES=keepwork + python_setup + + local myconf_gn="" + + # We already forced the "correct" clang via pkg_setup + + if tc-is-cross-compiler; then + CC="${CC} -target ${CHOST} --sysroot ${ESYSROOT}" + CXX="${CXX} -target ${CHOST} --sysroot ${ESYSROOT}" + BUILD_AR=${AR} + BUILD_CC=${CC} + BUILD_CXX=${CXX} + BUILD_NM=${NM} + fi + + strip-unsupported-flags + + myconf_gn+=" is_clang=true clang_use_chrome_plugins=false" + # https://bugs.gentoo.org/918897#c32 + append-ldflags -Wl,--undefined-version + myconf_gn+=" use_lld=true" + + # Make sure the build system will use the right tools, bug #340795. + tc-export AR CC CXX NM + + myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\"" + + if tc-is-cross-compiler; then + tc-export BUILD_{AR,CC,CXX,NM} + myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\"" + myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\"" + myconf_gn+=" pkg_config=\"$(tc-getPKG_CONFIG)\"" + myconf_gn+=" host_pkg_config=\"$(tc-getBUILD_PKG_CONFIG)\"" + + # setup cups-config, build system only uses --libs option + if use cups; then + mkdir "${T}/cups-config" || die + cp "${ESYSROOT}/usr/bin/${CHOST}-cups-config" "${T}/cups-config/cups-config" || die + export PATH="${PATH}:${T}/cups-config" + fi + + # Don't inherit PKG_CONFIG_PATH from environment + local -x PKG_CONFIG_PATH= + else + myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\"" + fi + + # bindgen settings + # From 127, to make bindgen work, we need to provide a location for libclang. + # We patch this in for gentoo - see chromium-*-bindgen-custom-toolchain.patch + # rust_bindgen_root = directory with `bin/bindgen` beneath it. + myconf_gn+=" rust_bindgen_root=\"${EPREFIX}/usr/\"" + + 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}/\"" + + 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" + + # enable DCHECK with USE=debug only, increases chrome binary size by 30%, bug #811138. + # DCHECK is fatal by default, make it configurable at runtime, #bug 807881. + myconf_gn+=" dcheck_always_on=$(usex debug true false)" + myconf_gn+=" dcheck_is_configurable=$(usex debug true false)" + + # Component build isn't generally intended for use by end users. It's mostly useful + # for development and debugging. + myconf_gn+=" is_component_build=false" + + # Disable nacl, we can't build without pnacl (http://crbug.com/269560). + myconf_gn+=" enable_nacl=false" + + # Use system-provided libraries. + # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733). + # TODO: use_system_hunspell (upstream changes needed). + # TODO: use_system_protobuf (bug #525560). + # TODO: use_system_sqlite (http://crbug.com/22208). + + # libevent: https://bugs.gentoo.org/593458 + local gn_system_libraries=( + flac + fontconfig + freetype + # Need harfbuzz_from_pkgconfig target + #harfbuzz-ng + libjpeg + libwebp + libxml + libxslt + openh264 + zlib + ) + if use system-icu; then + gn_system_libraries+=( icu ) + fi + if use system-png; then + gn_system_libraries+=( libpng ) + fi + if use system-zstd; then + gn_system_libraries+=( zstd ) + fi + + build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die + + # TODO 131: The above call clobbers `enable_freetype = true` in the freetype gni file + # drop the last line, then append the freetype line and a new curly brace to end the block + local freetype_gni="build/config/freetype/freetype.gni" + sed -i -e '$d' ${freetype_gni} || die + echo " enable_freetype = true" >> ${freetype_gni} || die + echo "}" >> ${freetype_gni} || die + + # See dependency logic in third_party/BUILD.gn + myconf_gn+=" use_system_harfbuzz=$(usex system-harfbuzz true false)" + + # Optional dependencies. + myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)" + myconf_gn+=" enable_widevine=$(usex widevine true false)" + + if use headless; then + myconf_gn+=" use_cups=false" + myconf_gn+=" use_kerberos=false" + myconf_gn+=" use_pulseaudio=false" + myconf_gn+=" use_vaapi=false" + myconf_gn+=" rtc_use_pipewire=false" + else + myconf_gn+=" use_cups=$(usex cups true false)" + myconf_gn+=" use_kerberos=$(usex kerberos true false)" + myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)" + myconf_gn+=" use_vaapi=$(usex vaapi true false)" + myconf_gn+=" rtc_use_pipewire=$(usex screencast true false)" + myconf_gn+=" gtk_version=$(usex gtk4 4 3)" + fi + + # Allows distributions to link pulseaudio directly (DT_NEEDED) instead of + # using dlopen. This helps with automated detection of ABI mismatches and + # prevents silent errors. + if use pulseaudio; then + myconf_gn+=" link_pulseaudio=true" + fi + + # Non-developer builds of Chromium (for example, non-Chrome browsers, or + # Chromium builds provided by Linux distros) should disable the testing config + myconf_gn+=" disable_fieldtrial_testing_config=true" + + # The sysroot is the oldest debian image that chromium supports, we don't need it + myconf_gn+=" use_sysroot=false" + + # Use in-tree libc++ (buildtools/third_party/libc++ and buildtools/third_party/libc++abi) + # instead of the system C++ library for C++ standard library support. + # default: true, but let's be explicit (forced since 120 ; USE removed 127). + myconf_gn+=" use_custom_libcxx=true" + + # Disable pseudolocales, only used for testing + myconf_gn+=" enable_pseudolocales=false" + + # Disable code formating of generated files + myconf_gn+=" blink_enable_generated_code_formatting=false" + + if use bindist ; then + # proprietary_codecs just forces Chromium to say that it can use h264/aac, + # the work is still done by ffmpeg. If this is set to no Chromium + # won't be able to load the codec even if the library can handle it + myconf_gn+=" proprietary_codecs=true" + myconf_gn+=" ffmpeg_branding=\"Chrome\"" + # build ffmpeg as an external component (libffmpeg.so) that we can remove / substitute + myconf_gn+=" is_component_ffmpeg=true" + else + ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)" + myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)" + myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\"" + fi + + # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys . + # Note: these are for Gentoo use ONLY. For your own distribution, + # please get your own set of keys. Feel free to contact chromium@gentoo.org + # for more info. The OAuth2 credentials, however, have been left out. + # Those OAuth2 credentials have been broken for quite some time anyway. + # Instead we apply a patch to use the --oauth2-client-id= and + # --oauth2-client-secret= switches for setting GOOGLE_DEFAULT_CLIENT_ID and + # GOOGLE_DEFAULT_CLIENT_SECRET at runtime. This allows signing into + # Chromium without baked-in values. + local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc" + myconf_gn+=" google_api_key=\"${google_api_key}\"" + local myarch="$(tc-arch)" + + # Avoid CFLAGS problems, bug #352457, bug #390147. + if ! use custom-cflags; then + replace-flags "-Os" "-O2" + strip-flags + + # Debug info section overflows without component build + # Prevent linker from running out of address space, bug #471810 . + filter-flags "-g*" + + # Prevent libvpx/xnnpack build failures. Bug 530248, 544702, 546984, 853646. + if [[ ${myarch} == amd64 ]]; then + filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4 -mno-xop -mno-sse4a + fi + fi + + if [[ $myarch = amd64 ]] ; then + myconf_gn+=" target_cpu=\"x64\"" + ffmpeg_target_arch=x64 + elif [[ $myarch = arm64 ]] ; then + myconf_gn+=" target_cpu=\"arm64\"" + ffmpeg_target_arch=arm64 + elif [[ $myarch = ppc64 ]] ; then + myconf_gn+=" target_cpu=\"ppc64\"" + ffmpeg_target_arch=ppc64 + else + die "Failed to determine target arch, got '$myarch'." + fi + + myconf_gn+=" treat_warnings_as_errors=false" + # Disable fatal linker warnings, bug 506268. + myconf_gn+=" fatal_linker_warnings=false" + + # Disable external code space for V8 for ppc64. It is disabled for ppc64 + # by default, but cross-compiling on amd64 enables it again. + if tc-is-cross-compiler; then + if ! use amd64 && ! use arm64; then + myconf_gn+=" v8_enable_external_code_space=false" + fi + fi + + # Only enabled for clang, but gcc has endian macros too + myconf_gn+=" v8_use_libm_trig_functions=true" + + # Bug 491582. + export TMPDIR="${WORKDIR}/temp" + mkdir -p -m 755 "${TMPDIR}" || die + + # https://bugs.gentoo.org/654216 + addpredict /dev/dri/ #nowarn + + # We don't use the same clang version as upstream, and with -Werror + # we need to make sure that we don't get superfluous warnings. + append-flags -Wno-unknown-warning-option + if tc-is-cross-compiler; then + export BUILD_CXXFLAGS+=" -Wno-unknown-warning-option" + export BUILD_CFLAGS+=" -Wno-unknown-warning-option" + fi + + # Explicitly disable ICU data file support for system-icu/headless builds. + if use system-icu || use headless; then + myconf_gn+=" icu_use_data_file=false" + fi + + # Don't need nocompile checks and GN crashes with our config + myconf_gn+=" enable_nocompile_tests=false" + + # 131 began laying the groundwork for replacing freetype with + # "Rust-based Fontations set of libraries plus Skia path rendering" + # We now need to opt-in + myconf_gn+=" enable_freetype=true" + + # Enable ozone wayland and/or headless support + myconf_gn+=" use_ozone=true ozone_auto_platforms=false" + myconf_gn+=" ozone_platform_headless=true" + if use headless; then + myconf_gn+=" ozone_platform=\"headless\"" + myconf_gn+=" use_xkbcommon=false use_gtk=false use_qt=false" + myconf_gn+=" use_glib=false use_gio=false" + myconf_gn+=" use_pangocairo=false use_alsa=false" + myconf_gn+=" use_libpci=false use_udev=false" + myconf_gn+=" enable_print_preview=false" + myconf_gn+=" enable_remoting=false" + else + myconf_gn+=" use_system_minigbm=true" + myconf_gn+=" use_xkbcommon=true" + if use qt5 || use qt6; then + local cbuild_libdir=$(get_libdir) + if tc-is-cross-compiler; then + # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181 + local cbuild_libdir=$($(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libxslt) + cbuild_libdir=${cbuild_libdir:2} + cbuild_libdir=${cbuild_libdir/% } + fi + if use qt5; then + if tc-is-cross-compiler; then + myconf_gn+=" moc_qt5_path=\"${EPREFIX}/${cbuild_libdir}/qt5/bin\"" + else + myconf_gn+=" moc_qt5_path=\"$(qt5_get_bindir)\"" + fi + fi + if use qt6; then + myconf_gn+=" moc_qt6_path=\"${EPREFIX}/usr/${cbuild_libdir}/qt6/libexec\"" + fi + + myconf_gn+=" use_qt=true" + myconf_gn+=" use_qt6=$(usex qt6 true false)" + else + myconf_gn+=" use_qt=false" + fi + myconf_gn+=" ozone_platform_x11=$(usex X true false)" + myconf_gn+=" ozone_platform_wayland=$(usex wayland true false)" + myconf_gn+=" ozone_platform=$(usex wayland \"wayland\" \"x11\")" + use wayland && myconf_gn+=" use_system_libffi=true" + fi + + myconf_gn+=" use_thin_lto=${use_lto}" + myconf_gn+=" thin_lto_enable_optimizations=${use_lto}" + + # Enable official builds + myconf_gn+=" is_official_build=$(usex official true false)" + if use official; then + # Allow building against system libraries in official builds + sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \ + tools/generate_shim_headers/generate_shim_headers.py || die + myconf_gn+=" is_cfi=${use_lto}" + # Don't add symbols to build + myconf_gn+=" symbol_level=0" + fi + + if use pgo; then + myconf_gn+=" chrome_pgo_phase=${1}" + if [[ "$1" == "2" ]]; then + myconf_gn+=" pgo_data_path=\"${2}\"" + fi + else + # Disable PGO + myconf_gn+=" chrome_pgo_phase=0" + fi + + # skipping typecheck is only supported on amd64, bug #876157 + if ! use amd64; then + myconf_gn+=" devtools_skip_typecheck=false" + fi + + einfo "Configuring Chromium ..." + set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release + echo "$@" + "$@" || die +} + +src_configure() { + chromium_configure $(usex pgo 1 0) +} + +chromium_compile() { + + # Final link uses lots of file descriptors. + ulimit -n 2048 + + # Calling this here supports resumption via FEATURES=keepwork + python_setup + + # Don't inherit PYTHONPATH from environment, bug #789021, #812689 + local -x PYTHONPATH= + + # Build mksnapshot and pax-mark it. + if use pax-kernel; then + local x + for x in mksnapshot v8_context_snapshot_generator; do + if tc-is-cross-compiler; then + eninja -C out/Release "host/${x}" + pax-mark m "out/Release/host/${x}" + else + eninja -C out/Release "${x}" + pax-mark m "out/Release/${x}" + fi + done + fi + + # Even though ninja autodetects number of CPUs, we respect + # user's options, for debugging with -j 1 or any other reason. + eninja -C out/Release chrome chromedriver chrome_sandbox $(use test && echo "base_unittests") + + pax-mark m out/Release/chrome + +} + +# This function is called from virtx, and must always return so that Xvfb +# session isn't left running. If we return 1, virtx will call die(). +chromium_profile() { + einfo "Profiling for PGO" + + pushd "${WORKDIR}/chromium-profiler-"* >/dev/null || return 1 + + # Remove old profdata in case profiling was interrupted. + rm -rf "${1}" || return 1 + + if ! "${EPYTHON}" ./chromium_profiler.py \ + --chrome-executable "${S}/out/Release/chrome" \ + --chromedriver-executable "${S}/out/Release/chromedriver.unstripped" \ + --add-arg no-sandbox --add-arg disable-dev-shm-usage \ + --profile-output "${1}"; then + eerror "Profiling failed" + return 1 + fi + + popd >/dev/null || return 1 +} + +src_compile() { + if use pgo; then + local profdata + + profdata="${WORKDIR}/chromium.profdata" + + if [[ ! -e "${WORKDIR}/.pgo-profiled" ]]; then + chromium_compile + virtx chromium_profile "$profdata" + + touch "${WORKDIR}/.pgo-profiled" || die + fi + + if [[ ! -e "${WORKDIR}/.pgo-phase-2-configured" ]]; then + # Remove phase 1 output + rm -r out/Release || die + + chromium_configure 2 "$profdata" + + touch "${WORKDIR}/.pgo-phase-2-configured" || die + fi + + if [[ ! -e "${WORKDIR}/.pgo-phase-2-compiled" ]]; then + chromium_compile + touch "${WORKDIR}/.pgo-phase-2-compiled" || die + fi + else + chromium_compile + fi + + mv out/Release/chromedriver{.unstripped,} || die + + rm -f out/Release/locales/*.pak.info || die + + # Build manpage; bug #684550 + sed -e 's|@@PACKAGE@@|chromium-browser|g; + s|@@MENUNAME@@|Chromium|g;' \ + chrome/app/resources/manpage.1.in > \ + out/Release/chromium-browser.1 || die + + # Build desktop file; bug #706786 + sed -e 's|@@MENUNAME@@|Chromium|g; + s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g; + s|@@PACKAGE@@|chromium-browser|g; + s|\(^Exec=\)/usr/bin/|\1|g;' \ + chrome/installer/linux/common/desktop.template > \ + out/Release/chromium-browser-chromium.desktop || die + + # Build vk_swiftshader_icd.json; bug #827861 + sed -e 's|${ICD_LIBRARY_PATH}|./libvk_swiftshader.so|g' \ + third_party/swiftshader/src/Vulkan/vk_swiftshader_icd.json.tmpl > \ + out/Release/vk_swiftshader_icd.json || die +} + +src_test() { + # Initial list of tests to skip pulled from Alpine. Thanks Lauren! + # https://issues.chromium.org/issues/40939315 + local skip_tests=( + 'MessagePumpLibeventTest.NestedNotification*' + ClampTest.Death + OptionalTest.DereferencingNoValueCrashes + PlatformThreadTest.SetCurrentThreadTypeTest + RawPtrTest.TrivialRelocability + SafeNumerics.IntMaxOperations + StackTraceTest.TraceStackFramePointersFromBuffer + StringPieceTest.InvalidLengthDeath + 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 + FileTest.GetInfoForCreationTime + ICUStringConversionsTest.ConvertToUtf8AndNormalize + NumberFormattingTest.FormatPercent + PathServiceTest.CheckedGetFailure + PlatformThreadTest.CanChangeThreadType + RustLogIntegrationTest.CheckAllSeverity + StackCanary.ChangingStackCanaryCrashesOnReturn + StackTraceDeathTest.StackDumpSignalHandlerIsMallocFree + SysStrings.SysNativeMBAndWide + SysStrings.SysNativeMBToWide + SysStrings.SysWideToNativeMB + TestLauncherTools.TruncateSnippetFocusedMatchesFatalMessagesTest + ToolsSanityTest.BadVirtualCallNull + ToolsSanityTest.BadVirtualCallWrongType + CancelableEventTest.BothCancelFailureAndSucceedOccurUnderContention #new m133: TODO investigate + ) + 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 \ + --test-launcher-jobs="$(makeopts_jobs)" \ + --gtest_filter="${test_filter}" || die "Tests failed!" +} + +src_install() { + local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser" + exeinto "${CHROMIUM_HOME}" + doexe out/Release/chrome + + newexe out/Release/chrome_sandbox chrome-sandbox + fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox" + + doexe out/Release/chromedriver + doexe out/Release/chrome_crashpad_handler + + ozone_auto_session () { + use X && use wayland && ! use headless && echo true || echo false + } + local sedargs=( -e + "s:/usr/lib/:/usr/$(get_libdir)/:g; + s:@@OZONE_AUTO_SESSION@@:$(ozone_auto_session):g" + ) + sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r7.sh" > chromium-launcher.sh || die + doexe chromium-launcher.sh + + # It is important that we name the target "chromium-browser", + # xdg-utils expect it; bug #355517. + dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser + # keep the old symlink around for consistency + dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium + + dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver + + # Allow users to override command-line options, bug #357629. + insinto /etc/chromium + newins "${FILESDIR}/chromium.default" "default" + + pushd out/Release/locales > /dev/null || die + chromium_remove_language_paks + popd + + insinto "${CHROMIUM_HOME}" + doins out/Release/*.bin + doins out/Release/*.pak + + if use bindist; then + # We built libffmpeg as a component library, but we can't distribute it + # with proprietary codec support. Remove it and make a symlink to the requested + # system library. + rm -f out/Release/libffmpeg.so \ + || die "Failed to remove bundled libffmpeg.so (with proprietary codecs)" + # symlink the libffmpeg.so from either ffmpeg-chromium or ffmpeg[chromium]. + einfo "Creating symlink to libffmpeg.so from $(usex ffmpeg-chromium ffmpeg-chromium ffmpeg[chromium])..." + dosym ../chromium/libffmpeg.so$(usex ffmpeg-chromium .${PV%%\.*} "") \ + /usr/$(get_libdir)/chromium-browser/libffmpeg.so + fi + + ( + shopt -s nullglob + local files=(out/Release/*.so out/Release/*.so.[0-9]) + [[ ${#files[@]} -gt 0 ]] && doins "${files[@]}" + ) + + # Install bundled xdg-utils, avoids installing X11 libraries with USE="-X wayland" + doins out/Release/xdg-{settings,mime} + + if ! use system-icu && ! use headless; then + doins out/Release/icudtl.dat + fi + + doins -r out/Release/locales + doins -r out/Release/MEIPreload + + # Install vk_swiftshader_icd.json; bug #827861 + doins out/Release/vk_swiftshader_icd.json + + if [[ -d out/Release/swiftshader ]]; then + insinto "${CHROMIUM_HOME}/swiftshader" + doins out/Release/swiftshader/*.so + fi + + # Install icons + local branding size + for size in 16 24 32 48 64 128 256 ; do + case ${size} in + 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;; + *) branding="chrome/app/theme/chromium" ;; + esac + newicon -s ${size} "${branding}/product_logo_${size}.png" \ + chromium-browser.png + done + + # Install desktop entry + domenu out/Release/chromium-browser-chromium.desktop + + # Install GNOME default application entry (bug #303100). + insinto /usr/share/gnome-control-center/default-apps + newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml + + # Install manpage; bug #684550 + doman out/Release/chromium-browser.1 + dosym chromium-browser.1 /usr/share/man/man1/chromium.1 + + readme.gentoo_create_doc +} + +pkg_postrm() { + xdg_icon_cache_update + xdg_desktop_database_update +} + +pkg_postinst() { + xdg_icon_cache_update + xdg_desktop_database_update + readme.gentoo_print_elog + + if ! use headless; then + if use vaapi; then + elog "VA-API is disabled by default at runtime. You have to enable it" + elog "by adding --enable-features=VaapiVideoDecoder to CHROMIUM_FLAGS" + elog "in /etc/chromium/default." + fi + if use screencast; then + elog "Screencast is disabled by default at runtime. Either enable it" + elog "by navigating to chrome://flags/#enable-webrtc-pipewire-capturer" + elog "inside Chromium or add --enable-features=WebRTCPipeWireCapturer" + elog "to CHROMIUM_FLAGS in /etc/chromium/default." + fi + if use gtk4; then + elog "Chromium prefers GTK3 over GTK4 at runtime. To override this" + elog "behavior you need to pass --gtk-version=4, e.g. by adding it" + elog "to CHROMIUM_FLAGS in /etc/chromium/default." + fi + if use qt5 && use qt6; then + elog "Chromium automatically selects Qt5 or Qt6 based on your desktop" + elog "environment. To override you need to pass --qt-version=5 or" + elog "--qt-version=6, e.g. by adding it to CHROMIUM_FLAGS in" + elog "/etc/chromium/default." + fi + fi + + if systemd_is_booted && ! [[ -f "/etc/machine-id" ]]; then + ewarn "The lack of an '/etc/machine-id' file on this system booted with systemd" + ewarn "indicates that the Gentoo handbook was not followed to completion." + ewarn "" + ewarn "Chromium is known to behave unpredictably with this system configuration;" + ewarn "please complete the configuration of this system before logging any bugs." + fi +} diff --git a/www-client/firefox-bin/Manifest b/www-client/firefox-bin/Manifest index dfe22496e287..65bc5757bdf2 100644 --- a/www-client/firefox-bin/Manifest +++ b/www-client/firefox-bin/Manifest @@ -101,6 +101,103 @@ DIST firefox-128.5.1esr-vi.xpi 673236 BLAKE2B da0663934b8462460f2a733da2e1887f1a DIST firefox-128.5.1esr-xh.xpi 418473 BLAKE2B f380e0e675c4532fdfec0e685ca53608cde69ade595551dc334a9f732d7656949185008246cd52ce0192aa6247b5a91065c66040bcea47431b63e9e63e764fc4 SHA512 9a80f686b3b9108fd63b37196845b4ab0c3ad3d177962f3de51db6b9b126b99ab4d6295fc07908d550ca6a020134d3139f424ba4d8dec794f39202cb93f8e949 DIST firefox-128.5.1esr-zh-CN.xpi 675197 BLAKE2B 5ef7cbbd136ad19effbaa3e27c6e0d16627b5f0cf38fa849e4e88086f0a421b9b4e1009e5572573c3f69f7e93509433b0047690d27784247e5990b5909233844 SHA512 d82fb4e9eecd1037d7ecc9660d656da9e7d679a8fdb850d5c4109d0c8ab20fe5dba0325d91efcf4025b1453d6c39e0036c20d18314ff6ce0d4a918c4be0b79c2 DIST firefox-128.5.1esr-zh-TW.xpi 677431 BLAKE2B d7b0a38dbb8a14146d2b26a5c5885e89c89a7b9ec2638eb97ea7d7f0157b57164b29ef7c26461ba196222809e86ff12befdde48be30ac87e2ed5d1b258d8a8be SHA512 44da6850818affc80e9257150d6fd001b50f238f2e40b61298329540cdaad94b6431c5a3d522f921a8f9b1393591ec90ceef654c7403d01f0deaf3cf0c77ab56 +DIST firefox-128.5.2esr-ach.xpi 465495 BLAKE2B 26ba49c6a195f46358e02cbf51fb523b5321a9be7567e7ea3a6c7bdd1e39cefc298cbee2ed9af99da39d236ebd7468d2fd11c330a54f0df9e1f19ce1777753f1 SHA512 05f806acfeb4af169d6e0204c0cec9559bd51052ec9a10cd9badf3bf8fa18406dd3a66d2784725b9b13597f1fd3d287dbb71e3b6ced86b80478519554b9b0834 +DIST firefox-128.5.2esr-af.xpi 418835 BLAKE2B 7023f777b5791833f14b626b2994295a1d1107852f12cc00b9ed0ec781e5d50741e35c0c1623bcc2fbe3dc71966f65e0ad2d968373589124d094bb84c84a093e SHA512 ba3261cb8debccccfb6734bad534bba439bb440d8ae5b61b49e344e8180bb2de37629abc2e0f2845d43cd8cc553ce7129bcd5328b297343e3e49f095c5e79ba4 +DIST firefox-128.5.2esr-an.xpi 508470 BLAKE2B 7a662ff5c905e87812a01f3aaba3a0f20e53e88c39b54de4bf105ca2d7e9666dd6872083a3840ed243b5fa2dba30adccc4cd278f939e1b2e119f204a297c7822 SHA512 a705ba07184a283a085bfd5df5210e56e6b3cd4001968aa3cbe0f3b68eef3b7053622082eab0d81faa4c426320173a565811241ae8f35fe80ca9aec4a5c0eaee +DIST firefox-128.5.2esr-ar.xpi 630812 BLAKE2B d3a2c131ff3c98440180f45b4e6ee2c5c975a107cab29d1eda11045f004ef3b14bc4226ff5b48b13ab117b54ce2fe2bbb918d46e444987f38d5db28eeef26f84 SHA512 7fe231bdb7e14a69e62fb56b0e0cdc319c334c04f6c97143a48c04f9c58364b6a964b185cc5d80ca9a8c677e07efcb9ea9d8820a23daccba94b74b2e0a6cd979 +DIST firefox-128.5.2esr-ast.xpi 497744 BLAKE2B 10bf85ca0ffe06f897b6d4d7cfcdf7e9d58ac0ca023930dbf31515d1d5ab74a98ab118ce2761acb61581dae1927d3cd17412b6a9a6436380be321afe5b3c4d5b SHA512 e243c3797695969d60b9c7a943631c89fdbbe9c826a261a934cc85be0d5c7a897164c2ff53d09fe3318586e1b097b6f423eab343d5819d38044f660429736d3e +DIST firefox-128.5.2esr-az.xpi 492201 BLAKE2B 17f93e6a9a8f2b8a5eb4c7a4d539717e2724c0070375d93970a3375cd04021f5f98578c01610576ee90f3da5546d19785029926cf1cd284efe439df44320ef57 SHA512 e69876dfd060afbeab8a378b1a545bf1e1b372eb50fa538203f0258e7aac2a9b164e5d9bc268979e4000c0e3064e990be89243fc15c285efaadc2dff674b31c8 +DIST firefox-128.5.2esr-be.xpi 731602 BLAKE2B 435861423f04d87afea2a5427a5b7dd8c5e509343c22c98b1c095310e622632311441ca1edcc2be38533a61dc63f0621c890e0fe43b92d66b4c5d948a3df85ba SHA512 8acb6a28595c807a24c13515ddc073a8b337df36a876fc18a05e07003d72c3954ecbf02e51e774ea9ca907f930267ebeb2a921616e14344ba9372770eee982cc +DIST firefox-128.5.2esr-bg.xpi 647388 BLAKE2B da397873bf2d23c7f85a9354faa1b4172e942d1dc233860b10eb73795ef740b56a7997528006eebd388d862b6346dd6dcd71f721259469c7aee568624264e5aa SHA512 ea24ab172acf4c3385434222eb1438e7322cc13ca1cded2aa0f172354a4c0e9093d6a23fa65106c8800dcce8789a85d304774e37f4bef470408ba7d4a57c7a3e +DIST firefox-128.5.2esr-bn.xpi 582955 BLAKE2B 71626b6d09478ce56a0025365a753cbdcafe570f521f6dedc0da01ac3bbdb9fa69c21a0f9d8ce1aaffb915e0e33765e0ff2a76c2e824905c96a20ee0d0c299d4 SHA512 7614146b520b6348d8595618661b6e0a7ed47a5ae0cca3b14a26bdd6e53176fe87323074c20282545e0d5e06f74d84582d4a8b361e8f474918e4a8630f94c918 +DIST firefox-128.5.2esr-br.xpi 595346 BLAKE2B feb438431070d09536fdd86fbc36cd4ee5c0e69fd06cd8125ece092d197af736080e436a1ceccdf460c746f235aa1dd1d6da858cdf07f6396b2652204e35e71e SHA512 fd760377d055f8c75ec1fc5ae5e2717befe02c79f3ab4abae936ec103a50f42c2313479ac65505f4b28520edbd0f4d58f8f68eaaa0e7f77ec4e14e928eb6a051 +DIST firefox-128.5.2esr-bs.xpi 515698 BLAKE2B 6572c60a288e0d13921e4b308581f2052007a9e3d38705712e3cea2dd4343394d6569dff5d54ed801c7e33de189839ed3c26eab17868f491b6a1e2c61989c446 SHA512 51c69a11653e66356968e7bafe0178a8e440583cc63b168379bb8134ee2227ab152aabf1d972d8ad815a485620fdc23ded022c8a168be1f4c280145059c3f0e1 +DIST firefox-128.5.2esr-ca-valencia.xpi 547680 BLAKE2B 8bbf1847afb26805538c2fbd081a3af49d178b2c6a2199e86d5a0a2211c4c5fd07981e5c251fe346af6286a25e9d30da2a8f51b56717a23ddf00ac2036d4c1e9 SHA512 49c9030e5727ba742888e0e75809f08bb2803bfccf9f5d07bd5832f2fdceac9808892b293875ac1d083ee49d61a1880a5211993790cff02ef410782fa8b35f54 +DIST firefox-128.5.2esr-ca.xpi 599221 BLAKE2B 60e88b3c4970b0196968dace47739e253e938e8013921f23645920209acc5f107e3ec30cad5efac08d01b9159a648609642bc7080ab661f7660fca30efa1780d SHA512 ba74165540bce14b484b1657c55043ddb9d79e9b65f1c023645ddd841a0e33fb0c2f7d34e3b3e3426581744d8f29f90e65a3ead05c4e8696815dbf61b9f6f2db +DIST firefox-128.5.2esr-cak.xpi 594635 BLAKE2B 0555b0dbfd78dce264b65016f34ff6ad445f6b2264cb659f62e0361a0e657eca559f1e3c7217419fdefe20482a5cb45b3ef6e9cc67cdde50062bfdd21bdb9b96 SHA512 3a74c1a16374603d1a45fdde1d68834f95e282f200bc6260657107b2041f9bb64e58eec01610cf873b5a7e2bd1a8ab6268b9e3bbd413a62f2d97fb5dae388c9b +DIST firefox-128.5.2esr-cs.xpi 675112 BLAKE2B 913c3093534745c86e6d6608ffb1bd86b2e1d018a41acd0058287123b23e0a9c6ce04705382fc93546e54b343fde862f6b42fbe7426f6991733dd5cd6c36d1fb SHA512 daa5ae949d1b2b09a97360ad79435942806071b42076d7dc5471cbae604903776c7efcde7e8fd0fd0f387c294f96fb3c41393801497ab72c775deaa9caee6c9c +DIST firefox-128.5.2esr-cy.xpi 641523 BLAKE2B 2f3561e033a3679c52ebaf4a5ab646180e3aa6ee0dc878ad198d1b3a4c93009781dda325d5abbde8a8edbde0cebbd076fa56b4b2d55ecea594477618c7a49349 SHA512 4af5ded6cf63b5ad1cae3b94a01159ba937484efbecaba068f9b4939842d43f75027b040e33eaa59b78de6b82c9027dce44d0dd218f44730d11ccee442044aa2 +DIST firefox-128.5.2esr-da.xpi 624950 BLAKE2B ca0a5aa8e0e8e9d6abb397c3f5047ad6382a47b40d476e4713bf2eff3e1a2c9c80f81a612f930054c176851e7e9b97852331c4de456d125f2f59eff772f1d2a5 SHA512 6174bc54a9e42198707517613381f0177420c32fbfd771b40ee9578a346d4f6832c29501911ff49869dbd8b7a08699d3e95f05d319f86ff54fba0f6e965cd9a2 +DIST firefox-128.5.2esr-de.xpi 647919 BLAKE2B 125e4531b47ddf61bc259ad612619e3322de60e5a9c211134176ba63b001863af8f88ec92662f57299a06c520ec4e0da5df6e5f6e71f036ecd1407e987f638cf SHA512 408d717eb032e97080c0d0510e7fa7276ea3b197e02bb283f386fe99da46765e9ffd642d4e666cdfdbbda14fcd1db0a9895db4956562f0510d5d9df97f231bca +DIST firefox-128.5.2esr-dsb.xpi 667678 BLAKE2B a2399fa07d53105273a55a04cfebb31b0c95d841ae7fff233b58adaeb8e7b27ec6d35d091f7296ba8cf372d2622bb3cfc1c9abe2d2653a93b549fb3311d0ed03 SHA512 952d2b0b110bbb1a81512bf00cfd3a9f2f7e90962b231e1e0fc700b04e9d89fbf094dfc8e15bde494b428374d03651ea62de8f251f4b9519b535a34a63d42213 +DIST firefox-128.5.2esr-el.xpi 752466 BLAKE2B f4a82082cba952872994f2a0a85aa5cfddb4c94c9d69f9a32a036c45737e52ae97318b1bdf206b6c311c88d01eb188d3c1093750eee5db0ca46ffdaab468f4d5 SHA512 43a1c75ec14921ec93c995a8454e8240f6ae12e6e026e4d8b67699d407f270b03733d3c2fe6c29e40427121f4379f9559e2581c843b155ddefadb994853f6d37 +DIST firefox-128.5.2esr-en-CA.xpi 597227 BLAKE2B 8c2c9656de6a814a0c531e4f40c4003fdb35b1474b74a9acec331ee12a0eae11c1b3c8a55988f9ab78173bda0d3fdec9c388e5368da51128b678e75effa9d0dd SHA512 de1b3af4a19b61c21a706261edf22c276f2169b8bfe0be09cd8bd91a703494223ad0d4c52fb2cfe0d7fff697135ed310a02c7794a6591dfcd33746cc8c386f42 +DIST firefox-128.5.2esr-en-GB.xpi 600783 BLAKE2B cad1a8b94990bdaecfc984db74cf6c3d180563817b4b3c10c7136a1b168fa386c553bb6fb983495f997b471de7e12224878d41ea0d39fbf51abafdb1ee1378ac SHA512 bb79ed2b18b2c0ca12936dfc7ea81fd73d2b04c92af0428bb1b01923ae477e9134fb4a4a1b2b76a2706a6968b53795cb29532809c4e969b75abea667f092d6e7 +DIST firefox-128.5.2esr-eo.xpi 628842 BLAKE2B b29e4ea3635d1f0d53499dece446998017b064b9fa956267e520b939b5a15917b21714250caaf9351019736e3971608dddf85e5b88826efbba664a246de19f1a SHA512 df734bb09351dcaf99579a203cdc4ada9d9e7e07fab69aef9c7037cd5dced5d76b8df9cd5a4a7e4f9f7bde06ff7b47c08e405919f230557bbd14eeada340612d +DIST firefox-128.5.2esr-es-AR.xpi 644971 BLAKE2B 414e2284735cfb01b92d35dc1de26723f9f70c7138cd271b00fbae9763f27a1056442495bc7aecb3b5a009a4e00e2de08d42fe9a46cce7dd495461088c97981f SHA512 ef4ff9f9677cc857450f5a3e0de52f04a001a7ee0913ddc21609ec6d88ba398ed8bde26ca34532f467b700b5b71cc4b1d12b26db24b0229c0a8e7d7db0b03d30 +DIST firefox-128.5.2esr-es-CL.xpi 644432 BLAKE2B 856efbd7769ebb9bebb9eeb6586c19a3433082ae9a51ffb778e1079b44ed756c37eeed8797fe7338b5335cc893573776ef2ed898f2303d1289f61b3781d5aeae SHA512 322875d12d81eec75f2e9e990ea7cc2962c62265760bd413218c8e860aaa8b943320f715dfd5e3bc2b13f205463af93c4bee85dfadf48702709c15bfa116f100 +DIST firefox-128.5.2esr-es-ES.xpi 637352 BLAKE2B 3b4d5aa314ad967865ba48b7eca1e80adefcbc7c7698bdbefa2630e9591ee173953ab23e9a54ee65a3b5a1cbd7011f011bae72b26c898e49ee2ccbbcd27d05f4 SHA512 778b7fab6e86f39b5d1c11ba2810581fda08122daf40ffeb092446691046655edbce08b1603c322d624878549163e7296b261539bf374d56708f6b13427cf496 +DIST firefox-128.5.2esr-es-MX.xpi 638926 BLAKE2B 7f04b2bbd1208fbb0b8dbd5dc775665712d29964ed8346137c7674a3e8b3972ac24bb794ae14e46c42671bffd3c0b004050efaac0142df6643864e8c5cb376f6 SHA512 69a97606fe5f6acbc1c773a36a6eb62ab2aa038a9001c88f71c92038a68f36c9ffde14229141560e3d09fb79820b34138c40d0b5f8b75d88e33090c413bb305f +DIST firefox-128.5.2esr-et.xpi 541131 BLAKE2B 7cd3a29920b915bd271b8bdceac64458461af9b84bbc2372d72052049470ab274753287044715c576078082108399bcf2ea8a0e3adadff4098e1f4de3c0ccbdc SHA512 19e4ffc520e3b53ec1123d6ef4c453d6cae9f273743006cb795f4fba2a698afa56d52f31e112cf4762c4bae29c77183b78e7b6333114b3954cf6a71e4cb072ad +DIST firefox-128.5.2esr-eu.xpi 612333 BLAKE2B d83fd16fe3ad93ecfab973edd0364398a812bcf79c05b2898fd2e7c00b8040c1397e3ec8a32b380790435b0c2cf3fa8a3924aa2a2a2a0470d932055c6f39ff44 SHA512 eff3dc50005ee1e84b6d3aa7243b83410bac530b99fe0dd644aa5064a3b0f7aada246f531f189264044679314468013020823e7c64e3f8eee671ad3c1d634b63 +DIST firefox-128.5.2esr-fa.xpi 593840 BLAKE2B dafaeb3c819a130dbd2ac47c00fb1ad2768d131f699a3615eff921d872df273a78a576aa26aacafae1e2eb1cf99c66b2a36fe0b0f9e140e8dd7cda46cbd89c60 SHA512 cb44715e0391fa73be2343722744976bb2d4d0894fff8509ba030a60bad5d85fc559c447815fcad33c7b7b1ba617c986c3804926c75764134eb5e98fe9c4b8f7 +DIST firefox-128.5.2esr-ff.xpi 477469 BLAKE2B 0157db4ae5aa3dacd569318abea471cf5e122e5ad8dad94fd455dde83891cc87e46c460798477ab5a6ac13d92857c01ea1af9bc3456b75f8a1d8c52f7d812a62 SHA512 ced8b0185d4e2f805ddd8d1f0b43896285adfcd58befee3b4ceb164a0d68e4e9d3b4ac930ffc00195bfea8aff5abec840bae817840a7127e97f22c68fcead8c6 +DIST firefox-128.5.2esr-fi.xpi 622991 BLAKE2B fec71c5c224944f275071d7b08fe9a3131321832b2854ba42d996619c58dd373ac7739cd3e25dee5d1bea27eb9341f232f72b1912306304b4bc71fb607e72aec SHA512 22977bd7228c86896a39b2ae5b97513c163403d7261d8517192af45c73acb3ef89b5b4a3183975e5a41f6cea5b57b88ec065f08bd6b6dc7c010bbc7fe756fcc0 +DIST firefox-128.5.2esr-fr.xpi 655857 BLAKE2B 2e1169fb19be9edde78d04838188963bae7627cc0488569752b4e6a792a09f9e405a9aec65667bf7b9bc684278217d78e38e8d467f625b8d3dcc00185d348db7 SHA512 f828996ee4d2d1b85bcfd7d9f378294eacf55bb29b54c98ad1348697c0635af2a4ca1b562e833a2bcfd6e9e8a81de1610592a740f69827153023d3612a9b1c7e +DIST firefox-128.5.2esr-fy-NL.xpi 640615 BLAKE2B 1b6f4dca159b1952e60fe207ddfabca8e7e82907309ba941edb0a32c26abdfb18b512bd0f7eb613ad28d5463790f9cc301c85cba5bc149f2b3da8c81da46ebf4 SHA512 cba2ae04d9ee6923dc943714710f30724f15a9b6703bcd09021461495c5932b2a040dadd8d951bdb16211c2f2b554396fa49ce71957c703f2832facab13c8f98 +DIST firefox-128.5.2esr-ga-IE.xpi 472323 BLAKE2B 85cce92bafd92df10f308c86b69e8a0dfc49a8d827e2603cc40ed98d078d10b2bb9f4f9b78ced325cf2ffb68a1fa0b6fe44db65833f75d4b23b3d2b058b670e4 SHA512 61c8608177936a294978cbe33259ceb2677ab2d2520885446174777ea6c04033dc9e48480956a427aa14a71ef030beaeddf5ee2b275bc2d1e67265f8fd71b715 +DIST firefox-128.5.2esr-gd.xpi 598318 BLAKE2B ca6528d20c2669310d86911820972a3404d0383b8aaa4ef0a88923ff36728ab9962b8bbd1ef7a8ada8d9488975b1652a5653ed61ba09d4cfc13cf2f9c1b9dba9 SHA512 e8b8843100a304ca575c95534037d18380505405a60263a4c7b4c4cc038c4c4665e0162342706516aa5f88b2a43f803cd74cba3d4a6e428f83e2c73b5d9459bd +DIST firefox-128.5.2esr-gl.xpi 609627 BLAKE2B f1ddf857f4dfbdcfc5944218661638510910a6ba5fb9d6d100aad739205389dd54ff4f00d08faa0d23454d8514e88a63f8a6709cede22a71947d5a7579b221bb SHA512 23f8bcf9d80d2a375e8d3740ff9adc4fbf5658c3115e45ba16ff16a6865724663a115863504a6a0b57106014fbe9a1bf977e0bba3bd757aa7096093c7d874b27 +DIST firefox-128.5.2esr-gn.xpi 652869 BLAKE2B 3aa2a1921cb23e1825bbfd14a41eac05baf8d8f3b47bd28ec03e7edcbeedf8b0ef1ba3f7abcb294e169046da10abb5a89def49e5cb66c100803e5a97ab3aae2b SHA512 9113e02bb561c4b6041c8de1534d0b5cdb23efe8a1d75a10010012e1d585f44c30597d5b5f598be5d593f09cb836ecea1f4e9e259c0ef55caa2fc7e515ee63d9 +DIST firefox-128.5.2esr-gu-IN.xpi 528793 BLAKE2B 21fb74b52f91084b5041c2ed530b113b93357d153893bfc1ce6e7d6acfa231a10bf3aed9ff7456142a52a0853d9682dead4b1c45e6ae4e90bf213f0c7bbf45e7 SHA512 4c1bebc98c62e077f2fe478017b3a85a05fdb6c2279aa5cc42c3136e0c51a3d5538ceaa66591936c3704cc5266c66b849200935743fc7f26ebf05066f705a2b6 +DIST firefox-128.5.2esr-he.xpi 647297 BLAKE2B 4421f2ef6141d0ebc31f51626f15d958cd61bd85c7e32a0e635da74fcc3db96a40e59a529f282571e1f786880557ea137bb6a5e855facf9f2851bf17063b6ece SHA512 ef57e53372cbf6b1cbb8a42c6f66601881e60ed96edcc25e547a8dcdec5dd0e4b26645c1c5020b0cc77d1f832dededb52728952cd6186ee2f6758a1b7f6fd847 +DIST firefox-128.5.2esr-hi-IN.xpi 568355 BLAKE2B a317e43e308b30ea6e6562055739ec7b126c4042816b19637d4638e09a3227d727dd71322c9dcfb26332bba2955f51b64e9db034a3d3aa55b68ad2f4eb11e7d1 SHA512 94ed939262c983db1db014c0a8878ee672f1a44db3eee5fc650cfcde054132752481d8ccb9a2ae29991fb9947aa1bf47023109ba58a6585b5472974b9c971b49 +DIST firefox-128.5.2esr-hr.xpi 619159 BLAKE2B 9f69c2725709efa1b82ab39efd64e61e1bb7580707e89e86e9aee61e3625b04aad04960370d6673d0925c993b54ce911edbe798ecbd916e77f9195d893939a01 SHA512 2404eabf40009be91b46a91427ab2a818ff114e526c870a8a49fd0ad496e73b10dcafe6974d066650e449631bb9674556188beba02181a9bc3f84f2c4432efde +DIST firefox-128.5.2esr-hsb.xpi 663551 BLAKE2B 5fe595a50e26cb92c97f2570b609303e07da42a80d5388e712ef8c51865535867ae76e6e6422a345c91c7e625b004f652d823548363c09203a9b51f8a15d7490 SHA512 04f2c22b8481628412b5b705dd6e5d3d403ae76ab30fea92e5ec20d7aaf3600932ed9da03a96c8acb8d36e7daa88381f5bd01ae5636bf709f91510e5d0d2eff8 +DIST firefox-128.5.2esr-hu.xpi 667795 BLAKE2B 9d83f3e0d659d6a8a09c2a01bc7edf69ed135891d74c6de00f04cdb0efb8dff50b3f9c73e16b6cf76f6b9269fd7391b482d6fc7b98294c606a421aed0c849062 SHA512 4fa3e236c4e3713a34f5dd6011b0be32134dc5706ce28ac05b3a255d1714fae9b7d13e183df962627f1c1497a0b7583aec8da3c48444e7f0f75ff5e62a329fbc +DIST firefox-128.5.2esr-hy-AM.xpi 653036 BLAKE2B 0a7af82df1437e88430de0f16fe1f0fba6eae3d69b19ca26188135fee89a343a636f8091e43d10cbd81e94670aa2700c6c76d5d860193a47f9cef1ced35708de SHA512 109c91356d91a8c77f7de02b022880e31c5b6046a74872b6dcbf656ee7bb3dcfa864f63fb1d4feb564f90ab9a4097a278eb94d4f3f4430dd6256a9e6d3b53d94 +DIST firefox-128.5.2esr-ia.xpi 627662 BLAKE2B f8fd934a6785c7d2b907f73f7185efd938346b83c49a4ab761bb0b66003fd68ef680736bd7da4402a2fe6d7585dfdde4e0a9462f9029a7fd0a034f771c594e52 SHA512 c7de844c91c9c3d03b01266f09196914621239e2b5a4151221317142e08d89b168c1f0525cb2998fc0ef1e533804d0a1676eabdcdf1b529783f2bb28bfbb179c +DIST firefox-128.5.2esr-id.xpi 587642 BLAKE2B 07f6c3ffb79adf76d172232c8b86a0c0e115c25d0f689f30d62a233efba06cfd29ebce641054b32d10bafaf93b06e22c980cb756f0005583d56d0319e0370fda SHA512 f12ed6032341e4c17c490c194ea128508add6c278646f4567ade4ab4a61f9d82fe7fabf7238a7fa3596d581a63cc47a882b01ab9be0a5d70e38d9bc2684124a4 +DIST firefox-128.5.2esr-is.xpi 630668 BLAKE2B 9199a8e850d83f1fb02ebc487fdb287dfcab4298576077a008ee71cdce00dcb924952515f6f10d9fbd8afd68b3d16ab2ff0c1b233906e4319f6aeed3b1cbe988 SHA512 454ff5af4e00f3dbae7808a0872560b4809e2c955559a22927d5eb3596ce9f43542968a04434720f2d6a6e848749789c12d5594c2be809def9350d7695e33c7c +DIST firefox-128.5.2esr-it.xpi 584352 BLAKE2B b497cfba9a2c01a5d19574b3564231cba6287e72540ef7c5f5ddce68bdd9840f10eb1d8b7c16c645feff9ed702d0467de502eb0a2d91de6681a7cb5ee93e5fe8 SHA512 b626f9b41335ac65abb59d4936ecc4c8aad832578e1b9f23ccd9837c44616312849956f736bb32dc7cfdc0bcad56d386cd20c1aef5df510aecac60ba9561fe23 +DIST firefox-128.5.2esr-ja.xpi 691945 BLAKE2B 583dd397afbf69e045ba953d2cfe6a73c5a62d5377e7a5aa248d9ce5f8298141a27846ab60d0501cf948eab9d348a61c370edeee1962047394531ad66984f309 SHA512 600e1c4be080d67569e901d3e577fc30785df07d5e835e7d346f1d0312c1d42327adc3167c5fb9c6c3ee36606305df5c1e92f33a84fd03a3467546772ba557fc +DIST firefox-128.5.2esr-ka.xpi 662324 BLAKE2B e2a7efea2b15ba62d053be045bdbae806818b730753f8180778c6a3e2de809fa1f83159acce820c26f87f8d3c3f56972cd741178c28d36a7e44a734975b5aada SHA512 69ad0bf9cde79eefc316b71a05323e98cd62c9455e1851c330ab198bbd1b5a2bf6ae7347deaf2c89df674c1dd910eb7c1577c0205f1e1192b62773f17fc7d076 +DIST firefox-128.5.2esr-kab.xpi 619280 BLAKE2B 74df69f5b7a889200effa84c16b28779df347bfd90128d8b5e084fef657b2529a0ce4598299388208b08b6b51b042ab16aac600b49c70d2ad3bbf85473c018ae SHA512 cfde7144e598903d06e350328cee1e76bfad624699e041f42b2e9e5593cc52b5f9893e93046f3ec1a3d83b33b608dcce4c672e3018ed673aab216ae00c9ff3c7 +DIST firefox-128.5.2esr-kk.xpi 727325 BLAKE2B bc7bd090e7f682901ad5dcd64fe99bcef15f5078a1fcdf81cc2dce062933dc9957ede1191cd4517e56e2204397de232697f3d8247b242131655b134b6de073bd SHA512 8449c1e33880eb564f4e59464bdf3127642b210c0ca4ef55acafdd2af5ee12a3bff356d686aac8dbf9b95959a4b72df7b123e1e799f081a2ee6719bcd78a3916 +DIST firefox-128.5.2esr-km.xpi 527171 BLAKE2B a8dc45691a7bc0ad13361789cce6076463ebad02c946451a85280419728c412707c1ab9209c62000b59900a94a6dc08d43d1ff17481b005b86aa4a3d9cb468a5 SHA512 3dde318091aebb7f3aa4f84bd083198987a42e83abfb3cf4357e45ce586741fce7cf237600c6d076aeda781ae276e4fb961b4f3cfef7890746e9d2214ee512c8 +DIST firefox-128.5.2esr-kn.xpi 492548 BLAKE2B f8f88a2b98f3ee70ff90610749adb8daeb201e55e4d8f3877a9ea8cb1732a21bff976ddea46353f6b1d45d2625ffd6c2adaecc714d3c64d4d1e159d0dacc32c6 SHA512 abf30e07882e3e1c67dd9a3767e44462f5205fc8670becb64ce9d2d927e396dfff48dd4280e5dc0c432a97136d7f15f79dd2c47ce149b421c89a4e39d4c8376f +DIST firefox-128.5.2esr-ko.xpi 679392 BLAKE2B e65a9560bd5b11ed711e52db614896c392189c3fe597af7410f7eba44aff153b98d3d49757ce0dc678a84dfee5f4882fdc72e95c78ba9d3752b19051da69cb4f SHA512 800677b0dfc98a0e6d4cb2d1a3ec69cf694bda6a1b0d02aba319ab5ad010304795ef24225be18a4eb2a9da6ad885b26f37bb799356fdb24ffac78e2c30f9b618 +DIST firefox-128.5.2esr-lij.xpi 485550 BLAKE2B ed66b06ff0e96d839075eac27f52cbc1aabc4b0b60b119c8bd007b034894c5e77d0e185ee96ee19149b7d07b49361aec3ac6c02db9be331fffecb7cc8e2264bb SHA512 098c125946da32aff673dcd42b48a2bec981067102461121e7d0dac090c43428bfc7cbe4052dd6be03d5851b530b01501a40bd6c8c8b29073aa438ab798d8018 +DIST firefox-128.5.2esr-lt.xpi 574127 BLAKE2B 5321896e378f3e3ec0beaffdb3ad349d2aef99b5f12e008bde84315f3fcafaca21eb85257f9ed80cae4de1d94fc9f453d7e04bb44f6cdc05face6388d8bf0efa SHA512 c0d466364f947562dd7f4984d8fbebda24e13f9cc452dee25b6088c59b969ba8408e42cfb209c7352ef6b45342452a81e0caf79ace7434911253c01cc79a791b +DIST firefox-128.5.2esr-lv.xpi 587207 BLAKE2B 7513260f3bc25b66ccb0f23bdd780f868403aad3b48cdb5c857067f6acc7632861a76df5f8c1176553b2dcef6ed83e3136b1f0ed6952685751c6151c86bbcfca SHA512 52cc52d62e3eef4cbf2e43efce506e9c1143c82d1386c567d8e427f97d7742832eac45647a3c708caf1e760d369134d87ff42edbfde12173497f2e2462c924a6 +DIST firefox-128.5.2esr-mk.xpi 495167 BLAKE2B aa7d90365cbb8b532a76bf367668b075733a3cf4b47a4a1819903ef3534227eb4631a13537a8b6af10206513711305b0ebad26150e83a8fc5e66cd0d2c549101 SHA512 cb5f330401cfdc21b94887be4d3817c9eef6c8b5a70a56d1a1c8e3e599c7af7921d9d576779501d48133b388fdd901f70b6407f33bff6fc70008898b7ff942af +DIST firefox-128.5.2esr-mr.xpi 533543 BLAKE2B 18f3dd681c35b1f0d3fe5c3604b13aefc48e3a11c8ae4d1c83edda7cbbfe83e8bad84ebbe42b54cf18cff41b38f025a4d88511f432e6303ff1d8a1d0ad048d29 SHA512 38f9a6509d3c0895dca4cfeed62d38d40b3c43199566407f234ff8b603d2ce728b0f4acce83a4e920156eee2e66a6b0aeade0a984dc4077afb70505a08ea5a9c +DIST firefox-128.5.2esr-ms.xpi 451157 BLAKE2B 929fda3f5bad03e713ae9045614956b0501392a6a984b32415bfc11b76161e46b25a23b4cfe5152cc8d6fbc684574a94b8f8d82a3a145350ac93f737ebcb806b SHA512 824669b965d802b539080b3060f26952e5f4695282b30bde8cd3d6bf1de86c66fe3f182cd862202dc597d61116fadd0663e4ee195b224702c32a1ed25d00abf8 +DIST firefox-128.5.2esr-my.xpi 519918 BLAKE2B 821e92314b4a66b537f421844bd89035155e107f1428002f49b4864394e9258ce7c4866906672de39150c0c27f01a67fcfb91b988ff4cb80334b267eb68313a1 SHA512 fd78da8117e087eaf4b8e70a525dfe01c2c466e4de18550446631f601f0c4b13551c00347c466e31592d704fcee011aef02b18fa4b4ecc6e6b21028c34055221 +DIST firefox-128.5.2esr-nb-NO.xpi 620018 BLAKE2B 129520ad1dbf512a82f463cde0bfb3eda732cfd58c0290b1e6e13e29f2311f34a4b41c3ea6d0efcdd9b587807e98a45e32c5a04fd3b71726f4de004caad4464b SHA512 af1fda22dea537be5fe393b5c04e2064863feccc65abb3985590a2544b58410b51b78ead65b2b371f2377a830818f994128378bd063158f6cd12e3b3b13d6152 +DIST firefox-128.5.2esr-ne-NP.xpi 522142 BLAKE2B 32f1246de99a717ef6dc345ed7f199ad813e263af0444348cefe9e19ed23b00f22a36d84ec746ba4baac0952983f1f7427d53c602be522d69829d2a4fafe5bea SHA512 8d0f424ecb6510147763bc116cbad88afc819e161c4f8ef25d691b3220942a2adf97eb6213d3081f03cad7159918383002de2b565774de24caf85de5973f96dd +DIST firefox-128.5.2esr-nl.xpi 634318 BLAKE2B 786bfa953dcba5475f21006f274227b21b1a0abe9fadc842fbf736d79bc78598afdfcb94d455fea35b5078d5909ad1aca0c3f8ebf2642b2cb6683b20c132ff05 SHA512 f057996d20e32644e39a0a685a1c1a62731f97cd8740ffdb77b88777ec5ef355d13002c13f32ab320c7544459467ba1394f4d8b17fad9a4dbda276e505d0e37d +DIST firefox-128.5.2esr-nn-NO.xpi 622817 BLAKE2B b50af2fd1c161381771e0627d927dc85004e243fb054d971f94135b5b2d23d7b3e345e9274d5e9eca88b3a1c2a3d751983d1a39e632182dfdfc4a1f69b89722e SHA512 eeacc6e5448a52cd513ddc867bb9df009c0cbac994fa149ce157e5fbbabeb88a3893cd386a9f5865627e40c18ae32c3d891977abdc8c57d0afd50dd53760dfae +DIST firefox-128.5.2esr-oc.xpi 615798 BLAKE2B d0315a053509d9984a56f4a8821d0254037359e2d2c424b6ed394c9acc0135edbf8e75530488b69f91195cc935224dfcbd170386ffba2c9fac62ba3759496a2a SHA512 854cdfadeeaf1fde8823ad98f57014367ddc523594e0f08279230254fc2616b1fe040d3df5fade61715cca6ca51e996cd3f22058058d5b21fde3ca8cbf1adeec +DIST firefox-128.5.2esr-pa-IN.xpi 711081 BLAKE2B 203e3e20dc80a12b4ce51c8522b8cea2ac480ad874151ad28eb24ff48399f36a3a006982319ee90122b76ac04f4aabee8159524a8ce69d7d3ccd7bfe014518a9 SHA512 7ea92a6d20eb566da396cb31f2c5cd9587cfe8b46935d86cf286842c38321888559889d34248a4fbc2eb28b29718442f83302624129bdb14488c27231d45b5e1 +DIST firefox-128.5.2esr-pl.xpi 648788 BLAKE2B 3a105aa3062c9a066f1df0565329a029ed4a197968af5d152d6efab2d64fcc778725bf9c68cdde788b842c6d585ea17620ea889e60f130a0b9fc0ada0240585b SHA512 14451ecc6360b0b2da2d9d7b043ae5b95472f5177ded9dca64784e0508d31894b81af4d69fc352eea846feaceb447f9d54b85bde9b2ee51fe23cd7cb37889625 +DIST firefox-128.5.2esr-pt-BR.xpi 638916 BLAKE2B 87c14402d92c483ce8c00fb68391eb708da154177440a6a0e68dad7530a268b413b8fd78f886668f946d63caa6300457cdc20f273f644afbd9f2e0d3db87e0e9 SHA512 6b751730fbc0bb3820f5e0fdb2ebc0ddb87b319da9a66c0e37aafb3d14200333c9cdd12269dc3ba54ed7d2168d72e005612589586d3970e94277b10dadddf3b8 +DIST firefox-128.5.2esr-pt-PT.xpi 642497 BLAKE2B e32b0200e98e6e4808490c099c37cdd450387afcdc8a3a84f43b3f83ded1d4267e8e6f8719491bedee23929548b046c56f1fed9c89a02bf86877fea32e2cd425 SHA512 5cd91032020d9c45747d7c8ca34caa7057d67ab3beabbef92bb95e6a947ae773def49111d5a6f08f4ea53c9a59998619d74ce92c052a265708fa882b3646996f +DIST firefox-128.5.2esr-rm.xpi 631435 BLAKE2B 4c2dadb19d6ec1209cf9f420e146b8abaefd08699d2e9d4812d825286fe711c3369c6df4692a4ac83e2d036c52fc96e3371221ef4bf11d9ea74b0b9e59ebb0f8 SHA512 2c259074c3789b36ab11e76c9bef0412ad1eaacd093251270cc4423f459cfb51f2aee8127fdb788b41a55944607fa0a2edd5ace22103d8bd19d1e4b26480f05f +DIST firefox-128.5.2esr-ro.xpi 551223 BLAKE2B c5429995b28f79a5b73532c3f000b6313df47f0233c2cb1ac1150a3cdef7b603a4aa87f3348eff02c9458e9a2bf84bf3fa4494e324a34107ac5796b418caa077 SHA512 7afe6bcfe5e4d408cfce1e75bb1b33eecb2deac906a4f12f997660e5a41d9ba44600d92f86f14aaf966fd59c2b2614343db7d7608d3f74ca8a6bdd0396a68f5b +DIST firefox-128.5.2esr-ru.xpi 740414 BLAKE2B 5b749762af8623090c9c3671cfeb034167fd8d97344cade16aa29881006b9a0a321eb67229a40bd6eaf4d823770b71834e3c532c8c52c06cc7aa7b05b5dbe428 SHA512 ccef03778c9a993e3a8e335ff755526f27909756a553660b0d0ae94358c7fb99767f00e3d97b6c03246e0b2f138bb8506231e7d4bd9d4febbf133bac6d29d3cb +DIST firefox-128.5.2esr-sco.xpi 512709 BLAKE2B 9c975628fd0810496ab4a5caebea6a588726c0df9588e96f11ab53d6a899bd801e58cd24b2a4a9426fd9352dfaa4e4e6c5a17dffce9aa9619c26ca3cb40fc894 SHA512 17d75f7564e9a9ce35b3bbad14b941c24b0a930b0393252abc69c2c5533fb2e76fd4de7bc656f50d4f7c6e4776489842006fd521fc986896688bb4d725aeac84 +DIST firefox-128.5.2esr-si.xpi 621564 BLAKE2B 91aa14ca7b06c5aa37156213dd1f9e01eea9eea05abfc61c0cbf9bb7dd97b8b6c91b31312251bcde4b668ffdc0582b03210fab28c26c7f2db914541a55925d13 SHA512 9e3f60272695f4d0acd2c7a2ee89afb1bb97c53f57d45357d4d6266ab5f0273e9e1845ea7c3050c9882d0a5f656a51e099a3c17ec5b325791e05b84422ae980f +DIST firefox-128.5.2esr-sk.xpi 670795 BLAKE2B 952b1830564a1fefa6bb9830c249e620823d421fcd9a3c91739c9a0c0eaad4c21775ee6b510e634fe687943248d35ef9a60c0047415fdcf2c3f9523ac6229fff SHA512 80c2e66e7152de9c9e261ed70d5e4d3858a629060f9b0cff9661f77c1fa742bebb706277f71d482ce62bae12e7efdb95ed8362e9309fe8b816aabd932df98599 +DIST firefox-128.5.2esr-skr.xpi 722726 BLAKE2B ade3e3aeaf4947e4794e124f6a830aa0dfa382b9636d84ba7254551c6651cff8b041c318ce58eb83f0a7bef677ff2e8625a57405f49b438d78bcc363acb6b700 SHA512 2f0f1911040324d35c47b09b26257386399a876f3ec3aabd4736d998b34dab43f77ea5a1674f2184e69fd5978c64ba26fcd2d34d9a11e1bfb72b43be0308403a +DIST firefox-128.5.2esr-sl.xpi 633854 BLAKE2B 333b775e69f83c6dac5a07a2b059628e7c0bdddc2c5e4932130eaf4e5b4f7f0646414a98eb953982030037a54003a75042deab053a175d1c35cb6762cf07d6cb SHA512 b00112be5a252b0e1aae42b68423ce50fcd11581084b4eb17cf81b0b94fcbae4ca156b0ffd5ab3aea1b753e0a064e895a9aa0e20b7438c64942cb2edca821d51 +DIST firefox-128.5.2esr-son.xpi 417711 BLAKE2B c6904055c650f03da047e546998d5add5613d3f055dffaa4c67193650e00777917fd4ec602e613d6c4bdb9ad667c5564b4c5e6bf923aa2a2e71a62b5dc9b6809 SHA512 4c2511996be6cb4a9f68da7b984d1ea00e4a8987c3da238e4b9e2c592832166ae5df79a109d4f46f118437862f9ab4ff76a7581b36eb6bd3afcfc10566ab9ab6 +DIST firefox-128.5.2esr-sq.xpi 652191 BLAKE2B a58d89ae41ea220d4ddfa03ebd76ac9d8b71a3a39f30f675ece298723c2ae466a3947c9d7433006e8f170345dfa8e758c3699f5b9b6cfd57dfff7b5dda40e7ad SHA512 0844529924312d9c54ad9d46a3f1c41cfcf7d306faa8d8135f2f11b87a4569293266e0a956a94494248ea839b8b4b0790364502025a488b5c4a4386869100dc9 +DIST firefox-128.5.2esr-sr.xpi 640908 BLAKE2B 75c893110ca63644cb6a4b3d4fe0b7f182e81c6cb497b91753d9c058f89a7d042dc713ea6b589ee4cc08fb7342d692ab6764b8c4f8807c85a810cce7271d0937 SHA512 570c10716a37e6a20b9e7a6d13cd03982fe446cf4ee068e6b128854a6c697b77577df27c79001f4ec0e4e82113f7ac7eefbc6e2454e4ace99c68575a6d068b98 +DIST firefox-128.5.2esr-sv-SE.xpi 635642 BLAKE2B 8578f5e8dedbb1b3269e88cbc55ad7156a4c82640b930ac8570a7acf8a27da5c2d24d8c92e9922522c32faea6b8100a7f50d9ccd5fd5c87d2376342543a5f5b8 SHA512 82ccc39211530962feadf7cfd285b375de114d56096e927b49cba534554c2a43b95cbb1013efcc845b59ee29edeeaadfd7f5baedf82787e52c0e5add72f1bb56 +DIST firefox-128.5.2esr-ta.xpi 508805 BLAKE2B bb021a49f26171c4dd395e44c8cbf3fd7ac66c59c8169f07c488abd10c3d85700d0f4556158c4c511a85e0a8153ff3b93dfa2c43d63e34b167cd21887c3fe8ca SHA512 185aecb227fac8fab6cef610d8639f08e6780ee0ce64a76de91580918bd3112f8b009b278a45f41d428b1ad84e3f1ee6ed3242727f79255d5468f3d0d7bd1b5c +DIST firefox-128.5.2esr-te.xpi 565161 BLAKE2B 750106f7ec8906a40c2e4df227272121f7313b0a1f8c37c7950e85d54d5e9559641bb889bd07304074d9251178c80f82847e4221da9de91630d5d557473be144 SHA512 5082a52bdcd1a444cbb7cc0a6046b5f8cd455d169bca7980624ecf761dc4c46967dcb9d90466f4908e1ad60c1fd98766acf35b1b1c8abb28a2c082977858057d +DIST firefox-128.5.2esr-th.xpi 711800 BLAKE2B d7f802f85b3269e1ae0daf292803a7572ffa2696d926af4766cc59365edde597b6b128345c039a8db878f1a1699c48a08f11b24f1f0ad1ec5c8e7aec9f215a51 SHA512 bc00869f4f6393efc43da2ae8ab6c0f4b7e1215f8c9ac587f33a5095d5cf9373b8d619e977ccad8faa0a84da8245adffbf25d31e21f22362cf71c76ad024d83d +DIST firefox-128.5.2esr-tl.xpi 535607 BLAKE2B a6a6af2d5009ed27c6fac4799c1a0f30af1c0963db989be1e31f0979e9c6a7e4d5c915051da1ed528f82b2ac6a08447892898dbe94c9171a261ec5afadcde98b SHA512 8a99c8936ba1b78cbf0fd6befd605e8a297b054063f8fb4db65491bf3d0aa13581430d883d9051af300acd370a02f2c35c751cc6beba372185238d91c4b1b8b9 +DIST firefox-128.5.2esr-tr.xpi 649213 BLAKE2B 2f10fe6ab0e96cf79305e10f9e4c33dc10f400d5bf0513e7bf543615e2c8c2f0576243de5e65c7d785585967be6e06f7912cb760fc6097c762e1960b705c17eb SHA512 e53bf4799202d9a636bed8287b8e38dc74e96f376a5cfb0c7aa1d460d9c9c78b09b4316d9d43dd4b8541261c8e9fb320b4a81e386727703e4d414a147547643c +DIST firefox-128.5.2esr-trs.xpi 505795 BLAKE2B b228ad565dff5db6148ef66b295bd9f6538aceec11827f20706516f14ddc8409b7dac42b29799a3303d209501f7f02a74f20156316516a29da5ad055dd6a11ac SHA512 8dac1a066c102332cc144dea951324cb2f7682e90bc4b2b22a0ef0fd5716c41a788a151ac5aede0d0a0beb501d55c4022133d20353a56ba9c59c8c8a3f265a25 +DIST firefox-128.5.2esr-uk.xpi 731684 BLAKE2B eb8d9c77000b9728cfd60ce4277a1918e8630aed5b7d97e6f247f0a8c4077d888c3975fe031e583e52764848538353645b569669a33c4a5dc0ec2c645969a454 SHA512 2cf1a67e05fb40a37c2c2a8041baf7c81b482b6d1587e3d8af50c8098bbd11bcadd6c58c29ed31c3f656784b3714ddd2d070087d73777b90289fdc7d9d614b40 +DIST firefox-128.5.2esr-ur.xpi 561778 BLAKE2B 8feaa81d0ed51ad63b289557ef264e9d7e310e8acc50871a60883ada97c01eae6287f2a08f1c14cad534bbb5b65814533767bad2bb87ea7b04c6a7f4d7ed137c SHA512 2c1581a6fbf88ee54695473ba2cd19782bb0065ce1717e88ad772d4dc1c2eb8cde8ebf420932a47f18d1d763adf644b21726f89133d4cd7a316212f8019ab59d +DIST firefox-128.5.2esr-uz.xpi 480226 BLAKE2B 4e2e5a2a56b5459913ce037f86b13828ea5661e3f5abbdd2cbd7dce9689b57e2245eb1739af52ccbcc5b22af3888dc8b88624b346f6a0d25e7f99d7e3cf071e0 SHA512 a6fd230a2bcf076d8a9a12642812be2b653ef053dc0fecb8bb8f93c77bb13fdbae892a859866a1a5d3dad94d56b6f336603582af12caeb35df8e1d38cf88603f +DIST firefox-128.5.2esr-vi.xpi 673227 BLAKE2B 82ce1ab2302defa025b4cdbf2ac5c161e1c6d5f7de99ac51016f5ff2c3a157f4a0e36b3d6067ab4d8d4135327639f3d5c7ecdafd86d6ddba15c8c9d90e17e5e3 SHA512 17df4e4880f76b60fda58a22d95d8232647ffe21382db87ac11a030fa2286c9a5fa3ef96ef804d4e89caed92d1cffa822696a104a54bfd270d7387c992497176 +DIST firefox-128.5.2esr-xh.xpi 418471 BLAKE2B 8a79bc0d5fe75f202ac8f360597972dd18df110f780a1eb52706e0b8785056bbc3fa060ef19bd3c1cf4b89d0f9756524e9bf8705b7ab391b3188146ee920499f SHA512 7d7595ebce9862136b7a484e00f8746ae50265b6a23b9dbf5128e9c342ba5c56b1efcfbd61582011cc8d88e9ac543b8f11f266cf1854ed18b63933e21c5f757d +DIST firefox-128.5.2esr-zh-CN.xpi 675193 BLAKE2B 7004692438b358a9c8510964f50799782bd60e83133fca53a13eca5662ef01b771b7fac7a44486a88b388938b51074efaa5b943c495d3f9054326430283c33e2 SHA512 b61920aa802aa5679dca274899a6b97f846ebc221cd5a111cf2be217d9579cfb595fafee93d8e0c4eb67e19f79921e902ffcd84be90e6fd96d258ae1647de7b9 +DIST firefox-128.5.2esr-zh-TW.xpi 677421 BLAKE2B 531da7844db037a22c4671c11dd647f3d9d0497597012f7c0247188fd5a79389c5dacd8a7da8fbe748599ac8057064b410022843bdc39a87a8817272bfc3720a SHA512 3c789734b539984435210b24fae49facce506757f45888136e46c67bf7446e7d3adc67d2153a5354e58fca858eab2ebef884d666b74dcf9bf654f3fa41cb5f8a DIST firefox-133.0-ach.xpi 468550 BLAKE2B f43831186c2b63a701a5f82d0a6352d3171de07d480b291c3b49124a437e07075ac1590b78527bdf8bb0699d1084991a29683a8997e1c06c7b317b28d37678c5 SHA512 150daddb52ed7635091fb484679f8defd0038a6b67519bb817ba16c4bcaefd2feada7971505505be41f97a563d4d1d49d9ee5e0c50fbe36885b333600abc2b39 DIST firefox-133.0-af.xpi 421559 BLAKE2B 66732fe0f7b6ba4a02124340181e4105ef13b5b529e7588b0f94072ca85d43920c83808874d6c8431fc1bbf18869c2f3547c8c933a08e2d2625c761880024d87 SHA512 c9d1206cd565ac4044d3eb329e689b067591f5ddb50600ac748f7e768bca872dde9c34879ca91cc09df37bc7dfb38834e3725f4c7d64ec2828cbd2c2f3b2c9c2 DIST firefox-133.0-an.xpi 511308 BLAKE2B a412d766bca75f8e7968cbc048d5548ef583b47fbe39476db0a33f367592b0cf042e6b8a5056114d282121f5e23f368433f919a42a25911f0f12846966657946 SHA512 465130689e67dbb0be1eafbfaba3ec5216fb150d4f7d8e31a01b939a1ae2d544a60dcafa5e343625dd605de5fcd34c9c4d652c4bf3c6cd2d5b255f61e0b98b2d @@ -296,12 +393,15 @@ DIST firefox-133.0.3-xh.xpi 421372 BLAKE2B 79238c6ce683f1d9cc585f8ce40e1603df46a DIST firefox-133.0.3-zh-CN.xpi 679309 BLAKE2B b6f9d3ac6055a258b78857dddffb89c97f2b77bd859bdab6bb20c7791f811267bcc09db2b451ed56855c074cbb9a7c6b09c375819e951f89d67b011178b30f82 SHA512 c42eba97f3069b38fdae933489c6dc1b9fbd7ab866830b4d3fbdbaf10969e1cf4665235193ae6985d032fd4007c12dc221f8a6f284625f60b36a043dcbf3c6b3 DIST firefox-133.0.3-zh-TW.xpi 681633 BLAKE2B 7f67226c9bf2a2d311b7a13c5aaf68bae1c784c53256f3e971490980f6d739f2dedcde7803d0f1955d6be8390ad461d3fe1f84083a7ea093624ae39564aa6ffc SHA512 975b508f569eff982575a5d62387882a4fe0bc061ef5af510cdfcd4b8c04480b260d9bd89b0da857d481272b12ba5007b73b46938bcb24e2754139d7ec16a3d8 DIST firefox-bin_i686-128.5.1.tar.bz2 88023424 BLAKE2B 02515ca8e36cf7682ba0bf98dee011e70b85d7f063490948dc9fdbeef43dd6c86d8597e94c76054f5173274cf73c105d5637e629119c4aff3bc32ec9f295f564 SHA512 e39106398b79844b3185d0b20c91ce68e3ecc5ab7907ec1f858f065ecce135676d200264f04e8da30c92ff3e7e7779b025a6a7d00baa8763b687242d8c0654ff +DIST firefox-bin_i686-128.5.2.tar.bz2 88105701 BLAKE2B 7b939adeea9a6373c45513076ea21d67c320beb61c5514bec151bd044094b5e2dff1b0e2a0f5718975a3d22faee5c25a2b4f29564c3336ac5bde6e89311e381b SHA512 b7cda570a73523516b31792d14c53388fc197ea24131fd885ec2447dfddc030fb9d5cd040c788cb299ee701eb8cfcd4567d986acd7ed9f304336cdb4ad0cb5ab DIST firefox-bin_i686-133.0.3.tar.bz2 91076838 BLAKE2B 17e76bdcdef72c4729ac3bc97b9ed0b40fbca05dd49ce43d5875ba6a6af2b12efd4c8c149c688483dc000f88c3841defbb47f70584cef1626cee6e4f8aeb23c2 SHA512 21b9f400cb2be49615c44be5028dd1dabd7e76c54a4a89864606a7c9ba7bd32fb87fd592421c1b4229cadd06a862fcbc3332703797622b485e5a9266c6c943f3 DIST firefox-bin_i686-133.0.tar.bz2 91191244 BLAKE2B 653a7aec1c127b17b5353db15147f6185532b9fd8fe72261d0e7a128463c80b12f6a1761d61d1c1f12317e235e77e861023ba4497df51e666093c656d28f4359 SHA512 42a2a51d4cddeb90fa8f81c2973079f3b6f11d338a71f87f88cec974ab0829e4c849cdd7722720fa27a21094bb67e95069a5bd94a13d87940387c97807a317f2 DIST firefox-bin_x86_64-128.5.1.tar.bz2 86597173 BLAKE2B f887df1391addf060c023e8a69523b5d8d72750f4c6145d5322d1b3bb01dd701ed6c8dd771acc6c66b4f32d2bd4c702d059e60a3407d4b492f6a404233f875f8 SHA512 e0969c8014d5655f0c7f0953c9ee56d42b08816873b2e07d90469c7d51f20d2d388abc41dd31c8eb6767c0f5f07934845e52bf482e403da86920d50b937f3be7 +DIST firefox-bin_x86_64-128.5.2.tar.bz2 86795865 BLAKE2B be3466ca68de34bb32935cec4ac2eccd04fcaf3f4fd786573a2d00a7e0a108c920029eb635912b9bd6b5a78c4aad1302c05c51af8ccf76c6eeb2b3f67bf86996 SHA512 84117928f87166c884823aa63edb3b3ea067f00b26efbfd59d42b71b9e17b32102e05be629a45d46c1d6f06f1b67e5bcf312c25d36f0a513ca414bb4e5128523 DIST firefox-bin_x86_64-133.0.3.tar.bz2 89495132 BLAKE2B b66760769d17661bdfd7053968b632612a158bf604a5f687b6036e62547b364a16bd109fe068a5a1f8d100d99e8b1a27f310697a662295cfd838b9d916b9c746 SHA512 6d0c1e3afb5382a31d8cab5107de8c6d9ac07b233cf76154113ad074f1d0f555ccdb56898cdfff2075c97a13670f7f00049f761875612b2196ff14c5752a0034 DIST firefox-bin_x86_64-133.0.tar.bz2 89436257 BLAKE2B 88880f69b8ec38aacbfc11e5ea44a3c591e9dd4b6d9bf44393f41eca9f53589f4892cf940975e1bb5544087e29e038bbbcce337ec2cb11d38e72e524fec2f74b SHA512 79ea6379aef11e0d05864f7c3220adad0e7027df79aae4675e0f26c6641255c39211d264162d48eb75aa61beca305101832322addcf8bd75a814a314eb7efa49 EBUILD firefox-bin-128.5.1.ebuild 10660 BLAKE2B d08ecfd2f64ecd3642e95dfef294f3dc49fb9680df2c5bb078adc616179a8cd96311e20c24406af3d087a1f0fb5056f10b53d2256718787d800a0a07faaca6d2 SHA512 04a5a0993ef6d8b2d337d1b63d123acf7c1aacec34e371f128acbe1e4d536c66d79a8c22bb4fc74cca509dc103059d4206e12089895582a2d5376c740f45683c +EBUILD firefox-bin-128.5.2.ebuild 10660 BLAKE2B d08ecfd2f64ecd3642e95dfef294f3dc49fb9680df2c5bb078adc616179a8cd96311e20c24406af3d087a1f0fb5056f10b53d2256718787d800a0a07faaca6d2 SHA512 04a5a0993ef6d8b2d337d1b63d123acf7c1aacec34e371f128acbe1e4d536c66d79a8c22bb4fc74cca509dc103059d4206e12089895582a2d5376c740f45683c EBUILD firefox-bin-133.0.3.ebuild 10657 BLAKE2B 747b1af11b40446b3f0e511358630be02c62df0a5f44f850af5d1a15d45b9fe2c970eb5b4f1a27cb220675dfaa73abc4c5f00d411b25b9ac1144e9d93f717a49 SHA512 796e0223babd49b0ce4973af71334b58566adeb846802122bb1ab27f35c39a9733817b5562dd423520f9fe41f4ee920f06944765c55409b346ca748437fa1cf6 EBUILD firefox-bin-133.0.ebuild 10657 BLAKE2B 747b1af11b40446b3f0e511358630be02c62df0a5f44f850af5d1a15d45b9fe2c970eb5b4f1a27cb220675dfaa73abc4c5f00d411b25b9ac1144e9d93f717a49 SHA512 796e0223babd49b0ce4973af71334b58566adeb846802122bb1ab27f35c39a9733817b5562dd423520f9fe41f4ee920f06944765c55409b346ca748437fa1cf6 MISC metadata.xml 444 BLAKE2B 859a9628086f30da043382e969ee4413a663b6b0c71442472155ac434399eb0df210b5dbbc33e01488368469c81863ab53573f32b2d5ac321d236da60da609c2 SHA512 80fe43fe64650905c201a151f330d0a83ed3d89ff103828a4deddc68d4abc69e1a89f2f677d969a0164fb71b261cbed90164731dc5b11fe518a24ed48342209d diff --git a/www-client/firefox-bin/firefox-bin-128.5.2.ebuild b/www-client/firefox-bin/firefox-bin-128.5.2.ebuild new file mode 100644 index 000000000000..dddd1ede5f6a --- /dev/null +++ b/www-client/firefox-bin/firefox-bin-128.5.2.ebuild @@ -0,0 +1,364 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MOZ_ESR=yes + +MOZ_PV=${PV} +MOZ_PV_SUFFIX= +if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then + MOZ_PV_SUFFIX=${BASH_REMATCH[1]} + + # Convert the ebuild version to the upstream Mozilla version + MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI + MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI + MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI +fi + +if [[ -n ${MOZ_ESR} ]] ; then + # ESR releases have slightly different version numbers + MOZ_PV="${MOZ_PV}esr" + HOMEPAGE="https://www.mozilla.com/firefox https://www.mozilla.org/firefox/enterprise/" + SLOT="esr" +else + HOMEPAGE="https://www.mozilla.com/firefox" + SLOT="rapid" +fi + +MOZ_PN="${PN%-bin}" +MOZ_P="${MOZ_PN}-${MOZ_PV}" +MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}" +MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}" + +inherit desktop linux-info optfeature pax-utils xdg + +MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}" + +SRC_URI="amd64? ( ${MOZ_SRC_BASE_URI}/linux-x86_64/en-US/${MOZ_P}.tar.bz2 -> ${PN}_x86_64-${PV}.tar.bz2 ) + x86? ( ${MOZ_SRC_BASE_URI}/linux-i686/en-US/${MOZ_P}.tar.bz2 -> ${PN}_i686-${PV}.tar.bz2 )" + +DESCRIPTION="Firefox Web Browser" + +KEYWORDS="-* amd64 ~x86" +LICENSE="MPL-2.0 GPL-2 LGPL-2.1" +IUSE="+gmp-autoupdate selinux wayland" + +RESTRICT="strip" + +BDEPEND="app-arch/unzip" +RDEPEND="${DEPEND} + !www-client/firefox-bin:0 + || ( + media-libs/libpulse + media-sound/apulse + ) + >=app-accessibility/at-spi2-core-2.46.0:2 + >=dev-libs/glib-2.26:2 + media-libs/alsa-lib + media-libs/fontconfig + >=media-libs/freetype-2.4.10 + sys-apps/dbus + virtual/freedesktop-icon-theme + >=x11-libs/cairo-1.10[X] + x11-libs/gdk-pixbuf:2 + >=x11-libs/gtk+-3.11:3[X,wayland?] + x11-libs/libX11 + x11-libs/libXcomposite + x11-libs/libXcursor + x11-libs/libXdamage + x11-libs/libXext + x11-libs/libXfixes + x11-libs/libXi + x11-libs/libXrandr + x11-libs/libXrender + x11-libs/libxcb + >=x11-libs/pango-1.22.0 + selinux? ( sec-policy/selinux-mozilla ) +" + +# ESR and rapid dependencies. +if [[ -n ${MOZ_ESR} ]] ; then + RDEPEND+=" !www-client/firefox-bin:rapid" +else + RDEPEND+=" !www-client/firefox-bin:esr" +fi + +QA_PREBUILT="opt/${MOZ_PN}/*" + +# Allow MOZ_GMP_PLUGIN_LIST to be set in an eclass or +# overridden in the enviromnent (advanced hackers only) +if [[ -z "${MOZ_GMP_PLUGIN_LIST+set}" ]] ; then + MOZ_GMP_PLUGIN_LIST=( gmp-gmpopenh264 gmp-widevinecdm ) +fi + +MOZ_LANGS=( + ach af an ar ast az be bg bn br bs ca-valencia ca cak cs cy + da de dsb el en-CA en-GB en-US eo es-AR es-CL es-ES es-MX et eu + fa ff fi fr fy-NL ga-IE gd gl gn gu-IN he hi-IN hr hsb hu hy-AM + ia id is it ja ka kab kk km kn ko lij lt lv mk mr ms my + nb-NO ne-NP nl nn-NO oc pa-IN pl pt-BR pt-PT rm ro ru sco + si sk skr sl son sq sr sv-SE ta te th tl tr trs uk ur uz vi + xh zh-CN zh-TW +) + +mozilla_set_globals() { + # https://bugs.gentoo.org/587334 + local MOZ_TOO_REGIONALIZED_FOR_L10N=( + fy-NL ga-IE gu-IN hi-IN hy-AM nb-NO ne-NP nn-NO pa-IN sv-SE + ) + + local lang xflag + for lang in "${MOZ_LANGS[@]}" ; do + # en and en_US are handled internally + if [[ ${lang} == en ]] || [[ ${lang} == en-US ]] ; then + continue + fi + + # strip region subtag if $lang is in the list + if has ${lang} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then + xflag=${lang%%-*} + else + xflag=${lang} + fi + + SRC_URI+=" l10n_${xflag/[_@]/-}? (" + SRC_URI+=" ${MOZ_SRC_BASE_URI}/linux-x86_64/xpi/${lang}.xpi -> ${MOZ_P_DISTFILES}-${lang}.xpi" + SRC_URI+=" )" + IUSE+=" l10n_${xflag/[_@]/-}" + done +} +mozilla_set_globals + +moz_install_xpi() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local DESTDIR=${1} + shift + + insinto "${DESTDIR}" + + local emid xpi_file xpi_tmp_dir + for xpi_file in "${@}" ; do + emid= + xpi_tmp_dir=$(mktemp -d --tmpdir="${T}") + + # Unpack XPI + unzip -qq "${xpi_file}" -d "${xpi_tmp_dir}" || die + + # Determine extension ID + if [[ -f "${xpi_tmp_dir}/install.rdf" ]] ; then + emid=$(sed -n -e '/install-manifest/,$ { /em:id/!d; s/.*[\">]\([^\"<>]*\)[\"<].*/\1/; p; q }' "${xpi_tmp_dir}/install.rdf") + [[ -z "${emid}" ]] && die "failed to determine extension id from install.rdf" + elif [[ -f "${xpi_tmp_dir}/manifest.json" ]] ; then + emid=$(sed -n -e 's/.*"id": "\([^"]*\)".*/\1/p' "${xpi_tmp_dir}/manifest.json") + [[ -z "${emid}" ]] && die "failed to determine extension id from manifest.json" + else + die "failed to determine extension id" + fi + + einfo "Installing ${emid}.xpi into ${ED}${DESTDIR} ..." + newins "${xpi_file}" "${emid}.xpi" + done +} + +pkg_setup() { + CONFIG_CHECK="~SECCOMP" + WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to play DRM-protected content." + + linux-info_pkg_setup +} + +src_unpack() { + local _lp_dir="${WORKDIR}/language_packs" + local _src_file + + mkdir "${S}" || die + + if [[ ! -d "${_lp_dir}" ]] ; then + mkdir "${_lp_dir}" || die + fi + + for _src_file in ${A} ; do + if [[ ${_src_file} == *.xpi ]]; then + cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die "Failed to copy '${_src_file}' to '${_lp_dir}'!" + else + MY_SRC_FILE=${_src_file} + fi + done +} + +src_install() { + # Set MOZILLA_FIVE_HOME + local MOZILLA_FIVE_HOME="/opt/${MOZ_PN}" + + dodir /opt + pushd "${ED}"/opt &>/dev/null || die + unpack "${MY_SRC_FILE}" + popd &>/dev/null || die + + pax-mark m \ + "${ED}${MOZILLA_FIVE_HOME}"/${MOZ_PN} \ + "${ED}${MOZILLA_FIVE_HOME}"/${MOZ_PN}-bin \ + "${ED}${MOZILLA_FIVE_HOME}"/plugin-container + + # Install policy (currently only used to disable application updates) + insinto "${MOZILLA_FIVE_HOME}/distribution" + newins "${FILESDIR}"/disable-auto-update.policy.json policies.json + + # Install system-wide preferences + local PREFS_DIR="${MOZILLA_FIVE_HOME}/browser/defaults/preferences" + insinto "${PREFS_DIR}" + newins "${FILESDIR}"/gentoo-default-prefs.js all-gentoo.js + + local GENTOO_PREFS="${ED}${PREFS_DIR}/all-gentoo.js" + + if ! use gmp-autoupdate ; then + local plugin + for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do + einfo "Disabling auto-update for ${plugin} plugin ..." + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to disable autoupdate for ${plugin} media plugin" + pref("media.${plugin}.autoupdate", false); + EOF + done + fi + + # Install language packs + local langpacks=( $(find "${WORKDIR}/language_packs" -type f -name '*.xpi') ) + if [[ -n "${langpacks}" ]] ; then + moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions" "${langpacks[@]}" + fi + + # Install icons + local icon_srcdir="${ED}/${MOZILLA_FIVE_HOME}/browser/chrome/icons/default" + local icon_symbolic_file="${FILESDIR}/firefox-symbolic.svg" + + insinto /usr/share/icons/hicolor/symbolic/apps + newins "${icon_symbolic_file}" ${PN}-symbolic.svg + + local icon size + for icon in "${icon_srcdir}"/default*.png ; do + size=${icon%.png} + size=${size##*/default} + + if [[ ${size} -eq 48 ]] ; then + newicon "${icon}" ${PN}.png + fi + + newicon -s ${size} "${icon}" ${PN}.png + done + + # Install menu + local app_name="Mozilla ${MOZ_PN^} (bin)" + local desktop_file="${FILESDIR}/${PN}-r3.desktop" + local desktop_filename="${PN}.desktop" + local icon="${PN}" + local use_wayland="false" + + if [[ -n ${MOZ_ESR} ]] ; then + local exec_command="${PN} --name=firefox" + else + local exec_command="${PN}" + fi + + if use wayland ; then + use_wayland="true" + fi + + cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die + + # Add apulse support through our wrapper shell launcher, patchelf-method broken since 119.0. + # See bgo#916230, bgo#941873 + local apulselib= + if has_version -r media-sound/apulse[-sdk] ; then + apulselib="${EPREFIX}/usr/$(get_libdir)/apulse" + ewarn "media-sound/apulse with -sdk use flag detected!" + ewarn "Firefox-bin will be installed with a wrapper, that attempts to load" + ewarn "apulse instead of pipewire/pulseadio. This may lead to sound issues." + ewarn "Please either enable sdk use flag for apulse, or remove apulse" + ewarn "completely and re-install firefox-bin to utilize pipewire/pulseaudio instead." + fi + + sed -i \ + -e "s:@NAME@:${app_name}:" \ + -e "s:@EXEC@:${exec_command}:" \ + -e "s:@ICON@:${icon}:" \ + "${WORKDIR}/${PN}.desktop-template" \ + || die + + newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}" + + rm "${WORKDIR}/${PN}.desktop-template" || die + + # Install wrapper script + [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}" + newbin "${FILESDIR}/${PN}-r1.sh" ${PN} + + # Update wrapper + sed -i \ + -e "s:@PREFIX@:${EPREFIX}/usr:" \ + -e "s:@MOZ_FIVE_HOME@:${EPREFIX}${MOZILLA_FIVE_HOME}:" \ + -e "s:@APULSELIB_DIR@:${apulselib}:" \ + -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \ + "${ED}/usr/bin/${PN}" \ + || die +} + +pkg_postinst() { + xdg_pkg_postinst + + if ! use gmp-autoupdate ; then + elog "USE='-gmp-autoupdate' has disabled the following plugins from updating or" + elog "installing into new profiles:" + local plugin + for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do + elog "\t ${plugin}" + done + elog + fi + + local show_doh_information show_normandy_information + + if [[ -z "${REPLACING_VERSIONS}" ]] ; then + # New install; Tell user that DoH is disabled by default + show_doh_information=yes + show_normandy_information=yes + fi + + if [[ -n "${show_doh_information}" ]] ; then + elog + elog "Note regarding Trusted Recursive Resolver aka DNS-over-HTTPS (DoH):" + elog "Due to privacy concerns (encrypting DNS might be a good thing, sending all" + elog "DNS traffic to Cloudflare by default is not a good idea and applications" + elog "should respect OS configured settings), \"network.trr.mode\" was set to 5" + elog "(\"Off by choice\") by default." + elog "You can enable DNS-over-HTTPS in ${PN^}'s preferences." + fi + + # bug 713782 + if [[ -n "${show_normandy_information}" ]] ; then + elog + elog "Upstream operates a service named Normandy which allows Mozilla to" + elog "push changes for default settings or even install new add-ons remotely." + elog "While this can be useful to address problems like 'Armagadd-on 2.0' or" + elog "revert previous decisions to disable TLS 1.0/1.1, privacy and security" + elog "concerns prevail, which is why we have switched off the use of this" + elog "service by default." + elog + elog "To re-enable this service set" + elog + elog " app.normandy.enabled=true" + elog + elog "in about:config." + fi + + optfeature_header "Optional programs for extra features:" + optfeature "speech syntesis (text-to-speech) support" app-accessibility/speech-dispatcher + optfeature "fallback mouse cursor theme e.g. on WMs" gnome-base/gsettings-desktop-schemas + optfeature "ffmpeg-based audio/video codec support, required for HTML5 video rendering" media-video/ffmpeg + optfeature "desktop notifications" x11-libs/libnotify +} -- cgit v1.2.3