# Contributor: Rasmus Thomsen # Maintainer: Rasmus Thomsen pkgname=mozjs78 pkgver=78.5.0 pkgrel=0 pkgdesc="Standalone Mozilla JavaScript engine" url="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey" arch="x86_64 armv7 armhf aarch64 x86 ppc64le" # limited by rust and cargo license="MPL-2.0" depends_dev=" icu-dev nspr-dev libffi-dev readline-dev $pkgname " _llvmver=10 makedepends=" $depends_dev zlib-dev python3-dev perl sed autoconf2.13 linux-headers rust cargo llvm$_llvmver clang-dev " subpackages="$pkgname-dev" source="https://ftp.mozilla.org/pub/firefox/releases/${pkgver}esr/source/firefox-${pkgver}esr.source.tar.xz 0001-silence-sandbox-violations.patch disable-jslint.patch fd6847c9416f9eebde636e21d794d25d1be8791d.patch fix-musl-build.patch fix-rust-target.patch " builddir="$srcdir"/firefox-$pkgver _builddir="$builddir/js/src" # secfixes: # 78.5.0-r0: # - CVE-2020-26968 # 78.4.1-r0: # - CVE-2020-26950 build() { local _clangver=$(clang --version | awk '$3 == "version" {print $4}') if [ "${_clangver#$_llvmver}" = "$_clangver" ]; then error "clang version $_clangver does not match llvm version $_llvmver" return 1 fi cd "$_builddir" export LDFLAGS="$LDFLAGS -Wl,-z,stack-size=1048576" # avoid complains about autoconf touch configure # Fix broken ARM_ARCH check which doesn't work with newer GCCs it seems. case "$CTARGET" in armv*) ARM_ARCH=$(echo ${CTARGET#*armv} | sed "s|-.*||") sed -i "s|ARM_ARCH=.*|ARM_ARCH=$ARM_ARCH|" "$builddir"/build/autoconf/arch.m4 ;; esac export RUST_TARGET="$CTARGET" export SHELL=/bin/ash export PYTHON=/usr/bin/python3 ./configure --prefix=/usr \ --with-clang-path=/usr/bin/clang \ --with-intl-api \ --with-libclang-path=/usr/lib \ --with-system-icu \ --with-system-nspr \ --with-system-zlib \ --enable-ctypes \ --enable-hardening \ --enable-optimize="$CFLAGS -O2" \ --enable-readline \ --enable-release \ --enable-shared-js \ --enable-system-ffi \ --enable-tests \ --disable-debug \ --disable-debug-symbols \ --disable-jemalloc \ --disable-strip make } check() { cd "$_builddir" dist/bin/jsapi-tests \ --format=none \ --exclude-random \ basic } package() { cd "$_builddir" make DESTDIR="$pkgdir" install rm -f "$pkgdir"/usr/lib/*.ajs } sha512sums="0d16013342b6e8d67adb5c111177ea4796db4fb593da8aa254d0d95bdf33fad798c2dbb235d44db4177c32dd2d7b3ac26b938b476342753ee8d6c83d968d0281 firefox-78.5.0esr.source.tar.xz f7e5bee97cfa495d491dac4b8b98e5d3081346d920700e8bb6d077543e18245e5c82201a9981036ec0bf16d9fbdd42fd76e8cf6d90bb811e7338261204020149 0001-silence-sandbox-violations.patch 4f2cb93f91e798218d83cb3ac4c60b61a3658c5b269bfe250f4c4875aedaacbd77598d8d20e3a868626e49988b2073a2404e37d6918b11def774c25db68dd08d disable-jslint.patch 60845dcb034b2c4459c30f7d5f25c8176cf42df794e2cc0e86c3e2abb6541c24b962f3a16ca70a288d4d6f377b68d00b2904b22463108559612053d835d9bff1 fd6847c9416f9eebde636e21d794d25d1be8791d.patch bc91c2fb15eb22acb8acc36d086fb18fbf6f202b4511d138769b5ecaaed4a673349c55f808270c762616fafa42e3b01e74dc0af1dcbeea1289e043926e2750c8 fix-musl-build.patch c397bd594428b009d1533922a3728a0ec74403714417f4b90c38c1b7751749b0585d48e77c79efa05c6c22a0d9a8ac04d535eb5bb8deb51684852c03c05d94cd fix-rust-target.patch"