diff --git a/dev-lang/spidermonkey/Manifest b/dev-lang/spidermonkey/Manifest index 2660636a83906..c4edf914a3c08 100644 --- a/dev-lang/spidermonkey/Manifest +++ b/dev-lang/spidermonkey/Manifest @@ -4,8 +4,6 @@ DIST firefox-128.14.0esr.source.tar.xz 562714012 BLAKE2B 16420f803f5fe9cd1879d7f DIST firefox-128esr-patches-11.tar.xz 18696 BLAKE2B 0f35eaa29f1daf9beb09c7303b3e92676eea84337683b8f7393e8b52e36ec1f37683a050e1e8d7939ebb1bdc190acaac887bebe88812c1b64785e38980f18be3 SHA512 04bf8bbf3c4e7901a6681fec66f179f797615613be838cf35a4b03cd9a347656b1264524ac7355f0c3978a5e740ddc5dc438610e5cae6ffcad73a8988cf0e572 DIST firefox-140.11.0esr.source.tar.xz 637083992 BLAKE2B 987913236b1d64cb0a17fa2fe1d8f1d3aa224c1cc4c7a6d0b2d912d2dcca809554de4f03de3ed958ea7b5a52d385c2d4ae0cf7e79b652ddd16d1cff73e947539 SHA512 d06adb3ef4de1324e3d61872d70de31ab08ac013f33903549bed28c6ebcc5b4dee94bb36388282c1935d77d1a564079f3adbf08d6bb80284a899cbb3d861300c DIST firefox-140.12.0esr.source.tar.xz 641934156 BLAKE2B c9e3b2fd860edf1e91475419a7420f9d22155cd641226c70f381650d9df2fbb450c85d8f4e1b02eaf7ca86d4ce09ce8cba5674e1afcc4810ae5dd3cb70050cbb SHA512 3d598dd964bca074d11b71f84d586811b0a736bdd4d1e6cedb9286c56b1e11584e85ca1d0369c9b2f8d9e4d0eaf014d1b9232a96e71ac25f71fa9ed0807f642d -DIST firefox-140.9.1esr.source.tar.xz 634745800 BLAKE2B 2a8babb3060867fbc8d7a9656b514d6046ed748a2370d92d08c27d9db86c55858656d5b60ab5b016abd9b5283678c176664a34cdefbf9a90e5523e79cd662498 SHA512 119a4e4e536fd4534adcc4a546a988e553285f9326bf16e9771854ec2dc7d039a729aedc5925623e172260a5e154172c56a011f131068736eb2a89a8de611840 -DIST firefox-140esr-patches-07.tar.xz 125712 BLAKE2B df8cb80104d816966723de33c79aa56f2a0ff54bf1a8a0668b76c4bb1bf3a7fa181011850c3030c04c2b8abcd69bec2dc23d500cfb6a624704b0797b76af8062 SHA512 6735b7f00048a24f313f2a09a17c785d045b3ebc0e640c9b7932fd1e65b84284344adee73d058855aff6bf93384933323031799565838a6339b9d20684e162d4 DIST firefox-140esr-patches-10.tar.xz 15052 BLAKE2B 1e9f1d401590958422f91d5df98dc2286b76de1cefd279ede23afa9493ec61d4a231873e000ea73bc26cc2433af7a2a6d87f94bc257a2763283b3d3d5e683462 SHA512 8276a3b37424d476f63c4669124120ab310d8a132e4fb82250fec033683456960fb83e31e12860ccb5064268bc72ebabb65b212bba161766832109dbd3d14676 DIST firefox-140esr-patches-12.tar.xz 16200 BLAKE2B 51110f80537b2c3fd2e53e6c65c8d19b78b6ec828161da8697dfb3eb008c39e036517c78b0491f1131351967d3a775154d795bafe978850415b2f9fa5415b8a2 SHA512 a73007646116a1e50da1e2cfab623794283ba6890743c17bfefe4115ee4b1dca5a55fe1ed798a6efcad0c2ff708dd38bab0d328007b4ebd99c9c90f880920bc4 DIST spidermonkey-115-patches-02.tar.xz 4896 BLAKE2B f78d9804c1427b45d6fda496b4991ec6f672dec9ce031ed57a2920fa1968c942a235f46e40166c8ab8d731a1963f322d34bb2f6984133179175e6f7376d27d13 SHA512 11fd01152d1e7b8ca89bf628076e1f4fb4f1ba6c9dc0f9dd544252495c580c04e4d5ffc238d5587f9e993aa91a47828333564ca55f60e008bd370089cd07d2e6 diff --git a/dev-lang/spidermonkey/spidermonkey-140.9.1.ebuild b/dev-lang/spidermonkey/spidermonkey-140.9.1.ebuild deleted file mode 100644 index 6fbbacadcc96b..0000000000000 --- a/dev-lang/spidermonkey/spidermonkey-140.9.1.ebuild +++ /dev/null @@ -1,466 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="8" - -FIREFOX_PATCHSET="firefox-140esr-patches-07.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.36 - 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 -}