blob: c455d6b323e2880b2f21b2fe6d3b10fa31fc2fee (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
# Contributor: Rasmus Thomsen <oss@cogitri.dev>
# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
pkgname=mozjs78
pkgver=78.10.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=11
makedepends="
$depends_dev
zlib-dev
python3
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.10.0-r0:
# - CVE-2021-29945
# 78.9.0-r0:
# - CVE-2021-23987
# 78.8.0-r0:
# - CVE-2021-23978
# 78.7.0-r0:
# - CVE-2021-23954
# - CVE-2021-23960
# - CVE-2021-23964
# 78.6.0-r0:
# - CVE-2020-16042
# - CVE-2020-35113
# 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="5e2cf137dc781855542c29df6152fa74ba749801640ade3cf01487ce993786b87a4f603d25c0af9323e67c7e15c75655523428c1c1426527b8623c7ded9f5946 firefox-78.10.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"
|