Gentoo Archives: gentoo-commits

From: Thomas Deutschmann <whissi@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-lang/spidermonkey/
Date: Tue, 25 Aug 2020 19:09:00
Message-Id: 1598382523.5d3c9d28e29667b0e8511038b1322a2799538367.whissi@gentoo
1 commit: 5d3c9d28e29667b0e8511038b1322a2799538367
2 Author: Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
3 AuthorDate: Tue Aug 25 19:03:29 2020 +0000
4 Commit: Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
5 CommitDate: Tue Aug 25 19:08:43 2020 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5d3c9d28
7
8 dev-lang/spidermonkey: bump to v68.12.0
9
10 Package-Manager: Portage-3.0.4, Repoman-3.0.1
11 Signed-off-by: Thomas Deutschmann <whissi <AT> gentoo.org>
12
13 dev-lang/spidermonkey/Manifest | 1 +
14 dev-lang/spidermonkey/spidermonkey-68.12.0.ebuild | 233 ++++++++++++++++++++++
15 2 files changed, 234 insertions(+)
16
17 diff --git a/dev-lang/spidermonkey/Manifest b/dev-lang/spidermonkey/Manifest
18 index 5b6ebeeb83f..c85db0a830e 100644
19 --- a/dev-lang/spidermonkey/Manifest
20 +++ b/dev-lang/spidermonkey/Manifest
21 @@ -3,6 +3,7 @@ DIST firefox-68.0-patches-14.tar.xz 17488 BLAKE2B 697aecf97b04b45ea17ed1c1eaded9
22 DIST firefox-68.0-patches-15.tar.xz 16060 BLAKE2B f9e6cd58ea51bed1af90a9d30fd551dc7e939afcd1b4d00de1271bd4bda94021c6f1799fd9945962c14ffa1fd0b6a6429369c4e45efc2000f179b9b2e46971e7 SHA512 9cb2479637dd8b84e0ab68dc0fe144acd2dc74feca282fd3c4b485ca6f0de8190244587622713a5421b243ccda153f738e9a8f463e87e15e93e9b725d943e128
23 DIST firefox-68.10.0esr.source.tar.xz 314526224 BLAKE2B 698367314caa4d8e9fd64e5ec6fd26316a26470f94d095dd212932cb968ecabd492563d661df46be693c8deb16cdb45c6ba756d506a8211f184e4637c7d9e986 SHA512 c5c1833560364851e7cf8ea51659bc4fb60239b960125cdb20fe31f742d757ffdaef8f314f800dc91214ee8e358033dc2af971c08bbba474ef6158b101881653
24 DIST firefox-68.11.0esr.source.tar.xz 321294384 BLAKE2B ee44ed20584f5b1e3c41de62a720c6e91784d76503198d8363ce6d6f74454ce101c9b811d8295b81eb6454bdb20e1109c3e9c5cd052e0e9a6f7607d338a97783 SHA512 7dcfa4944945bce184b96643a7afbd0cc97c93e4f727695bd5ee1e1745cff89784e68baf109588ef56791211b4b8f5c7c056ae6ac77f54fd00a5af5d5606f23e
25 +DIST firefox-68.12.0esr.source.tar.xz 313856956 BLAKE2B eeaa4acc9fabf15ec1b313170a30cee8e1fc10a8b08512b915b83b7d6a81c09b365733ed94638bd434864fd7b0cb8cbf1bc2e43441be69e31117e8e6a099234c SHA512 839b02422e4c87bdb12e0995cd35ca8c1996f3fba00bbb46b419e46b67df5ec48a264cb14632db777ce29166ee4fdcb06e2ee3ce847e64328c58c9a2f9129f4c
26 DIST firefox-68.7.0esr.source.tar.xz 312235932 BLAKE2B 17030bc74341ecae74d7dadcb0fc0212e61e3f01463671e57f73c90e534db1088d597d43bc362cd083ca26b056bce45684eda121b2cd91c7793c44a7c40efb7a SHA512 a3ddcf8ffe5f568b30b1fc9ddcaa5cebe600bf11ce353c09507d5466f999022d45a0dee9a08f53f37b10202a2e2ce4c180743cd6a2ca38dfea1c3e4487b18593
27 DIST firefox-68.8.0esr.source.tar.xz 312602308 BLAKE2B 19be922cdadc705a267f35450e742cf9cf2f793a3e74dd9a397f898ff879cf9d7e59ccc148a9fa47f3c637c30887c205f01069e689f0586fb9ef82f4e6b160ce SHA512 139a63dc85ae76a50da6be9a31425f97144e6c7e4a65b0f3009a84eb5c8c9566f6bb331e26590f8aecd5045c4d730ab4e848cf7220f3444a31147b5533c742b3
28 DIST firefox-68.9.0esr.source.tar.xz 317469120 BLAKE2B f04f8ca1abe802edb6d37c0de5f8024d513331fd80c9b701c93de74cbafc0650b1c0f58e54a2dbe6bee0457698dc386093aab7749c9b0738bf146bfbae6bf4e2 SHA512 98431800d80f7c680aef9eede29df8217810912a319a7f7f8c2e637c43ecd4f4e29223a417afb2a6315e825f979453ff6e6b5a575649aba5cc63ce5956375bb8
29
30 diff --git a/dev-lang/spidermonkey/spidermonkey-68.12.0.ebuild b/dev-lang/spidermonkey/spidermonkey-68.12.0.ebuild
31 new file mode 100644
32 index 00000000000..40a31613f3f
33 --- /dev/null
34 +++ b/dev-lang/spidermonkey/spidermonkey-68.12.0.ebuild
35 @@ -0,0 +1,233 @@
36 +# Copyright 1999-2020 Gentoo Authors
37 +# Distributed under the terms of the GNU General Public License v2
38 +
39 +EAPI="7"
40 +
41 +PYTHON_COMPAT=( python3_{6..9} )
42 +
43 +WANT_AUTOCONF="2.1"
44 +
45 +inherit autotools check-reqs python-any-r1
46 +
47 +MY_PN="mozjs"
48 +MY_PV="${PV/_pre*}" # Handle Gentoo pre-releases
49 +
50 +MY_MAJOR=$(ver_cut 1)
51 +
52 +MOZ_ESR="1"
53 +
54 +# Convert the ebuild version to the upstream mozilla version
55 +MOZ_PV="${MY_PV/_alpha/a}" # Handle alpha for SRC_URI
56 +MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI
57 +MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI
58 +
59 +if [[ ${MOZ_ESR} == 1 ]] ; then
60 + # ESR releases have slightly different version numbers
61 + MOZ_PV="${MOZ_PV}esr"
62 +fi
63 +
64 +# Patch version
65 +FIREFOX_PATCHSET="firefox-68.0-patches-15"
66 +SPIDERMONKEY_PATCHSET="${PN}-68.6.0-patches-03"
67 +
68 +MOZ_HTTP_URI="https://archive.mozilla.org/pub/firefox/releases"
69 +MOZ_SRC_URI="${MOZ_HTTP_URI}/${MOZ_PV}/source/firefox-${MOZ_PV}.source.tar.xz"
70 +
71 +if [[ "${PV}" == *_rc* ]]; then
72 + MOZ_HTTP_URI="https://archive.mozilla.org/pub/firefox/candidates/${MOZ_PV}-candidates/build${PV##*_rc}"
73 + MOZ_SRC_URI="${MOZ_HTTP_URI}/source/firefox-${MOZ_PV}.source.tar.xz"
74 +fi
75 +
76 +PATCH_URIS=(
77 + https://dev.gentoo.org/~{anarchy,whissi,polynomial-c,axs}/mozilla/patchsets/${FIREFOX_PATCHSET}.tar.xz
78 + https://dev.gentoo.org/~{whissi,polynomial-c,axs}/mozilla/patchsets/${SPIDERMONKEY_PATCHSET}.tar.xz
79 +)
80 +
81 +SRC_URI="${MOZ_SRC_URI}
82 + ${PATCH_URIS[@]}"
83 +
84 +DESCRIPTION="SpiderMonkey is Mozilla's JavaScript engine written in C and C++"
85 +HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
86 +
87 +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86"
88 +
89 +SLOT="68"
90 +LICENSE="MPL-2.0"
91 +IUSE="debug +jit test"
92 +
93 +RESTRICT="!test? ( test )"
94 +
95 +BDEPEND="dev-lang/python:2.7
96 + test? ( ${PYTHON_DEPS} )"
97 +
98 +DEPEND=">=dev-libs/icu-63.1:=
99 + >=dev-libs/nspr-4.21
100 + sys-libs/readline:0=
101 + >=sys-libs/zlib-1.2.3"
102 +RDEPEND="${DEPEND}"
103 +
104 +S="${WORKDIR}/firefox-${MY_PV}/js/src"
105 +
106 +pkg_pretend() {
107 + if use test ; then
108 + CHECKREQS_DISK_BUILD="6G"
109 + else
110 + CHECKREQS_DISK_BUILD="5G"
111 + fi
112 +
113 + check-reqs_pkg_pretend
114 +}
115 +
116 +pkg_setup() {
117 + if use test ; then
118 + CHECKREQS_DISK_BUILD="6G"
119 + else
120 + CHECKREQS_DISK_BUILD="5G"
121 + fi
122 +
123 + check-reqs_pkg_setup
124 +
125 + use test && python-any-r1_pkg_setup
126 +}
127 +
128 +src_prepare() {
129 + cd ../.. || die
130 + rm "${WORKDIR}"/firefox/2013_avoid_noinline_on_GCC_with_skcms.patch
131 + rm "${WORKDIR}"/firefox/2015_fix_cssparser.patch
132 + rm "${WORKDIR}"/firefox/2016_set_CARGO_PROFILE_RELEASE_LTO.patch
133 + eapply "${WORKDIR}"/firefox
134 + eapply "${WORKDIR}"/spidermonkey-patches
135 +
136 + default
137 +
138 + # sed-in toolchain prefix
139 + sed -i \
140 + -e "s/objdump/${CHOST}-objdump/" \
141 + python/mozbuild/mozbuild/configure/check_debug_ranges.py \
142 + || die "sed failed to set toolchain prefix"
143 +
144 + MOZJS_BUILDDIR="${WORKDIR}/build"
145 + mkdir "${MOZJS_BUILDDIR}" || die
146 +
147 + cd "${S}" || die
148 + eautoconf
149 +}
150 +
151 +src_configure() {
152 + tc-export CC CXX LD AR RANLIB
153 +
154 + # backup current active Python version
155 + local PYTHON_OLD=${PYTHON}
156 +
157 + # build system will require Python2.7
158 + export PYTHON=python2.7
159 +
160 + cd "${MOZJS_BUILDDIR}" || die
161 +
162 + # ../python/mach/mach/mixin/process.py fails to detect SHELL
163 + export SHELL="${EPREFIX}/bin/bash"
164 +
165 + # forcing system-icu allows us to skip patching bundled ICU for PPC
166 + # and other minor arches
167 + ECONF_SOURCE="${S}" \
168 + econf \
169 + --host="${CBUILD:-${CHOST}}" \
170 + --target="${CHOST}" \
171 + --disable-jemalloc \
172 + --disable-optimize \
173 + --disable-strip \
174 + --enable-readline \
175 + --enable-shared-js \
176 + --with-intl-api \
177 + --with-system-icu \
178 + --with-system-nspr \
179 + --with-system-zlib \
180 + --with-toolchain-prefix="${CHOST}-" \
181 + $(use_enable debug) \
182 + $(use_enable jit ion) \
183 + $(use_enable test tests) \
184 + XARGS="${EPREFIX}/usr/bin/xargs"
185 +
186 + # restore PYTHON
187 + export PYTHON=${PYTHON_OLD}
188 +}
189 +
190 +src_compile() {
191 + cd "${MOZJS_BUILDDIR}" || die
192 + default
193 +}
194 +
195 +src_test() {
196 + if "${MOZJS_BUILDDIR}/js/src/js" -e 'print("Hello world!")'; then
197 + einfo "Smoke-test successful, continuing with full test suite"
198 + else
199 + die "Smoke-test failed: did interpreter initialization fail?"
200 + fi
201 +
202 + local -a KNOWN_TESTFAILURES
203 + KNOWN_TESTFAILURES+=( test262/intl402/RelativeTimeFormat/prototype/format/en-us-numeric-auto.js )
204 + KNOWN_TESTFAILURES+=( non262/Intl/DateTimeFormat/timeZone_backward_links.js )
205 + KNOWN_TESTFAILURES+=( non262/Intl/DateTimeFormat/tz-environment-variable.js )
206 + KNOWN_TESTFAILURES+=( non262/Intl/RelativeTimeFormat/format.js )
207 + KNOWN_TESTFAILURES+=( non262/Date/time-zones-imported.js )
208 + KNOWN_TESTFAILURES+=( non262/Date/toString-localized.js )
209 + KNOWN_TESTFAILURES+=( non262/Date/time-zone-path.js )
210 + KNOWN_TESTFAILURES+=( non262/Date/time-zones-historic.js )
211 + KNOWN_TESTFAILURES+=( non262/Date/toString-localized-posix.js )
212 + KNOWN_TESTFAILURES+=( non262/Date/reset-time-zone-cache-same-offset.js )
213 +
214 + echo "" > "${T}"/known_failures.list || die
215 +
216 + local KNOWN_TESTFAILURE
217 + for KNOWN_TESTFAILURE in ${KNOWN_TESTFAILURES[@]} ; do
218 + echo "${KNOWN_TESTFAILURE}" >> "${T}"/known_failures.list
219 + done
220 +
221 + PYTHONPATH="${S}/tests/lib" \
222 + ${PYTHON} \
223 + "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \
224 + --exclude-file="${T}"/known_failures.list \
225 + "${MOZJS_BUILDDIR}"/js/src/js \
226 + || die
227 +
228 + if use jit ; then
229 + KNOWN_TESTFAILURES=()
230 +
231 + echo "" > "${T}"/known_failures.list || die
232 +
233 + for KNOWN_TESTFAILURE in ${KNOWN_TESTFAILURES[@]} ; do
234 + echo "${KNOWN_TESTFAILURE}" >> "${T}"/known_failures.list
235 + done
236 +
237 + PYTHONPATH="${S}/tests/lib" \
238 + ${PYTHON} \
239 + "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \
240 + --exclude-file="${T}"/known_failures.list \
241 + "${MOZJS_BUILDDIR}"/js/src/js basic \
242 + || die
243 + fi
244 +}
245 +
246 +src_install() {
247 + cd "${MOZJS_BUILDDIR}" || die
248 + default
249 +
250 + # fix soname links
251 + pushd "${ED}"/usr/$(get_libdir) &>/dev/null || die
252 + mv lib${MY_PN}-${MY_MAJOR}.so lib${MY_PN}-${MY_MAJOR}.so.0.0.0 || die
253 + ln -s lib${MY_PN}-${MY_MAJOR}.so.0.0.0 lib${MY_PN}-${MY_MAJOR}.so.0 || die
254 + ln -s lib${MY_PN}-${MY_MAJOR}.so.0 lib${MY_PN}-${MY_MAJOR}.so || die
255 + popd &>/dev/null || die
256 +
257 + # remove unneeded files
258 + rm \
259 + "${ED}"/usr/bin/js${MY_MAJOR}-config \
260 + "${ED}"/usr/$(get_libdir)/libjs_static.ajs \
261 + || die
262 +
263 + # fix permissions
264 + chmod -x \
265 + "${ED}"/usr/$(get_libdir)/pkgconfig/*.pc \
266 + "${ED}"/usr/include/mozjs-${MY_MAJOR}/js-config.h \
267 + || die
268 +}