aboutsummaryrefslogtreecommitdiffstats
path: root/community/mozjs68/APKBUILD
blob: 29b91f053d7f949ff480aa660340d5cb83217fc2 (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
129
130
131
132
133
134
135
136
137
138
139
140
141
142
# Contributor: Rasmus Thomsen <oss@cogitri.dev>
# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
pkgname=mozjs68
pkgver=68.6.0
pkgrel=3
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

	case "$CARCH" in
		x86)
			export RUST_TARGET="i686-unknown-linux-musl"
			;;
		x86_64)
			export RUST_TARGET="$CTARGET"
			;;
		aarch64)
			export RUST_TARGET="aarch64-unknown-linux-musl"
			;;
		armv7)
			export RUST_TARGET="armv7-unknown-linux-musleabihf"
			;;
		armhf)
			export RUST_TARGET="arm-unknown-linux-musleabihf"
			;;
		ppc64le)
			export RUST_TARGET="powerpc64le-unknown-linux-musl"
			;;
	esac

	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"