Gentoo Archives: gentoo-commits

From: William Hubbs <williamh@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: net-libs/nodejs/
Date: Fri, 29 Apr 2022 16:21:51
Message-Id: 1651249229.ed0fee7fecda3bbf3c31c7c84ce90aee3da32ab2.williamh@gentoo
1 commit: ed0fee7fecda3bbf3c31c7c84ce90aee3da32ab2
2 Author: William Hubbs <williamh <AT> gentoo <DOT> org>
3 AuthorDate: Fri Apr 29 16:20:03 2022 +0000
4 Commit: William Hubbs <williamh <AT> gentoo <DOT> org>
5 CommitDate: Fri Apr 29 16:20:29 2022 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ed0fee7f
7
8 net-libs/nodejs: drop 16.9.1, 16.10.0, 16.13.0, 16.13.1, 16.14.1
9
10 Signed-off-by: William Hubbs <williamh <AT> gentoo.org>
11
12 net-libs/nodejs/Manifest | 5 -
13 net-libs/nodejs/nodejs-16.10.0.ebuild | 231 ----------------------------------
14 net-libs/nodejs/nodejs-16.13.0.ebuild | 230 ---------------------------------
15 net-libs/nodejs/nodejs-16.13.1.ebuild | 230 ---------------------------------
16 net-libs/nodejs/nodejs-16.14.1.ebuild | 230 ---------------------------------
17 net-libs/nodejs/nodejs-16.9.1.ebuild | 231 ----------------------------------
18 6 files changed, 1157 deletions(-)
19
20 diff --git a/net-libs/nodejs/Manifest b/net-libs/nodejs/Manifest
21 index 7cddccb60217..8438541ebfed 100644
22 --- a/net-libs/nodejs/Manifest
23 +++ b/net-libs/nodejs/Manifest
24 @@ -7,10 +7,5 @@ DIST node-v14.17.6.tar.xz 33606464 BLAKE2B c2c449e5eaf8214d7ed4bfab8db0208034cee
25 DIST node-v14.18.0.tar.xz 33698388 BLAKE2B 0a26aac559f2cd44d863b5375bc26692f1abf121c368df040041c9916e56410c3c919be377f099651e9a5e27bad972705d02a20f108f527cf23044e8ba95dd78 SHA512 0603e2466bf89b57e404e2992dda25012866a347489fb811a9757aea07056fc4f346236adf44a56d52c442f5f298f4dfdfc961f8582cd194d062beeb80c60cbf
26 DIST node-v14.18.1.tar.xz 33693816 BLAKE2B 310a53a7319620d8ff77b4e5947c7f2196efe96eb0d4311c8fb91b500331128750096e7b0471def73bee00cfa6a9da968cc8176b1d46d06d14c3409dedb9203b SHA512 a92d6f392e960008efd0c1f48471a3e294aa5292065fb31acc62723e8924f7f1a22bb02f3ab51a440f6e190bdee3c1667a275808c6b76d053a77aa6d7ad68aef
27 DIST node-v14.19.0.tar.xz 34486868 BLAKE2B 12e571a366c1d4b2475ef258e338f516bb81e9c08f7e6b7f951decbf371028cdcf32c72181d8504d0890496eaecce0d6b23437b8dad6c6e498d30bf6636bd1e7 SHA512 80573fa3a0882c1f2a40b991f187f49714748ca4c56c78133e2d2be0322f201816eb059a1a7d38ea8a925229c1b1324d0ffc28ff4002d0115bfae44fe87efe97
28 -DIST node-v16.10.0.tar.xz 34046720 BLAKE2B e745443a4707eca97ebfc0d3cb8e697f64cd3eb98a419debde79100291ab64306d2c7cbda6ce1bfe6174cbc53880ddbda2965b0b6b8aa4b4b278781f002da277 SHA512 278f3e29f14362c017fbfa768bf0aa54cd208048741622413a67d3277e35fbdbc099fb84ce1de77837616e0e6f485916ccc771a7bee0b2ac5d30b4d4a6cf94f6
29 -DIST node-v16.13.0.tar.xz 33502788 BLAKE2B d30a63e77ef3b423bfa3a43299f7f6576ee5b0544757d1dbf233cbbc4bc9c70971927283ca87497add5ed05c9bf5d5501b36992cd242468fcd12e7f950ee29c2 SHA512 5d840fa49e8e637398f20b166b590a57e1070fd04c62bcb9b2d56646cf5a97719a70dbd9e0e29a548a268ac84c9a6c63c02ed6d38536ed45d82ffb96896a61c0
30 -DIST node-v16.13.1.tar.xz 33907544 BLAKE2B 9243145f53619cb8285dc686d30317b71f474e67853eb16266b4bf4f2af2f81ad1d78d39ffa70024c4a99612230f07605fce69674a5b12013291e7746252dbc4 SHA512 bb0739089965785dff59721303ac68605a459d40318e1eada071c720e1499569cefb61a59a378062794d8533b8d54b8d5fef0e380f7e159206a89b0bb0b9cebf
31 -DIST node-v16.14.1.tar.xz 34329468 BLAKE2B 9b20af7d37c0116b17d3b2cedf8a16c208bbc501d8a4bb0958954a608fb9eeb61a77aec721de0b6be63674091184da471ab4e8ee62d6b8a55a51ee72513f8461 SHA512 56443c06e86547ac05800c2b3b4af7139190b0798a0e53ee0b0cbccf1ac3157f8549feb8766a956d8942daa1bb3eb55d2b524f47fb3fd0dc445399ecc47e6f38
32 DIST node-v16.14.2.tar.xz 34332624 BLAKE2B 756895f81ecabbacf30b1e513890d100192c367443a5d041cd3e383985acb6fae189213f44b7a533b43d1b759d5a2677a5ee787c72d3abdb480879d6d24cc95e SHA512 b97274f6e0d63f19e01497c43af36e6561f019e7b0b5b4f6ea19d0fbe2cb4d3c514c06f49e237d1e327936db03c3f437ae0d0b2f830a35f1b7c3a723fbe2a1be
33 -DIST node-v16.9.1.tar.xz 34026992 BLAKE2B 8bb0d75ab91a00d5b03a31ded17a6b8845894630185d353ded616bf8435b672ea5cef06b4ca5bd01bb3536c5c50774f6ad0aa08a0fa8cbb00d8866e29561c2ab SHA512 e570c39fffa5d79c8d3fa1fe90ece53b22729af6e882416a35b54362be7169eeb3d37cf8be69ee1b748a981b1fbc725d8c85a739bc5cb0b22d6d2e313ab646ac
34 DIST node-v18.0.0.tar.xz 36826840 BLAKE2B 658b6a4872779c648b1c10b952403892a4ea846525737daba222aeb7d1467f797345c2e07bfb28320d593810617541b893dd37006dcbd13e5e69313455045ff0 SHA512 801ee56e22490453f259ab92bfcd1b13da3f9510fb70078da1e680d0a27971d4ee4b4b4344b2a969d230e661fd9a8b35e9104c5fe0a594222be3a20583a59f3e
35
36 diff --git a/net-libs/nodejs/nodejs-16.10.0.ebuild b/net-libs/nodejs/nodejs-16.10.0.ebuild
37 deleted file mode 100644
38 index 895cf7cc0b43..000000000000
39 --- a/net-libs/nodejs/nodejs-16.10.0.ebuild
40 +++ /dev/null
41 @@ -1,231 +0,0 @@
42 -# Copyright 1999-2021 Gentoo Authors
43 -# Distributed under the terms of the GNU General Public License v2
44 -
45 -EAPI=8
46 -
47 -PYTHON_COMPAT=( python3_{8..10} )
48 -PYTHON_REQ_USE="threads(+)"
49 -
50 -inherit bash-completion-r1 flag-o-matic pax-utils python-any-r1 toolchain-funcs xdg-utils
51 -
52 -DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine"
53 -HOMEPAGE="https://nodejs.org/"
54 -LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
55 -
56 -if [[ ${PV} == *9999 ]]; then
57 - inherit git-r3
58 - EGIT_REPO_URI="https://github.com/nodejs/node"
59 - SLOT="0"
60 -else
61 - SRC_URI="https://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz"
62 - SLOT="0/$(ver_cut 1)"
63 - KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86 ~amd64-linux ~x64-macos"
64 - S="${WORKDIR}/node-v${PV}"
65 -fi
66 -
67 -IUSE="cpu_flags_x86_sse2 debug doc +icu inspector lto +npm pax-kernel +snapshot +ssl +system-icu +system-ssl systemtap test"
68 -REQUIRED_USE="inspector? ( icu ssl )
69 - npm? ( ssl )
70 - system-icu? ( icu )
71 - system-ssl? ( ssl )"
72 -
73 -RESTRICT="!test? ( test )"
74 -
75 -RDEPEND=">=app-arch/brotli-1.0.9:=
76 - >=dev-libs/libuv-1.40.0:=
77 - >=net-dns/c-ares-1.17.2:=
78 - >=net-libs/nghttp2-1.41.0:=
79 - sys-libs/zlib
80 - system-icu? ( >=dev-libs/icu-67:= )
81 - system-ssl? ( >=dev-libs/openssl-1.1.1:0= )"
82 -BDEPEND="${PYTHON_DEPS}
83 - sys-apps/coreutils
84 - virtual/pkgconfig
85 - systemtap? ( dev-util/systemtap )
86 - test? ( net-misc/curl )
87 - pax-kernel? ( sys-apps/elfix )"
88 -DEPEND="${RDEPEND}"
89 -
90 -PATCHES=(
91 - "${FILESDIR}"/${PN}-12.22.1-jinja_collections_abc.patch
92 - "${FILESDIR}"/${PN}-12.22.5-shared_c-ares_nameser_h.patch
93 - "${FILESDIR}"/${PN}-15.2.0-global-npm-config.patch
94 -)
95 -
96 -pkg_pretend() {
97 - (use x86 && ! use cpu_flags_x86_sse2) && \
98 - die "Your CPU doesn't support the required SSE2 instruction."
99 -
100 - if [[ ${MERGE_TYPE} != "binary" ]]; then
101 - if use lto; then
102 - if tc-is-gcc; then
103 - if [[ $(gcc-major-version) -ge 11 ]]; then
104 - # Bug #787158
105 - 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"
106 - fi
107 - fi
108 - fi
109 - fi
110 -}
111 -
112 -src_prepare() {
113 - tc-export AR CC CXX PKG_CONFIG
114 - export V=1
115 - export BUILDTYPE=Release
116 -
117 - # fix compilation on Darwin
118 - # https://code.google.com/p/gyp/issues/detail?id=260
119 - sed -i -e "/append('-arch/d" tools/gyp/pylib/gyp/xcode_emulation.py || die
120 -
121 - # less verbose install output (stating the same as portage, basically)
122 - sed -i -e "/print/d" tools/install.py || die
123 -
124 - # proper libdir, hat tip @ryanpcmcquen https://github.com/iojs/io.js/issues/504
125 - local LIBDIR=$(get_libdir)
126 - sed -i -e "s|lib/|${LIBDIR}/|g" tools/install.py || die
127 - sed -i -e "s/'lib'/'${LIBDIR}'/" deps/npm/lib/npm.js || die
128 -
129 - # Avoid writing a depfile, not useful
130 - sed -i -e "/DEPFLAGS =/d" tools/gyp/pylib/gyp/generator/make.py || die
131 -
132 - sed -i -e "/'-O3'/d" common.gypi node.gypi || die
133 -
134 - # debug builds. change install path, remove optimisations and override buildtype
135 - if use debug; then
136 - sed -i -e "s|out/Release/|out/Debug/|g" tools/install.py || die
137 - BUILDTYPE=Debug
138 - fi
139 -
140 - # We need to disable mprotect on two files when it builds Bug 694100.
141 - use pax-kernel && PATCHES+=( "${FILESDIR}"/${PN}-13.8.0-paxmarking.patch )
142 -
143 - # All this test does is check if the npm CLI produces warnings of any sort,
144 - # failing if it does. Overkill, much? Especially given one possible warning
145 - # is that there is a newer version of npm available upstream (yes, it does
146 - # use the network if available), thus making it a real possibility for this
147 - # test to begin failing one day even though it was fine before.
148 - rm -f test/parallel/test-release-npm.js
149 -
150 - default
151 -}
152 -
153 -src_configure() {
154 - xdg_environment_reset
155 -
156 - # LTO compiler flags are handled by configure.py itself
157 - filter-flags '-flto*'
158 -
159 - local myconf=(
160 - --shared-brotli
161 - --shared-cares
162 - --shared-libuv
163 - --shared-nghttp2
164 - --shared-zlib
165 - )
166 - use debug && myconf+=( --debug )
167 - use lto && myconf+=( --enable-lto )
168 - if use system-icu; then
169 - myconf+=( --with-intl=system-icu )
170 - elif use icu; then
171 - myconf+=( --with-intl=full-icu )
172 - else
173 - myconf+=( --with-intl=none )
174 - fi
175 - use inspector || myconf+=( --without-inspector )
176 - use npm || myconf+=( --without-npm )
177 - use snapshot || myconf+=( --without-node-snapshot )
178 - if use ssl; then
179 - use system-ssl && myconf+=( --shared-openssl --openssl-use-def-ca-store )
180 - else
181 - myconf+=( --without-ssl )
182 - fi
183 -
184 - local myarch=""
185 - case ${ABI} in
186 - amd64) myarch="x64";;
187 - arm) myarch="arm";;
188 - arm64) myarch="arm64";;
189 - lp64*) myarch="riscv64";;
190 - ppc64) myarch="ppc64";;
191 - x32) myarch="x32";;
192 - x86) myarch="ia32";;
193 - *) myarch="${ABI}";;
194 - esac
195 -
196 - GYP_DEFINES="linux_use_gold_flags=0
197 - linux_use_bundled_binutils=0
198 - linux_use_bundled_gold=0" \
199 - "${EPYTHON}" configure.py \
200 - --prefix="${EPREFIX}"/usr \
201 - --dest-cpu=${myarch} \
202 - $(use_with systemtap dtrace) \
203 - "${myconf[@]}" || die
204 -}
205 -
206 -src_compile() {
207 - emake -C out
208 -}
209 -
210 -src_install() {
211 - local LIBDIR="${ED}/usr/$(get_libdir)"
212 - default
213 -
214 - pax-mark -m "${ED}"/usr/bin/node
215 -
216 - # set up a symlink structure that node-gyp expects..
217 - dodir /usr/include/node/deps/{v8,uv}
218 - dosym . /usr/include/node/src
219 - for var in deps/{uv,v8}/include; do
220 - dosym ../.. /usr/include/node/${var}
221 - done
222 -
223 - if use doc; then
224 - docinto html
225 - dodoc -r "${S}"/doc/*
226 - fi
227 -
228 - if use npm; then
229 - keepdir /etc/npm
230 -
231 - # Install bash completion for `npm`
232 - local tmp_npm_completion_file="$(TMPDIR="${T}" mktemp -t npm.XXXXXXXXXX)"
233 - "${ED}/usr/bin/npm" completion > "${tmp_npm_completion_file}"
234 - newbashcomp "${tmp_npm_completion_file}" npm
235 -
236 - # Move man pages
237 - doman "${LIBDIR}"/node_modules/npm/man/man{1,5,7}/*
238 -
239 - # Clean up
240 - rm -f "${LIBDIR}"/node_modules/npm/{.mailmap,.npmignore,Makefile}
241 - rm -rf "${LIBDIR}"/node_modules/npm/{doc,html,man}
242 -
243 - local find_exp="-or -name"
244 - local find_name=()
245 - for match in "AUTHORS*" "CHANGELOG*" "CONTRIBUT*" "README*" \
246 - ".travis.yml" ".eslint*" ".wercker.yml" ".npmignore" \
247 - "*.md" "*.markdown" "*.bat" "*.cmd"; do
248 - find_name+=( ${find_exp} "${match}" )
249 - done
250 -
251 - # Remove various development and/or inappropriate files and
252 - # useless docs of dependend packages.
253 - find "${LIBDIR}"/node_modules \
254 - \( -type d -name examples \) -or \( -type f \( \
255 - -iname "LICEN?E*" \
256 - "${find_name[@]}" \
257 - \) \) -exec rm -rf "{}" \;
258 - fi
259 -
260 - mv "${ED}"/usr/share/doc/node "${ED}"/usr/share/doc/${PF} || die
261 -}
262 -
263 -src_test() {
264 - if has usersandbox ${FEATURES}; then
265 - rm -f "${S}"/test/parallel/test-fs-mkdir.js
266 - ewarn "You are emerging ${PN} with 'usersandbox' enabled. Excluding tests known to fail in this mode." \
267 - "For full test coverage, emerge =${CATEGORY}/${PF} with 'FEATURES=-usersandbox'."
268 - fi
269 -
270 - out/${BUILDTYPE}/cctest || die
271 - "${EPYTHON}" tools/test.py --mode=${BUILDTYPE,,} --flaky-tests=dontcare -J message parallel sequential || die
272 -}
273
274 diff --git a/net-libs/nodejs/nodejs-16.13.0.ebuild b/net-libs/nodejs/nodejs-16.13.0.ebuild
275 deleted file mode 100644
276 index b7c26db64cbe..000000000000
277 --- a/net-libs/nodejs/nodejs-16.13.0.ebuild
278 +++ /dev/null
279 @@ -1,230 +0,0 @@
280 -# Copyright 1999-2021 Gentoo Authors
281 -# Distributed under the terms of the GNU General Public License v2
282 -
283 -EAPI=8
284 -
285 -PYTHON_COMPAT=( python3_{8..10} )
286 -PYTHON_REQ_USE="threads(+)"
287 -
288 -inherit bash-completion-r1 flag-o-matic pax-utils python-any-r1 toolchain-funcs xdg-utils
289 -
290 -DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine"
291 -HOMEPAGE="https://nodejs.org/"
292 -LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
293 -
294 -if [[ ${PV} == *9999 ]]; then
295 - inherit git-r3
296 - EGIT_REPO_URI="https://github.com/nodejs/node"
297 - SLOT="0"
298 -else
299 - SRC_URI="https://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz"
300 - SLOT="0/$(ver_cut 1)"
301 - KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86 ~amd64-linux ~x64-macos"
302 - S="${WORKDIR}/node-v${PV}"
303 -fi
304 -
305 -IUSE="cpu_flags_x86_sse2 debug doc +icu inspector lto +npm pax-kernel +snapshot +ssl +system-icu +system-ssl systemtap test"
306 -REQUIRED_USE="inspector? ( icu ssl )
307 - npm? ( ssl )
308 - system-icu? ( icu )
309 - system-ssl? ( ssl )"
310 -
311 -RESTRICT="!test? ( test )"
312 -
313 -RDEPEND=">=app-arch/brotli-1.0.9:=
314 - >=dev-libs/libuv-1.40.0:=
315 - >=net-dns/c-ares-1.17.2:=
316 - >=net-libs/nghttp2-1.41.0:=
317 - sys-libs/zlib
318 - system-icu? ( >=dev-libs/icu-67:= )
319 - system-ssl? ( >=dev-libs/openssl-1.1.1:0= )"
320 -BDEPEND="${PYTHON_DEPS}
321 - sys-apps/coreutils
322 - virtual/pkgconfig
323 - systemtap? ( dev-util/systemtap )
324 - test? ( net-misc/curl )
325 - pax-kernel? ( sys-apps/elfix )"
326 -DEPEND="${RDEPEND}"
327 -
328 -PATCHES=(
329 - "${FILESDIR}"/${PN}-12.22.5-shared_c-ares_nameser_h.patch
330 - "${FILESDIR}"/${PN}-15.2.0-global-npm-config.patch
331 -)
332 -
333 -pkg_pretend() {
334 - (use x86 && ! use cpu_flags_x86_sse2) && \
335 - die "Your CPU doesn't support the required SSE2 instruction."
336 -
337 - if [[ ${MERGE_TYPE} != "binary" ]]; then
338 - if use lto; then
339 - if tc-is-gcc; then
340 - if [[ $(gcc-major-version) -ge 11 ]]; then
341 - # Bug #787158
342 - 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"
343 - fi
344 - fi
345 - fi
346 - fi
347 -}
348 -
349 -src_prepare() {
350 - tc-export AR CC CXX PKG_CONFIG
351 - export V=1
352 - export BUILDTYPE=Release
353 -
354 - # fix compilation on Darwin
355 - # https://code.google.com/p/gyp/issues/detail?id=260
356 - sed -i -e "/append('-arch/d" tools/gyp/pylib/gyp/xcode_emulation.py || die
357 -
358 - # less verbose install output (stating the same as portage, basically)
359 - sed -i -e "/print/d" tools/install.py || die
360 -
361 - # proper libdir, hat tip @ryanpcmcquen https://github.com/iojs/io.js/issues/504
362 - local LIBDIR=$(get_libdir)
363 - sed -i -e "s|lib/|${LIBDIR}/|g" tools/install.py || die
364 - sed -i -e "s/'lib'/'${LIBDIR}'/" deps/npm/lib/npm.js || die
365 -
366 - # Avoid writing a depfile, not useful
367 - sed -i -e "/DEPFLAGS =/d" tools/gyp/pylib/gyp/generator/make.py || die
368 -
369 - sed -i -e "/'-O3'/d" common.gypi node.gypi || die
370 -
371 - # debug builds. change install path, remove optimisations and override buildtype
372 - if use debug; then
373 - sed -i -e "s|out/Release/|out/Debug/|g" tools/install.py || die
374 - BUILDTYPE=Debug
375 - fi
376 -
377 - # We need to disable mprotect on two files when it builds Bug 694100.
378 - use pax-kernel && PATCHES+=( "${FILESDIR}"/${PN}-13.8.0-paxmarking.patch )
379 -
380 - # All this test does is check if the npm CLI produces warnings of any sort,
381 - # failing if it does. Overkill, much? Especially given one possible warning
382 - # is that there is a newer version of npm available upstream (yes, it does
383 - # use the network if available), thus making it a real possibility for this
384 - # test to begin failing one day even though it was fine before.
385 - rm -f test/parallel/test-release-npm.js
386 -
387 - default
388 -}
389 -
390 -src_configure() {
391 - xdg_environment_reset
392 -
393 - # LTO compiler flags are handled by configure.py itself
394 - filter-flags '-flto*'
395 -
396 - local myconf=(
397 - --shared-brotli
398 - --shared-cares
399 - --shared-libuv
400 - --shared-nghttp2
401 - --shared-zlib
402 - )
403 - use debug && myconf+=( --debug )
404 - use lto && myconf+=( --enable-lto )
405 - if use system-icu; then
406 - myconf+=( --with-intl=system-icu )
407 - elif use icu; then
408 - myconf+=( --with-intl=full-icu )
409 - else
410 - myconf+=( --with-intl=none )
411 - fi
412 - use inspector || myconf+=( --without-inspector )
413 - use npm || myconf+=( --without-npm )
414 - use snapshot || myconf+=( --without-node-snapshot )
415 - if use ssl; then
416 - use system-ssl && myconf+=( --shared-openssl --openssl-use-def-ca-store )
417 - else
418 - myconf+=( --without-ssl )
419 - fi
420 -
421 - local myarch=""
422 - case ${ABI} in
423 - amd64) myarch="x64";;
424 - arm) myarch="arm";;
425 - arm64) myarch="arm64";;
426 - lp64*) myarch="riscv64";;
427 - ppc64) myarch="ppc64";;
428 - x32) myarch="x32";;
429 - x86) myarch="ia32";;
430 - *) myarch="${ABI}";;
431 - esac
432 -
433 - GYP_DEFINES="linux_use_gold_flags=0
434 - linux_use_bundled_binutils=0
435 - linux_use_bundled_gold=0" \
436 - "${EPYTHON}" configure.py \
437 - --prefix="${EPREFIX}"/usr \
438 - --dest-cpu=${myarch} \
439 - $(use_with systemtap dtrace) \
440 - "${myconf[@]}" || die
441 -}
442 -
443 -src_compile() {
444 - emake -C out
445 -}
446 -
447 -src_install() {
448 - local LIBDIR="${ED}/usr/$(get_libdir)"
449 - default
450 -
451 - pax-mark -m "${ED}"/usr/bin/node
452 -
453 - # set up a symlink structure that node-gyp expects..
454 - dodir /usr/include/node/deps/{v8,uv}
455 - dosym . /usr/include/node/src
456 - for var in deps/{uv,v8}/include; do
457 - dosym ../.. /usr/include/node/${var}
458 - done
459 -
460 - if use doc; then
461 - docinto html
462 - dodoc -r "${S}"/doc/*
463 - fi
464 -
465 - if use npm; then
466 - keepdir /etc/npm
467 -
468 - # Install bash completion for `npm`
469 - local tmp_npm_completion_file="$(TMPDIR="${T}" mktemp -t npm.XXXXXXXXXX)"
470 - "${ED}/usr/bin/npm" completion > "${tmp_npm_completion_file}"
471 - newbashcomp "${tmp_npm_completion_file}" npm
472 -
473 - # Move man pages
474 - doman "${LIBDIR}"/node_modules/npm/man/man{1,5,7}/*
475 -
476 - # Clean up
477 - rm -f "${LIBDIR}"/node_modules/npm/{.mailmap,.npmignore,Makefile}
478 - rm -rf "${LIBDIR}"/node_modules/npm/{doc,html,man}
479 -
480 - local find_exp="-or -name"
481 - local find_name=()
482 - for match in "AUTHORS*" "CHANGELOG*" "CONTRIBUT*" "README*" \
483 - ".travis.yml" ".eslint*" ".wercker.yml" ".npmignore" \
484 - "*.md" "*.markdown" "*.bat" "*.cmd"; do
485 - find_name+=( ${find_exp} "${match}" )
486 - done
487 -
488 - # Remove various development and/or inappropriate files and
489 - # useless docs of dependend packages.
490 - find "${LIBDIR}"/node_modules \
491 - \( -type d -name examples \) -or \( -type f \( \
492 - -iname "LICEN?E*" \
493 - "${find_name[@]}" \
494 - \) \) -exec rm -rf "{}" \;
495 - fi
496 -
497 - mv "${ED}"/usr/share/doc/node "${ED}"/usr/share/doc/${PF} || die
498 -}
499 -
500 -src_test() {
501 - if has usersandbox ${FEATURES}; then
502 - rm -f "${S}"/test/parallel/test-fs-mkdir.js
503 - ewarn "You are emerging ${PN} with 'usersandbox' enabled. Excluding tests known to fail in this mode." \
504 - "For full test coverage, emerge =${CATEGORY}/${PF} with 'FEATURES=-usersandbox'."
505 - fi
506 -
507 - out/${BUILDTYPE}/cctest || die
508 - "${EPYTHON}" tools/test.py --mode=${BUILDTYPE,,} --flaky-tests=dontcare -J message parallel sequential || die
509 -}
510
511 diff --git a/net-libs/nodejs/nodejs-16.13.1.ebuild b/net-libs/nodejs/nodejs-16.13.1.ebuild
512 deleted file mode 100644
513 index b7c26db64cbe..000000000000
514 --- a/net-libs/nodejs/nodejs-16.13.1.ebuild
515 +++ /dev/null
516 @@ -1,230 +0,0 @@
517 -# Copyright 1999-2021 Gentoo Authors
518 -# Distributed under the terms of the GNU General Public License v2
519 -
520 -EAPI=8
521 -
522 -PYTHON_COMPAT=( python3_{8..10} )
523 -PYTHON_REQ_USE="threads(+)"
524 -
525 -inherit bash-completion-r1 flag-o-matic pax-utils python-any-r1 toolchain-funcs xdg-utils
526 -
527 -DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine"
528 -HOMEPAGE="https://nodejs.org/"
529 -LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
530 -
531 -if [[ ${PV} == *9999 ]]; then
532 - inherit git-r3
533 - EGIT_REPO_URI="https://github.com/nodejs/node"
534 - SLOT="0"
535 -else
536 - SRC_URI="https://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz"
537 - SLOT="0/$(ver_cut 1)"
538 - KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86 ~amd64-linux ~x64-macos"
539 - S="${WORKDIR}/node-v${PV}"
540 -fi
541 -
542 -IUSE="cpu_flags_x86_sse2 debug doc +icu inspector lto +npm pax-kernel +snapshot +ssl +system-icu +system-ssl systemtap test"
543 -REQUIRED_USE="inspector? ( icu ssl )
544 - npm? ( ssl )
545 - system-icu? ( icu )
546 - system-ssl? ( ssl )"
547 -
548 -RESTRICT="!test? ( test )"
549 -
550 -RDEPEND=">=app-arch/brotli-1.0.9:=
551 - >=dev-libs/libuv-1.40.0:=
552 - >=net-dns/c-ares-1.17.2:=
553 - >=net-libs/nghttp2-1.41.0:=
554 - sys-libs/zlib
555 - system-icu? ( >=dev-libs/icu-67:= )
556 - system-ssl? ( >=dev-libs/openssl-1.1.1:0= )"
557 -BDEPEND="${PYTHON_DEPS}
558 - sys-apps/coreutils
559 - virtual/pkgconfig
560 - systemtap? ( dev-util/systemtap )
561 - test? ( net-misc/curl )
562 - pax-kernel? ( sys-apps/elfix )"
563 -DEPEND="${RDEPEND}"
564 -
565 -PATCHES=(
566 - "${FILESDIR}"/${PN}-12.22.5-shared_c-ares_nameser_h.patch
567 - "${FILESDIR}"/${PN}-15.2.0-global-npm-config.patch
568 -)
569 -
570 -pkg_pretend() {
571 - (use x86 && ! use cpu_flags_x86_sse2) && \
572 - die "Your CPU doesn't support the required SSE2 instruction."
573 -
574 - if [[ ${MERGE_TYPE} != "binary" ]]; then
575 - if use lto; then
576 - if tc-is-gcc; then
577 - if [[ $(gcc-major-version) -ge 11 ]]; then
578 - # Bug #787158
579 - 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"
580 - fi
581 - fi
582 - fi
583 - fi
584 -}
585 -
586 -src_prepare() {
587 - tc-export AR CC CXX PKG_CONFIG
588 - export V=1
589 - export BUILDTYPE=Release
590 -
591 - # fix compilation on Darwin
592 - # https://code.google.com/p/gyp/issues/detail?id=260
593 - sed -i -e "/append('-arch/d" tools/gyp/pylib/gyp/xcode_emulation.py || die
594 -
595 - # less verbose install output (stating the same as portage, basically)
596 - sed -i -e "/print/d" tools/install.py || die
597 -
598 - # proper libdir, hat tip @ryanpcmcquen https://github.com/iojs/io.js/issues/504
599 - local LIBDIR=$(get_libdir)
600 - sed -i -e "s|lib/|${LIBDIR}/|g" tools/install.py || die
601 - sed -i -e "s/'lib'/'${LIBDIR}'/" deps/npm/lib/npm.js || die
602 -
603 - # Avoid writing a depfile, not useful
604 - sed -i -e "/DEPFLAGS =/d" tools/gyp/pylib/gyp/generator/make.py || die
605 -
606 - sed -i -e "/'-O3'/d" common.gypi node.gypi || die
607 -
608 - # debug builds. change install path, remove optimisations and override buildtype
609 - if use debug; then
610 - sed -i -e "s|out/Release/|out/Debug/|g" tools/install.py || die
611 - BUILDTYPE=Debug
612 - fi
613 -
614 - # We need to disable mprotect on two files when it builds Bug 694100.
615 - use pax-kernel && PATCHES+=( "${FILESDIR}"/${PN}-13.8.0-paxmarking.patch )
616 -
617 - # All this test does is check if the npm CLI produces warnings of any sort,
618 - # failing if it does. Overkill, much? Especially given one possible warning
619 - # is that there is a newer version of npm available upstream (yes, it does
620 - # use the network if available), thus making it a real possibility for this
621 - # test to begin failing one day even though it was fine before.
622 - rm -f test/parallel/test-release-npm.js
623 -
624 - default
625 -}
626 -
627 -src_configure() {
628 - xdg_environment_reset
629 -
630 - # LTO compiler flags are handled by configure.py itself
631 - filter-flags '-flto*'
632 -
633 - local myconf=(
634 - --shared-brotli
635 - --shared-cares
636 - --shared-libuv
637 - --shared-nghttp2
638 - --shared-zlib
639 - )
640 - use debug && myconf+=( --debug )
641 - use lto && myconf+=( --enable-lto )
642 - if use system-icu; then
643 - myconf+=( --with-intl=system-icu )
644 - elif use icu; then
645 - myconf+=( --with-intl=full-icu )
646 - else
647 - myconf+=( --with-intl=none )
648 - fi
649 - use inspector || myconf+=( --without-inspector )
650 - use npm || myconf+=( --without-npm )
651 - use snapshot || myconf+=( --without-node-snapshot )
652 - if use ssl; then
653 - use system-ssl && myconf+=( --shared-openssl --openssl-use-def-ca-store )
654 - else
655 - myconf+=( --without-ssl )
656 - fi
657 -
658 - local myarch=""
659 - case ${ABI} in
660 - amd64) myarch="x64";;
661 - arm) myarch="arm";;
662 - arm64) myarch="arm64";;
663 - lp64*) myarch="riscv64";;
664 - ppc64) myarch="ppc64";;
665 - x32) myarch="x32";;
666 - x86) myarch="ia32";;
667 - *) myarch="${ABI}";;
668 - esac
669 -
670 - GYP_DEFINES="linux_use_gold_flags=0
671 - linux_use_bundled_binutils=0
672 - linux_use_bundled_gold=0" \
673 - "${EPYTHON}" configure.py \
674 - --prefix="${EPREFIX}"/usr \
675 - --dest-cpu=${myarch} \
676 - $(use_with systemtap dtrace) \
677 - "${myconf[@]}" || die
678 -}
679 -
680 -src_compile() {
681 - emake -C out
682 -}
683 -
684 -src_install() {
685 - local LIBDIR="${ED}/usr/$(get_libdir)"
686 - default
687 -
688 - pax-mark -m "${ED}"/usr/bin/node
689 -
690 - # set up a symlink structure that node-gyp expects..
691 - dodir /usr/include/node/deps/{v8,uv}
692 - dosym . /usr/include/node/src
693 - for var in deps/{uv,v8}/include; do
694 - dosym ../.. /usr/include/node/${var}
695 - done
696 -
697 - if use doc; then
698 - docinto html
699 - dodoc -r "${S}"/doc/*
700 - fi
701 -
702 - if use npm; then
703 - keepdir /etc/npm
704 -
705 - # Install bash completion for `npm`
706 - local tmp_npm_completion_file="$(TMPDIR="${T}" mktemp -t npm.XXXXXXXXXX)"
707 - "${ED}/usr/bin/npm" completion > "${tmp_npm_completion_file}"
708 - newbashcomp "${tmp_npm_completion_file}" npm
709 -
710 - # Move man pages
711 - doman "${LIBDIR}"/node_modules/npm/man/man{1,5,7}/*
712 -
713 - # Clean up
714 - rm -f "${LIBDIR}"/node_modules/npm/{.mailmap,.npmignore,Makefile}
715 - rm -rf "${LIBDIR}"/node_modules/npm/{doc,html,man}
716 -
717 - local find_exp="-or -name"
718 - local find_name=()
719 - for match in "AUTHORS*" "CHANGELOG*" "CONTRIBUT*" "README*" \
720 - ".travis.yml" ".eslint*" ".wercker.yml" ".npmignore" \
721 - "*.md" "*.markdown" "*.bat" "*.cmd"; do
722 - find_name+=( ${find_exp} "${match}" )
723 - done
724 -
725 - # Remove various development and/or inappropriate files and
726 - # useless docs of dependend packages.
727 - find "${LIBDIR}"/node_modules \
728 - \( -type d -name examples \) -or \( -type f \( \
729 - -iname "LICEN?E*" \
730 - "${find_name[@]}" \
731 - \) \) -exec rm -rf "{}" \;
732 - fi
733 -
734 - mv "${ED}"/usr/share/doc/node "${ED}"/usr/share/doc/${PF} || die
735 -}
736 -
737 -src_test() {
738 - if has usersandbox ${FEATURES}; then
739 - rm -f "${S}"/test/parallel/test-fs-mkdir.js
740 - ewarn "You are emerging ${PN} with 'usersandbox' enabled. Excluding tests known to fail in this mode." \
741 - "For full test coverage, emerge =${CATEGORY}/${PF} with 'FEATURES=-usersandbox'."
742 - fi
743 -
744 - out/${BUILDTYPE}/cctest || die
745 - "${EPYTHON}" tools/test.py --mode=${BUILDTYPE,,} --flaky-tests=dontcare -J message parallel sequential || die
746 -}
747
748 diff --git a/net-libs/nodejs/nodejs-16.14.1.ebuild b/net-libs/nodejs/nodejs-16.14.1.ebuild
749 deleted file mode 100644
750 index a77369330d31..000000000000
751 --- a/net-libs/nodejs/nodejs-16.14.1.ebuild
752 +++ /dev/null
753 @@ -1,230 +0,0 @@
754 -# Copyright 1999-2022 Gentoo Authors
755 -# Distributed under the terms of the GNU General Public License v2
756 -
757 -EAPI=8
758 -
759 -PYTHON_COMPAT=( python3_{8..10} )
760 -PYTHON_REQ_USE="threads(+)"
761 -
762 -inherit bash-completion-r1 flag-o-matic pax-utils python-any-r1 toolchain-funcs xdg-utils
763 -
764 -DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine"
765 -HOMEPAGE="https://nodejs.org/"
766 -LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
767 -
768 -if [[ ${PV} == *9999 ]]; then
769 - inherit git-r3
770 - EGIT_REPO_URI="https://github.com/nodejs/node"
771 - SLOT="0"
772 -else
773 - SRC_URI="https://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz"
774 - SLOT="0/$(ver_cut 1)"
775 - KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86 ~amd64-linux ~x64-macos"
776 - S="${WORKDIR}/node-v${PV}"
777 -fi
778 -
779 -IUSE="cpu_flags_x86_sse2 debug doc +icu inspector lto +npm pax-kernel +snapshot +ssl +system-icu +system-ssl systemtap test"
780 -REQUIRED_USE="inspector? ( icu ssl )
781 - npm? ( ssl )
782 - system-icu? ( icu )
783 - system-ssl? ( ssl )"
784 -
785 -RESTRICT="!test? ( test )"
786 -
787 -RDEPEND=">=app-arch/brotli-1.0.9:=
788 - >=dev-libs/libuv-1.40.0:=
789 - >=net-dns/c-ares-1.17.2:=
790 - >=net-libs/nghttp2-1.41.0:=
791 - sys-libs/zlib
792 - system-icu? ( >=dev-libs/icu-67:= )
793 - system-ssl? ( >=dev-libs/openssl-1.1.1:0= )"
794 -BDEPEND="${PYTHON_DEPS}
795 - sys-apps/coreutils
796 - virtual/pkgconfig
797 - systemtap? ( dev-util/systemtap )
798 - test? ( net-misc/curl )
799 - pax-kernel? ( sys-apps/elfix )"
800 -DEPEND="${RDEPEND}"
801 -
802 -PATCHES=(
803 - "${FILESDIR}"/${PN}-12.22.5-shared_c-ares_nameser_h.patch
804 - "${FILESDIR}"/${PN}-15.2.0-global-npm-config.patch
805 -)
806 -
807 -pkg_pretend() {
808 - (use x86 && ! use cpu_flags_x86_sse2) && \
809 - die "Your CPU doesn't support the required SSE2 instruction."
810 -
811 - if [[ ${MERGE_TYPE} != "binary" ]]; then
812 - if use lto; then
813 - if tc-is-gcc; then
814 - if [[ $(gcc-major-version) -ge 11 ]]; then
815 - # Bug #787158
816 - 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"
817 - fi
818 - fi
819 - fi
820 - fi
821 -}
822 -
823 -src_prepare() {
824 - tc-export AR CC CXX PKG_CONFIG
825 - export V=1
826 - export BUILDTYPE=Release
827 -
828 - # fix compilation on Darwin
829 - # https://code.google.com/p/gyp/issues/detail?id=260
830 - sed -i -e "/append('-arch/d" tools/gyp/pylib/gyp/xcode_emulation.py || die
831 -
832 - # less verbose install output (stating the same as portage, basically)
833 - sed -i -e "/print/d" tools/install.py || die
834 -
835 - # proper libdir, hat tip @ryanpcmcquen https://github.com/iojs/io.js/issues/504
836 - local LIBDIR=$(get_libdir)
837 - sed -i -e "s|lib/|${LIBDIR}/|g" tools/install.py || die
838 - sed -i -e "s/'lib'/'${LIBDIR}'/" deps/npm/lib/npm.js || die
839 -
840 - # Avoid writing a depfile, not useful
841 - sed -i -e "/DEPFLAGS =/d" tools/gyp/pylib/gyp/generator/make.py || die
842 -
843 - sed -i -e "/'-O3'/d" common.gypi node.gypi || die
844 -
845 - # debug builds. change install path, remove optimisations and override buildtype
846 - if use debug; then
847 - sed -i -e "s|out/Release/|out/Debug/|g" tools/install.py || die
848 - BUILDTYPE=Debug
849 - fi
850 -
851 - # We need to disable mprotect on two files when it builds Bug 694100.
852 - use pax-kernel && PATCHES+=( "${FILESDIR}"/${PN}-13.8.0-paxmarking.patch )
853 -
854 - # All this test does is check if the npm CLI produces warnings of any sort,
855 - # failing if it does. Overkill, much? Especially given one possible warning
856 - # is that there is a newer version of npm available upstream (yes, it does
857 - # use the network if available), thus making it a real possibility for this
858 - # test to begin failing one day even though it was fine before.
859 - rm -f test/parallel/test-release-npm.js
860 -
861 - default
862 -}
863 -
864 -src_configure() {
865 - xdg_environment_reset
866 -
867 - # LTO compiler flags are handled by configure.py itself
868 - filter-flags '-flto*'
869 -
870 - local myconf=(
871 - --shared-brotli
872 - --shared-cares
873 - --shared-libuv
874 - --shared-nghttp2
875 - --shared-zlib
876 - )
877 - use debug && myconf+=( --debug )
878 - use lto && myconf+=( --enable-lto )
879 - if use system-icu; then
880 - myconf+=( --with-intl=system-icu )
881 - elif use icu; then
882 - myconf+=( --with-intl=full-icu )
883 - else
884 - myconf+=( --with-intl=none )
885 - fi
886 - use inspector || myconf+=( --without-inspector )
887 - use npm || myconf+=( --without-npm )
888 - use snapshot || myconf+=( --without-node-snapshot )
889 - if use ssl; then
890 - use system-ssl && myconf+=( --shared-openssl --openssl-use-def-ca-store )
891 - else
892 - myconf+=( --without-ssl )
893 - fi
894 -
895 - local myarch=""
896 - case ${ABI} in
897 - amd64) myarch="x64";;
898 - arm) myarch="arm";;
899 - arm64) myarch="arm64";;
900 - lp64*) myarch="riscv64";;
901 - ppc64) myarch="ppc64";;
902 - x32) myarch="x32";;
903 - x86) myarch="ia32";;
904 - *) myarch="${ABI}";;
905 - esac
906 -
907 - GYP_DEFINES="linux_use_gold_flags=0
908 - linux_use_bundled_binutils=0
909 - linux_use_bundled_gold=0" \
910 - "${EPYTHON}" configure.py \
911 - --prefix="${EPREFIX}"/usr \
912 - --dest-cpu=${myarch} \
913 - $(use_with systemtap dtrace) \
914 - "${myconf[@]}" || die
915 -}
916 -
917 -src_compile() {
918 - emake -C out
919 -}
920 -
921 -src_install() {
922 - local LIBDIR="${ED}/usr/$(get_libdir)"
923 - default
924 -
925 - pax-mark -m "${ED}"/usr/bin/node
926 -
927 - # set up a symlink structure that node-gyp expects..
928 - dodir /usr/include/node/deps/{v8,uv}
929 - dosym . /usr/include/node/src
930 - for var in deps/{uv,v8}/include; do
931 - dosym ../.. /usr/include/node/${var}
932 - done
933 -
934 - if use doc; then
935 - docinto html
936 - dodoc -r "${S}"/doc/*
937 - fi
938 -
939 - if use npm; then
940 - keepdir /etc/npm
941 -
942 - # Install bash completion for `npm`
943 - local tmp_npm_completion_file="$(TMPDIR="${T}" mktemp -t npm.XXXXXXXXXX)"
944 - "${ED}/usr/bin/npm" completion > "${tmp_npm_completion_file}"
945 - newbashcomp "${tmp_npm_completion_file}" npm
946 -
947 - # Move man pages
948 - doman "${LIBDIR}"/node_modules/npm/man/man{1,5,7}/*
949 -
950 - # Clean up
951 - rm -f "${LIBDIR}"/node_modules/npm/{.mailmap,.npmignore,Makefile}
952 - rm -rf "${LIBDIR}"/node_modules/npm/{doc,html,man}
953 -
954 - local find_exp="-or -name"
955 - local find_name=()
956 - for match in "AUTHORS*" "CHANGELOG*" "CONTRIBUT*" "README*" \
957 - ".travis.yml" ".eslint*" ".wercker.yml" ".npmignore" \
958 - "*.md" "*.markdown" "*.bat" "*.cmd"; do
959 - find_name+=( ${find_exp} "${match}" )
960 - done
961 -
962 - # Remove various development and/or inappropriate files and
963 - # useless docs of dependend packages.
964 - find "${LIBDIR}"/node_modules \
965 - \( -type d -name examples \) -or \( -type f \( \
966 - -iname "LICEN?E*" \
967 - "${find_name[@]}" \
968 - \) \) -exec rm -rf "{}" \;
969 - fi
970 -
971 - mv "${ED}"/usr/share/doc/node "${ED}"/usr/share/doc/${PF} || die
972 -}
973 -
974 -src_test() {
975 - if has usersandbox ${FEATURES}; then
976 - rm -f "${S}"/test/parallel/test-fs-mkdir.js
977 - ewarn "You are emerging ${PN} with 'usersandbox' enabled. Excluding tests known to fail in this mode." \
978 - "For full test coverage, emerge =${CATEGORY}/${PF} with 'FEATURES=-usersandbox'."
979 - fi
980 -
981 - out/${BUILDTYPE}/cctest || die
982 - "${EPYTHON}" tools/test.py --mode=${BUILDTYPE,,} --flaky-tests=dontcare -J message parallel sequential || die
983 -}
984
985 diff --git a/net-libs/nodejs/nodejs-16.9.1.ebuild b/net-libs/nodejs/nodejs-16.9.1.ebuild
986 deleted file mode 100644
987 index 895cf7cc0b43..000000000000
988 --- a/net-libs/nodejs/nodejs-16.9.1.ebuild
989 +++ /dev/null
990 @@ -1,231 +0,0 @@
991 -# Copyright 1999-2021 Gentoo Authors
992 -# Distributed under the terms of the GNU General Public License v2
993 -
994 -EAPI=8
995 -
996 -PYTHON_COMPAT=( python3_{8..10} )
997 -PYTHON_REQ_USE="threads(+)"
998 -
999 -inherit bash-completion-r1 flag-o-matic pax-utils python-any-r1 toolchain-funcs xdg-utils
1000 -
1001 -DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine"
1002 -HOMEPAGE="https://nodejs.org/"
1003 -LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
1004 -
1005 -if [[ ${PV} == *9999 ]]; then
1006 - inherit git-r3
1007 - EGIT_REPO_URI="https://github.com/nodejs/node"
1008 - SLOT="0"
1009 -else
1010 - SRC_URI="https://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz"
1011 - SLOT="0/$(ver_cut 1)"
1012 - KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86 ~amd64-linux ~x64-macos"
1013 - S="${WORKDIR}/node-v${PV}"
1014 -fi
1015 -
1016 -IUSE="cpu_flags_x86_sse2 debug doc +icu inspector lto +npm pax-kernel +snapshot +ssl +system-icu +system-ssl systemtap test"
1017 -REQUIRED_USE="inspector? ( icu ssl )
1018 - npm? ( ssl )
1019 - system-icu? ( icu )
1020 - system-ssl? ( ssl )"
1021 -
1022 -RESTRICT="!test? ( test )"
1023 -
1024 -RDEPEND=">=app-arch/brotli-1.0.9:=
1025 - >=dev-libs/libuv-1.40.0:=
1026 - >=net-dns/c-ares-1.17.2:=
1027 - >=net-libs/nghttp2-1.41.0:=
1028 - sys-libs/zlib
1029 - system-icu? ( >=dev-libs/icu-67:= )
1030 - system-ssl? ( >=dev-libs/openssl-1.1.1:0= )"
1031 -BDEPEND="${PYTHON_DEPS}
1032 - sys-apps/coreutils
1033 - virtual/pkgconfig
1034 - systemtap? ( dev-util/systemtap )
1035 - test? ( net-misc/curl )
1036 - pax-kernel? ( sys-apps/elfix )"
1037 -DEPEND="${RDEPEND}"
1038 -
1039 -PATCHES=(
1040 - "${FILESDIR}"/${PN}-12.22.1-jinja_collections_abc.patch
1041 - "${FILESDIR}"/${PN}-12.22.5-shared_c-ares_nameser_h.patch
1042 - "${FILESDIR}"/${PN}-15.2.0-global-npm-config.patch
1043 -)
1044 -
1045 -pkg_pretend() {
1046 - (use x86 && ! use cpu_flags_x86_sse2) && \
1047 - die "Your CPU doesn't support the required SSE2 instruction."
1048 -
1049 - if [[ ${MERGE_TYPE} != "binary" ]]; then
1050 - if use lto; then
1051 - if tc-is-gcc; then
1052 - if [[ $(gcc-major-version) -ge 11 ]]; then
1053 - # Bug #787158
1054 - 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"
1055 - fi
1056 - fi
1057 - fi
1058 - fi
1059 -}
1060 -
1061 -src_prepare() {
1062 - tc-export AR CC CXX PKG_CONFIG
1063 - export V=1
1064 - export BUILDTYPE=Release
1065 -
1066 - # fix compilation on Darwin
1067 - # https://code.google.com/p/gyp/issues/detail?id=260
1068 - sed -i -e "/append('-arch/d" tools/gyp/pylib/gyp/xcode_emulation.py || die
1069 -
1070 - # less verbose install output (stating the same as portage, basically)
1071 - sed -i -e "/print/d" tools/install.py || die
1072 -
1073 - # proper libdir, hat tip @ryanpcmcquen https://github.com/iojs/io.js/issues/504
1074 - local LIBDIR=$(get_libdir)
1075 - sed -i -e "s|lib/|${LIBDIR}/|g" tools/install.py || die
1076 - sed -i -e "s/'lib'/'${LIBDIR}'/" deps/npm/lib/npm.js || die
1077 -
1078 - # Avoid writing a depfile, not useful
1079 - sed -i -e "/DEPFLAGS =/d" tools/gyp/pylib/gyp/generator/make.py || die
1080 -
1081 - sed -i -e "/'-O3'/d" common.gypi node.gypi || die
1082 -
1083 - # debug builds. change install path, remove optimisations and override buildtype
1084 - if use debug; then
1085 - sed -i -e "s|out/Release/|out/Debug/|g" tools/install.py || die
1086 - BUILDTYPE=Debug
1087 - fi
1088 -
1089 - # We need to disable mprotect on two files when it builds Bug 694100.
1090 - use pax-kernel && PATCHES+=( "${FILESDIR}"/${PN}-13.8.0-paxmarking.patch )
1091 -
1092 - # All this test does is check if the npm CLI produces warnings of any sort,
1093 - # failing if it does. Overkill, much? Especially given one possible warning
1094 - # is that there is a newer version of npm available upstream (yes, it does
1095 - # use the network if available), thus making it a real possibility for this
1096 - # test to begin failing one day even though it was fine before.
1097 - rm -f test/parallel/test-release-npm.js
1098 -
1099 - default
1100 -}
1101 -
1102 -src_configure() {
1103 - xdg_environment_reset
1104 -
1105 - # LTO compiler flags are handled by configure.py itself
1106 - filter-flags '-flto*'
1107 -
1108 - local myconf=(
1109 - --shared-brotli
1110 - --shared-cares
1111 - --shared-libuv
1112 - --shared-nghttp2
1113 - --shared-zlib
1114 - )
1115 - use debug && myconf+=( --debug )
1116 - use lto && myconf+=( --enable-lto )
1117 - if use system-icu; then
1118 - myconf+=( --with-intl=system-icu )
1119 - elif use icu; then
1120 - myconf+=( --with-intl=full-icu )
1121 - else
1122 - myconf+=( --with-intl=none )
1123 - fi
1124 - use inspector || myconf+=( --without-inspector )
1125 - use npm || myconf+=( --without-npm )
1126 - use snapshot || myconf+=( --without-node-snapshot )
1127 - if use ssl; then
1128 - use system-ssl && myconf+=( --shared-openssl --openssl-use-def-ca-store )
1129 - else
1130 - myconf+=( --without-ssl )
1131 - fi
1132 -
1133 - local myarch=""
1134 - case ${ABI} in
1135 - amd64) myarch="x64";;
1136 - arm) myarch="arm";;
1137 - arm64) myarch="arm64";;
1138 - lp64*) myarch="riscv64";;
1139 - ppc64) myarch="ppc64";;
1140 - x32) myarch="x32";;
1141 - x86) myarch="ia32";;
1142 - *) myarch="${ABI}";;
1143 - esac
1144 -
1145 - GYP_DEFINES="linux_use_gold_flags=0
1146 - linux_use_bundled_binutils=0
1147 - linux_use_bundled_gold=0" \
1148 - "${EPYTHON}" configure.py \
1149 - --prefix="${EPREFIX}"/usr \
1150 - --dest-cpu=${myarch} \
1151 - $(use_with systemtap dtrace) \
1152 - "${myconf[@]}" || die
1153 -}
1154 -
1155 -src_compile() {
1156 - emake -C out
1157 -}
1158 -
1159 -src_install() {
1160 - local LIBDIR="${ED}/usr/$(get_libdir)"
1161 - default
1162 -
1163 - pax-mark -m "${ED}"/usr/bin/node
1164 -
1165 - # set up a symlink structure that node-gyp expects..
1166 - dodir /usr/include/node/deps/{v8,uv}
1167 - dosym . /usr/include/node/src
1168 - for var in deps/{uv,v8}/include; do
1169 - dosym ../.. /usr/include/node/${var}
1170 - done
1171 -
1172 - if use doc; then
1173 - docinto html
1174 - dodoc -r "${S}"/doc/*
1175 - fi
1176 -
1177 - if use npm; then
1178 - keepdir /etc/npm
1179 -
1180 - # Install bash completion for `npm`
1181 - local tmp_npm_completion_file="$(TMPDIR="${T}" mktemp -t npm.XXXXXXXXXX)"
1182 - "${ED}/usr/bin/npm" completion > "${tmp_npm_completion_file}"
1183 - newbashcomp "${tmp_npm_completion_file}" npm
1184 -
1185 - # Move man pages
1186 - doman "${LIBDIR}"/node_modules/npm/man/man{1,5,7}/*
1187 -
1188 - # Clean up
1189 - rm -f "${LIBDIR}"/node_modules/npm/{.mailmap,.npmignore,Makefile}
1190 - rm -rf "${LIBDIR}"/node_modules/npm/{doc,html,man}
1191 -
1192 - local find_exp="-or -name"
1193 - local find_name=()
1194 - for match in "AUTHORS*" "CHANGELOG*" "CONTRIBUT*" "README*" \
1195 - ".travis.yml" ".eslint*" ".wercker.yml" ".npmignore" \
1196 - "*.md" "*.markdown" "*.bat" "*.cmd"; do
1197 - find_name+=( ${find_exp} "${match}" )
1198 - done
1199 -
1200 - # Remove various development and/or inappropriate files and
1201 - # useless docs of dependend packages.
1202 - find "${LIBDIR}"/node_modules \
1203 - \( -type d -name examples \) -or \( -type f \( \
1204 - -iname "LICEN?E*" \
1205 - "${find_name[@]}" \
1206 - \) \) -exec rm -rf "{}" \;
1207 - fi
1208 -
1209 - mv "${ED}"/usr/share/doc/node "${ED}"/usr/share/doc/${PF} || die
1210 -}
1211 -
1212 -src_test() {
1213 - if has usersandbox ${FEATURES}; then
1214 - rm -f "${S}"/test/parallel/test-fs-mkdir.js
1215 - ewarn "You are emerging ${PN} with 'usersandbox' enabled. Excluding tests known to fail in this mode." \
1216 - "For full test coverage, emerge =${CATEGORY}/${PF} with 'FEATURES=-usersandbox'."
1217 - fi
1218 -
1219 - out/${BUILDTYPE}/cctest || die
1220 - "${EPYTHON}" tools/test.py --mode=${BUILDTYPE,,} --flaky-tests=dontcare -J message parallel sequential || die
1221 -}