Gentoo Archives: gentoo-commits

From: Marek Szuba <marecki@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: net-libs/nodejs/, net-libs/nodejs/files/
Date: Thu, 16 Sep 2021 16:42:59
Message-Id: 1631810567.59ce1218e495f99ed48c2b7d436514be7e329978.marecki@gentoo
1 commit: 59ce1218e495f99ed48c2b7d436514be7e329978
2 Author: Marek Szuba <marecki <AT> gentoo <DOT> org>
3 AuthorDate: Thu Sep 16 16:33:09 2021 +0000
4 Commit: Marek Szuba <marecki <AT> gentoo <DOT> org>
5 CommitDate: Thu Sep 16 16:42:47 2021 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=59ce1218
7
8 net-libs/nodejs: remove old
9
10 Signed-off-by: Marek Szuba <marecki <AT> gentoo.org>
11
12 net-libs/nodejs/Manifest | 4 -
13 .../nodejs/files/nodejs-12.22.1-v8_icu69.patch | 85 -------
14 .../nodejs/files/nodejs-14.16.1-v8_icu69.patch | 84 -------
15 net-libs/nodejs/nodejs-12.22.1-r1.ebuild | 224 ------------------
16 net-libs/nodejs/nodejs-12.22.3-r1.ebuild | 249 ---------------------
17 net-libs/nodejs/nodejs-14.16.1-r1.ebuild | 213 ------------------
18 net-libs/nodejs/nodejs-14.17.3-r1.ebuild | 242 --------------------
19 7 files changed, 1101 deletions(-)
20
21 diff --git a/net-libs/nodejs/Manifest b/net-libs/nodejs/Manifest
22 index cda159f47af..41adb5f5827 100644
23 --- a/net-libs/nodejs/Manifest
24 +++ b/net-libs/nodejs/Manifest
25 @@ -1,9 +1,5 @@
26 -DIST node-v12.22.1.tar.xz 23650180 BLAKE2B 90b0a8ab3842483fea0c776e0245e63539a986c18f55abd8c7cd22ec399ccde22fa5b008d3e07c0f07713b5a45a1ee2a0bc370c04408800db2ee59cd92fcb5be SHA512 eaead633611bda04ab9be200aeddf3b4004b8104e9c6af246023b8008003dd3a7103e1508ea690443e59c6591521b04a2d71c7344343f2a20d1c935ef51c66a0
27 -DIST node-v12.22.3.tar.xz 23662268 BLAKE2B b686d96ce1a2e1678c1565dbc6025738be85dc6b0e21b39742265639eb8da590b33f86afa5ca3ecaa4c70e4155a97e413e4d6e5da9ec0c5cb19a876241e599e5 SHA512 11684b6df15b6b74b8674ebf2c2bb950d1e52b83f90478638e85dd11a163dc7c62ae888bc4c1c29e89179e0c47fdccc26bee2817d64eb3ff926b2d3e648c351c
28 DIST node-v12.22.5.tar.xz 23654908 BLAKE2B ca4f304e31f091ae656142035851d6e4427d8b2ddd2a69506dec96efbb1269a19a08e9ab8d44dfe10f8429bc239e4102f3f030adb25e9c41901c7d94b53e88c8 SHA512 80f3c673a1f2af7fffd6aaa556c06b8225034c8413e1a738c19d491aff1b3e6ed388df66ecbff88e4bfbefe1013dac7e3beb301456c2099b6a954ba468b21883
29 DIST node-v12.22.6.tar.xz 23664904 BLAKE2B 04dd4fd4cbe39642a1c3dd8639a4d9e3362055f56bc2565303d0095cda1655033ba4e0ce5a969647d2be73df13ddbcccc4907825a94a41b45c0723b3c02ca980 SHA512 d107f1ff7073d2db9f0198f14b0523870e9b262c71055de2e03fba54f87bc98a57dad43d902c0b349957df21de71dc066133d4831eb7eb07f4e548d0ac724fb2
30 -DIST node-v14.16.1.tar.xz 33297064 BLAKE2B 0927434c63cd248e90a4002b50c7a0fd68a5527a4cd7424b451840ddf0c403ba452979b195e598cc3b323e24233248a74a1274519ce8cd3a2f4e71dc7a8f3dcb SHA512 d4f5fbab69592ae555613b2186090b85a458d2211b6035989aee2617bfd0f6768ca767ec45ce12756a9c452d00af7237edee3b1ae526049e9fcd01f8f67680c0
31 -DIST node-v14.17.3.tar.xz 33585080 BLAKE2B 37267c9da2d773dbbe95f7378f5b0c2b0dc397b17850be325f9fec637c6745dede4ca4136ba4bf109d72d8982ee985f1e077cc706165f1be2e3dc3053edfe229 SHA512 c6096715299f155b96df873976da91e854da7e99cde635cdb65d5c962abc5283dac86b8ddce4f5a9f7498f9793ff08943645b5e5b0b23395dfe035f7295218bb
32 DIST node-v14.17.5.tar.xz 33585724 BLAKE2B cf79397caad8c81e4096f344f9fdb88d8ecea44b97fe208256dfd4afb750ecdf52142a2dc0430285b9d5117bdd43fa5ce42b4418926eec4d2c7f0a5f5d1a1539 SHA512 9d62c8946d05862d96a13a71b241a097b9f592a9e5f7362c81d8f3c74e7c5546a308b4c74bef34a66cafeef5d1a87d9d3e5ae8bb87d470c1ecf5abb8de0dedb5
33 DIST node-v14.17.6.tar.xz 33606464 BLAKE2B c2c449e5eaf8214d7ed4bfab8db0208034cee1d08ef0e1fca478c30fc5cf95be037eb141080dbcfbe4fc58ef734457747dcbd0fe585a0536f9c0bec495435f25 SHA512 581c5698112426042fbf54fa793e56a30cae0c54ce8f23af6ac20d73c69a4f1166c5410f357c5a7b0409a773f99e3b9291e4afffd53b3c0e00569725dc4c47d3
34 DIST node-v16.6.2.tar.xz 33713996 BLAKE2B a4974da7004779179bd3bb0f99bb703f789a89c3ffcf194e83ed4ad07b005cc4ff23dd16f69ed1fee5f2d142e9cd813acb9687021a8cf1a64475093928b4e107 SHA512 978fd8204f7512a42256b0b50d674280c418595970a1327f3197fcde1f8787816c243611c24cada8c979352d77452393481600b96e66c72c294bcd04cf33f45f
35
36 diff --git a/net-libs/nodejs/files/nodejs-12.22.1-v8_icu69.patch b/net-libs/nodejs/files/nodejs-12.22.1-v8_icu69.patch
37 deleted file mode 100644
38 index bd6d5c64b02..00000000000
39 --- a/net-libs/nodejs/files/nodejs-12.22.1-v8_icu69.patch
40 +++ /dev/null
41 @@ -1,85 +0,0 @@
42 -Port of the Chromium commit 035c305ce7761f51328b45f1bd83e26aef267c9d to node-v12.
43 -Original commit message follows.
44 -
45 -Author: Frank Tang <ftang@××××××××.org>
46 -AuthorDate: 2020-10-15 22:44:27 -0700
47 -Commit: Commit Bot <commit-bot@××××××××.org>
48 -CommitDate: 2020-10-20 02:08:13 +0000
49 -[Intl] call new ListFormatter::createInstance
50 -The one we currently using is now marked as internal and to be removed
51 -for 68. Migrating to the style which already avaiable in ICU 67-1.
52 -
53 ---- a/deps/v8/src/objects/js-list-format.cc
54 -+++ b/deps/v8/src/objects/js-list-format.cc
55 -@@ -29,46 +29,27 @@
56 - namespace internal {
57 -
58 - namespace {
59 --const char* kStandard = "standard";
60 --const char* kOr = "or";
61 --const char* kUnit = "unit";
62 --const char* kStandardShort = "standard-short";
63 --const char* kOrShort = "or-short";
64 --const char* kUnitShort = "unit-short";
65 --const char* kStandardNarrow = "standard-narrow";
66 --const char* kOrNarrow = "or-narrow";
67 --const char* kUnitNarrow = "unit-narrow";
68 -
69 --const char* GetIcuStyleString(JSListFormat::Style style,
70 -- JSListFormat::Type type) {
71 -+UListFormatterWidth GetIcuWidth(JSListFormat::Style style) {
72 -+ switch (style) {
73 -+ case JSListFormat::Style::LONG:
74 -+ return ULISTFMT_WIDTH_WIDE;
75 -+ case JSListFormat::Style::SHORT:
76 -+ return ULISTFMT_WIDTH_SHORT;
77 -+ case JSListFormat::Style::NARROW:
78 -+ return ULISTFMT_WIDTH_NARROW;
79 -+ }
80 -+ UNREACHABLE();
81 -+}
82 -+
83 -+UListFormatterType GetIcuType(JSListFormat::Type type) {
84 - switch (type) {
85 - case JSListFormat::Type::CONJUNCTION:
86 -- switch (style) {
87 -- case JSListFormat::Style::LONG:
88 -- return kStandard;
89 -- case JSListFormat::Style::SHORT:
90 -- return kStandardShort;
91 -- case JSListFormat::Style::NARROW:
92 -- return kStandardNarrow;
93 -- }
94 -+ return ULISTFMT_TYPE_AND;
95 - case JSListFormat::Type::DISJUNCTION:
96 -- switch (style) {
97 -- case JSListFormat::Style::LONG:
98 -- return kOr;
99 -- case JSListFormat::Style::SHORT:
100 -- return kOrShort;
101 -- case JSListFormat::Style::NARROW:
102 -- return kOrNarrow;
103 -- }
104 -+ return ULISTFMT_TYPE_OR;
105 - case JSListFormat::Type::UNIT:
106 -- switch (style) {
107 -- case JSListFormat::Style::LONG:
108 -- return kUnit;
109 -- case JSListFormat::Style::SHORT:
110 -- return kUnitShort;
111 -- case JSListFormat::Style::NARROW:
112 -- return kUnitNarrow;
113 -- }
114 -+ return ULISTFMT_TYPE_UNITS;
115 - }
116 - UNREACHABLE();
117 - }
118 -@@ -170,7 +151,7 @@
119 - icu::Locale icu_locale = r.icu_locale;
120 - UErrorCode status = U_ZERO_ERROR;
121 - icu::ListFormatter* formatter = icu::ListFormatter::createInstance(
122 -- icu_locale, GetIcuStyleString(style_enum, type_enum), status);
123 -+ icu_locale, GetIcuType(type_enum), GetIcuWidth(style_enum), status);
124 - if (U_FAILURE(status)) {
125 - delete formatter;
126 - FATAL("Failed to create ICU list formatter, are ICU data files missing?");
127
128 diff --git a/net-libs/nodejs/files/nodejs-14.16.1-v8_icu69.patch b/net-libs/nodejs/files/nodejs-14.16.1-v8_icu69.patch
129 deleted file mode 100644
130 index d1e204f0c5d..00000000000
131 --- a/net-libs/nodejs/files/nodejs-14.16.1-v8_icu69.patch
132 +++ /dev/null
133 @@ -1,84 +0,0 @@
134 -Port of the Chromium commit 035c305ce7761f51328b45f1bd83e26aef267c9d to node-v14.
135 -Original commit message follows.
136 -
137 -Author: Frank Tang <ftang@××××××××.org>
138 -AuthorDate: 2020-10-15 22:44:27 -0700
139 -Commit: Commit Bot <commit-bot@××××××××.org>
140 -CommitDate: 2020-10-20 02:08:13 +0000
141 -[Intl] call new ListFormatter::createInstance
142 -The one we currently using is now marked as internal and to be removed
143 -for 68. Migrating to the style which already avaiable in ICU 67-1.
144 -
145 ---- a/deps/v8/src/objects/js-list-format.cc
146 -+++ b/deps/v8/src/objects/js-list-format.cc
147 -@@ -29,46 +29,26 @@
148 - namespace internal {
149 -
150 - namespace {
151 --const char* kStandard = "standard";
152 --const char* kOr = "or";
153 --const char* kUnit = "unit";
154 --const char* kStandardShort = "standard-short";
155 --const char* kOrShort = "or-short";
156 --const char* kUnitShort = "unit-short";
157 --const char* kStandardNarrow = "standard-narrow";
158 --const char* kOrNarrow = "or-narrow";
159 --const char* kUnitNarrow = "unit-narrow";
160 -+UListFormatterWidth GetIcuWidth(JSListFormat::Style style) {
161 -+ switch (style) {
162 -+ case JSListFormat::Style::LONG:
163 -+ return ULISTFMT_WIDTH_WIDE;
164 -+ case JSListFormat::Style::SHORT:
165 -+ return ULISTFMT_WIDTH_SHORT;
166 -+ case JSListFormat::Style::NARROW:
167 -+ return ULISTFMT_WIDTH_NARROW;
168 -+ }
169 -+ UNREACHABLE();
170 -+}
171 -
172 --const char* GetIcuStyleString(JSListFormat::Style style,
173 -- JSListFormat::Type type) {
174 -+UListFormatterType GetIcuType(JSListFormat::Type type) {
175 - switch (type) {
176 - case JSListFormat::Type::CONJUNCTION:
177 -- switch (style) {
178 -- case JSListFormat::Style::LONG:
179 -- return kStandard;
180 -- case JSListFormat::Style::SHORT:
181 -- return kStandardShort;
182 -- case JSListFormat::Style::NARROW:
183 -- return kStandardNarrow;
184 -- }
185 -+ return ULISTFMT_TYPE_AND;
186 - case JSListFormat::Type::DISJUNCTION:
187 -- switch (style) {
188 -- case JSListFormat::Style::LONG:
189 -- return kOr;
190 -- case JSListFormat::Style::SHORT:
191 -- return kOrShort;
192 -- case JSListFormat::Style::NARROW:
193 -- return kOrNarrow;
194 -- }
195 -+ return ULISTFMT_TYPE_OR;
196 - case JSListFormat::Type::UNIT:
197 -- switch (style) {
198 -- case JSListFormat::Style::LONG:
199 -- return kUnit;
200 -- case JSListFormat::Style::SHORT:
201 -- return kUnitShort;
202 -- case JSListFormat::Style::NARROW:
203 -- return kUnitNarrow;
204 -- }
205 -+ return ULISTFMT_TYPE_UNITS;
206 - }
207 - UNREACHABLE();
208 - }
209 -@@ -143,7 +123,7 @@
210 - icu::Locale icu_locale = r.icu_locale;
211 - UErrorCode status = U_ZERO_ERROR;
212 - icu::ListFormatter* formatter = icu::ListFormatter::createInstance(
213 -- icu_locale, GetIcuStyleString(style_enum, type_enum), status);
214 -+ icu_locale, GetIcuType(type_enum), GetIcuWidth(style_enum), status);
215 - if (U_FAILURE(status) || formatter == nullptr) {
216 - delete formatter;
217 - THROW_NEW_ERROR(isolate, NewRangeError(MessageTemplate::kIcuError),
218
219 diff --git a/net-libs/nodejs/nodejs-12.22.1-r1.ebuild b/net-libs/nodejs/nodejs-12.22.1-r1.ebuild
220 deleted file mode 100644
221 index eeda8119a76..00000000000
222 --- a/net-libs/nodejs/nodejs-12.22.1-r1.ebuild
223 +++ /dev/null
224 @@ -1,224 +0,0 @@
225 -# Copyright 1999-2021 Gentoo Authors
226 -# Distributed under the terms of the GNU General Public License v2
227 -
228 -EAPI=7
229 -
230 -PYTHON_COMPAT=( python3_{8..9} )
231 -PYTHON_REQ_USE="threads(+)"
232 -
233 -inherit bash-completion-r1 flag-o-matic pax-utils python-any-r1 toolchain-funcs xdg-utils
234 -
235 -DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine"
236 -HOMEPAGE="https://nodejs.org/"
237 -SRC_URI="
238 - https://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz
239 -"
240 -
241 -LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
242 -SLOT="0/$(ver_cut 1)"
243 -KEYWORDS="arm64 ppc64 x86"
244 -IUSE="cpu_flags_x86_sse2 debug doc icu inspector +npm +snapshot +ssl +system-ssl systemtap test"
245 -REQUIRED_USE="
246 - inspector? ( icu ssl )
247 - npm? ( ssl )
248 - system-ssl? ( ssl )
249 -"
250 -
251 -RDEPEND="
252 - >=app-arch/brotli-1.0.9:=
253 - >=dev-libs/libuv-1.39.0:=
254 - >=net-dns/c-ares-1.16.0:=
255 - >=net-libs/http-parser-2.9.3:=
256 - >=net-libs/nghttp2-1.40.0:=
257 - sys-libs/zlib
258 - icu? ( >=dev-libs/icu-64.2:= )
259 - system-ssl? (
260 - >=dev-libs/openssl-1.1.1:0=
261 - <dev-libs/openssl-3.0.0_beta1:0=
262 - )
263 -"
264 -BDEPEND="
265 - ${PYTHON_DEPS}
266 - sys-apps/coreutils
267 - virtual/pkgconfig
268 - systemtap? ( dev-util/systemtap )
269 - test? ( net-misc/curl )
270 -"
271 -DEPEND="
272 - ${RDEPEND}
273 -"
274 -PATCHES=(
275 - "${FILESDIR}"/${PN}-10.3.0-global-npm-config.patch
276 - "${FILESDIR}"/${PN}-12.20.1-fix_ppc64_crashes.patch
277 - "${FILESDIR}"/${PN}-12.22.1-v8_icu69.patch
278 - "${FILESDIR}"/${PN}-99999999-llhttp.patch
279 -)
280 -RESTRICT="test"
281 -S="${WORKDIR}/node-v${PV}"
282 -
283 -pkg_pretend() {
284 - (use x86 && ! use cpu_flags_x86_sse2) && \
285 - die "Your CPU doesn't support the required SSE2 instruction."
286 -
287 - ( [[ ${MERGE_TYPE} != "binary" ]] && ! test-flag-CXX -std=c++11 ) && \
288 - die "Your compiler doesn't support C++11. Use GCC 4.8, Clang 3.3 or newer."
289 -}
290 -
291 -src_prepare() {
292 - tc-export CC CXX PKG_CONFIG
293 - export V=1
294 - export BUILDTYPE=Release
295 -
296 - # fix compilation on Darwin
297 - # https://code.google.com/p/gyp/issues/detail?id=260
298 - sed -i -e "/append('-arch/d" tools/gyp/pylib/gyp/xcode_emulation.py || die
299 -
300 - # less verbose install output (stating the same as portage, basically)
301 - sed -i -e "/print/d" tools/install.py || die
302 -
303 - # proper libdir, hat tip @ryanpcmcquen https://github.com/iojs/io.js/issues/504
304 - local LIBDIR=$(get_libdir)
305 - sed -i -e "s|lib/|${LIBDIR}/|g" tools/install.py || die
306 - sed -i -e "s/'lib'/'${LIBDIR}'/" deps/npm/lib/npm.js || die
307 -
308 - # Avoid writing a depfile, not useful
309 - sed -i -e "/DEPFLAGS =/d" tools/gyp/pylib/gyp/generator/make.py || die
310 -
311 - sed -i -e "/'-O3'/d" common.gypi node.gypi || die
312 -
313 - # Avoid a test that I've only been able to reproduce from emerge. It doesnt
314 - # seem sandbox related either (invoking it from a sandbox works fine).
315 - # The issue is that no stdin handle is openened when asked for one.
316 - # It doesn't really belong upstream , so it'll just be removed until someone
317 - # with more gentoo-knowledge than me (jbergstroem) figures it out.
318 - rm test/parallel/test-stdout-close-unref.js || die
319 -
320 - # debug builds. change install path, remove optimisations and override buildtype
321 - if use debug; then
322 - sed -i -e "s|out/Release/|out/Debug/|g" tools/install.py || die
323 - BUILDTYPE=Debug
324 - fi
325 -
326 - default
327 -}
328 -
329 -src_configure() {
330 - xdg_environment_reset
331 -
332 - local myconf=(
333 - --shared-brotli
334 - --shared-cares
335 - --shared-http-parser
336 - --shared-libuv
337 - --shared-nghttp2
338 - --shared-zlib
339 - )
340 - use debug && myconf+=( --debug )
341 - use icu && myconf+=( --with-intl=system-icu ) || myconf+=( --with-intl=none )
342 - use inspector || myconf+=( --without-inspector )
343 - use npm || myconf+=( --without-npm )
344 - use snapshot || myconf+=( --without-node-snapshot )
345 - if use ssl; then
346 - use system-ssl && myconf+=( --shared-openssl --openssl-use-def-ca-store )
347 - else
348 - myconf+=( --without-ssl )
349 - fi
350 -
351 - local myarch=""
352 - case ${ABI} in
353 - amd64) myarch="x64";;
354 - arm) myarch="arm";;
355 - arm64) myarch="arm64";;
356 - ppc64) myarch="ppc64";;
357 - x32) myarch="x32";;
358 - x86) myarch="ia32";;
359 - *) myarch="${ABI}";;
360 - esac
361 -
362 - GYP_DEFINES="linux_use_gold_flags=0
363 - linux_use_bundled_binutils=0
364 - linux_use_bundled_gold=0" \
365 - "${EPYTHON}" configure.py \
366 - --prefix="${EPREFIX}"/usr \
367 - --dest-cpu=${myarch} \
368 - $(use_with systemtap dtrace) \
369 - "${myconf[@]}" || die
370 -}
371 -
372 -src_compile() {
373 - emake -C out mksnapshot
374 - pax-mark m "out/${BUILDTYPE}/mksnapshot"
375 - emake -C out
376 -}
377 -
378 -src_install() {
379 - local LIBDIR="${ED}/usr/$(get_libdir)"
380 - default
381 -
382 - pax-mark -m "${ED}"/usr/bin/node
383 -
384 - # set up a symlink structure that node-gyp expects..
385 - dodir /usr/include/node/deps/{v8,uv}
386 - dosym . /usr/include/node/src
387 - for var in deps/{uv,v8}/include; do
388 - dosym ../.. /usr/include/node/${var}
389 - done
390 -
391 - if use doc; then
392 - docinto html
393 - dodoc -r "${S}"/doc/*
394 - fi
395 -
396 - if use npm; then
397 - dodir /etc/npm
398 -
399 - # Install bash completion for `npm`
400 - # We need to temporarily replace default config path since
401 - # npm otherwise tries to write outside of the sandbox
402 - local npm_config="usr/$(get_libdir)/node_modules/npm/lib/config/core.js"
403 - sed -i -e "s|'/etc'|'${ED}/etc'|g" "${ED}/${npm_config}" || die
404 - local tmp_npm_completion_file="$(TMPDIR="${T}" mktemp -t npm.XXXXXXXXXX)"
405 - "${ED}/usr/bin/npm" completion > "${tmp_npm_completion_file}"
406 - newbashcomp "${tmp_npm_completion_file}" npm
407 - sed -i -e "s|'${ED}/etc'|'/etc'|g" "${ED}/${npm_config}" || die
408 -
409 - # Move man pages
410 - doman "${LIBDIR}"/node_modules/npm/man/man{1,5,7}/*
411 -
412 - # Clean up
413 - rm "${LIBDIR}"/node_modules/npm/{.mailmap,.npmignore,Makefile} || die
414 - rm -rf "${LIBDIR}"/node_modules/npm/{doc,html,man} || die
415 -
416 - local find_exp="-or -name"
417 - local find_name=()
418 - for match in "AUTHORS*" "CHANGELOG*" "CONTRIBUT*" "README*" \
419 - ".travis.yml" ".eslint*" ".wercker.yml" ".npmignore" \
420 - "*.md" "*.markdown" "*.bat" "*.cmd"; do
421 - find_name+=( ${find_exp} "${match}" )
422 - done
423 -
424 - # Remove various development and/or inappropriate files and
425 - # useless docs of dependend packages.
426 - find "${LIBDIR}"/node_modules \
427 - \( -type d -name examples \) -or \( -type f \( \
428 - -iname "LICEN?E*" \
429 - "${find_name[@]}" \
430 - \) \) -exec rm -rf "{}" \;
431 - fi
432 -
433 - mv "${ED}"/usr/share/doc/node "${ED}"/usr/share/doc/${PF} || die
434 -}
435 -
436 -src_test() {
437 - out/${BUILDTYPE}/cctest || die
438 - "${PYTHON}" tools/test.py --mode=${BUILDTYPE,,} -J message parallel sequential || die
439 -}
440 -
441 -pkg_postinst() {
442 - elog "The global npm config lives in /etc/npm. This deviates slightly"
443 - elog "from upstream which otherwise would have it live in /usr/etc/."
444 - elog ""
445 - elog "Protip: When using node-gyp to install native modules, you can"
446 - elog "avoid having to download extras by doing the following:"
447 - elog "$ node-gyp --nodedir /usr/include/node <command>"
448 -}
449
450 diff --git a/net-libs/nodejs/nodejs-12.22.3-r1.ebuild b/net-libs/nodejs/nodejs-12.22.3-r1.ebuild
451 deleted file mode 100644
452 index c9edbd626d2..00000000000
453 --- a/net-libs/nodejs/nodejs-12.22.3-r1.ebuild
454 +++ /dev/null
455 @@ -1,249 +0,0 @@
456 -# Copyright 1999-2021 Gentoo Authors
457 -# Distributed under the terms of the GNU General Public License v2
458 -
459 -EAPI=7
460 -
461 -PYTHON_COMPAT=( python3_{8..10} )
462 -PYTHON_REQ_USE="threads(+)"
463 -
464 -inherit bash-completion-r1 flag-o-matic pax-utils python-any-r1 toolchain-funcs xdg-utils
465 -
466 -DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine"
467 -HOMEPAGE="https://nodejs.org/"
468 -LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
469 -
470 -if [[ ${PV} == *9999 ]]; then
471 - inherit git-r3
472 - EGIT_REPO_URI="https://github.com/nodejs/node"
473 - SLOT="0"
474 -else
475 - SRC_URI="https://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz"
476 - SLOT="0/$(ver_cut 1)"
477 - KEYWORDS="arm"
478 - S="${WORKDIR}/node-v${PV}"
479 -fi
480 -
481 -IUSE="cpu_flags_x86_sse2 debug doc icu inspector lto +npm +snapshot +ssl +system-ssl systemtap test"
482 -REQUIRED_USE="
483 - inspector? ( icu ssl )
484 - npm? ( ssl )
485 - system-ssl? ( ssl )
486 -"
487 -
488 -RESTRICT="!test? ( test )"
489 -
490 -RDEPEND="
491 - >=app-arch/brotli-1.0.9:=
492 - >=dev-libs/libuv-1.39.0:=
493 - >=net-dns/c-ares-1.16.0:=
494 - >=net-libs/http-parser-2.9.3:=
495 - >=net-libs/nghttp2-1.40.0:=
496 - sys-libs/zlib
497 - icu? ( >=dev-libs/icu-64.2:= )
498 - system-ssl? (
499 - >=dev-libs/openssl-1.1.1:0=
500 - <dev-libs/openssl-3.0.0_beta1:0=
501 - )
502 -"
503 -BDEPEND="
504 - ${PYTHON_DEPS}
505 - sys-apps/coreutils
506 - virtual/pkgconfig
507 - systemtap? ( dev-util/systemtap )
508 - test? ( net-misc/curl )
509 -"
510 -DEPEND="
511 - ${RDEPEND}
512 -"
513 -PATCHES=(
514 - "${FILESDIR}"/${PN}-10.3.0-global-npm-config.patch
515 - "${FILESDIR}"/${PN}-12.20.1-fix_ppc64_crashes.patch
516 - "${FILESDIR}"/${PN}-12.22.1-jinja_collections_abc.patch
517 - "${FILESDIR}"/${PN}-12.22.1-uvwasi_shared_libuv.patch
518 - "${FILESDIR}"/${PN}-12.22.1-v8_icu69.patch
519 - "${FILESDIR}"/${PN}-99999999-llhttp.patch
520 -)
521 -
522 -pkg_pretend() {
523 - (use x86 && ! use cpu_flags_x86_sse2) && \
524 - die "Your CPU doesn't support the required SSE2 instruction."
525 -
526 - if [[ ${MERGE_TYPE} != "binary" ]]; then
527 - if use lto; then
528 - if tc-is-gcc; then
529 - if [[ $(gcc-major-version) -ge 11 ]]; then
530 - # Bug #787158
531 - die "LTO builds of ${PN} using gcc-11+ currently fail tests and produce runtime errors. Either switch to gcc-10 or unset USE=lto for this ebuild"
532 - fi
533 - else
534 - # configure.py will abort on this later if we do not
535 - die "${PN} only supports LTO for gcc"
536 - fi
537 - fi
538 - fi
539 -}
540 -
541 -src_prepare() {
542 - tc-export CC CXX PKG_CONFIG
543 - export V=1
544 - export BUILDTYPE=Release
545 -
546 - # fix compilation on Darwin
547 - # https://code.google.com/p/gyp/issues/detail?id=260
548 - sed -i -e "/append('-arch/d" tools/gyp/pylib/gyp/xcode_emulation.py || die
549 -
550 - # less verbose install output (stating the same as portage, basically)
551 - sed -i -e "/print/d" tools/install.py || die
552 -
553 - # proper libdir, hat tip @ryanpcmcquen https://github.com/iojs/io.js/issues/504
554 - local LIBDIR=$(get_libdir)
555 - sed -i -e "s|lib/|${LIBDIR}/|g" tools/install.py || die
556 - sed -i -e "s/'lib'/'${LIBDIR}'/" deps/npm/lib/npm.js || die
557 -
558 - # Avoid writing a depfile, not useful
559 - sed -i -e "/DEPFLAGS =/d" tools/gyp/pylib/gyp/generator/make.py || die
560 -
561 - sed -i -e "/'-O3'/d" common.gypi node.gypi || die
562 -
563 - # Known-to-fail test of a deprecated, legacy HTTP parser. Just don't bother.
564 - rm -f test/parallel/test-http-transfer-encoding-smuggling-legacy.js
565 -
566 - # debug builds. change install path, remove optimisations and override buildtype
567 - if use debug; then
568 - sed -i -e "s|out/Release/|out/Debug/|g" tools/install.py || die
569 - BUILDTYPE=Debug
570 - fi
571 -
572 - default
573 -}
574 -
575 -src_configure() {
576 - xdg_environment_reset
577 -
578 - # LTO compiler flags are handled by configure.py itself
579 - filter-flags '-flto*'
580 -
581 - local myconf=(
582 - --shared-brotli
583 - --shared-cares
584 - --shared-http-parser
585 - --shared-libuv
586 - --shared-nghttp2
587 - --shared-zlib
588 - )
589 - use debug && myconf+=( --debug )
590 - use lto && myconf+=( --enable-lto )
591 - use icu && myconf+=( --with-intl=system-icu ) || myconf+=( --with-intl=none )
592 - use inspector || myconf+=( --without-inspector )
593 - use npm || myconf+=( --without-npm )
594 - use snapshot || myconf+=( --without-node-snapshot )
595 - if use ssl; then
596 - use system-ssl && myconf+=( --shared-openssl --openssl-use-def-ca-store )
597 - else
598 - myconf+=( --without-ssl )
599 - fi
600 -
601 - local myarch=""
602 - case ${ABI} in
603 - amd64) myarch="x64";;
604 - arm) myarch="arm";;
605 - arm64) myarch="arm64";;
606 - ppc64) myarch="ppc64";;
607 - x32) myarch="x32";;
608 - x86) myarch="ia32";;
609 - *) myarch="${ABI}";;
610 - esac
611 -
612 - GYP_DEFINES="linux_use_gold_flags=0
613 - linux_use_bundled_binutils=0
614 - linux_use_bundled_gold=0" \
615 - "${EPYTHON}" configure.py \
616 - --prefix="${EPREFIX}"/usr \
617 - --dest-cpu=${myarch} \
618 - $(use_with systemtap dtrace) \
619 - "${myconf[@]}" || die
620 -}
621 -
622 -src_compile() {
623 - emake -C out mksnapshot
624 - pax-mark m "out/${BUILDTYPE}/mksnapshot"
625 - emake -C out
626 -}
627 -
628 -src_install() {
629 - local LIBDIR="${ED}/usr/$(get_libdir)"
630 - default
631 -
632 - pax-mark -m "${ED}"/usr/bin/node
633 -
634 - # set up a symlink structure that node-gyp expects..
635 - dodir /usr/include/node/deps/{v8,uv}
636 - dosym . /usr/include/node/src
637 - for var in deps/{uv,v8}/include; do
638 - dosym ../.. /usr/include/node/${var}
639 - done
640 -
641 - if use doc; then
642 - docinto html
643 - dodoc -r "${S}"/doc/*
644 - fi
645 -
646 - if use npm; then
647 - dodir /etc/npm
648 -
649 - # Install bash completion for `npm`
650 - # We need to temporarily replace default config path since
651 - # npm otherwise tries to write outside of the sandbox
652 - local npm_config="usr/$(get_libdir)/node_modules/npm/lib/config/core.js"
653 - sed -i -e "s|'/etc'|'${ED}/etc'|g" "${ED}/${npm_config}" || die
654 - local tmp_npm_completion_file="$(TMPDIR="${T}" mktemp -t npm.XXXXXXXXXX)"
655 - "${ED}/usr/bin/npm" completion > "${tmp_npm_completion_file}"
656 - newbashcomp "${tmp_npm_completion_file}" npm
657 - sed -i -e "s|'${ED}/etc'|'/etc'|g" "${ED}/${npm_config}" || die
658 -
659 - # Move man pages
660 - doman "${LIBDIR}"/node_modules/npm/man/man{1,5,7}/*
661 -
662 - # Clean up
663 - rm -f "${LIBDIR}"/node_modules/npm/{.mailmap,.npmignore,Makefile}
664 - rm -rf "${LIBDIR}"/node_modules/npm/{doc,html,man}
665 -
666 - local find_exp="-or -name"
667 - local find_name=()
668 - for match in "AUTHORS*" "CHANGELOG*" "CONTRIBUT*" "README*" \
669 - ".travis.yml" ".eslint*" ".wercker.yml" ".npmignore" \
670 - "*.md" "*.markdown" "*.bat" "*.cmd"; do
671 - find_name+=( ${find_exp} "${match}" )
672 - done
673 -
674 - # Remove various development and/or inappropriate files and
675 - # useless docs of dependend packages.
676 - find "${LIBDIR}"/node_modules \
677 - \( -type d -name examples \) -or \( -type f \( \
678 - -iname "LICEN?E*" \
679 - "${find_name[@]}" \
680 - \) \) -exec rm -rf "{}" \;
681 - fi
682 -
683 - mv "${ED}"/usr/share/doc/node "${ED}"/usr/share/doc/${PF} || die
684 -}
685 -
686 -src_test() {
687 - # parallel/test-fs-mkdir is known to fail with FEATURES=usersandbox
688 - if has usersandbox ${FEATURES}; then
689 - ewarn "You are emerging ${P} with 'usersandbox' enabled." \
690 - "Expect some test failures or emerge with 'FEATURES=-usersandbox'!"
691 - fi
692 -
693 - out/${BUILDTYPE}/cctest || die
694 - "${PYTHON}" tools/test.py --mode=${BUILDTYPE,,} --flaky-tests=dontcare -J message parallel sequential || die
695 -}
696 -
697 -pkg_postinst() {
698 - elog "The global npm config lives in /etc/npm. This deviates slightly"
699 - elog "from upstream which otherwise would have it live in /usr/etc/."
700 - elog ""
701 - elog "Protip: When using node-gyp to install native modules, you can"
702 - elog "avoid having to download extras by doing the following:"
703 - elog "$ node-gyp --nodedir /usr/include/node <command>"
704 -}
705
706 diff --git a/net-libs/nodejs/nodejs-14.16.1-r1.ebuild b/net-libs/nodejs/nodejs-14.16.1-r1.ebuild
707 deleted file mode 100644
708 index b65beeceecb..00000000000
709 --- a/net-libs/nodejs/nodejs-14.16.1-r1.ebuild
710 +++ /dev/null
711 @@ -1,213 +0,0 @@
712 -# Copyright 1999-2021 Gentoo Authors
713 -# Distributed under the terms of the GNU General Public License v2
714 -
715 -EAPI=7
716 -
717 -PYTHON_COMPAT=( python3_{8..9} )
718 -PYTHON_REQ_USE="threads(+)"
719 -
720 -inherit bash-completion-r1 flag-o-matic pax-utils python-any-r1 toolchain-funcs xdg-utils
721 -
722 -DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine"
723 -HOMEPAGE="https://nodejs.org/"
724 -SRC_URI="https://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz"
725 -
726 -LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
727 -SLOT="0/$(ver_cut 1)"
728 -KEYWORDS="arm64 ppc64 x86"
729 -
730 -IUSE="cpu_flags_x86_sse2 debug doc +icu inspector +npm pax-kernel +snapshot +ssl system-icu +system-ssl systemtap test"
731 -REQUIRED_USE="inspector? ( icu ssl )
732 - npm? ( ssl )
733 - system-icu? ( icu )
734 - system-ssl? ( ssl )"
735 -
736 -# FIXME: test-fs-mkdir fails with "no such file or directory". Investigate.
737 -RESTRICT="test"
738 -
739 -RDEPEND=">=app-arch/brotli-1.0.9:=
740 - >=dev-libs/libuv-1.40.0:=
741 - >=net-dns/c-ares-1.16.1:=
742 - >=net-libs/nghttp2-1.41.0:=
743 - sys-libs/zlib
744 - system-icu? ( >=dev-libs/icu-67:= )
745 - system-ssl? (
746 - >=dev-libs/openssl-1.1.1:0=
747 - <dev-libs/openssl-3.0.0_beta1:0=
748 - )"
749 -BDEPEND="${PYTHON_DEPS}
750 - sys-apps/coreutils
751 - virtual/pkgconfig
752 - systemtap? ( dev-util/systemtap )
753 - test? ( net-misc/curl )
754 - pax-kernel? ( sys-apps/elfix )"
755 -DEPEND="${RDEPEND}"
756 -
757 -PATCHES=(
758 - "${FILESDIR}"/${PN}-10.3.0-global-npm-config.patch
759 - "${FILESDIR}"/${PN}-14.15.0-fix_ppc64_crashes.patch
760 - "${FILESDIR}"/${PN}-14.16.1-v8_icu69.patch
761 -)
762 -
763 -S="${WORKDIR}/node-v${PV}"
764 -
765 -pkg_pretend() {
766 - (use x86 && ! use cpu_flags_x86_sse2) && \
767 - die "Your CPU doesn't support the required SSE2 instruction."
768 -}
769 -
770 -src_prepare() {
771 - tc-export AR CC CXX PKG_CONFIG
772 - export V=1
773 - export BUILDTYPE=Release
774 -
775 - # fix compilation on Darwin
776 - # https://code.google.com/p/gyp/issues/detail?id=260
777 - sed -i -e "/append('-arch/d" tools/gyp/pylib/gyp/xcode_emulation.py || die
778 -
779 - # less verbose install output (stating the same as portage, basically)
780 - sed -i -e "/print/d" tools/install.py || die
781 -
782 - # proper libdir, hat tip @ryanpcmcquen https://github.com/iojs/io.js/issues/504
783 - local LIBDIR=$(get_libdir)
784 - sed -i -e "s|lib/|${LIBDIR}/|g" tools/install.py || die
785 - sed -i -e "s/'lib'/'${LIBDIR}'/" deps/npm/lib/npm.js || die
786 -
787 - # Avoid writing a depfile, not useful
788 - sed -i -e "/DEPFLAGS =/d" tools/gyp/pylib/gyp/generator/make.py || die
789 -
790 - sed -i -e "/'-O3'/d" common.gypi node.gypi || die
791 -
792 - # Avoid a test that I've only been able to reproduce from emerge. It doesnt
793 - # seem sandbox related either (invoking it from a sandbox works fine).
794 - # The issue is that no stdin handle is openened when asked for one.
795 - # It doesn't really belong upstream , so it'll just be removed until someone
796 - # with more gentoo-knowledge than me (jbergstroem) figures it out.
797 - rm test/parallel/test-stdout-close-unref.js || die
798 -
799 - # debug builds. change install path, remove optimisations and override buildtype
800 - if use debug; then
801 - sed -i -e "s|out/Release/|out/Debug/|g" tools/install.py || die
802 - BUILDTYPE=Debug
803 - fi
804 -
805 - # We need to disable mprotect on two files when it builds Bug 694100.
806 - use pax-kernel && PATCHES+=( "${FILESDIR}"/${PN}-13.8.0-paxmarking.patch )
807 -
808 - default
809 -}
810 -
811 -src_configure() {
812 - xdg_environment_reset
813 -
814 - local myconf=(
815 - --shared-brotli
816 - --shared-cares
817 - --shared-libuv
818 - --shared-nghttp2
819 - --shared-zlib
820 - )
821 - use debug && myconf+=( --debug )
822 - if use system-icu; then
823 - myconf+=( --with-intl=system-icu )
824 - elif use icu; then
825 - myconf+=( --with-intl=full-icu )
826 - else
827 - myconf+=( --with-intl=none )
828 - fi
829 - use inspector || myconf+=( --without-inspector )
830 - use npm || myconf+=( --without-npm )
831 - use snapshot || myconf+=( --without-node-snapshot )
832 - if use ssl; then
833 - use system-ssl && myconf+=( --shared-openssl --openssl-use-def-ca-store )
834 - else
835 - myconf+=( --without-ssl )
836 - fi
837 -
838 - local myarch=""
839 - case ${ABI} in
840 - amd64) myarch="x64";;
841 - arm) myarch="arm";;
842 - arm64) myarch="arm64";;
843 - ppc64) myarch="ppc64";;
844 - x32) myarch="x32";;
845 - x86) myarch="ia32";;
846 - *) myarch="${ABI}";;
847 - esac
848 -
849 - GYP_DEFINES="linux_use_gold_flags=0
850 - linux_use_bundled_binutils=0
851 - linux_use_bundled_gold=0" \
852 - "${EPYTHON}" configure.py \
853 - --prefix="${EPREFIX}"/usr \
854 - --dest-cpu=${myarch} \
855 - $(use_with systemtap dtrace) \
856 - "${myconf[@]}" || die
857 -}
858 -
859 -src_compile() {
860 - emake -C out
861 -}
862 -
863 -src_install() {
864 - local LIBDIR="${ED}/usr/$(get_libdir)"
865 - default
866 -
867 - pax-mark -m "${ED}"/usr/bin/node
868 -
869 - # set up a symlink structure that node-gyp expects..
870 - dodir /usr/include/node/deps/{v8,uv}
871 - dosym . /usr/include/node/src
872 - for var in deps/{uv,v8}/include; do
873 - dosym ../.. /usr/include/node/${var}
874 - done
875 -
876 - if use doc; then
877 - docinto html
878 - dodoc -r "${S}"/doc/*
879 - fi
880 -
881 - if use npm; then
882 - dodir /etc/npm
883 -
884 - # Install bash completion for `npm`
885 - # We need to temporarily replace default config path since
886 - # npm otherwise tries to write outside of the sandbox
887 - local npm_config="usr/$(get_libdir)/node_modules/npm/lib/config/core.js"
888 - sed -i -e "s|'/etc'|'${ED}/etc'|g" "${ED}/${npm_config}" || die
889 - local tmp_npm_completion_file="$(TMPDIR="${T}" mktemp -t npm.XXXXXXXXXX)"
890 - "${ED}/usr/bin/npm" completion > "${tmp_npm_completion_file}"
891 - newbashcomp "${tmp_npm_completion_file}" npm
892 - sed -i -e "s|'${ED}/etc'|'/etc'|g" "${ED}/${npm_config}" || die
893 -
894 - # Move man pages
895 - doman "${LIBDIR}"/node_modules/npm/man/man{1,5,7}/*
896 -
897 - # Clean up
898 - rm "${LIBDIR}"/node_modules/npm/{.mailmap,.npmignore,Makefile} || die
899 - rm -rf "${LIBDIR}"/node_modules/npm/{doc,html,man} || die
900 -
901 - local find_exp="-or -name"
902 - local find_name=()
903 - for match in "AUTHORS*" "CHANGELOG*" "CONTRIBUT*" "README*" \
904 - ".travis.yml" ".eslint*" ".wercker.yml" ".npmignore" \
905 - "*.md" "*.markdown" "*.bat" "*.cmd"; do
906 - find_name+=( ${find_exp} "${match}" )
907 - done
908 -
909 - # Remove various development and/or inappropriate files and
910 - # useless docs of dependend packages.
911 - find "${LIBDIR}"/node_modules \
912 - \( -type d -name examples \) -or \( -type f \( \
913 - -iname "LICEN?E*" \
914 - "${find_name[@]}" \
915 - \) \) -exec rm -rf "{}" \;
916 - fi
917 -
918 - mv "${ED}"/usr/share/doc/node "${ED}"/usr/share/doc/${PF} || die
919 -}
920 -
921 -src_test() {
922 - out/${BUILDTYPE}/cctest || die
923 - "${EPYTHON}" tools/test.py --mode=${BUILDTYPE,,} -J message parallel sequential || die
924 -}
925
926 diff --git a/net-libs/nodejs/nodejs-14.17.3-r1.ebuild b/net-libs/nodejs/nodejs-14.17.3-r1.ebuild
927 deleted file mode 100644
928 index af0c97b42fc..00000000000
929 --- a/net-libs/nodejs/nodejs-14.17.3-r1.ebuild
930 +++ /dev/null
931 @@ -1,242 +0,0 @@
932 -# Copyright 1999-2021 Gentoo Authors
933 -# Distributed under the terms of the GNU General Public License v2
934 -
935 -EAPI=7
936 -
937 -PYTHON_COMPAT=( python3_{8..10} )
938 -PYTHON_REQ_USE="threads(+)"
939 -
940 -inherit bash-completion-r1 flag-o-matic pax-utils python-any-r1 toolchain-funcs xdg-utils
941 -
942 -DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine"
943 -HOMEPAGE="https://nodejs.org/"
944 -LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
945 -
946 -if [[ ${PV} == *9999 ]]; then
947 - inherit git-r3
948 - EGIT_REPO_URI="https://github.com/nodejs/node"
949 - SLOT="0"
950 -else
951 - SRC_URI="https://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz"
952 - SLOT="0/$(ver_cut 1)"
953 - KEYWORDS="arm"
954 - S="${WORKDIR}/node-v${PV}"
955 -fi
956 -
957 -IUSE="cpu_flags_x86_sse2 debug doc +icu inspector lto +npm pax-kernel +snapshot +ssl system-icu +system-ssl systemtap test"
958 -REQUIRED_USE="inspector? ( icu ssl )
959 - npm? ( ssl )
960 - system-icu? ( icu )
961 - system-ssl? ( ssl )"
962 -
963 -RESTRICT="!test? ( test )"
964 -
965 -RDEPEND=">=app-arch/brotli-1.0.9:=
966 - >=dev-libs/libuv-1.40.0:=
967 - >=net-dns/c-ares-1.16.1:=
968 - >=net-libs/nghttp2-1.41.0:=
969 - sys-libs/zlib
970 - system-icu? ( >=dev-libs/icu-67:= )
971 - system-ssl? (
972 - >=dev-libs/openssl-1.1.1:0=
973 - <dev-libs/openssl-3.0.0_beta1:0=
974 - )"
975 -BDEPEND="${PYTHON_DEPS}
976 - sys-apps/coreutils
977 - virtual/pkgconfig
978 - systemtap? ( dev-util/systemtap )
979 - test? ( net-misc/curl )
980 - pax-kernel? ( sys-apps/elfix )"
981 -DEPEND="${RDEPEND}"
982 -
983 -PATCHES=(
984 - "${FILESDIR}"/${PN}-10.3.0-global-npm-config.patch
985 - "${FILESDIR}"/${PN}-12.22.1-jinja_collections_abc.patch
986 - "${FILESDIR}"/${PN}-12.22.1-uvwasi_shared_libuv.patch
987 - "${FILESDIR}"/${PN}-14.15.0-fix_ppc64_crashes.patch
988 -)
989 -
990 -pkg_pretend() {
991 - (use x86 && ! use cpu_flags_x86_sse2) && \
992 - die "Your CPU doesn't support the required SSE2 instruction."
993 -
994 - if [[ ${MERGE_TYPE} != "binary" ]]; then
995 - if use lto; then
996 - if tc-is-gcc; then
997 - if [[ $(gcc-major-version) -ge 11 ]]; then
998 - # Bug #787158
999 - die "LTO builds of ${PN} using gcc-11+ currently fail tests and produce runtime errors. Either switch to gcc-10 or unset USE=lto for this ebuild"
1000 - fi
1001 - else
1002 - # configure.py will abort on this later if we do not
1003 - die "${PN} only supports LTO for gcc"
1004 - fi
1005 - fi
1006 - fi
1007 -}
1008 -
1009 -src_prepare() {
1010 - tc-export AR CC CXX PKG_CONFIG
1011 - export V=1
1012 - export BUILDTYPE=Release
1013 -
1014 - # fix compilation on Darwin
1015 - # https://code.google.com/p/gyp/issues/detail?id=260
1016 - sed -i -e "/append('-arch/d" tools/gyp/pylib/gyp/xcode_emulation.py || die
1017 -
1018 - # less verbose install output (stating the same as portage, basically)
1019 - sed -i -e "/print/d" tools/install.py || die
1020 -
1021 - # proper libdir, hat tip @ryanpcmcquen https://github.com/iojs/io.js/issues/504
1022 - local LIBDIR=$(get_libdir)
1023 - sed -i -e "s|lib/|${LIBDIR}/|g" tools/install.py || die
1024 - sed -i -e "s/'lib'/'${LIBDIR}'/" deps/npm/lib/npm.js || die
1025 -
1026 - # Avoid writing a depfile, not useful
1027 - sed -i -e "/DEPFLAGS =/d" tools/gyp/pylib/gyp/generator/make.py || die
1028 -
1029 - sed -i -e "/'-O3'/d" common.gypi node.gypi || die
1030 -
1031 - # debug builds. change install path, remove optimisations and override buildtype
1032 - if use debug; then
1033 - sed -i -e "s|out/Release/|out/Debug/|g" tools/install.py || die
1034 - BUILDTYPE=Debug
1035 - fi
1036 -
1037 - # We need to disable mprotect on two files when it builds Bug 694100.
1038 - use pax-kernel && PATCHES+=( "${FILESDIR}"/${PN}-13.8.0-paxmarking.patch )
1039 -
1040 - # All this test does is check if the npm CLI produces warnings of any sort,
1041 - # failing if it does. Overkill, much? Especially given one possible warning
1042 - # is that there is a newer version of npm available upstream (yes, it does
1043 - # use the network if available), thus making it a real possibility for this
1044 - # test to begin failing one day even though it was fine before.
1045 - rm -f test/parallel/test-release-npm.js
1046 -
1047 - default
1048 -}
1049 -
1050 -src_configure() {
1051 - xdg_environment_reset
1052 -
1053 - # LTO compiler flags are handled by configure.py itself
1054 - filter-flags '-flto*'
1055 -
1056 - local myconf=(
1057 - --shared-brotli
1058 - --shared-cares
1059 - --shared-libuv
1060 - --shared-nghttp2
1061 - --shared-zlib
1062 - )
1063 - use debug && myconf+=( --debug )
1064 - use lto && myconf+=( --enable-lto )
1065 - if use system-icu; then
1066 - myconf+=( --with-intl=system-icu )
1067 - elif use icu; then
1068 - myconf+=( --with-intl=full-icu )
1069 - else
1070 - myconf+=( --with-intl=none )
1071 - fi
1072 - use inspector || myconf+=( --without-inspector )
1073 - use npm || myconf+=( --without-npm )
1074 - use snapshot || myconf+=( --without-node-snapshot )
1075 - if use ssl; then
1076 - use system-ssl && myconf+=( --shared-openssl --openssl-use-def-ca-store )
1077 - else
1078 - myconf+=( --without-ssl )
1079 - fi
1080 -
1081 - local myarch=""
1082 - case ${ABI} in
1083 - amd64) myarch="x64";;
1084 - arm) myarch="arm";;
1085 - arm64) myarch="arm64";;
1086 - ppc64) myarch="ppc64";;
1087 - x32) myarch="x32";;
1088 - x86) myarch="ia32";;
1089 - *) myarch="${ABI}";;
1090 - esac
1091 -
1092 - GYP_DEFINES="linux_use_gold_flags=0
1093 - linux_use_bundled_binutils=0
1094 - linux_use_bundled_gold=0" \
1095 - "${EPYTHON}" configure.py \
1096 - --prefix="${EPREFIX}"/usr \
1097 - --dest-cpu=${myarch} \
1098 - $(use_with systemtap dtrace) \
1099 - "${myconf[@]}" || die
1100 -}
1101 -
1102 -src_compile() {
1103 - emake -C out
1104 -}
1105 -
1106 -src_install() {
1107 - local LIBDIR="${ED}/usr/$(get_libdir)"
1108 - default
1109 -
1110 - pax-mark -m "${ED}"/usr/bin/node
1111 -
1112 - # set up a symlink structure that node-gyp expects..
1113 - dodir /usr/include/node/deps/{v8,uv}
1114 - dosym . /usr/include/node/src
1115 - for var in deps/{uv,v8}/include; do
1116 - dosym ../.. /usr/include/node/${var}
1117 - done
1118 -
1119 - if use doc; then
1120 - docinto html
1121 - dodoc -r "${S}"/doc/*
1122 - fi
1123 -
1124 - if use npm; then
1125 - dodir /etc/npm
1126 -
1127 - # Install bash completion for `npm`
1128 - # We need to temporarily replace default config path since
1129 - # npm otherwise tries to write outside of the sandbox
1130 - local npm_config="usr/$(get_libdir)/node_modules/npm/lib/config/core.js"
1131 - sed -i -e "s|'/etc'|'${ED}/etc'|g" "${ED}/${npm_config}" || die
1132 - local tmp_npm_completion_file="$(TMPDIR="${T}" mktemp -t npm.XXXXXXXXXX)"
1133 - "${ED}/usr/bin/npm" completion > "${tmp_npm_completion_file}"
1134 - newbashcomp "${tmp_npm_completion_file}" npm
1135 - sed -i -e "s|'${ED}/etc'|'/etc'|g" "${ED}/${npm_config}" || die
1136 -
1137 - # Move man pages
1138 - doman "${LIBDIR}"/node_modules/npm/man/man{1,5,7}/*
1139 -
1140 - # Clean up
1141 - rm -f "${LIBDIR}"/node_modules/npm/{.mailmap,.npmignore,Makefile}
1142 - rm -rf "${LIBDIR}"/node_modules/npm/{doc,html,man}
1143 -
1144 - local find_exp="-or -name"
1145 - local find_name=()
1146 - for match in "AUTHORS*" "CHANGELOG*" "CONTRIBUT*" "README*" \
1147 - ".travis.yml" ".eslint*" ".wercker.yml" ".npmignore" \
1148 - "*.md" "*.markdown" "*.bat" "*.cmd"; do
1149 - find_name+=( ${find_exp} "${match}" )
1150 - done
1151 -
1152 - # Remove various development and/or inappropriate files and
1153 - # useless docs of dependend packages.
1154 - find "${LIBDIR}"/node_modules \
1155 - \( -type d -name examples \) -or \( -type f \( \
1156 - -iname "LICEN?E*" \
1157 - "${find_name[@]}" \
1158 - \) \) -exec rm -rf "{}" \;
1159 - fi
1160 -
1161 - mv "${ED}"/usr/share/doc/node "${ED}"/usr/share/doc/${PF} || die
1162 -}
1163 -
1164 -src_test() {
1165 - # parallel/test-fs-mkdir is known to fail with FEATURES=usersandbox
1166 - if has usersandbox ${FEATURES}; then
1167 - ewarn "You are emerging ${P} with 'usersandbox' enabled." \
1168 - "Expect some test failures or emerge with 'FEATURES=-usersandbox'!"
1169 - fi
1170 -
1171 - out/${BUILDTYPE}/cctest || die
1172 - "${EPYTHON}" tools/test.py --mode=${BUILDTYPE,,} --flaky-tests=dontcare -J message parallel sequential || die
1173 -}