commit: 1d4e44824abfe9db1502d2caebfd62690fb4919a
Author: Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Wed Mar 11 15:00:55 2026 +0000
Commit: Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Wed Mar 11 15:15:06 2026 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1d4e4482
dev-lang/spidermonkey: drop versions
Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>
dev-lang/spidermonkey/Manifest | 8 -
.../spidermonkey/spidermonkey-115.16.0-r1.ebuild | 473 ---------------------
dev-lang/spidermonkey/spidermonkey-140.1.0.ebuild | 467 --------------------
dev-lang/spidermonkey/spidermonkey-140.2.0.ebuild | 466 --------------------
dev-lang/spidermonkey/spidermonkey-140.3.0.ebuild | 466 --------------------
dev-lang/spidermonkey/spidermonkey-140.5.0.ebuild | 466 --------------------
6 files changed, 2346 deletions(-)
diff --git a/dev-lang/spidermonkey/Manifest b/dev-lang/spidermonkey/Manifest
index 138a44add4a2..d68e4be73b21 100644
--- a/dev-lang/spidermonkey/Manifest
+++ b/dev-lang/spidermonkey/Manifest
@@ -1,22 +1,14 @@
-DIST firefox-115.16.0esr.source.tar.xz 515133700 BLAKE2B
9501b617b346d56f6de975f88974be6fdc3d4a901b2a1b952b6bbf6cc46384084260078d23c52bedff83a65bec4ea5ec78c3bcaac86c78d0b44e796317534840
SHA512
b6f93ec3d6acac5df177253c65b833c017e65ed6e78e96ff029098443928d291f6f67164aedb83d80aa28ee9dee305086597798238d3330e35183030e53e3550
DIST firefox-115.24.0esr.source.tar.xz 507720392 BLAKE2B
04cfff28d39ce693182f293aefcf176e0700df89d8f70832f1ea8a20950529629a0e01d431d2d122c38f0689943fdce15438751bbe55f7160949a157e694e38a
SHA512
5f50d73845ddb61d4acf09223549fd90f2e576a5b21a83fa0521705f637ecbdd6034ea889ceb9ff66d4b6d1224b66e983503bc5b86279f07c15984f7f23d9643
DIST firefox-115esr-patches-13.tar.xz 51360 BLAKE2B
a048bfadba989ebbd4c6e3df97d303d6853844e66ed92f5f5f322acf18866218b91d52dbbece63827de283eef855c932d67e329c8d93200aa83f11268a5d1b2f
SHA512
186ec72323e621362dcef1bc67c476716aff97dfad701faa9220a7302e798d3cb4ed90d5ea59e3e92f016be29875bb5219787635db99a8848b7c76e4e2e09e90
DIST firefox-128.10.1esr.source.tar.xz 568752664 BLAKE2B
6fe2da50fcc49ecd1304bd167fd73dad312ae9364ba7a33fe9216cb4fcdb6f806f637dd6aa8857516fd516366c31e19a6120c56c6568f20b2eb87bb6b5b84fff
SHA512
6e7363d8cbecda1cedaf534ac10dc046b5f515399ec754492357e8a558c61ee3389f7bb90aa929dbcb4d6eba041ae1e778a0a8f90aa1e1f939eea517333b6c45
DIST firefox-128.13.0esr.source.tar.xz 560782432 BLAKE2B
1be2fb1e76167f83061fa805dc09b2f32dc7c813655cde72eea4b0ccc44a02570a78e2f177c909f2faed96eed6f47d08b783cae3f19c1d8e44dc8e531eb1ecc2
SHA512
9e6f3af535e0904219bcac947d458789cc43cbfaf476ac287328323662391eaaadeff57b244599acf3626a2fadc0bc41b70d07e33ca6af4412006ad01ceff034
DIST firefox-128.14.0esr.source.tar.xz 562714012 BLAKE2B
16420f803f5fe9cd1879d7f3fa24a42baa78a2e048212696cb0986dca3e3c07c52ab411e98ee2c71047f52fc5f644ef1a2a223e2ee4c69aed41fde66b9a63749
SHA512
a3cf267e82b6f5ab8b6497a62b12f85afb78fcaef6b12c43ef79564ce8270d3327a873368ce48fc018e46fef5e07339c07b9a494a5ff6c22a84099f939f6a9de
DIST firefox-128esr-patches-11.tar.xz 18696 BLAKE2B
0f35eaa29f1daf9beb09c7303b3e92676eea84337683b8f7393e8b52e36ec1f37683a050e1e8d7939ebb1bdc190acaac887bebe88812c1b64785e38980f18be3
SHA512
04bf8bbf3c4e7901a6681fec66f179f797615613be838cf35a4b03cd9a347656b1264524ac7355f0c3978a5e740ddc5dc438610e5cae6ffcad73a8988cf0e572
-DIST firefox-139-patches-03.tar.xz 11536 BLAKE2B
a7610d1348a2a4d02305c8d694a1648997040c69cb1445b901fe456045d0b1a73f28b0102ed03d34f70d8cc1ea9ab0245599a104b0063c7fb0dcb5a8fdd6f60b
SHA512
4733d34a842d525824fbcf6ef5d8f33e26b4f37a16aa87043427eaaf1e0665aa257cb8487bd692e4fd095c2a78553ab3f0213208124c3455e534394576fb5614
-DIST firefox-140.1.0esr.source.tar.xz 638937036 BLAKE2B
8a6c1f50802cafc171a4c5a197afd3c724053203d5d92fe35a7453fa1a8c05c743c246b1ac257f073f70b485fb0d5a68071254587677c55926aeeed0e0bc87cc
SHA512
1b5caff9b381cd449c40d148542501f7a31a7151a3f2f888e789c9743af8ee1d1eddbd970f8c0054902d1e1d739221db0cfcf1dc6ab704bb83bbb7b7b6a20055
-DIST firefox-140.2.0esr.source.tar.xz 631022940 BLAKE2B
aa3517f07e1b632ceed33e2765929742151852efb7ecfa6d432b7d63679b07df48151ade6a6acd42b06bd48b405b59d52aacd56ddde60bf85ad8c985cf6ca551
SHA512
e4597c4d83ae1a84fce9248fe6ca652af6c3615607fc8973bd917bfdbd2abbceca937fe4c629c0cdc89fa0a5c846b5e2d8a4b44dabf7feb201deb382de0ccc5b
-DIST firefox-140.3.0esr.source.tar.xz 645261332 BLAKE2B
ec39c0409535aed81b90fbe6bedbbae25f2c2962f36317e433688c8699dd6f6d792f260757b46d1e42c40c48d6ebba4bdeb3e3093bc837768cafe794020224ff
SHA512
f2a45352372a7c54bfc3a07652098b55634d111ea88550d33e7e2710d15524d689ee39fbd3b2049643436530e13c237d03e05fb7abd3970c9c18b66e5a84c85a
-DIST firefox-140.5.0esr.source.tar.xz 636823136 BLAKE2B
d36cd45f5c0f6f83fbc081441f9b7fa80947dd4f48b9414e0e800d50afe79c89be70503cb5fc7be3dc1874df0e698fbad92dc4e5e893e0c8baf19efbe43189de
SHA512
412236a25cbea171bd5bd535e45c3ba40957a94e1f8dd3ab74241e0aa1c4075fcb8d394b9619599d60ce3e4563e712c825fa8bec441794f229356802f72b2861
DIST firefox-140.7.0esr.source.tar.xz 641146512 BLAKE2B
cd5723595d1fdc0e52ab98fec5205bdc3228d367d2ca512a44a1ae98e1581bc961533a0a0fc57d468a0a10d9a1c480f28baab69def12f834eb51dd98c44cf6fe
SHA512
7781b1e203130c1cdf2a0c2ecb05a9cfa824c75d467e7faca78b66bd5568c821324112aecb774883d9f447af7fa4ade36488ff1017255af5510c8f641990e472
DIST firefox-140.8.0esr.source.tar.xz 633564864 BLAKE2B
dbbf560ae20c6eb384cce577d49fc71152dc3c72dde64efadfa12d975dda2e13aa1c6da7517e435d3e72b0501f440a5cb3a35a75796a42256627620572bf85f3
SHA512
3baca73c5c264884afa4b1d76ded4417119640e1161b8fed4ca406f0ec44e7f685258f5085f473dc9eff9057a6548a9b59cec3c696358dd1032503aa75f91d05
-DIST firefox-140esr-patches-01.tar.xz 11100 BLAKE2B
7a433e80efab15386ea69fdabae0354fb7ca431e0370fd642a864e20b2a6b558a187580513bbdd92b2eea98059eb4ebc5eb2117ebdab810643a842eeb0d82da7
SHA512
50a33f760d57c52a233fe6769931a5c869f72e68af2492fb068f2e3f2a3de5acdf21beea01dc6069911bd00f15c16b26e40e58a9c4f332d3247bbdceac4cde93
DIST firefox-140esr-patches-03.tar.xz 13452 BLAKE2B
f1e5da9400ae5d15dec852f0d68d470f40cff11764813bb7429f320d82cbf838e4e6cc7097f42d154a4a67061a66ad31c0749020067fd2a7f891c9003d163b80
SHA512
966aa2d0b8472bd4c002676572b0755cbf0ecce8709776d07fa2cfec512d942ebc735c6ac20c5a5a19af8e00d762e8967c7d43325987c3b331c8c86183eec044
DIST firefox-140esr-patches-07.tar.xz 125712 BLAKE2B
df8cb80104d816966723de33c79aa56f2a0ff54bf1a8a0668b76c4bb1bf3a7fa181011850c3030c04c2b8abcd69bec2dc23d500cfb6a624704b0797b76af8062
SHA512
6735b7f00048a24f313f2a09a17c785d045b3ebc0e640c9b7932fd1e65b84284344adee73d058855aff6bf93384933323031799565838a6339b9d20684e162d4
DIST spidermonkey-115-patches-02.tar.xz 4896 BLAKE2B
f78d9804c1427b45d6fda496b4991ec6f672dec9ce031ed57a2920fa1968c942a235f46e40166c8ab8d731a1963f322d34bb2f6984133179175e6f7376d27d13
SHA512
11fd01152d1e7b8ca89bf628076e1f4fb4f1ba6c9dc0f9dd544252495c580c04e4d5ffc238d5587f9e993aa91a47828333564ca55f60e008bd370089cd07d2e6
DIST spidermonkey-128-patches-03.tar.xz 3636 BLAKE2B
99517642e255762c57a9e65f4c4c4107b8d6a1630dd2e68dea4527ac0e5d70fc435122e6b4068a8223c9b2a6e06503c242659d1895b9a2ff6d75212e9c917498
SHA512
71e059861318073f09f7892094e6d44ec04385385086b2e126de8e4f80cff99410bbfd352a10f325e950441c398f7ba0ac82c861ce417c10a37ab5ea063c6be2
DIST spidermonkey-128-patches-04.tar.xz 4188 BLAKE2B
0a758c1bac3f2285192ac4d0e442bd6a9fdae7d8f1a48251818d69932074862304b132f5c19e4144e6cc2529b7954fa10ae414559b5df4fc7c243a99d7772d64
SHA512
a983b6b5902ff14f294dce38bf12fea683daee2b58d02e7f697b774d750229b8337cd6509f2d51c430f23900aae396eb968b38d98237385bec7e8d53e79d51e8
-DIST spidermonkey-140-patches-01.tar.xz 3324 BLAKE2B
551566e4e150dbe5cbe5400e27751a0da878e3cefab2cdb38d72f99b19b2403b3786ea2230b4477fba8d3e6799743a51652de5c0136811b0213134ce506e5534
SHA512
63327436c51b82c307a883a46c147ad8f3b9ea5b2d4c18b8c8cb475fe1c2c25e4d00af1e6c6c83899089df88794962725125c8572dbb31e201c2298bb3ad30c9
DIST spidermonkey-140-patches-02.tar.xz 3668 BLAKE2B
608d623bfecc4028328a812bf38c595c52bc72c497647a86911e98ca19cfeb24529c3991bb15ec0f9cbd27333a5c7a5ad18608832d7cd8d7873f061f996f53d2
SHA512
b8759c73a12ddcbdf333f1138dc82084ce76305ae9b7a6c3ca272db474f0a4bb15a8bd2179a938c6ba643d84a2f8ce6d2a9074a8ff439200b526b819bcee266a
diff --git a/dev-lang/spidermonkey/spidermonkey-115.16.0-r1.ebuild
b/dev-lang/spidermonkey/spidermonkey-115.16.0-r1.ebuild
deleted file mode 100644
index be807c0752b4..000000000000
--- a/dev-lang/spidermonkey/spidermonkey-115.16.0-r1.ebuild
+++ /dev/null
@@ -1,473 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="8"
-
-# Patch version
-FIREFOX_PATCHSET="firefox-115esr-patches-13.tar.xz"
-SPIDERMONKEY_PATCHSET="spidermonkey-115-patches-02.tar.xz"
-
-LLVM_COMPAT=( 18 )
-
-PYTHON_COMPAT=( python3_{11..12} )
-PYTHON_REQ_USE="ncurses,ssl,xml(+)"
-
-RUST_NEEDS_LLVM="1"
-
-WANT_AUTOCONF="2.1"
-
-inherit autotools check-reqs flag-o-matic llvm-r1 multiprocessing prefix
python-any-r1 rust toolchain-funcs
-
-MY_PN="mozjs"
-MY_PV="${PV/_pre*}" # Handle Gentoo pre-releases
-
-MY_MAJOR=$(ver_cut 1)
-
-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"
-fi
-
-MOZ_PN="firefox"
-MOZ_P="${MOZ_PN}-${MOZ_PV}"
-MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
-MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
-
-MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
-
-if [[ ${PV} == *_rc* ]] ; then
-
MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}"
-fi
-
-PATCH_URIS=(
- https://dev.gentoo.org/~juippis/mozilla/patchsets/${FIREFOX_PATCHSET}
-
https://dev.gentoo.org/~juippis/mozilla/patchsets/${SPIDERMONKEY_PATCHSET}
-)
-
-SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz ->
${MOZ_P_DISTFILES}.source.tar.xz
- ${PATCH_URIS[@]}"
-
-DESCRIPTION="SpiderMonkey is Mozilla's JavaScript engine written in C and C++"
-HOMEPAGE="https://spidermonkey.dev
https://firefox-source-docs.mozilla.org/js/index.html "
-
-KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~sparc x86"
-
-SLOT="$(ver_cut 1)"
-LICENSE="MPL-2.0"
-IUSE="clang cpu_flags_arm_neon debug +jit lto test"
-
-#RESTRICT="test"
-RESTRICT="!test? ( test )"
-
-BDEPEND="${PYTHON_DEPS}
- virtual/pkgconfig
- $(llvm_gen_dep '
- llvm-core/llvm:${LLVM_SLOT}
- clang? (
- llvm-core/clang:${LLVM_SLOT}
- llvm-core/lld:${LLVM_SLOT}
- )
- ')
- test? (
- $(python_gen_any_dep 'dev-python/six[${PYTHON_USEDEP}]')
- )"
-DEPEND=">=dev-libs/icu-73.1:=
- dev-libs/nspr
- sys-libs/readline:0=
- virtual/zlib:="
-RDEPEND="${DEPEND}"
-
-S="${WORKDIR}/firefox-${MY_PV}/js/src"
-
-llvm_check_deps() {
- if ! has_version -b "llvm-core/llvm:${LLVM_SLOT}" ; then
- einfo "llvm-core/llvm:${LLVM_SLOT} is missing! Cannot use LLVM
slot ${LLVM_SLOT} ..." >&2
- return 1
- fi
-
- if use clang ; then
- if ! has_version -b "llvm-core/clang:${LLVM_SLOT}" ; then
- einfo "llvm-core/clang:${LLVM_SLOT} is missing! Cannot
use LLVM slot ${LLVM_SLOT} ..." >&2
- return 1
- fi
-
- if ! tc-ld-is-mold ; then
- if ! has_version -b "llvm-core/lld:${LLVM_SLOT}" ; then
- einfo "llvm-core/lld:${LLVM_SLOT} is missing!
Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
- return 1
- fi
- fi
- fi
-
- einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
-}
-
-python_check_deps() {
- if use test ; then
- python_has_version "dev-python/six[${PYTHON_USEDEP}]"
- fi
-}
-
-# This is a straight copypaste from toolchain-funcs.eclass's 'tc-ld-is-lld',
and is temporarily
-# placed here until toolchain-funcs.eclass gets an official support for mold
linker.
-# Please see:
-# https://github.com/gentoo/gentoo/pull/28366 ||
-# https://github.com/gentoo/gentoo/pull/28355
-tc-ld-is-mold() {
- local out
-
- # Ensure ld output is in English.
- local -x LC_ALL=C
-
- # First check the linker directly.
- out=$($(tc-getLD "$@") --version 2>&1)
- if [[ ${out} == *"mold"* ]] ; then
- return 0
- fi
-
- # Then see if they're selecting mold via compiler flags.
- # Note: We're assuming they're using LDFLAGS to hold the
- # options and not CFLAGS/CXXFLAGS.
- local base="${T}/test-tc-linker"
- cat <<-EOF > "${base}.c"
- int main() { return 0; }
- EOF
- out=$($(tc-getCC "$@") ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -Wl,--version
"${base}.c" -o "${base}" 2>&1)
- rm -f "${base}"*
- if [[ ${out} == *"mold"* ]] ; then
- return 0
- fi
-
- # No mold here!
- return 1
-}
-
-pkg_pretend() {
- if use test ; then
- CHECKREQS_DISK_BUILD="4000M"
- else
- CHECKREQS_DISK_BUILD="3600M"
- fi
-
- check-reqs_pkg_pretend
-}
-
-pkg_setup() {
- if [[ ${MERGE_TYPE} != binary ]] ; then
- if use test ; then
- CHECKREQS_DISK_BUILD="4000M"
- else
- CHECKREQS_DISK_BUILD="3600M"
- fi
-
- check-reqs_pkg_setup
-
- llvm-r1_pkg_setup
- rust_pkg_setup
-
- if use clang && use lto && tc-ld-is-lld ; then
- local version_lld=$(ld.lld --version 2>/dev/null | awk
'{ print $2 }')
- [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1
"${version_lld}")
- [[ -z ${version_lld} ]] && die "Failed to read ld.lld
version!"
-
- local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep
-F -- 'LLVM version:' | awk '{ print $3 }')
- [[ -n ${version_llvm_rust} ]] &&
version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}")
- [[ -z ${version_llvm_rust} ]] && die "Failed to read
used LLVM version from rustc!"
-
- if ver_test "${version_lld}" -ne "${version_llvm_rust}"
; then
- eerror "Rust is using LLVM version
${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}."
- eerror "You will be unable to link
${CATEGORY}/${PN}. To proceed you have the following options:"
- eerror " - Manually switch rust version using
'eselect rust' to match used LLVM version"
- eerror " - Switch to
dev-lang/rust[system-llvm] which will guarantee matching version"
- eerror " - Build ${CATEGORY}/${PN} without
USE=lto"
- eerror " - Rebuild lld with llvm that was used
to build rust (may need to rebuild the whole "
- eerror " llvm/clang/lld/rust chain depending
on your @world updates)"
- die "LLVM version used by Rust
(${version_llvm_rust}) does not match with ld.lld version (${version_lld})!"
- fi
- fi
-
- python-any-r1_pkg_setup
-
- # Build system is using /proc/self/oom_score_adj, bug #604394
- addpredict /proc/self/oom_score_adj
-
- if ! mountpoint -q /dev/shm ; then
- # If /dev/shm is not available, configure is known to
fail with
- # a traceback report referencing
/usr/lib/pythonN.N/multiprocessing/synchronize.py
- ewarn "/dev/shm is not mounted -- expect build
failures!"
- fi
-
- # Ensure we use C locale when building, bug #746215
- export LC_ALL=C
- fi
-}
-
-src_prepare() {
- pushd ../.. &>/dev/null || die
-
- use lto && rm -v
"${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch
-
- if ! use ppc64; then
- rm -v "${WORKDIR}"/firefox-patches/*ppc64*.patch || die
- fi
-
- # Workaround for bgo #915651,915651,929013 on musl
- if use elibc_glibc ; then
- rm -v
"${WORKDIR}"/firefox-patches/*bgo-748849-RUST_TARGET_override.patch || die
- fi
-
- eapply "${WORKDIR}"/firefox-patches
- eapply "${WORKDIR}"/spidermonkey-patches
-
- default
-
- # Make cargo respect MAKEOPTS
- export CARGO_BUILD_JOBS="$(makeopts_jobs)"
-
- # Workaround for bgo #915651,915651,929013 on musl
- if ! use elibc_glibc ; then
- if use amd64 ; then
- export RUST_TARGET="x86_64-unknown-linux-musl"
- elif use x86 ; then
- export RUST_TARGET="i686-unknown-linux-musl"
- else
- die "Unknown musl chost, please post your rustc -vV
along with emerge --info on Gentoo's bug #915651"
- fi
- fi
-
- # sed-in toolchain prefix
- sed -i \
- -e "s/objdump/${CHOST}-objdump/" \
- python/mozbuild/mozbuild/configure/check_debug_ranges.py \
- || die "sed failed to set toolchain prefix"
-
- # use prefix shell in wrapper linker scripts, bug #789660
- hprefixify "${S}"/../../build/cargo-{,host-}linker
-
- einfo "Removing pre-built binaries ..."
- find third_party -type f \( -name '*.so' -o -name '*.o' \) -print
-delete || die
-
- MOZJS_BUILDDIR="${WORKDIR}/build"
- mkdir "${MOZJS_BUILDDIR}" || die
-
- popd &>/dev/null || die
-}
-
-src_configure() {
- # Show flags set at the beginning
- einfo "Current CFLAGS: ${CFLAGS}"
- einfo "Current CXXFLAGS: ${CXXFLAGS}"
- einfo "Current LDFLAGS: ${LDFLAGS}"
- einfo "Current RUSTFLAGS: ${RUSTFLAGS}"
-
- local have_switched_compiler=
- if use clang; then
- # Force clang
- einfo "Enforcing the use of clang due to USE=clang ..."
-
- local version_clang=$(clang --version 2>/dev/null | grep -F --
'clang version' | awk '{ print $3 }')
- [[ -n ${version_clang} ]] && version_clang=$(ver_cut 1
"${version_clang}")
- [[ -z ${version_clang} ]] && die "Failed to read clang version!"
-
- if tc-is-gcc; then
- have_switched_compiler=yes
- fi
- AR=llvm-ar
- CC=${CHOST}-clang-${version_clang}
- CXX=${CHOST}-clang++-${version_clang}
- NM=llvm-nm
- RANLIB=llvm-ranlib
-
- elif ! use clang && ! tc-is-gcc ; then
- # Force gcc
- have_switched_compiler=yes
- einfo "Enforcing the use of gcc due to USE=-clang ..."
- AR=gcc-ar
- CC=${CHOST}-gcc
- CXX=${CHOST}-g++
- NM=gcc-nm
- RANLIB=gcc-ranlib
- fi
-
- if [[ -n "${have_switched_compiler}" ]] ; then
- # Because we switched active compiler we have to ensure
- # that no unsupported flags are set
- strip-unsupported-flags
- fi
-
- # Ensure we use correct toolchain,
- # AS is used in a non-standard way by upstream, #bmo1654031
- export HOST_CC="$(tc-getBUILD_CC)"
- export HOST_CXX="$(tc-getBUILD_CXX)"
- export AS="$(tc-getCC) -c"
- tc-export CC CXX LD AR AS NM OBJDUMP RANLIB PKG_CONFIG
-
- cd "${MOZJS_BUILDDIR}" || die
-
- # ../python/mach/mach/mixin/process.py fails to detect SHELL
- export SHELL="${EPREFIX}/bin/bash"
-
- local -a myeconfargs=(
- --host="${CBUILD:-${CHOST}}"
- --target="${CHOST}"
-
- --disable-ctype
- --disable-jemalloc
- --disable-smoosh
- --disable-strip
-
- --enable-project=js
- --enable-readline
- --enable-release
- --enable-shared-js
-
- --with-intl-api
- --with-system-icu
- --with-system-nspr
- --with-system-zlib
- --with-toolchain-prefix="${CHOST}-"
-
- $(use_enable debug)
- $(use_enable jit)
- $(use_enable test tests)
- )
-
- if use debug; then
- myeconfargs+=( --disable-optimize )
- myeconfargs+=( --enable-debug-symbols )
- myeconfargs+=( --enable-real-time-tracing )
- else
- myeconfargs+=( --enable-optimize )
- myeconfargs+=( --disable-debug-symbols )
- myeconfargs+=( --disable-real-time-tracing )
- fi
-
- # We always end up disabling this at some point due to newer rust
versions. bgo#933372
- myeconfargs+=( --disable-rust-simd )
-
- # Modifications to better support ARM, bug 717344
- if use cpu_flags_arm_neon ; then
- myeconfargs+=( --with-fpu=neon )
-
- if ! tc-is-clang ; then
- # thumb options aren't supported when using clang, bug
666966
- myeconfargs+=( --with-thumb=yes )
- myeconfargs+=( --with-thumb-interwork=no )
- fi
- fi
-
- # Tell build system that we want to use LTO
- if use lto ; then
- if use clang ; then
- if tc-ld-is-mold ; then
- myeconfargs+=( --enable-linker=mold )
- else
- myeconfargs+=( --enable-linker=lld )
- fi
- myeconfargs+=( --enable-lto=cross )
-
- else
- myeconfargs+=( --enable-linker=bfd )
- myeconfargs+=( --enable-lto=full )
- fi
- fi
-
- # LTO flag was handled via configure
- filter-lto
-
- # Use system's Python environment
- export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none"
- export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach
-
- # Show flags we will use
- einfo "Build CFLAGS: ${CFLAGS}"
- einfo "Build CXXFLAGS: ${CXXFLAGS}"
- einfo "Build LDFLAGS: ${LDFLAGS}"
- einfo "Build RUSTFLAGS: ${RUSTFLAGS}"
-
- # Forcing system-icu allows us to skip patching bundled ICU for PPC
- # and other minor arches
- ECONF_SOURCE="${S}" \
- econf \
- ${myeconfargs[@]} \
- XARGS="${EPREFIX}/usr/bin/xargs"
-}
-
-src_compile() {
- cd "${MOZJS_BUILDDIR}" || die
- default
-}
-
-src_test() {
- if "${MOZJS_BUILDDIR}/js/src/js" -e 'print("Hello world!")'; then
- einfo "Smoke-test successful, continuing with full test suite"
- else
- die "Smoke-test failed: did interpreter initialization fail?"
- fi
-
- cp "${FILESDIR}"/spidermonkey-${SLOT}-known-test-failures.txt
"${T}"/known_failures.list || die
-
- if use sparc ; then
- echo "non262/Array/regress-157652.js" >>
"${T}"/known_failures.list
- echo "non262/regress/regress-422348.js" >>
"${T}"/known_failures.list
- echo
"test262/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-other-type.js"
>> "${T}"/known_failures.list
- fi
-
- if use x86 ; then
- echo "non262/Date/timeclip.js" >> "${T}"/known_failures.list
- echo "test262/built-ins/Date/UTC/fp-evaluation-order.js" >>
"${T}"/known_failures.list
- echo "test262/language/types/number/S8.5_A2.1.js" >>
"${T}"/known_failures.list
- echo "test262/language/types/number/S8.5_A2.2.js" >>
"${T}"/known_failures.list
- fi
-
- ${EPYTHON} \
- "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled
--no-progress \
- --exclude-file="${T}"/known_failures.list \
- "${MOZJS_BUILDDIR}"/js/src/js \
- || die
-
- if use jit ; then
- ${EPYTHON} \
- "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled
--no-progress \
- --exclude-file="${T}"/known_failures.list \
- "${MOZJS_BUILDDIR}"/js/src/js basic \
- || die
- fi
-}
-
-src_install() {
- cd "${MOZJS_BUILDDIR}" || die
- default
-
- # fix soname links
- pushd "${ED}"/usr/$(get_libdir) &>/dev/null || die
- mv lib${MY_PN}-${MY_MAJOR}.so lib${MY_PN}-${MY_MAJOR}.so.0.0.0 || die
- ln -s lib${MY_PN}-${MY_MAJOR}.so.0.0.0 lib${MY_PN}-${MY_MAJOR}.so.0 ||
die
- ln -s lib${MY_PN}-${MY_MAJOR}.so.0 lib${MY_PN}-${MY_MAJOR}.so || die
- popd &>/dev/null || die
-
- # remove unneeded files
- rm \
- "${ED}"/usr/bin/js${MY_MAJOR}-config \
- "${ED}"/usr/$(get_libdir)/libjs_static.ajs \
- || die
-
- # fix permissions
- chmod -x \
- "${ED}"/usr/$(get_libdir)/pkgconfig/*.pc \
- "${ED}"/usr/include/mozjs-${MY_MAJOR}/js-config.h \
- || die
-}
diff --git a/dev-lang/spidermonkey/spidermonkey-140.1.0.ebuild
b/dev-lang/spidermonkey/spidermonkey-140.1.0.ebuild
deleted file mode 100644
index fdf151f458f0..000000000000
--- a/dev-lang/spidermonkey/spidermonkey-140.1.0.ebuild
+++ /dev/null
@@ -1,467 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="8"
-
-FIREFOX_PATCHSET="firefox-139-patches-03.tar.xz"
-SPIDERMONKEY_PATCHSET="spidermonkey-140-patches-01.tar.xz"
-
-LLVM_COMPAT=( 19 20 )
-RUST_NEEDS_LLVM=1
-RUST_MIN_VER=1.82.0
-
-PYTHON_COMPAT=( python3_{11..13} )
-PYTHON_REQ_USE="ncurses,ssl,xml(+)"
-
-WANT_AUTOCONF="2.1"
-
-inherit check-reqs flag-o-matic llvm-r1 multiprocessing python-any-r1 rust
toolchain-funcs
-
-MY_PN="mozjs"
-MY_PV="${PV/_pre*}"
-
-MY_MAJOR=$(ver_cut 1)
-
-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"
-fi
-
-MOZ_PN="firefox"
-MOZ_P="${MOZ_PN}-${MOZ_PV}"
-MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
-MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
-
-MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
-
-if [[ ${PV} == *_rc* ]] ; then
-
MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}"
-fi
-
-PATCH_URIS=(
- https://dev.gentoo.org/~juippis/mozilla/patchsets/${FIREFOX_PATCHSET}
-
https://dev.gentoo.org/~juippis/mozilla/patchsets/${SPIDERMONKEY_PATCHSET}
-)
-
-DESCRIPTION="Mozilla's JavaScript engine written in C and C++"
-HOMEPAGE="https://spidermonkey.dev
https://firefox-source-docs.mozilla.org/js/index.html"
-SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz ->
${MOZ_P_DISTFILES}.source.tar.xz
- ${PATCH_URIS[@]}"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
-
-LICENSE="MPL-2.0"
-SLOT="$(ver_cut 1)"
-IUSE="clang cpu_flags_arm_neon debug +jit test"
-
-#RESTRICT="test"
-RESTRICT="!test? ( test )"
-
-BDEPEND="${PYTHON_DEPS}
- $(llvm_gen_dep '
- clang? (
- llvm-core/clang:${LLVM_SLOT}
- llvm-core/lld:${LLVM_SLOT}
- llvm-core/llvm:${LLVM_SLOT}
- )
- ')
- >=dev-util/cbindgen-0.27.0
- virtual/pkgconfig
- test? (
- $(python_gen_any_dep 'dev-python/six[${PYTHON_USEDEP}]')
- )"
-DEPEND=">=dev-libs/icu-76.1:=
- >=dev-libs/nspr-4.35
- sys-libs/readline:0=
- virtual/zlib:="
-RDEPEND="${DEPEND}"
-
-S="${WORKDIR}/firefox-${PV%_*}"
-
-llvm_check_deps() {
- if use clang ; then
- if ! has_version -b "llvm-core/clang:${LLVM_SLOT}" ; then
- einfo "llvm-core/clang:${LLVM_SLOT} is missing! Cannot
use LLVM slot ${LLVM_SLOT} ..." >&2
- return 1
- fi
-
- if ! has_version -b "llvm-core/llvm:${LLVM_SLOT}" ; then
- einfo "llvm-core/llvm:${LLVM_SLOT} is missing! Cannot
use LLVM slot ${LLVM_SLOT} ..." >&2
- return 1
- fi
-
- if ! tc-ld-is-mold ; then
- if ! has_version -b "llvm-core/lld:${LLVM_SLOT}" ; then
- einfo "llvm-core/lld:${LLVM_SLOT} is missing!
Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
- return 1
- fi
- fi
- fi
-
- einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
-}
-
-mozconfig_add_options_ac() {
- debug-print-function ${FUNCNAME} "$@"
-
- if [[ ${#} -lt 2 ]] ; then
- die "${FUNCNAME} requires at least two arguments"
- fi
-
- local reason=${1}
- shift
-
- local option
- for option in ${@} ; do
- echo "ac_add_options ${option} # ${reason}" >>${MOZCONFIG}
- done
-}
-
-mozconfig_add_options_mk() {
- debug-print-function ${FUNCNAME} "$@"
-
- if [[ ${#} -lt 2 ]] ; then
- die "${FUNCNAME} requires at least two arguments"
- fi
-
- local reason=${1}
- shift
-
- local option
- for option in ${@} ; do
- echo "mk_add_options ${option} # ${reason}" >>${MOZCONFIG}
- done
-}
-
-mozconfig_use_enable() {
- debug-print-function ${FUNCNAME} "$@"
-
- if [[ ${#} -lt 1 ]] ; then
- die "${FUNCNAME} requires at least one arguments"
- fi
-
- local flag=$(use_enable "${@}")
- mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})"
"${flag}"
-}
-
-python_check_deps() {
- if use test ; then
- python_has_version "dev-python/six[${PYTHON_USEDEP}]"
- fi
-}
-
-pkg_pretend() {
- if use test ; then
- CHECKREQS_DISK_BUILD="4400M"
- else
- CHECKREQS_DISK_BUILD="4300M"
- fi
-
- check-reqs_pkg_pretend
-}
-
-pkg_setup() {
- # Get LTO from environment; export after this phase for use in
src_configure (etc)
- use_lto=no
-
- if [[ ${MERGE_TYPE} != binary ]] ; then
- if tc-is-lto; then
- use_lto=yes
- # LTO is handled via configure
- filter-lto
- fi
-
- if [[ ${use_lto} = yes ]]; then
- # -Werror=lto-type-mismatch -Werror=odr are going to
fail with GCC,
- # bmo#1516758, bgo#942288
- filter-flags -Werror=lto-type-mismatch -Werror=odr
- fi
-
- if use test ; then
- CHECKREQS_DISK_BUILD="4400M"
- else
- CHECKREQS_DISK_BUILD="4300M"
- fi
-
- check-reqs_pkg_setup
- llvm-r1_pkg_setup
- rust_pkg_setup
- python-any-r1_pkg_setup
-
- # Build system is using /proc/self/oom_score_adj, bug #604394
- addpredict /proc/self/oom_score_adj
-
- if ! mountpoint -q /dev/shm ; then
- # If /dev/shm is not available, configure is known to
fail with
- # a traceback report referencing
/usr/lib/pythonN.N/multiprocessing/synchronize.py
- ewarn "/dev/shm is not mounted -- expect build
failures!"
- fi
-
- # Ensure we use C locale when building, bug #746215
- export LC_ALL=C
- fi
-
- export use_lto
-}
-
-src_prepare() {
- if [[ ${use_lto} == "yes" ]]; then
- rm -v
"${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die
- fi
-
- # Workaround for bgo #915651,915651,929013 on musl
- if use elibc_glibc ; then
- rm -v
"${WORKDIR}"/firefox-patches/*bgo-748849-RUST_TARGET_override.patch || die
- fi
-
- eapply "${WORKDIR}"/firefox-patches
- eapply "${WORKDIR}"/spidermonkey-patches
-
- default
-
- # Make cargo respect MAKEOPTS
- export CARGO_BUILD_JOBS="$(makeopts_jobs)"
-
- # Workaround for bgo #915651,915651,929013 on musl
- if ! use elibc_glibc ; then
- if use amd64 ; then
- export RUST_TARGET="x86_64-unknown-linux-musl"
- elif use x86 ; then
- export RUST_TARGET="i686-unknown-linux-musl"
- elif use arm64 ; then
- export RUST_TARGET="aarch64-unknown-linux-musl"
- elif use ppc64 ; then
- export RUST_TARGET="powerpc64le-unknown-linux-musl"
- else
- die "Unknown musl chost, please post your rustc -vV
along with emerge --info on Gentoo's bug #915651"
- fi
- fi
-
- # sed-in toolchain prefix
- sed -i \
- -e "s/objdump/${CHOST}-objdump/" \
- python/mozbuild/mozbuild/configure/check_debug_ranges.py ||
- die "sed failed to set toolchain prefix"
-
- einfo "Removing pre-built binaries ..."
- find third_party -type f \( -name '*.so' -o -name '*.o' \) -print
-delete || die
-
- # Create build dir
- BUILD_DIR="${WORKDIR}/${PN}_build"
- mkdir -p "${BUILD_DIR}" || die
-}
-
-src_configure() {
- # Show flags set at the beginning
- einfo "Current BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}"
- einfo "Current CFLAGS: ${CFLAGS}"
- einfo "Current CXXFLAGS: ${CXXFLAGS}"
- einfo "Current LDFLAGS: ${LDFLAGS}"
- einfo "Current RUSTFLAGS: ${RUSTFLAGS}"
-
- local have_switched_compiler=
- if use clang ; then
- # Force clang
- einfo "Enforcing the use of clang due to USE=clang ..."
-
- local version_clang=$(clang --version 2>/dev/null | grep -F --
'clang version' | awk '{ print $3 }')
- [[ -n ${version_clang} ]] && version_clang=$(ver_cut 1
"${version_clang}")
- [[ -z ${version_clang} ]] && die "Failed to read clang version!"
-
- if tc-is-gcc; then
- have_switched_compiler=yes
- fi
-
- AR=llvm-ar
- CC=${CHOST}-clang-${version_clang}
- CXX=${CHOST}-clang++-${version_clang}
- NM=llvm-nm
- RANLIB=llvm-ranlib
- READELF=llvm-readelf
- OBJDUMP=llvm-objdump
-
- elif ! use clang && ! tc-is-gcc ; then
- # Force gcc
- have_switched_compiler=yes
- einfo "Enforcing the use of gcc due to USE=-clang ..."
- AR=gcc-ar
- CC=${CHOST}-gcc
- CXX=${CHOST}-g++
- NM=gcc-nm
- RANLIB=gcc-ranlib
- READELF=readelf
- OBJDUMP=objdump
- fi
-
- if [[ -n "${have_switched_compiler}" ]] ; then
- # Because we switched active compiler we have to ensure
- # that no unsupported flags are set
- strip-unsupported-flags
- fi
-
- # Ensure we use correct toolchain,
- # AS is used in a non-standard way by upstream, #bmo1654031
- export HOST_CC="$(tc-getBUILD_CC)"
- export HOST_CXX="$(tc-getBUILD_CXX)"
- export AS="$(tc-getCC) -c"
-
- tc-export CC CXX LD AR AS NM OBJDUMP RANLIB READELF PKG_CONFIG
-
- # Pass the correct toolchain paths through cbindgen
- if tc-is-cross-compiler ; then
- export BINDGEN_CFLAGS="${SYSROOT:+--sysroot=${ESYSROOT}}
--target=${CHOST} ${BINDGEN_CFLAGS-}"
- fi
-
- # ../python/mach/mach/mixin/process.py fails to detect SHELL
- export SHELL="${EPREFIX}/bin/bash"
-
- # Set state path
- export MOZBUILD_STATE_PATH="${BUILD_DIR}"
-
- # Set MOZCONFIG
- export MOZCONFIG="${S}/.mozconfig"
-
- # Initialize MOZCONFIG
- mozconfig_add_options_ac '' --enable-project=js
-
- mozconfig_add_options_ac 'Gentoo default' \
- --host="${CBUILD:-${CHOST}}" \
- --target="${CHOST}" \
- --disable-ctype \
- --disable-jemalloc \
- --disable-smoosh \
- --disable-strip \
- --enable-packed-relative-relocs \
- --enable-readline \
- --enable-release \
- --enable-shared-js \
- --libdir="${EPREFIX}/usr/$(get_libdir)" \
- --prefix="${EPREFIX}/usr" \
- --with-intl-api \
- --with-system-icu \
- --with-system-nspr \
- --with-system-zlib \
- --with-toolchain-prefix="${CHOST}-"
-
- mozconfig_use_enable debug
- mozconfig_use_enable jit
- mozconfig_use_enable test tests
-
- if use debug ; then
- mozconfig_add_options_ac '+debug' --disable-optimize
- mozconfig_add_options_ac '+debug' --enable-debug-symbols
- mozconfig_add_options_ac '+debug' --enable-real-time-tracing
- else
- mozconfig_add_options_ac '-debug' --enable-optimize
- mozconfig_add_options_ac '-debug' --disable-debug-symbols
- mozconfig_add_options_ac '-debug' --disable-real-time-tracing
- fi
-
- # We always end up disabling this at some point due to newer rust
versions. bgo#933372
- mozconfig_add_options_ac '--disable-rust-simd' --disable-rust-simd
-
- # Modifications to better support ARM, bug 717344
- if use cpu_flags_arm_neon ; then
- mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-fpu=neon
-
- if ! tc-is-clang ; then
- # thumb options aren't supported when using clang, bug
666966
- mozconfig_add_options_ac '+cpu_flags_arm_neon'
--with-thumb=yes
- mozconfig_add_options_ac '+cpu_flags_arm_neon'
--with-thumb-interwork=no
- fi
- fi
-
- # Tell build system that we want to use LTO
- if [[ ${use_lto} == "yes" ]] ; then
- if use clang ; then
- if tc-ld-is-mold ; then
- mozconfig_add_options_ac '+lto'
--enable-linker=mold
- else
- mozconfig_add_options_ac '+lto'
--enable-linker=lld
- fi
- mozconfig_add_options_ac '+lto' --enable-lto=cross
-
- else
- mozconfig_add_options_ac '+lto' --enable-linker=bfd
- mozconfig_add_options_ac '+lto' --enable-lto=full
- fi
- fi
-
- # LTO flag was handled via configure
- filter-lto
-
- # Pass MAKEOPTS to build system
- export MOZ_MAKE_FLAGS="${MAKEOPTS}"
-
- # Use system's Python environment
- export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none"
- export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach
-
- # Disable notification when build system has finished
- export MOZ_NOSPAM=1
-
- # Portage sets XARGS environment variable to "xargs -r" by default which
- # breaks build system's check_prog() function which doesn't support
arguments
- mozconfig_add_options_ac 'Gentoo default'
"XARGS=${EPREFIX}/usr/bin/xargs"
-
- # Set build dir
- mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}"
-
- # Show flags we will use
- einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}"
- einfo "Build CFLAGS: ${CFLAGS}"
- einfo "Build CXXFLAGS: ${CXXFLAGS}"
- einfo "Build LDFLAGS: ${LDFLAGS}"
- einfo "Build RUSTFLAGS: ${RUSTFLAGS}"
-
- ./mach configure || die
-}
-
-src_compile() {
- ./mach build --verbose || die
-}
-
-src_test() {
- if "${BUILD_DIR}/js/src/js" -e 'print("Hello world!")'; then
- einfo "Smoke-test successful, continuing with full test suite"
- else
- die "Smoke-test failed: did interpreter initialization fail?"
- fi
-
- cp "${FILESDIR}"/spidermonkey-${SLOT}-known-test-failures.txt
"${T}"/known_test_failures.list || die
- ./mach jstests --exclude-file="${T}"/known_test_failures.list || die
-}
-
-src_install() {
- cd "${BUILD_DIR}" || die
- default
-
- # fix soname links
- pushd "${ED}"/usr/$(get_libdir) &>/dev/null || die
- mv lib${MY_PN}-${MY_MAJOR}.so lib${MY_PN}-${MY_MAJOR}.so.0.0.0 || die
- ln -s lib${MY_PN}-${MY_MAJOR}.so.0.0.0 lib${MY_PN}-${MY_MAJOR}.so.0 ||
die
- ln -s lib${MY_PN}-${MY_MAJOR}.so.0 lib${MY_PN}-${MY_MAJOR}.so || die
- popd &>/dev/null || die
-
- # remove unneeded files
- rm \
- "${ED}"/usr/bin/js${MY_MAJOR}-config \
- "${ED}"/usr/$(get_libdir)/libjs_static.ajs || die
-
- # fix permissions
- chmod -x \
- "${ED}"/usr/$(get_libdir)/pkgconfig/*.pc \
- "${ED}"/usr/include/mozjs-${MY_MAJOR}/js-config.h || die
-}
diff --git a/dev-lang/spidermonkey/spidermonkey-140.2.0.ebuild
b/dev-lang/spidermonkey/spidermonkey-140.2.0.ebuild
deleted file mode 100644
index 6e5d51238466..000000000000
--- a/dev-lang/spidermonkey/spidermonkey-140.2.0.ebuild
+++ /dev/null
@@ -1,466 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="8"
-
-FIREFOX_PATCHSET="firefox-140esr-patches-01.tar.xz"
-SPIDERMONKEY_PATCHSET="spidermonkey-140-patches-01.tar.xz"
-
-LLVM_COMPAT=( 19 20 )
-RUST_NEEDS_LLVM=1
-RUST_MIN_VER=1.82.0
-
-PYTHON_COMPAT=( python3_{11..13} )
-PYTHON_REQ_USE="ncurses,ssl,xml(+)"
-
-WANT_AUTOCONF="2.1"
-
-inherit check-reqs flag-o-matic llvm-r1 multiprocessing python-any-r1 rust
toolchain-funcs
-
-MY_PN="mozjs"
-MY_PV="${PV/_pre*}"
-
-MY_MAJOR=$(ver_cut 1)
-
-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"
-fi
-
-MOZ_PN="firefox"
-MOZ_P="${MOZ_PN}-${MOZ_PV}"
-MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
-MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
-
-MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
-
-if [[ ${PV} == *_rc* ]] ; then
-
MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}"
-fi
-
-PATCH_URIS=(
- https://dev.gentoo.org/~juippis/mozilla/patchsets/${FIREFOX_PATCHSET}
-
https://dev.gentoo.org/~juippis/mozilla/patchsets/${SPIDERMONKEY_PATCHSET}
-)
-
-DESCRIPTION="Mozilla's JavaScript engine written in C and C++"
-HOMEPAGE="https://spidermonkey.dev
https://firefox-source-docs.mozilla.org/js/index.html"
-SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz ->
${MOZ_P_DISTFILES}.source.tar.xz
- ${PATCH_URIS[@]}"
-S="${WORKDIR}/firefox-${PV%_*}"
-LICENSE="MPL-2.0"
-SLOT="$(ver_cut 1)"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
-
-IUSE="clang cpu_flags_arm_neon debug +jit test"
-
-#RESTRICT="test"
-RESTRICT="!test? ( test )"
-
-BDEPEND="${PYTHON_DEPS}
- $(llvm_gen_dep '
- clang? (
- llvm-core/clang:${LLVM_SLOT}
- llvm-core/lld:${LLVM_SLOT}
- llvm-core/llvm:${LLVM_SLOT}
- )
- ')
- >=dev-util/cbindgen-0.27.0
- virtual/pkgconfig
- test? (
- $(python_gen_any_dep 'dev-python/six[${PYTHON_USEDEP}]')
- )"
-DEPEND=">=dev-libs/icu-76.1:=
- >=dev-libs/nspr-4.35
- sys-libs/readline:0=
- virtual/zlib:="
-RDEPEND="${DEPEND}"
-
-llvm_check_deps() {
- if use clang ; then
- if ! has_version -b "llvm-core/clang:${LLVM_SLOT}" ; then
- einfo "llvm-core/clang:${LLVM_SLOT} is missing! Cannot
use LLVM slot ${LLVM_SLOT} ..." >&2
- return 1
- fi
-
- if ! has_version -b "llvm-core/llvm:${LLVM_SLOT}" ; then
- einfo "llvm-core/llvm:${LLVM_SLOT} is missing! Cannot
use LLVM slot ${LLVM_SLOT} ..." >&2
- return 1
- fi
-
- if ! tc-ld-is-mold ; then
- if ! has_version -b "llvm-core/lld:${LLVM_SLOT}" ; then
- einfo "llvm-core/lld:${LLVM_SLOT} is missing!
Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
- return 1
- fi
- fi
- fi
-
- einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
-}
-
-mozconfig_add_options_ac() {
- debug-print-function ${FUNCNAME} "$@"
-
- if [[ ${#} -lt 2 ]] ; then
- die "${FUNCNAME} requires at least two arguments"
- fi
-
- local reason=${1}
- shift
-
- local option
- for option in ${@} ; do
- echo "ac_add_options ${option} # ${reason}" >>${MOZCONFIG}
- done
-}
-
-mozconfig_add_options_mk() {
- debug-print-function ${FUNCNAME} "$@"
-
- if [[ ${#} -lt 2 ]] ; then
- die "${FUNCNAME} requires at least two arguments"
- fi
-
- local reason=${1}
- shift
-
- local option
- for option in ${@} ; do
- echo "mk_add_options ${option} # ${reason}" >>${MOZCONFIG}
- done
-}
-
-mozconfig_use_enable() {
- debug-print-function ${FUNCNAME} "$@"
-
- if [[ ${#} -lt 1 ]] ; then
- die "${FUNCNAME} requires at least one arguments"
- fi
-
- local flag=$(use_enable "${@}")
- mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})"
"${flag}"
-}
-
-python_check_deps() {
- if use test ; then
- python_has_version "dev-python/six[${PYTHON_USEDEP}]"
- fi
-}
-
-pkg_pretend() {
- if use test ; then
- CHECKREQS_DISK_BUILD="4400M"
- else
- CHECKREQS_DISK_BUILD="4300M"
- fi
-
- check-reqs_pkg_pretend
-}
-
-pkg_setup() {
- # Get LTO from environment; export after this phase for use in
src_configure (etc)
- use_lto=no
-
- if [[ ${MERGE_TYPE} != binary ]] ; then
- if tc-is-lto; then
- use_lto=yes
- # LTO is handled via configure
- filter-lto
- fi
-
- if [[ ${use_lto} = yes ]]; then
- # -Werror=lto-type-mismatch -Werror=odr are going to
fail with GCC,
- # bmo#1516758, bgo#942288
- filter-flags -Werror=lto-type-mismatch -Werror=odr
- fi
-
- if use test ; then
- CHECKREQS_DISK_BUILD="4400M"
- else
- CHECKREQS_DISK_BUILD="4300M"
- fi
-
- check-reqs_pkg_setup
- llvm-r1_pkg_setup
- rust_pkg_setup
- python-any-r1_pkg_setup
-
- # Build system is using /proc/self/oom_score_adj, bug #604394
- addpredict /proc/self/oom_score_adj
-
- if ! mountpoint -q /dev/shm ; then
- # If /dev/shm is not available, configure is known to
fail with
- # a traceback report referencing
/usr/lib/pythonN.N/multiprocessing/synchronize.py
- ewarn "/dev/shm is not mounted -- expect build
failures!"
- fi
-
- # Ensure we use C locale when building, bug #746215
- export LC_ALL=C
- fi
-
- export use_lto
-}
-
-src_prepare() {
- if [[ ${use_lto} == "yes" ]]; then
- rm -v
"${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die
- fi
-
- # Workaround for bgo #915651,915651,929013 on musl
- if use elibc_glibc ; then
- rm -v
"${WORKDIR}"/firefox-patches/*bgo-748849-RUST_TARGET_override.patch || die
- fi
-
- eapply "${WORKDIR}"/firefox-patches
- eapply "${WORKDIR}"/spidermonkey-patches
-
- default
-
- # Make cargo respect MAKEOPTS
- export CARGO_BUILD_JOBS="$(makeopts_jobs)"
-
- # Workaround for bgo #915651,915651,929013 on musl
- if ! use elibc_glibc ; then
- if use amd64 ; then
- export RUST_TARGET="x86_64-unknown-linux-musl"
- elif use x86 ; then
- export RUST_TARGET="i686-unknown-linux-musl"
- elif use arm64 ; then
- export RUST_TARGET="aarch64-unknown-linux-musl"
- elif use ppc64 ; then
- export RUST_TARGET="powerpc64le-unknown-linux-musl"
- else
- die "Unknown musl chost, please post your rustc -vV
along with emerge --info on Gentoo's bug #915651"
- fi
- fi
-
- # sed-in toolchain prefix
- sed -i \
- -e "s/objdump/${CHOST}-objdump/" \
- python/mozbuild/mozbuild/configure/check_debug_ranges.py ||
- die "sed failed to set toolchain prefix"
-
- einfo "Removing pre-built binaries ..."
- find third_party -type f \( -name '*.so' -o -name '*.o' \) -print
-delete || die
-
- # Create build dir
- BUILD_DIR="${WORKDIR}/${PN}_build"
- mkdir -p "${BUILD_DIR}" || die
-}
-
-src_configure() {
- # Show flags set at the beginning
- einfo "Current BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}"
- einfo "Current CFLAGS: ${CFLAGS}"
- einfo "Current CXXFLAGS: ${CXXFLAGS}"
- einfo "Current LDFLAGS: ${LDFLAGS}"
- einfo "Current RUSTFLAGS: ${RUSTFLAGS}"
-
- local have_switched_compiler=
- if use clang ; then
- # Force clang
- einfo "Enforcing the use of clang due to USE=clang ..."
-
- local version_clang=$(clang --version 2>/dev/null | grep -F --
'clang version' | awk '{ print $3 }')
- [[ -n ${version_clang} ]] && version_clang=$(ver_cut 1
"${version_clang}")
- [[ -z ${version_clang} ]] && die "Failed to read clang version!"
-
- if tc-is-gcc; then
- have_switched_compiler=yes
- fi
-
- AR=llvm-ar
- CC=${CHOST}-clang-${version_clang}
- CXX=${CHOST}-clang++-${version_clang}
- NM=llvm-nm
- RANLIB=llvm-ranlib
- READELF=llvm-readelf
- OBJDUMP=llvm-objdump
-
- elif ! use clang && ! tc-is-gcc ; then
- # Force gcc
- have_switched_compiler=yes
- einfo "Enforcing the use of gcc due to USE=-clang ..."
- AR=gcc-ar
- CC=${CHOST}-gcc
- CXX=${CHOST}-g++
- NM=gcc-nm
- RANLIB=gcc-ranlib
- READELF=readelf
- OBJDUMP=objdump
- fi
-
- if [[ -n "${have_switched_compiler}" ]] ; then
- # Because we switched active compiler we have to ensure
- # that no unsupported flags are set
- strip-unsupported-flags
- fi
-
- # Ensure we use correct toolchain,
- # AS is used in a non-standard way by upstream, #bmo1654031
- export HOST_CC="$(tc-getBUILD_CC)"
- export HOST_CXX="$(tc-getBUILD_CXX)"
- export AS="$(tc-getCC) -c"
-
- tc-export CC CXX LD AR AS NM OBJDUMP RANLIB READELF PKG_CONFIG
-
- # Pass the correct toolchain paths through cbindgen
- if tc-is-cross-compiler ; then
- export BINDGEN_CFLAGS="${SYSROOT:+--sysroot=${ESYSROOT}}
--target=${CHOST} ${BINDGEN_CFLAGS-}"
- fi
-
- # ../python/mach/mach/mixin/process.py fails to detect SHELL
- export SHELL="${EPREFIX}/bin/bash"
-
- # Set state path
- export MOZBUILD_STATE_PATH="${BUILD_DIR}"
-
- # Set MOZCONFIG
- export MOZCONFIG="${S}/.mozconfig"
-
- # Initialize MOZCONFIG
- mozconfig_add_options_ac '' --enable-project=js
-
- mozconfig_add_options_ac 'Gentoo default' \
- --host="${CBUILD:-${CHOST}}" \
- --target="${CHOST}" \
- --disable-ctype \
- --disable-jemalloc \
- --disable-smoosh \
- --disable-strip \
- --enable-packed-relative-relocs \
- --enable-readline \
- --enable-release \
- --enable-shared-js \
- --libdir="${EPREFIX}/usr/$(get_libdir)" \
- --prefix="${EPREFIX}/usr" \
- --with-intl-api \
- --with-system-icu \
- --with-system-nspr \
- --with-system-zlib \
- --with-toolchain-prefix="${CHOST}-"
-
- mozconfig_use_enable debug
- mozconfig_use_enable jit
- mozconfig_use_enable test tests
-
- if use debug ; then
- mozconfig_add_options_ac '+debug' --disable-optimize
- mozconfig_add_options_ac '+debug' --enable-debug-symbols
- mozconfig_add_options_ac '+debug' --enable-real-time-tracing
- else
- mozconfig_add_options_ac '-debug' --enable-optimize
- mozconfig_add_options_ac '-debug' --disable-debug-symbols
- mozconfig_add_options_ac '-debug' --disable-real-time-tracing
- fi
-
- # We always end up disabling this at some point due to newer rust
versions. bgo#933372
- mozconfig_add_options_ac '--disable-rust-simd' --disable-rust-simd
-
- # Modifications to better support ARM, bug 717344
- if use cpu_flags_arm_neon ; then
- mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-fpu=neon
-
- if ! tc-is-clang ; then
- # thumb options aren't supported when using clang, bug
666966
- mozconfig_add_options_ac '+cpu_flags_arm_neon'
--with-thumb=yes
- mozconfig_add_options_ac '+cpu_flags_arm_neon'
--with-thumb-interwork=no
- fi
- fi
-
- # Tell build system that we want to use LTO
- if [[ ${use_lto} == "yes" ]] ; then
- if use clang ; then
- if tc-ld-is-mold ; then
- mozconfig_add_options_ac '+lto'
--enable-linker=mold
- else
- mozconfig_add_options_ac '+lto'
--enable-linker=lld
- fi
- mozconfig_add_options_ac '+lto' --enable-lto=cross
-
- else
- mozconfig_add_options_ac '+lto' --enable-linker=bfd
- mozconfig_add_options_ac '+lto' --enable-lto=full
- fi
- fi
-
- # LTO flag was handled via configure
- filter-lto
-
- # Pass MAKEOPTS to build system
- export MOZ_MAKE_FLAGS="${MAKEOPTS}"
-
- # Use system's Python environment
- export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none"
- export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach
-
- # Disable notification when build system has finished
- export MOZ_NOSPAM=1
-
- # Portage sets XARGS environment variable to "xargs -r" by default which
- # breaks build system's check_prog() function which doesn't support
arguments
- mozconfig_add_options_ac 'Gentoo default'
"XARGS=${EPREFIX}/usr/bin/xargs"
-
- # Set build dir
- mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}"
-
- # Show flags we will use
- einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}"
- einfo "Build CFLAGS: ${CFLAGS}"
- einfo "Build CXXFLAGS: ${CXXFLAGS}"
- einfo "Build LDFLAGS: ${LDFLAGS}"
- einfo "Build RUSTFLAGS: ${RUSTFLAGS}"
-
- ./mach configure || die
-}
-
-src_compile() {
- ./mach build --verbose || die
-}
-
-src_test() {
- if "${BUILD_DIR}/js/src/js" -e 'print("Hello world!")'; then
- einfo "Smoke-test successful, continuing with full test suite"
- else
- die "Smoke-test failed: did interpreter initialization fail?"
- fi
-
- cp "${FILESDIR}"/spidermonkey-${SLOT}-known-test-failures.txt
"${T}"/known_test_failures.list || die
- ./mach jstests --exclude-file="${T}"/known_test_failures.list || die
-}
-
-src_install() {
- cd "${BUILD_DIR}" || die
- default
-
- # fix soname links
- pushd "${ED}"/usr/$(get_libdir) &>/dev/null || die
- mv lib${MY_PN}-${MY_MAJOR}.so lib${MY_PN}-${MY_MAJOR}.so.0.0.0 || die
- ln -s lib${MY_PN}-${MY_MAJOR}.so.0.0.0 lib${MY_PN}-${MY_MAJOR}.so.0 ||
die
- ln -s lib${MY_PN}-${MY_MAJOR}.so.0 lib${MY_PN}-${MY_MAJOR}.so || die
- popd &>/dev/null || die
-
- # remove unneeded files
- rm \
- "${ED}"/usr/bin/js${MY_MAJOR}-config \
- "${ED}"/usr/$(get_libdir)/libjs_static.ajs || die
-
- # fix permissions
- chmod -x \
- "${ED}"/usr/$(get_libdir)/pkgconfig/*.pc \
- "${ED}"/usr/include/mozjs-${MY_MAJOR}/js-config.h || die
-}
diff --git a/dev-lang/spidermonkey/spidermonkey-140.3.0.ebuild
b/dev-lang/spidermonkey/spidermonkey-140.3.0.ebuild
deleted file mode 100644
index 20792369a971..000000000000
--- a/dev-lang/spidermonkey/spidermonkey-140.3.0.ebuild
+++ /dev/null
@@ -1,466 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="8"
-
-FIREFOX_PATCHSET="firefox-140esr-patches-03.tar.xz"
-SPIDERMONKEY_PATCHSET="spidermonkey-140-patches-02.tar.xz"
-
-LLVM_COMPAT=( 19 20 )
-RUST_NEEDS_LLVM=1
-RUST_MIN_VER=1.82.0
-
-PYTHON_COMPAT=( python3_{11..14} )
-PYTHON_REQ_USE="ncurses,ssl,xml(+)"
-
-WANT_AUTOCONF="2.1"
-
-inherit check-reqs flag-o-matic llvm-r1 multiprocessing python-any-r1 rust
toolchain-funcs
-
-MY_PN="mozjs"
-MY_PV="${PV/_pre*}"
-
-MY_MAJOR=$(ver_cut 1)
-
-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"
-fi
-
-MOZ_PN="firefox"
-MOZ_P="${MOZ_PN}-${MOZ_PV}"
-MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
-MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
-
-MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
-
-if [[ ${PV} == *_rc* ]] ; then
-
MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}"
-fi
-
-PATCH_URIS=(
- https://dev.gentoo.org/~juippis/mozilla/patchsets/${FIREFOX_PATCHSET}
-
https://dev.gentoo.org/~juippis/mozilla/patchsets/${SPIDERMONKEY_PATCHSET}
-)
-
-DESCRIPTION="Mozilla's JavaScript engine written in C and C++"
-HOMEPAGE="https://spidermonkey.dev
https://firefox-source-docs.mozilla.org/js/index.html"
-SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz ->
${MOZ_P_DISTFILES}.source.tar.xz
- ${PATCH_URIS[@]}"
-S="${WORKDIR}/firefox-${PV%_*}"
-LICENSE="MPL-2.0"
-SLOT="$(ver_cut 1)"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
-
-IUSE="clang cpu_flags_arm_neon debug +jit test"
-
-#RESTRICT="test"
-RESTRICT="!test? ( test )"
-
-BDEPEND="${PYTHON_DEPS}
- $(llvm_gen_dep '
- clang? (
- llvm-core/clang:${LLVM_SLOT}
- llvm-core/lld:${LLVM_SLOT}
- llvm-core/llvm:${LLVM_SLOT}
- )
- ')
- >=dev-util/cbindgen-0.27.0
- virtual/pkgconfig
- test? (
- $(python_gen_any_dep 'dev-python/six[${PYTHON_USEDEP}]')
- )"
-DEPEND=">=dev-libs/icu-76.1:=
- >=dev-libs/nspr-4.35
- sys-libs/readline:0=
- virtual/zlib:="
-RDEPEND="${DEPEND}"
-
-llvm_check_deps() {
- if use clang ; then
- if ! has_version -b "llvm-core/clang:${LLVM_SLOT}" ; then
- einfo "llvm-core/clang:${LLVM_SLOT} is missing! Cannot
use LLVM slot ${LLVM_SLOT} ..." >&2
- return 1
- fi
-
- if ! has_version -b "llvm-core/llvm:${LLVM_SLOT}" ; then
- einfo "llvm-core/llvm:${LLVM_SLOT} is missing! Cannot
use LLVM slot ${LLVM_SLOT} ..." >&2
- return 1
- fi
-
- if ! tc-ld-is-mold ; then
- if ! has_version -b "llvm-core/lld:${LLVM_SLOT}" ; then
- einfo "llvm-core/lld:${LLVM_SLOT} is missing!
Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
- return 1
- fi
- fi
- fi
-
- einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
-}
-
-mozconfig_add_options_ac() {
- debug-print-function ${FUNCNAME} "$@"
-
- if [[ ${#} -lt 2 ]] ; then
- die "${FUNCNAME} requires at least two arguments"
- fi
-
- local reason=${1}
- shift
-
- local option
- for option in ${@} ; do
- echo "ac_add_options ${option} # ${reason}" >>${MOZCONFIG}
- done
-}
-
-mozconfig_add_options_mk() {
- debug-print-function ${FUNCNAME} "$@"
-
- if [[ ${#} -lt 2 ]] ; then
- die "${FUNCNAME} requires at least two arguments"
- fi
-
- local reason=${1}
- shift
-
- local option
- for option in ${@} ; do
- echo "mk_add_options ${option} # ${reason}" >>${MOZCONFIG}
- done
-}
-
-mozconfig_use_enable() {
- debug-print-function ${FUNCNAME} "$@"
-
- if [[ ${#} -lt 1 ]] ; then
- die "${FUNCNAME} requires at least one arguments"
- fi
-
- local flag=$(use_enable "${@}")
- mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})"
"${flag}"
-}
-
-python_check_deps() {
- if use test ; then
- python_has_version "dev-python/six[${PYTHON_USEDEP}]"
- fi
-}
-
-pkg_pretend() {
- if use test ; then
- CHECKREQS_DISK_BUILD="4400M"
- else
- CHECKREQS_DISK_BUILD="4300M"
- fi
-
- check-reqs_pkg_pretend
-}
-
-pkg_setup() {
- # Get LTO from environment; export after this phase for use in
src_configure (etc)
- use_lto=no
-
- if [[ ${MERGE_TYPE} != binary ]] ; then
- if tc-is-lto; then
- use_lto=yes
- # LTO is handled via configure
- filter-lto
- fi
-
- if [[ ${use_lto} = yes ]]; then
- # -Werror=lto-type-mismatch -Werror=odr are going to
fail with GCC,
- # bmo#1516758, bgo#942288
- filter-flags -Werror=lto-type-mismatch -Werror=odr
- fi
-
- if use test ; then
- CHECKREQS_DISK_BUILD="4400M"
- else
- CHECKREQS_DISK_BUILD="4300M"
- fi
-
- check-reqs_pkg_setup
- llvm-r1_pkg_setup
- rust_pkg_setup
- python-any-r1_pkg_setup
-
- # Build system is using /proc/self/oom_score_adj, bug #604394
- addpredict /proc/self/oom_score_adj
-
- if ! mountpoint -q /dev/shm ; then
- # If /dev/shm is not available, configure is known to
fail with
- # a traceback report referencing
/usr/lib/pythonN.N/multiprocessing/synchronize.py
- ewarn "/dev/shm is not mounted -- expect build
failures!"
- fi
-
- # Ensure we use C locale when building, bug #746215
- export LC_ALL=C
- fi
-
- export use_lto
-}
-
-src_prepare() {
- if [[ ${use_lto} == "yes" ]]; then
- rm -v
"${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die
- fi
-
- # Workaround for bgo #915651,915651,929013 on musl
- if use elibc_glibc ; then
- rm -v
"${WORKDIR}"/firefox-patches/*bgo-748849-RUST_TARGET_override.patch || die
- fi
-
- eapply "${WORKDIR}"/firefox-patches
- eapply "${WORKDIR}"/spidermonkey-patches
-
- default
-
- # Make cargo respect MAKEOPTS
- export CARGO_BUILD_JOBS="$(makeopts_jobs)"
-
- # Workaround for bgo #915651,915651,929013 on musl
- if ! use elibc_glibc ; then
- if use amd64 ; then
- export RUST_TARGET="x86_64-unknown-linux-musl"
- elif use x86 ; then
- export RUST_TARGET="i686-unknown-linux-musl"
- elif use arm64 ; then
- export RUST_TARGET="aarch64-unknown-linux-musl"
- elif use ppc64 ; then
- export RUST_TARGET="powerpc64le-unknown-linux-musl"
- else
- die "Unknown musl chost, please post your rustc -vV
along with emerge --info on Gentoo's bug #915651"
- fi
- fi
-
- # sed-in toolchain prefix
- sed -i \
- -e "s/objdump/${CHOST}-objdump/" \
- python/mozbuild/mozbuild/configure/check_debug_ranges.py ||
- die "sed failed to set toolchain prefix"
-
- einfo "Removing pre-built binaries ..."
- find third_party -type f \( -name '*.so' -o -name '*.o' \) -print
-delete || die
-
- # Create build dir
- BUILD_DIR="${WORKDIR}/${PN}_build"
- mkdir -p "${BUILD_DIR}" || die
-}
-
-src_configure() {
- # Show flags set at the beginning
- einfo "Current BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}"
- einfo "Current CFLAGS: ${CFLAGS}"
- einfo "Current CXXFLAGS: ${CXXFLAGS}"
- einfo "Current LDFLAGS: ${LDFLAGS}"
- einfo "Current RUSTFLAGS: ${RUSTFLAGS}"
-
- local have_switched_compiler=
- if use clang ; then
- # Force clang
- einfo "Enforcing the use of clang due to USE=clang ..."
-
- local version_clang=$(clang --version 2>/dev/null | grep -F --
'clang version' | awk '{ print $3 }')
- [[ -n ${version_clang} ]] && version_clang=$(ver_cut 1
"${version_clang}")
- [[ -z ${version_clang} ]] && die "Failed to read clang version!"
-
- if tc-is-gcc; then
- have_switched_compiler=yes
- fi
-
- AR=llvm-ar
- CC=${CHOST}-clang-${version_clang}
- CXX=${CHOST}-clang++-${version_clang}
- NM=llvm-nm
- RANLIB=llvm-ranlib
- READELF=llvm-readelf
- OBJDUMP=llvm-objdump
-
- elif ! use clang && ! tc-is-gcc ; then
- # Force gcc
- have_switched_compiler=yes
- einfo "Enforcing the use of gcc due to USE=-clang ..."
- AR=gcc-ar
- CC=${CHOST}-gcc
- CXX=${CHOST}-g++
- NM=gcc-nm
- RANLIB=gcc-ranlib
- READELF=readelf
- OBJDUMP=objdump
- fi
-
- if [[ -n "${have_switched_compiler}" ]] ; then
- # Because we switched active compiler we have to ensure
- # that no unsupported flags are set
- strip-unsupported-flags
- fi
-
- # Ensure we use correct toolchain,
- # AS is used in a non-standard way by upstream, #bmo1654031
- export HOST_CC="$(tc-getBUILD_CC)"
- export HOST_CXX="$(tc-getBUILD_CXX)"
- export AS="$(tc-getCC) -c"
-
- tc-export CC CXX LD AR AS NM OBJDUMP RANLIB READELF PKG_CONFIG
-
- # Pass the correct toolchain paths through cbindgen
- if tc-is-cross-compiler ; then
- export BINDGEN_CFLAGS="${SYSROOT:+--sysroot=${ESYSROOT}}
--target=${CHOST} ${BINDGEN_CFLAGS-}"
- fi
-
- # ../python/mach/mach/mixin/process.py fails to detect SHELL
- export SHELL="${EPREFIX}/bin/bash"
-
- # Set state path
- export MOZBUILD_STATE_PATH="${BUILD_DIR}"
-
- # Set MOZCONFIG
- export MOZCONFIG="${S}/.mozconfig"
-
- # Initialize MOZCONFIG
- mozconfig_add_options_ac '' --enable-project=js
-
- mozconfig_add_options_ac 'Gentoo default' \
- --host="${CBUILD:-${CHOST}}" \
- --target="${CHOST}" \
- --disable-ctype \
- --disable-jemalloc \
- --disable-smoosh \
- --disable-strip \
- --enable-packed-relative-relocs \
- --enable-readline \
- --enable-release \
- --enable-shared-js \
- --libdir="${EPREFIX}/usr/$(get_libdir)" \
- --prefix="${EPREFIX}/usr" \
- --with-intl-api \
- --with-system-icu \
- --with-system-nspr \
- --with-system-zlib \
- --with-toolchain-prefix="${CHOST}-"
-
- mozconfig_use_enable debug
- mozconfig_use_enable jit
- mozconfig_use_enable test tests
-
- if use debug ; then
- mozconfig_add_options_ac '+debug' --disable-optimize
- mozconfig_add_options_ac '+debug' --enable-debug-symbols
- mozconfig_add_options_ac '+debug' --enable-real-time-tracing
- else
- mozconfig_add_options_ac '-debug' --enable-optimize
- mozconfig_add_options_ac '-debug' --disable-debug-symbols
- mozconfig_add_options_ac '-debug' --disable-real-time-tracing
- fi
-
- # We always end up disabling this at some point due to newer rust
versions. bgo#933372
- mozconfig_add_options_ac '--disable-rust-simd' --disable-rust-simd
-
- # Modifications to better support ARM, bug 717344
- if use cpu_flags_arm_neon ; then
- mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-fpu=neon
-
- if ! tc-is-clang ; then
- # thumb options aren't supported when using clang, bug
666966
- mozconfig_add_options_ac '+cpu_flags_arm_neon'
--with-thumb=yes
- mozconfig_add_options_ac '+cpu_flags_arm_neon'
--with-thumb-interwork=no
- fi
- fi
-
- # Tell build system that we want to use LTO
- if [[ ${use_lto} == "yes" ]] ; then
- if use clang ; then
- if tc-ld-is-mold ; then
- mozconfig_add_options_ac '+lto'
--enable-linker=mold
- else
- mozconfig_add_options_ac '+lto'
--enable-linker=lld
- fi
- mozconfig_add_options_ac '+lto' --enable-lto=cross
-
- else
- mozconfig_add_options_ac '+lto' --enable-linker=bfd
- mozconfig_add_options_ac '+lto' --enable-lto=full
- fi
- fi
-
- # LTO flag was handled via configure
- filter-lto
-
- # Pass MAKEOPTS to build system
- export MOZ_MAKE_FLAGS="${MAKEOPTS}"
-
- # Use system's Python environment
- export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none"
- export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach
-
- # Disable notification when build system has finished
- export MOZ_NOSPAM=1
-
- # Portage sets XARGS environment variable to "xargs -r" by default which
- # breaks build system's check_prog() function which doesn't support
arguments
- mozconfig_add_options_ac 'Gentoo default'
"XARGS=${EPREFIX}/usr/bin/xargs"
-
- # Set build dir
- mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}"
-
- # Show flags we will use
- einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}"
- einfo "Build CFLAGS: ${CFLAGS}"
- einfo "Build CXXFLAGS: ${CXXFLAGS}"
- einfo "Build LDFLAGS: ${LDFLAGS}"
- einfo "Build RUSTFLAGS: ${RUSTFLAGS}"
-
- ./mach configure || die
-}
-
-src_compile() {
- ./mach build --verbose || die
-}
-
-src_test() {
- if "${BUILD_DIR}/js/src/js" -e 'print("Hello world!")'; then
- einfo "Smoke-test successful, continuing with full test suite"
- else
- die "Smoke-test failed: did interpreter initialization fail?"
- fi
-
- cp "${FILESDIR}"/spidermonkey-${SLOT}-known-test-failures.txt
"${T}"/known_test_failures.list || die
- ./mach jstests --exclude-file="${T}"/known_test_failures.list || die
-}
-
-src_install() {
- cd "${BUILD_DIR}" || die
- default
-
- # fix soname links
- pushd "${ED}"/usr/$(get_libdir) &>/dev/null || die
- mv lib${MY_PN}-${MY_MAJOR}.so lib${MY_PN}-${MY_MAJOR}.so.0.0.0 || die
- ln -s lib${MY_PN}-${MY_MAJOR}.so.0.0.0 lib${MY_PN}-${MY_MAJOR}.so.0 ||
die
- ln -s lib${MY_PN}-${MY_MAJOR}.so.0 lib${MY_PN}-${MY_MAJOR}.so || die
- popd &>/dev/null || die
-
- # remove unneeded files
- rm \
- "${ED}"/usr/bin/js${MY_MAJOR}-config \
- "${ED}"/usr/$(get_libdir)/libjs_static.ajs || die
-
- # fix permissions
- chmod -x \
- "${ED}"/usr/$(get_libdir)/pkgconfig/*.pc \
- "${ED}"/usr/include/mozjs-${MY_MAJOR}/js-config.h || die
-}
diff --git a/dev-lang/spidermonkey/spidermonkey-140.5.0.ebuild
b/dev-lang/spidermonkey/spidermonkey-140.5.0.ebuild
deleted file mode 100644
index aa41e32f7b69..000000000000
--- a/dev-lang/spidermonkey/spidermonkey-140.5.0.ebuild
+++ /dev/null
@@ -1,466 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="8"
-
-FIREFOX_PATCHSET="firefox-140esr-patches-03.tar.xz"
-SPIDERMONKEY_PATCHSET="spidermonkey-140-patches-02.tar.xz"
-
-LLVM_COMPAT=( 19 20 21 )
-RUST_NEEDS_LLVM=1
-RUST_MIN_VER=1.82.0
-
-PYTHON_COMPAT=( python3_{11..14} )
-PYTHON_REQ_USE="ncurses,ssl,xml(+)"
-
-WANT_AUTOCONF="2.1"
-
-inherit check-reqs flag-o-matic llvm-r1 multiprocessing python-any-r1 rust
toolchain-funcs
-
-MY_PN="mozjs"
-MY_PV="${PV/_pre*}"
-
-MY_MAJOR=$(ver_cut 1)
-
-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"
-fi
-
-MOZ_PN="firefox"
-MOZ_P="${MOZ_PN}-${MOZ_PV}"
-MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
-MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
-
-MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
-
-if [[ ${PV} == *_rc* ]] ; then
-
MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}"
-fi
-
-PATCH_URIS=(
- https://dev.gentoo.org/~juippis/mozilla/patchsets/${FIREFOX_PATCHSET}
-
https://dev.gentoo.org/~juippis/mozilla/patchsets/${SPIDERMONKEY_PATCHSET}
-)
-
-DESCRIPTION="Mozilla's JavaScript engine written in C and C++"
-HOMEPAGE="https://spidermonkey.dev
https://firefox-source-docs.mozilla.org/js/index.html"
-SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz ->
${MOZ_P_DISTFILES}.source.tar.xz
- ${PATCH_URIS[@]}"
-S="${WORKDIR}/firefox-${PV%_*}"
-LICENSE="MPL-2.0"
-SLOT="$(ver_cut 1)"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
-
-IUSE="clang cpu_flags_arm_neon debug +jit test"
-
-#RESTRICT="test"
-RESTRICT="!test? ( test )"
-
-BDEPEND="${PYTHON_DEPS}
- $(llvm_gen_dep '
- clang? (
- llvm-core/clang:${LLVM_SLOT}
- llvm-core/lld:${LLVM_SLOT}
- llvm-core/llvm:${LLVM_SLOT}
- )
- ')
- >=dev-util/cbindgen-0.27.0
- virtual/pkgconfig
- test? (
- $(python_gen_any_dep 'dev-python/six[${PYTHON_USEDEP}]')
- )"
-DEPEND=">=dev-libs/icu-76.1:=
- >=dev-libs/nspr-4.35
- sys-libs/readline:0=
- virtual/zlib:="
-RDEPEND="${DEPEND}"
-
-llvm_check_deps() {
- if use clang ; then
- if ! has_version -b "llvm-core/clang:${LLVM_SLOT}" ; then
- einfo "llvm-core/clang:${LLVM_SLOT} is missing! Cannot
use LLVM slot ${LLVM_SLOT} ..." >&2
- return 1
- fi
-
- if ! has_version -b "llvm-core/llvm:${LLVM_SLOT}" ; then
- einfo "llvm-core/llvm:${LLVM_SLOT} is missing! Cannot
use LLVM slot ${LLVM_SLOT} ..." >&2
- return 1
- fi
-
- if ! tc-ld-is-mold ; then
- if ! has_version -b "llvm-core/lld:${LLVM_SLOT}" ; then
- einfo "llvm-core/lld:${LLVM_SLOT} is missing!
Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
- return 1
- fi
- fi
- fi
-
- einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
-}
-
-mozconfig_add_options_ac() {
- debug-print-function ${FUNCNAME} "$@"
-
- if [[ ${#} -lt 2 ]] ; then
- die "${FUNCNAME} requires at least two arguments"
- fi
-
- local reason=${1}
- shift
-
- local option
- for option in ${@} ; do
- echo "ac_add_options ${option} # ${reason}" >>${MOZCONFIG}
- done
-}
-
-mozconfig_add_options_mk() {
- debug-print-function ${FUNCNAME} "$@"
-
- if [[ ${#} -lt 2 ]] ; then
- die "${FUNCNAME} requires at least two arguments"
- fi
-
- local reason=${1}
- shift
-
- local option
- for option in ${@} ; do
- echo "mk_add_options ${option} # ${reason}" >>${MOZCONFIG}
- done
-}
-
-mozconfig_use_enable() {
- debug-print-function ${FUNCNAME} "$@"
-
- if [[ ${#} -lt 1 ]] ; then
- die "${FUNCNAME} requires at least one arguments"
- fi
-
- local flag=$(use_enable "${@}")
- mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})"
"${flag}"
-}
-
-python_check_deps() {
- if use test ; then
- python_has_version "dev-python/six[${PYTHON_USEDEP}]"
- fi
-}
-
-pkg_pretend() {
- if use test ; then
- CHECKREQS_DISK_BUILD="4400M"
- else
- CHECKREQS_DISK_BUILD="4300M"
- fi
-
- check-reqs_pkg_pretend
-}
-
-pkg_setup() {
- # Get LTO from environment; export after this phase for use in
src_configure (etc)
- use_lto=no
-
- if [[ ${MERGE_TYPE} != binary ]] ; then
- if tc-is-lto; then
- use_lto=yes
- # LTO is handled via configure
- filter-lto
- fi
-
- if [[ ${use_lto} = yes ]]; then
- # -Werror=lto-type-mismatch -Werror=odr are going to
fail with GCC,
- # bmo#1516758, bgo#942288
- filter-flags -Werror=lto-type-mismatch -Werror=odr
- fi
-
- if use test ; then
- CHECKREQS_DISK_BUILD="4400M"
- else
- CHECKREQS_DISK_BUILD="4300M"
- fi
-
- check-reqs_pkg_setup
- llvm-r1_pkg_setup
- rust_pkg_setup
- python-any-r1_pkg_setup
-
- # Build system is using /proc/self/oom_score_adj, bug #604394
- addpredict /proc/self/oom_score_adj
-
- if ! mountpoint -q /dev/shm ; then
- # If /dev/shm is not available, configure is known to
fail with
- # a traceback report referencing
/usr/lib/pythonN.N/multiprocessing/synchronize.py
- ewarn "/dev/shm is not mounted -- expect build
failures!"
- fi
-
- # Ensure we use C locale when building, bug #746215
- export LC_ALL=C
- fi
-
- export use_lto
-}
-
-src_prepare() {
- if [[ ${use_lto} == "yes" ]]; then
- rm -v
"${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die
- fi
-
- # Workaround for bgo #915651,915651,929013 on musl
- if use elibc_glibc ; then
- rm -v
"${WORKDIR}"/firefox-patches/*bgo-748849-RUST_TARGET_override.patch || die
- fi
-
- eapply "${WORKDIR}"/firefox-patches
- eapply "${WORKDIR}"/spidermonkey-patches
-
- default
-
- # Make cargo respect MAKEOPTS
- export CARGO_BUILD_JOBS="$(makeopts_jobs)"
-
- # Workaround for bgo #915651,915651,929013 on musl
- if ! use elibc_glibc ; then
- if use amd64 ; then
- export RUST_TARGET="x86_64-unknown-linux-musl"
- elif use x86 ; then
- export RUST_TARGET="i686-unknown-linux-musl"
- elif use arm64 ; then
- export RUST_TARGET="aarch64-unknown-linux-musl"
- elif use ppc64 ; then
- export RUST_TARGET="powerpc64le-unknown-linux-musl"
- else
- die "Unknown musl chost, please post your rustc -vV
along with emerge --info on Gentoo's bug #915651"
- fi
- fi
-
- # sed-in toolchain prefix
- sed -i \
- -e "s/objdump/${CHOST}-objdump/" \
- python/mozbuild/mozbuild/configure/check_debug_ranges.py ||
- die "sed failed to set toolchain prefix"
-
- einfo "Removing pre-built binaries ..."
- find third_party -type f \( -name '*.so' -o -name '*.o' \) -print
-delete || die
-
- # Create build dir
- BUILD_DIR="${WORKDIR}/${PN}_build"
- mkdir -p "${BUILD_DIR}" || die
-}
-
-src_configure() {
- # Show flags set at the beginning
- einfo "Current BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}"
- einfo "Current CFLAGS: ${CFLAGS}"
- einfo "Current CXXFLAGS: ${CXXFLAGS}"
- einfo "Current LDFLAGS: ${LDFLAGS}"
- einfo "Current RUSTFLAGS: ${RUSTFLAGS}"
-
- local have_switched_compiler=
- if use clang ; then
- # Force clang
- einfo "Enforcing the use of clang due to USE=clang ..."
-
- local version_clang=$(clang --version 2>/dev/null | grep -F --
'clang version' | awk '{ print $3 }')
- [[ -n ${version_clang} ]] && version_clang=$(ver_cut 1
"${version_clang}")
- [[ -z ${version_clang} ]] && die "Failed to read clang version!"
-
- if tc-is-gcc; then
- have_switched_compiler=yes
- fi
-
- AR=llvm-ar
- CC=${CHOST}-clang-${version_clang}
- CXX=${CHOST}-clang++-${version_clang}
- NM=llvm-nm
- RANLIB=llvm-ranlib
- READELF=llvm-readelf
- OBJDUMP=llvm-objdump
-
- elif ! use clang && ! tc-is-gcc ; then
- # Force gcc
- have_switched_compiler=yes
- einfo "Enforcing the use of gcc due to USE=-clang ..."
- AR=gcc-ar
- CC=${CHOST}-gcc
- CXX=${CHOST}-g++
- NM=gcc-nm
- RANLIB=gcc-ranlib
- READELF=readelf
- OBJDUMP=objdump
- fi
-
- if [[ -n "${have_switched_compiler}" ]] ; then
- # Because we switched active compiler we have to ensure
- # that no unsupported flags are set
- strip-unsupported-flags
- fi
-
- # Ensure we use correct toolchain,
- # AS is used in a non-standard way by upstream, #bmo1654031
- export HOST_CC="$(tc-getBUILD_CC)"
- export HOST_CXX="$(tc-getBUILD_CXX)"
- export AS="$(tc-getCC) -c"
-
- tc-export CC CXX LD AR AS NM OBJDUMP RANLIB READELF PKG_CONFIG
-
- # Pass the correct toolchain paths through cbindgen
- if tc-is-cross-compiler ; then
- export BINDGEN_CFLAGS="${SYSROOT:+--sysroot=${ESYSROOT}}
--target=${CHOST} ${BINDGEN_CFLAGS-}"
- fi
-
- # ../python/mach/mach/mixin/process.py fails to detect SHELL
- export SHELL="${EPREFIX}/bin/bash"
-
- # Set state path
- export MOZBUILD_STATE_PATH="${BUILD_DIR}"
-
- # Set MOZCONFIG
- export MOZCONFIG="${S}/.mozconfig"
-
- # Initialize MOZCONFIG
- mozconfig_add_options_ac '' --enable-project=js
-
- mozconfig_add_options_ac 'Gentoo default' \
- --host="${CBUILD:-${CHOST}}" \
- --target="${CHOST}" \
- --disable-ctype \
- --disable-jemalloc \
- --disable-smoosh \
- --disable-strip \
- --enable-packed-relative-relocs \
- --enable-readline \
- --enable-release \
- --enable-shared-js \
- --libdir="${EPREFIX}/usr/$(get_libdir)" \
- --prefix="${EPREFIX}/usr" \
- --with-intl-api \
- --with-system-icu \
- --with-system-nspr \
- --with-system-zlib \
- --with-toolchain-prefix="${CHOST}-"
-
- mozconfig_use_enable debug
- mozconfig_use_enable jit
- mozconfig_use_enable test tests
-
- if use debug ; then
- mozconfig_add_options_ac '+debug' --disable-optimize
- mozconfig_add_options_ac '+debug' --enable-debug-symbols
- mozconfig_add_options_ac '+debug' --enable-real-time-tracing
- else
- mozconfig_add_options_ac '-debug' --enable-optimize
- mozconfig_add_options_ac '-debug' --disable-debug-symbols
- mozconfig_add_options_ac '-debug' --disable-real-time-tracing
- fi
-
- # We always end up disabling this at some point due to newer rust
versions. bgo#933372
- mozconfig_add_options_ac '--disable-rust-simd' --disable-rust-simd
-
- # Modifications to better support ARM, bug 717344
- if use cpu_flags_arm_neon ; then
- mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-fpu=neon
-
- if ! tc-is-clang ; then
- # thumb options aren't supported when using clang, bug
666966
- mozconfig_add_options_ac '+cpu_flags_arm_neon'
--with-thumb=yes
- mozconfig_add_options_ac '+cpu_flags_arm_neon'
--with-thumb-interwork=no
- fi
- fi
-
- # Tell build system that we want to use LTO
- if [[ ${use_lto} == "yes" ]] ; then
- if use clang ; then
- if tc-ld-is-mold ; then
- mozconfig_add_options_ac '+lto'
--enable-linker=mold
- else
- mozconfig_add_options_ac '+lto'
--enable-linker=lld
- fi
- mozconfig_add_options_ac '+lto' --enable-lto=cross
-
- else
- mozconfig_add_options_ac '+lto' --enable-linker=bfd
- mozconfig_add_options_ac '+lto' --enable-lto=full
- fi
- fi
-
- # LTO flag was handled via configure
- filter-lto
-
- # Pass MAKEOPTS to build system
- export MOZ_MAKE_FLAGS="${MAKEOPTS}"
-
- # Use system's Python environment
- export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none"
- export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach
-
- # Disable notification when build system has finished
- export MOZ_NOSPAM=1
-
- # Portage sets XARGS environment variable to "xargs -r" by default which
- # breaks build system's check_prog() function which doesn't support
arguments
- mozconfig_add_options_ac 'Gentoo default'
"XARGS=${EPREFIX}/usr/bin/xargs"
-
- # Set build dir
- mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}"
-
- # Show flags we will use
- einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}"
- einfo "Build CFLAGS: ${CFLAGS}"
- einfo "Build CXXFLAGS: ${CXXFLAGS}"
- einfo "Build LDFLAGS: ${LDFLAGS}"
- einfo "Build RUSTFLAGS: ${RUSTFLAGS}"
-
- ./mach configure || die
-}
-
-src_compile() {
- ./mach build --verbose || die
-}
-
-src_test() {
- if "${BUILD_DIR}/js/src/js" -e 'print("Hello world!")'; then
- einfo "Smoke-test successful, continuing with full test suite"
- else
- die "Smoke-test failed: did interpreter initialization fail?"
- fi
-
- cp "${FILESDIR}"/spidermonkey-${SLOT}-known-test-failures.txt
"${T}"/known_test_failures.list || die
- ./mach jstests --exclude-file="${T}"/known_test_failures.list || die
-}
-
-src_install() {
- cd "${BUILD_DIR}" || die
- default
-
- # fix soname links
- pushd "${ED}"/usr/$(get_libdir) &>/dev/null || die
- mv lib${MY_PN}-${MY_MAJOR}.so lib${MY_PN}-${MY_MAJOR}.so.0.0.0 || die
- ln -s lib${MY_PN}-${MY_MAJOR}.so.0.0.0 lib${MY_PN}-${MY_MAJOR}.so.0 ||
die
- ln -s lib${MY_PN}-${MY_MAJOR}.so.0 lib${MY_PN}-${MY_MAJOR}.so || die
- popd &>/dev/null || die
-
- # remove unneeded files
- rm \
- "${ED}"/usr/bin/js${MY_MAJOR}-config \
- "${ED}"/usr/$(get_libdir)/libjs_static.ajs || die
-
- # fix permissions
- chmod -x \
- "${ED}"/usr/$(get_libdir)/pkgconfig/*.pc \
- "${ED}"/usr/include/mozjs-${MY_MAJOR}/js-config.h || die
-}