void-packages/srcpkgs/mozjs102/template

108 lines
3.6 KiB
Bash

# Template file for 'mozjs102'
pkgname=mozjs102
version=102.15.1
revision=1
build_wrksrc=js/src
build_style=gnu-configure
build_helper=rust
make_check_target=check-jit-test
configure_args="--disable-jemalloc --disable-strip --disable-tests \
--disable-optimize --disable-debug --enable-ctypes --enable-readline \
--enable-shared-js --enable-system-ffi --with-intl-api --with-system-icu \
--with-system-nspr --with-system-zlib --enable-hardening --enable-release"
hostmakedepends="make pkg-config python3 python3-setuptools python3-six perl m4
rust cargo llvm18 clang18 python3-looseversion"
makedepends="icu-devel libffi-devel nspr-devel python3-devel readline-devel
zlib-devel rust-std"
checkdepends="python3"
short_desc="SpiderMonkey JavaScript interpreter and library (102.x)"
maintainer="oreo639 <oreo6391@gmail.com>"
license="MPL-2.0"
homepage="https://spidermonkey.dev"
distfiles="${MOZILLA_SITE}/firefox/releases/${version}esr/source/firefox-${version}esr.source.tar.xz"
checksum=09194fb765953bc6979a35aa8834118c453b9d6060bf1ec4e134551bad740113
broken="ModuleNotFoundError: No module named 'distutils'"
LDFLAGS="-Wl,-z,stack-size=1048576"
if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then
LDFLAGS+=" -latomic"
fi
if [ "$XBPS_TARGET_MACHINE" = i686 ]; then
# Disable LTO on i686, otherwise compilation of `jsrust` fails with -
# error: ran out of registers during register allocation
# LLVM ERROR: Cannot emit physreg copy instruction
# error: could not compile `jsrust` due to previous error
export MOZ_NO_RUST_LTO=1
fi
pre_configure() {
if [ "$CROSS_BUILD" ]; then
configure_args+=" --host=${XBPS_TRIPLET} --target=${XBPS_CROSS_TRIPLET} --enable-linker=bfd"
fi
export M4=m4
export AWK=awk
export AC_MACRODIR=../../build/autoconf
chmod 0755 ../../build/autoconf/autoconf.sh
sh ../../build/autoconf/autoconf.sh configure.in > configure
chmod 0755 configure
rm -rf ${wrksrc}/third_party/python/six
mkdir ${wrksrc}/third_party/python/six
ln -s /${py3_sitelib}/six.py ${wrksrc}/third_party/python/six
rm -rf ${wrksrc}/third_party/python/looseversion
mkdir ${wrksrc}/third_party/python/looseversion
ln -s /${py3_sitelib}/looseversion/__init__.py ${wrksrc}/third_party/python/looseversion/looseversion.py
echo "vendored:third_party/python/looseversion" >> ${wrksrc}/python/sites/mach.txt
}
post_install() {
# Remove unneeded static library
rm -f "${DESTDIR}"/usr/lib/*.ajs
# it has correct soname but not the right file name
mv "${DESTDIR}"/usr/lib/libmozjs-102.so \
"${DESTDIR}"/usr/lib/libmozjs-102.so.0
ln -rs "${DESTDIR}"/usr/lib/libmozjs-102.so.0 \
"${DESTDIR}"/usr/lib/libmozjs-102.so
}
pre_check() {
if [ "$XBPS_WORDSIZE" = 32 ]; then
vsed -i jit-test/tests/basic/bug653153.js -e s/65536/65568/g
vsed -i jit-test/tests/basic/bug653153.js -e s/65537/65569/g
fi
if [ "$XBPS_TARGET_MACHINE" = i686 ]; then
export JITTEST_EXTRA_ARGS="${JITTEST_EXTRA_ARGS} \
-x basic/fdlibm-for-sin-cos-tan-argument.js \
-x gc/gcparam.js \
-x ion/dce-with-rinstructions.js \
-x sunspider/check-3d-cube.js \
-x sunspider/check-3d-raytrace.js \
-x sunspider/check-access-nbody.js \
-x wasm/nan-semantics.js \
-x wasm/spec/spec/float_literals.wast.js \
-x wasm/spec/spec/float_memory.wast.js \
-x wasm/spec/threads/float_memory.wast.js \
"
fi
if [ "$XBPS_LIBC" = musl ]; then
export JITTEST_EXTRA_ARGS="${JITTEST_EXTRA_ARGS} \
-x sunspider/check-date-format-tofte.js \
"
fi
}
mozjs102-devel_package() {
depends="nspr-devel ${sourcepkg}>=${version}_${revision}"
short_desc+=" - development files"
pkg_install() {
vmove usr/bin/js102-config
vmove usr/include
vmove "usr/lib/*.so"
vmove usr/lib/pkgconfig
}
}