Gentoo Archives: gentoo-commits

From: Joonas Niilola <juippis@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-lang/spidermonkey/
Date: Wed, 15 Mar 2023 09:46:07
Message-Id: 1678873561.817fde0396076a08dbb51cae481873c9ccde5912.juippis@gentoo
1 commit: 817fde0396076a08dbb51cae481873c9ccde5912
2 Author: Joonas Niilola <juippis <AT> gentoo <DOT> org>
3 AuthorDate: Wed Mar 15 09:26:28 2023 +0000
4 Commit: Joonas Niilola <juippis <AT> gentoo <DOT> org>
5 CommitDate: Wed Mar 15 09:46:01 2023 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=817fde03
7
8 dev-lang/spidermonkey: add 102.9.0
9
10 Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>
11
12 dev-lang/spidermonkey/Manifest | 2 +
13 dev-lang/spidermonkey/spidermonkey-102.9.0.ebuild | 411 ++++++++++++++++++++++
14 2 files changed, 413 insertions(+)
15
16 diff --git a/dev-lang/spidermonkey/Manifest b/dev-lang/spidermonkey/Manifest
17 index 224d3c4b2f86..0e67ce239e24 100644
18 --- a/dev-lang/spidermonkey/Manifest
19 +++ b/dev-lang/spidermonkey/Manifest
20 @@ -1,6 +1,7 @@
21 DIST firefox-102.6.0esr.source.tar.xz 478856656 BLAKE2B 2094bbb3ba00fc2d726a620e9946ca1ec98ad4c930ed611486ac92a7c74aa84da9c15b1353603eb36ce0a9098bd1f311dea2bea255f2bb6dd06fafbc7808d52c SHA512 c0f0160bea612d0ae74c29dd44beb7fd9a1c292694b8cd5c4faf2e54feb5c27684eee821b67dd40df714d69866a4e3a8b19e22182d9bc3023050d2d96b02d308
22 DIST firefox-102.7.0esr.source.tar.xz 479538092 BLAKE2B bcfc62fce9ddaa12c25951178cc865af5d230de453dfea28ff46ad40976b08d31479c1a81dbf235dcf3c9ddbf949bee447ceb5bb384aee1f2da633ef2199f114 SHA512 2a9d212b5d15e1bf7a6156495126cbc9161d2057aeedea8f7a5a0670a19a9b00cf35044075935c8f3c788118856ba2cc00f9b297c5ac713f094857683f7cd13b
23 DIST firefox-102.8.0esr.source.tar.xz 479172816 BLAKE2B 0b4cbf11028abc73a8479fb94670e98f0a293fc12381b1eccbadd64a33db068ab7434357abbe3ce0773382c7c90b8fe4d2258cc55abe8bdc2f551bba1dc2b797 SHA512 93ea87997b66088b94c6e943b6e99e9a71d1908444d096c0f65b6876d2c584e55ff6120266f3851f986b664bd1f12fa31206b03479c2b751e7c3ca097ac14275
24 +DIST firefox-102.9.0esr.source.tar.xz 484308672 BLAKE2B dffd3928c268562802b9d9788cc83203ca932c85758b822c344e54259d81ef84668231149f3452cec3c2bf32c654db321303bcb9f81f8ccaac477ad2499ce346 SHA512 3923212ce4b7d1f589129025961ff1b380b8aaf1dd074674f3bd63cf14e9a44ff051bda556b7796c25634e153de00ce62243ece15a520f63dd0791a19b2a6685
25 DIST firefox-102esr-patches-07j.tar.xz 23012 BLAKE2B 41b706f5ae8695ddd33e971cf1aa99317382a57618cf19163c5bca09ed5d430dba672ac51b7ab3072360452cc89ac50397bb7992882a61a3adda37022239e654 SHA512 7048353ea5504e34d9d3950e3e5e3125f631f95269d5c9e422ca052173a316718fdd4b57ea7980a452139b1192805cb598f47f398fb148a426a85a5e979c6cdd
26 DIST firefox-102esr-patches-09j.tar.xz 20236 BLAKE2B 35431fbc56c5470dac2839fd218d2a589558cf964eab2373f2db7a01e6e0dfee329b1b63f6a421bfd4c9bf8c3ed9877067cdc462742a1cc59d78d1d10264ebac SHA512 7fb82ff3ef2cbca339ab05ac07f0409088a87dfe37314d31d441bae1beb181cbea799dcd63dd560d0ccde24b665379118e5e99a1c1a2385d859378901593089b
27 DIST firefox-78.15.0esr.source.tar.xz 330819568 BLAKE2B dc8785613c2f72c55d484642c89c2545765a9efbd609bc7c2cf57b4a3a06a2ea22e6959e42b5b8af867db782e8b2097a67dec858796b744e47008a8e575e2316 SHA512 ac3de735b246ce4f0e1619cd2664321ffa374240ce6843e785d79a350dc30c967996bbcc5e3b301cb3d822ca981cbea116758fc4122f1738d75ddfd1165b6378
28 @@ -8,5 +9,6 @@ DIST firefox-78esr-patches-19.tar.xz 88424 BLAKE2B fdc7bf8f28b3e799551a70f1cec7a
29 DIST firefox-91.13.0esr.source.tar.xz 380053584 BLAKE2B 75d0daa512b3a2d41974a0169778be9ef19a100de2bd382add9831860ca93976585a41e760b6a7ec753268fb78f9f61049780fa7961834248bc8157cfdcc2827 SHA512 38b4cc52de21e76d6061e6ba175e1cbfd888a16070aa951f5a44283f2db9d7e94f2504621f0da78feac6e71491a6d0e7038f63dd0ae112dcad700eb02e9aa516
30 DIST firefox-91esr-patches-10j.tar.xz 18320 BLAKE2B ec882411eed19bafab8676e3d79f4ae43947bb97c44571c1497bb93a44fcfec99de06ebacbdf8c4944dcecdf949e4f684908d7ce4226cdcec60241e62e75810e SHA512 670a14d852bb74b9074c3fef9310650f71ce1c56314109c49aea02a7a69acc836af60a8beab11da53e21b10a8e6da341fcfa18b68a1dfd33b26978dd63758e9c
31 DIST spidermonkey-102-patches-04j.tar.xz 3996 BLAKE2B 468697521adacc5d647b04f2228fc4c1a8131bc2523142f2d57f32e321303581ae8f793baae48966ecb27f48bf77eb084f7b2df1c1a0c667e9ed59ae93d786e6 SHA512 201bb779e2373cc00dfadc29a62b593030dfc12eec076114b92927f29f476d3fafdd056112dd1bb1f19f82827f4fe1252141e3998bec719e4196737a316d4ef2
32 +DIST spidermonkey-102-patches-05j.tar.xz 4596 BLAKE2B 215b770bbdf17973d7b3fd1df6cee9647459d2b02b0be5bdb289d457e5dbdb06ceac7a3082fc2f5836e991a4ac4486d73330b0276a466b5c528dab226a27829c SHA512 d2b8e32dac87d60a00fd93479dc34d8adab4feec24a38591cebeb4cf271aa2fd964f4dc26e67ebfb127a47bc8f684d50b32b2cff18ed5286701a04a289058185
33 DIST spidermonkey-78-patches-05.tar.xz 4480 BLAKE2B aaba61d1ee72496ef02463333a9fa9cc18b873953d1875411667fec73cd9f485224371cde65be0506fa3853368a0885cba3a109e052a3408e7d0ff22a8066e22 SHA512 c2522081bcc58d6f517320c344747403e1525c887b2f7ad6d23df76a954cdac1660d7fe5e2ae7a040763d6a6e0e6eaf127c8bffbd9d3ac0283d19d0d6f1f5edd
34 DIST spidermonkey-91-patches-05j.tar.xz 5964 BLAKE2B 13f09f77bf16bc61b03c9488b7ab521552e179bfb123e390d0883ea4a3f55e87e0a5d5a246f31a9ddc35f212ea84655fe9d4fc364bbdddc1aac421eb28dbe41f SHA512 4d9cf21b712234ff6a18554a010badd756028e6147597040c423f7e27d260e3984938f956d9bc3572557163a144345ed28d9f88e459fc959aaa6fd448f6deab7
35
36 diff --git a/dev-lang/spidermonkey/spidermonkey-102.9.0.ebuild b/dev-lang/spidermonkey/spidermonkey-102.9.0.ebuild
37 new file mode 100644
38 index 000000000000..eef5f13116f8
39 --- /dev/null
40 +++ b/dev-lang/spidermonkey/spidermonkey-102.9.0.ebuild
41 @@ -0,0 +1,411 @@
42 +# Copyright 1999-2023 Gentoo Authors
43 +# Distributed under the terms of the GNU General Public License v2
44 +
45 +EAPI="8"
46 +
47 +# Patch version
48 +FIREFOX_PATCHSET="firefox-102esr-patches-09j.tar.xz"
49 +SPIDERMONKEY_PATCHSET="spidermonkey-102-patches-05j.tar.xz"
50 +
51 +LLVM_MAX_SLOT=15
52 +
53 +PYTHON_COMPAT=( python3_{9..11} )
54 +PYTHON_REQ_USE="ssl,xml(+)"
55 +
56 +WANT_AUTOCONF="2.1"
57 +
58 +inherit autotools check-reqs flag-o-matic llvm multiprocessing prefix python-any-r1 toolchain-funcs
59 +
60 +MY_PN="mozjs"
61 +MY_PV="${PV/_pre*}" # Handle Gentoo pre-releases
62 +
63 +MY_MAJOR=$(ver_cut 1)
64 +
65 +MOZ_ESR=yes
66 +
67 +MOZ_PV=${PV}
68 +MOZ_PV_SUFFIX=
69 +if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then
70 + MOZ_PV_SUFFIX=${BASH_REMATCH[1]}
71 +
72 + # Convert the ebuild version to the upstream Mozilla version
73 + MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI
74 + MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI
75 + MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI
76 +fi
77 +
78 +if [[ -n ${MOZ_ESR} ]] ; then
79 + # ESR releases have slightly different version numbers
80 + MOZ_PV="${MOZ_PV}esr"
81 +fi
82 +
83 +MOZ_PN="firefox"
84 +MOZ_P="${MOZ_PN}-${MOZ_PV}"
85 +MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
86 +MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
87 +
88 +MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
89 +
90 +if [[ ${PV} == *_rc* ]] ; then
91 + MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}"
92 +fi
93 +
94 +PATCH_URIS=(
95 + https://dev.gentoo.org/~{juippis,whissi}/mozilla/patchsets/${FIREFOX_PATCHSET}
96 + https://dev.gentoo.org/~{juippis,whissi}/mozilla/patchsets/${SPIDERMONKEY_PATCHSET}
97 +)
98 +
99 +SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz
100 + ${PATCH_URIS[@]}"
101 +
102 +DESCRIPTION="SpiderMonkey is Mozilla's JavaScript engine written in C and C++"
103 +HOMEPAGE="https://spidermonkey.dev https://firefox-source-docs.mozilla.org/js/index.html "
104 +
105 +KEYWORDS="~amd64 ~arm ~arm64 ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
106 +
107 +SLOT="$(ver_cut 1)"
108 +LICENSE="MPL-2.0"
109 +IUSE="clang cpu_flags_arm_neon debug +jit lto test"
110 +
111 +#RESTRICT="test"
112 +RESTRICT="!test? ( test )"
113 +
114 +BDEPEND="${PYTHON_DEPS}
115 + || (
116 + (
117 + sys-devel/llvm:15
118 + clang? (
119 + sys-devel/clang:15
120 + virtual/rust:0/llvm-15
121 + lto? ( sys-devel/lld:15 )
122 + )
123 + )
124 + (
125 + sys-devel/llvm:14
126 + clang? (
127 + sys-devel/clang:14
128 + virtual/rust:0/llvm-14
129 + lto? ( sys-devel/lld:14 )
130 + )
131 + )
132 + )
133 + !clang? ( virtual/rust )
134 + virtual/pkgconfig
135 + test? (
136 + $(python_gen_any_dep 'dev-python/six[${PYTHON_USEDEP}]')
137 + )"
138 +DEPEND=">=dev-libs/icu-71.1:=
139 + dev-libs/nspr
140 + sys-libs/readline:0=
141 + sys-libs/zlib"
142 +RDEPEND="${DEPEND}"
143 +
144 +S="${WORKDIR}/firefox-${MY_PV}/js/src"
145 +
146 +llvm_check_deps() {
147 + if ! has_version -b "sys-devel/llvm:${LLVM_SLOT}" ; then
148 + einfo "sys-devel/llvm:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
149 + return 1
150 + fi
151 +
152 + if use clang ; then
153 + if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
154 + einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
155 + return 1
156 + fi
157 +
158 + if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then
159 + einfo "virtual/rust:0/llvm-${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
160 + return 1
161 + fi
162 +
163 + if use lto ; then
164 + if ! has_version -b "sys-devel/lld:${LLVM_SLOT}" ; then
165 + einfo "sys-devel/lld:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
166 + return 1
167 + fi
168 + fi
169 + fi
170 +
171 + einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
172 +}
173 +
174 +python_check_deps() {
175 + if use test ; then
176 + python_has_version "dev-python/six[${PYTHON_USEDEP}]"
177 + fi
178 +}
179 +
180 +pkg_pretend() {
181 + if use test ; then
182 + CHECKREQS_DISK_BUILD="7000M"
183 + else
184 + CHECKREQS_DISK_BUILD="6000M"
185 + fi
186 +
187 + check-reqs_pkg_pretend
188 +}
189 +
190 +pkg_setup() {
191 + if [[ ${MERGE_TYPE} != binary ]] ; then
192 + if use test ; then
193 + CHECKREQS_DISK_BUILD="7000M"
194 + else
195 + CHECKREQS_DISK_BUILD="6000M"
196 + fi
197 +
198 + check-reqs_pkg_setup
199 +
200 + llvm_pkg_setup
201 +
202 + if use clang && use lto ; then
203 + local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }')
204 + [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}")
205 + [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!"
206 +
207 + local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }')
208 + [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}")
209 + [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!"
210 +
211 + if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then
212 + eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}."
213 + eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:"
214 + eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version"
215 + eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version"
216 + eerror " - Build ${CATEGORY}/${PN} without USE=lto"
217 + eerror " - Rebuild lld with llvm that was used to build rust (may need to rebuild the whole "
218 + eerror " llvm/clang/lld/rust chain depending on your @world updates)"
219 + die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!"
220 + fi
221 + fi
222 +
223 + python-any-r1_pkg_setup
224 +
225 + # Build system is using /proc/self/oom_score_adj, bug #604394
226 + addpredict /proc/self/oom_score_adj
227 +
228 + if ! mountpoint -q /dev/shm ; then
229 + # If /dev/shm is not available, configure is known to fail with
230 + # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py
231 + ewarn "/dev/shm is not mounted -- expect build failures!"
232 + fi
233 +
234 + # Ensure we use C locale when building, bug #746215
235 + export LC_ALL=C
236 + fi
237 +}
238 +
239 +src_prepare() {
240 + pushd ../.. &>/dev/null || die
241 +
242 + use lto && rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch
243 +
244 + eapply "${WORKDIR}"/firefox-patches
245 + eapply "${WORKDIR}"/spidermonkey-patches
246 +
247 + default
248 +
249 + # Make cargo respect MAKEOPTS
250 + export CARGO_BUILD_JOBS="$(makeopts_jobs)"
251 +
252 + # sed-in toolchain prefix
253 + sed -i \
254 + -e "s/objdump/${CHOST}-objdump/" \
255 + python/mozbuild/mozbuild/configure/check_debug_ranges.py \
256 + || die "sed failed to set toolchain prefix"
257 +
258 + # use prefix shell in wrapper linker scripts, bug #789660
259 + hprefixify "${S}"/../../build/cargo-{,host-}linker
260 +
261 + einfo "Removing pre-built binaries ..."
262 + find third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die
263 +
264 + MOZJS_BUILDDIR="${WORKDIR}/build"
265 + mkdir "${MOZJS_BUILDDIR}" || die
266 +
267 + popd &>/dev/null || die
268 + eautoconf
269 +}
270 +
271 +src_configure() {
272 + # Show flags set at the beginning
273 + einfo "Current CFLAGS: ${CFLAGS}"
274 + einfo "Current CXXFLAGS: ${CXXFLAGS}"
275 + einfo "Current LDFLAGS: ${LDFLAGS}"
276 + einfo "Current RUSTFLAGS: ${RUSTFLAGS}"
277 +
278 + local have_switched_compiler=
279 + if use clang; then
280 + # Force clang
281 + einfo "Enforcing the use of clang due to USE=clang ..."
282 + if tc-is-gcc; then
283 + have_switched_compiler=yes
284 + fi
285 + AR=llvm-ar
286 + CC=${CHOST}-clang
287 + CXX=${CHOST}-clang++
288 + NM=llvm-nm
289 + RANLIB=llvm-ranlib
290 + elif ! use clang && ! tc-is-gcc ; then
291 + # Force gcc
292 + have_switched_compiler=yes
293 + einfo "Enforcing the use of gcc due to USE=-clang ..."
294 + AR=gcc-ar
295 + CC=${CHOST}-gcc
296 + CXX=${CHOST}-g++
297 + NM=gcc-nm
298 + RANLIB=gcc-ranlib
299 + fi
300 +
301 + if [[ -n "${have_switched_compiler}" ]] ; then
302 + # Because we switched active compiler we have to ensure
303 + # that no unsupported flags are set
304 + strip-unsupported-flags
305 + fi
306 +
307 + # Ensure we use correct toolchain
308 + export HOST_CC="$(tc-getBUILD_CC)"
309 + export HOST_CXX="$(tc-getBUILD_CXX)"
310 + export AS="$(tc-getCC) -c"
311 + tc-export CC CXX LD AR AS NM OBJDUMP RANLIB PKG_CONFIG
312 +
313 + cd "${MOZJS_BUILDDIR}" || die
314 +
315 + # ../python/mach/mach/mixin/process.py fails to detect SHELL
316 + export SHELL="${EPREFIX}/bin/bash"
317 +
318 + local -a myeconfargs=(
319 + --host="${CBUILD:-${CHOST}}"
320 + --target="${CHOST}"
321 +
322 + --disable-ctype
323 + --disable-jemalloc
324 + --disable-smoosh
325 + --disable-strip
326 +
327 + --enable-readline
328 + --enable-release
329 + --enable-shared-js
330 +
331 + --with-intl-api
332 + --with-system-icu
333 + --with-system-nspr
334 + --with-system-zlib
335 + --with-toolchain-prefix="${CHOST}-"
336 +
337 + $(use_enable debug)
338 + $(use_enable jit)
339 + $(use_enable test tests)
340 + )
341 +
342 + if use debug; then
343 + myeconfargs+=( --disable-optimize )
344 + else
345 + myeconfargs+=( --enable-optimize )
346 + fi
347 +
348 + if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then
349 + myeconfargs+=( --enable-rust-simd )
350 + fi
351 +
352 + # Modifications to better support ARM, bug 717344
353 + if use cpu_flags_arm_neon ; then
354 + myeconfargs+=( --with-fpu=neon )
355 +
356 + if ! tc-is-clang ; then
357 + # thumb options aren't supported when using clang, bug 666966
358 + myeconfargs+=( --with-thumb=yes )
359 + myeconfargs+=( --with-thumb-interwork=no )
360 + fi
361 + fi
362 +
363 + # Tell build system that we want to use LTO
364 + if use lto ; then
365 + if use clang ; then
366 + myeconfargs+=( --enable-linker=lld )
367 + myeconfargs+=( --enable-lto=cross )
368 + else
369 + myeconfargs+=( --enable-linker=bfd )
370 + myeconfargs+=( --enable-lto=full )
371 + fi
372 + fi
373 +
374 + # LTO flag was handled via configure
375 + filter-flags '-flto*'
376 +
377 + # Use system's Python environment
378 + export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none"
379 + export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach
380 +
381 + # Show flags we will use
382 + einfo "Build CFLAGS: ${CFLAGS}"
383 + einfo "Build CXXFLAGS: ${CXXFLAGS}"
384 + einfo "Build LDFLAGS: ${LDFLAGS}"
385 + einfo "Build RUSTFLAGS: ${RUSTFLAGS}"
386 +
387 + # Forcing system-icu allows us to skip patching bundled ICU for PPC
388 + # and other minor arches
389 + ECONF_SOURCE="${S}" \
390 + econf \
391 + ${myeconfargs[@]} \
392 + XARGS="${EPREFIX}/usr/bin/xargs"
393 +}
394 +
395 +src_compile() {
396 + cd "${MOZJS_BUILDDIR}" || die
397 + default
398 +}
399 +
400 +src_test() {
401 + if "${MOZJS_BUILDDIR}/js/src/js" -e 'print("Hello world!")'; then
402 + einfo "Smoke-test successful, continuing with full test suite"
403 + else
404 + die "Smoke-test failed: did interpreter initialization fail?"
405 + fi
406 +
407 + cp "${FILESDIR}"/spidermonkey-${SLOT}-known-test-failures.txt "${T}"/known_failures.list || die
408 +
409 + if [[ $(tc-endian) == "big" ]] ; then
410 + echo "non262/extensions/clone-errors.js" >> "${T}"/known_failures.list
411 + echo "test262/built-ins/Date/UTC/fp-evaluation-order.js" >> "${T}"/known_failures.list
412 + echo "test262/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-other-type.js" >> "${T}"/known_failures.list
413 + fi
414 +
415 + ${EPYTHON} \
416 + "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \
417 + --exclude-file="${T}"/known_failures.list \
418 + "${MOZJS_BUILDDIR}"/js/src/js \
419 + || die
420 +
421 + if use jit ; then
422 + ${EPYTHON} \
423 + "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \
424 + --exclude-file="${T}"/known_failures.list \
425 + "${MOZJS_BUILDDIR}"/js/src/js basic \
426 + || die
427 + fi
428 +}
429 +
430 +src_install() {
431 + cd "${MOZJS_BUILDDIR}" || die
432 + default
433 +
434 + # fix soname links
435 + pushd "${ED}"/usr/$(get_libdir) &>/dev/null || die
436 + mv lib${MY_PN}-${MY_MAJOR}.so lib${MY_PN}-${MY_MAJOR}.so.0.0.0 || die
437 + ln -s lib${MY_PN}-${MY_MAJOR}.so.0.0.0 lib${MY_PN}-${MY_MAJOR}.so.0 || die
438 + ln -s lib${MY_PN}-${MY_MAJOR}.so.0 lib${MY_PN}-${MY_MAJOR}.so || die
439 + popd &>/dev/null || die
440 +
441 + # remove unneeded files
442 + rm \
443 + "${ED}"/usr/bin/js${MY_MAJOR}-config \
444 + "${ED}"/usr/$(get_libdir)/libjs_static.ajs \
445 + || die
446 +
447 + # fix permissions
448 + chmod -x \
449 + "${ED}"/usr/$(get_libdir)/pkgconfig/*.pc \
450 + "${ED}"/usr/include/mozjs-${MY_MAJOR}/js-config.h \
451 + || die
452 +}