aboutsummaryrefslogtreecommitdiffstats
path: root/community/mozjs68/APKBUILD
blob: 6903ed6ea8681c309cc4c707945fc932252aca43 (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
# Contributor: Rasmus Thomsen <oss@cogitri.dev>
# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
pkgname=mozjs68
pkgver=68.6.0
pkgrel=4
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
	"
_llvmver=10
makedepends="
	$depends_dev
	zlib-dev
	python2
	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
	fix-musl-build.patch
	fix-rust-target.patch
	fd6847c9416f9eebde636e21d794d25d1be8791d.patch
	"
builddir="$srcdir"/firefox-$pkgver
_builddir="$builddir/js/src"

# secfixes:
#   68.6.0-r0:
#     - CVE-2019-20503
#     - CVE-2020-6805
#     - CVE-2020-6806
#     - CVE-2020-6807
#     - CVE-2020-6811
#     - CVE-2020-6812
#     - CVE-2020-6814
#   60.7.2-r0:
#     - CVE-2019-11708
#     - CVE-2019-11707

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/python2
	./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 \
		--enable-unaligned-private-values
	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="84565d654ed8bd2d036d08de4d16e41ae8881f0b20b34424ab347d50a37384acf50c04f74269720e79db28028569dff79f2b910848939ff87c078f36684a75a3  firefox-68.6.0esr.source.tar.xz
4d30f4b64b6d9ba03099831aef18f6dffa7f0ff537d71502b8975329c9fa5025f02a43f45cf1311116d917fb507d5961163d659bb4c9f43c22bd61d14d0afb2f  0001-silence-sandbox-violations.patch
6e9e7d811b92e32af29cebec6cb59763004f30b990842b8dd036f971f10d6659e8dbd771f0d61c8a42ea0ac4a6937466c1e6fd450a08efab8a0c7bab4ef3a1ec  disable-jslint.patch
bc91c2fb15eb22acb8acc36d086fb18fbf6f202b4511d138769b5ecaaed4a673349c55f808270c762616fafa42e3b01e74dc0af1dcbeea1289e043926e2750c8  fix-musl-build.patch
1bf1f579ced0ca47d156eb45962114f9867cf224c2ba34dfc106227648322ecf729243d2a6e84b72cb011abadc36ed84990960bded764fd4243fc9cb22084ce5  fix-rust-target.patch
60845dcb034b2c4459c30f7d5f25c8176cf42df794e2cc0e86c3e2abb6541c24b962f3a16ca70a288d4d6f377b68d00b2904b22463108559612053d835d9bff1  fd6847c9416f9eebde636e21d794d25d1be8791d.patch"