Gentoo Archives: gentoo-commits

From: Jory Pratt <anarchy@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/mozilla:master commit in: dev-lang/spidermonkey/, dev-lang/spidermonkey/files/
Date: Thu, 28 Jun 2018 19:50:47
Message-Id: 1530215387.9f6e23b7cd602f020235bdd7ef6303c4c0f342f1.anarchy@gentoo
1 commit: 9f6e23b7cd602f020235bdd7ef6303c4c0f342f1
2 Author: Jory A. Pratt <anarchy <AT> gentoo <DOT> org>
3 AuthorDate: Thu Jun 28 19:49:47 2018 +0000
4 Commit: Jory Pratt <anarchy <AT> gentoo <DOT> org>
5 CommitDate: Thu Jun 28 19:49:47 2018 +0000
6 URL: https://gitweb.gentoo.org/proj/mozilla.git/commit/?id=9f6e23b7
7
8 dev-lang/spidermonkey: Add spidermonkey to overlay, start converting
9 urls to use archieve servers
10
11 dev-lang/spidermonkey/Manifest | 12 ++
12 .../files/moz38-dont-hardcode-libc-soname.patch | 15 ++
13 .../files/spidermonkey-52-baseconfig.patch | 22 +++
14 .../spidermonkey-perl-defined-array-check.patch | 11 ++
15 dev-lang/spidermonkey/metadata.xml | 18 +++
16 dev-lang/spidermonkey/spidermonkey-1.8.5-r6.ebuild | 150 ++++++++++++++++++++
17 .../spidermonkey/spidermonkey-17.0.0-r5.ebuild | 141 ++++++++++++++++++
18 .../spidermonkey/spidermonkey-24.2.0-r4.ebuild | 157 +++++++++++++++++++++
19 dev-lang/spidermonkey/spidermonkey-38.3.0.ebuild | 147 +++++++++++++++++++
20 dev-lang/spidermonkey/spidermonkey-45.0.2.ebuild | 147 +++++++++++++++++++
21 .../spidermonkey-52.4.0_pre20171003-r1.ebuild | 145 +++++++++++++++++++
22 11 files changed, 965 insertions(+)
23
24 diff --git a/dev-lang/spidermonkey/Manifest b/dev-lang/spidermonkey/Manifest
25 new file mode 100644
26 index 0000000..6e0cd77
27 --- /dev/null
28 +++ b/dev-lang/spidermonkey/Manifest
29 @@ -0,0 +1,12 @@
30 +DIST js185-1.0.0.tar.gz 6164605 BLAKE2B 76a37f0ceae05d3475853875bd0ce4be6e525e4114816f8f281ea6fc6b60a71060975a0fa1cb843f57ad1e2f842dfb26b24244fa0fd6c20f6ae2ebbe430f70be SHA512 2af7122a7c7007fd7b6668776fe1222515a810b3e43bbf0f76b8f94e1ef406ffd3fb5ccec393021b00274c05b38a77235bc8d6886994c56762fcaf0aa7cf6718
31 +DIST mozjs-24.2.0.tar.bz2 15624530 BLAKE2B 633f3e42011a8395aa4e60842c2de1cb472692a0d9355c1e2c49e1ef943605cafaea0c836f9044adfceb38d7e04a0941b895474d08097f641bfca4494c5c5fe4 SHA512 49805e256f6fa797505c01b7596d5bb941ed7a2454862c52ed42ad48b5ae4540b777e77ed8da1b98c89f8622ed2c76052187983687008a4ff53594addb328df4
32 +DIST mozjs-38.3.0sfink2.tar.bz2 27232902 BLAKE2B 42a039a41b7479a32e22f260cb58f098e1a1d4833f801f193bdd8b75403f94567b9ef2ebe85b2a811fe2f9b27cd934afe1054bd4e7d9aae0b8a80acdec8e42a4 SHA512 debad1fbd21e025c567b083677cfd0a2023ec2aff750241f495ac2977034a7299e068cb3b0b2351c97457119cc8aef563f00416092a70a3a269d20947b700206
33 +DIST mozjs-45.0.2.tar.bz2 97508152 BLAKE2B 89600f7e2a3effe71ad140646110aaf3be91cc5313cf227f1d16e796e249e287cc8dbf2599aa4277f2652a83ec3570f58c1c51ef319632254b9ac5caec46bb9a SHA512 84a3cf12e2603e00bcfe518a1a5000f53b21758c1c6b32a0410e63ab7db8d4452028195b0ba3e56144054b06e90f8e5195b4db94dba711f7c75d11da99c6c61d
34 +DIST mozjs-52.4.0_pre20171003.tar.bz2 30588541 BLAKE2B ca3dace6f22d510d6d9f087f236100cae4b913b8d194fdec77f2a32b82276613417344fc4d899fca0d908ecb981d59f7e5608e7cd62f6f134dbcdf87f89a3276 SHA512 80e006ed7550b64dad7cf78335dd9f2d34f50ad486439887f0088eb3817242d24cf7c1d9325e2dcd4a01fd5c5f54d710873113b97fd914ccd961fa46a71653fa
35 +DIST mozjs17.0.0.tar.gz 6778934 BLAKE2B a37debf5079fc4c27bb9edd3172c6e7914f6128fac6ffa97b49ac266c477d0916b180fb68ecd0916a52f935959a83d73254b0ba72b4898adc5e3b85927d17d2a SHA512 39b68aeb9f712f146778d8b68ee795709a1372c8ab893a222af4eb34882427d6f5cf877e743d6cb2f1b4348c194d8f3774f00cb775b03515b34b49560b748be4
36 +DIST spidermonkey-52.0-patches-0.tar.xz 5172 BLAKE2B 8bcf9477de47ef3b882cd3281efa7f77c16ce11fc93f44446a620917adf629fde8290af1dd69f0930a889aacfee3603bf60eb9c1e718a1dfd3e218a1013b6192 SHA512 88ad640fb0efa4972f1b7782bd0abee1751b73914ee51faade93b25c4d8eec64e7693898842a406c49fc2ab43733404efeccb138afb64d2193b9a5eb612578e3
37 +DIST spidermonkey-slot0-patches-01.tar.xz 10488 BLAKE2B 4a5195ac11d1076046424fc10d1416d097fb230cd8b0b28ac8b65d379e0c0518586ced0f48f833dea52b13fb5d300e02664657ab2479bfcc343bc358d394d5d7 SHA512 6c878ed0b50c052989a8b965fed845e9c672b691f4c4b1f98ee82e81a33880e1e6bf1dac8222d71322553282de602a88272dedebbcf50d27967fc172f0a8054a
38 +DIST spidermonkey-slot17-patches-01.tar.xz 2748 BLAKE2B a55504d726f925096de7e066a1d323154bc796018644f347bc1d012ea6ee8441cc19f30689e06fd26bab5a5d2e8376e90bf2c1930a588be8b48865f7bbc524ea SHA512 21a90f85d156de3cca9811317507162a458f908bb447924fcfbf49b7bb70496b611ce7df90b90775316b8ceafda56692be3bf856b168b83ed40b8a5c668eed3f
39 +DIST spidermonkey-slot24-patches-01.tar.xz 3444 BLAKE2B f207577db223d51e315d473f0eefa8a2805fab49acd952fa5796eb4e967c82c76965afcdea1b55ac98c5e94f4321f40c1ea9079d5ebee99fdef950bddee91ab2 SHA512 712250983f726eb2fe7ae243e9ca510b6e5b8fa0f221fe5120c2e2f75334f7e4b10b8ab172869d7333a120529dbc2a513c170533d5ad5af27a2643ce1384bbdb
40 +DIST spidermonkey-slot38-patches-01.tar.xz 7472 BLAKE2B 7585aa6f5a84d6ae21e41137fca8da093580182f798f63bfcf2e402e3bf58df4cb3f43cef3eb635044508800f6757247fa3a65ca53230243a455925f436a9510 SHA512 953acee985d192c6d0f18f14c70fdda33a7c8f784c6833ca8b75495044b40a8b3f29b281c40dbfcda0c8570c111a3dd1717c2ef0ffd651c1b50d1f2bff1f6d09
41 +DIST spidermonkey-slot45-patches-01.tar.xz 5092 BLAKE2B 0188a179fc741ab84a93aae1e77f8b765868ca716b8879661bfa678aef918998c9488db3b866a13c79ae28edb43ac0ebb10345b0471b717c4174c61cba9646bc SHA512 d52f038a7b4f7b410b5a1f94a55962adafc5906e7d85f605f3fe45ad49417c2b9d58d853a81b5d2395a2842c9780992d5a2c1a0e67aa77fb09f21aff9aeb0f7a
42
43 diff --git a/dev-lang/spidermonkey/files/moz38-dont-hardcode-libc-soname.patch b/dev-lang/spidermonkey/files/moz38-dont-hardcode-libc-soname.patch
44 new file mode 100644
45 index 0000000..708c749
46 --- /dev/null
47 +++ b/dev-lang/spidermonkey/files/moz38-dont-hardcode-libc-soname.patch
48 @@ -0,0 +1,15 @@
49 +--- a/testing/mozbase/mozinfo/mozinfo/mozinfo.py 2018-01-12 12:21:16.764318254 -0500
50 ++++ b/testing/mozbase/mozinfo/mozinfo/mozinfo.py 2018-01-12 12:22:23.392069398 -0500
51 +@@ -93,10 +93,11 @@
52 +
53 + if info['os'] == 'linux':
54 + import ctypes
55 ++ import ctypes.util
56 + import errno
57 + PR_SET_SECCOMP = 22
58 + SECCOMP_MODE_FILTER = 2
59 +- ctypes.CDLL("libc.so.6", use_errno=True).prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, 0)
60 ++ ctypes.CDLL(ctypes.util.find_library('c'), use_errno=True).prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, 0)
61 + info['has_sandbox'] = ctypes.get_errno() == errno.EFAULT
62 + else:
63 + info['has_sandbox'] = True
64
65 diff --git a/dev-lang/spidermonkey/files/spidermonkey-52-baseconfig.patch b/dev-lang/spidermonkey/files/spidermonkey-52-baseconfig.patch
66 new file mode 100644
67 index 0000000..ee52728
68 --- /dev/null
69 +++ b/dev-lang/spidermonkey/files/spidermonkey-52-baseconfig.patch
70 @@ -0,0 +1,22 @@
71 +Fix various paths to include MOZ_APP_VERSION
72 +
73 +This has been committed upstream but was not included in
74 +the 52.4.0 sources that spidermonkey was rolled from.
75 +
76 +--- a/config/baseconfig.mk 2017-10-03 14:00:45.000000000 -0400
77 ++++ b/config/baseconfig.mk 2017-10-03 16:36:10.857663794 -0400
78 +@@ -2,10 +2,10 @@
79 + # directly in python/mozbuild/mozbuild/base.py for gmake validation.
80 + # We thus use INCLUDED_AUTOCONF_MK to enable/disable some parts depending
81 + # whether a normal build is happening or whether the check is running.
82 +-includedir := $(includedir)/$(MOZ_APP_NAME)
83 +-idldir = $(includedir)/idl/$(MOZ_APP_NAME)
84 +-installdir = $(libdir)/$(MOZ_APP_NAME)
85 +-sdkdir = $(libdir)/$(MOZ_APP_NAME)
86 ++includedir := $(includedir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
87 ++idldir = $(includedir)/idl/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
88 ++installdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
89 ++sdkdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
90 + ifeq (.,$(DEPTH))
91 + DIST = dist
92 + else
93
94 diff --git a/dev-lang/spidermonkey/files/spidermonkey-perl-defined-array-check.patch b/dev-lang/spidermonkey/files/spidermonkey-perl-defined-array-check.patch
95 new file mode 100644
96 index 0000000..c3996ae
97 --- /dev/null
98 +++ b/dev-lang/spidermonkey/files/spidermonkey-perl-defined-array-check.patch
99 @@ -0,0 +1,11 @@
100 +--- a/js/src/config/milestone.pl 2013-02-11 17:33:22.000000000 -0500
101 ++++ b/js/src/config/milestone.pl 2015-07-15 10:44:31.676153600 -0400
102 +@@ -55,7 +55,7 @@
103 + #
104 + my $milestone = Moz::Milestone::getOfficialMilestone($MILESTONE_FILE);
105 +
106 +-if (defined(@TEMPLATE_FILE)) {
107 ++if (@TEMPLATE_FILE) {
108 + my $TFILE;
109 +
110 + foreach $TFILE (@TEMPLATE_FILE) {
111
112 diff --git a/dev-lang/spidermonkey/metadata.xml b/dev-lang/spidermonkey/metadata.xml
113 new file mode 100644
114 index 0000000..83c60dd
115 --- /dev/null
116 +++ b/dev-lang/spidermonkey/metadata.xml
117 @@ -0,0 +1,18 @@
118 +<?xml version="1.0" encoding="UTF-8"?>
119 +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
120 +<pkgmetadata>
121 + <maintainer type="project">
122 + <email>mozilla@g.o</email>
123 + <name>Gentoo Mozilla Team</name>
124 + </maintainer>
125 + <longdescription lang="en">
126 + Stand-alone JavaScript C++ library
127 + </longdescription>
128 + <use>
129 + <flag name="custom-optimization">Build with user-specified compiler optimizations
130 + (-Os, -O0, -O1, -O2, -O3) from CFLAGS (unsupported)</flag>
131 + <flag name="debug">Enable assertions to allow for easier debugging of programs that link to spidermonkey -- note this will often crash software on regular end-user systems</flag>
132 + <flag name="threadsafe">Build a threadsafe version of spidermonkey</flag>
133 + <flag name="system-icu">Use the system-wide <pkg>dev-libs/icu</pkg> instead of bundled -- note, only takes effect when icu flag is enabled</flag>
134 + </use>
135 +</pkgmetadata>
136
137 diff --git a/dev-lang/spidermonkey/spidermonkey-1.8.5-r6.ebuild b/dev-lang/spidermonkey/spidermonkey-1.8.5-r6.ebuild
138 new file mode 100644
139 index 0000000..b049a57
140 --- /dev/null
141 +++ b/dev-lang/spidermonkey/spidermonkey-1.8.5-r6.ebuild
142 @@ -0,0 +1,150 @@
143 +# Copyright 1999-2017 Gentoo Foundation
144 +# Distributed under the terms of the GNU General Public License v2
145 +
146 +EAPI=5
147 +WANT_AUTOCONF="2.1"
148 +PYTHON_COMPAT=( python2_7 )
149 +PYTHON_REQ_USE="threads"
150 +inherit autotools eutils toolchain-funcs multilib python-any-r1 versionator pax-utils
151 +
152 +MY_PN="js"
153 +TARBALL_PV="$(replace_all_version_separators '' $(get_version_component_range 1-3))"
154 +MY_P="${MY_PN}-${PV}"
155 +TARBALL_P="${MY_PN}${TARBALL_PV}-1.0.0"
156 +DESCRIPTION="Stand-alone JavaScript C library"
157 +HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
158 +SRC_URI="https://archive.mozilla.org/pub/js/${TARBALL_P}.tar.gz
159 + https://dev.gentoo.org/~axs/distfiles/${PN}-slot0-patches-01.tar.xz
160 + "
161 +
162 +LICENSE="NPL-1.1"
163 +SLOT="0/mozjs185"
164 +KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~x64-macos"
165 +IUSE="debug minimal static-libs test"
166 +
167 +S="${WORKDIR}/${MY_P}"
168 +BUILDDIR="${S}/js/src"
169 +
170 +RDEPEND=">=dev-libs/nspr-4.7.0
171 + sys-libs/readline:0=
172 + x64-macos? ( dev-libs/jemalloc )"
173 +DEPEND="${RDEPEND}
174 + ${PYTHON_DEPS}
175 + app-arch/zip
176 + virtual/pkgconfig"
177 +
178 +pkg_setup(){
179 + if [[ ${MERGE_TYPE} != "binary" ]]; then
180 + export LC_ALL="C"
181 + fi
182 +}
183 +
184 +src_prepare() {
185 + # https://bugzilla.mozilla.org/show_bug.cgi?id=628723#c43
186 + epatch "${WORKDIR}"/sm0/${P}-fix-install-symlinks.patch
187 + # https://bugzilla.mozilla.org/show_bug.cgi?id=638056#c9
188 + epatch "${WORKDIR}"/sm0/${P}-fix-ppc64.patch
189 + # https://bugs.gentoo.org/show_bug.cgi?id=400727
190 + # https://bugs.gentoo.org/show_bug.cgi?id=420471
191 + epatch "${WORKDIR}"/sm0/${P}-arm_respect_cflags-3.patch
192 + # https://bugs.gentoo.org/show_bug.cgi?id=438746
193 + epatch "${WORKDIR}"/sm0/${PN}-1.8.7-freebsd-pthreads.patch
194 + # https://bugs.gentoo.org/show_bug.cgi?id=441928
195 + epatch "${WORKDIR}"/sm0/${PN}-1.8.5-perf_event-check.patch
196 + # https://bugs.gentoo.org/show_bug.cgi?id=439260
197 + epatch "${WORKDIR}"/sm0/${P}-symbol-versions.patch
198 + # https://bugs.gentoo.org/show_bug.cgi?id=441934
199 + epatch "${WORKDIR}"/sm0/${PN}-1.8.5-ia64-fix.patch
200 + epatch "${WORKDIR}"/sm0/${PN}-1.8.5-ia64-static-strings.patch
201 + # https://bugs.gentoo.org/show_bug.cgi?id=431560
202 + epatch "${WORKDIR}"/sm0/${PN}-1.8.5-isfinite.patch
203 + # https://bugs.gentoo.org/show_bug.cgi?id=552786
204 + epatch "${FILESDIR}"/${PN}-perl-defined-array-check.patch
205 + # https://bugs.gentoo.org/show_bug.cgi?id=439558
206 + epatch "${WORKDIR}"/sm0/${PN}-1.8.7-x32.patch
207 + # https://bugs.gentoo.org/show_bug.cgi?id=582478
208 + epatch "${WORKDIR}"/sm0/${PN}-1.8.5-gcc6.patch
209 +
210 + epatch_user
211 +
212 + cd "${BUILDDIR}" || die
213 + eautoconf
214 +}
215 +
216 +src_configure() {
217 + cd "${BUILDDIR}" || die
218 +
219 + CC="$(tc-getCC)" CXX="$(tc-getCXX)" \
220 + AR="$(tc-getAR)" RANLIB="$(tc-getRANLIB)" \
221 + LD="$(tc-getLD)" \
222 + econf \
223 + ${myopts} \
224 + --enable-jemalloc \
225 + --enable-readline \
226 + --enable-threadsafe \
227 + --with-system-nspr \
228 + --disable-optimize \
229 + --disable-profile-guided-optimization \
230 + $(use_enable debug) \
231 + $(use_enable static-libs static) \
232 + $(use_enable test tests)
233 +}
234 +
235 +cross_make() {
236 + emake \
237 + CFLAGS="${BUILD_CFLAGS}" \
238 + CXXFLAGS="${BUILD_CXXFLAGS}" \
239 + AR="${BUILD_AR}" \
240 + CC="${BUILD_CC}" \
241 + CXX="${BUILD_CXX}" \
242 + RANLIB="${BUILD_RANLIB}" \
243 + "$@"
244 +}
245 +src_compile() {
246 + cd "${BUILDDIR}" || die
247 + if tc-is-cross-compiler; then
248 + tc-export_build_env BUILD_{AR,CC,CXX,RANLIB}
249 + cross_make jscpucfg host_jsoplengen host_jskwgen
250 + cross_make -C config nsinstall
251 + mv {,native-}jscpucfg || die
252 + mv {,native-}host_jskwgen || die
253 + mv {,native-}host_jsoplengen || die
254 + mv config/{,native-}nsinstall || die
255 + sed -i \
256 + -e 's@./jscpucfg@./native-jscpucfg@' \
257 + -e 's@./host_jskwgen@./native-host_jskwgen@' \
258 + -e 's@./host_jsoplengen@./native-host_jsoplengen@' \
259 + Makefile || die
260 + sed -i -e 's@/nsinstall@/native-nsinstall@' config/config.mk || die
261 + rm -f config/host_nsinstall.o \
262 + config/host_pathsub.o \
263 + host_jskwgen.o \
264 + host_jsoplengen.o || die
265 + fi
266 + emake
267 +}
268 +
269 +src_test() {
270 + cd "${BUILDDIR}/jsapi-tests" || die
271 + # for bug 415791
272 + pax-mark mr jsapi-tests
273 + emake check
274 +}
275 +
276 +src_install() {
277 + cd "${BUILDDIR}" || die
278 + emake DESTDIR="${D}" install
279 + # bug 437520 , exclude js shell for small systems
280 + if ! use minimal ; then
281 + dobin shell/js
282 + pax-mark m "${ED}/usr/bin/js"
283 + fi
284 + dodoc ../../README
285 + dohtml README.html
286 +
287 + if ! use static-libs; then
288 + # We can't actually disable building of static libraries
289 + # They're used by the tests and in a few other places
290 + find "${D}" -iname '*.a' -delete || die
291 + fi
292 +}
293
294 diff --git a/dev-lang/spidermonkey/spidermonkey-17.0.0-r5.ebuild b/dev-lang/spidermonkey/spidermonkey-17.0.0-r5.ebuild
295 new file mode 100644
296 index 0000000..533fbc1
297 --- /dev/null
298 +++ b/dev-lang/spidermonkey/spidermonkey-17.0.0-r5.ebuild
299 @@ -0,0 +1,141 @@
300 +# Copyright 1999-2018 Gentoo Foundation
301 +# Distributed under the terms of the GNU General Public License v2
302 +
303 +EAPI="6"
304 +WANT_AUTOCONF="2.1"
305 +PYTHON_COMPAT=( python2_7 )
306 +PYTHON_REQ_USE="threads"
307 +inherit toolchain-funcs multilib python-any-r1 versionator pax-utils
308 +
309 +MY_PN="mozjs"
310 +MY_P="${MY_PN}${PV}"
311 +DESCRIPTION="Stand-alone JavaScript C library"
312 +HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
313 +SRC_URI="http://archive.mozilla.org/pub/js/${MY_PN}${PV}.tar.gz
314 + https://dev.gentoo.org/~axs/distfiles/${PN}-slot17-patches-01.tar.xz"
315 +
316 +LICENSE="NPL-1.1"
317 +SLOT="17"
318 +# "MIPS, MacroAssembler is not supported" wrt #491294 for -mips
319 +KEYWORDS="alpha amd64 arm -hppa ia64 -mips ppc ppc64 ~s390 ~sh ~sparc x86 ~x86-fbsd"
320 +IUSE="debug jit minimal static-libs test"
321 +
322 +REQUIRED_USE="debug? ( jit )"
323 +RESTRICT="ia64? ( test )"
324 +
325 +S="${WORKDIR}/${MY_P}"
326 +BUILDDIR="${S}/js/src"
327 +
328 +RDEPEND=">=dev-libs/nspr-4.9.4
329 + virtual/libffi
330 + sys-libs/readline:0=
331 + >=sys-libs/zlib-1.1.4"
332 +DEPEND="${RDEPEND}
333 + ${PYTHON_DEPS}
334 + app-arch/zip
335 + virtual/pkgconfig"
336 +
337 +pkg_setup(){
338 + if [[ ${MERGE_TYPE} != "binary" ]]; then
339 + python-any-r1_pkg_setup
340 + export LC_ALL="C"
341 + fi
342 +}
343 +
344 +PATCHES=(
345 + "${WORKDIR}"/sm17/${PN}-${SLOT}-js-config-shebang.patch
346 + "${WORKDIR}"/sm17/${PN}-${SLOT}-ia64-mmap.patch
347 + "${WORKDIR}"/sm17/${PN}-17.0.0-fix-file-permissions.patch
348 + "${WORKDIR}"/sm17/${PN}-17-clang.patch
349 + "${FILESDIR}"/${PN}-perl-defined-array-check.patch
350 + "${WORKDIR}"/sm17/${PN}-17-fix_pointer_dereference.patch
351 +)
352 +
353 +src_prepare() {
354 + default
355 +
356 + # Remove obsolete jsuword bug #506160
357 + sed -i -e '/jsuword/d' "${BUILDDIR}"/jsval.h || die "sed failed"
358 +
359 + if [[ ${CHOST} == *-freebsd* ]]; then
360 + # Don't try to be smart, this does not work in cross-compile anyway
361 + ln -sfn "${BUILDDIR}/config/Linux_All.mk" "${S}/config/$(uname -s)$(uname -r).mk" || die
362 + fi
363 +}
364 +
365 +src_configure() {
366 + cd "${BUILDDIR}" || die
367 +
368 + CC="$(tc-getCC)" CXX="$(tc-getCXX)" \
369 + AR="$(tc-getAR)" RANLIB="$(tc-getRANLIB)" \
370 + LD="$(tc-getLD)" \
371 + econf \
372 + ${myopts} \
373 + --enable-jemalloc \
374 + --enable-readline \
375 + --enable-threadsafe \
376 + --with-system-nspr \
377 + --enable-system-ffi \
378 + --enable-jemalloc \
379 + $(use_enable debug) \
380 + $(use_enable jit tracejit) \
381 + $(use_enable jit methodjit) \
382 + $(use_enable static-libs static) \
383 + $(use_enable test tests)
384 +}
385 +
386 +cross_make() {
387 + emake \
388 + CFLAGS="${BUILD_CFLAGS}" \
389 + CXXFLAGS="${BUILD_CXXFLAGS}" \
390 + AR="${BUILD_AR}" \
391 + CC="${BUILD_CC}" \
392 + CXX="${BUILD_CXX}" \
393 + RANLIB="${BUILD_RANLIB}" \
394 + "$@"
395 +}
396 +src_compile() {
397 + cd "${BUILDDIR}" || die
398 + if tc-is-cross-compiler; then
399 + tc-export_build_env BUILD_{AR,CC,CXX,RANLIB}
400 + cross_make host_jsoplengen host_jskwgen
401 + cross_make -C config nsinstall
402 + mv {,native-}host_jskwgen || die
403 + mv {,native-}host_jsoplengen || die
404 + mv config/{,native-}nsinstall || die
405 + sed -i \
406 + -e 's@./host_jskwgen@./native-host_jskwgen@' \
407 + -e 's@./host_jsoplengen@./native-host_jsoplengen@' \
408 + Makefile || die
409 + sed -i -e 's@/nsinstall@/native-nsinstall@' config/config.mk || die
410 + rm -f config/host_nsinstall.o \
411 + config/host_pathsub.o \
412 + host_jskwgen.o \
413 + host_jsoplengen.o || die
414 + fi
415 + emake
416 +}
417 +
418 +src_test() {
419 + cd "${BUILDDIR}/jsapi-tests" || die
420 + emake check
421 +}
422 +
423 +src_install() {
424 + cd "${BUILDDIR}" || die
425 + default
426 +
427 + if ! use minimal; then
428 + if use jit; then
429 + pax-mark m "${ED}/usr/bin/js${SLOT}" || die
430 + fi
431 + else
432 + rm -f "${ED}/usr/bin/js${SLOT}" || die
433 + fi
434 +
435 + if ! use static-libs; then
436 + # We can't actually disable building of static libraries
437 + # They're used by the tests and in a few other places
438 + find "${D}" -iname '*.a' -delete || die
439 + fi
440 +}
441
442 diff --git a/dev-lang/spidermonkey/spidermonkey-24.2.0-r4.ebuild b/dev-lang/spidermonkey/spidermonkey-24.2.0-r4.ebuild
443 new file mode 100644
444 index 0000000..6613f6e
445 --- /dev/null
446 +++ b/dev-lang/spidermonkey/spidermonkey-24.2.0-r4.ebuild
447 @@ -0,0 +1,157 @@
448 +# Copyright 1999-2018 Gentoo Foundation
449 +# Distributed under the terms of the GNU General Public License v2
450 +
451 +EAPI=6
452 +WANT_AUTOCONF="2.1"
453 +PYTHON_COMPAT=( python2_7 )
454 +PYTHON_REQ_USE="threads"
455 +inherit autotools toolchain-funcs multilib python-any-r1 versionator pax-utils
456 +
457 +MY_PN="mozjs"
458 +MY_P="${MY_PN}-${PV/_/.}"
459 +DESCRIPTION="Stand-alone JavaScript C library"
460 +HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
461 +SRC_URI="https://archive.mozilla.org/pub/js/${MY_P}.tar.bz2
462 + https://dev.gentoo.org/~axs/distfiles/${PN}-slot24-patches-01.tar.xz"
463 +
464 +LICENSE="NPL-1.1"
465 +SLOT="24"
466 +KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 ~s390 ~sh ~sparc x86 ~x86-fbsd"
467 +IUSE="debug icu jit minimal static-libs +system-icu test"
468 +
469 +RESTRICT="ia64? ( test )"
470 +
471 +S="${WORKDIR}/${MY_P%.rc*}"
472 +BUILDDIR="${S}/js/src"
473 +
474 +RDEPEND=">=dev-libs/nspr-4.9.4
475 + virtual/libffi
476 + sys-libs/readline:0=
477 + >=sys-libs/zlib-1.1.4
478 + system-icu? ( >=dev-libs/icu-1.51:= )"
479 +DEPEND="${RDEPEND}
480 + ${PYTHON_DEPS}
481 + app-arch/zip
482 + virtual/pkgconfig"
483 +
484 +PATCHES=(
485 + "${WORKDIR}"/sm24/${PN}-${SLOT}-system-icu.patch
486 + "${WORKDIR}"/sm24/${PN}-24.2.0-fix-file-permissions.patch
487 + "${WORKDIR}"/sm24/${PN}-${SLOT}-upward-growing-stack.patch
488 + "${FILESDIR}"/${PN}-perl-defined-array-check.patch
489 + "${WORKDIR}"/sm24/${PN}-17-fix_pointer_dereference.patch
490 +)
491 +
492 +pkg_setup(){
493 + if [[ ${MERGE_TYPE} != "binary" ]]; then
494 + python-any-r1_pkg_setup
495 + export LC_ALL="C"
496 + fi
497 +}
498 +
499 +src_prepare() {
500 + default
501 +
502 + if [[ ${CHOST} == *-freebsd* ]]; then
503 + # Don't try to be smart, this does not work in cross-compile anyway
504 + ln -sfn "${BUILDDIR}/config/Linux_All.mk" "${S}/config/$(uname -s)$(uname -r).mk" || die
505 + fi
506 +
507 + cd "${BUILDDIR}" || die
508 + eautoconf
509 +}
510 +
511 +src_configure() {
512 + export SHELL=/bin/sh
513 + cd "${BUILDDIR}" || die
514 +
515 + local myopts=""
516 + if use icu; then # make sure system-icu flag only affects icu-enabled build
517 + myopts+="$(use_with system-icu)"
518 + else
519 + myopts+="--without-system-icu"
520 + fi
521 +
522 + CC="$(tc-getCC)" CXX="$(tc-getCXX)" \
523 + AR="$(tc-getAR)" RANLIB="$(tc-getRANLIB)" \
524 + LD="$(tc-getLD)" \
525 + econf \
526 + ${myopts} \
527 + --enable-jemalloc \
528 + --enable-readline \
529 + --enable-threadsafe \
530 + --with-system-nspr \
531 + --enable-system-ffi \
532 + --disable-optimize \
533 + $(use_enable icu intl-api) \
534 + $(use_enable debug) \
535 + $(use_enable jit yarr-jit) \
536 + $(use_enable jit ion) \
537 + $(use_enable static-libs static) \
538 + $(use_enable test tests)
539 +}
540 +
541 +cross_make() {
542 + emake \
543 + CFLAGS="${BUILD_CFLAGS}" \
544 + CXXFLAGS="${BUILD_CXXFLAGS}" \
545 + AR="${BUILD_AR}" \
546 + CC="${BUILD_CC}" \
547 + CXX="${BUILD_CXX}" \
548 + RANLIB="${BUILD_RANLIB}" \
549 + "$@"
550 +}
551 +src_compile() {
552 + cd "${BUILDDIR}" || die
553 + if tc-is-cross-compiler; then
554 + tc-export_build_env BUILD_{AR,CC,CXX,RANLIB}
555 + cross_make \
556 + MOZ_OPTIMIZE_FLAGS="" MOZ_DEBUG_FLAGS="" \
557 + HOST_OPTIMIZE_FLAGS="" MODULE_OPTIMIZE_FLAGS="" \
558 + MOZ_PGO_OPTIMIZE_FLAGS="" \
559 + host_jsoplengen host_jskwgen
560 + cross_make \
561 + MOZ_OPTIMIZE_FLAGS="" MOZ_DEBUG_FLAGS="" HOST_OPTIMIZE_FLAGS="" \
562 + -C config nsinstall
563 + mv {,native-}host_jskwgen || die
564 + mv {,native-}host_jsoplengen || die
565 + mv config/{,native-}nsinstall || die
566 + sed -i \
567 + -e 's@./host_jskwgen@./native-host_jskwgen@' \
568 + -e 's@./host_jsoplengen@./native-host_jsoplengen@' \
569 + Makefile || die
570 + sed -i -e 's@/nsinstall@/native-nsinstall@' config/config.mk || die
571 + rm -f config/host_nsinstall.o \
572 + config/host_pathsub.o \
573 + host_jskwgen.o \
574 + host_jsoplengen.o || die
575 + fi
576 + emake \
577 + MOZ_OPTIMIZE_FLAGS="" MOZ_DEBUG_FLAGS="" \
578 + HOST_OPTIMIZE_FLAGS="" MODULE_OPTIMIZE_FLAGS="" \
579 + MOZ_PGO_OPTIMIZE_FLAGS=""
580 +}
581 +
582 +src_test() {
583 + cd "${BUILDDIR}/jsapi-tests" || die
584 + emake check
585 +}
586 +
587 +src_install() {
588 + cd "${BUILDDIR}" || die
589 + default
590 +
591 + if ! use minimal; then
592 + if use jit; then
593 + pax-mark m "${ED}/usr/bin/js${SLOT}" || die
594 + fi
595 + else
596 + rm -f "${ED}/usr/bin/js${SLOT}" || die
597 + fi
598 +
599 + if ! use static-libs; then
600 + # We can't actually disable building of static libraries
601 + # They're used by the tests and in a few other places
602 + find "${D}" -iname '*.a' -delete || die
603 + fi
604 +}
605
606 diff --git a/dev-lang/spidermonkey/spidermonkey-38.3.0.ebuild b/dev-lang/spidermonkey/spidermonkey-38.3.0.ebuild
607 new file mode 100644
608 index 0000000..0e1816b
609 --- /dev/null
610 +++ b/dev-lang/spidermonkey/spidermonkey-38.3.0.ebuild
611 @@ -0,0 +1,147 @@
612 +# Copyright 1999-2018 Gentoo Foundation
613 +# Distributed under the terms of the GNU General Public License v2
614 +
615 +EAPI=6
616 +WANT_AUTOCONF="2.1"
617 +inherit autotools toolchain-funcs pax-utils mozcoreconf-v4
618 +
619 +MY_PN="mozjs"
620 +MY_P="${MY_PN}-${PV/_/.}sfink2"
621 +DESCRIPTION="Stand-alone JavaScript C library"
622 +HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
623 +SRC_URI="https://archive.mozilla.org/pub/${PN}/releases/${PV}/${MY_P}.tar.bz2
624 + https://dev.gentoo.org/~axs/distfiles/${PN}-slot38-patches-01.tar.xz"
625 +
626 +LICENSE="NPL-1.1"
627 +SLOT="38"
628 +KEYWORDS="~alpha amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc x86 ~x86-fbsd"
629 +IUSE="debug +jit minimal static-libs +system-icu test"
630 +
631 +RESTRICT="ia64? ( test )"
632 +
633 +#S="${WORKDIR}/${MY_P%.rc*}"
634 +S="${WORKDIR}/${MY_P}"
635 +BUILDDIR="${S}/js/src"
636 +
637 +RDEPEND=">=dev-libs/nspr-4.10.10
638 + virtual/libffi
639 + sys-libs/readline:0=
640 + >=sys-libs/zlib-1.2.3
641 + system-icu? ( >=dev-libs/icu-51.1:= )"
642 +DEPEND="${RDEPEND}"
643 +
644 +pkg_setup(){
645 + if [[ ${MERGE_TYPE} != "binary" ]]; then
646 + moz_pkgsetup
647 + fi
648 +}
649 +
650 +src_prepare() {
651 + eapply "${WORKDIR}"/sm38/${PN}-38-jsapi-tests.patch \
652 + "${WORKDIR}"/sm38/mozjs38-1269317.patch \
653 + "${WORKDIR}"/sm38/mozjs38-fix-tracelogger.patch \
654 + "${WORKDIR}"/sm38/mozjs38-copy-headers.patch \
655 + "${WORKDIR}"/sm38/mozjs38-pkg-config-version.patch \
656 + "${WORKDIR}"/sm38/mozilla_configure_regexp_esr38.patch \
657 + "${FILESDIR}"/moz38-dont-hardcode-libc-soname.patch
658 +
659 + eapply_user
660 +
661 + if [[ ${CHOST} == *-freebsd* ]]; then
662 + # Don't try to be smart, this does not work in cross-compile anyway
663 + ln -sfn "${BUILDDIR}/config/Linux_All.mk" "${S}/config/$(uname -s)$(uname -r).mk" || die
664 + fi
665 +
666 + cd "${BUILDDIR}" || die
667 + eautoconf
668 +}
669 +
670 +src_configure() {
671 + export SHELL="${SHELL:-${EPREFIX%/}/bin/bash}"
672 +
673 + cd "${BUILDDIR}" || die
674 +
675 + econf \
676 + --enable-jemalloc \
677 + --enable-readline \
678 + --enable-threadsafe \
679 + --with-system-nspr \
680 + --enable-system-ffi \
681 + --disable-optimize \
682 + --with-intl-api \
683 + $(use_with system-icu) \
684 + $(use_enable debug) \
685 + $(use_enable jit yarr-jit) \
686 + $(use_enable jit ion) \
687 + $(use_enable static-libs static) \
688 + $(use_enable test tests)
689 +}
690 +
691 +cross_make() {
692 + emake \
693 + CFLAGS="${BUILD_CFLAGS}" \
694 + CXXFLAGS="${BUILD_CXXFLAGS}" \
695 + AR="${BUILD_AR}" \
696 + CC="${BUILD_CC}" \
697 + CXX="${BUILD_CXX}" \
698 + RANLIB="${BUILD_RANLIB}" \
699 + "$@"
700 +}
701 +src_compile() {
702 + cd "${BUILDDIR}" || die
703 + if tc-is-cross-compiler; then
704 + tc-export_build_env BUILD_{AR,CC,CXX,RANLIB}
705 + cross_make \
706 + MOZ_OPTIMIZE_FLAGS="" MOZ_DEBUG_FLAGS="" \
707 + HOST_OPTIMIZE_FLAGS="" MODULE_OPTIMIZE_FLAGS="" \
708 + MOZ_PGO_OPTIMIZE_FLAGS="" \
709 + host_jsoplengen host_jskwgen
710 + cross_make \
711 + MOZ_OPTIMIZE_FLAGS="" MOZ_DEBUG_FLAGS="" HOST_OPTIMIZE_FLAGS="" \
712 + -C config nsinstall
713 + mv {,native-}host_jskwgen || die
714 + mv {,native-}host_jsoplengen || die
715 + mv config/{,native-}nsinstall || die
716 + sed -i \
717 + -e 's@./host_jskwgen@./native-host_jskwgen@' \
718 + -e 's@./host_jsoplengen@./native-host_jsoplengen@' \
719 + Makefile || die
720 + sed -i -e 's@/nsinstall@/native-nsinstall@' config/config.mk || die
721 + rm -f config/host_nsinstall.o \
722 + config/host_pathsub.o \
723 + host_jskwgen.o \
724 + host_jsoplengen.o || die
725 + fi
726 +
727 + MOZ_MAKE_FLAGS="${MAKEOPTS}"
728 + emake \
729 + MOZ_OPTIMIZE_FLAGS="" MOZ_DEBUG_FLAGS="" \
730 + HOST_OPTIMIZE_FLAGS="" MODULE_OPTIMIZE_FLAGS="" \
731 + MOZ_PGO_OPTIMIZE_FLAGS=""
732 +}
733 +
734 +src_test() {
735 + cd "${BUILDDIR}/js/src/jsapi-tests" || die
736 + ./jsapi-tests || die
737 +}
738 +
739 +src_install() {
740 + cd "${BUILDDIR}" || die
741 + emake DESTDIR="${D}" install
742 +
743 + mv "${ED}"usr/bin/js-config{,${SLOT}} || die
744 + mv "${ED}"usr/bin/js{,${SLOT}} || die
745 + if ! use minimal; then
746 + if use jit; then
747 + pax-mark m "${ED}"usr/bin/js${SLOT}
748 + fi
749 + else
750 + rm -f "${ED}"/usr/bin/js${SLOT}
751 + fi
752 +
753 + if ! use static-libs; then
754 + # We can't actually disable building of static libraries
755 + # They're used by the tests and in a few other places
756 + find "${D}" -iname '*.a' -o -iname '*.ajs' -delete || die
757 + fi
758 +}
759
760 diff --git a/dev-lang/spidermonkey/spidermonkey-45.0.2.ebuild b/dev-lang/spidermonkey/spidermonkey-45.0.2.ebuild
761 new file mode 100644
762 index 0000000..a2b5f54
763 --- /dev/null
764 +++ b/dev-lang/spidermonkey/spidermonkey-45.0.2.ebuild
765 @@ -0,0 +1,147 @@
766 +# Copyright 1999-2017 Gentoo Foundation
767 +# Distributed under the terms of the GNU General Public License v2
768 +
769 +EAPI=6
770 +WANT_AUTOCONF="2.1"
771 +inherit autotools toolchain-funcs pax-utils mozcoreconf-v4
772 +
773 +MY_PN="mozjs"
774 +MY_P="${MY_PN}-${PV/_/.}"
775 +DESCRIPTION="Stand-alone JavaScript C library"
776 +HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
777 +SRC_URI="https://archive.mozilla.org/pub/${PN}/releases/${PV}/${MY_P}.tar.bz2
778 + https://dev.gentoo.org/~axs/distfiles/${PN}-slot45-patches-01.tar.xz"
779 +
780 +LICENSE="NPL-1.1"
781 +SLOT="45"
782 +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd"
783 +IUSE="debug +jit minimal static-libs +system-icu test"
784 +
785 +RESTRICT="ia64? ( test )"
786 +
787 +S="${WORKDIR}/${MY_P}"
788 +BUILDDIR="${S}/js/src"
789 +
790 +RDEPEND=">=dev-libs/nspr-4.10.10
791 + virtual/libffi
792 + sys-libs/readline:0=
793 + >=sys-libs/zlib-1.2.3
794 + system-icu? ( >=dev-libs/icu-51.1:= )"
795 +DEPEND="${RDEPEND}"
796 +
797 +pkg_setup(){
798 + if [[ ${MERGE_TYPE} != "binary" ]]; then
799 + moz_pkgsetup
800 + fi
801 +}
802 +
803 +src_prepare() {
804 + eapply "${WORKDIR}"/sm45/${PN}-38-jsapi-tests.patch \
805 + "${WORKDIR}"/sm45/mozjs45-1266366.patch \
806 + "${WORKDIR}"/sm45/mozjs38-pkg-config-version.patch \
807 + "${WORKDIR}"/sm45/mozilla_configure_regexp_esr.patch \
808 + "${WORKDIR}"/sm45/${PN}-${SLOT}-dont-symlink-non-objfiles.patch
809 +
810 + # apply relevant (modified) patches from gentoo's firefox-45 patchset
811 + eapply "${WORKDIR}"/sm45/ff45
812 +
813 + eapply_user
814 +
815 + if [[ ${CHOST} == *-freebsd* ]]; then
816 + # Don't try to be smart, this does not work in cross-compile anyway
817 + ln -sfn "${BUILDDIR}/config/Linux_All.mk" "${S}/config/$(uname -s)$(uname -r).mk" || die
818 + fi
819 +
820 + cd "${BUILDDIR}" || die
821 + eautoconf
822 +}
823 +
824 +src_configure() {
825 + export SHELL="${SHELL:-${EPREFIX%/}/bin/bash}"
826 + cd "${BUILDDIR}" || die
827 +
828 + econf \
829 + --enable-jemalloc \
830 + --enable-readline \
831 + --enable-threadsafe \
832 + --with-system-nspr \
833 + --enable-system-ffi \
834 + --disable-optimize \
835 + --with-intl-api \
836 + $(use_with system-icu) \
837 + $(use_enable debug) \
838 + $(use_enable jit yarr-jit) \
839 + $(use_enable jit ion) \
840 + $(use_enable static-libs static) \
841 + $(use_enable test tests)
842 +}
843 +
844 +cross_make() {
845 + emake \
846 + CFLAGS="${BUILD_CFLAGS}" \
847 + CXXFLAGS="${BUILD_CXXFLAGS}" \
848 + AR="${BUILD_AR}" \
849 + CC="${BUILD_CC}" \
850 + CXX="${BUILD_CXX}" \
851 + RANLIB="${BUILD_RANLIB}" \
852 + "$@"
853 +}
854 +src_compile() {
855 + cd "${BUILDDIR}" || die
856 + if tc-is-cross-compiler; then
857 + tc-export_build_env BUILD_{AR,CC,CXX,RANLIB}
858 + cross_make \
859 + MOZ_OPTIMIZE_FLAGS="" MOZ_DEBUG_FLAGS="" \
860 + HOST_OPTIMIZE_FLAGS="" MODULE_OPTIMIZE_FLAGS="" \
861 + MOZ_PGO_OPTIMIZE_FLAGS="" \
862 + host_jsoplengen host_jskwgen
863 + cross_make \
864 + MOZ_OPTIMIZE_FLAGS="" MOZ_DEBUG_FLAGS="" HOST_OPTIMIZE_FLAGS="" \
865 + -C config nsinstall
866 + mv {,native-}host_jskwgen || die
867 + mv {,native-}host_jsoplengen || die
868 + mv config/{,native-}nsinstall || die
869 + sed -i \
870 + -e 's@./host_jskwgen@./native-host_jskwgen@' \
871 + -e 's@./host_jsoplengen@./native-host_jsoplengen@' \
872 + Makefile || die
873 + sed -i -e 's@/nsinstall@/native-nsinstall@' config/config.mk || die
874 + rm -f config/host_nsinstall.o \
875 + config/host_pathsub.o \
876 + host_jskwgen.o \
877 + host_jsoplengen.o || die
878 + fi
879 +
880 + MOZ_MAKE_FLAGS="${MAKEOPTS}" \
881 + emake \
882 + MOZ_OPTIMIZE_FLAGS="" MOZ_DEBUG_FLAGS="" \
883 + HOST_OPTIMIZE_FLAGS="" MODULE_OPTIMIZE_FLAGS="" \
884 + MOZ_PGO_OPTIMIZE_FLAGS=""
885 +}
886 +
887 +src_test() {
888 + cd "${BUILDDIR}/js/src/jsapi-tests" || die
889 + ./jsapi-tests || die
890 +}
891 +
892 +src_install() {
893 + cd "${BUILDDIR}" || die
894 + emake DESTDIR="${D}" install
895 +
896 + # re-slot due to upstream stripping out most of the slotting
897 + mv "${ED}"usr/bin/js-config{,${SLOT}} || die
898 + mv "${ED}"usr/bin/js{,${SLOT}} || die
899 + if ! use minimal; then
900 + if use jit; then
901 + pax-mark m "${ED}"usr/bin/js${SLOT}
902 + fi
903 + else
904 + rm -f "${ED}"usr/bin/js${SLOT}
905 + fi
906 +
907 + if ! use static-libs; then
908 + # We can't actually disable building of static libraries
909 + # They're used by the tests and in a few other places
910 + find "${D}" -iname '*.a' -o -iname '*.ajs' -delete || die
911 + fi
912 +}
913
914 diff --git a/dev-lang/spidermonkey/spidermonkey-52.4.0_pre20171003-r1.ebuild b/dev-lang/spidermonkey/spidermonkey-52.4.0_pre20171003-r1.ebuild
915 new file mode 100644
916 index 0000000..7e1b059
917 --- /dev/null
918 +++ b/dev-lang/spidermonkey/spidermonkey-52.4.0_pre20171003-r1.ebuild
919 @@ -0,0 +1,145 @@
920 +# Copyright 1999-2017 Gentoo Foundation
921 +# Distributed under the terms of the GNU General Public License v2
922 +
923 +EAPI=6
924 +WANT_AUTOCONF="2.1"
925 +inherit autotools toolchain-funcs pax-utils mozcoreconf-v5
926 +
927 +MY_PN="mozjs"
928 +MY_P="${MY_PN}-${PV/_rc/.rc}"
929 +DESCRIPTION="Stand-alone JavaScript C++ library"
930 +HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
931 +#SRC_URI="https://people.mozilla.org/~sfink/${MY_P}.tar.bz2"
932 +SRC_URI="https://dev.gentoo.org/~axs/distfiles/${MY_P}.tar.bz2
933 + https://dev.gentoo.org/~axs/distfiles/${PN}-52.0-patches-0.tar.xz"
934 +
935 +LICENSE="NPL-1.1"
936 +SLOT="52"
937 +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd"
938 +IUSE="debug +jit minimal +system-icu test"
939 +
940 +RESTRICT="ia64? ( test )"
941 +
942 +S="${WORKDIR}/${MY_P%.rc*}"
943 +S="${S%_pre*}"
944 +BUILDDIR="${S}/js/src"
945 +
946 +RDEPEND=">=dev-libs/nspr-4.13.1
947 + virtual/libffi
948 + sys-libs/readline:0=
949 + >=sys-libs/zlib-1.2.3
950 + system-icu? ( >=dev-libs/icu-58.1:= )"
951 +DEPEND="${RDEPEND}"
952 +
953 +pkg_setup(){
954 + [[ ${MERGE_TYPE} == "binary" ]] || \
955 + moz_pkgsetup
956 +}
957 +
958 +src_prepare() {
959 + # remove patches integrated by upstream
960 + rm -f "${WORKDIR}"/${PN}/0002-build-Add-major-version-to-make-parallel-installable.patch \
961 + "${WORKDIR}"/${PN}/0005-headers-Fix-symbols-visibility.patch \
962 + "${WORKDIR}"/${PN}/0007-build-Remove-unnecessary-NSPR-dependency.patch \
963 + || die
964 +
965 + eapply "${WORKDIR}/${PN}"
966 + eapply "${FILESDIR}"/${PN}-52-baseconfig.patch
967 +
968 + eapply_user
969 +
970 + if [[ ${CHOST} == *-freebsd* ]]; then
971 + # Don't try to be smart, this does not work in cross-compile anyway
972 + ln -sfn "${BUILDDIR}/config/Linux_All.mk" "${S}/config/$(uname -s)$(uname -r).mk" || die
973 + fi
974 +
975 + cd "${BUILDDIR}" || die
976 + eautoconf old-configure.in
977 + eautoconf
978 +
979 + # there is a default config.cache that messes everything up
980 + rm -f "${BUILDDIR}"/config.cache || die
981 +}
982 +
983 +src_configure() {
984 + cd "${BUILDDIR}" || die
985 +
986 + econf \
987 + --enable-jemalloc \
988 + --enable-readline \
989 + --with-system-nspr \
990 + --disable-optimize \
991 + --with-intl-api \
992 + $(use_with system-icu) \
993 + $(use_enable debug) \
994 + $(use_enable jit ion) \
995 + $(use_enable test tests) \
996 + XARGS="/usr/bin/xargs" \
997 + SHELL="${SHELL:-${EPREFIX}/bin/bash}" \
998 + CC="${CC}" CXX="${CXX}" LD="${LD}" AR="${AR}" RANLIB="${RANLIB}"
999 +}
1000 +
1001 +cross_make() {
1002 + emake \
1003 + CFLAGS="${BUILD_CFLAGS}" \
1004 + CXXFLAGS="${BUILD_CXXFLAGS}" \
1005 + AR="${BUILD_AR}" \
1006 + CC="${BUILD_CC}" \
1007 + CXX="${BUILD_CXX}" \
1008 + RANLIB="${BUILD_RANLIB}" \
1009 + "$@"
1010 +}
1011 +src_compile() {
1012 + cd "${BUILDDIR}" || die
1013 + if tc-is-cross-compiler; then
1014 + tc-export_build_env BUILD_{AR,CC,CXX,RANLIB}
1015 + cross_make \
1016 + MOZ_OPTIMIZE_FLAGS="" MOZ_DEBUG_FLAGS="" \
1017 + HOST_OPTIMIZE_FLAGS="" MODULE_OPTIMIZE_FLAGS="" \
1018 + MOZ_PGO_OPTIMIZE_FLAGS="" \
1019 + host_jsoplengen host_jskwgen
1020 + cross_make \
1021 + MOZ_OPTIMIZE_FLAGS="" MOZ_DEBUG_FLAGS="" HOST_OPTIMIZE_FLAGS="" \
1022 + -C config nsinstall
1023 + mv {,native-}host_jskwgen || die
1024 + mv {,native-}host_jsoplengen || die
1025 + mv config/{,native-}nsinstall || die
1026 + sed -i \
1027 + -e 's@./host_jskwgen@./native-host_jskwgen@' \
1028 + -e 's@./host_jsoplengen@./native-host_jsoplengen@' \
1029 + Makefile || die
1030 + sed -i -e 's@/nsinstall@/native-nsinstall@' config/config.mk || die
1031 + rm -f config/host_nsinstall.o \
1032 + config/host_pathsub.o \
1033 + host_jskwgen.o \
1034 + host_jsoplengen.o || die
1035 + fi
1036 +
1037 + MOZ_MAKE_FLAGS="${MAKEOPTS}" \
1038 + emake \
1039 + MOZ_OPTIMIZE_FLAGS="" MOZ_DEBUG_FLAGS="" \
1040 + HOST_OPTIMIZE_FLAGS="" MODULE_OPTIMIZE_FLAGS="" \
1041 + MOZ_PGO_OPTIMIZE_FLAGS=""
1042 +}
1043 +
1044 +src_test() {
1045 + cd "${BUILDDIR}/js/src/jsapi-tests" || die
1046 + ./jsapi-tests || die
1047 +}
1048 +
1049 +src_install() {
1050 + cd "${BUILDDIR}" || die
1051 + emake DESTDIR="${D}" install
1052 +
1053 + if ! use minimal; then
1054 + if use jit; then
1055 + pax-mark m "${ED}"usr/bin/js${SLOT}
1056 + fi
1057 + else
1058 + rm -f "${ED}"usr/bin/js${SLOT}
1059 + fi
1060 +
1061 + # We can't actually disable building of static libraries
1062 + # They're used by the tests and in a few other places
1063 + find "${D}" -iname '*.a' -o -iname '*.ajs' -delete || die
1064 +}