public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: net-libs/nodejs/files/, net-libs/nodejs/
@ 2016-10-25  6:29 Jeroen Roovers
  0 siblings, 0 replies; 36+ messages in thread
From: Jeroen Roovers @ 2016-10-25  6:29 UTC (permalink / raw
  To: gentoo-commits

commit:     230a3c24fda0668418a596eedf9201495aa2492b
Author:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
AuthorDate: Tue Oct 25 06:28:59 2016 +0000
Commit:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
CommitDate: Tue Oct 25 06:28:59 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=230a3c24

net-libs/nodejs: Old.

Package-Manager: portage-2.3.2

 net-libs/nodejs/Manifest                  |  12 --
 net-libs/nodejs/files/nodejs-v8-3.5.patch |  11 --
 net-libs/nodejs/nodejs-0.12.7.ebuild      | 123 -------------------
 net-libs/nodejs/nodejs-4.4.0.ebuild       | 143 ----------------------
 net-libs/nodejs/nodejs-4.4.1.ebuild       | 143 ----------------------
 net-libs/nodejs/nodejs-4.4.7.ebuild       | 144 ----------------------
 net-libs/nodejs/nodejs-4.5.0.ebuild       | 144 ----------------------
 net-libs/nodejs/nodejs-5.10.1.ebuild      | 195 ------------------------------
 net-libs/nodejs/nodejs-5.11.0.ebuild      | 195 ------------------------------
 net-libs/nodejs/nodejs-5.9.1.ebuild       | 195 ------------------------------
 net-libs/nodejs/nodejs-6.5.0.ebuild       | 193 -----------------------------
 net-libs/nodejs/nodejs-6.6.0.ebuild       | 193 -----------------------------
 net-libs/nodejs/nodejs-6.7.0.ebuild       | 193 -----------------------------
 net-libs/nodejs/nodejs-6.8.1.ebuild       | 193 -----------------------------
 14 files changed, 2077 deletions(-)

diff --git a/net-libs/nodejs/Manifest b/net-libs/nodejs/Manifest
index bca0c63..280c25f 100644
--- a/net-libs/nodejs/Manifest
+++ b/net-libs/nodejs/Manifest
@@ -1,19 +1,7 @@
 DIST node-v0.12.10.tar.gz 19572955 SHA256 edbd3710512ec7518a3de4cabf9bfee6d12f278eef2e4b53422c7b063f6b976d SHA512 d217f52dfedb5355df89b9c726f6bc68e53a713e6e005a66beefdbd20666b55770bab2eca6f39275aa1a64aca922a2a78808900ebaa4005eb21042a915413a7b WHIRLPOOL 4fe3e370cc645672590483e4b388a37a82fb04dfbbcf16a7a9cc2c1a47600e650ae5712133b205c3067180305a61e76fde9a7b78ad53d25f8f07b97e86271751
 DIST node-v0.12.6.tar.gz 19750717 SHA256 7a3b5ac351973a9dee8edbf0684bc8d0dea44b231e42274ffb008141ffa19ad2 SHA512 a7f1c88d8df0f65d986e283b859466a34459f8ebdd3232f4906f5ebd53c1a019a553eadcc50bcb5fe8252441c567692b9ada36e8b158ed818971cd927bf1b29f WHIRLPOOL 3677bee6016647282e877f4676fc3731ca49d9b5ccda6d99f8fc3f16e56fcf30072adb494539b9714d0b3afb657457a16fecab682ab62fd501e789f008255380
-DIST node-v0.12.7.tar.gz 20063992 SHA256 b23d64df051c9c969b0c583f802d5d71de342e53067127a5061415be7e12f39d SHA512 0c9cb7542530463e7703435c8d819949785c1c6497c6d98f9854ca615fe33a62f451833e856f0159b836a698b4dee5d165fa505bad5d474f664e1533090d8606 WHIRLPOOL 647391b8c49fda868c14bd4eb3089cac139f50e710ac6b141ea82e1013c4ff7d40cdb0e88d69604d06e3bd07775876c754211a2b099685cb7353ae5708812525
-DIST node-v4.4.0.tar.xz 13107524 SHA256 6ae44ae9a9cd1f102ca7f3ea09ca6223afe88fab4911f1bf21c9da2a1e795f1d SHA512 4bb1f660c5a80fffb3399c4465c311bd13c2f78e65fc9aaa7df96d3c2db5d3b3de3b4be9f50040065fa1889ad247a2949a84a6d9044301a636ebb8baf73edd4d WHIRLPOOL 50b126fc3a7b8b6be693334375b4704217b4e6f00e7e32404a17ebad512e3cc72434f00863a1e69bb85e01859054faac7bb5c2d25889b8ef131191a388528e0c
-DIST node-v4.4.1.tar.xz 13112424 SHA256 3a37c89a3ac965688f9e6557579993b73eee44195a5fd53fded03a667d3d6a0a SHA512 53b479085a6f43b5932c75729b21a3efa67534ce6c10445c2ba66492a0e3f12d8e5de8d75bd583239b68f3d5ac1b639d45fd43d631d8a5ef013e25bff0fdab22 WHIRLPOOL d9cee2193a0f94f17ab84722ffb9999f156014cbe0b83bd138d5404ec543a3398bb4d1b965940b19230cf069337dfb5e0159aae3e694137e09261133ae2e2fdd
 DIST node-v4.4.6.tar.xz 13211732 SHA256 0f6bbfbea525469c91932b1aac35e0810e6bcda96f1c720e42a433942ee66106 SHA512 b06219ab63de89eeb1268d677769cb17c8290555962b1cbfaafbede3d2dbefaafb455f32a611160fcfbf7400059fa79ec3f9c2f3287c8746669c05b42d7aaa7c WHIRLPOOL ffb1372193a72a2e1ae6e21c281a28e770443e36e5e349b48bf30e92b3f6f9d9ba901794eaf1f7c8eaf05c7365e1249bb210760fa26680ed13d1a6d8854c8ce8
-DIST node-v4.4.7.tar.xz 13231156 SHA256 1ef900b9cb3ffb617c433a3247a9d67ff36c9455cbc9c34175bee24bdbfdf731 SHA512 0b4df07057ad8661fec7a2194d608e37d9c4d50b3e023bcc8c3b40308af6925098c280ca4b0c96454ea4f03f556d6b92133a6e5d3d61036afc5dd89e18c95c9e WHIRLPOOL 3559240a51f77c64db5edd8d3436085f8a4164a25e442df90bdd4c4a81f06a863fe94c4bf26e7ad5b0c1bf6e1102b769fc18fa89ea76c548d84e4cfc9ee43d87
-DIST node-v4.5.0.tar.xz 13271372 SHA256 97b99d378c56802444208409568e2e66c46332897f06aead74d1ffbe733bd488 SHA512 3f4f826c5a6b7717b4fa000475a7f32d47f92ea6a7d83752139713dae5544ec6d4db39f3200b4162bbe262d85d8f697938d83fb96b83acc572d30cd7fc2c7127 WHIRLPOOL 7321132e887f21f83ed87455c2783d947acaa65e66915bd41b25451b49ebc584161695c96e990a54e0439a34089519a0d4ca03f1463c5b29f44fae0ee07dd46f
 DIST node-v4.6.0.tar.xz 13295184 SHA256 42910dbd34e49bfc40580e06753947c30d31101455a38e9f0343a23d67c0c694 SHA512 d3e79f7e361af888955f311818c0d0401a29fd99a86fa125924b3f7891f209f84f4f662dba071c9bdbb3d11a3b3097274d95bdc4a51143a2e816400ff71b041f WHIRLPOOL 011d1de801b87be413b7838e0b0ea216909bbe4a2d88a5045536d65d3b85cca64f9e94923859a65d8b6ed1fcbbf34a9463c7a8fc036ba1f0b902f8b4a07b83ac
 DIST node-v4.6.1.tar.xz 13295568 SHA256 fe2a85df8758001878abb5bbaf17a6b6cdc12b3e465b1d3bace83b37fdf0345a SHA512 4eb2acbe13ee2373922420e3238be63d2108dacba640438bddbdea12ec2de9c655f33db611e4c0654b66bf4fdb844a7b6554a823aac73171b17599096856abdb WHIRLPOOL a6d21cce7ab8c430528682f78a6e6492f753c87949b7b1bdc15dc02911559cd89deb45329c2ba32da57b776dd4feaabec8a3e7a59a78094cfb079261b6475c76
-DIST node-v5.10.1.tar.xz 13317868 SHA256 9eecd853cdd06ebee24a1bb8d753cd20af5a19297c5d3a3b1680fe36b47d5cbe SHA512 e0dcd5fd6d23c4905a4fbf483621cb2a878516a5bfeefad68901edd1be2dba76281cd22fff073f5f8e2432dbac3c68728c597e1aab753ce3b3dfe9e0674ef808 WHIRLPOOL 2aecbb9a538320c09d6306a756ed6cde2537fd4d9e5ef9b6713956062178ba8070d060e1ae2fab264d834fbb1e5452eaf744b4c0a9cd70ffa181e6c479b4086a
-DIST node-v5.11.0.tar.xz 13298460 SHA256 083766aff72fc5c78f6999dd0d00bc0340a052ab270fd60d6928b719ca2b3fd1 SHA512 47f2b25007877dc7597af9dd841e4f30197a9df6dcf01f45336c2eaec8d5c75057534b962df361e9bdaf461dab8cb97a878d326d74105a38a7797b77ed67df44 WHIRLPOOL 0b670baa82e3dbd0a2492476f3ebca8006d7c1c4efef47e85954624ad776517a3f0403d8556e438c16c8373818bed444bc66a72500c3a55025d50cdb694ec411
-DIST node-v5.9.1.tar.xz 13226192 SHA256 668067077dfceb3d2039d0df693fec6aa20b920d01a42b53dc61d4aa91e0ae55 SHA512 34774d88eda775bdf153a76bd02b26c499e4a9ef47d8e94ad7b66d360d04891b45ce8f211833ca69e8c0a786ca36424b0c620a90b1fbc6d5afc77d20f4b5fadb WHIRLPOOL d666aa6fd4d577f7a6f89c3bfa75e62a0281e0dd7592373f384bfe01fa2dcbf81156bf6a21fc2097d48d5024a39057713c2593f4609c70ff8f84090471b073a9
-DIST node-v6.5.0.tar.xz 15555848 SHA256 ddf2056a9164c723db707b6c016f9e617f17166298dc88c5a7cb1d7d5ddb1290 SHA512 1a0ba9de2b6f270d124275cb1d098fd4c667a6c408a48fac3d92bfc3d957e3de5c1fea8172c96dd94a3b7826ef1d93859152cc835a07cf07d7b09858f874b2da WHIRLPOOL 3ffdbbcbbe94a0bf8f7bbe86a9832cc97f9796a35e7638daf07acd9822ef9b0afb4946e24664e15007b8c31948c3a686f2208a96d72acf3337a7fa7e1a443b44
-DIST node-v6.6.0.tar.xz 15580876 SHA256 640485d2b672d3313203eae164576539e61f1e55d68122ff2c7fb59896e21a33 SHA512 3b382f98d9c92dbb1fa9c93969b14aa0be8d7b7eabbecf8be30ff92e9a5519cbaa5f5349b2dc88e919281638d6b7f109ff0f2fa03f84c7765c0fae496d51b1f2 WHIRLPOOL 395a4cfe26877cf6f1271d677d1538ddb78024030f5d8404426e7ef2acc4eb88e0914d8f27760cac4508dccbedfb1cfe8692eeaa2e091e2dc6b961a25053b273
-DIST node-v6.7.0.tar.xz 15609148 SHA256 ceb028324aab1ee8c7ea6a62026f036f3ea71f5ef5212593d0f833f999dd3be5 SHA512 acf86362e33d10c5c59349a086fa2e07368e8bbb58b00c3d0df2c571e8ba637c5bee8f08d344d8693a24fcd75884448f9f3d389f2af48de6a86fc6b064c3e1ba WHIRLPOOL 3c3adf10ad6abd5aa71b5773def1661b2acd873c63ebcbe79c8f409ed83fc309a1cde4a45d241687485e709a5996062a046439bad8f2644616c5c839522baf4b
-DIST node-v6.8.1.tar.xz 15619508 SHA256 a44ff48de369381c506661996dec568085d42998613ed2a23ebb37fddc12c99a SHA512 9da04e126c3ed98f8fd7f310a08349804db9d8fa65f6a305df013e7f82a7afcad627da224ee73bd6142d4ae266ed9aa6ba04839f2cf7e051413b958c9296603e WHIRLPOOL 9d0144a7c908ad5db40a772a19a89e9ef7f7abf7201c79238bb97a8f6f2f7d80b16d89e10796f60cf407388e3ee753b5c308b8d9401eb10185dd3c61c0c25850
 DIST node-v6.9.0.tar.xz 15615224 SHA256 656342ed8a84c95a36af902f309aeeca7103b16d61c02925bd37bd47d2194915 SHA512 c8dc6899e8ec9d97d37b72a0ff6483069c494b05020ff6cf101c2b8b2774ed2673138fc260dc90b7317123d77daf89d0ba3321deda47457fa892456054f93337 WHIRLPOOL e65031667b619e0449924272359db01fd846dc68238e45a2bc4890d6f539b32dc173bab282c858412f2d34b73cdf68371a5677d081f9b56fb19791a9354ad740
 DIST node-v6.9.1.tar.xz 15617228 SHA256 0bdd8d1305777cc8cd206129ea494d6c6ce56001868dd80147aff531d6df0729 SHA512 3f1c724dfc9f76f101064be6ef222482f3b7e53d8d6c026b3d166dfbdd104f05055cf04a3205679793fa12f946548fc06e3272527655b28002d0bf0e7eccdf1b WHIRLPOOL dd1607b4c193f7ef05f7d0571f31c72133464e2ebd023278cf055d7156daa6e194e5170948f32cae8027f1ef5c6eaef6a89bf7271ed386d45c787b30e57880fb

diff --git a/net-libs/nodejs/files/nodejs-v8-3.5.patch b/net-libs/nodejs/files/nodejs-v8-3.5.patch
deleted file mode 100644
index 87a8eed..00000000
--- a/net-libs/nodejs/files/nodejs-v8-3.5.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/node_buffer.cc	2011-10-25 08:45:00.665600749 +0200
-+++ src/node_buffer.cc	2011-10-25 08:45:31.168622565 +0200
-@@ -478,7 +478,7 @@
- 
-   if (written > 0 && p[written-1] == '\0' && char_written == length) {
-     uint16_t last_char;
--    s->Write(&last_char, length - 1, 1, String::NO_HINTS);
-+    s->Write(&last_char, length - 1, 1, String::NO_OPTIONS);
-     if (last_char != 0 || written > s->Utf8Length()) {
-       written--;
-     }

diff --git a/net-libs/nodejs/nodejs-0.12.7.ebuild b/net-libs/nodejs/nodejs-0.12.7.ebuild
deleted file mode 100644
index e0e1b3e..00000000
--- a/net-libs/nodejs/nodejs-0.12.7.ebuild
+++ /dev/null
@@ -1,123 +0,0 @@
-# Copyright 1999-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=5
-
-# has known failures. sigh.
-RESTRICT="test"
-
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="threads"
-
-inherit pax-utils python-single-r1 toolchain-funcs
-
-DESCRIPTION="Evented IO for V8 Javascript"
-HOMEPAGE="http://nodejs.org/"
-SRC_URI="http://nodejs.org/dist/v${PV}/node-v${PV}.tar.gz"
-
-LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~x86 ~x64-macos"
-IUSE="debug icu +npm +snapshot +ssl"
-
-RDEPEND="icu? ( dev-libs/icu )
-	${PYTHON_DEPS}
-	ssl? ( dev-libs/openssl:0=[-bindist] )
-	>=net-libs/http-parser-2.3
-	>=dev-libs/libuv-1.4.2"
-DEPEND="${RDEPEND}"
-
-S="${WORKDIR}/node-v${PV}"
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-
-src_prepare() {
-	tc-export CC CXX PKG_CONFIG
-	export V=1 # Verbose build
-	export BUILDTYPE=Release
-
-	# fix compilation on Darwin
-	# https://code.google.com/p/gyp/issues/detail?id=260
-	sed -i -e "/append('-arch/d" tools/gyp/pylib/gyp/xcode_emulation.py || die
-
-	# make sure we use python2.* while using gyp
-	sed -i -e "s/python/${EPYTHON}/" deps/npm/node_modules/node-gyp/gyp/gyp || die
-	sed -i -e "s/|| 'python'/|| '${EPYTHON}'/" deps/npm/node_modules/node-gyp/lib/configure.js || die
-
-	# less verbose install output (stating the same as portage, basically)
-	sed -i -e "/print/d" tools/install.py || die
-
-	# proper libdir, hat tip @ryanpcmcquen https://github.com/iojs/io.js/issues/504
-	local LIBDIR=$(get_libdir)
-	sed -i -e "s|lib/|${LIBDIR}/|g" tools/install.py || die
-	sed -i -e "s/'lib'/'${LIBDIR}'/" lib/module.js || die
-	sed -i -e "s|\"lib\"|\"${LIBDIR}\"|" deps/npm/lib/npm.js || die
-
-	# debug builds. change install path, remove optimisations and override buildtype
-	if use debug; then
-		sed -i -e "s|out/Release/|out/Debug/|g" tools/install.py || die
-		BUILDTYPE=Debug
-	fi
-}
-
-src_configure() {
-	local myconf=()
-	local myarch=""
-	use debug && myconf+=( --debug )
-	use icu && myconf+=( --with-intl=system-icu )
-	use npm || myconf+=( --without-npm )
-	use snapshot || myconf+=( --without-snapshot )
-	use ssl || myconf+=( --without-ssl )
-
-	case ${ABI} in
-		x86) myarch="ia32";;
-		amd64) myarch="x64";;
-		arm) myarch="arm";;
-		*) die "Unrecognized ARCH ${ARCH}";;
-	esac
-
-	"${PYTHON}" configure \
-		--prefix="${EPREFIX}"/usr \
-		--dest-cpu=${myarch} \
-		--shared-openssl \
-		--shared-libuv \
-		--shared-http-parser \
-		--shared-zlib \
-		--without-dtrace \
-		"${myconf[@]}" || die
-}
-
-src_compile() {
-	emake -C out mksnapshot
-	pax-mark m "out/${BUILDTYPE}/mksnapshot"
-	emake -C out
-}
-
-src_install() {
-	local LIBDIR="${ED}/usr/$(get_libdir)"
-	emake install DESTDIR="${ED}" PREFIX=/usr
-	use npm && dodoc -r "${LIBDIR}"/node_modules/npm/html
-	rm -rf "${LIBDIR}"/node_modules/npm/{doc,html} || die
-	find "${LIBDIR}"/node_modules -type f -name "LICENSE*" -or -name "LICENCE*" -delete
-
-	# set up a symlink structure that npm expects..
-	dodir /usr/include/node/deps/{v8,uv}
-	dosym . /usr/include/node/src
-	for var in deps/{uv,v8}/include; do
-		dosym ../.. /usr/include/node/${var}
-	done
-
-	pax-mark -m "${ED}"/usr/bin/node
-}
-
-src_test() {
-	declare -xl TESTTYPE="${BUILDTYPE}"
-	"${PYTHON}" tools/test.py --mode=${TESTTYPE} -J message simple || die
-}
-
-pkg_postinst() {
-	einfo "When using node-gyp to install native modules, you can avoid"
-	einfo "having to download the full tarball by doing the following:"
-	einfo ""
-	einfo "node-gyp --nodedir /usr/include/node <command>"
-}

diff --git a/net-libs/nodejs/nodejs-4.4.0.ebuild b/net-libs/nodejs/nodejs-4.4.0.ebuild
deleted file mode 100644
index 5512f91..00000000
--- a/net-libs/nodejs/nodejs-4.4.0.ebuild
+++ /dev/null
@@ -1,143 +0,0 @@
-# Copyright 1999-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=5
-
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="threads"
-
-inherit flag-o-matic pax-utils python-single-r1 toolchain-funcs
-
-DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine"
-HOMEPAGE="https://nodejs.org/"
-SRC_URI="https://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz"
-
-LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~x86 ~x64-macos"
-IUSE="cpu_flags_x86_sse2 debug icu +npm snapshot +ssl test"
-
-RDEPEND="icu? ( >=dev-libs/icu-55:= )
-	npm? ( ${PYTHON_DEPS} )
-	>=net-libs/http-parser-2.5.2:=
-	>=dev-libs/libuv-1.8.0:=
-	>=dev-libs/openssl-1.0.2g:0=[-bindist]
-	sys-libs/zlib"
-DEPEND="${RDEPEND}
-	${PYTHON_DEPS}
-	test? ( net-misc/curl )"
-
-S="${WORKDIR}/node-v${PV}"
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-
-pkg_pretend() {
-	(use x86 && ! use cpu_flags_x86_sse2) && \
-		die "Your CPU doesn't support the required SSE2 instruction."
-
-	( [[ ${MERGE_TYPE} != "binary" ]] && ! test-flag-CXX -std=c++11 ) && \
-		die "Your compiler doesn't support C++11. Use GCC 4.8, Clang 3.3 or newer."
-}
-
-src_prepare() {
-	tc-export CC CXX PKG_CONFIG
-	export V=1 # Verbose build
-	export BUILDTYPE=Release
-
-	# fix compilation on Darwin
-	# https://code.google.com/p/gyp/issues/detail?id=260
-	sed -i -e "/append('-arch/d" tools/gyp/pylib/gyp/xcode_emulation.py || die
-
-	# make sure we use python2.* while using gyp
-	sed -i -e "s/python/${EPYTHON}/" deps/npm/node_modules/node-gyp/gyp/gyp || die
-	sed -i -e "s/|| 'python'/|| '${EPYTHON}'/" deps/npm/node_modules/node-gyp/lib/configure.js || die
-
-	# less verbose install output (stating the same as portage, basically)
-	sed -i -e "/print/d" tools/install.py || die
-
-	# proper libdir, hat tip @ryanpcmcquen https://github.com/iojs/io.js/issues/504
-	local LIBDIR=$(get_libdir)
-	sed -i -e "s|lib/|${LIBDIR}/|g" tools/install.py || die
-	sed -i -e "s/'lib'/'${LIBDIR}'/" lib/module.js || die
-	sed -i -e "s|\"lib\"|\"${LIBDIR}\"|" deps/npm/lib/npm.js || die
-
-	# Avoid a test that I've only been able to reproduce from emerge. It doesnt
-	# seem sandbox related either (invoking it from a sandbox works fine).
-	# The issue is that no stdin handle is openened when asked for one.
-	# It doesn't really belong upstream , so it'll just be removed until someone
-	# with more gentoo-knowledge than me (jbergstroem) figures it out.
-	rm test/parallel/test-stdout-close-unref.js || die
-
-	# debug builds. change install path, remove optimisations and override buildtype
-	if use debug; then
-		sed -i -e "s|out/Release/|out/Debug/|g" tools/install.py || die
-		BUILDTYPE=Debug
-	fi
-
-	epatch_user
-}
-
-src_configure() {
-	local myarch=""
-	local myconf+=( --shared-openssl --shared-libuv --shared-http-parser --shared-zlib )
-	use npm || myconf+=( --without-npm )
-	use icu && myconf+=( --with-intl=system-icu )
-	use snapshot && myconf+=( --with-snapshot )
-	use ssl || myconf+=( --without-ssl )
-	use debug && myconf+=( --debug )
-
-	case ${ABI} in
-		x86) myarch="ia32";;
-		amd64) myarch="x64";;
-		x32) myarch="x32";;
-		arm) myarch="arm";;
-		arm64) myarch="arm64";;
-		*) die "Unrecognized ARCH ${ARCH}";;
-	esac
-
-	GYP_DEFINES="linux_use_gold_flags=0
-		linux_use_bundled_binutils=0
-		linux_use_bundled_gold=0" \
-	"${PYTHON}" configure \
-		--prefix="${EPREFIX}"/usr \
-		--dest-cpu=${myarch} \
-		--without-dtrace \
-		"${myconf[@]}" || die
-}
-
-src_compile() {
-	emake -C out mksnapshot
-	pax-mark m "out/${BUILDTYPE}/mksnapshot"
-	emake -C out
-}
-
-src_install() {
-	local LIBDIR="${ED}/usr/$(get_libdir)"
-	emake install DESTDIR="${ED}" PREFIX=/usr
-	if use npm; then
-		dodoc -r "${LIBDIR}"/node_modules/npm/html
-		rm -rf "${LIBDIR}"/node_modules/npm/{doc,html} || die
-		find "${LIBDIR}"/node_modules -type f -name "LICENSE*" -or -name "LICENCE*" -delete || die
-	fi
-
-	# set up a symlink structure that npm expects..
-	dodir /usr/include/node/deps/{v8,uv}
-	dosym . /usr/include/node/src
-	for var in deps/{uv,v8}/include; do
-		dosym ../.. /usr/include/node/${var}
-	done
-
-	pax-mark -m "${ED}"/usr/bin/node
-}
-
-src_test() {
-	out/${BUILDTYPE}/cctest || die
-	"${PYTHON}" tools/test.py --mode=${BUILDTYPE,,} -J message parallel sequential || die
-}
-
-pkg_postinst() {
-	einfo "When using node-gyp to install native modules, you can avoid"
-	einfo "having to download the full tarball by doing the following:"
-	einfo ""
-	einfo "node-gyp --nodedir /usr/include/node <command>"
-}

diff --git a/net-libs/nodejs/nodejs-4.4.1.ebuild b/net-libs/nodejs/nodejs-4.4.1.ebuild
deleted file mode 100644
index 5b627ae..00000000
--- a/net-libs/nodejs/nodejs-4.4.1.ebuild
+++ /dev/null
@@ -1,143 +0,0 @@
-# Copyright 1999-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=5
-
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="threads"
-
-inherit flag-o-matic pax-utils python-single-r1 toolchain-funcs
-
-DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine"
-HOMEPAGE="https://nodejs.org/"
-SRC_URI="https://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz"
-
-LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
-SLOT="0"
-KEYWORDS="amd64 ~arm ~arm64 x86 ~x64-macos"
-IUSE="cpu_flags_x86_sse2 debug icu +npm snapshot +ssl test"
-
-RDEPEND="icu? ( >=dev-libs/icu-55:= )
-	npm? ( ${PYTHON_DEPS} )
-	>=net-libs/http-parser-2.5.2:=
-	>=dev-libs/libuv-1.8.0:=
-	>=dev-libs/openssl-1.0.2g:0=[-bindist]
-	sys-libs/zlib"
-DEPEND="${RDEPEND}
-	${PYTHON_DEPS}
-	test? ( net-misc/curl )"
-
-S="${WORKDIR}/node-v${PV}"
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-
-pkg_pretend() {
-	(use x86 && ! use cpu_flags_x86_sse2) && \
-		die "Your CPU doesn't support the required SSE2 instruction."
-
-	( [[ ${MERGE_TYPE} != "binary" ]] && ! test-flag-CXX -std=c++11 ) && \
-		die "Your compiler doesn't support C++11. Use GCC 4.8, Clang 3.3 or newer."
-}
-
-src_prepare() {
-	tc-export CC CXX PKG_CONFIG
-	export V=1 # Verbose build
-	export BUILDTYPE=Release
-
-	# fix compilation on Darwin
-	# https://code.google.com/p/gyp/issues/detail?id=260
-	sed -i -e "/append('-arch/d" tools/gyp/pylib/gyp/xcode_emulation.py || die
-
-	# make sure we use python2.* while using gyp
-	sed -i -e "s/python/${EPYTHON}/" deps/npm/node_modules/node-gyp/gyp/gyp || die
-	sed -i -e "s/|| 'python'/|| '${EPYTHON}'/" deps/npm/node_modules/node-gyp/lib/configure.js || die
-
-	# less verbose install output (stating the same as portage, basically)
-	sed -i -e "/print/d" tools/install.py || die
-
-	# proper libdir, hat tip @ryanpcmcquen https://github.com/iojs/io.js/issues/504
-	local LIBDIR=$(get_libdir)
-	sed -i -e "s|lib/|${LIBDIR}/|g" tools/install.py || die
-	sed -i -e "s/'lib'/'${LIBDIR}'/" lib/module.js || die
-	sed -i -e "s|\"lib\"|\"${LIBDIR}\"|" deps/npm/lib/npm.js || die
-
-	# Avoid a test that I've only been able to reproduce from emerge. It doesnt
-	# seem sandbox related either (invoking it from a sandbox works fine).
-	# The issue is that no stdin handle is openened when asked for one.
-	# It doesn't really belong upstream , so it'll just be removed until someone
-	# with more gentoo-knowledge than me (jbergstroem) figures it out.
-	rm test/parallel/test-stdout-close-unref.js || die
-
-	# debug builds. change install path, remove optimisations and override buildtype
-	if use debug; then
-		sed -i -e "s|out/Release/|out/Debug/|g" tools/install.py || die
-		BUILDTYPE=Debug
-	fi
-
-	epatch_user
-}
-
-src_configure() {
-	local myarch=""
-	local myconf+=( --shared-openssl --shared-libuv --shared-http-parser --shared-zlib )
-	use npm || myconf+=( --without-npm )
-	use icu && myconf+=( --with-intl=system-icu )
-	use snapshot && myconf+=( --with-snapshot )
-	use ssl || myconf+=( --without-ssl )
-	use debug && myconf+=( --debug )
-
-	case ${ABI} in
-		x86) myarch="ia32";;
-		amd64) myarch="x64";;
-		x32) myarch="x32";;
-		arm) myarch="arm";;
-		arm64) myarch="arm64";;
-		*) die "Unrecognized ARCH ${ARCH}";;
-	esac
-
-	GYP_DEFINES="linux_use_gold_flags=0
-		linux_use_bundled_binutils=0
-		linux_use_bundled_gold=0" \
-	"${PYTHON}" configure \
-		--prefix="${EPREFIX}"/usr \
-		--dest-cpu=${myarch} \
-		--without-dtrace \
-		"${myconf[@]}" || die
-}
-
-src_compile() {
-	emake -C out mksnapshot
-	pax-mark m "out/${BUILDTYPE}/mksnapshot"
-	emake -C out
-}
-
-src_install() {
-	local LIBDIR="${ED}/usr/$(get_libdir)"
-	emake install DESTDIR="${ED}" PREFIX=/usr
-	if use npm; then
-		dodoc -r "${LIBDIR}"/node_modules/npm/html
-		rm -rf "${LIBDIR}"/node_modules/npm/{doc,html} || die
-		find "${LIBDIR}"/node_modules -type f -name "LICENSE*" -or -name "LICENCE*" -delete || die
-	fi
-
-	# set up a symlink structure that npm expects..
-	dodir /usr/include/node/deps/{v8,uv}
-	dosym . /usr/include/node/src
-	for var in deps/{uv,v8}/include; do
-		dosym ../.. /usr/include/node/${var}
-	done
-
-	pax-mark -m "${ED}"/usr/bin/node
-}
-
-src_test() {
-	out/${BUILDTYPE}/cctest || die
-	"${PYTHON}" tools/test.py --mode=${BUILDTYPE,,} -J message parallel sequential || die
-}
-
-pkg_postinst() {
-	einfo "When using node-gyp to install native modules, you can avoid"
-	einfo "having to download the full tarball by doing the following:"
-	einfo ""
-	einfo "node-gyp --nodedir /usr/include/node <command>"
-}

diff --git a/net-libs/nodejs/nodejs-4.4.7.ebuild b/net-libs/nodejs/nodejs-4.4.7.ebuild
deleted file mode 100644
index 4da7b46..00000000
--- a/net-libs/nodejs/nodejs-4.4.7.ebuild
+++ /dev/null
@@ -1,144 +0,0 @@
-# Copyright 1999-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=5
-
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="threads"
-
-inherit flag-o-matic pax-utils python-single-r1 toolchain-funcs
-
-DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine"
-HOMEPAGE="https://nodejs.org/"
-SRC_URI="https://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz"
-
-LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86 ~x64-macos"
-IUSE="cpu_flags_x86_sse2 debug icu +npm snapshot +ssl test"
-
-RDEPEND="icu? ( >=dev-libs/icu-55:= )
-	npm? ( ${PYTHON_DEPS} )
-	>=net-libs/http-parser-2.5.2:=
-	>=dev-libs/libuv-1.8.0:=
-	>=dev-libs/openssl-1.0.2g:0=[-bindist]
-	sys-libs/zlib"
-DEPEND="${RDEPEND}
-	${PYTHON_DEPS}
-	test? ( net-misc/curl )"
-
-S="${WORKDIR}/node-v${PV}"
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-
-pkg_pretend() {
-	(use x86 && ! use cpu_flags_x86_sse2) && \
-		die "Your CPU doesn't support the required SSE2 instruction."
-
-	( [[ ${MERGE_TYPE} != "binary" ]] && ! test-flag-CXX -std=c++11 ) && \
-		die "Your compiler doesn't support C++11. Use GCC 4.8, Clang 3.3 or newer."
-}
-
-src_prepare() {
-	tc-export CC CXX PKG_CONFIG
-	export V=1 # Verbose build
-	export BUILDTYPE=Release
-
-	# fix compilation on Darwin
-	# https://code.google.com/p/gyp/issues/detail?id=260
-	sed -i -e "/append('-arch/d" tools/gyp/pylib/gyp/xcode_emulation.py || die
-
-	# make sure we use python2.* while using gyp
-	sed -i -e "s/python/${EPYTHON}/" deps/npm/node_modules/node-gyp/gyp/gyp || die
-	sed -i -e "s/|| 'python'/|| '${EPYTHON}'/" deps/npm/node_modules/node-gyp/lib/configure.js || die
-
-	# less verbose install output (stating the same as portage, basically)
-	sed -i -e "/print/d" tools/install.py || die
-
-	# proper libdir, hat tip @ryanpcmcquen https://github.com/iojs/io.js/issues/504
-	local LIBDIR=$(get_libdir)
-	sed -i -e "s|lib/|${LIBDIR}/|g" tools/install.py || die
-	sed -i -e "s/'lib'/'${LIBDIR}'/" lib/module.js || die
-	sed -i -e "s|\"lib\"|\"${LIBDIR}\"|" deps/npm/lib/npm.js || die
-
-	# Avoid a test that I've only been able to reproduce from emerge. It doesnt
-	# seem sandbox related either (invoking it from a sandbox works fine).
-	# The issue is that no stdin handle is openened when asked for one.
-	# It doesn't really belong upstream , so it'll just be removed until someone
-	# with more gentoo-knowledge than me (jbergstroem) figures it out.
-	rm test/parallel/test-stdout-close-unref.js || die
-
-	# debug builds. change install path, remove optimisations and override buildtype
-	if use debug; then
-		sed -i -e "s|out/Release/|out/Debug/|g" tools/install.py || die
-		BUILDTYPE=Debug
-	fi
-
-	epatch_user
-}
-
-src_configure() {
-	local myarch=""
-	local myconf+=( --shared-openssl --shared-libuv --shared-http-parser --shared-zlib )
-	use npm || myconf+=( --without-npm )
-	use icu && myconf+=( --with-intl=system-icu )
-	use snapshot && myconf+=( --with-snapshot )
-	use ssl || myconf+=( --without-ssl )
-	use debug && myconf+=( --debug )
-
-	case ${ABI} in
-		amd64) myarch="x64";;
-		arm) myarch="arm";;
-		arm64) myarch="arm64";;
-		ppc64) myarch="ppc64";;
-		x32) myarch="x32";;
-		x86) myarch="ia32";;
-		*) die "Unrecognized ARCH ${ARCH}";;
-	esac
-
-	GYP_DEFINES="linux_use_gold_flags=0
-		linux_use_bundled_binutils=0
-		linux_use_bundled_gold=0" \
-	"${PYTHON}" configure \
-		--prefix="${EPREFIX}"/usr \
-		--dest-cpu=${myarch} \
-		--without-dtrace \
-		"${myconf[@]}" || die
-}
-
-src_compile() {
-	emake -C out mksnapshot
-	pax-mark m "out/${BUILDTYPE}/mksnapshot"
-	emake -C out
-}
-
-src_install() {
-	local LIBDIR="${ED}/usr/$(get_libdir)"
-	emake install DESTDIR="${ED}" PREFIX=/usr
-	if use npm; then
-		dodoc -r "${LIBDIR}"/node_modules/npm/html
-		rm -rf "${LIBDIR}"/node_modules/npm/{doc,html} || die
-		find "${LIBDIR}"/node_modules -type f -name "LICENSE*" -or -name "LICENCE*" -delete || die
-	fi
-
-	# set up a symlink structure that npm expects..
-	dodir /usr/include/node/deps/{v8,uv}
-	dosym . /usr/include/node/src
-	for var in deps/{uv,v8}/include; do
-		dosym ../.. /usr/include/node/${var}
-	done
-
-	pax-mark -m "${ED}"/usr/bin/node
-}
-
-src_test() {
-	out/${BUILDTYPE}/cctest || die
-	"${PYTHON}" tools/test.py --mode=${BUILDTYPE,,} -J message parallel sequential || die
-}
-
-pkg_postinst() {
-	einfo "When using node-gyp to install native modules, you can avoid"
-	einfo "having to download the full tarball by doing the following:"
-	einfo ""
-	einfo "node-gyp --nodedir /usr/include/node <command>"
-}

diff --git a/net-libs/nodejs/nodejs-4.5.0.ebuild b/net-libs/nodejs/nodejs-4.5.0.ebuild
deleted file mode 100644
index 4da7b46..00000000
--- a/net-libs/nodejs/nodejs-4.5.0.ebuild
+++ /dev/null
@@ -1,144 +0,0 @@
-# Copyright 1999-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=5
-
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="threads"
-
-inherit flag-o-matic pax-utils python-single-r1 toolchain-funcs
-
-DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine"
-HOMEPAGE="https://nodejs.org/"
-SRC_URI="https://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz"
-
-LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86 ~x64-macos"
-IUSE="cpu_flags_x86_sse2 debug icu +npm snapshot +ssl test"
-
-RDEPEND="icu? ( >=dev-libs/icu-55:= )
-	npm? ( ${PYTHON_DEPS} )
-	>=net-libs/http-parser-2.5.2:=
-	>=dev-libs/libuv-1.8.0:=
-	>=dev-libs/openssl-1.0.2g:0=[-bindist]
-	sys-libs/zlib"
-DEPEND="${RDEPEND}
-	${PYTHON_DEPS}
-	test? ( net-misc/curl )"
-
-S="${WORKDIR}/node-v${PV}"
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-
-pkg_pretend() {
-	(use x86 && ! use cpu_flags_x86_sse2) && \
-		die "Your CPU doesn't support the required SSE2 instruction."
-
-	( [[ ${MERGE_TYPE} != "binary" ]] && ! test-flag-CXX -std=c++11 ) && \
-		die "Your compiler doesn't support C++11. Use GCC 4.8, Clang 3.3 or newer."
-}
-
-src_prepare() {
-	tc-export CC CXX PKG_CONFIG
-	export V=1 # Verbose build
-	export BUILDTYPE=Release
-
-	# fix compilation on Darwin
-	# https://code.google.com/p/gyp/issues/detail?id=260
-	sed -i -e "/append('-arch/d" tools/gyp/pylib/gyp/xcode_emulation.py || die
-
-	# make sure we use python2.* while using gyp
-	sed -i -e "s/python/${EPYTHON}/" deps/npm/node_modules/node-gyp/gyp/gyp || die
-	sed -i -e "s/|| 'python'/|| '${EPYTHON}'/" deps/npm/node_modules/node-gyp/lib/configure.js || die
-
-	# less verbose install output (stating the same as portage, basically)
-	sed -i -e "/print/d" tools/install.py || die
-
-	# proper libdir, hat tip @ryanpcmcquen https://github.com/iojs/io.js/issues/504
-	local LIBDIR=$(get_libdir)
-	sed -i -e "s|lib/|${LIBDIR}/|g" tools/install.py || die
-	sed -i -e "s/'lib'/'${LIBDIR}'/" lib/module.js || die
-	sed -i -e "s|\"lib\"|\"${LIBDIR}\"|" deps/npm/lib/npm.js || die
-
-	# Avoid a test that I've only been able to reproduce from emerge. It doesnt
-	# seem sandbox related either (invoking it from a sandbox works fine).
-	# The issue is that no stdin handle is openened when asked for one.
-	# It doesn't really belong upstream , so it'll just be removed until someone
-	# with more gentoo-knowledge than me (jbergstroem) figures it out.
-	rm test/parallel/test-stdout-close-unref.js || die
-
-	# debug builds. change install path, remove optimisations and override buildtype
-	if use debug; then
-		sed -i -e "s|out/Release/|out/Debug/|g" tools/install.py || die
-		BUILDTYPE=Debug
-	fi
-
-	epatch_user
-}
-
-src_configure() {
-	local myarch=""
-	local myconf+=( --shared-openssl --shared-libuv --shared-http-parser --shared-zlib )
-	use npm || myconf+=( --without-npm )
-	use icu && myconf+=( --with-intl=system-icu )
-	use snapshot && myconf+=( --with-snapshot )
-	use ssl || myconf+=( --without-ssl )
-	use debug && myconf+=( --debug )
-
-	case ${ABI} in
-		amd64) myarch="x64";;
-		arm) myarch="arm";;
-		arm64) myarch="arm64";;
-		ppc64) myarch="ppc64";;
-		x32) myarch="x32";;
-		x86) myarch="ia32";;
-		*) die "Unrecognized ARCH ${ARCH}";;
-	esac
-
-	GYP_DEFINES="linux_use_gold_flags=0
-		linux_use_bundled_binutils=0
-		linux_use_bundled_gold=0" \
-	"${PYTHON}" configure \
-		--prefix="${EPREFIX}"/usr \
-		--dest-cpu=${myarch} \
-		--without-dtrace \
-		"${myconf[@]}" || die
-}
-
-src_compile() {
-	emake -C out mksnapshot
-	pax-mark m "out/${BUILDTYPE}/mksnapshot"
-	emake -C out
-}
-
-src_install() {
-	local LIBDIR="${ED}/usr/$(get_libdir)"
-	emake install DESTDIR="${ED}" PREFIX=/usr
-	if use npm; then
-		dodoc -r "${LIBDIR}"/node_modules/npm/html
-		rm -rf "${LIBDIR}"/node_modules/npm/{doc,html} || die
-		find "${LIBDIR}"/node_modules -type f -name "LICENSE*" -or -name "LICENCE*" -delete || die
-	fi
-
-	# set up a symlink structure that npm expects..
-	dodir /usr/include/node/deps/{v8,uv}
-	dosym . /usr/include/node/src
-	for var in deps/{uv,v8}/include; do
-		dosym ../.. /usr/include/node/${var}
-	done
-
-	pax-mark -m "${ED}"/usr/bin/node
-}
-
-src_test() {
-	out/${BUILDTYPE}/cctest || die
-	"${PYTHON}" tools/test.py --mode=${BUILDTYPE,,} -J message parallel sequential || die
-}
-
-pkg_postinst() {
-	einfo "When using node-gyp to install native modules, you can avoid"
-	einfo "having to download the full tarball by doing the following:"
-	einfo ""
-	einfo "node-gyp --nodedir /usr/include/node <command>"
-}

diff --git a/net-libs/nodejs/nodejs-5.10.1.ebuild b/net-libs/nodejs/nodejs-5.10.1.ebuild
deleted file mode 100644
index 5aba2f6..00000000
--- a/net-libs/nodejs/nodejs-5.10.1.ebuild
+++ /dev/null
@@ -1,195 +0,0 @@
-# Copyright 1999-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=6
-
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="threads"
-
-inherit bash-completion-r1 eutils flag-o-matic pax-utils python-single-r1 toolchain-funcs
-
-DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine"
-HOMEPAGE="https://nodejs.org/"
-SRC_URI="https://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz"
-
-LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86 ~amd64-linux ~x64-macos"
-IUSE="cpu_flags_x86_sse2 debug doc +icu +npm +snapshot +ssl test"
-
-RDEPEND="icu? ( >=dev-libs/icu-56:= )
-	npm? ( ${PYTHON_DEPS} )
-	>=net-libs/http-parser-2.6.2:=
-	>=dev-libs/libuv-1.8.0:=
-	>=dev-libs/openssl-1.0.2g:0=[-bindist]
-	sys-libs/zlib"
-DEPEND="${RDEPEND}
-	${PYTHON_DEPS}
-	test? ( net-misc/curl )"
-
-S="${WORKDIR}/node-v${PV}"
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-
-PATCHES=(
-	"${FILESDIR}"/gentoo-global-npm-config.patch
-)
-
-pkg_pretend() {
-	(use x86 && ! use cpu_flags_x86_sse2) && \
-		die "Your CPU doesn't support the required SSE2 instruction."
-
-	( [[ ${MERGE_TYPE} != "binary" ]] && ! test-flag-CXX -std=c++11 ) && \
-		die "Your compiler doesn't support C++11. Use GCC 4.8, Clang 3.3 or newer."
-}
-
-src_prepare() {
-	tc-export CC CXX PKG_CONFIG
-	export V=1
-	export BUILDTYPE=Release
-
-	# fix compilation on Darwin
-	# https://code.google.com/p/gyp/issues/detail?id=260
-	sed -i -e "/append('-arch/d" tools/gyp/pylib/gyp/xcode_emulation.py || die
-
-	# make sure we use python2.* while using gyp
-	sed -i -e "s/python/${EPYTHON}/" deps/npm/node_modules/node-gyp/gyp/gyp || die
-	sed -i -e "s/|| 'python'/|| '${EPYTHON}'/" deps/npm/node_modules/node-gyp/lib/configure.js || die
-
-	# less verbose install output (stating the same as portage, basically)
-	sed -i -e "/print/d" tools/install.py || die
-
-	# proper libdir, hat tip @ryanpcmcquen https://github.com/iojs/io.js/issues/504
-	local LIBDIR=$(get_libdir)
-	sed -i -e "s|lib/|${LIBDIR}/|g" tools/install.py || die
-	sed -i -e "s/'lib'/'${LIBDIR}'/" lib/module.js || die
-	sed -i -e "s|\"lib\"|\"${LIBDIR}\"|" deps/npm/lib/npm.js || die
-
-	# Avoid writing a depfile, not useful
-	sed -i -e "/DEPFLAGS =/d" tools/gyp/pylib/gyp/generator/make.py || die
-
-	# Avoid a test that I've only been able to reproduce from emerge. It doesnt
-	# seem sandbox related either (invoking it from a sandbox works fine).
-	# The issue is that no stdin handle is openened when asked for one.
-	# It doesn't really belong upstream , so it'll just be removed until someone
-	# with more gentoo-knowledge than me (jbergstroem) figures it out.
-	rm test/parallel/test-stdout-close-unref.js || die
-
-	# debug builds. change install path, remove optimisations and override buildtype
-	if use debug; then
-		sed -i -e "s|out/Release/|out/Debug/|g" tools/install.py || die
-		BUILDTYPE=Debug
-	fi
-
-	default
-}
-
-src_configure() {
-	local myarch=""
-	local myconf=( --shared-openssl --shared-libuv --shared-http-parser --shared-zlib )
-	use npm || myconf+=( --without-npm )
-	use icu && myconf+=( --with-intl=system-icu )
-	use snapshot && myconf+=( --with-snapshot )
-	use ssl || myconf+=( --without-ssl )
-	use debug && myconf+=( --debug )
-
-	case ${ABI} in
-		amd64) myarch="x64";;
-		arm) myarch="arm";;
-		arm64) myarch="arm64";;
-		ppc64) myarch="ppc64";;
-		x32) myarch="x32";;
-		x86) myarch="ia32";;
-		*) myarch="${ABI}";;
-	esac
-
-	GYP_DEFINES="linux_use_gold_flags=0
-		linux_use_bundled_binutils=0
-		linux_use_bundled_gold=0" \
-	"${PYTHON}" configure \
-		--prefix="${EPREFIX}"/usr \
-		--dest-cpu=${myarch} \
-		--without-dtrace \
-		"${myconf[@]}" || die
-}
-
-src_compile() {
-	emake -C out mksnapshot
-	pax-mark m "out/${BUILDTYPE}/mksnapshot"
-	emake -C out
-
-	use doc && emake doc
-}
-
-src_install() {
-	local LIBDIR="${ED}/usr/$(get_libdir)"
-	emake install DESTDIR="${D}"
-	pax-mark -m "${ED}"usr/bin/node
-
-	# set up a symlink structure that node-gyp expects..
-	dodir /usr/include/node/deps/{v8,uv}
-	dosym . /usr/include/node/src
-	for var in deps/{uv,v8}/include; do
-		dosym ../.. /usr/include/node/${var}
-	done
-
-	if use doc; then
-		# Patch docs to make them offline readable
-		for i in `grep -rl 'fonts.googleapis.com' "${S}"/out/doc/api/*`; do
-			sed -i '/fonts.googleapis.com/ d' $i;
-		done
-		# Install docs!
-		dohtml -r "${S}"/out/doc/api/*
-	fi
-
-	if use npm; then
-		dodir /etc/npm
-
-		# Install bash completion for `npm`
-		# We need to temporarily replace default config path since
-		# npm otherwise tries to write outside of the sandbox
-		local npm_config="usr/$(get_libdir)/node_modules/npm/lib/config/core.js"
-		sed -i -e "s|'/etc'|'${D}/etc'|g" "${ED}/${npm_config}" || die
-		local tmp_npm_completion_file="$(emktemp)"
-		"${ED}/usr/bin/npm" completion > "${tmp_npm_completion_file}"
-		newbashcomp "${tmp_npm_completion_file}" npm
-		sed -i -e "s|'${D}/etc'|'/etc'|g" "${ED}/${npm_config}" || die
-
-		# Move man pages
-		doman "${LIBDIR}"/node_modules/npm/man/man{1,5,7}/*
-
-		# Clean up
-		rm "${LIBDIR}"/node_modules/npm/{.mailmap,.npmignore,Makefile} || die
-		rm -rf "${LIBDIR}"/node_modules/npm/{doc,html,man} || die
-
-		local find_exp="-or -name"
-		local find_name=()
-		for match in "AUTHORS*" "CHANGELOG*" "CONTRIBUT*" "README*" \
-			".travis.yml" ".eslint*" ".wercker.yml" ".npmignore" \
-			"*.md" "*.markdown" "*.bat" "*.cmd"; do
-			find_name+=( ${find_exp} "${match}" )
-		done
-
-		# Remove various development and/or inappropriate files and
-		# useless docs of dependend packages.
-		find "${LIBDIR}"/node_modules \
-			\( -type d -name examples \) -or \( -type f \( \
-				-iname "LICEN?E*" \
-				"${find_name[@]}" \
-			\) \) -exec rm -rf "{}" \;
-	fi
-}
-
-src_test() {
-	out/${BUILDTYPE}/cctest || die
-	"${PYTHON}" tools/test.py --mode=${BUILDTYPE,,} -J message parallel sequential || die
-}
-
-pkg_postinst() {
-	einfo "The global npm config lives in /etc/npm. This deviates slightly"
-	einfo "from upstream which otherwise would have it live in /usr/etc/."
-	einfo ""
-	einfo "Protip: When using node-gyp to install native modules, you can"
-	einfo "avoid having to download extras by doing the following:"
-	einfo "$ node-gyp --nodedir /usr/include/node <command>"
-}

diff --git a/net-libs/nodejs/nodejs-5.11.0.ebuild b/net-libs/nodejs/nodejs-5.11.0.ebuild
deleted file mode 100644
index 85d5f98..00000000
--- a/net-libs/nodejs/nodejs-5.11.0.ebuild
+++ /dev/null
@@ -1,195 +0,0 @@
-# Copyright 1999-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=6
-
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="threads"
-
-inherit bash-completion-r1 eutils flag-o-matic pax-utils python-single-r1 toolchain-funcs
-
-DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine"
-HOMEPAGE="https://nodejs.org/"
-SRC_URI="https://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz"
-
-LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86 ~x64-macos"
-IUSE="cpu_flags_x86_sse2 debug doc +icu +npm +snapshot +ssl test"
-
-RDEPEND="icu? ( >=dev-libs/icu-56:= )
-	npm? ( ${PYTHON_DEPS} )
-	>=net-libs/http-parser-2.6.2:=
-	>=dev-libs/libuv-1.8.0:=
-	>=dev-libs/openssl-1.0.2g:0=[-bindist]
-	sys-libs/zlib"
-DEPEND="${RDEPEND}
-	${PYTHON_DEPS}
-	test? ( net-misc/curl )"
-
-S="${WORKDIR}/node-v${PV}"
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-
-PATCHES=(
-	"${FILESDIR}"/gentoo-global-npm-config.patch
-)
-
-pkg_pretend() {
-	(use x86 && ! use cpu_flags_x86_sse2) && \
-		die "Your CPU doesn't support the required SSE2 instruction."
-
-	( [[ ${MERGE_TYPE} != "binary" ]] && ! test-flag-CXX -std=c++11 ) && \
-		die "Your compiler doesn't support C++11. Use GCC 4.8, Clang 3.3 or newer."
-}
-
-src_prepare() {
-	tc-export CC CXX PKG_CONFIG
-	export V=1
-	export BUILDTYPE=Release
-
-	# fix compilation on Darwin
-	# https://code.google.com/p/gyp/issues/detail?id=260
-	sed -i -e "/append('-arch/d" tools/gyp/pylib/gyp/xcode_emulation.py || die
-
-	# make sure we use python2.* while using gyp
-	sed -i -e "s/python/${EPYTHON}/" deps/npm/node_modules/node-gyp/gyp/gyp || die
-	sed -i -e "s/|| 'python'/|| '${EPYTHON}'/" deps/npm/node_modules/node-gyp/lib/configure.js || die
-
-	# less verbose install output (stating the same as portage, basically)
-	sed -i -e "/print/d" tools/install.py || die
-
-	# proper libdir, hat tip @ryanpcmcquen https://github.com/iojs/io.js/issues/504
-	local LIBDIR=$(get_libdir)
-	sed -i -e "s|lib/|${LIBDIR}/|g" tools/install.py || die
-	sed -i -e "s/'lib'/'${LIBDIR}'/" lib/module.js || die
-	sed -i -e "s|\"lib\"|\"${LIBDIR}\"|" deps/npm/lib/npm.js || die
-
-	# Avoid writing a depfile, not useful
-	sed -i -e "/DEPFLAGS =/d" tools/gyp/pylib/gyp/generator/make.py || die
-
-	# Avoid a test that I've only been able to reproduce from emerge. It doesnt
-	# seem sandbox related either (invoking it from a sandbox works fine).
-	# The issue is that no stdin handle is openened when asked for one.
-	# It doesn't really belong upstream , so it'll just be removed until someone
-	# with more gentoo-knowledge than me (jbergstroem) figures it out.
-	rm test/parallel/test-stdout-close-unref.js || die
-
-	# debug builds. change install path, remove optimisations and override buildtype
-	if use debug; then
-		sed -i -e "s|out/Release/|out/Debug/|g" tools/install.py || die
-		BUILDTYPE=Debug
-	fi
-
-	default
-}
-
-src_configure() {
-	local myarch=""
-	local myconf=( --shared-openssl --shared-libuv --shared-http-parser --shared-zlib )
-	use npm || myconf+=( --without-npm )
-	use icu && myconf+=( --with-intl=system-icu )
-	use snapshot && myconf+=( --with-snapshot )
-	use ssl || myconf+=( --without-ssl )
-	use debug && myconf+=( --debug )
-
-	case ${ABI} in
-		amd64) myarch="x64";;
-		arm) myarch="arm";;
-		arm64) myarch="arm64";;
-		ppc64) myarch="ppc64";;
-		x32) myarch="x32";;
-		x86) myarch="ia32";;
-		*) myarch="${ABI}";;
-	esac
-
-	GYP_DEFINES="linux_use_gold_flags=0
-		linux_use_bundled_binutils=0
-		linux_use_bundled_gold=0" \
-	"${PYTHON}" configure \
-		--prefix="${EPREFIX}"/usr \
-		--dest-cpu=${myarch} \
-		--without-dtrace \
-		"${myconf[@]}" || die
-}
-
-src_compile() {
-	emake -C out mksnapshot
-	pax-mark m "out/${BUILDTYPE}/mksnapshot"
-	emake -C out
-
-	use doc && emake doc
-}
-
-src_install() {
-	local LIBDIR="${ED}/usr/$(get_libdir)"
-	emake install DESTDIR="${ED}"
-	pax-mark -m "${ED}"usr/bin/node
-
-	# set up a symlink structure that node-gyp expects..
-	dodir /usr/include/node/deps/{v8,uv}
-	dosym . /usr/include/node/src
-	for var in deps/{uv,v8}/include; do
-		dosym ../.. /usr/include/node/${var}
-	done
-
-	if use doc; then
-		# Patch docs to make them offline readable
-		for i in `grep -rl 'fonts.googleapis.com' "${S}"/out/doc/api/*`; do
-			sed -i '/fonts.googleapis.com/ d' $i;
-		done
-		# Install docs!
-		dohtml -r "${S}"/out/doc/api/*
-	fi
-
-	if use npm; then
-		dodir /etc/npm
-
-		# Install bash completion for `npm`
-		# We need to temporarily replace default config path since
-		# npm otherwise tries to write outside of the sandbox
-		local npm_config="usr/$(get_libdir)/node_modules/npm/lib/config/core.js"
-		sed -i -e "s|'/etc'|'${D}/etc'|g" "${ED}/${npm_config}" || die
-		local tmp_npm_completion_file="$(emktemp)"
-		"${ED}/usr/bin/npm" completion > "${tmp_npm_completion_file}"
-		newbashcomp "${tmp_npm_completion_file}" npm
-		sed -i -e "s|'${D}/etc'|'/etc'|g" "${ED}/${npm_config}" || die
-
-		# Move man pages
-		doman "${LIBDIR}"/node_modules/npm/man/man{1,5,7}/*
-
-		# Clean up
-		rm "${LIBDIR}"/node_modules/npm/{.mailmap,.npmignore,Makefile} || die
-		rm -rf "${LIBDIR}"/node_modules/npm/{doc,html,man} || die
-
-		local find_exp="-or -name"
-		local find_name=()
-		for match in "AUTHORS*" "CHANGELOG*" "CONTRIBUT*" "README*" \
-			".travis.yml" ".eslint*" ".wercker.yml" ".npmignore" \
-			"*.md" "*.markdown" "*.bat" "*.cmd"; do
-			find_name+=( ${find_exp} "${match}" )
-		done
-
-		# Remove various development and/or inappropriate files and
-		# useless docs of dependend packages.
-		find "${LIBDIR}"/node_modules \
-			\( -type d -name examples \) -or \( -type f \( \
-				-iname "LICEN?E*" \
-				"${find_name[@]}" \
-			\) \) -exec rm -rf "{}" \;
-	fi
-}
-
-src_test() {
-	out/${BUILDTYPE}/cctest || die
-	"${PYTHON}" tools/test.py --mode=${BUILDTYPE,,} -J message parallel sequential || die
-}
-
-pkg_postinst() {
-	einfo "The global npm config lives in /etc/npm. This deviates slightly"
-	einfo "from upstream which otherwise would have it live in /usr/etc/."
-	einfo ""
-	einfo "Protip: When using node-gyp to install native modules, you can"
-	einfo "avoid having to download extras by doing the following:"
-	einfo "$ node-gyp --nodedir /usr/include/node <command>"
-}

diff --git a/net-libs/nodejs/nodejs-5.9.1.ebuild b/net-libs/nodejs/nodejs-5.9.1.ebuild
deleted file mode 100644
index 8c77a3c..00000000
--- a/net-libs/nodejs/nodejs-5.9.1.ebuild
+++ /dev/null
@@ -1,195 +0,0 @@
-# Copyright 1999-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=6
-
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="threads"
-
-inherit bash-completion-r1 eutils flag-o-matic pax-utils python-single-r1 toolchain-funcs
-
-DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine"
-HOMEPAGE="https://nodejs.org/"
-SRC_URI="https://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz"
-
-LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86 ~amd64-linux ~x64-macos"
-IUSE="cpu_flags_x86_sse2 debug doc icu +npm +snapshot +ssl test"
-
-RDEPEND="icu? ( >=dev-libs/icu-56:= )
-	npm? ( ${PYTHON_DEPS} )
-	>=net-libs/http-parser-2.6.2:=
-	>=dev-libs/libuv-1.8.0:=
-	>=dev-libs/openssl-1.0.2g:0=[-bindist]
-	sys-libs/zlib"
-DEPEND="${RDEPEND}
-	${PYTHON_DEPS}
-	test? ( net-misc/curl )"
-
-S="${WORKDIR}/node-v${PV}"
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-
-PATCHES=(
-	"${FILESDIR}"/gentoo-global-npm-config.patch
-)
-
-pkg_pretend() {
-	(use x86 && ! use cpu_flags_x86_sse2) && \
-		die "Your CPU doesn't support the required SSE2 instruction."
-
-	( [[ ${MERGE_TYPE} != "binary" ]] && ! test-flag-CXX -std=c++11 ) && \
-		die "Your compiler doesn't support C++11. Use GCC 4.8, Clang 3.3 or newer."
-}
-
-src_prepare() {
-	tc-export CC CXX PKG_CONFIG
-	export V=1
-	export BUILDTYPE=Release
-
-	# fix compilation on Darwin
-	# https://code.google.com/p/gyp/issues/detail?id=260
-	sed -i -e "/append('-arch/d" tools/gyp/pylib/gyp/xcode_emulation.py || die
-
-	# make sure we use python2.* while using gyp
-	sed -i -e "s/python/${EPYTHON}/" deps/npm/node_modules/node-gyp/gyp/gyp || die
-	sed -i -e "s/|| 'python'/|| '${EPYTHON}'/" deps/npm/node_modules/node-gyp/lib/configure.js || die
-
-	# less verbose install output (stating the same as portage, basically)
-	sed -i -e "/print/d" tools/install.py || die
-
-	# proper libdir, hat tip @ryanpcmcquen https://github.com/iojs/io.js/issues/504
-	local LIBDIR=$(get_libdir)
-	sed -i -e "s|lib/|${LIBDIR}/|g" tools/install.py || die
-	sed -i -e "s/'lib'/'${LIBDIR}'/" lib/module.js || die
-	sed -i -e "s|\"lib\"|\"${LIBDIR}\"|" deps/npm/lib/npm.js || die
-
-	# Avoid writing a depfile, not useful
-	sed -i -e "/DEPFLAGS =/d" tools/gyp/pylib/gyp/generator/make.py || die
-
-	# Avoid a test that I've only been able to reproduce from emerge. It doesnt
-	# seem sandbox related either (invoking it from a sandbox works fine).
-	# The issue is that no stdin handle is openened when asked for one.
-	# It doesn't really belong upstream , so it'll just be removed until someone
-	# with more gentoo-knowledge than me (jbergstroem) figures it out.
-	rm test/parallel/test-stdout-close-unref.js || die
-
-	# debug builds. change install path, remove optimisations and override buildtype
-	if use debug; then
-		sed -i -e "s|out/Release/|out/Debug/|g" tools/install.py || die
-		BUILDTYPE=Debug
-	fi
-
-	default
-}
-
-src_configure() {
-	local myarch=""
-	local myconf=( --shared-openssl --shared-libuv --shared-http-parser --shared-zlib )
-	use npm || myconf+=( --without-npm )
-	use icu && myconf+=( --with-intl=system-icu )
-	use snapshot && myconf+=( --with-snapshot )
-	use ssl || myconf+=( --without-ssl )
-	use debug && myconf+=( --debug )
-
-	case ${ABI} in
-		amd64) myarch="x64";;
-		arm) myarch="arm";;
-		arm64) myarch="arm64";;
-		ppc64) myarch="ppc64";;
-		x32) myarch="x32";;
-		x86) myarch="ia32";;
-		*) myarch="${ABI}";;
-	esac
-
-	GYP_DEFINES="linux_use_gold_flags=0
-		linux_use_bundled_binutils=0
-		linux_use_bundled_gold=0" \
-	"${PYTHON}" configure \
-		--prefix="${EPREFIX}"/usr \
-		--dest-cpu=${myarch} \
-		--without-dtrace \
-		"${myconf[@]}" || die
-}
-
-src_compile() {
-	emake -C out mksnapshot
-	pax-mark m "out/${BUILDTYPE}/mksnapshot"
-	emake -C out
-
-	use doc && emake doc
-}
-
-src_install() {
-	local LIBDIR="${ED}/usr/$(get_libdir)"
-	emake install DESTDIR="${D}"
-	pax-mark -m "${ED}"usr/bin/node
-
-	# set up a symlink structure that node-gyp expects..
-	dodir /usr/include/node/deps/{v8,uv}
-	dosym . /usr/include/node/src
-	for var in deps/{uv,v8}/include; do
-		dosym ../.. /usr/include/node/${var}
-	done
-
-	if use doc; then
-		# Patch docs to make them offline readable
-		for i in `grep -rl 'fonts.googleapis.com' "${S}"/out/doc/api/*`; do
-			sed -i '/fonts.googleapis.com/ d' $i;
-		done
-		# Install docs!
-		dohtml -r "${S}"/out/doc/api/*
-	fi
-
-	if use npm; then
-		dodir /etc/npm
-
-		# Install bash completion for `npm`
-		# We need to temporarily replace default config path since
-		# npm otherwise tries to write outside of the sandbox
-		local npm_config="usr/$(get_libdir)/node_modules/npm/lib/config/core.js"
-		sed -i -e "s|'/etc'|'${D}/etc'|g" "${ED}/${npm_config}" || die
-		local tmp_npm_completion_file="$(emktemp)"
-		"${ED}/usr/bin/npm" completion > "${tmp_npm_completion_file}"
-		newbashcomp "${tmp_npm_completion_file}" npm
-		sed -i -e "s|'${D}/etc'|'/etc'|g" "${ED}/${npm_config}" || die
-
-		# Move man pages
-		doman "${LIBDIR}"/node_modules/npm/man/man{1,5,7}/*
-
-		# Clean up
-		rm "${LIBDIR}"/node_modules/npm/{.mailmap,.npmignore,Makefile} || die
-		rm -rf "${LIBDIR}"/node_modules/npm/{doc,html,man} || die
-
-		local find_exp="-or -name"
-		local find_name=()
-		for match in "AUTHORS*" "CHANGELOG*" "CONTRIBUT*" "README*" \
-			".travis.yml" ".eslint*" ".wercker.yml" ".npmignore" \
-			"*.md" "*.markdown" "*.bat" "*.cmd"; do
-			find_name+=( ${find_exp} "${match}" )
-		done
-
-		# Remove various development and/or inappropriate files and
-		# useless docs of dependend packages.
-		find "${LIBDIR}"/node_modules \
-			\( -type d -name examples \) -or \( -type f \( \
-				-iname "LICEN?E*" \
-				"${find_name[@]}" \
-			\) \) -exec rm -rf "{}" \;
-	fi
-}
-
-src_test() {
-	out/${BUILDTYPE}/cctest || die
-	"${PYTHON}" tools/test.py --mode=${BUILDTYPE,,} -J message parallel sequential || die
-}
-
-pkg_postinst() {
-	einfo "The global npm config lives in /etc/npm. This deviates slightly"
-	einfo "from upstream which otherwise would have it live in /usr/etc/."
-	einfo ""
-	einfo "Protip: When using node-gyp to install native modules, you can"
-	einfo "avoid having to download extras by doing the following:"
-	einfo "$ node-gyp --nodedir /usr/include/node <command>"
-}

diff --git a/net-libs/nodejs/nodejs-6.5.0.ebuild b/net-libs/nodejs/nodejs-6.5.0.ebuild
deleted file mode 100644
index 4e76890..00000000
--- a/net-libs/nodejs/nodejs-6.5.0.ebuild
+++ /dev/null
@@ -1,193 +0,0 @@
-# Copyright 1999-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=6
-
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="threads"
-
-inherit bash-completion-r1 eutils flag-o-matic pax-utils python-single-r1 toolchain-funcs
-
-DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine"
-HOMEPAGE="https://nodejs.org/"
-SRC_URI="https://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz"
-
-LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86 ~amd64-linux ~x64-macos"
-IUSE="cpu_flags_x86_sse2 debug doc icu +npm +snapshot +ssl test"
-
-RDEPEND="icu? ( >=dev-libs/icu-56:= )
-	npm? ( ${PYTHON_DEPS} )
-	>=net-libs/http-parser-2.6.2:=
-	>=dev-libs/libuv-1.9.0:=
-	>=dev-libs/openssl-1.0.2g:0=[-bindist]
-	sys-libs/zlib"
-DEPEND="${RDEPEND}
-	${PYTHON_DEPS}
-	test? ( net-misc/curl )"
-
-S="${WORKDIR}/node-v${PV}"
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-
-PATCHES=(
-	"${FILESDIR}"/gentoo-global-npm-config.patch
-)
-
-pkg_pretend() {
-	(use x86 && ! use cpu_flags_x86_sse2) && \
-		die "Your CPU doesn't support the required SSE2 instruction."
-
-	( [[ ${MERGE_TYPE} != "binary" ]] && ! test-flag-CXX -std=c++11 ) && \
-		die "Your compiler doesn't support C++11. Use GCC 4.8, Clang 3.3 or newer."
-}
-
-src_prepare() {
-	tc-export CC CXX PKG_CONFIG
-	export V=1
-	export BUILDTYPE=Release
-
-	# fix compilation on Darwin
-	# https://code.google.com/p/gyp/issues/detail?id=260
-	sed -i -e "/append('-arch/d" tools/gyp/pylib/gyp/xcode_emulation.py || die
-
-	# make sure we use python2.* while using gyp
-	sed -i -e "s/python/${EPYTHON}/" deps/npm/node_modules/node-gyp/gyp/gyp || die
-	sed -i -e "s/|| 'python'/|| '${EPYTHON}'/" deps/npm/node_modules/node-gyp/lib/configure.js || die
-
-	# less verbose install output (stating the same as portage, basically)
-	sed -i -e "/print/d" tools/install.py || die
-
-	# proper libdir, hat tip @ryanpcmcquen https://github.com/iojs/io.js/issues/504
-	local LIBDIR=$(get_libdir)
-	sed -i -e "s|lib/|${LIBDIR}/|g" tools/install.py || die
-	sed -i -e "s/'lib'/'${LIBDIR}'/" lib/module.js || die
-	sed -i -e "s|\"lib\"|\"${LIBDIR}\"|" deps/npm/lib/npm.js || die
-
-	# Avoid writing a depfile, not useful
-	sed -i -e "/DEPFLAGS =/d" tools/gyp/pylib/gyp/generator/make.py || die
-
-	# Avoid a test that I've only been able to reproduce from emerge. It doesnt
-	# seem sandbox related either (invoking it from a sandbox works fine).
-	# The issue is that no stdin handle is openened when asked for one.
-	# It doesn't really belong upstream , so it'll just be removed until someone
-	# with more gentoo-knowledge than me (jbergstroem) figures it out.
-	rm test/parallel/test-stdout-close-unref.js || die
-
-	# debug builds. change install path, remove optimisations and override buildtype
-	if use debug; then
-		sed -i -e "s|out/Release/|out/Debug/|g" tools/install.py || die
-		BUILDTYPE=Debug
-	fi
-
-	default
-}
-
-src_configure() {
-	local myarch=""
-	local myconf=( --shared-openssl --shared-libuv --shared-http-parser --shared-zlib )
-	use npm || myconf+=( --without-npm )
-	use icu && myconf+=( --with-intl=system-icu )
-	use snapshot && myconf+=( --with-snapshot )
-	use ssl || myconf+=( --without-ssl )
-	use debug && myconf+=( --debug )
-
-	case ${ABI} in
-		amd64) myarch="x64";;
-		arm) myarch="arm";;
-		arm64) myarch="arm64";;
-		ppc64) myarch="ppc64";;
-		x32) myarch="x32";;
-		x86) myarch="ia32";;
-		*) myarch="${ABI}";;
-	esac
-
-	GYP_DEFINES="linux_use_gold_flags=0
-		linux_use_bundled_binutils=0
-		linux_use_bundled_gold=0" \
-	"${PYTHON}" configure \
-		--prefix="${EPREFIX}"/usr \
-		--dest-cpu=${myarch} \
-		--without-dtrace \
-		"${myconf[@]}" || die
-}
-
-src_compile() {
-	emake -C out mksnapshot
-	pax-mark m "out/${BUILDTYPE}/mksnapshot"
-	emake -C out
-}
-
-src_install() {
-	local LIBDIR="${ED}/usr/$(get_libdir)"
-	emake install DESTDIR="${D}"
-	pax-mark -m "${ED}"usr/bin/node
-
-	# set up a symlink structure that node-gyp expects..
-	dodir /usr/include/node/deps/{v8,uv}
-	dosym . /usr/include/node/src
-	for var in deps/{uv,v8}/include; do
-		dosym ../.. /usr/include/node/${var}
-	done
-
-	if use doc; then
-		# Patch docs to make them offline readable
-		for i in `grep -rl 'fonts.googleapis.com' "${S}"/out/doc/api/*`; do
-			sed -i '/fonts.googleapis.com/ d' $i;
-		done
-		# Install docs!
-		dohtml -r "${S}"/doc/*
-	fi
-
-	if use npm; then
-		dodir /etc/npm
-
-		# Install bash completion for `npm`
-		# We need to temporarily replace default config path since
-		# npm otherwise tries to write outside of the sandbox
-		local npm_config="usr/$(get_libdir)/node_modules/npm/lib/config/core.js"
-		sed -i -e "s|'/etc'|'${ED}/etc'|g" "${ED}/${npm_config}" || die
-		local tmp_npm_completion_file="$(emktemp)"
-		"${ED}/usr/bin/npm" completion > "${tmp_npm_completion_file}"
-		newbashcomp "${tmp_npm_completion_file}" npm
-		sed -i -e "s|'${ED}/etc'|'/etc'|g" "${ED}/${npm_config}" || die
-
-		# Move man pages
-		doman "${LIBDIR}"/node_modules/npm/man/man{1,5,7}/*
-
-		# Clean up
-		rm "${LIBDIR}"/node_modules/npm/{.mailmap,.npmignore,Makefile} || die
-		rm -rf "${LIBDIR}"/node_modules/npm/{doc,html,man} || die
-
-		local find_exp="-or -name"
-		local find_name=()
-		for match in "AUTHORS*" "CHANGELOG*" "CONTRIBUT*" "README*" \
-			".travis.yml" ".eslint*" ".wercker.yml" ".npmignore" \
-			"*.md" "*.markdown" "*.bat" "*.cmd"; do
-			find_name+=( ${find_exp} "${match}" )
-		done
-
-		# Remove various development and/or inappropriate files and
-		# useless docs of dependend packages.
-		find "${LIBDIR}"/node_modules \
-			\( -type d -name examples \) -or \( -type f \( \
-				-iname "LICEN?E*" \
-				"${find_name[@]}" \
-			\) \) -exec rm -rf "{}" \;
-	fi
-}
-
-src_test() {
-	out/${BUILDTYPE}/cctest || die
-	"${PYTHON}" tools/test.py --mode=${BUILDTYPE,,} -J message parallel sequential || die
-}
-
-pkg_postinst() {
-	einfo "The global npm config lives in /etc/npm. This deviates slightly"
-	einfo "from upstream which otherwise would have it live in /usr/etc/."
-	einfo ""
-	einfo "Protip: When using node-gyp to install native modules, you can"
-	einfo "avoid having to download extras by doing the following:"
-	einfo "$ node-gyp --nodedir /usr/include/node <command>"
-}

diff --git a/net-libs/nodejs/nodejs-6.6.0.ebuild b/net-libs/nodejs/nodejs-6.6.0.ebuild
deleted file mode 100644
index 4e76890..00000000
--- a/net-libs/nodejs/nodejs-6.6.0.ebuild
+++ /dev/null
@@ -1,193 +0,0 @@
-# Copyright 1999-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=6
-
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="threads"
-
-inherit bash-completion-r1 eutils flag-o-matic pax-utils python-single-r1 toolchain-funcs
-
-DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine"
-HOMEPAGE="https://nodejs.org/"
-SRC_URI="https://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz"
-
-LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86 ~amd64-linux ~x64-macos"
-IUSE="cpu_flags_x86_sse2 debug doc icu +npm +snapshot +ssl test"
-
-RDEPEND="icu? ( >=dev-libs/icu-56:= )
-	npm? ( ${PYTHON_DEPS} )
-	>=net-libs/http-parser-2.6.2:=
-	>=dev-libs/libuv-1.9.0:=
-	>=dev-libs/openssl-1.0.2g:0=[-bindist]
-	sys-libs/zlib"
-DEPEND="${RDEPEND}
-	${PYTHON_DEPS}
-	test? ( net-misc/curl )"
-
-S="${WORKDIR}/node-v${PV}"
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-
-PATCHES=(
-	"${FILESDIR}"/gentoo-global-npm-config.patch
-)
-
-pkg_pretend() {
-	(use x86 && ! use cpu_flags_x86_sse2) && \
-		die "Your CPU doesn't support the required SSE2 instruction."
-
-	( [[ ${MERGE_TYPE} != "binary" ]] && ! test-flag-CXX -std=c++11 ) && \
-		die "Your compiler doesn't support C++11. Use GCC 4.8, Clang 3.3 or newer."
-}
-
-src_prepare() {
-	tc-export CC CXX PKG_CONFIG
-	export V=1
-	export BUILDTYPE=Release
-
-	# fix compilation on Darwin
-	# https://code.google.com/p/gyp/issues/detail?id=260
-	sed -i -e "/append('-arch/d" tools/gyp/pylib/gyp/xcode_emulation.py || die
-
-	# make sure we use python2.* while using gyp
-	sed -i -e "s/python/${EPYTHON}/" deps/npm/node_modules/node-gyp/gyp/gyp || die
-	sed -i -e "s/|| 'python'/|| '${EPYTHON}'/" deps/npm/node_modules/node-gyp/lib/configure.js || die
-
-	# less verbose install output (stating the same as portage, basically)
-	sed -i -e "/print/d" tools/install.py || die
-
-	# proper libdir, hat tip @ryanpcmcquen https://github.com/iojs/io.js/issues/504
-	local LIBDIR=$(get_libdir)
-	sed -i -e "s|lib/|${LIBDIR}/|g" tools/install.py || die
-	sed -i -e "s/'lib'/'${LIBDIR}'/" lib/module.js || die
-	sed -i -e "s|\"lib\"|\"${LIBDIR}\"|" deps/npm/lib/npm.js || die
-
-	# Avoid writing a depfile, not useful
-	sed -i -e "/DEPFLAGS =/d" tools/gyp/pylib/gyp/generator/make.py || die
-
-	# Avoid a test that I've only been able to reproduce from emerge. It doesnt
-	# seem sandbox related either (invoking it from a sandbox works fine).
-	# The issue is that no stdin handle is openened when asked for one.
-	# It doesn't really belong upstream , so it'll just be removed until someone
-	# with more gentoo-knowledge than me (jbergstroem) figures it out.
-	rm test/parallel/test-stdout-close-unref.js || die
-
-	# debug builds. change install path, remove optimisations and override buildtype
-	if use debug; then
-		sed -i -e "s|out/Release/|out/Debug/|g" tools/install.py || die
-		BUILDTYPE=Debug
-	fi
-
-	default
-}
-
-src_configure() {
-	local myarch=""
-	local myconf=( --shared-openssl --shared-libuv --shared-http-parser --shared-zlib )
-	use npm || myconf+=( --without-npm )
-	use icu && myconf+=( --with-intl=system-icu )
-	use snapshot && myconf+=( --with-snapshot )
-	use ssl || myconf+=( --without-ssl )
-	use debug && myconf+=( --debug )
-
-	case ${ABI} in
-		amd64) myarch="x64";;
-		arm) myarch="arm";;
-		arm64) myarch="arm64";;
-		ppc64) myarch="ppc64";;
-		x32) myarch="x32";;
-		x86) myarch="ia32";;
-		*) myarch="${ABI}";;
-	esac
-
-	GYP_DEFINES="linux_use_gold_flags=0
-		linux_use_bundled_binutils=0
-		linux_use_bundled_gold=0" \
-	"${PYTHON}" configure \
-		--prefix="${EPREFIX}"/usr \
-		--dest-cpu=${myarch} \
-		--without-dtrace \
-		"${myconf[@]}" || die
-}
-
-src_compile() {
-	emake -C out mksnapshot
-	pax-mark m "out/${BUILDTYPE}/mksnapshot"
-	emake -C out
-}
-
-src_install() {
-	local LIBDIR="${ED}/usr/$(get_libdir)"
-	emake install DESTDIR="${D}"
-	pax-mark -m "${ED}"usr/bin/node
-
-	# set up a symlink structure that node-gyp expects..
-	dodir /usr/include/node/deps/{v8,uv}
-	dosym . /usr/include/node/src
-	for var in deps/{uv,v8}/include; do
-		dosym ../.. /usr/include/node/${var}
-	done
-
-	if use doc; then
-		# Patch docs to make them offline readable
-		for i in `grep -rl 'fonts.googleapis.com' "${S}"/out/doc/api/*`; do
-			sed -i '/fonts.googleapis.com/ d' $i;
-		done
-		# Install docs!
-		dohtml -r "${S}"/doc/*
-	fi
-
-	if use npm; then
-		dodir /etc/npm
-
-		# Install bash completion for `npm`
-		# We need to temporarily replace default config path since
-		# npm otherwise tries to write outside of the sandbox
-		local npm_config="usr/$(get_libdir)/node_modules/npm/lib/config/core.js"
-		sed -i -e "s|'/etc'|'${ED}/etc'|g" "${ED}/${npm_config}" || die
-		local tmp_npm_completion_file="$(emktemp)"
-		"${ED}/usr/bin/npm" completion > "${tmp_npm_completion_file}"
-		newbashcomp "${tmp_npm_completion_file}" npm
-		sed -i -e "s|'${ED}/etc'|'/etc'|g" "${ED}/${npm_config}" || die
-
-		# Move man pages
-		doman "${LIBDIR}"/node_modules/npm/man/man{1,5,7}/*
-
-		# Clean up
-		rm "${LIBDIR}"/node_modules/npm/{.mailmap,.npmignore,Makefile} || die
-		rm -rf "${LIBDIR}"/node_modules/npm/{doc,html,man} || die
-
-		local find_exp="-or -name"
-		local find_name=()
-		for match in "AUTHORS*" "CHANGELOG*" "CONTRIBUT*" "README*" \
-			".travis.yml" ".eslint*" ".wercker.yml" ".npmignore" \
-			"*.md" "*.markdown" "*.bat" "*.cmd"; do
-			find_name+=( ${find_exp} "${match}" )
-		done
-
-		# Remove various development and/or inappropriate files and
-		# useless docs of dependend packages.
-		find "${LIBDIR}"/node_modules \
-			\( -type d -name examples \) -or \( -type f \( \
-				-iname "LICEN?E*" \
-				"${find_name[@]}" \
-			\) \) -exec rm -rf "{}" \;
-	fi
-}
-
-src_test() {
-	out/${BUILDTYPE}/cctest || die
-	"${PYTHON}" tools/test.py --mode=${BUILDTYPE,,} -J message parallel sequential || die
-}
-
-pkg_postinst() {
-	einfo "The global npm config lives in /etc/npm. This deviates slightly"
-	einfo "from upstream which otherwise would have it live in /usr/etc/."
-	einfo ""
-	einfo "Protip: When using node-gyp to install native modules, you can"
-	einfo "avoid having to download extras by doing the following:"
-	einfo "$ node-gyp --nodedir /usr/include/node <command>"
-}

diff --git a/net-libs/nodejs/nodejs-6.7.0.ebuild b/net-libs/nodejs/nodejs-6.7.0.ebuild
deleted file mode 100644
index 4e76890..00000000
--- a/net-libs/nodejs/nodejs-6.7.0.ebuild
+++ /dev/null
@@ -1,193 +0,0 @@
-# Copyright 1999-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=6
-
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="threads"
-
-inherit bash-completion-r1 eutils flag-o-matic pax-utils python-single-r1 toolchain-funcs
-
-DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine"
-HOMEPAGE="https://nodejs.org/"
-SRC_URI="https://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz"
-
-LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86 ~amd64-linux ~x64-macos"
-IUSE="cpu_flags_x86_sse2 debug doc icu +npm +snapshot +ssl test"
-
-RDEPEND="icu? ( >=dev-libs/icu-56:= )
-	npm? ( ${PYTHON_DEPS} )
-	>=net-libs/http-parser-2.6.2:=
-	>=dev-libs/libuv-1.9.0:=
-	>=dev-libs/openssl-1.0.2g:0=[-bindist]
-	sys-libs/zlib"
-DEPEND="${RDEPEND}
-	${PYTHON_DEPS}
-	test? ( net-misc/curl )"
-
-S="${WORKDIR}/node-v${PV}"
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-
-PATCHES=(
-	"${FILESDIR}"/gentoo-global-npm-config.patch
-)
-
-pkg_pretend() {
-	(use x86 && ! use cpu_flags_x86_sse2) && \
-		die "Your CPU doesn't support the required SSE2 instruction."
-
-	( [[ ${MERGE_TYPE} != "binary" ]] && ! test-flag-CXX -std=c++11 ) && \
-		die "Your compiler doesn't support C++11. Use GCC 4.8, Clang 3.3 or newer."
-}
-
-src_prepare() {
-	tc-export CC CXX PKG_CONFIG
-	export V=1
-	export BUILDTYPE=Release
-
-	# fix compilation on Darwin
-	# https://code.google.com/p/gyp/issues/detail?id=260
-	sed -i -e "/append('-arch/d" tools/gyp/pylib/gyp/xcode_emulation.py || die
-
-	# make sure we use python2.* while using gyp
-	sed -i -e "s/python/${EPYTHON}/" deps/npm/node_modules/node-gyp/gyp/gyp || die
-	sed -i -e "s/|| 'python'/|| '${EPYTHON}'/" deps/npm/node_modules/node-gyp/lib/configure.js || die
-
-	# less verbose install output (stating the same as portage, basically)
-	sed -i -e "/print/d" tools/install.py || die
-
-	# proper libdir, hat tip @ryanpcmcquen https://github.com/iojs/io.js/issues/504
-	local LIBDIR=$(get_libdir)
-	sed -i -e "s|lib/|${LIBDIR}/|g" tools/install.py || die
-	sed -i -e "s/'lib'/'${LIBDIR}'/" lib/module.js || die
-	sed -i -e "s|\"lib\"|\"${LIBDIR}\"|" deps/npm/lib/npm.js || die
-
-	# Avoid writing a depfile, not useful
-	sed -i -e "/DEPFLAGS =/d" tools/gyp/pylib/gyp/generator/make.py || die
-
-	# Avoid a test that I've only been able to reproduce from emerge. It doesnt
-	# seem sandbox related either (invoking it from a sandbox works fine).
-	# The issue is that no stdin handle is openened when asked for one.
-	# It doesn't really belong upstream , so it'll just be removed until someone
-	# with more gentoo-knowledge than me (jbergstroem) figures it out.
-	rm test/parallel/test-stdout-close-unref.js || die
-
-	# debug builds. change install path, remove optimisations and override buildtype
-	if use debug; then
-		sed -i -e "s|out/Release/|out/Debug/|g" tools/install.py || die
-		BUILDTYPE=Debug
-	fi
-
-	default
-}
-
-src_configure() {
-	local myarch=""
-	local myconf=( --shared-openssl --shared-libuv --shared-http-parser --shared-zlib )
-	use npm || myconf+=( --without-npm )
-	use icu && myconf+=( --with-intl=system-icu )
-	use snapshot && myconf+=( --with-snapshot )
-	use ssl || myconf+=( --without-ssl )
-	use debug && myconf+=( --debug )
-
-	case ${ABI} in
-		amd64) myarch="x64";;
-		arm) myarch="arm";;
-		arm64) myarch="arm64";;
-		ppc64) myarch="ppc64";;
-		x32) myarch="x32";;
-		x86) myarch="ia32";;
-		*) myarch="${ABI}";;
-	esac
-
-	GYP_DEFINES="linux_use_gold_flags=0
-		linux_use_bundled_binutils=0
-		linux_use_bundled_gold=0" \
-	"${PYTHON}" configure \
-		--prefix="${EPREFIX}"/usr \
-		--dest-cpu=${myarch} \
-		--without-dtrace \
-		"${myconf[@]}" || die
-}
-
-src_compile() {
-	emake -C out mksnapshot
-	pax-mark m "out/${BUILDTYPE}/mksnapshot"
-	emake -C out
-}
-
-src_install() {
-	local LIBDIR="${ED}/usr/$(get_libdir)"
-	emake install DESTDIR="${D}"
-	pax-mark -m "${ED}"usr/bin/node
-
-	# set up a symlink structure that node-gyp expects..
-	dodir /usr/include/node/deps/{v8,uv}
-	dosym . /usr/include/node/src
-	for var in deps/{uv,v8}/include; do
-		dosym ../.. /usr/include/node/${var}
-	done
-
-	if use doc; then
-		# Patch docs to make them offline readable
-		for i in `grep -rl 'fonts.googleapis.com' "${S}"/out/doc/api/*`; do
-			sed -i '/fonts.googleapis.com/ d' $i;
-		done
-		# Install docs!
-		dohtml -r "${S}"/doc/*
-	fi
-
-	if use npm; then
-		dodir /etc/npm
-
-		# Install bash completion for `npm`
-		# We need to temporarily replace default config path since
-		# npm otherwise tries to write outside of the sandbox
-		local npm_config="usr/$(get_libdir)/node_modules/npm/lib/config/core.js"
-		sed -i -e "s|'/etc'|'${ED}/etc'|g" "${ED}/${npm_config}" || die
-		local tmp_npm_completion_file="$(emktemp)"
-		"${ED}/usr/bin/npm" completion > "${tmp_npm_completion_file}"
-		newbashcomp "${tmp_npm_completion_file}" npm
-		sed -i -e "s|'${ED}/etc'|'/etc'|g" "${ED}/${npm_config}" || die
-
-		# Move man pages
-		doman "${LIBDIR}"/node_modules/npm/man/man{1,5,7}/*
-
-		# Clean up
-		rm "${LIBDIR}"/node_modules/npm/{.mailmap,.npmignore,Makefile} || die
-		rm -rf "${LIBDIR}"/node_modules/npm/{doc,html,man} || die
-
-		local find_exp="-or -name"
-		local find_name=()
-		for match in "AUTHORS*" "CHANGELOG*" "CONTRIBUT*" "README*" \
-			".travis.yml" ".eslint*" ".wercker.yml" ".npmignore" \
-			"*.md" "*.markdown" "*.bat" "*.cmd"; do
-			find_name+=( ${find_exp} "${match}" )
-		done
-
-		# Remove various development and/or inappropriate files and
-		# useless docs of dependend packages.
-		find "${LIBDIR}"/node_modules \
-			\( -type d -name examples \) -or \( -type f \( \
-				-iname "LICEN?E*" \
-				"${find_name[@]}" \
-			\) \) -exec rm -rf "{}" \;
-	fi
-}
-
-src_test() {
-	out/${BUILDTYPE}/cctest || die
-	"${PYTHON}" tools/test.py --mode=${BUILDTYPE,,} -J message parallel sequential || die
-}
-
-pkg_postinst() {
-	einfo "The global npm config lives in /etc/npm. This deviates slightly"
-	einfo "from upstream which otherwise would have it live in /usr/etc/."
-	einfo ""
-	einfo "Protip: When using node-gyp to install native modules, you can"
-	einfo "avoid having to download extras by doing the following:"
-	einfo "$ node-gyp --nodedir /usr/include/node <command>"
-}

diff --git a/net-libs/nodejs/nodejs-6.8.1.ebuild b/net-libs/nodejs/nodejs-6.8.1.ebuild
deleted file mode 100644
index 4e76890..00000000
--- a/net-libs/nodejs/nodejs-6.8.1.ebuild
+++ /dev/null
@@ -1,193 +0,0 @@
-# Copyright 1999-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=6
-
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="threads"
-
-inherit bash-completion-r1 eutils flag-o-matic pax-utils python-single-r1 toolchain-funcs
-
-DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine"
-HOMEPAGE="https://nodejs.org/"
-SRC_URI="https://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz"
-
-LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86 ~amd64-linux ~x64-macos"
-IUSE="cpu_flags_x86_sse2 debug doc icu +npm +snapshot +ssl test"
-
-RDEPEND="icu? ( >=dev-libs/icu-56:= )
-	npm? ( ${PYTHON_DEPS} )
-	>=net-libs/http-parser-2.6.2:=
-	>=dev-libs/libuv-1.9.0:=
-	>=dev-libs/openssl-1.0.2g:0=[-bindist]
-	sys-libs/zlib"
-DEPEND="${RDEPEND}
-	${PYTHON_DEPS}
-	test? ( net-misc/curl )"
-
-S="${WORKDIR}/node-v${PV}"
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-
-PATCHES=(
-	"${FILESDIR}"/gentoo-global-npm-config.patch
-)
-
-pkg_pretend() {
-	(use x86 && ! use cpu_flags_x86_sse2) && \
-		die "Your CPU doesn't support the required SSE2 instruction."
-
-	( [[ ${MERGE_TYPE} != "binary" ]] && ! test-flag-CXX -std=c++11 ) && \
-		die "Your compiler doesn't support C++11. Use GCC 4.8, Clang 3.3 or newer."
-}
-
-src_prepare() {
-	tc-export CC CXX PKG_CONFIG
-	export V=1
-	export BUILDTYPE=Release
-
-	# fix compilation on Darwin
-	# https://code.google.com/p/gyp/issues/detail?id=260
-	sed -i -e "/append('-arch/d" tools/gyp/pylib/gyp/xcode_emulation.py || die
-
-	# make sure we use python2.* while using gyp
-	sed -i -e "s/python/${EPYTHON}/" deps/npm/node_modules/node-gyp/gyp/gyp || die
-	sed -i -e "s/|| 'python'/|| '${EPYTHON}'/" deps/npm/node_modules/node-gyp/lib/configure.js || die
-
-	# less verbose install output (stating the same as portage, basically)
-	sed -i -e "/print/d" tools/install.py || die
-
-	# proper libdir, hat tip @ryanpcmcquen https://github.com/iojs/io.js/issues/504
-	local LIBDIR=$(get_libdir)
-	sed -i -e "s|lib/|${LIBDIR}/|g" tools/install.py || die
-	sed -i -e "s/'lib'/'${LIBDIR}'/" lib/module.js || die
-	sed -i -e "s|\"lib\"|\"${LIBDIR}\"|" deps/npm/lib/npm.js || die
-
-	# Avoid writing a depfile, not useful
-	sed -i -e "/DEPFLAGS =/d" tools/gyp/pylib/gyp/generator/make.py || die
-
-	# Avoid a test that I've only been able to reproduce from emerge. It doesnt
-	# seem sandbox related either (invoking it from a sandbox works fine).
-	# The issue is that no stdin handle is openened when asked for one.
-	# It doesn't really belong upstream , so it'll just be removed until someone
-	# with more gentoo-knowledge than me (jbergstroem) figures it out.
-	rm test/parallel/test-stdout-close-unref.js || die
-
-	# debug builds. change install path, remove optimisations and override buildtype
-	if use debug; then
-		sed -i -e "s|out/Release/|out/Debug/|g" tools/install.py || die
-		BUILDTYPE=Debug
-	fi
-
-	default
-}
-
-src_configure() {
-	local myarch=""
-	local myconf=( --shared-openssl --shared-libuv --shared-http-parser --shared-zlib )
-	use npm || myconf+=( --without-npm )
-	use icu && myconf+=( --with-intl=system-icu )
-	use snapshot && myconf+=( --with-snapshot )
-	use ssl || myconf+=( --without-ssl )
-	use debug && myconf+=( --debug )
-
-	case ${ABI} in
-		amd64) myarch="x64";;
-		arm) myarch="arm";;
-		arm64) myarch="arm64";;
-		ppc64) myarch="ppc64";;
-		x32) myarch="x32";;
-		x86) myarch="ia32";;
-		*) myarch="${ABI}";;
-	esac
-
-	GYP_DEFINES="linux_use_gold_flags=0
-		linux_use_bundled_binutils=0
-		linux_use_bundled_gold=0" \
-	"${PYTHON}" configure \
-		--prefix="${EPREFIX}"/usr \
-		--dest-cpu=${myarch} \
-		--without-dtrace \
-		"${myconf[@]}" || die
-}
-
-src_compile() {
-	emake -C out mksnapshot
-	pax-mark m "out/${BUILDTYPE}/mksnapshot"
-	emake -C out
-}
-
-src_install() {
-	local LIBDIR="${ED}/usr/$(get_libdir)"
-	emake install DESTDIR="${D}"
-	pax-mark -m "${ED}"usr/bin/node
-
-	# set up a symlink structure that node-gyp expects..
-	dodir /usr/include/node/deps/{v8,uv}
-	dosym . /usr/include/node/src
-	for var in deps/{uv,v8}/include; do
-		dosym ../.. /usr/include/node/${var}
-	done
-
-	if use doc; then
-		# Patch docs to make them offline readable
-		for i in `grep -rl 'fonts.googleapis.com' "${S}"/out/doc/api/*`; do
-			sed -i '/fonts.googleapis.com/ d' $i;
-		done
-		# Install docs!
-		dohtml -r "${S}"/doc/*
-	fi
-
-	if use npm; then
-		dodir /etc/npm
-
-		# Install bash completion for `npm`
-		# We need to temporarily replace default config path since
-		# npm otherwise tries to write outside of the sandbox
-		local npm_config="usr/$(get_libdir)/node_modules/npm/lib/config/core.js"
-		sed -i -e "s|'/etc'|'${ED}/etc'|g" "${ED}/${npm_config}" || die
-		local tmp_npm_completion_file="$(emktemp)"
-		"${ED}/usr/bin/npm" completion > "${tmp_npm_completion_file}"
-		newbashcomp "${tmp_npm_completion_file}" npm
-		sed -i -e "s|'${ED}/etc'|'/etc'|g" "${ED}/${npm_config}" || die
-
-		# Move man pages
-		doman "${LIBDIR}"/node_modules/npm/man/man{1,5,7}/*
-
-		# Clean up
-		rm "${LIBDIR}"/node_modules/npm/{.mailmap,.npmignore,Makefile} || die
-		rm -rf "${LIBDIR}"/node_modules/npm/{doc,html,man} || die
-
-		local find_exp="-or -name"
-		local find_name=()
-		for match in "AUTHORS*" "CHANGELOG*" "CONTRIBUT*" "README*" \
-			".travis.yml" ".eslint*" ".wercker.yml" ".npmignore" \
-			"*.md" "*.markdown" "*.bat" "*.cmd"; do
-			find_name+=( ${find_exp} "${match}" )
-		done
-
-		# Remove various development and/or inappropriate files and
-		# useless docs of dependend packages.
-		find "${LIBDIR}"/node_modules \
-			\( -type d -name examples \) -or \( -type f \( \
-				-iname "LICEN?E*" \
-				"${find_name[@]}" \
-			\) \) -exec rm -rf "{}" \;
-	fi
-}
-
-src_test() {
-	out/${BUILDTYPE}/cctest || die
-	"${PYTHON}" tools/test.py --mode=${BUILDTYPE,,} -J message parallel sequential || die
-}
-
-pkg_postinst() {
-	einfo "The global npm config lives in /etc/npm. This deviates slightly"
-	einfo "from upstream which otherwise would have it live in /usr/etc/."
-	einfo ""
-	einfo "Protip: When using node-gyp to install native modules, you can"
-	einfo "avoid having to download extras by doing the following:"
-	einfo "$ node-gyp --nodedir /usr/include/node <command>"
-}


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: net-libs/nodejs/files/, net-libs/nodejs/
@ 2017-08-18 14:17 Jeroen Roovers
  0 siblings, 0 replies; 36+ messages in thread
From: Jeroen Roovers @ 2017-08-18 14:17 UTC (permalink / raw
  To: gentoo-commits

commit:     f23d77314a0490304f83bba4d8076b768426ccab
Author:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
AuthorDate: Fri Aug 18 14:16:41 2017 +0000
Commit:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
CommitDate: Fri Aug 18 14:17:02 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f23d7731

net-libs/nodejs: Version bump.

Package-Manager: Portage-2.3.8, Repoman-2.3.3

 net-libs/nodejs/Manifest                           |   1 +
 .../nodejs/files/nodejs-8.4.0-shared-nghttp2.patch | 105 +++++++++++
 net-libs/nodejs/nodejs-8.4.0.ebuild                | 196 +++++++++++++++++++++
 3 files changed, 302 insertions(+)

diff --git a/net-libs/nodejs/Manifest b/net-libs/nodejs/Manifest
index 9911e42715c..c1f487949bc 100644
--- a/net-libs/nodejs/Manifest
+++ b/net-libs/nodejs/Manifest
@@ -17,3 +17,4 @@ DIST node-v8.1.0.tar.xz 17723984 SHA256 f2ff20b69b782dee85e887ad06e830590b225085
 DIST node-v8.1.2.tar.xz 17730764 SHA256 ac190c1964ee0c28d4c163c0ccbb47435b2e4bd9b4c065b74a93373105c574b3 SHA512 c071040c33c69768d021613c3213bb227a8afe0868232e3a6094f28e86c118c4e2a74acefa1870e3d54c09c7b0ba6d0bda13ae16e954cdb0dc098aa638037788 WHIRLPOOL deac3b78e0219369d026df189206da1e0596a215ab670ac96192fa41d9622aa79fc3a79ee56af12fc57aa362c528c8b5b73a9e20dc69dd94682abd3c352a167c
 DIST node-v8.1.4.tar.xz 17737792 SHA256 a83c86445f79749c46fd4f2c4e681a3e5bb51b2bde5dc7aed1dc38e4e242c301 SHA512 b9b8d0842313f456e156ca88ec0d7f0082130368597d2d8d7a547658342d7e1692be928c17d2a77a09ee0ac2b443038b135cd99055ffee29ff61d957dea4ee14 WHIRLPOOL 4955ea1778f95a3232c0eaf45407eaa04ae91de2180341d4b87e711e484d2abbfc9875577be7df4d59fb3c8dc34579c779fbe47153a248be202cd0265f581585
 DIST node-v8.2.1.tar.xz 17897168 SHA256 02c46d8914540eea73d0ad33bf9f371a28aa0dc8c5d740948491fef044ad8c8b SHA512 8d84998e8408b89e003929d7fce89c31703aea59ca5826246422d4d1935941730b0b9907a8a9af088ec8ccad60d8919da04104037083a2363daf118682a3b82a WHIRLPOOL dbbf430699f88b1c86b1a818b9c2fe424d3c63eb36c2b85b54de78954d8f01dc47a2f66a6cecf30c43e8ab29236f0a7509a26afc4586501abcda4494a78a21c7
+DIST node-v8.4.0.tar.xz 18265792 SHA256 5d5aa2a101dcc617231a475812eb8ed87cac21491f1dcc7997b9dd463563f361 SHA512 7d0d97ca64db0bf87f1892490f8b7758a879d2ac22532b69e8e0ee5c04bd11073fd917353eeeabdcfbebc83540715d8c520ec9bf9ea1afc82d8ee7b6caf819f1 WHIRLPOOL 23f50be06615350564577349f6388d6563cbcae9e9b0229133baaab30852be7c759fbb4f265816ab999fa2bfa8666b47fb3ba438e09beff8e030fa2db547001c

diff --git a/net-libs/nodejs/files/nodejs-8.4.0-shared-nghttp2.patch b/net-libs/nodejs/files/nodejs-8.4.0-shared-nghttp2.patch
new file mode 100644
index 00000000000..1f1a2e6ea63
--- /dev/null
+++ b/net-libs/nodejs/files/nodejs-8.4.0-shared-nghttp2.patch
@@ -0,0 +1,105 @@
+--- a/configure
++++ b/configure
+@@ -182,6 +182,27 @@
+     dest='shared_http_parser_libpath',
+     help='a directory to search for the shared http_parser DLL')
+ 
++shared_optgroup.add_option('--shared-nghttp2',
++    action='store_true',
++    dest='shared_nghttp2',
++    help='link to a shared nghttp2 DLL instead of static linking')
++
++shared_optgroup.add_option('--shared-nghttp2-includes',
++    action='store',
++    dest='shared_nghttp2_includes',
++    help='directory containing nghttp2 header files')
++
++shared_optgroup.add_option('--shared-nghttp2-libname',
++    action='store',
++    dest='shared_nghttp2_libname',
++    default='nghttp2',
++    help='alternative lib name to link to [default: %default]')
++
++shared_optgroup.add_option('--shared-nghttp2-libpath',
++    action='store',
++    dest='shared_nghttp2_libpath',
++    help='a directory to search for the shared nghttp2 DLL')
++
+ shared_optgroup.add_option('--shared-libuv',
+     action='store_true',
+     dest='shared_libuv',
+@@ -1381,6 +1381,7 @@
+ configure_node(output)
+ configure_library('zlib', output)
+ configure_library('http_parser', output)
++configure_library('nghttp2', output)
+ configure_library('libuv', output)
+ configure_library('libcares', output)
+ # stay backwards compatible with shared cares builds
+--- a/node.gyp
++++ b/node.gyp
+@@ -14,6 +14,7 @@
+     'node_module_version%': '',
+     'node_shared_zlib%': 'false',
+     'node_shared_http_parser%': 'false',
++    'node_shared_nghttp2%': 'false',
+     'node_shared_cares%': 'false',
+     'node_shared_libuv%': 'false',
+     'node_use_openssl%': 'true',
+@@ -149,10 +150,17 @@
+       'type': '<(node_target_type)',
+
+       'dependencies': [
+-        'node_js2c#host',
+-        'deps/nghttp2/nghttp2.gyp:nghttp2'
++        'node_js2c#host'
+       ],
+
++      'conditions': [
++        [ 'node_shared_nghttp2=="false"', {
++          'dependencies': [
++            'deps/nghttp2/nghttp2.gyp:nghttp2'
++          ]
++        }]
++      ],
++
+       'includes': [
+         'node.gypi'
+       ],
+@@ -161,8 +161,7 @@
+         'src',
+         'tools/msvs/genfiles',
+         'deps/uv/src/ares',
+-        '<(SHARED_INTERMEDIATE_DIR)', # for node_natives.h
+-        'deps/nghttp2/lib/includes'
++        '<(SHARED_INTERMEDIATE_DIR)' # for node_natives.h
+       ],
+ 
+       'sources': [
+@@ -275,9 +274,7 @@
+         'NODE_PLATFORM="<(OS)"',
+         'NODE_WANT_INTERNALS=1',
+         # Warn when using deprecated V8 APIs.
+-        'V8_DEPRECATION_WARNINGS=1',
+-        # We're using the nghttp2 static lib
+-        'NGHTTP2_STATICLIB'
++        'V8_DEPRECATION_WARNINGS=1'
+       ],
+     },
+     {
+@@ -687,6 +684,15 @@
+                 'deps/http_parser/http_parser.gyp:http_parser'
+               ]
+             }],
++            [ 'node_shared_nghttp2=="false"', {
++              'dependencies': [
++                'deps/nghttp2/nghttp2.gyp:nghttp2'
++              ],
++              'defines': [
++                # We're using the nghttp2 static lib
++                'NGHTTP2_STATICLIB'
++              ]
++            }],
+             [ 'node_shared_libuv=="false"', {
+               'dependencies': [
+                 'deps/uv/uv.gyp:libuv'

diff --git a/net-libs/nodejs/nodejs-8.4.0.ebuild b/net-libs/nodejs/nodejs-8.4.0.ebuild
new file mode 100644
index 00000000000..a86e5fe18f8
--- /dev/null
+++ b/net-libs/nodejs/nodejs-8.4.0.ebuild
@@ -0,0 +1,196 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+RESTRICT="test"
+
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE="threads"
+
+inherit bash-completion-r1 eutils flag-o-matic pax-utils python-single-r1 toolchain-funcs
+
+DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine"
+HOMEPAGE="https://nodejs.org/"
+SRC_URI="https://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz"
+
+LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x64-macos"
+IUSE="cpu_flags_x86_sse2 debug doc icu +npm +snapshot +ssl systemtap test"
+
+RDEPEND="icu? ( >=dev-libs/icu-56:= )
+	npm? ( ${PYTHON_DEPS} )
+	>=net-libs/http-parser-2.6.2:=
+	>=dev-libs/libuv-1.11.0:=
+	net-libs/nghttp2
+	>=dev-libs/openssl-1.0.2g:0=[-bindist]
+	sys-libs/zlib"
+DEPEND="${RDEPEND}
+	${PYTHON_DEPS}
+	systemtap? ( dev-util/systemtap )
+	test? ( net-misc/curl )"
+
+S="${WORKDIR}/node-v${PV}"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+PATCHES=(
+	"${FILESDIR}"/gentoo-global-npm-config.patch
+	"${FILESDIR}"/nodejs-8.4.0-shared-nghttp2.patch
+)
+
+pkg_pretend() {
+	(use x86 && ! use cpu_flags_x86_sse2) && \
+		die "Your CPU doesn't support the required SSE2 instruction."
+
+	( [[ ${MERGE_TYPE} != "binary" ]] && ! test-flag-CXX -std=c++11 ) && \
+		die "Your compiler doesn't support C++11. Use GCC 4.8, Clang 3.3 or newer."
+}
+
+src_prepare() {
+	tc-export CC CXX PKG_CONFIG
+	export V=1
+	export BUILDTYPE=Release
+
+	# fix compilation on Darwin
+	# https://code.google.com/p/gyp/issues/detail?id=260
+	sed -i -e "/append('-arch/d" tools/gyp/pylib/gyp/xcode_emulation.py || die
+
+	# make sure we use python2.* while using gyp
+	sed -i -e "s/python/${EPYTHON}/" deps/npm/node_modules/node-gyp/gyp/gyp || die
+	sed -i -e "s/|| 'python'/|| '${EPYTHON}'/" deps/npm/node_modules/node-gyp/lib/configure.js || die
+
+	# less verbose install output (stating the same as portage, basically)
+	sed -i -e "/print/d" tools/install.py || die
+
+	# proper libdir, hat tip @ryanpcmcquen https://github.com/iojs/io.js/issues/504
+	local LIBDIR=$(get_libdir)
+	sed -i -e "s|lib/|${LIBDIR}/|g" tools/install.py || die
+	sed -i -e "s/'lib'/'${LIBDIR}'/" lib/module.js || die
+	sed -i -e "s|\"lib\"|\"${LIBDIR}\"|" deps/npm/lib/npm.js || die
+
+	# Avoid writing a depfile, not useful
+	sed -i -e "/DEPFLAGS =/d" tools/gyp/pylib/gyp/generator/make.py || die
+
+	# Avoid a test that I've only been able to reproduce from emerge. It doesnt
+	# seem sandbox related either (invoking it from a sandbox works fine).
+	# The issue is that no stdin handle is openened when asked for one.
+	# It doesn't really belong upstream , so it'll just be removed until someone
+	# with more gentoo-knowledge than me (jbergstroem) figures it out.
+	rm test/parallel/test-stdout-close-unref.js || die
+
+	# debug builds. change install path, remove optimisations and override buildtype
+	if use debug; then
+		sed -i -e "s|out/Release/|out/Debug/|g" tools/install.py || die
+		BUILDTYPE=Debug
+	fi
+
+	default
+}
+
+src_configure() {
+	local myarch=""
+	local myconf=( --shared-http-parser --shared-libuv --shared-nghttp2 --shared-openssl --shared-zlib )
+	use npm || myconf+=( --without-npm )
+	use icu && myconf+=( --with-intl=system-icu )
+	use snapshot && myconf+=( --with-snapshot )
+	use ssl || myconf+=( --without-ssl )
+	use debug && myconf+=( --debug )
+
+	case ${ABI} in
+		amd64) myarch="x64";;
+		arm) myarch="arm";;
+		arm64) myarch="arm64";;
+		ppc64) myarch="ppc64";;
+		x32) myarch="x32";;
+		x86) myarch="ia32";;
+		*) myarch="${ABI}";;
+	esac
+
+	GYP_DEFINES="linux_use_gold_flags=0
+		linux_use_bundled_binutils=0
+		linux_use_bundled_gold=0" \
+	"${PYTHON}" configure \
+		--prefix="${EPREFIX}"/usr \
+		--dest-cpu=${myarch} \
+		$(use_with systemtap dtrace) \
+		"${myconf[@]}" || die
+}
+
+src_compile() {
+	emake -C out mksnapshot
+	pax-mark m "out/${BUILDTYPE}/mksnapshot"
+	emake -C out
+}
+
+src_install() {
+	local LIBDIR="${ED}/usr/$(get_libdir)"
+	emake install DESTDIR="${D}"
+	pax-mark -m "${ED}"usr/bin/node
+
+	# set up a symlink structure that node-gyp expects..
+	dodir /usr/include/node/deps/{v8,uv}
+	dosym . /usr/include/node/src
+	for var in deps/{uv,v8}/include; do
+		dosym ../.. /usr/include/node/${var}
+	done
+
+	if use doc; then
+		# Patch docs to make them offline readable
+		for i in `grep -rl 'fonts.googleapis.com' "${S}"/out/doc/api/*`; do
+			sed -i '/fonts.googleapis.com/ d' $i;
+		done
+		# Install docs!
+		dohtml -r "${S}"/doc/*
+	fi
+
+	if use npm; then
+		dodir /etc/npm
+
+		# Install bash completion for `npm`
+		# We need to temporarily replace default config path since
+		# npm otherwise tries to write outside of the sandbox
+		local npm_config="usr/$(get_libdir)/node_modules/npm/lib/config/core.js"
+		sed -i -e "s|'/etc'|'${ED}/etc'|g" "${ED}/${npm_config}" || die
+		local tmp_npm_completion_file="$(emktemp)"
+		"${ED}/usr/bin/npm" completion > "${tmp_npm_completion_file}"
+		newbashcomp "${tmp_npm_completion_file}" npm
+		sed -i -e "s|'${ED}/etc'|'/etc'|g" "${ED}/${npm_config}" || die
+
+		# Move man pages
+		doman "${LIBDIR}"/node_modules/npm/man/man{1,5,7}/*
+
+		# Clean up
+		rm "${LIBDIR}"/node_modules/npm/{.mailmap,.npmignore,Makefile} || die
+		rm -rf "${LIBDIR}"/node_modules/npm/{doc,html,man} || die
+
+		local find_exp="-or -name"
+		local find_name=()
+		for match in "AUTHORS*" "CHANGELOG*" "CONTRIBUT*" "README*" \
+			".travis.yml" ".eslint*" ".wercker.yml" ".npmignore" \
+			"*.md" "*.markdown" "*.bat" "*.cmd"; do
+			find_name+=( ${find_exp} "${match}" )
+		done
+
+		# Remove various development and/or inappropriate files and
+		# useless docs of dependend packages.
+		find "${LIBDIR}"/node_modules \
+			\( -type d -name examples \) -or \( -type f \( \
+				-iname "LICEN?E*" \
+				"${find_name[@]}" \
+			\) \) -exec rm -rf "{}" \;
+	fi
+}
+
+src_test() {
+	out/${BUILDTYPE}/cctest || die
+	"${PYTHON}" tools/test.py --mode=${BUILDTYPE,,} -J message parallel sequential || die
+}
+
+pkg_postinst() {
+	einfo "The global npm config lives in /etc/npm. This deviates slightly"
+	einfo "from upstream which otherwise would have it live in /usr/etc/."
+	einfo ""
+	einfo "Protip: When using node-gyp to install native modules, you can"
+	einfo "avoid having to download extras by doing the following:"
+	einfo "$ node-gyp --nodedir /usr/include/node <command>"
+}


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: net-libs/nodejs/files/, net-libs/nodejs/
@ 2017-10-24  4:49 Jeroen Roovers
  0 siblings, 0 replies; 36+ messages in thread
From: Jeroen Roovers @ 2017-10-24  4:49 UTC (permalink / raw
  To: gentoo-commits

commit:     1552d931b0812314bb69e11bfccd7bfd9da99cf0
Author:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
AuthorDate: Tue Oct 24 04:45:27 2017 +0000
Commit:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
CommitDate: Tue Oct 24 04:49:16 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1552d931

net-libs/nodejs: Version bump (more on this later).

Package-Manager: Portage-2.3.12, Repoman-2.3.3

 net-libs/nodejs/Manifest                           |   1 +
 .../nodejs/files/nodejs-8.7.0-shared-nghttp2.patch | 105 +++++++++++
 net-libs/nodejs/nodejs-8.7.0.ebuild                | 196 +++++++++++++++++++++
 3 files changed, 302 insertions(+)

diff --git a/net-libs/nodejs/Manifest b/net-libs/nodejs/Manifest
index 76b36b7107e..ba24f7870bd 100644
--- a/net-libs/nodejs/Manifest
+++ b/net-libs/nodejs/Manifest
@@ -7,3 +7,4 @@ DIST node-v7.10.0.tar.xz 16751724 SHA256 dc34dd15524ba821ffcae7b245eabe8631e2614
 DIST node-v8.2.1.tar.xz 17897168 SHA256 02c46d8914540eea73d0ad33bf9f371a28aa0dc8c5d740948491fef044ad8c8b SHA512 8d84998e8408b89e003929d7fce89c31703aea59ca5826246422d4d1935941730b0b9907a8a9af088ec8ccad60d8919da04104037083a2363daf118682a3b82a WHIRLPOOL dbbf430699f88b1c86b1a818b9c2fe424d3c63eb36c2b85b54de78954d8f01dc47a2f66a6cecf30c43e8ab29236f0a7509a26afc4586501abcda4494a78a21c7
 DIST node-v8.4.0.tar.xz 18265792 SHA256 5d5aa2a101dcc617231a475812eb8ed87cac21491f1dcc7997b9dd463563f361 SHA512 7d0d97ca64db0bf87f1892490f8b7758a879d2ac22532b69e8e0ee5c04bd11073fd917353eeeabdcfbebc83540715d8c520ec9bf9ea1afc82d8ee7b6caf819f1 WHIRLPOOL 23f50be06615350564577349f6388d6563cbcae9e9b0229133baaab30852be7c759fbb4f265816ab999fa2bfa8666b47fb3ba438e09beff8e030fa2db547001c
 DIST node-v8.5.0.tar.xz 18326412 SHA256 e1cde5d8e5049e7e1b61aef128f26162059d885dc8cab5014bf5cbf693f75c3c SHA512 7ef83a6da7ba9d61c19df0530dfee7b769c0bc7ab066fc29fdb54c9b09085a3536699c7c92889cea8fbf3d6241cc66c383cd351451da8019fea4e0d25d043f3d WHIRLPOOL 63576159748e9423a0b1df7d032d4f5edc23d33f22fd76d3dc0f0b4804606abf57011097dcf4fd2d3707b22babe69bcd976133b7450558925b5d679872abd382
+DIST node-v8.7.0.tar.xz 18186384 SHA256 5a17d08c68ee7c1e748fd32534edda766cb57c13ed98e693f3075bc9d9a0b59a SHA512 5ce41d2d7f1c07330c4d9acc8129840d03fb820dac2f87be3f277a372ed6d84d6e1516e1d804e2277d500f32f9838d4307122b26962029d4f811904523f72530 WHIRLPOOL f4541efef681204684d491c9a2539560602c017087fa895e41b3ee9616ce6860a22634179bb904e816eee45b5f5ebc06bada5bb55be05e6e1418cac45cc55966

diff --git a/net-libs/nodejs/files/nodejs-8.7.0-shared-nghttp2.patch b/net-libs/nodejs/files/nodejs-8.7.0-shared-nghttp2.patch
new file mode 100644
index 00000000000..5f5a2c7b7ff
--- /dev/null
+++ b/net-libs/nodejs/files/nodejs-8.7.0-shared-nghttp2.patch
@@ -0,0 +1,105 @@
+--- a/configure
++++ b/configure
+@@ -182,6 +182,27 @@
+     dest='shared_http_parser_libpath',
+     help='a directory to search for the shared http_parser DLL')
+ 
++shared_optgroup.add_option('--shared-nghttp2',
++    action='store_true',
++    dest='shared_nghttp2',
++    help='link to a shared nghttp2 DLL instead of static linking')
++
++shared_optgroup.add_option('--shared-nghttp2-includes',
++    action='store',
++    dest='shared_nghttp2_includes',
++    help='directory containing nghttp2 header files')
++
++shared_optgroup.add_option('--shared-nghttp2-libname',
++    action='store',
++    dest='shared_nghttp2_libname',
++    default='nghttp2',
++    help='alternative lib name to link to [default: %default]')
++
++shared_optgroup.add_option('--shared-nghttp2-libpath',
++    action='store',
++    dest='shared_nghttp2_libpath',
++    help='a directory to search for the shared nghttp2 DLL')
++
+ shared_optgroup.add_option('--shared-libuv',
+     action='store_true',
+     dest='shared_libuv',
+@@ -1360,6 +1381,7 @@
+ configure_node(output)
+ configure_library('zlib', output)
+ configure_library('http_parser', output)
++configure_library('nghttp2', output)
+ configure_library('libuv', output)
+ configure_library('libcares', output)
+ # stay backwards compatible with shared cares builds
+--- a/node.gyp
++++ b/node.gyp
+@@ -14,6 +14,7 @@
+     'node_module_version%': '',
+     'node_shared_zlib%': 'false',
+     'node_shared_http_parser%': 'false',
++    'node_shared_nghttp2%': 'false',
+     'node_shared_cares%': 'false',
+     'node_shared_libuv%': 'false',
+     'node_use_openssl%': 'true',
+@@ -151,8 +152,15 @@
+       'type': '<(node_target_type)',
+ 
+       'dependencies': [
+-        'node_js2c#host',
+-        'deps/nghttp2/nghttp2.gyp:nghttp2'
++        'node_js2c#host'
++      ],
++
++      'conditions': [
++        [ 'node_shared_nghttp2=="false"', {
++          'dependencies': [
++            'deps/nghttp2/nghttp2.gyp:nghttp2'
++          ]
++        }]
+       ],
+ 
+       'includes': [
+@@ -163,8 +171,7 @@
+         'src',
+         'tools/msvs/genfiles',
+         'deps/uv/src/ares',
+-        '<(SHARED_INTERMEDIATE_DIR)', # for node_natives.h
+-        'deps/nghttp2/lib/includes'
++        '<(SHARED_INTERMEDIATE_DIR)' # for node_natives.h
+       ],
+ 
+       'sources': [
+@@ -691,6 +696,15 @@
+                 'deps/http_parser/http_parser.gyp:http_parser'
+               ]
+             }],
++            [ 'node_shared_nghttp2=="false"', {
++              'dependencies': [
++                'deps/nghttp2/nghttp2.gyp:nghttp2'
++              ],
++              'defines': [
++                # We're using the nghttp2 static lib
++                'NGHTTP2_STATICLIB'
++              ]
++            }],
+             [ 'node_shared_libuv=="false"', {
+               'dependencies': [
+                 'deps/uv/uv.gyp:libuv'
+--- a/node.gypi
++++ b/node.gypi
+@@ -251,6 +251,10 @@
+       'dependencies': [ 'deps/http_parser/http_parser.gyp:http_parser' ],
+     }],
+ 
++    [ 'node_shared_nghttp2=="false"', {
++      'dependencies': [ 'deps/nghttp2/nghttp2.gyp:nghttp2' ],
++    }],
++
+     [ 'node_shared_cares=="false"', {
+       'dependencies': [ 'deps/cares/cares.gyp:cares' ],
+     }],

diff --git a/net-libs/nodejs/nodejs-8.7.0.ebuild b/net-libs/nodejs/nodejs-8.7.0.ebuild
new file mode 100644
index 00000000000..2739d2a8cd9
--- /dev/null
+++ b/net-libs/nodejs/nodejs-8.7.0.ebuild
@@ -0,0 +1,196 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+RESTRICT="test"
+
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE="threads"
+
+inherit bash-completion-r1 eutils flag-o-matic pax-utils python-single-r1 toolchain-funcs
+
+DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine"
+HOMEPAGE="https://nodejs.org/"
+SRC_URI="https://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz"
+
+LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x64-macos"
+IUSE="cpu_flags_x86_sse2 debug doc icu +npm +snapshot +ssl systemtap test"
+
+RDEPEND="icu? ( >=dev-libs/icu-56:= )
+	npm? ( ${PYTHON_DEPS} )
+	>=net-libs/http-parser-2.7.0:=
+	>=dev-libs/libuv-1.15.0:=
+	>=net-libs/nghttp2-1.25.0
+	>=dev-libs/openssl-1.0.2g:0=[-bindist]
+	sys-libs/zlib"
+DEPEND="${RDEPEND}
+	${PYTHON_DEPS}
+	systemtap? ( dev-util/systemtap )
+	test? ( net-misc/curl )"
+
+S="${WORKDIR}/node-v${PV}"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+PATCHES=(
+	"${FILESDIR}"/gentoo-global-npm-config.patch
+	"${FILESDIR}"/nodejs-8.7.0-shared-nghttp2.patch
+)
+
+pkg_pretend() {
+	(use x86 && ! use cpu_flags_x86_sse2) && \
+		die "Your CPU doesn't support the required SSE2 instruction."
+
+	( [[ ${MERGE_TYPE} != "binary" ]] && ! test-flag-CXX -std=c++11 ) && \
+		die "Your compiler doesn't support C++11. Use GCC 4.8, Clang 3.3 or newer."
+}
+
+src_prepare() {
+	tc-export CC CXX PKG_CONFIG
+	export V=1
+	export BUILDTYPE=Release
+
+	# fix compilation on Darwin
+	# https://code.google.com/p/gyp/issues/detail?id=260
+	sed -i -e "/append('-arch/d" tools/gyp/pylib/gyp/xcode_emulation.py || die
+
+	# make sure we use python2.* while using gyp
+	sed -i -e "s/python/${EPYTHON}/" deps/npm/node_modules/node-gyp/gyp/gyp || die
+	sed -i -e "s/|| 'python'/|| '${EPYTHON}'/" deps/npm/node_modules/node-gyp/lib/configure.js || die
+
+	# less verbose install output (stating the same as portage, basically)
+	sed -i -e "/print/d" tools/install.py || die
+
+	# proper libdir, hat tip @ryanpcmcquen https://github.com/iojs/io.js/issues/504
+	local LIBDIR=$(get_libdir)
+	sed -i -e "s|lib/|${LIBDIR}/|g" tools/install.py || die
+	sed -i -e "s/'lib'/'${LIBDIR}'/" lib/module.js || die
+	sed -i -e "s|\"lib\"|\"${LIBDIR}\"|" deps/npm/lib/npm.js || die
+
+	# Avoid writing a depfile, not useful
+	sed -i -e "/DEPFLAGS =/d" tools/gyp/pylib/gyp/generator/make.py || die
+
+	# Avoid a test that I've only been able to reproduce from emerge. It doesnt
+	# seem sandbox related either (invoking it from a sandbox works fine).
+	# The issue is that no stdin handle is openened when asked for one.
+	# It doesn't really belong upstream , so it'll just be removed until someone
+	# with more gentoo-knowledge than me (jbergstroem) figures it out.
+	rm test/parallel/test-stdout-close-unref.js || die
+
+	# debug builds. change install path, remove optimisations and override buildtype
+	if use debug; then
+		sed -i -e "s|out/Release/|out/Debug/|g" tools/install.py || die
+		BUILDTYPE=Debug
+	fi
+
+	default
+}
+
+src_configure() {
+	local myarch=""
+	local myconf=( --shared-http-parser --shared-libuv --shared-nghttp2 --shared-openssl --shared-zlib )
+	use npm || myconf+=( --without-npm )
+	use icu && myconf+=( --with-intl=system-icu )
+	use snapshot && myconf+=( --with-snapshot )
+	use ssl || myconf+=( --without-ssl )
+	use debug && myconf+=( --debug )
+
+	case ${ABI} in
+		amd64) myarch="x64";;
+		arm) myarch="arm";;
+		arm64) myarch="arm64";;
+		ppc64) myarch="ppc64";;
+		x32) myarch="x32";;
+		x86) myarch="ia32";;
+		*) myarch="${ABI}";;
+	esac
+
+	GYP_DEFINES="linux_use_gold_flags=0
+		linux_use_bundled_binutils=0
+		linux_use_bundled_gold=0" \
+	"${PYTHON}" configure \
+		--prefix="${EPREFIX}"/usr \
+		--dest-cpu=${myarch} \
+		$(use_with systemtap dtrace) \
+		"${myconf[@]}" || die
+}
+
+src_compile() {
+	emake -C out mksnapshot
+	pax-mark m "out/${BUILDTYPE}/mksnapshot"
+	emake -C out
+}
+
+src_install() {
+	local LIBDIR="${ED}/usr/$(get_libdir)"
+	emake install DESTDIR="${D}"
+	pax-mark -m "${ED}"usr/bin/node
+
+	# set up a symlink structure that node-gyp expects..
+	dodir /usr/include/node/deps/{v8,uv}
+	dosym . /usr/include/node/src
+	for var in deps/{uv,v8}/include; do
+		dosym ../.. /usr/include/node/${var}
+	done
+
+	if use doc; then
+		# Patch docs to make them offline readable
+		for i in `grep -rl 'fonts.googleapis.com' "${S}"/out/doc/api/*`; do
+			sed -i '/fonts.googleapis.com/ d' $i;
+		done
+		# Install docs!
+		dohtml -r "${S}"/doc/*
+	fi
+
+	if use npm; then
+		dodir /etc/npm
+
+		# Install bash completion for `npm`
+		# We need to temporarily replace default config path since
+		# npm otherwise tries to write outside of the sandbox
+		local npm_config="usr/$(get_libdir)/node_modules/npm/lib/config/core.js"
+		sed -i -e "s|'/etc'|'${ED}/etc'|g" "${ED}/${npm_config}" || die
+		local tmp_npm_completion_file="$(emktemp)"
+		"${ED}/usr/bin/npm" completion > "${tmp_npm_completion_file}"
+		newbashcomp "${tmp_npm_completion_file}" npm
+		sed -i -e "s|'${ED}/etc'|'/etc'|g" "${ED}/${npm_config}" || die
+
+		# Move man pages
+		doman "${LIBDIR}"/node_modules/npm/man/man{1,5,7}/*
+
+		# Clean up
+		rm "${LIBDIR}"/node_modules/npm/{.mailmap,.npmignore,Makefile} || die
+		rm -rf "${LIBDIR}"/node_modules/npm/{doc,html,man} || die
+
+		local find_exp="-or -name"
+		local find_name=()
+		for match in "AUTHORS*" "CHANGELOG*" "CONTRIBUT*" "README*" \
+			".travis.yml" ".eslint*" ".wercker.yml" ".npmignore" \
+			"*.md" "*.markdown" "*.bat" "*.cmd"; do
+			find_name+=( ${find_exp} "${match}" )
+		done
+
+		# Remove various development and/or inappropriate files and
+		# useless docs of dependend packages.
+		find "${LIBDIR}"/node_modules \
+			\( -type d -name examples \) -or \( -type f \( \
+				-iname "LICEN?E*" \
+				"${find_name[@]}" \
+			\) \) -exec rm -rf "{}" \;
+	fi
+}
+
+src_test() {
+	out/${BUILDTYPE}/cctest || die
+	"${PYTHON}" tools/test.py --mode=${BUILDTYPE,,} -J message parallel sequential || die
+}
+
+pkg_postinst() {
+	einfo "The global npm config lives in /etc/npm. This deviates slightly"
+	einfo "from upstream which otherwise would have it live in /usr/etc/."
+	einfo ""
+	einfo "Protip: When using node-gyp to install native modules, you can"
+	einfo "avoid having to download extras by doing the following:"
+	einfo "$ node-gyp --nodedir /usr/include/node <command>"
+}


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: net-libs/nodejs/files/, net-libs/nodejs/
@ 2017-11-15 15:13 Jeroen Roovers
  0 siblings, 0 replies; 36+ messages in thread
From: Jeroen Roovers @ 2017-11-15 15:13 UTC (permalink / raw
  To: gentoo-commits

commit:     143a0116d9c526f5010b52db31431e70f33aa134
Author:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
AuthorDate: Wed Nov 15 15:13:20 2017 +0000
Commit:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
CommitDate: Wed Nov 15 15:13:36 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=143a0116

net-libs/nodejs: Version bump.

Package-Manager: Portage-2.3.13, Repoman-2.3.4

 net-libs/nodejs/Manifest                           |   1 +
 .../nodejs/files/nodejs-9.2.0-shared-nghttp2.patch |  89 ++++++++++
 net-libs/nodejs/nodejs-9.2.0.ebuild                | 197 +++++++++++++++++++++
 3 files changed, 287 insertions(+)

diff --git a/net-libs/nodejs/Manifest b/net-libs/nodejs/Manifest
index e466edb6328..d6d171d04ad 100644
--- a/net-libs/nodejs/Manifest
+++ b/net-libs/nodejs/Manifest
@@ -4,3 +4,4 @@ DIST node-v6.11.5.tar.xz 15699404 SHA256 1c6de415216799fbaeca82304b3fef87accc710
 DIST node-v6.9.4.tar.xz 15519264 SHA256 c51d7c61db40455d57428abcadc7eb0f0a08a8878cb1d8ea3c1e211c54532c35 SHA512 86d3e2889031c2b50c021bd3fd63194c2c22c44291d51dff1b5e1652b01853c09d2880c2f58fdad062e3e2a3f637a3f0d78dac66b835b676790cf272e64f8dce WHIRLPOOL d1bcf488ed1aae7959303b988c9467fc5d0930166c7bfe0e441392763e19f788496971c07560a9f62586bbb2be7ce741ece8346140d665d29593b9b8f649b002
 DIST node-v8.9.1.tar.xz 18290848 SHA256 ef160c21f60f8aca64145985e01b4044435e381dc16e8f0640ed0223e84f17e0 SHA512 e1d93def34c1b91de90b807031e2f313661658cd045d44d290950190b10512770df05cb92e9657bab7ad6654d3359364193567cf693ddb2b3574d2a48e4ee256 WHIRLPOOL f1e47a0d078e0c1c29c993c8266337ae1fa0ee18ac81e053c4deabe85a94a5de0681ea9ed7f81119d108235055b849bc30557eb0d86345675580d76bd7c05f4d
 DIST node-v9.1.0.tar.xz 18256556 SHA256 7e34d581332aedc85306859e613a81cce2531bdd30eef358cb54db8a4f5c3c49 SHA512 3e99c8c93cb05194e572a1fcf25032da2d94e5dffec1ec3044945d70c02a07f31d872501c0614dd9e8142ddb60e1c20cf13b59859be9c4e9e6beb3f7b8fc3aae WHIRLPOOL 70864c2bbb1e69f5e30a41098dd68ab399cc2e78e9d90237bdc08e425d7f1d06c6a8b74557f44e1b73f021d18096e60eaee00e5a0c51b58408ac11a13f0cc53a
+DIST node-v9.2.0.tar.xz 18347108 SHA256 64caf263eadc1aea072ce5d30ded7f4534aa7f59c8c6993eee4accad96e3bbc2 SHA512 3335a2ec17f4698bda58f2a2c9548546912b9a4109c0bff0ffc57bca14d40101bcc00356231c95c08733860286ac340e227ca79debac581835f84ae3967cdb4b WHIRLPOOL f14cd3f537d2f1f41ee299f2492f2dc275587846dc231f668ccb3c2d31720020b982474130ae7ce4b8ca709e2f67c510d3e65b7641fbc3fff0e3f9be3321ca2a

diff --git a/net-libs/nodejs/files/nodejs-9.2.0-shared-nghttp2.patch b/net-libs/nodejs/files/nodejs-9.2.0-shared-nghttp2.patch
new file mode 100644
index 00000000000..a145c0c7116
--- /dev/null
+++ b/net-libs/nodejs/files/nodejs-9.2.0-shared-nghttp2.patch
@@ -0,0 +1,89 @@
+--- a/configure
++++ b/configure
+@@ -182,6 +182,27 @@
+     dest='shared_http_parser_libpath',
+     help='a directory to search for the shared http_parser DLL')
+ 
++shared_optgroup.add_option('--shared-nghttp2',
++    action='store_true',
++    dest='shared_nghttp2',
++    help='link to a shared nghttp2 DLL instead of static linking')
++
++shared_optgroup.add_option('--shared-nghttp2-includes',
++    action='store',
++    dest='shared_nghttp2_includes',
++    help='directory containing nghttp2 header files')
++
++shared_optgroup.add_option('--shared-nghttp2-libname',
++    action='store',
++    dest='shared_nghttp2_libname',
++    default='nghttp2',
++    help='alternative lib name to link to [default: %default]')
++
++shared_optgroup.add_option('--shared-nghttp2-libpath',
++    action='store',
++    dest='shared_nghttp2_libpath',
++    help='a directory to search for the shared nghttp2 DLL')
++
+ shared_optgroup.add_option('--shared-libuv',
+     action='store_true',
+     dest='shared_libuv',
+@@ -1360,6 +1381,7 @@
+ configure_node(output)
+ configure_library('zlib', output)
+ configure_library('http_parser', output)
++configure_library('nghttp2', output)
+ configure_library('libuv', output)
+ configure_library('libcares', output)
+ # stay backwards compatible with shared cares builds
+--- a/node.gyp
++++ b/node.gyp
+@@ -14,6 +14,7 @@
+     'node_module_version%': '',
+     'node_shared_zlib%': 'false',
+     'node_shared_http_parser%': 'false',
++    'node_shared_nghttp2%': 'false',
+     'node_shared_cares%': 'false',
+     'node_shared_libuv%': 'false',
+     'node_use_openssl%': 'true',
+@@ -151,8 +152,15 @@
+       'type': '<(node_target_type)',
+ 
+       'dependencies': [
+-        'node_js2c#host',
+-        'deps/nghttp2/nghttp2.gyp:nghttp2'
++        'node_js2c#host'
++      ],
++
++      'conditions': [
++        [ 'node_shared_nghttp2=="false"', {
++          'dependencies': [
++            'deps/nghttp2/nghttp2.gyp:nghttp2'
++          ]
++        }]
+       ],
+ 
+       'includes': [
+@@ -180,8 +180,7 @@
+       'include_dirs': [
+         'src',
+         'tools/msvs/genfiles',
+-        '<(SHARED_INTERMEDIATE_DIR)', # for node_natives.h
+-        'deps/nghttp2/lib/includes'
++        '<(SHARED_INTERMEDIATE_DIR)' # for node_natives.h
+       ],
+ 
+       'sources': [
+--- a/node.gypi
++++ b/node.gypi
+@@ -251,6 +251,10 @@
+       'dependencies': [ 'deps/http_parser/http_parser.gyp:http_parser' ],
+     }],
+ 
++    [ 'node_shared_nghttp2=="false"', {
++      'dependencies': [ 'deps/nghttp2/nghttp2.gyp:nghttp2' ],
++    }],
++
+     [ 'node_shared_cares=="false"', {
+       'dependencies': [ 'deps/cares/cares.gyp:cares' ],
+     }],

diff --git a/net-libs/nodejs/nodejs-9.2.0.ebuild b/net-libs/nodejs/nodejs-9.2.0.ebuild
new file mode 100644
index 00000000000..aaab3c90a4b
--- /dev/null
+++ b/net-libs/nodejs/nodejs-9.2.0.ebuild
@@ -0,0 +1,197 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+RESTRICT="test"
+
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE="threads"
+
+inherit bash-completion-r1 eutils flag-o-matic pax-utils python-single-r1 toolchain-funcs
+
+DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine"
+HOMEPAGE="https://nodejs.org/"
+SRC_URI="https://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz"
+
+LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x64-macos"
+IUSE="cpu_flags_x86_sse2 debug doc icu +npm +snapshot +ssl systemtap test"
+
+RDEPEND="icu? ( >=dev-libs/icu-59:= )
+	npm? ( ${PYTHON_DEPS} )
+	>=net-libs/http-parser-2.7.0:=
+	>=dev-libs/libuv-1.16.1:=
+	>=net-libs/nghttp2-1.25.0
+	>=dev-libs/openssl-1.0.2g:0=[-bindist]
+	sys-libs/zlib"
+DEPEND="${RDEPEND}
+	${PYTHON_DEPS}
+	systemtap? ( dev-util/systemtap )
+	test? ( net-misc/curl )"
+
+S="${WORKDIR}/node-v${PV}"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+PATCHES=(
+	"${FILESDIR}"/gentoo-global-npm-config.patch
+	"${FILESDIR}"/nodejs-9.2.0-shared-nghttp2.patch
+)
+
+pkg_pretend() {
+	(use x86 && ! use cpu_flags_x86_sse2) && \
+		die "Your CPU doesn't support the required SSE2 instruction."
+
+	( [[ ${MERGE_TYPE} != "binary" ]] && ! test-flag-CXX -std=c++11 ) && \
+		die "Your compiler doesn't support C++11. Use GCC 4.8, Clang 3.3 or newer."
+}
+
+src_prepare() {
+	tc-export CC CXX PKG_CONFIG
+	export V=1
+	export BUILDTYPE=Release
+
+	# fix compilation on Darwin
+	# https://code.google.com/p/gyp/issues/detail?id=260
+	sed -i -e "/append('-arch/d" tools/gyp/pylib/gyp/xcode_emulation.py || die
+
+	# make sure we use python2.* while using gyp
+	sed -i -e "s/python/${EPYTHON}/" deps/npm/node_modules/node-gyp/gyp/gyp || die
+	sed -i -e "s/|| 'python2'/|| '${EPYTHON}'/" deps/npm/node_modules/node-gyp/lib/configure.js || die
+
+	# less verbose install output (stating the same as portage, basically)
+	sed -i -e "/print/d" tools/install.py || die
+
+	# proper libdir, hat tip @ryanpcmcquen https://github.com/iojs/io.js/issues/504
+	local LIBDIR=$(get_libdir)
+	sed -i -e "s|lib/|${LIBDIR}/|g" tools/install.py || die
+	sed -i -e "s/'lib'/'${LIBDIR}'/" lib/module.js deps/npm/lib/npm.js || die
+
+	# Avoid writing a depfile, not useful
+	sed -i -e "/DEPFLAGS =/d" tools/gyp/pylib/gyp/generator/make.py || die
+
+	sed -i -e "/'-O3'/d" common.gypi || die
+
+	# Avoid a test that I've only been able to reproduce from emerge. It doesnt
+	# seem sandbox related either (invoking it from a sandbox works fine).
+	# The issue is that no stdin handle is openened when asked for one.
+	# It doesn't really belong upstream , so it'll just be removed until someone
+	# with more gentoo-knowledge than me (jbergstroem) figures it out.
+	rm test/parallel/test-stdout-close-unref.js || die
+
+	# debug builds. change install path, remove optimisations and override buildtype
+	if use debug; then
+		sed -i -e "s|out/Release/|out/Debug/|g" tools/install.py || die
+		BUILDTYPE=Debug
+	fi
+
+	default
+}
+
+src_configure() {
+	local myarch=""
+	local myconf=( --shared-http-parser --shared-libuv --shared-nghttp2 --shared-openssl --shared-zlib )
+	use npm || myconf+=( --without-npm )
+	use icu && myconf+=( --with-intl=system-icu ) || myconf+=( --with-intl=none )
+	use snapshot && myconf+=( --with-snapshot )
+	use ssl || myconf+=( --without-ssl )
+	use debug && myconf+=( --debug )
+
+	case ${ABI} in
+		amd64) myarch="x64";;
+		arm) myarch="arm";;
+		arm64) myarch="arm64";;
+		ppc64) myarch="ppc64";;
+		x32) myarch="x32";;
+		x86) myarch="ia32";;
+		*) myarch="${ABI}";;
+	esac
+
+	GYP_DEFINES="linux_use_gold_flags=0
+		linux_use_bundled_binutils=0
+		linux_use_bundled_gold=0" \
+	"${PYTHON}" configure \
+		--prefix="${EPREFIX}"/usr \
+		--dest-cpu=${myarch} \
+		$(use_with systemtap dtrace) \
+		"${myconf[@]}" || die
+}
+
+src_compile() {
+	emake -C out mksnapshot
+	pax-mark m "out/${BUILDTYPE}/mksnapshot"
+	emake -C out
+}
+
+src_install() {
+	local LIBDIR="${ED}/usr/$(get_libdir)"
+	emake install DESTDIR="${D}"
+	pax-mark -m "${ED}"usr/bin/node
+
+	# set up a symlink structure that node-gyp expects..
+	dodir /usr/include/node/deps/{v8,uv}
+	dosym . /usr/include/node/src
+	for var in deps/{uv,v8}/include; do
+		dosym ../.. /usr/include/node/${var}
+	done
+
+	if use doc; then
+		# Patch docs to make them offline readable
+		for i in `grep -rl 'fonts.googleapis.com' "${S}"/out/doc/api/*`; do
+			sed -i '/fonts.googleapis.com/ d' $i;
+		done
+		# Install docs!
+		dohtml -r "${S}"/doc/*
+	fi
+
+	if use npm; then
+		dodir /etc/npm
+
+		# Install bash completion for `npm`
+		# We need to temporarily replace default config path since
+		# npm otherwise tries to write outside of the sandbox
+		local npm_config="usr/$(get_libdir)/node_modules/npm/lib/config/core.js"
+		sed -i -e "s|'/etc'|'${ED}/etc'|g" "${ED}/${npm_config}" || die
+		local tmp_npm_completion_file="$(emktemp)"
+		"${ED}/usr/bin/npm" completion > "${tmp_npm_completion_file}"
+		newbashcomp "${tmp_npm_completion_file}" npm
+		sed -i -e "s|'${ED}/etc'|'/etc'|g" "${ED}/${npm_config}" || die
+
+		# Move man pages
+		doman "${LIBDIR}"/node_modules/npm/man/man{1,5,7}/*
+
+		# Clean up
+		rm "${LIBDIR}"/node_modules/npm/{.mailmap,.npmignore,Makefile} || die
+		rm -rf "${LIBDIR}"/node_modules/npm/{doc,html,man} || die
+
+		local find_exp="-or -name"
+		local find_name=()
+		for match in "AUTHORS*" "CHANGELOG*" "CONTRIBUT*" "README*" \
+			".travis.yml" ".eslint*" ".wercker.yml" ".npmignore" \
+			"*.md" "*.markdown" "*.bat" "*.cmd"; do
+			find_name+=( ${find_exp} "${match}" )
+		done
+
+		# Remove various development and/or inappropriate files and
+		# useless docs of dependend packages.
+		find "${LIBDIR}"/node_modules \
+			\( -type d -name examples \) -or \( -type f \( \
+				-iname "LICEN?E*" \
+				"${find_name[@]}" \
+			\) \) -exec rm -rf "{}" \;
+	fi
+}
+
+src_test() {
+	out/${BUILDTYPE}/cctest || die
+	"${PYTHON}" tools/test.py --mode=${BUILDTYPE,,} -J message parallel sequential || die
+}
+
+pkg_postinst() {
+	einfo "The global npm config lives in /etc/npm. This deviates slightly"
+	einfo "from upstream which otherwise would have it live in /usr/etc/."
+	einfo ""
+	einfo "Protip: When using node-gyp to install native modules, you can"
+	einfo "avoid having to download extras by doing the following:"
+	einfo "$ node-gyp --nodedir /usr/include/node <command>"
+}


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: net-libs/nodejs/files/, net-libs/nodejs/
@ 2018-07-23 10:49 Jeroen Roovers
  0 siblings, 0 replies; 36+ messages in thread
From: Jeroen Roovers @ 2018-07-23 10:49 UTC (permalink / raw
  To: gentoo-commits

commit:     889194e648e41fc1179e590d926dbee5371b37ce
Author:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
AuthorDate: Mon Jul 23 10:47:59 2018 +0000
Commit:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
CommitDate: Mon Jul 23 10:47:59 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=889194e6

net-libs/nodejs: Fix npm patch (bug #660450).

Package-Manager: Portage-2.3.43, Repoman-2.3.10

 net-libs/nodejs/files/nodejs-10.3.0-global-npm-config.patch       | 4 ++--
 net-libs/nodejs/{nodejs-10.6.0.ebuild => nodejs-10.6.0-r1.ebuild} | 0
 net-libs/nodejs/{nodejs-10.7.0.ebuild => nodejs-10.7.0-r1.ebuild} | 0
 3 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/net-libs/nodejs/files/nodejs-10.3.0-global-npm-config.patch b/net-libs/nodejs/files/nodejs-10.3.0-global-npm-config.patch
index e2bbbbe97a3..9c7fe6888fb 100644
--- a/net-libs/nodejs/files/nodejs-10.3.0-global-npm-config.patch
+++ b/net-libs/nodejs/files/nodejs-10.3.0-global-npm-config.patch
@@ -1,6 +1,6 @@
 --- a/deps/npm/lib/config/core.js
 +++ b/deps/npm/lib/config/core.js
-@@ -153,11 +153,13 @@
+@@ -153,11 +153,12 @@
      // Eg, `npm config get globalconfig --prefix ~/local` should
      // return `~/local/etc/npmrc`
      // annoying humans and their expectations!
@@ -8,12 +8,12 @@
 -      var etc = path.resolve(conf.get('prefix'), 'etc')
 -      defaults.globalconfig = path.resolve(etc, 'npmrc')
 -      defaults.globalignorefile = path.resolve(etc, 'npmignore')
+-    }
 +    // gentoo deviates wrt global config; store in /etc/npm
 +    var globalconfig = path.resolve('/etc', 'npm')
 +    mkdirp(globalconfig, function () {
 +      defaults.globalconfig = path.resolve(globalconfig, 'npmrc')
 +      defaults.globalignorefile = path.resolve(globalconfig, 'npmignore')
-     }
 +    })
  
      conf.addFile(conf.get('globalconfig'), 'global')

diff --git a/net-libs/nodejs/nodejs-10.6.0.ebuild b/net-libs/nodejs/nodejs-10.6.0-r1.ebuild
similarity index 100%
rename from net-libs/nodejs/nodejs-10.6.0.ebuild
rename to net-libs/nodejs/nodejs-10.6.0-r1.ebuild

diff --git a/net-libs/nodejs/nodejs-10.7.0.ebuild b/net-libs/nodejs/nodejs-10.7.0-r1.ebuild
similarity index 100%
rename from net-libs/nodejs/nodejs-10.7.0.ebuild
rename to net-libs/nodejs/nodejs-10.7.0-r1.ebuild


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: net-libs/nodejs/files/, net-libs/nodejs/
@ 2018-12-13 12:50 Jeroen Roovers
  0 siblings, 0 replies; 36+ messages in thread
From: Jeroen Roovers @ 2018-12-13 12:50 UTC (permalink / raw
  To: gentoo-commits

commit:     7f275c73799d53dbf45cdded0c5e6d52839c5e2c
Author:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
AuthorDate: Thu Dec 13 12:49:53 2018 +0000
Commit:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
CommitDate: Thu Dec 13 12:50:16 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7f275c73

net-libs/nodejs: Fix llhttp/http_parser in live ebuild

Package-Manager: Portage-2.3.52, Repoman-2.3.12
Signed-off-by: Jeroen Roovers <jer <AT> gentoo.org>

 net-libs/nodejs/files/nodejs-99999999-llhttp.patch | 20 ++++++++++++++++++++
 net-libs/nodejs/nodejs-99999999.ebuild             |  1 +
 2 files changed, 21 insertions(+)

diff --git a/net-libs/nodejs/files/nodejs-99999999-llhttp.patch b/net-libs/nodejs/files/nodejs-99999999-llhttp.patch
new file mode 100644
index 00000000000..1b6eb9fb7fa
--- /dev/null
+++ b/net-libs/nodejs/files/nodejs-99999999-llhttp.patch
@@ -0,0 +1,20 @@
+--- a/node.gypi
++++ b/node.gypi
+@@ -169,11 +169,15 @@
+ 
+     [ 'node_shared_http_parser=="false"', {
+       'dependencies': [
+-        'deps/http_parser/http_parser.gyp:http_parser',
+-        'deps/llhttp/llhttp.gyp:llhttp'
++        'deps/http_parser/http_parser.gyp:http_parser'
+       ],
+     } ],
+ 
++    [ '"true"', { 'dependencies': [
++        'deps/llhttp/llhttp.gyp:llhttp'
++      ],
++    }],
++
+     [ 'node_shared_cares=="false"', {
+       'dependencies': [ 'deps/cares/cares.gyp:cares' ],
+     }],

diff --git a/net-libs/nodejs/nodejs-99999999.ebuild b/net-libs/nodejs/nodejs-99999999.ebuild
index f6a2fedbb6b..e5f27818359 100644
--- a/net-libs/nodejs/nodejs-99999999.ebuild
+++ b/net-libs/nodejs/nodejs-99999999.ebuild
@@ -39,6 +39,7 @@ DEPEND="
 "
 PATCHES=(
 	"${FILESDIR}"/${PN}-10.3.0-global-npm-config.patch
+	"${FILESDIR}"/${PN}-99999999-llhttp.patch
 )
 
 pkg_pretend() {


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: net-libs/nodejs/files/, net-libs/nodejs/
@ 2018-12-27 14:59 Jeroen Roovers
  0 siblings, 0 replies; 36+ messages in thread
From: Jeroen Roovers @ 2018-12-27 14:59 UTC (permalink / raw
  To: gentoo-commits

commit:     cd787e294ef5ba4448aeffdd9396e39ce9ba7e6d
Author:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
AuthorDate: Thu Dec 27 14:58:46 2018 +0000
Commit:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
CommitDate: Thu Dec 27 14:58:59 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cd787e29

net-libs/nodejs: Old

Package-Manager: Portage-2.3.52, Repoman-2.3.12
Signed-off-by: Jeroen Roovers <jer <AT> gentoo.org>

 net-libs/nodejs/Manifest                         |   6 -
 net-libs/nodejs/files/nodejs-11.4.0-llhttp.patch |  30 ----
 net-libs/nodejs/nodejs-10.14.0.ebuild            | 205 ----------------------
 net-libs/nodejs/nodejs-10.14.2.ebuild            | 205 ----------------------
 net-libs/nodejs/nodejs-11.4.0.ebuild             | 207 -----------------------
 net-libs/nodejs/nodejs-11.5.0.ebuild             | 207 -----------------------
 net-libs/nodejs/nodejs-6.15.1.ebuild             | 200 ----------------------
 net-libs/nodejs/nodejs-8.14.1.ebuild             | 207 -----------------------
 8 files changed, 1267 deletions(-)

diff --git a/net-libs/nodejs/Manifest b/net-libs/nodejs/Manifest
index 9e69b154428..193cd7e834c 100644
--- a/net-libs/nodejs/Manifest
+++ b/net-libs/nodejs/Manifest
@@ -1,14 +1,8 @@
 DIST node-v0.12.18.tar.gz 19842591 BLAKE2B f94f4de6e2875267be194580c645087a262b90da99f10d651a22838c041da07056df81204bb04ce8da083a080062509dcca4d1e3ac2250d651ead8a4cc025028 SHA512 6866608a43eb213f3b715ea0fcc28983fd959ab679c567a1b464f62acd936506f2bce88ea48a60209d8ef8d98259f4b47cd3434893eb4ff82a132775edb37b7b
-DIST node-v10.14.0.tar.xz 20193912 BLAKE2B a72411c9b7bfc9e257089d26cfc7a00321d1db7836b9a292544971fbceaaeae8b178ef53735175621d42169eb6839173340b00e441e498187bf4fffc02edca71 SHA512 82900373993ae2a068ccc9217eadc700a91956893f0a9973c5003ca648e16859a5b37919ea15c06bc1bd746957db6915ad75aa3d8ddb18c1b949c5723617c0c9
-DIST node-v10.14.2.tar.xz 20214264 BLAKE2B ca962d58a5b23c0acdc242d80d5b9a5bf2b2c81b218ad177503d6152bdc58682873156f01f1c0634217486316628edaa1de4042241906912e910c7b1dfa2abf5 SHA512 35d66708ffe557b87d93328d49d46423b18a3ada6f33031a39b1fab063adf8d61d431cea4e91df853922b1cf34d337fe3adbb3f6582f37bc059c0e793dd8034a
 DIST node-v10.15.0.tar.xz 20217588 BLAKE2B ef7f626bd3b13b11a1cbf21f5c6a2ce08567dddc2fb525c5f10e02f81750a648245c2eb88535d8aac1b055a13d12f9ead72d55c4ccf68062940da09d582344c3 SHA512 6c10ae4070cd8b89d4d31ee2137453fa582cef85c6f002c78d5029ceedddf5caeee8e28a4e75dfc632c3af3c8e2acec403ab17a927ba51fa31175d58b45cbf49
-DIST node-v11.4.0.tar.xz 20406416 BLAKE2B 45c5f2d42aa328c5f5530be99e89e01fe70947e41c9c6b9def599d62df57fb48ce575f36da36369756e98fe3c6d4d0093c0f2f28e0c571874e711cca6d705582 SHA512 1d2fc3cb545f0262bcec674ffb47cd9391876744bcac5f1d95e59022fa1afef921f2dbb2d0ae957b8162349a085fba8ad526d71f63ebc38213e8e9b56908ed31
-DIST node-v11.5.0.tar.xz 20415048 BLAKE2B 5d156545c9fc4a93991aa3d695b9792e7e7fa1768d9ddd32f6aa600f6967a18e3f5cb8b17081a0e1bf0baeaa8f4d731e80dc115163e1f79cf080ef1a2404821d SHA512 17910b008f1d6d9ff29cad89e1683abbf02702e09ab192bd8059c2e37ef774011a2339d7100f4d691cfb3e8fd576b88e45cadc50bff394b4848c2bdd246a407a
 DIST node-v11.6.0.tar.xz 20410716 BLAKE2B bf6150a42070f714dfa5a38da70a4ce6b6a81ca5b9aedb84e672dff5244676ce77ca771ee46d34adc7cd7b84a0fe91537f9cbd3841a95c4bee67a894d4e8b4e7 SHA512 7e3ee41a5de8395669796cf8f81a9e8f584ceda480b54874fceb057ccf8aa5b986239ca842b2dbd796dd1a97f9e2111995b334278f6d7bf38421a84c4e883c65
 DIST node-v4.9.1.tar.xz 13250164 BLAKE2B 7a689b99bb4bf507f7f21dd2c096a5766d023a8174c0f468cab37365af1920b8700da04157e1a406917790524255ef32c243a74662fd50ef7d3567d189dac9cf SHA512 690c9fdf608e5194069a10955bdd94ec87cb1c308f13bc4d2cae92fa01436ace10fadf58f2e51d477dde6c570b23edc1c71fafea79bfc9cab2903eb2fa5f87aa
 DIST node-v6.14.4.tar.xz 15842824 BLAKE2B fc56364be64fe5824e2bb50d861ebf8f58f9895f2c9c108b8df3315b127ffb2755eac85c28165ac9779adab4611ce8f5ea1a5745f43ebaa1389e82b8215c6396 SHA512 1ead0c097ec125230dd631f19a5c3ec06a1371f9ca3b392b5ad08fcc227dd0142f33ad52f96890c2c17448a4951a635b9099dfff00d7d8b3ffb59b07904d1bfa
-DIST node-v6.15.1.tar.xz 15845836 BLAKE2B 8adedbc72bbc0899ec4782894c19ad550c9d41d4069ed640471c7d97185d413b0f9e9a29b9538df5e1b39f59a04abc4adfb2bbdcda9b8803c18a650a2779e92b SHA512 e1d927c91a949b8c681c0ab2c8cbd62d7c202d76abeb9791b1260cf64a01c8aeaa50697e1ed33658586565fa85223abcaeb9370024313a5a5e31297ed4fe310b
 DIST node-v6.16.0.tar.xz 15854256 BLAKE2B 0c70ce154639cbae12e0dfd6e7d5705999badb5872d71f388a3bb89f2830ddb096761aed47bdc6e310f2088fa79070d8a3427361206d74f686d86b27f929a4b4 SHA512 e9a222af328c8afb47b4b9c0f39ca5c1e45c5590b2064b3a8994b25f63acd041fba591d390e5a617db08d1212de15c438c66000ddcbc65cd071681311fa3591d
 DIST node-v8.12.0.tar.xz 18310452 BLAKE2B 79634fc57cd76a97e72bab4be37da91d5eff4d13cdaa2b48e83f013885fa3590ba4a28378baf036ed26b7304bf234753d1d4014f72571496f5bb6cd5b221e5f0 SHA512 665d2dba287d78bcd723d7b4d00a6897fb996f4aa69a541e010a3dfeb2614257892117fcce7123966b1ecaddc9269a6667e0e262df693baea1f476c96de55c42
-DIST node-v8.14.1.tar.xz 18497208 BLAKE2B 4ce23e9257c224dfa646a57acfc5d86a0cd70ba5861e6ec75c6d912c6c23f50c99e8239aba364179ae9e07cd20dde67c86e76aed0ec3d1feb1606b25a55cac2c SHA512 038975261da930aa8122e9ad44f6d59c32b32dbf6f71a4da8ba74f0874455a7b8f7a9878d900829898b25adb57b81a8114b4222b0384173db19daa769ea025d0
 DIST node-v8.15.0.tar.xz 18499412 BLAKE2B bba68517358cea14e9ba7c0c14b3f30caa00e358ff79d0602a1a71c9dd80334800ea2fd12086c5bee47cc23b9debe2cb0e36650f6be02e20615047a971297c54 SHA512 9a3d54ee9e22919ab425532ea64336b1dee0ae3ce4afd4eaacc109a2c2d34c98ea8188acd436c55a5dbba30fb4f95f8fcc9000ea60a81224d09b90d2f493cefd

diff --git a/net-libs/nodejs/files/nodejs-11.4.0-llhttp.patch b/net-libs/nodejs/files/nodejs-11.4.0-llhttp.patch
deleted file mode 100644
index 07ac9af6c66..00000000000
--- a/net-libs/nodejs/files/nodejs-11.4.0-llhttp.patch
+++ /dev/null
@@ -1,30 +0,0 @@
---- a/node.gypi
-+++ b/node.gypi
-@@ -169,11 +169,15 @@
- 
-     [ 'node_shared_http_parser=="false"', {
-       'dependencies': [
--        'deps/http_parser/http_parser.gyp:http_parser',
--        'deps/llhttp/llhttp.gyp:llhttp'
-+        'deps/http_parser/http_parser.gyp:http_parser'
-       ],
-     } ],
- 
-+    [ '"true"', { 'dependencies': [
-+        'deps/llhttp/llhttp.gyp:llhttp'
-+      ],
-+    }],
-+
-     [ 'node_shared_cares=="false"', {
-       'dependencies': [ 'deps/cares/cares.gyp:cares' ],
-     }],
---- a/src/node_metadata.cc
-+++ b/src/node_metadata.cc
-@@ -2,6 +2,7 @@
- #include "ares.h"
- #include "nghttp2/nghttp2ver.h"
- #include "node.h"
-+#include "node_internals.h"
- #include "util.h"
- #include "uv.h"
- #include "v8.h"

diff --git a/net-libs/nodejs/nodejs-10.14.0.ebuild b/net-libs/nodejs/nodejs-10.14.0.ebuild
deleted file mode 100644
index ea37a260ff5..00000000000
--- a/net-libs/nodejs/nodejs-10.14.0.ebuild
+++ /dev/null
@@ -1,205 +0,0 @@
-# Copyright 1999-2018 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="threads"
-
-inherit bash-completion-r1 eutils flag-o-matic pax-utils python-single-r1 toolchain-funcs
-
-DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine"
-HOMEPAGE="https://nodejs.org/"
-SRC_URI="https://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz"
-
-LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x64-macos"
-IUSE="cpu_flags_x86_sse2 debug doc icu inspector +npm +snapshot +ssl systemtap test"
-REQUIRED_USE="
-	${PYTHON_REQUIRED_USE}
-	inspector? ( icu ssl )
-	npm? ( ssl )
-"
-
-RDEPEND="
-	>=dev-libs/libuv-1.23.2:=
-	>=net-dns/c-ares-1.14.0
-	>=net-libs/http-parser-2.8.0:=
-	>=net-libs/nghttp2-1.34.0
-	sys-libs/zlib
-	icu? ( >=dev-libs/icu-62.1:= )
-	ssl? ( =dev-libs/openssl-1.1.0*:0= )
-"
-DEPEND="
-	${RDEPEND}
-	${PYTHON_DEPS}
-	systemtap? ( dev-util/systemtap )
-	test? ( net-misc/curl )
-"
-S="${WORKDIR}/node-v${PV}"
-PATCHES=(
-	"${FILESDIR}"/${PN}-10.3.0-global-npm-config.patch
-)
-
-pkg_pretend() {
-	(use x86 && ! use cpu_flags_x86_sse2) && \
-		die "Your CPU doesn't support the required SSE2 instruction."
-
-	( [[ ${MERGE_TYPE} != "binary" ]] && ! test-flag-CXX -std=c++11 ) && \
-		die "Your compiler doesn't support C++11. Use GCC 4.8, Clang 3.3 or newer."
-}
-
-src_prepare() {
-	tc-export CC CXX PKG_CONFIG
-	export V=1
-	export BUILDTYPE=Release
-
-	# fix compilation on Darwin
-	# https://code.google.com/p/gyp/issues/detail?id=260
-	sed -i -e "/append('-arch/d" tools/gyp/pylib/gyp/xcode_emulation.py || die
-
-	# make sure we use python2.* while using gyp
-	sed -i -e "s/python/${EPYTHON}/" deps/npm/node_modules/node-gyp/gyp/gyp || die
-	sed -i -e "s/|| 'python2'/|| '${EPYTHON}'/" deps/npm/node_modules/node-gyp/lib/configure.js || die
-
-	# less verbose install output (stating the same as portage, basically)
-	sed -i -e "/print/d" tools/install.py || die
-
-	# proper libdir, hat tip @ryanpcmcquen https://github.com/iojs/io.js/issues/504
-	local LIBDIR=$(get_libdir)
-	sed -i -e "s|lib/|${LIBDIR}/|g" tools/install.py || die
-	sed -i -e "s/'lib'/'${LIBDIR}'/" deps/npm/lib/npm.js || die
-
-	# Avoid writing a depfile, not useful
-	sed -i -e "/DEPFLAGS =/d" tools/gyp/pylib/gyp/generator/make.py || die
-
-	sed -i -e "/'-O3'/d" common.gypi deps/v8/gypfiles/toolchain.gypi || die
-
-	# Avoid a test that I've only been able to reproduce from emerge. It doesnt
-	# seem sandbox related either (invoking it from a sandbox works fine).
-	# The issue is that no stdin handle is openened when asked for one.
-	# It doesn't really belong upstream , so it'll just be removed until someone
-	# with more gentoo-knowledge than me (jbergstroem) figures it out.
-	rm test/parallel/test-stdout-close-unref.js || die
-
-	# debug builds. change install path, remove optimisations and override buildtype
-	if use debug; then
-		sed -i -e "s|out/Release/|out/Debug/|g" tools/install.py || die
-		BUILDTYPE=Debug
-	fi
-
-	default
-}
-
-src_configure() {
-	local myconf=( --shared-cares --shared-http-parser --shared-libuv --shared-nghttp2 --shared-zlib )
-	use debug && myconf+=( --debug )
-	use icu && myconf+=( --with-intl=system-icu ) || myconf+=( --with-intl=none )
-	use inspector || myconf+=( --without-inspector )
-	use npm || myconf+=( --without-npm )
-	use snapshot && myconf+=( --with-snapshot )
-	use ssl && myconf+=( --shared-openssl ) || myconf+=( --without-ssl )
-
-	local myarch=""
-	case ${ABI} in
-		amd64) myarch="x64";;
-		arm) myarch="arm";;
-		arm64) myarch="arm64";;
-		ppc64) myarch="ppc64";;
-		x32) myarch="x32";;
-		x86) myarch="ia32";;
-		*) myarch="${ABI}";;
-	esac
-
-	GYP_DEFINES="linux_use_gold_flags=0
-		linux_use_bundled_binutils=0
-		linux_use_bundled_gold=0" \
-	"${PYTHON}" configure \
-		--prefix="${EPREFIX}"/usr \
-		--dest-cpu=${myarch} \
-		$(use_with systemtap dtrace) \
-		"${myconf[@]}" || die
-}
-
-src_compile() {
-	emake -C out mksnapshot
-	pax-mark m "out/${BUILDTYPE}/mksnapshot"
-	emake -C out
-}
-
-src_install() {
-	local LIBDIR="${ED}/usr/$(get_libdir)"
-	emake install DESTDIR="${D}"
-	pax-mark -m "${ED}"usr/bin/node
-
-	# set up a symlink structure that node-gyp expects..
-	dodir /usr/include/node/deps/{v8,uv}
-	dosym . /usr/include/node/src
-	for var in deps/{uv,v8}/include; do
-		dosym ../.. /usr/include/node/${var}
-	done
-
-	if use doc; then
-		# Patch docs to make them offline readable
-		for i in `grep -rl 'fonts.googleapis.com' "${S}"/out/doc/api/*`; do
-			sed -i '/fonts.googleapis.com/ d' $i;
-		done
-		# Install docs
-		docinto html
-		dodoc -r "${S}"/doc/*
-	fi
-
-	if use npm; then
-		dodir /etc/npm
-
-		# Install bash completion for `npm`
-		# We need to temporarily replace default config path since
-		# npm otherwise tries to write outside of the sandbox
-		local npm_config="usr/$(get_libdir)/node_modules/npm/lib/config/core.js"
-		sed -i -e "s|'/etc'|'${ED}/etc'|g" "${ED}/${npm_config}" || die
-		local tmp_npm_completion_file="$(emktemp)"
-		"${ED}/usr/bin/npm" completion > "${tmp_npm_completion_file}"
-		newbashcomp "${tmp_npm_completion_file}" npm
-		sed -i -e "s|'${ED}/etc'|'/etc'|g" "${ED}/${npm_config}" || die
-
-		# Move man pages
-		doman "${LIBDIR}"/node_modules/npm/man/man{1,5,7}/*
-
-		# Clean up
-		rm "${LIBDIR}"/node_modules/npm/{.mailmap,.npmignore,Makefile} || die
-		rm -rf "${LIBDIR}"/node_modules/npm/{doc,html,man} || die
-
-		local find_exp="-or -name"
-		local find_name=()
-		for match in "AUTHORS*" "CHANGELOG*" "CONTRIBUT*" "README*" \
-			".travis.yml" ".eslint*" ".wercker.yml" ".npmignore" \
-			"*.md" "*.markdown" "*.bat" "*.cmd"; do
-			find_name+=( ${find_exp} "${match}" )
-		done
-
-		# Remove various development and/or inappropriate files and
-		# useless docs of dependend packages.
-		find "${LIBDIR}"/node_modules \
-			\( -type d -name examples \) -or \( -type f \( \
-				-iname "LICEN?E*" \
-				"${find_name[@]}" \
-			\) \) -exec rm -rf "{}" \;
-	fi
-
-	mv "${D}"/usr/share/doc/node "${D}"/usr/share/doc/${PF} || die
-}
-
-src_test() {
-	out/${BUILDTYPE}/cctest || die
-	"${PYTHON}" tools/test.py --mode=${BUILDTYPE,,} -J message parallel sequential || die
-}
-
-pkg_postinst() {
-	einfo "The global npm config lives in /etc/npm. This deviates slightly"
-	einfo "from upstream which otherwise would have it live in /usr/etc/."
-	einfo ""
-	einfo "Protip: When using node-gyp to install native modules, you can"
-	einfo "avoid having to download extras by doing the following:"
-	einfo "$ node-gyp --nodedir /usr/include/node <command>"
-}

diff --git a/net-libs/nodejs/nodejs-10.14.2.ebuild b/net-libs/nodejs/nodejs-10.14.2.ebuild
deleted file mode 100644
index ccc31bc334c..00000000000
--- a/net-libs/nodejs/nodejs-10.14.2.ebuild
+++ /dev/null
@@ -1,205 +0,0 @@
-# Copyright 1999-2018 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="threads"
-
-inherit bash-completion-r1 eutils flag-o-matic pax-utils python-single-r1 toolchain-funcs
-
-DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine"
-HOMEPAGE="https://nodejs.org/"
-SRC_URI="https://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz"
-
-LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x64-macos"
-IUSE="cpu_flags_x86_sse2 debug doc icu inspector +npm +snapshot +ssl systemtap test"
-REQUIRED_USE="
-	${PYTHON_REQUIRED_USE}
-	inspector? ( icu ssl )
-	npm? ( ssl )
-"
-
-RDEPEND="
-	>=dev-libs/libuv-1.23.2:=
-	>=net-dns/c-ares-1.15.0
-	>=net-libs/http-parser-2.8.0:=
-	>=net-libs/nghttp2-1.34.0
-	sys-libs/zlib
-	icu? ( >=dev-libs/icu-62.1:= )
-	ssl? ( =dev-libs/openssl-1.1.0*:0= )
-"
-DEPEND="
-	${RDEPEND}
-	${PYTHON_DEPS}
-	systemtap? ( dev-util/systemtap )
-	test? ( net-misc/curl )
-"
-S="${WORKDIR}/node-v${PV}"
-PATCHES=(
-	"${FILESDIR}"/${PN}-10.3.0-global-npm-config.patch
-)
-
-pkg_pretend() {
-	(use x86 && ! use cpu_flags_x86_sse2) && \
-		die "Your CPU doesn't support the required SSE2 instruction."
-
-	( [[ ${MERGE_TYPE} != "binary" ]] && ! test-flag-CXX -std=c++11 ) && \
-		die "Your compiler doesn't support C++11. Use GCC 4.8, Clang 3.3 or newer."
-}
-
-src_prepare() {
-	tc-export CC CXX PKG_CONFIG
-	export V=1
-	export BUILDTYPE=Release
-
-	# fix compilation on Darwin
-	# https://code.google.com/p/gyp/issues/detail?id=260
-	sed -i -e "/append('-arch/d" tools/gyp/pylib/gyp/xcode_emulation.py || die
-
-	# make sure we use python2.* while using gyp
-	sed -i -e "s/python/${EPYTHON}/" deps/npm/node_modules/node-gyp/gyp/gyp || die
-	sed -i -e "s/|| 'python2'/|| '${EPYTHON}'/" deps/npm/node_modules/node-gyp/lib/configure.js || die
-
-	# less verbose install output (stating the same as portage, basically)
-	sed -i -e "/print/d" tools/install.py || die
-
-	# proper libdir, hat tip @ryanpcmcquen https://github.com/iojs/io.js/issues/504
-	local LIBDIR=$(get_libdir)
-	sed -i -e "s|lib/|${LIBDIR}/|g" tools/install.py || die
-	sed -i -e "s/'lib'/'${LIBDIR}'/" deps/npm/lib/npm.js || die
-
-	# Avoid writing a depfile, not useful
-	sed -i -e "/DEPFLAGS =/d" tools/gyp/pylib/gyp/generator/make.py || die
-
-	sed -i -e "/'-O3'/d" common.gypi deps/v8/gypfiles/toolchain.gypi || die
-
-	# Avoid a test that I've only been able to reproduce from emerge. It doesnt
-	# seem sandbox related either (invoking it from a sandbox works fine).
-	# The issue is that no stdin handle is openened when asked for one.
-	# It doesn't really belong upstream , so it'll just be removed until someone
-	# with more gentoo-knowledge than me (jbergstroem) figures it out.
-	rm test/parallel/test-stdout-close-unref.js || die
-
-	# debug builds. change install path, remove optimisations and override buildtype
-	if use debug; then
-		sed -i -e "s|out/Release/|out/Debug/|g" tools/install.py || die
-		BUILDTYPE=Debug
-	fi
-
-	default
-}
-
-src_configure() {
-	local myconf=( --shared-cares --shared-http-parser --shared-libuv --shared-nghttp2 --shared-zlib )
-	use debug && myconf+=( --debug )
-	use icu && myconf+=( --with-intl=system-icu ) || myconf+=( --with-intl=none )
-	use inspector || myconf+=( --without-inspector )
-	use npm || myconf+=( --without-npm )
-	use snapshot && myconf+=( --with-snapshot )
-	use ssl && myconf+=( --shared-openssl ) || myconf+=( --without-ssl )
-
-	local myarch=""
-	case ${ABI} in
-		amd64) myarch="x64";;
-		arm) myarch="arm";;
-		arm64) myarch="arm64";;
-		ppc64) myarch="ppc64";;
-		x32) myarch="x32";;
-		x86) myarch="ia32";;
-		*) myarch="${ABI}";;
-	esac
-
-	GYP_DEFINES="linux_use_gold_flags=0
-		linux_use_bundled_binutils=0
-		linux_use_bundled_gold=0" \
-	"${PYTHON}" configure \
-		--prefix="${EPREFIX}"/usr \
-		--dest-cpu=${myarch} \
-		$(use_with systemtap dtrace) \
-		"${myconf[@]}" || die
-}
-
-src_compile() {
-	emake -C out mksnapshot
-	pax-mark m "out/${BUILDTYPE}/mksnapshot"
-	emake -C out
-}
-
-src_install() {
-	local LIBDIR="${ED}/usr/$(get_libdir)"
-	emake install DESTDIR="${D}"
-	pax-mark -m "${ED}"usr/bin/node
-
-	# set up a symlink structure that node-gyp expects..
-	dodir /usr/include/node/deps/{v8,uv}
-	dosym . /usr/include/node/src
-	for var in deps/{uv,v8}/include; do
-		dosym ../.. /usr/include/node/${var}
-	done
-
-	if use doc; then
-		# Patch docs to make them offline readable
-		for i in `grep -rl 'fonts.googleapis.com' "${S}"/out/doc/api/*`; do
-			sed -i '/fonts.googleapis.com/ d' $i;
-		done
-		# Install docs
-		docinto html
-		dodoc -r "${S}"/doc/*
-	fi
-
-	if use npm; then
-		dodir /etc/npm
-
-		# Install bash completion for `npm`
-		# We need to temporarily replace default config path since
-		# npm otherwise tries to write outside of the sandbox
-		local npm_config="usr/$(get_libdir)/node_modules/npm/lib/config/core.js"
-		sed -i -e "s|'/etc'|'${ED}/etc'|g" "${ED}/${npm_config}" || die
-		local tmp_npm_completion_file="$(emktemp)"
-		"${ED}/usr/bin/npm" completion > "${tmp_npm_completion_file}"
-		newbashcomp "${tmp_npm_completion_file}" npm
-		sed -i -e "s|'${ED}/etc'|'/etc'|g" "${ED}/${npm_config}" || die
-
-		# Move man pages
-		doman "${LIBDIR}"/node_modules/npm/man/man{1,5,7}/*
-
-		# Clean up
-		rm "${LIBDIR}"/node_modules/npm/{.mailmap,.npmignore,Makefile} || die
-		rm -rf "${LIBDIR}"/node_modules/npm/{doc,html,man} || die
-
-		local find_exp="-or -name"
-		local find_name=()
-		for match in "AUTHORS*" "CHANGELOG*" "CONTRIBUT*" "README*" \
-			".travis.yml" ".eslint*" ".wercker.yml" ".npmignore" \
-			"*.md" "*.markdown" "*.bat" "*.cmd"; do
-			find_name+=( ${find_exp} "${match}" )
-		done
-
-		# Remove various development and/or inappropriate files and
-		# useless docs of dependend packages.
-		find "${LIBDIR}"/node_modules \
-			\( -type d -name examples \) -or \( -type f \( \
-				-iname "LICEN?E*" \
-				"${find_name[@]}" \
-			\) \) -exec rm -rf "{}" \;
-	fi
-
-	mv "${D}"/usr/share/doc/node "${D}"/usr/share/doc/${PF} || die
-}
-
-src_test() {
-	out/${BUILDTYPE}/cctest || die
-	"${PYTHON}" tools/test.py --mode=${BUILDTYPE,,} -J message parallel sequential || die
-}
-
-pkg_postinst() {
-	einfo "The global npm config lives in /etc/npm. This deviates slightly"
-	einfo "from upstream which otherwise would have it live in /usr/etc/."
-	einfo ""
-	einfo "Protip: When using node-gyp to install native modules, you can"
-	einfo "avoid having to download extras by doing the following:"
-	einfo "$ node-gyp --nodedir /usr/include/node <command>"
-}

diff --git a/net-libs/nodejs/nodejs-11.4.0.ebuild b/net-libs/nodejs/nodejs-11.4.0.ebuild
deleted file mode 100644
index 0e67f6a9bcd..00000000000
--- a/net-libs/nodejs/nodejs-11.4.0.ebuild
+++ /dev/null
@@ -1,207 +0,0 @@
-# Copyright 1999-2018 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="threads"
-
-inherit bash-completion-r1 eutils flag-o-matic pax-utils python-single-r1 toolchain-funcs
-
-DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine"
-HOMEPAGE="https://nodejs.org/"
-SRC_URI="https://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz"
-
-LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x64-macos"
-IUSE="cpu_flags_x86_sse2 debug doc icu inspector +npm +snapshot +ssl systemtap test"
-REQUIRED_USE="
-	${PYTHON_REQUIRED_USE}
-	inspector? ( icu ssl )
-	npm? ( ssl )
-"
-
-RDEPEND="
-	>=dev-libs/libuv-1.24.0:=
-	>=net-dns/c-ares-1.15.0
-	>=net-libs/http-parser-2.8.0:=
-	>=net-libs/nghttp2-1.34.0
-	sys-libs/zlib
-	icu? ( >=dev-libs/icu-63.1:= )
-	ssl? ( =dev-libs/openssl-1.1.0*:0= )
-"
-DEPEND="
-	${RDEPEND}
-	${PYTHON_DEPS}
-	systemtap? ( dev-util/systemtap )
-	test? ( net-misc/curl )
-"
-S="${WORKDIR}/node-v${PV}"
-PATCHES=(
-	"${FILESDIR}"/${PN}-10.3.0-global-npm-config.patch
-	"${FILESDIR}"/${PN}-11.4.0-llhttp.patch
-	"${FILESDIR}"/${PN}-11.4.0-stdarg_h.patch
-)
-
-pkg_pretend() {
-	(use x86 && ! use cpu_flags_x86_sse2) && \
-		die "Your CPU doesn't support the required SSE2 instruction."
-
-	( [[ ${MERGE_TYPE} != "binary" ]] && ! test-flag-CXX -std=c++11 ) && \
-		die "Your compiler doesn't support C++11. Use GCC 4.8, Clang 3.3 or newer."
-}
-
-src_prepare() {
-	tc-export CC CXX PKG_CONFIG
-	export V=1
-	export BUILDTYPE=Release
-
-	# fix compilation on Darwin
-	# https://code.google.com/p/gyp/issues/detail?id=260
-	sed -i -e "/append('-arch/d" tools/gyp/pylib/gyp/xcode_emulation.py || die
-
-	# make sure we use python2.* while using gyp
-	sed -i -e "s/python/${EPYTHON}/" deps/npm/node_modules/node-gyp/gyp/gyp || die
-	sed -i -e "s/|| 'python2'/|| '${EPYTHON}'/" deps/npm/node_modules/node-gyp/lib/configure.js || die
-
-	# less verbose install output (stating the same as portage, basically)
-	sed -i -e "/print/d" tools/install.py || die
-
-	# proper libdir, hat tip @ryanpcmcquen https://github.com/iojs/io.js/issues/504
-	local LIBDIR=$(get_libdir)
-	sed -i -e "s|lib/|${LIBDIR}/|g" tools/install.py || die
-	sed -i -e "s/'lib'/'${LIBDIR}'/" deps/npm/lib/npm.js || die
-
-	# Avoid writing a depfile, not useful
-	sed -i -e "/DEPFLAGS =/d" tools/gyp/pylib/gyp/generator/make.py || die
-
-	sed -i -e "/'-O3'/d" common.gypi deps/v8/gypfiles/toolchain.gypi || die
-
-	# Avoid a test that I've only been able to reproduce from emerge. It doesnt
-	# seem sandbox related either (invoking it from a sandbox works fine).
-	# The issue is that no stdin handle is openened when asked for one.
-	# It doesn't really belong upstream , so it'll just be removed until someone
-	# with more gentoo-knowledge than me (jbergstroem) figures it out.
-	rm test/parallel/test-stdout-close-unref.js || die
-
-	# debug builds. change install path, remove optimisations and override buildtype
-	if use debug; then
-		sed -i -e "s|out/Release/|out/Debug/|g" tools/install.py || die
-		BUILDTYPE=Debug
-	fi
-
-	default
-}
-
-src_configure() {
-	local myconf=( --shared-cares --shared-http-parser --shared-libuv --shared-nghttp2 --shared-zlib )
-	use debug && myconf+=( --debug )
-	use icu && myconf+=( --with-intl=system-icu ) || myconf+=( --with-intl=none )
-	use inspector || myconf+=( --without-inspector )
-	use npm || myconf+=( --without-npm )
-	use snapshot && myconf+=( --with-snapshot )
-	use ssl && myconf+=( --shared-openssl ) || myconf+=( --without-ssl )
-
-	local myarch=""
-	case ${ABI} in
-		amd64) myarch="x64";;
-		arm) myarch="arm";;
-		arm64) myarch="arm64";;
-		ppc64) myarch="ppc64";;
-		x32) myarch="x32";;
-		x86) myarch="ia32";;
-		*) myarch="${ABI}";;
-	esac
-
-	GYP_DEFINES="linux_use_gold_flags=0
-		linux_use_bundled_binutils=0
-		linux_use_bundled_gold=0" \
-	"${PYTHON}" configure \
-		--prefix="${EPREFIX}"/usr \
-		--dest-cpu=${myarch} \
-		$(use_with systemtap dtrace) \
-		"${myconf[@]}" || die
-}
-
-src_compile() {
-	emake -C out mksnapshot
-	pax-mark m "out/${BUILDTYPE}/mksnapshot"
-	emake -C out
-}
-
-src_install() {
-	local LIBDIR="${ED}/usr/$(get_libdir)"
-	emake install DESTDIR="${D}"
-	pax-mark -m "${ED}"usr/bin/node
-
-	# set up a symlink structure that node-gyp expects..
-	dodir /usr/include/node/deps/{v8,uv}
-	dosym . /usr/include/node/src
-	for var in deps/{uv,v8}/include; do
-		dosym ../.. /usr/include/node/${var}
-	done
-
-	if use doc; then
-		# Patch docs to make them offline readable
-		for i in `grep -rl 'fonts.googleapis.com' "${S}"/out/doc/api/*`; do
-			sed -i '/fonts.googleapis.com/ d' $i;
-		done
-		# Install docs
-		docinto html
-		dodoc -r "${S}"/doc/*
-	fi
-
-	if use npm; then
-		dodir /etc/npm
-
-		# Install bash completion for `npm`
-		# We need to temporarily replace default config path since
-		# npm otherwise tries to write outside of the sandbox
-		local npm_config="usr/$(get_libdir)/node_modules/npm/lib/config/core.js"
-		sed -i -e "s|'/etc'|'${ED}/etc'|g" "${ED}/${npm_config}" || die
-		local tmp_npm_completion_file="$(emktemp)"
-		"${ED}/usr/bin/npm" completion > "${tmp_npm_completion_file}"
-		newbashcomp "${tmp_npm_completion_file}" npm
-		sed -i -e "s|'${ED}/etc'|'/etc'|g" "${ED}/${npm_config}" || die
-
-		# Move man pages
-		doman "${LIBDIR}"/node_modules/npm/man/man{1,5,7}/*
-
-		# Clean up
-		rm "${LIBDIR}"/node_modules/npm/{.mailmap,.npmignore,Makefile} || die
-		rm -rf "${LIBDIR}"/node_modules/npm/{doc,html,man} || die
-
-		local find_exp="-or -name"
-		local find_name=()
-		for match in "AUTHORS*" "CHANGELOG*" "CONTRIBUT*" "README*" \
-			".travis.yml" ".eslint*" ".wercker.yml" ".npmignore" \
-			"*.md" "*.markdown" "*.bat" "*.cmd"; do
-			find_name+=( ${find_exp} "${match}" )
-		done
-
-		# Remove various development and/or inappropriate files and
-		# useless docs of dependend packages.
-		find "${LIBDIR}"/node_modules \
-			\( -type d -name examples \) -or \( -type f \( \
-				-iname "LICEN?E*" \
-				"${find_name[@]}" \
-			\) \) -exec rm -rf "{}" \;
-	fi
-
-	mv "${D}"/usr/share/doc/node "${D}"/usr/share/doc/${PF} || die
-}
-
-src_test() {
-	out/${BUILDTYPE}/cctest || die
-	"${PYTHON}" tools/test.py --mode=${BUILDTYPE,,} -J message parallel sequential || die
-}
-
-pkg_postinst() {
-	einfo "The global npm config lives in /etc/npm. This deviates slightly"
-	einfo "from upstream which otherwise would have it live in /usr/etc/."
-	einfo ""
-	einfo "Protip: When using node-gyp to install native modules, you can"
-	einfo "avoid having to download extras by doing the following:"
-	einfo "$ node-gyp --nodedir /usr/include/node <command>"
-}

diff --git a/net-libs/nodejs/nodejs-11.5.0.ebuild b/net-libs/nodejs/nodejs-11.5.0.ebuild
deleted file mode 100644
index cfa00efc596..00000000000
--- a/net-libs/nodejs/nodejs-11.5.0.ebuild
+++ /dev/null
@@ -1,207 +0,0 @@
-# Copyright 1999-2018 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="threads"
-
-inherit bash-completion-r1 eutils flag-o-matic pax-utils python-single-r1 toolchain-funcs
-
-DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine"
-HOMEPAGE="https://nodejs.org/"
-SRC_URI="https://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz"
-
-LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x64-macos"
-IUSE="cpu_flags_x86_sse2 debug doc icu inspector +npm +snapshot +ssl systemtap test"
-REQUIRED_USE="
-	${PYTHON_REQUIRED_USE}
-	inspector? ( icu ssl )
-	npm? ( ssl )
-"
-
-RDEPEND="
-	>=dev-libs/libuv-1.24.0:=
-	>=net-dns/c-ares-1.15.0
-	>=net-libs/http-parser-2.8.0:=
-	>=net-libs/nghttp2-1.34.0
-	sys-libs/zlib
-	icu? ( >=dev-libs/icu-63.1:= )
-	ssl? ( =dev-libs/openssl-1.1.0*:0= )
-"
-DEPEND="
-	${RDEPEND}
-	${PYTHON_DEPS}
-	systemtap? ( dev-util/systemtap )
-	test? ( net-misc/curl )
-"
-S="${WORKDIR}/node-v${PV}"
-PATCHES=(
-	"${FILESDIR}"/${PN}-10.3.0-global-npm-config.patch
-	"${FILESDIR}"/${PN}-11.4.0-stdarg_h.patch
-	"${FILESDIR}"/${PN}-99999999-llhttp.patch
-)
-
-pkg_pretend() {
-	(use x86 && ! use cpu_flags_x86_sse2) && \
-		die "Your CPU doesn't support the required SSE2 instruction."
-
-	( [[ ${MERGE_TYPE} != "binary" ]] && ! test-flag-CXX -std=c++11 ) && \
-		die "Your compiler doesn't support C++11. Use GCC 4.8, Clang 3.3 or newer."
-}
-
-src_prepare() {
-	tc-export CC CXX PKG_CONFIG
-	export V=1
-	export BUILDTYPE=Release
-
-	# fix compilation on Darwin
-	# https://code.google.com/p/gyp/issues/detail?id=260
-	sed -i -e "/append('-arch/d" tools/gyp/pylib/gyp/xcode_emulation.py || die
-
-	# make sure we use python2.* while using gyp
-	sed -i -e "s/python/${EPYTHON}/" deps/npm/node_modules/node-gyp/gyp/gyp || die
-	sed -i -e "s/|| 'python2'/|| '${EPYTHON}'/" deps/npm/node_modules/node-gyp/lib/configure.js || die
-
-	# less verbose install output (stating the same as portage, basically)
-	sed -i -e "/print/d" tools/install.py || die
-
-	# proper libdir, hat tip @ryanpcmcquen https://github.com/iojs/io.js/issues/504
-	local LIBDIR=$(get_libdir)
-	sed -i -e "s|lib/|${LIBDIR}/|g" tools/install.py || die
-	sed -i -e "s/'lib'/'${LIBDIR}'/" deps/npm/lib/npm.js || die
-
-	# Avoid writing a depfile, not useful
-	sed -i -e "/DEPFLAGS =/d" tools/gyp/pylib/gyp/generator/make.py || die
-
-	sed -i -e "/'-O3'/d" common.gypi deps/v8/gypfiles/toolchain.gypi || die
-
-	# Avoid a test that I've only been able to reproduce from emerge. It doesnt
-	# seem sandbox related either (invoking it from a sandbox works fine).
-	# The issue is that no stdin handle is openened when asked for one.
-	# It doesn't really belong upstream , so it'll just be removed until someone
-	# with more gentoo-knowledge than me (jbergstroem) figures it out.
-	rm test/parallel/test-stdout-close-unref.js || die
-
-	# debug builds. change install path, remove optimisations and override buildtype
-	if use debug; then
-		sed -i -e "s|out/Release/|out/Debug/|g" tools/install.py || die
-		BUILDTYPE=Debug
-	fi
-
-	default
-}
-
-src_configure() {
-	local myconf=( --shared-cares --shared-http-parser --shared-libuv --shared-nghttp2 --shared-zlib )
-	use debug && myconf+=( --debug )
-	use icu && myconf+=( --with-intl=system-icu ) || myconf+=( --with-intl=none )
-	use inspector || myconf+=( --without-inspector )
-	use npm || myconf+=( --without-npm )
-	use snapshot && myconf+=( --with-snapshot )
-	use ssl && myconf+=( --shared-openssl ) || myconf+=( --without-ssl )
-
-	local myarch=""
-	case ${ABI} in
-		amd64) myarch="x64";;
-		arm) myarch="arm";;
-		arm64) myarch="arm64";;
-		ppc64) myarch="ppc64";;
-		x32) myarch="x32";;
-		x86) myarch="ia32";;
-		*) myarch="${ABI}";;
-	esac
-
-	GYP_DEFINES="linux_use_gold_flags=0
-		linux_use_bundled_binutils=0
-		linux_use_bundled_gold=0" \
-	"${PYTHON}" configure \
-		--prefix="${EPREFIX}"/usr \
-		--dest-cpu=${myarch} \
-		$(use_with systemtap dtrace) \
-		"${myconf[@]}" || die
-}
-
-src_compile() {
-	emake -C out mksnapshot
-	pax-mark m "out/${BUILDTYPE}/mksnapshot"
-	emake -C out
-}
-
-src_install() {
-	local LIBDIR="${ED}/usr/$(get_libdir)"
-	emake install DESTDIR="${D}"
-	pax-mark -m "${ED}"usr/bin/node
-
-	# set up a symlink structure that node-gyp expects..
-	dodir /usr/include/node/deps/{v8,uv}
-	dosym . /usr/include/node/src
-	for var in deps/{uv,v8}/include; do
-		dosym ../.. /usr/include/node/${var}
-	done
-
-	if use doc; then
-		# Patch docs to make them offline readable
-		for i in `grep -rl 'fonts.googleapis.com' "${S}"/out/doc/api/*`; do
-			sed -i '/fonts.googleapis.com/ d' $i;
-		done
-		# Install docs
-		docinto html
-		dodoc -r "${S}"/doc/*
-	fi
-
-	if use npm; then
-		dodir /etc/npm
-
-		# Install bash completion for `npm`
-		# We need to temporarily replace default config path since
-		# npm otherwise tries to write outside of the sandbox
-		local npm_config="usr/$(get_libdir)/node_modules/npm/lib/config/core.js"
-		sed -i -e "s|'/etc'|'${ED}/etc'|g" "${ED}/${npm_config}" || die
-		local tmp_npm_completion_file="$(emktemp)"
-		"${ED}/usr/bin/npm" completion > "${tmp_npm_completion_file}"
-		newbashcomp "${tmp_npm_completion_file}" npm
-		sed -i -e "s|'${ED}/etc'|'/etc'|g" "${ED}/${npm_config}" || die
-
-		# Move man pages
-		doman "${LIBDIR}"/node_modules/npm/man/man{1,5,7}/*
-
-		# Clean up
-		rm "${LIBDIR}"/node_modules/npm/{.mailmap,.npmignore,Makefile} || die
-		rm -rf "${LIBDIR}"/node_modules/npm/{doc,html,man} || die
-
-		local find_exp="-or -name"
-		local find_name=()
-		for match in "AUTHORS*" "CHANGELOG*" "CONTRIBUT*" "README*" \
-			".travis.yml" ".eslint*" ".wercker.yml" ".npmignore" \
-			"*.md" "*.markdown" "*.bat" "*.cmd"; do
-			find_name+=( ${find_exp} "${match}" )
-		done
-
-		# Remove various development and/or inappropriate files and
-		# useless docs of dependend packages.
-		find "${LIBDIR}"/node_modules \
-			\( -type d -name examples \) -or \( -type f \( \
-				-iname "LICEN?E*" \
-				"${find_name[@]}" \
-			\) \) -exec rm -rf "{}" \;
-	fi
-
-	mv "${D}"/usr/share/doc/node "${D}"/usr/share/doc/${PF} || die
-}
-
-src_test() {
-	out/${BUILDTYPE}/cctest || die
-	"${PYTHON}" tools/test.py --mode=${BUILDTYPE,,} -J message parallel sequential || die
-}
-
-pkg_postinst() {
-	einfo "The global npm config lives in /etc/npm. This deviates slightly"
-	einfo "from upstream which otherwise would have it live in /usr/etc/."
-	einfo ""
-	einfo "Protip: When using node-gyp to install native modules, you can"
-	einfo "avoid having to download extras by doing the following:"
-	einfo "$ node-gyp --nodedir /usr/include/node <command>"
-}

diff --git a/net-libs/nodejs/nodejs-6.15.1.ebuild b/net-libs/nodejs/nodejs-6.15.1.ebuild
deleted file mode 100644
index 82289475261..00000000000
--- a/net-libs/nodejs/nodejs-6.15.1.ebuild
+++ /dev/null
@@ -1,200 +0,0 @@
-# Copyright 1999-2018 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="threads"
-
-inherit bash-completion-r1 eutils flag-o-matic pax-utils python-single-r1 toolchain-funcs
-
-DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine"
-HOMEPAGE="https://nodejs.org/"
-SRC_URI="https://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz"
-
-LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86"
-IUSE="cpu_flags_x86_sse2 debug doc icu inspector +npm +snapshot +ssl test"
-REQUIRED_USE="
-	${PYTHON_REQUIRED_USE}
-	inspector? ( icu ssl )
-"
-
-RDEPEND="
-	>=dev-libs/libuv-1.16.1:=
-	>=net-libs/http-parser-2.7.0:=
-	sys-libs/zlib
-	icu? ( >=dev-libs/icu-58.2:= )
-	ssl? ( >=dev-libs/openssl-1.0.2n:0=[-bindist] )
-"
-DEPEND="
-	${RDEPEND}
-	${PYTHON_DEPS}
-	test? ( net-misc/curl )
-"
-S="${WORKDIR}/node-v${PV}"
-PATCHES=(
-	"${FILESDIR}"/gentoo-global-npm-config.patch
-)
-
-pkg_pretend() {
-	(use x86 && ! use cpu_flags_x86_sse2) && \
-		die "Your CPU doesn't support the required SSE2 instruction."
-
-	( [[ ${MERGE_TYPE} != "binary" ]] && ! test-flag-CXX -std=c++11 ) && \
-		die "Your compiler doesn't support C++11. Use GCC 4.8, Clang 3.3 or newer."
-}
-
-src_prepare() {
-	tc-export CC CXX PKG_CONFIG
-	export V=1
-	export BUILDTYPE=Release
-
-	# fix compilation on Darwin
-	# https://code.google.com/p/gyp/issues/detail?id=260
-	sed -i -e "/append('-arch/d" tools/gyp/pylib/gyp/xcode_emulation.py || die
-
-	# make sure we use python2.* while using gyp
-	sed -i -e "s/python/${EPYTHON}/" deps/npm/node_modules/node-gyp/gyp/gyp || die
-	sed -i -e "s/|| 'python'/|| '${EPYTHON}'/" deps/npm/node_modules/node-gyp/lib/configure.js || die
-
-	# less verbose install output (stating the same as portage, basically)
-	sed -i -e "/print/d" tools/install.py || die
-
-	# proper libdir, hat tip @ryanpcmcquen https://github.com/iojs/io.js/issues/504
-	local LIBDIR=$(get_libdir)
-	sed -i \
-		-e "s|lib/|${LIBDIR}/|g" \
-		-e 's|share/doc/node/|share/doc/'"${PF}"'/|g' \
-		tools/install.py || die
-	sed -i -e "s/'lib'/'${LIBDIR}'/" lib/module.js || die
-	sed -i -e "s|\"lib\"|\"${LIBDIR}\"|" deps/npm/lib/npm.js || die
-
-	# Avoid writing a depfile, not useful
-	sed -i -e "/DEPFLAGS =/d" tools/gyp/pylib/gyp/generator/make.py || die
-
-	# Avoid a test that I've only been able to reproduce from emerge. It doesnt
-	# seem sandbox related either (invoking it from a sandbox works fine).
-	# The issue is that no stdin handle is openened when asked for one.
-	# It doesn't really belong upstream , so it'll just be removed until someone
-	# with more gentoo-knowledge than me (jbergstroem) figures it out.
-	rm test/parallel/test-stdout-close-unref.js || die
-
-	# debug builds. change install path, remove optimisations and override buildtype
-	if use debug; then
-		sed -i -e "s|out/Release/|out/Debug/|g" tools/install.py || die
-		BUILDTYPE=Debug
-	fi
-
-	default
-}
-
-src_configure() {
-	local myarch=""
-	local myconf=( --shared-libuv --shared-http-parser --shared-zlib )
-	use debug && myconf+=( --debug )
-	use icu && myconf+=( --with-intl=system-icu )
-	use inspector || myconf+=( --without-inspector )
-	use npm || myconf+=( --without-npm )
-	use snapshot && myconf+=( --with-snapshot )
-	use ssl && myconf+=( --shared-openssl ) || myconf+=( --without-ssl )
-
-	case ${ABI} in
-		amd64) myarch="x64";;
-		arm) myarch="arm";;
-		arm64) myarch="arm64";;
-		ppc64) myarch="ppc64";;
-		x32) myarch="x32";;
-		x86) myarch="ia32";;
-		*) myarch="${ABI}";;
-	esac
-
-	GYP_DEFINES="linux_use_gold_flags=0
-		linux_use_bundled_binutils=0
-		linux_use_bundled_gold=0" \
-	"${PYTHON}" configure \
-		--prefix="${EPREFIX}"/usr \
-		--dest-cpu=${myarch} \
-		--without-dtrace \
-		"${myconf[@]}" || die
-}
-
-src_compile() {
-	emake -C out mksnapshot
-	pax-mark m "out/${BUILDTYPE}/mksnapshot"
-	emake -C out
-}
-
-src_install() {
-	local LIBDIR="${ED}/usr/$(get_libdir)"
-	emake install DESTDIR="${D}"
-	pax-mark -m "${ED}"usr/bin/node
-
-	# set up a symlink structure that node-gyp expects..
-	dodir /usr/include/node/deps/{v8,uv}
-	dosym . /usr/include/node/src
-	for var in deps/{uv,v8}/include; do
-		dosym ../.. /usr/include/node/${var}
-	done
-
-	if use doc; then
-		# Patch docs to make them offline readable
-		for i in `grep -rl 'fonts.googleapis.com' "${S}"/out/doc/api/*`; do
-			sed -i '/fonts.googleapis.com/ d' $i;
-		done
-		# Install docs!
-		dohtml -r "${S}"/doc/*
-	fi
-
-	if use npm; then
-		dodir /etc/npm
-
-		# Install bash completion for `npm`
-		# We need to temporarily replace default config path since
-		# npm otherwise tries to write outside of the sandbox
-		local npm_config="usr/$(get_libdir)/node_modules/npm/lib/config/core.js"
-		sed -i -e "s|'/etc'|'${ED}/etc'|g" "${ED}/${npm_config}" || die
-		local tmp_npm_completion_file="$(emktemp)"
-		"${ED}/usr/bin/npm" completion > "${tmp_npm_completion_file}"
-		newbashcomp "${tmp_npm_completion_file}" npm
-		sed -i -e "s|'${ED}/etc'|'/etc'|g" "${ED}/${npm_config}" || die
-
-		# Move man pages
-		doman "${LIBDIR}"/node_modules/npm/man/man{1,5,7}/*
-
-		# Clean up
-		rm "${LIBDIR}"/node_modules/npm/{.mailmap,.npmignore,Makefile} || die
-		rm -rf "${LIBDIR}"/node_modules/npm/{doc,html,man} || die
-
-		local find_exp="-or -name"
-		local find_name=()
-		for match in "AUTHORS*" "CHANGELOG*" "CONTRIBUT*" "README*" \
-			".travis.yml" ".eslint*" ".wercker.yml" ".npmignore" \
-			"*.md" "*.markdown" "*.bat" "*.cmd"; do
-			find_name+=( ${find_exp} "${match}" )
-		done
-
-		# Remove various development and/or inappropriate files and
-		# useless docs of dependend packages.
-		find "${LIBDIR}"/node_modules \
-			\( -type d -name examples \) -or \( -type f \( \
-				-iname "LICEN?E*" \
-				"${find_name[@]}" \
-			\) \) -exec rm -rf "{}" \;
-	fi
-}
-
-src_test() {
-	out/${BUILDTYPE}/cctest || die
-	"${PYTHON}" tools/test.py --mode=${BUILDTYPE,,} -J message parallel sequential || die
-}
-
-pkg_postinst() {
-	einfo "The global npm config lives in /etc/npm. This deviates slightly"
-	einfo "from upstream which otherwise would have it live in /usr/etc/."
-	einfo ""
-	einfo "Protip: When using node-gyp to install native modules, you can"
-	einfo "avoid having to download extras by doing the following:"
-	einfo "$ node-gyp --nodedir /usr/include/node <command>"
-}

diff --git a/net-libs/nodejs/nodejs-8.14.1.ebuild b/net-libs/nodejs/nodejs-8.14.1.ebuild
deleted file mode 100644
index 69c390294cd..00000000000
--- a/net-libs/nodejs/nodejs-8.14.1.ebuild
+++ /dev/null
@@ -1,207 +0,0 @@
-# Copyright 1999-2018 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-RESTRICT="test"
-
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="threads"
-
-inherit bash-completion-r1 eutils flag-o-matic pax-utils python-single-r1 toolchain-funcs
-
-DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine"
-HOMEPAGE="https://nodejs.org/"
-SRC_URI="https://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz"
-
-LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x64-macos"
-IUSE="cpu_flags_x86_sse2 debug doc icu inspector +npm +snapshot +ssl systemtap test"
-REQUIRED_USE="
-	${PYTHON_REQUIRED_USE}
-	inspector? ( icu ssl )
-	npm? ( ssl )
-"
-
-RDEPEND="
-	>=dev-libs/libuv-1.23.2:=
-	>=net-dns/c-ares-1.10.1
-	>=net-libs/http-parser-2.8.0:=
-	>=net-libs/nghttp2-1.33.0
-	sys-libs/zlib
-	icu? ( >=dev-libs/icu-60.1:= )
-	ssl? ( =dev-libs/openssl-1.0.2*:0=[-bindist] )
-"
-DEPEND="${RDEPEND}
-	${PYTHON_DEPS}
-	systemtap? ( dev-util/systemtap )
-	test? ( net-misc/curl )"
-
-S="${WORKDIR}/node-v${PV}"
-
-PATCHES=(
-	"${FILESDIR}"/nodejs-10.3.0-global-npm-config.patch
-)
-
-pkg_pretend() {
-	(use x86 && ! use cpu_flags_x86_sse2) && \
-		die "Your CPU doesn't support the required SSE2 instruction."
-
-	( [[ ${MERGE_TYPE} != "binary" ]] && ! test-flag-CXX -std=c++11 ) && \
-		die "Your compiler doesn't support C++11. Use GCC 4.8, Clang 3.3 or newer."
-}
-
-src_prepare() {
-	tc-export CC CXX PKG_CONFIG
-	export V=1
-	export BUILDTYPE=Release
-
-	# fix compilation on Darwin
-	# https://code.google.com/p/gyp/issues/detail?id=260
-	sed -i -e "/append('-arch/d" tools/gyp/pylib/gyp/xcode_emulation.py || die
-
-	# make sure we use python2.* while using gyp
-	sed -i -e "s/python/${EPYTHON}/" deps/npm/node_modules/node-gyp/gyp/gyp || die
-	sed -i -e "s/|| 'python2'/|| '${EPYTHON}'/" deps/npm/node_modules/node-gyp/lib/configure.js || die
-
-	# less verbose install output (stating the same as portage, basically)
-	sed -i -e "/print/d" tools/install.py || die
-
-	# proper libdir, hat tip @ryanpcmcquen https://github.com/iojs/io.js/issues/504
-	local LIBDIR=$(get_libdir)
-	sed -i \
-		-e "s|lib/|${LIBDIR}/|g" \
-		-e 's|share/doc/node/|share/doc/'"${PF}"'/|g' \
-		tools/install.py || die
-
-	sed -i -e "s/'lib'/'${LIBDIR}'/" lib/module.js deps/npm/lib/npm.js || die
-
-	# Avoid writing a depfile, not useful
-	sed -i -e "/DEPFLAGS =/d" tools/gyp/pylib/gyp/generator/make.py || die
-
-	sed -i -e "/'-O3'/d" common.gypi deps/v8/gypfiles/toolchain.gypi || die
-
-	# Avoid a test that I've only been able to reproduce from emerge. It doesnt
-	# seem sandbox related either (invoking it from a sandbox works fine).
-	# The issue is that no stdin handle is openened when asked for one.
-	# It doesn't really belong upstream , so it'll just be removed until someone
-	# with more gentoo-knowledge than me (jbergstroem) figures it out.
-	rm test/parallel/test-stdout-close-unref.js || die
-
-	# debug builds. change install path, remove optimisations and override buildtype
-	if use debug; then
-		sed -i -e "s|out/Release/|out/Debug/|g" tools/install.py || die
-		BUILDTYPE=Debug
-	fi
-
-	default
-}
-
-src_configure() {
-	local myconf=( --shared-cares --shared-http-parser --shared-libuv --shared-nghttp2 --shared-zlib )
-	use debug && myconf+=( --debug )
-	use icu && myconf+=( --with-intl=system-icu ) || myconf+=( --with-intl=none )
-	use inspector || myconf+=( --without-inspector )
-	use npm || myconf+=( --without-npm )
-	use snapshot && myconf+=( --with-snapshot )
-	use ssl && myconf+=( --shared-openssl ) || myconf+=( --without-ssl )
-
-	local myarch=""
-	case ${ABI} in
-		amd64) myarch="x64";;
-		arm) myarch="arm";;
-		arm64) myarch="arm64";;
-		ppc64) myarch="ppc64";;
-		x32) myarch="x32";;
-		x86) myarch="ia32";;
-		*) myarch="${ABI}";;
-	esac
-
-	GYP_DEFINES="linux_use_gold_flags=0
-		linux_use_bundled_binutils=0
-		linux_use_bundled_gold=0" \
-	"${PYTHON}" configure \
-		--prefix="${EPREFIX}"/usr \
-		--dest-cpu=${myarch} \
-		$(use_with systemtap dtrace) \
-		"${myconf[@]}" || die
-}
-
-src_compile() {
-	emake -C out mksnapshot
-	pax-mark m "out/${BUILDTYPE}/mksnapshot"
-	emake -C out
-}
-
-src_test() {
-	out/${BUILDTYPE}/cctest || die
-	"${PYTHON}" tools/test.py --mode=${BUILDTYPE,,} -J message parallel sequential || die
-}
-
-src_install() {
-	local LIBDIR="${ED}/usr/$(get_libdir)"
-	emake install DESTDIR="${D}"
-	pax-mark -m "${ED}"usr/bin/node
-
-	# set up a symlink structure that node-gyp expects..
-	dodir /usr/include/node/deps/{v8,uv}
-	dosym . /usr/include/node/src
-	for var in deps/{uv,v8}/include; do
-		dosym ../.. /usr/include/node/${var}
-	done
-
-	if use doc; then
-		# Patch docs to make them offline readable
-		for i in `grep -rl 'fonts.googleapis.com' "${S}"/out/doc/api/*`; do
-			sed -i '/fonts.googleapis.com/ d' $i;
-		done
-		# Install docs
-		dodoc -r "${S}"/doc/*
-	fi
-
-	if use npm; then
-		dodir /etc/npm
-
-		# Install bash completion for `npm`
-		# We need to temporarily replace default config path since
-		# npm otherwise tries to write outside of the sandbox
-		local npm_config="usr/$(get_libdir)/node_modules/npm/lib/config/core.js"
-		sed -i -e "s|'/etc'|'${ED}/etc'|g" "${ED}/${npm_config}" || die
-		local tmp_npm_completion_file="$(emktemp)"
-		"${ED}/usr/bin/npm" completion > "${tmp_npm_completion_file}"
-		newbashcomp "${tmp_npm_completion_file}" npm
-		sed -i -e "s|'${ED}/etc'|'/etc'|g" "${ED}/${npm_config}" || die
-
-		# Move man pages
-		doman "${LIBDIR}"/node_modules/npm/man/man{1,5,7}/*
-
-		# Clean up
-		rm "${LIBDIR}"/node_modules/npm/{.mailmap,.npmignore,Makefile} || die
-		rm -rf "${LIBDIR}"/node_modules/npm/{doc,html,man} || die
-
-		local find_exp="-or -name"
-		local find_name=()
-		for match in "AUTHORS*" "CHANGELOG*" "CONTRIBUT*" "README*" \
-			".travis.yml" ".eslint*" ".wercker.yml" ".npmignore" \
-			"*.md" "*.markdown" "*.bat" "*.cmd"; do
-			find_name+=( ${find_exp} "${match}" )
-		done
-
-		# Remove various development and/or inappropriate files and
-		# useless docs of dependend packages.
-		find "${LIBDIR}"/node_modules \
-			\( -type d -name examples \) -or \( -type f \( \
-				-iname "LICEN?E*" \
-				"${find_name[@]}" \
-			\) \) -exec rm -rf "{}" \;
-	fi
-}
-
-pkg_postinst() {
-	einfo "The global npm config lives in /etc/npm. This deviates slightly"
-	einfo "from upstream which otherwise would have it live in /usr/etc/."
-	einfo ""
-	einfo "Protip: When using node-gyp to install native modules, you can"
-	einfo "avoid having to download extras by doing the following:"
-	einfo "$ node-gyp --nodedir /usr/include/node <command>"
-}


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: net-libs/nodejs/files/, net-libs/nodejs/
@ 2019-03-16 14:45 Jeroen Roovers
  0 siblings, 0 replies; 36+ messages in thread
From: Jeroen Roovers @ 2019-03-16 14:45 UTC (permalink / raw
  To: gentoo-commits

commit:     33d606cf69cee530fddba05a20359282a0ccbf52
Author:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
AuthorDate: Sat Mar 16 12:14:56 2019 +0000
Commit:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
CommitDate: Sat Mar 16 14:45:35 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=33d606cf

net-libs/nodejs: Old

Package-Manager: Portage-2.3.62, Repoman-2.3.12
Signed-off-by: Jeroen Roovers <jer <AT> gentoo.org>

 net-libs/nodejs/Manifest                           |   1 -
 net-libs/nodejs/files/nodejs-11.4.0-stdarg_h.patch |  10 -
 net-libs/nodejs/nodejs-11.10.1.ebuild              | 210 ---------------------
 3 files changed, 221 deletions(-)

diff --git a/net-libs/nodejs/Manifest b/net-libs/nodejs/Manifest
index f6c449c3f90..de3f7946880 100644
--- a/net-libs/nodejs/Manifest
+++ b/net-libs/nodejs/Manifest
@@ -1,7 +1,6 @@
 DIST node-v0.12.18.tar.gz 19842591 BLAKE2B f94f4de6e2875267be194580c645087a262b90da99f10d651a22838c041da07056df81204bb04ce8da083a080062509dcca4d1e3ac2250d651ead8a4cc025028 SHA512 6866608a43eb213f3b715ea0fcc28983fd959ab679c567a1b464f62acd936506f2bce88ea48a60209d8ef8d98259f4b47cd3434893eb4ff82a132775edb37b7b
 DIST node-v10.15.2.tar.xz 20232972 BLAKE2B 3ffaa0890ddec6b9d00a0b3f32fc62e55a665ea6faba6265df71be601f88a1c948011f908851f1cbb198974ca36f8626fa9a2b4b8827f0155e57ff48f3e25c10 SHA512 2d4ef4758d3a73a160b95249c7dce32307287ef84511f56c3077f18c0d87a53bb73b44dd86131a402c4e86686e5e7cb5aeedb2b075b8ab261fc43d5abbe70ce6
 DIST node-v10.15.3.tar.xz 20262632 BLAKE2B d65d4e274fa829be5cda1970b0ebe7081e8476334cb825e5727324c3202bc015f4ba39589608284d0f8c0b722079c06d1587de5299a3c81ccb7b0eacbdaccf84 SHA512 cf741f733af7a7e1fbd37b0f98110078494b4771dbdfccacfda95a5ea4cda6cdcea4f8d31dddcf27477213614e4ab6cf7d1a1f900cb92936333730737ac4f9e8
-DIST node-v11.10.1.tar.xz 22074212 BLAKE2B de4c224063050901a3898bb9d2a26dba8027b3722528c402d461f2ca892a80e230e16131e9c8b22d6fefbd44b79a6d78aef631934c80ed53f8601fd2d3405150 SHA512 8da793946d18c8368f12e786bc4fdcff0ac61237c95f896a49895d6433edcd42005d50237095fd2b1c69b51d56900d122528783338dbb97e5fcee9dcc9a5812c
 DIST node-v11.11.0.tar.xz 22094004 BLAKE2B 3ca03a659fc1104bf280510277a74167a2a188ba0798c4723730fb850cae3d4ddc4d5f4bbad88dc9dde8b7f57b02f5d9c47d047bb15668e3488e0a002e225cfb SHA512 c89fd154dfbaa999806429c6e416c4fa2f0d5f3cfb9ac6de8b21f9195681ae0170325ae6fd7ab811f4f394d03c1d56db77ae1c730d5e8ff6a64b9a6dfa2286e8
 DIST node-v11.12.0.tar.xz 22077236 BLAKE2B 1cd7252983c0e444e0ce183a11af0912c994b2e36a8f50a86ca543f59548629fb3b857a0d106340f44124637e06cf90b2e079a17a30c2bd8386bd6575fac1fd9 SHA512 54d19ee6cb5127298276287f536dca9d4c9389038bb23fc48e8ef0246bcfcf59961ae704a94c68eb67104a230e3b23cbb7c8559aca83f542b35a46b2797d31e4
 DIST node-v4.9.1.tar.xz 13250164 BLAKE2B 7a689b99bb4bf507f7f21dd2c096a5766d023a8174c0f468cab37365af1920b8700da04157e1a406917790524255ef32c243a74662fd50ef7d3567d189dac9cf SHA512 690c9fdf608e5194069a10955bdd94ec87cb1c308f13bc4d2cae92fa01436ace10fadf58f2e51d477dde6c570b23edc1c71fafea79bfc9cab2903eb2fa5f87aa

diff --git a/net-libs/nodejs/files/nodejs-11.4.0-stdarg_h.patch b/net-libs/nodejs/files/nodejs-11.4.0-stdarg_h.patch
deleted file mode 100644
index 951c35989c6..00000000000
--- a/net-libs/nodejs/files/nodejs-11.4.0-stdarg_h.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/src/node.cc
-+++ b/src/node.cc
-@@ -75,6 +75,7 @@
- #include <fcntl.h>  // _O_RDWR
- #include <limits.h>  // PATH_MAX
- #include <signal.h>
-+#include <stdarg.h> // va_start/va_end
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>

diff --git a/net-libs/nodejs/nodejs-11.10.1.ebuild b/net-libs/nodejs/nodejs-11.10.1.ebuild
deleted file mode 100644
index c4b2df6f8bd..00000000000
--- a/net-libs/nodejs/nodejs-11.10.1.ebuild
+++ /dev/null
@@ -1,210 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="threads"
-
-inherit bash-completion-r1 eutils flag-o-matic pax-utils python-single-r1 toolchain-funcs
-
-DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine"
-HOMEPAGE="https://nodejs.org/"
-SRC_URI="https://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz"
-
-LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x64-macos"
-IUSE="cpu_flags_x86_sse2 debug doc icu inspector +npm +snapshot +ssl systemtap test"
-REQUIRED_USE="
-	${PYTHON_REQUIRED_USE}
-	inspector? ( icu ssl )
-	npm? ( ssl )
-"
-
-RDEPEND="
-	>=dev-libs/libuv-1.26.0:=
-	>=net-dns/c-ares-1.15.0
-	>=net-libs/http-parser-2.9.0:=
-	>=net-libs/nghttp2-1.34.0
-	sys-libs/zlib
-	icu? ( >=dev-libs/icu-63.1:= )
-	ssl? ( =dev-libs/openssl-1.1.1*:0= )
-"
-DEPEND="
-	${RDEPEND}
-	${PYTHON_DEPS}
-	systemtap? ( dev-util/systemtap )
-	test? ( net-misc/curl )
-"
-PATCHES=(
-	"${FILESDIR}"/${PN}-10.3.0-global-npm-config.patch
-	"${FILESDIR}"/${PN}-11.4.0-stdarg_h.patch
-	"${FILESDIR}"/${PN}-99999999-llhttp.patch
-)
-S="${WORKDIR}/node-v${PV}"
-
-pkg_pretend() {
-	(use x86 && ! use cpu_flags_x86_sse2) && \
-		die "Your CPU doesn't support the required SSE2 instruction."
-
-	( [[ ${MERGE_TYPE} != "binary" ]] && ! test-flag-CXX -std=c++11 ) && \
-		die "Your compiler doesn't support C++11. Use GCC 4.8, Clang 3.3 or newer."
-}
-
-src_prepare() {
-	tc-export CC CXX PKG_CONFIG
-	export V=1
-	export BUILDTYPE=Release
-
-	# fix compilation on Darwin
-	# https://code.google.com/p/gyp/issues/detail?id=260
-	sed -i -e "/append('-arch/d" tools/gyp/pylib/gyp/xcode_emulation.py || die
-
-	# make sure we use python2.* while using gyp
-	sed -i -e "s/python/${EPYTHON}/" deps/npm/node_modules/node-gyp/gyp/gyp || die
-	sed -i -e "s/|| 'python2'/|| '${EPYTHON}'/" deps/npm/node_modules/node-gyp/lib/configure.js || die
-
-	# less verbose install output (stating the same as portage, basically)
-	sed -i -e "/print/d" tools/install.py || die
-
-	# proper libdir, hat tip @ryanpcmcquen https://github.com/iojs/io.js/issues/504
-	local LIBDIR=$(get_libdir)
-	sed -i -e "s|lib/|${LIBDIR}/|g" tools/install.py || die
-	sed -i -e "s/'lib'/'${LIBDIR}'/" deps/npm/lib/npm.js || die
-
-	# Avoid writing a depfile, not useful
-	sed -i -e "/DEPFLAGS =/d" tools/gyp/pylib/gyp/generator/make.py || die
-
-	sed -i -e "/'-O3'/d" common.gypi deps/v8/gypfiles/toolchain.gypi || die
-
-	# Avoid a test that I've only been able to reproduce from emerge. It doesnt
-	# seem sandbox related either (invoking it from a sandbox works fine).
-	# The issue is that no stdin handle is openened when asked for one.
-	# It doesn't really belong upstream , so it'll just be removed until someone
-	# with more gentoo-knowledge than me (jbergstroem) figures it out.
-	rm test/parallel/test-stdout-close-unref.js || die
-
-	# debug builds. change install path, remove optimisations and override buildtype
-	if use debug; then
-		sed -i -e "s|out/Release/|out/Debug/|g" tools/install.py || die
-		BUILDTYPE=Debug
-	fi
-
-	default
-}
-
-src_configure() {
-	local myconf=(
-		--shared-cares --shared-http-parser --shared-libuv --shared-nghttp2
-		--shared-zlib
-	)
-	use debug && myconf+=( --debug )
-	use icu && myconf+=( --with-intl=system-icu ) || myconf+=( --with-intl=none )
-	use inspector || myconf+=( --without-inspector )
-	use npm || myconf+=( --without-npm )
-	use snapshot && myconf+=( --with-snapshot )
-	use ssl && myconf+=( --shared-openssl ) || myconf+=( --without-ssl )
-
-	local myarch=""
-	case ${ABI} in
-		amd64) myarch="x64";;
-		arm) myarch="arm";;
-		arm64) myarch="arm64";;
-		ppc64) myarch="ppc64";;
-		x32) myarch="x32";;
-		x86) myarch="ia32";;
-		*) myarch="${ABI}";;
-	esac
-
-	GYP_DEFINES="linux_use_gold_flags=0
-		linux_use_bundled_binutils=0
-		linux_use_bundled_gold=0" \
-	"${PYTHON}" configure \
-		--prefix="${EPREFIX}"/usr \
-		--dest-cpu=${myarch} \
-		$(use_with systemtap dtrace) \
-		"${myconf[@]}" || die
-}
-
-src_compile() {
-	emake -C out mksnapshot
-	pax-mark m "out/${BUILDTYPE}/mksnapshot"
-	emake -C out
-}
-
-src_install() {
-	local LIBDIR="${ED}/usr/$(get_libdir)"
-	emake install DESTDIR="${D}"
-	pax-mark -m "${ED}"usr/bin/node
-
-	# set up a symlink structure that node-gyp expects..
-	dodir /usr/include/node/deps/{v8,uv}
-	dosym . /usr/include/node/src
-	for var in deps/{uv,v8}/include; do
-		dosym ../.. /usr/include/node/${var}
-	done
-
-	if use doc; then
-		# Patch docs to make them offline readable
-		for i in `grep -rl 'fonts.googleapis.com' "${S}"/out/doc/api/*`; do
-			sed -i '/fonts.googleapis.com/ d' $i;
-		done
-		# Install docs
-		docinto html
-		dodoc -r "${S}"/doc/*
-	fi
-
-	if use npm; then
-		dodir /etc/npm
-
-		# Install bash completion for `npm`
-		# We need to temporarily replace default config path since
-		# npm otherwise tries to write outside of the sandbox
-		local npm_config="usr/$(get_libdir)/node_modules/npm/lib/config/core.js"
-		sed -i -e "s|'/etc'|'${ED}/etc'|g" "${ED}/${npm_config}" || die
-		local tmp_npm_completion_file="$(emktemp)"
-		"${ED}/usr/bin/npm" completion > "${tmp_npm_completion_file}"
-		newbashcomp "${tmp_npm_completion_file}" npm
-		sed -i -e "s|'${ED}/etc'|'/etc'|g" "${ED}/${npm_config}" || die
-
-		# Move man pages
-		doman "${LIBDIR}"/node_modules/npm/man/man{1,5,7}/*
-
-		# Clean up
-		rm "${LIBDIR}"/node_modules/npm/{.mailmap,.npmignore,Makefile} || die
-		rm -rf "${LIBDIR}"/node_modules/npm/{doc,html,man} || die
-
-		local find_exp="-or -name"
-		local find_name=()
-		for match in "AUTHORS*" "CHANGELOG*" "CONTRIBUT*" "README*" \
-			".travis.yml" ".eslint*" ".wercker.yml" ".npmignore" \
-			"*.md" "*.markdown" "*.bat" "*.cmd"; do
-			find_name+=( ${find_exp} "${match}" )
-		done
-
-		# Remove various development and/or inappropriate files and
-		# useless docs of dependend packages.
-		find "${LIBDIR}"/node_modules \
-			\( -type d -name examples \) -or \( -type f \( \
-				-iname "LICEN?E*" \
-				"${find_name[@]}" \
-			\) \) -exec rm -rf "{}" \;
-	fi
-
-	mv "${ED}"/usr/share/doc/node "${ED}"/usr/share/doc/${PF} || die
-}
-
-src_test() {
-	out/${BUILDTYPE}/cctest || die
-	"${PYTHON}" tools/test.py --mode=${BUILDTYPE,,} -J message parallel sequential || die
-}
-
-pkg_postinst() {
-	elog "The global npm config lives in /etc/npm. This deviates slightly"
-	elog "from upstream which otherwise would have it live in /usr/etc/."
-	elog ""
-	elog "Protip: When using node-gyp to install native modules, you can"
-	elog "avoid having to download extras by doing the following:"
-	elog "$ node-gyp --nodedir /usr/include/node <command>"
-}


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: net-libs/nodejs/files/, net-libs/nodejs/
@ 2019-10-11 14:53 Jeroen Roovers
  0 siblings, 0 replies; 36+ messages in thread
From: Jeroen Roovers @ 2019-10-11 14:53 UTC (permalink / raw
  To: gentoo-commits

commit:     f92f76eed69b8a806ffffa3ee09e8d2d2a25c905
Author:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
AuthorDate: Fri Oct 11 14:39:55 2019 +0000
Commit:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
CommitDate: Fri Oct 11 14:53:08 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f92f76ee

net-libs/nodejs: Old

Support for the 6.x.x branch ended in April 2019.

https://github.com/nodejs/node/blob/master/doc/changelogs/CHANGELOG_V6.md#6.17.1

Package-Manager: Portage-2.3.76, Repoman-2.3.17
Signed-off-by: Jeroen Roovers <jer <AT> gentoo.org>

 net-libs/nodejs/Manifest                           |   2 -
 .../nodejs/files/gentoo-global-npm-config.patch    |  40 -----
 net-libs/nodejs/nodejs-6.14.4.ebuild               | 196 --------------------
 net-libs/nodejs/nodejs-6.17.1.ebuild               | 199 ---------------------
 4 files changed, 437 deletions(-)

diff --git a/net-libs/nodejs/Manifest b/net-libs/nodejs/Manifest
index 664dcf5b68b..69dff6cece8 100644
--- a/net-libs/nodejs/Manifest
+++ b/net-libs/nodejs/Manifest
@@ -1,8 +1,6 @@
 DIST node-v10.16.3.tar.xz 21505540 BLAKE2B 2ae6c3ce96a42cb72a388ca7727affb1e2eae06b997098bd8cad2b339b888f1f188c868d39631c51e10ef7b3a5a9173a3b016afe9fa7a4fb74c24a584781c329 SHA512 5d5457adaae87e41699cdf5bd62d32e9590248f7dadd583614cca9078a1749a4ee477433ebbe4278ec872fdfc377d99097c1e06073e0fd47c8c6597256ccdeb7
 DIST node-v12.10.0.tar.xz 22726116 BLAKE2B deb6ecaec54233050eaeb335d58020b8a82009bbab51c41c00784cab3003e57dbc96f3c25715deefbb5b3aee704b3db920cbb650af33cbcb1a62c1bb654f48f8 SHA512 7eb57b40effa9627b93c74ddc01ce1c044e878c669969c506ed40f72a7946c7c6951931c4fe4fbef456386ad459f7f4f1d0f04177e38343375aa463974ca1dba
 DIST node-v12.11.1.tar.xz 22852156 BLAKE2B 38205c3ad52ccac2656c72b31c5714268e4771375b13d7c113e4a5fe7e9530d2826c43aeaa3ed3e30210f504d37221f90f3fb2a15f4c5fbca8878d0f2639b9fa SHA512 9567ee592ea8a05f899755d5e1c934413532676c78a663a1a861a6fa882c7eecae411c05c4b034191b7266776341609c098fbccfcd93c93eba7b84d138eeffb9
-DIST node-v6.14.4.tar.xz 15842824 BLAKE2B fc56364be64fe5824e2bb50d861ebf8f58f9895f2c9c108b8df3315b127ffb2755eac85c28165ac9779adab4611ce8f5ea1a5745f43ebaa1389e82b8215c6396 SHA512 1ead0c097ec125230dd631f19a5c3ec06a1371f9ca3b392b5ad08fcc227dd0142f33ad52f96890c2c17448a4951a635b9099dfff00d7d8b3ffb59b07904d1bfa
-DIST node-v6.17.1.tar.xz 15858444 BLAKE2B ad050f71452f0ddf989e66a4eb02e88e4e5001faa2bcb0eae6b57784da87ba1d8251201e3a3d15245bb4d846f31f39854ddfae47aa1212c0526ec717438ba778 SHA512 6938c4864a96f5698ebc4e9a1228644820789d5402f42348eb1ff9ccd64f31bb91309a1f3301636b1117424c88b0b41b42baae51a1070d5c532604e5d7d7b868
 DIST node-v8.12.0.tar.xz 18310452 BLAKE2B 79634fc57cd76a97e72bab4be37da91d5eff4d13cdaa2b48e83f013885fa3590ba4a28378baf036ed26b7304bf234753d1d4014f72571496f5bb6cd5b221e5f0 SHA512 665d2dba287d78bcd723d7b4d00a6897fb996f4aa69a541e010a3dfeb2614257892117fcce7123966b1ecaddc9269a6667e0e262df693baea1f476c96de55c42
 DIST node-v8.16.1.tar.xz 18519480 BLAKE2B a721ea5118e6e97ce36245367d33fb2eab8a9b4fba72f59f1a65dfc79de394a235a579fa789e8676d2897a928444db11e7792e7fe49c59bf17ac4cc1cac63941 SHA512 7d2d7c063934227e5204b2912de45ed1667d5c35573322192393bdac623491559ccd9fa8fbf05828bd2bb8e3aeb03d82804775cccb1139b48298758defe92be3
 DIST node-v8.16.2.tar.xz 18531368 BLAKE2B aec2f6257ab9237097e590b70b2e8615b664576b3af2f176260f26460f4f50bb1e00c2aff477a32cdb9ebf83f8b4eadc3ccdc2df431e359904fe4375513fb6c1 SHA512 8b0d4a089a5c80869971ceeffbef3ca03f4de4f53452a9fd16cbd189e5d76c7fdef475c144848c8d657256b41e342c020e11f6acd1880dde92ed0d0e8cf9e600

diff --git a/net-libs/nodejs/files/gentoo-global-npm-config.patch b/net-libs/nodejs/files/gentoo-global-npm-config.patch
deleted file mode 100644
index e7346b82685..00000000000
--- a/net-libs/nodejs/files/gentoo-global-npm-config.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-commit 46ac7cd4229eac5e0182ab62b7ed844c24a8c52e
-Author: Johan Bergström <bugs@bergstroem.nu>
-Date:   Wed Feb 10 22:45:59 2016 +1100
-
-    npm: set global config folder to /etc/npm
-    
-    npm previously assumed that the global config path would be
-    based on $prefix/etc. Since gentoo installs nodejs into /usr,
-    this means we're also creating /usr/etc which is less desirable.
-    
-    This patch will likely never go upstream.
-
-diff --git a/deps/npm/lib/config/core.js b/deps/npm/lib/config/core.js
-index d1306eb..bd2ef89 100644
---- a/deps/npm/lib/config/core.js
-+++ b/deps/npm/lib/config/core.js
-@@ -150,16 +150,14 @@ function load_ (builtin, rc, cli, cb) {
-     // Eg, `npm config get globalconfig --prefix ~/local` should
-     // return `~/local/etc/npmrc`
-     // annoying humans and their expectations!
--    if (conf.get('prefix')) {
--      var etc = path.resolve(conf.get('prefix'), 'etc')
--      mkdirp(etc, function () {
--        defaults.globalconfig = path.resolve(etc, 'npmrc')
--        defaults.globalignorefile = path.resolve(etc, 'npmignore')
--        afterUserContinuation()
--      })
--    } else {
-+
-+    // gentoo deviates wrt global config; store in /etc/npm
-+    var globalconfig = path.resolve('/etc', 'npm')
-+    mkdirp(globalconfig, function () {
-+      defaults.globalconfig = path.resolve(globalconfig, 'npmrc')
-+      defaults.globalignorefile = path.resolve(globalconfig, 'npmignore')
-       afterUserContinuation()
--    }
-+    })
-   }
- 
-   function afterUserContinuation () {

diff --git a/net-libs/nodejs/nodejs-6.14.4.ebuild b/net-libs/nodejs/nodejs-6.14.4.ebuild
deleted file mode 100644
index 909ebd44dfe..00000000000
--- a/net-libs/nodejs/nodejs-6.14.4.ebuild
+++ /dev/null
@@ -1,196 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="threads"
-
-inherit bash-completion-r1 eutils flag-o-matic pax-utils python-any-r1 toolchain-funcs
-
-DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine"
-HOMEPAGE="https://nodejs.org/"
-SRC_URI="https://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz"
-
-LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
-SLOT="0"
-KEYWORDS="amd64 arm ~arm64 x86 ~amd64-linux ~x64-macos"
-IUSE="cpu_flags_x86_sse2 debug doc icu inspector +npm +snapshot +ssl test"
-REQUIRED_USE="
-	inspector? ( icu ssl )
-"
-
-RDEPEND="
-	>=dev-libs/libuv-1.16.1:=
-	>=net-libs/http-parser-2.7.0:=
-	sys-libs/zlib
-	icu? ( >=dev-libs/icu-58.2:= )
-	ssl? ( >=dev-libs/openssl-1.0.2n:0=[-bindist] )
-"
-DEPEND="
-	${RDEPEND}
-	${PYTHON_DEPS}
-	test? ( net-misc/curl )
-"
-S="${WORKDIR}/node-v${PV}"
-PATCHES=(
-	"${FILESDIR}"/gentoo-global-npm-config.patch
-)
-
-pkg_pretend() {
-	(use x86 && ! use cpu_flags_x86_sse2) && \
-		die "Your CPU doesn't support the required SSE2 instruction."
-
-	( [[ ${MERGE_TYPE} != "binary" ]] && ! test-flag-CXX -std=c++11 ) && \
-		die "Your compiler doesn't support C++11. Use GCC 4.8, Clang 3.3 or newer."
-}
-
-src_prepare() {
-	tc-export CC CXX PKG_CONFIG
-	export V=1
-	export BUILDTYPE=Release
-
-	# fix compilation on Darwin
-	# https://code.google.com/p/gyp/issues/detail?id=260
-	sed -i -e "/append('-arch/d" tools/gyp/pylib/gyp/xcode_emulation.py || die
-
-	# make sure we use python2.* while using gyp
-	sed -i -e "s/python/${EPYTHON}/" deps/npm/node_modules/node-gyp/gyp/gyp || die
-	sed -i -e "s/|| 'python'/|| '${EPYTHON}'/" deps/npm/node_modules/node-gyp/lib/configure.js || die
-
-	# less verbose install output (stating the same as portage, basically)
-	sed -i -e "/print/d" tools/install.py || die
-
-	# proper libdir, hat tip @ryanpcmcquen https://github.com/iojs/io.js/issues/504
-	local LIBDIR=$(get_libdir)
-	sed -i -e "s|lib/|${LIBDIR}/|g" tools/install.py || die
-	sed -i -e "s/'lib'/'${LIBDIR}'/" lib/module.js || die
-	sed -i -e "s|\"lib\"|\"${LIBDIR}\"|" deps/npm/lib/npm.js || die
-
-	# Avoid writing a depfile, not useful
-	sed -i -e "/DEPFLAGS =/d" tools/gyp/pylib/gyp/generator/make.py || die
-
-	# Avoid a test that I've only been able to reproduce from emerge. It doesnt
-	# seem sandbox related either (invoking it from a sandbox works fine).
-	# The issue is that no stdin handle is openened when asked for one.
-	# It doesn't really belong upstream , so it'll just be removed until someone
-	# with more gentoo-knowledge than me (jbergstroem) figures it out.
-	rm test/parallel/test-stdout-close-unref.js || die
-
-	# debug builds. change install path, remove optimisations and override buildtype
-	if use debug; then
-		sed -i -e "s|out/Release/|out/Debug/|g" tools/install.py || die
-		BUILDTYPE=Debug
-	fi
-
-	default
-}
-
-src_configure() {
-	local myarch=""
-	local myconf=( --shared-libuv --shared-http-parser --shared-zlib )
-	use debug && myconf+=( --debug )
-	use icu && myconf+=( --with-intl=system-icu )
-	use inspector || myconf+=( --without-inspector )
-	use npm || myconf+=( --without-npm )
-	use snapshot && myconf+=( --with-snapshot )
-	use ssl && myconf+=( --shared-openssl ) || myconf+=( --without-ssl )
-
-	case ${ABI} in
-		amd64) myarch="x64";;
-		arm) myarch="arm";;
-		arm64) myarch="arm64";;
-		ppc64) myarch="ppc64";;
-		x32) myarch="x32";;
-		x86) myarch="ia32";;
-		*) myarch="${ABI}";;
-	esac
-
-	GYP_DEFINES="linux_use_gold_flags=0
-		linux_use_bundled_binutils=0
-		linux_use_bundled_gold=0" \
-	"${PYTHON}" configure \
-		--prefix="${EPREFIX}"/usr \
-		--dest-cpu=${myarch} \
-		--without-dtrace \
-		"${myconf[@]}" || die
-}
-
-src_compile() {
-	emake -C out mksnapshot
-	pax-mark m "out/${BUILDTYPE}/mksnapshot"
-	emake -C out
-}
-
-src_install() {
-	local LIBDIR="${ED}/usr/$(get_libdir)"
-	emake install DESTDIR="${D}"
-	pax-mark -m "${ED}"usr/bin/node
-
-	# set up a symlink structure that node-gyp expects..
-	dodir /usr/include/node/deps/{v8,uv}
-	dosym . /usr/include/node/src
-	for var in deps/{uv,v8}/include; do
-		dosym ../.. /usr/include/node/${var}
-	done
-
-	if use doc; then
-		# Patch docs to make them offline readable
-		for i in `grep -rl 'fonts.googleapis.com' "${S}"/out/doc/api/*`; do
-			sed -i '/fonts.googleapis.com/ d' $i;
-		done
-		# Install docs!
-		dohtml -r "${S}"/doc/*
-	fi
-
-	if use npm; then
-		dodir /etc/npm
-
-		# Install bash completion for `npm`
-		# We need to temporarily replace default config path since
-		# npm otherwise tries to write outside of the sandbox
-		local npm_config="usr/$(get_libdir)/node_modules/npm/lib/config/core.js"
-		sed -i -e "s|'/etc'|'${ED}/etc'|g" "${ED}/${npm_config}" || die
-		local tmp_npm_completion_file="$(emktemp)"
-		"${ED}/usr/bin/npm" completion > "${tmp_npm_completion_file}"
-		newbashcomp "${tmp_npm_completion_file}" npm
-		sed -i -e "s|'${ED}/etc'|'/etc'|g" "${ED}/${npm_config}" || die
-
-		# Move man pages
-		doman "${LIBDIR}"/node_modules/npm/man/man{1,5,7}/*
-
-		# Clean up
-		rm "${LIBDIR}"/node_modules/npm/{.mailmap,.npmignore,Makefile} || die
-		rm -rf "${LIBDIR}"/node_modules/npm/{doc,html,man} || die
-
-		local find_exp="-or -name"
-		local find_name=()
-		for match in "AUTHORS*" "CHANGELOG*" "CONTRIBUT*" "README*" \
-			".travis.yml" ".eslint*" ".wercker.yml" ".npmignore" \
-			"*.md" "*.markdown" "*.bat" "*.cmd"; do
-			find_name+=( ${find_exp} "${match}" )
-		done
-
-		# Remove various development and/or inappropriate files and
-		# useless docs of dependend packages.
-		find "${LIBDIR}"/node_modules \
-			\( -type d -name examples \) -or \( -type f \( \
-				-iname "LICEN?E*" \
-				"${find_name[@]}" \
-			\) \) -exec rm -rf "{}" \;
-	fi
-}
-
-src_test() {
-	out/${BUILDTYPE}/cctest || die
-	"${PYTHON}" tools/test.py --mode=${BUILDTYPE,,} -J message parallel sequential || die
-}
-
-pkg_postinst() {
-	einfo "The global npm config lives in /etc/npm. This deviates slightly"
-	einfo "from upstream which otherwise would have it live in /usr/etc/."
-	einfo ""
-	einfo "Protip: When using node-gyp to install native modules, you can"
-	einfo "avoid having to download extras by doing the following:"
-	einfo "$ node-gyp --nodedir /usr/include/node <command>"
-}

diff --git a/net-libs/nodejs/nodejs-6.17.1.ebuild b/net-libs/nodejs/nodejs-6.17.1.ebuild
deleted file mode 100644
index 814a80538d1..00000000000
--- a/net-libs/nodejs/nodejs-6.17.1.ebuild
+++ /dev/null
@@ -1,199 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="threads"
-
-inherit bash-completion-r1 eutils flag-o-matic pax-utils python-any-r1 toolchain-funcs
-
-DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine"
-HOMEPAGE="https://nodejs.org/"
-SRC_URI="https://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz"
-
-LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86"
-IUSE="cpu_flags_x86_sse2 debug doc icu inspector +npm +snapshot +ssl test"
-REQUIRED_USE="
-	inspector? ( icu ssl )
-"
-
-RDEPEND="
-	>=dev-libs/libuv-1.16.1:=
-	>=net-libs/http-parser-2.9.0:=
-	sys-libs/zlib
-	icu? ( >=dev-libs/icu-58.2:= )
-	ssl? ( >=dev-libs/openssl-1.0.2n:0=[-bindist] )
-"
-DEPEND="
-	${RDEPEND}
-	${PYTHON_DEPS}
-	test? ( net-misc/curl )
-"
-PATCHES=(
-	"${FILESDIR}"/gentoo-global-npm-config.patch
-)
-S="${WORKDIR}/node-v${PV}"
-
-pkg_pretend() {
-	(use x86 && ! use cpu_flags_x86_sse2) && \
-		die "Your CPU doesn't support the required SSE2 instruction."
-
-	( [[ ${MERGE_TYPE} != "binary" ]] && ! test-flag-CXX -std=c++11 ) && \
-		die "Your compiler doesn't support C++11. Use GCC 4.8, Clang 3.3 or newer."
-}
-
-src_prepare() {
-	tc-export CC CXX PKG_CONFIG
-	export V=1
-	export BUILDTYPE=Release
-
-	# fix compilation on Darwin
-	# https://code.google.com/p/gyp/issues/detail?id=260
-	sed -i -e "/append('-arch/d" tools/gyp/pylib/gyp/xcode_emulation.py || die
-
-	# make sure we use python2.* while using gyp
-	sed -i -e "s/python/${EPYTHON}/" deps/npm/node_modules/node-gyp/gyp/gyp || die
-	sed -i -e "s/|| 'python'/|| '${EPYTHON}'/" deps/npm/node_modules/node-gyp/lib/configure.js || die
-
-	# less verbose install output (stating the same as portage, basically)
-	sed -i -e "/print/d" tools/install.py || die
-
-	# proper libdir, hat tip @ryanpcmcquen https://github.com/iojs/io.js/issues/504
-	local LIBDIR=$(get_libdir)
-	sed -i \
-		-e "s|lib/|${LIBDIR}/|g" \
-		-e 's|share/doc/node/|share/doc/'"${PF}"'/|g' \
-		tools/install.py || die
-	sed -i -e "s/'lib'/'${LIBDIR}'/" lib/module.js || die
-	sed -i -e "s|\"lib\"|\"${LIBDIR}\"|" deps/npm/lib/npm.js || die
-
-	# Avoid writing a depfile, not useful
-	sed -i -e "/DEPFLAGS =/d" tools/gyp/pylib/gyp/generator/make.py || die
-
-	# Avoid a test that I've only been able to reproduce from emerge. It doesnt
-	# seem sandbox related either (invoking it from a sandbox works fine).
-	# The issue is that no stdin handle is openened when asked for one.
-	# It doesn't really belong upstream , so it'll just be removed until someone
-	# with more gentoo-knowledge than me (jbergstroem) figures it out.
-	rm test/parallel/test-stdout-close-unref.js || die
-
-	# debug builds. change install path, remove optimisations and override buildtype
-	if use debug; then
-		sed -i -e "s|out/Release/|out/Debug/|g" tools/install.py || die
-		BUILDTYPE=Debug
-	fi
-
-	default
-}
-
-src_configure() {
-	local myarch=""
-	local myconf=( --shared-libuv --shared-http-parser --shared-zlib )
-	use debug && myconf+=( --debug )
-	use icu && myconf+=( --with-intl=system-icu )
-	use inspector || myconf+=( --without-inspector )
-	use npm || myconf+=( --without-npm )
-	use snapshot && myconf+=( --with-snapshot )
-	use ssl && myconf+=( --shared-openssl ) || myconf+=( --without-ssl )
-
-	case ${ABI} in
-		amd64) myarch="x64";;
-		arm) myarch="arm";;
-		arm64) myarch="arm64";;
-		ppc64) myarch="ppc64";;
-		x32) myarch="x32";;
-		x86) myarch="ia32";;
-		*) myarch="${ABI}";;
-	esac
-
-	GYP_DEFINES="linux_use_gold_flags=0
-		linux_use_bundled_binutils=0
-		linux_use_bundled_gold=0" \
-	"${PYTHON}" configure \
-		--prefix="${EPREFIX}"/usr \
-		--dest-cpu=${myarch} \
-		--without-dtrace \
-		"${myconf[@]}" || die
-}
-
-src_compile() {
-	emake -C out mksnapshot
-	pax-mark m "out/${BUILDTYPE}/mksnapshot"
-	emake -C out
-}
-
-src_install() {
-	local LIBDIR="${ED}/usr/$(get_libdir)"
-	emake install DESTDIR="${D}"
-	pax-mark -m "${ED}"usr/bin/node
-
-	# set up a symlink structure that node-gyp expects..
-	dodir /usr/include/node/deps/{v8,uv}
-	dosym . /usr/include/node/src
-	for var in deps/{uv,v8}/include; do
-		dosym ../.. /usr/include/node/${var}
-	done
-
-	if use doc; then
-		# Patch docs to make them offline readable
-		for i in `grep -rl 'fonts.googleapis.com' "${S}"/out/doc/api/*`; do
-			sed -i '/fonts.googleapis.com/ d' $i;
-		done
-		# Install docs!
-		dohtml -r "${S}"/doc/*
-	fi
-
-	if use npm; then
-		dodir /etc/npm
-
-		# Install bash completion for `npm`
-		# We need to temporarily replace default config path since
-		# npm otherwise tries to write outside of the sandbox
-		local npm_config="usr/$(get_libdir)/node_modules/npm/lib/config/core.js"
-		sed -i -e "s|'/etc'|'${ED}/etc'|g" "${ED}/${npm_config}" || die
-		local tmp_npm_completion_file="$(emktemp)"
-		"${ED}/usr/bin/npm" completion > "${tmp_npm_completion_file}"
-		newbashcomp "${tmp_npm_completion_file}" npm
-		sed -i -e "s|'${ED}/etc'|'/etc'|g" "${ED}/${npm_config}" || die
-
-		# Move man pages
-		doman "${LIBDIR}"/node_modules/npm/man/man{1,5,7}/*
-
-		# Clean up
-		rm "${LIBDIR}"/node_modules/npm/{.mailmap,.npmignore,Makefile} || die
-		rm -rf "${LIBDIR}"/node_modules/npm/{doc,html,man} || die
-
-		local find_exp="-or -name"
-		local find_name=()
-		for match in "AUTHORS*" "CHANGELOG*" "CONTRIBUT*" "README*" \
-			".travis.yml" ".eslint*" ".wercker.yml" ".npmignore" \
-			"*.md" "*.markdown" "*.bat" "*.cmd"; do
-			find_name+=( ${find_exp} "${match}" )
-		done
-
-		# Remove various development and/or inappropriate files and
-		# useless docs of dependend packages.
-		find "${LIBDIR}"/node_modules \
-			\( -type d -name examples \) -or \( -type f \( \
-				-iname "LICEN?E*" \
-				"${find_name[@]}" \
-			\) \) -exec rm -rf "{}" \;
-	fi
-}
-
-src_test() {
-	out/${BUILDTYPE}/cctest || die
-	"${PYTHON}" tools/test.py --mode=${BUILDTYPE,,} -J message parallel sequential || die
-}
-
-pkg_postinst() {
-	einfo "The global npm config lives in /etc/npm. This deviates slightly"
-	einfo "from upstream which otherwise would have it live in /usr/etc/."
-	einfo ""
-	einfo "Protip: When using node-gyp to install native modules, you can"
-	einfo "avoid having to download extras by doing the following:"
-	einfo "$ node-gyp --nodedir /usr/include/node <command>"
-}


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: net-libs/nodejs/files/, net-libs/nodejs/
@ 2019-11-27 21:37 Magnus Granberg
  0 siblings, 0 replies; 36+ messages in thread
From: Magnus Granberg @ 2019-11-27 21:37 UTC (permalink / raw
  To: gentoo-commits

commit:     d3b53be221b0288c4eb5155ad52fa8f27bda083d
Author:     Magnus Granberg <zorry <AT> gentoo <DOT> org>
AuthorDate: Wed Nov 27 21:28:02 2019 +0000
Commit:     Magnus Granberg <zorry <AT> gentoo <DOT> org>
CommitDate: Wed Nov 27 21:29:14 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d3b53be2

net-libs/nodejs: Fix build on PAX enable kernel (bug 694100)

We need to disable mprotect on two bins when we compile
bug 694100.

Closes: https://bugs.gentoo.org/694100
Reported-by: Attila Tóth <atoth <AT> atoth.sote.hu>
Co-developed-by: Attila Tóth <atoth <AT> atoth.sote.hu>
Signed-off-by: Magnus Granberg <zorry <AT> gentoo.org>
Package-Manager: Portage-2.3.76, Repoman-2.3.16

 .../nodejs/files/nodejs-13.2.0-paxmarking.patch    | 71 ++++++++++++++++++++++
 net-libs/nodejs/metadata.xml                       |  1 +
 net-libs/nodejs/nodejs-13.2.0.ebuild               |  8 ++-
 net-libs/nodejs/nodejs-99999999.ebuild             |  8 ++-
 4 files changed, 82 insertions(+), 6 deletions(-)

diff --git a/net-libs/nodejs/files/nodejs-13.2.0-paxmarking.patch b/net-libs/nodejs/files/nodejs-13.2.0-paxmarking.patch
new file mode 100644
index 00000000000..143e4166272
--- /dev/null
+++ b/net-libs/nodejs/files/nodejs-13.2.0-paxmarking.patch
@@ -0,0 +1,71 @@
+    Bug: 694100
+    Add actions for pax marking mkcodecache and node_mksnapshot
+    to disable mprotect for pax enable kernel.
+    Reported-by: Attila Tóth <atoth@atoth.sote.hu>
+    Co-developed-by: Attila Tóth <atoth@atoth.sote.hu>
+    Signed-off-by: Magnus Granberg <zorry@gentoo.org>
+    
+--- a/node.gyp	2019-10-23 11:52:41.000000000 +0200
++++ a/node.gyp	2019-11-12 20:58:43.957881862 +0100
+@@ -233,7 +233,9 @@
+       'deps/acorn-plugins/acorn-static-class-features/index.js',
+     ],
+     'node_mksnapshot_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)node_mksnapshot<(EXECUTABLE_SUFFIX)',
++    'node_mksnapshot_u_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)node_mksnapshot_u<(EXECUTABLE_SUFFIX)',
+     'mkcodecache_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)mkcodecache<(EXECUTABLE_SUFFIX)',
++    'mkcodecache_u_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)mkcodecache_u<(EXECUTABLE_SUFFIX)',
+     'conditions': [
+       [ 'node_shared=="true"', {
+         'node_target_type%': 'shared_library',
+@@ -436,10 +438,24 @@
+           ],
+           'actions': [
+             {
++              'action_name': 'run_pax_mkcodecache',
++              'inputs': [
++                '<(mkcodecache_exec)',
++              ],
++              'outputs': [
++                '<(mkcodecache_u_exec)',
++              ],
++              'action': [
++                'bash',
++                '-c',
++                'mv <(mkcodecache_exec) <(mkcodecache_u_exec) && paxmark.sh m <(mkcodecache_u_exec)',
++              ],
++            },
++            {
+               'action_name': 'run_mkcodecache',
+               'process_outputs_as_sources': 1,
+               'inputs': [
+-                '<(mkcodecache_exec)',
++                '<(mkcodecache_u_exec)',
+               ],
+               'outputs': [
+                 '<(SHARED_INTERMEDIATE_DIR)/node_code_cache.cc',
+@@ -461,10 +477,24 @@
+           ],
+           'actions': [
+             {
++              'action_name': 'run_pax_mksnapshot',
++              'inputs': [
++                '<(node_mksnapshot_exec)',
++              ],
++              'outputs': [
++                '<(node_mksnapshot_u_exec)',
++              ],
++              'action': [
++                'bash',
++                '-c',
++                'mv <(node_mksnapshot_exec) <(node_mksnapshot_u_exec) && paxmark.sh m <(node_mksnapshot_u_exec)',
++              ],
++            },
++            {
+               'action_name': 'node_mksnapshot',
+               'process_outputs_as_sources': 1,
+               'inputs': [
+-                '<(node_mksnapshot_exec)',
++                '<(node_mksnapshot_u_exec)',
+               ],
+               'outputs': [
+                 '<(SHARED_INTERMEDIATE_DIR)/node_snapshot.cc',

diff --git a/net-libs/nodejs/metadata.xml b/net-libs/nodejs/metadata.xml
index aaaba184187..3f344f0d8ed 100644
--- a/net-libs/nodejs/metadata.xml
+++ b/net-libs/nodejs/metadata.xml
@@ -7,6 +7,7 @@
 	<use>
 		<flag name="inspector">Enable V8 inspector</flag>
 		<flag name="npm">Enable NPM package manager</flag>
+		<flag name="pax_kernel">Enable building under a PaX enabled kernel</flag>
 		<flag name="snapshot">Enable snapshot creation for faster startup</flag>
 		<flag name="systemtap">Enable SystemTAP/DTrace tracing</flag>
 	</use>

diff --git a/net-libs/nodejs/nodejs-13.2.0.ebuild b/net-libs/nodejs/nodejs-13.2.0.ebuild
index 56bbeb5526f..8013ab7c39a 100644
--- a/net-libs/nodejs/nodejs-13.2.0.ebuild
+++ b/net-libs/nodejs/nodejs-13.2.0.ebuild
@@ -15,7 +15,7 @@ SRC_URI="
 LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
 SLOT="0"
 KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x64-macos"
-IUSE="cpu_flags_x86_sse2 debug doc icu inspector +npm +snapshot +ssl systemtap test"
+IUSE="cpu_flags_x86_sse2 debug doc icu inspector +npm pax_kernel +snapshot +ssl systemtap test"
 REQUIRED_USE="
 	inspector? ( icu ssl )
 	npm? ( ssl )
@@ -33,6 +33,7 @@ BDEPEND="
 	${PYTHON_DEPS}
 	systemtap? ( dev-util/systemtap )
 	test? ( net-misc/curl )
+	pax_kernel? ( sys-apps/elfix )
 "
 DEPEND="
 	${RDEPEND}
@@ -86,6 +87,9 @@ src_prepare() {
 		BUILDTYPE=Debug
 	fi
 
+	# We need to disable mprotect on two files when it builds Bug 694100.
+	use pax_kernel && PATCHES+=( "${FILESDIR}"/${PN}-13.2.0-paxmarking.patch )
+
 	default
 }
 
@@ -124,8 +128,6 @@ src_configure() {
 }
 
 src_compile() {
-	emake -C out mksnapshot
-	pax-mark m "out/${BUILDTYPE}/mksnapshot"
 	emake -C out
 }
 

diff --git a/net-libs/nodejs/nodejs-99999999.ebuild b/net-libs/nodejs/nodejs-99999999.ebuild
index e36828c990a..96dcccf3770 100644
--- a/net-libs/nodejs/nodejs-99999999.ebuild
+++ b/net-libs/nodejs/nodejs-99999999.ebuild
@@ -13,7 +13,7 @@ EGIT_REPO_URI="https://github.com/nodejs/node"
 LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
 SLOT="0"
 KEYWORDS=""
-IUSE="cpu_flags_x86_sse2 debug doc icu inspector +npm +snapshot +ssl systemtap test"
+IUSE="cpu_flags_x86_sse2 debug doc icu inspector +npm pax_kernel +snapshot +ssl systemtap test"
 REQUIRED_USE="
 	inspector? ( icu ssl )
 	npm? ( ssl )
@@ -31,6 +31,7 @@ BDEPEND="
 	${PYTHON_DEPS}
 	systemtap? ( dev-util/systemtap )
 	test? ( net-misc/curl )
+	pax_kernel? ( sys-apps/elfix )
 "
 DEPEND="
 	${RDEPEND}
@@ -82,6 +83,9 @@ src_prepare() {
 		BUILDTYPE=Debug
 	fi
 
+	# We need to disable mprotect on two files when it builds Bug 694100.
+	use pax_kernel && PATCHES+=( "${FILESDIR}"/${PN}-13.2.0-paxmarking.patch )
+
 	default
 }
 
@@ -120,8 +124,6 @@ src_configure() {
 }
 
 src_compile() {
-	emake -C out mksnapshot
-	pax-mark m "out/${BUILDTYPE}/mksnapshot"
 	emake -C out
 }
 


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: net-libs/nodejs/files/, net-libs/nodejs/
@ 2020-09-04  7:09 Jeroen Roovers
  0 siblings, 0 replies; 36+ messages in thread
From: Jeroen Roovers @ 2020-09-04  7:09 UTC (permalink / raw
  To: gentoo-commits

commit:     eda2daf31ca9729e117cdf8ada5c3ac90fc20780
Author:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
AuthorDate: Fri Sep  4 07:03:41 2020 +0000
Commit:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
CommitDate: Fri Sep  4 07:09:38 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=eda2daf3

net-libs/nodejs: Restore some of the 12.x.x branch

Package-Manager: Portage-3.0.5, Repoman-3.0.1
RepoMan-Options: --force
Bug: https://bugs.gentoo.org/726836
Bug: https://bugs.gentoo.org/739340
Closes: https://bugs.gentoo.org/740218
Signed-off-by: Jeroen Roovers <jer <AT> gentoo.org>

 net-libs/nodejs/Manifest                           |   2 +
 net-libs/nodejs/files/nodejs-99999999-llhttp.patch |  20 ++
 net-libs/nodejs/nodejs-12.16.1.ebuild              | 213 +++++++++++++++++++++
 net-libs/nodejs/nodejs-12.18.3.ebuild              | 213 +++++++++++++++++++++
 4 files changed, 448 insertions(+)

diff --git a/net-libs/nodejs/Manifest b/net-libs/nodejs/Manifest
index 04de0ee0ad3..0317e181d16 100644
--- a/net-libs/nodejs/Manifest
+++ b/net-libs/nodejs/Manifest
@@ -1,3 +1,5 @@
+DIST node-v12.16.1.tar.xz 23481768 BLAKE2B 29371b952c14907778c064269108f1da5e3818c32773e73090c61edcd07190c418189db6a505987ca71f99bb868880e297de5d2181b9a880774eaaf515985f26 SHA512 fe1e9fabb6fe52e3bc4275b33e6c5e4a761550b04964c0ae7dbef7172f5d415207bb2985751d068e357ce45a0ba414b07c0abd1531ef839b9463e98eeae8f9a4
+DIST node-v12.18.3.tar.xz 23679596 BLAKE2B 496a8fa0f0368634a900c5961b442cb9ef9e0cf7cb0fc974a9e29624fc40077a61bd6371851d5487b9eeeb50ebf6a238e5db5c801fef000c7cb15bd990cadae2 SHA512 a1c72d4664fbead4e63736abe46417b13dcd0581c7c9f8a94ca5c5b2bd782fefabac63e63f824dda6a771c3b5e647749e3156a611dcb100aad11c3f23e17ed5d
 DIST node-v14.2.0.tar.xz 32884616 BLAKE2B 7bcb07cb7623c5e08c20267c320cdf23ad110f124c5ad1f2447ef8b76ab8dc44ed50dab7c5651424d9d3a36f7eeecdf3292b07c02cb2e22c3fbe4ed633c4b842 SHA512 47e5ec0b7a207082d43419a7e0a6ea9242ec43b4d7c2217eb66d0b45e2f4d5cb561b3f6fe35fdc41a8be95c182dc122ba262f696ebd12833596d71b372ec85d2
 DIST node-v14.4.0.tar.xz 33005312 BLAKE2B bc1462d897e24a6b842e6f8146971866c73b54ff5383d76cfc5728a73e2c135d28ced068744174b3fb5af4a6ec05ef1f115ea51c2d65517cbe18e1d733460d04 SHA512 f1a7c788a8a149b942ec2b90a4314baaa5355c381029eda45002728ce7209925c016323b0ec1e0dfe2359fddb24f494df125805d0d266b738a333dcddb3f59c3
 DIST node-v14.8.0.tar.xz 33342288 BLAKE2B 4f8129beb16ece09f14c234395b29bc53e84896fdd9877821a27c80d88a0740d42ea4dcf65a0a5c52a98129262be236207f4c07d81f76cc5e4471f21227083e9 SHA512 ebb20f7163e20e8074dd9cc5d3ee7f3cbc536c55a7753d39c482ea90e9314d8fdfe1a88203be7f250f6d77b9f13da04d32d99770d300c2ab0dfdee3d7582f068

diff --git a/net-libs/nodejs/files/nodejs-99999999-llhttp.patch b/net-libs/nodejs/files/nodejs-99999999-llhttp.patch
new file mode 100644
index 00000000000..1b6eb9fb7fa
--- /dev/null
+++ b/net-libs/nodejs/files/nodejs-99999999-llhttp.patch
@@ -0,0 +1,20 @@
+--- a/node.gypi
++++ b/node.gypi
+@@ -169,11 +169,15 @@
+ 
+     [ 'node_shared_http_parser=="false"', {
+       'dependencies': [
+-        'deps/http_parser/http_parser.gyp:http_parser',
+-        'deps/llhttp/llhttp.gyp:llhttp'
++        'deps/http_parser/http_parser.gyp:http_parser'
+       ],
+     } ],
+ 
++    [ '"true"', { 'dependencies': [
++        'deps/llhttp/llhttp.gyp:llhttp'
++      ],
++    }],
++
+     [ 'node_shared_cares=="false"', {
+       'dependencies': [ 'deps/cares/cares.gyp:cares' ],
+     }],

diff --git a/net-libs/nodejs/nodejs-12.16.1.ebuild b/net-libs/nodejs/nodejs-12.16.1.ebuild
new file mode 100644
index 00000000000..29723942409
--- /dev/null
+++ b/net-libs/nodejs/nodejs-12.16.1.ebuild
@@ -0,0 +1,213 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python3_{6,7} )
+PYTHON_REQ_USE="threads(+)"
+inherit bash-completion-r1 eutils flag-o-matic pax-utils python-any-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine"
+HOMEPAGE="https://nodejs.org/"
+SRC_URI="
+	https://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz
+"
+
+LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
+SLOT="0"
+KEYWORDS="amd64 arm arm64 ~ppc ~ppc64 x86 ~amd64-linux ~x64-macos"
+IUSE="cpu_flags_x86_sse2 debug doc icu inspector +npm +snapshot +ssl +system-ssl systemtap test"
+REQUIRED_USE="
+	inspector? ( icu ssl )
+	npm? ( ssl )
+	system-ssl? ( ssl )
+"
+
+RDEPEND="
+	>=dev-libs/libuv-1.34.0:=
+	>=net-dns/c-ares-1.15.0
+	>=net-libs/http-parser-2.9.3:=
+	>=net-libs/nghttp2-1.40.0
+	sys-libs/zlib
+	icu? ( >=dev-libs/icu-64.2:= )
+	system-ssl? ( >=dev-libs/openssl-1.1.1:0= )
+"
+BDEPEND="
+	${PYTHON_DEPS}
+	systemtap? ( dev-util/systemtap )
+	test? ( net-misc/curl )
+"
+DEPEND="
+	${RDEPEND}
+"
+PATCHES=(
+	"${FILESDIR}"/${PN}-10.3.0-global-npm-config.patch
+	"${FILESDIR}"/${PN}-99999999-llhttp.patch
+)
+RESTRICT="test"
+S="${WORKDIR}/node-v${PV}"
+
+pkg_pretend() {
+	(use x86 && ! use cpu_flags_x86_sse2) && \
+		die "Your CPU doesn't support the required SSE2 instruction."
+
+	( [[ ${MERGE_TYPE} != "binary" ]] && ! test-flag-CXX -std=c++11 ) && \
+		die "Your compiler doesn't support C++11. Use GCC 4.8, Clang 3.3 or newer."
+}
+
+src_prepare() {
+	tc-export CC CXX PKG_CONFIG
+	export V=1
+	export BUILDTYPE=Release
+
+	# fix compilation on Darwin
+	# https://code.google.com/p/gyp/issues/detail?id=260
+	sed -i -e "/append('-arch/d" tools/gyp/pylib/gyp/xcode_emulation.py || die
+
+	# less verbose install output (stating the same as portage, basically)
+	sed -i -e "/print/d" tools/install.py || die
+
+	# proper libdir, hat tip @ryanpcmcquen https://github.com/iojs/io.js/issues/504
+	local LIBDIR=$(get_libdir)
+	sed -i -e "s|lib/|${LIBDIR}/|g" tools/install.py || die
+	sed -i -e "s/'lib'/'${LIBDIR}'/" deps/npm/lib/npm.js || die
+
+	# Avoid writing a depfile, not useful
+	sed -i -e "/DEPFLAGS =/d" tools/gyp/pylib/gyp/generator/make.py || die
+
+	sed -i -e "/'-O3'/d" common.gypi node.gypi || die
+
+	# Avoid a test that I've only been able to reproduce from emerge. It doesnt
+	# seem sandbox related either (invoking it from a sandbox works fine).
+	# The issue is that no stdin handle is openened when asked for one.
+	# It doesn't really belong upstream , so it'll just be removed until someone
+	# with more gentoo-knowledge than me (jbergstroem) figures it out.
+	rm test/parallel/test-stdout-close-unref.js || die
+
+	# debug builds. change install path, remove optimisations and override buildtype
+	if use debug; then
+		sed -i -e "s|out/Release/|out/Debug/|g" tools/install.py || die
+		BUILDTYPE=Debug
+	fi
+
+	default
+}
+
+src_configure() {
+	xdg_environment_reset
+
+	local myconf=(
+		--shared-cares
+		--shared-http-parser
+		--shared-libuv
+		--shared-nghttp2
+		--shared-zlib
+	)
+	use debug && myconf+=( --debug )
+	use icu && myconf+=( --with-intl=system-icu ) || myconf+=( --with-intl=none )
+	use inspector || myconf+=( --without-inspector )
+	use npm || myconf+=( --without-npm )
+	use snapshot || myconf+=( --without-node-snapshot )
+	if use ssl; then
+		use system-ssl && myconf+=( --shared-openssl --openssl-use-def-ca-store )
+	else
+		myconf+=( --without-ssl )
+	fi
+
+	local myarch=""
+	case ${ABI} in
+		amd64) myarch="x64";;
+		arm) myarch="arm";;
+		arm64) myarch="arm64";;
+		ppc64) myarch="ppc64";;
+		x32) myarch="x32";;
+		x86) myarch="ia32";;
+		*) myarch="${ABI}";;
+	esac
+
+	GYP_DEFINES="linux_use_gold_flags=0
+		linux_use_bundled_binutils=0
+		linux_use_bundled_gold=0" \
+	"${EPYTHON}" configure.py \
+		--prefix="${EPREFIX}"/usr \
+		--dest-cpu=${myarch} \
+		$(use_with systemtap dtrace) \
+		"${myconf[@]}" || die
+}
+
+src_compile() {
+	emake -C out mksnapshot
+	pax-mark m "out/${BUILDTYPE}/mksnapshot"
+	emake -C out
+}
+
+src_install() {
+	local LIBDIR="${ED}/usr/$(get_libdir)"
+	default
+
+	pax-mark -m "${ED}"/usr/bin/node
+
+	# set up a symlink structure that node-gyp expects..
+	dodir /usr/include/node/deps/{v8,uv}
+	dosym . /usr/include/node/src
+	for var in deps/{uv,v8}/include; do
+		dosym ../.. /usr/include/node/${var}
+	done
+
+	if use doc; then
+		docinto html
+		dodoc -r "${S}"/doc/*
+	fi
+
+	if use npm; then
+		dodir /etc/npm
+
+		# Install bash completion for `npm`
+		# We need to temporarily replace default config path since
+		# npm otherwise tries to write outside of the sandbox
+		local npm_config="usr/$(get_libdir)/node_modules/npm/lib/config/core.js"
+		sed -i -e "s|'/etc'|'${ED}/etc'|g" "${ED}/${npm_config}" || die
+		local tmp_npm_completion_file="$(emktemp)"
+		"${ED}/usr/bin/npm" completion > "${tmp_npm_completion_file}"
+		newbashcomp "${tmp_npm_completion_file}" npm
+		sed -i -e "s|'${ED}/etc'|'/etc'|g" "${ED}/${npm_config}" || die
+
+		# Move man pages
+		doman "${LIBDIR}"/node_modules/npm/man/man{1,5,7}/*
+
+		# Clean up
+		rm "${LIBDIR}"/node_modules/npm/{.mailmap,.npmignore,Makefile} || die
+		rm -rf "${LIBDIR}"/node_modules/npm/{doc,html,man} || die
+
+		local find_exp="-or -name"
+		local find_name=()
+		for match in "AUTHORS*" "CHANGELOG*" "CONTRIBUT*" "README*" \
+			".travis.yml" ".eslint*" ".wercker.yml" ".npmignore" \
+			"*.md" "*.markdown" "*.bat" "*.cmd"; do
+			find_name+=( ${find_exp} "${match}" )
+		done
+
+		# Remove various development and/or inappropriate files and
+		# useless docs of dependend packages.
+		find "${LIBDIR}"/node_modules \
+			\( -type d -name examples \) -or \( -type f \( \
+				-iname "LICEN?E*" \
+				"${find_name[@]}" \
+			\) \) -exec rm -rf "{}" \;
+	fi
+
+	mv "${ED}"/usr/share/doc/node "${ED}"/usr/share/doc/${PF} || die
+}
+
+src_test() {
+	out/${BUILDTYPE}/cctest || die
+	"${PYTHON}" tools/test.py --mode=${BUILDTYPE,,} -J message parallel sequential || die
+}
+
+pkg_postinst() {
+	elog "The global npm config lives in /etc/npm. This deviates slightly"
+	elog "from upstream which otherwise would have it live in /usr/etc/."
+	elog ""
+	elog "Protip: When using node-gyp to install native modules, you can"
+	elog "avoid having to download extras by doing the following:"
+	elog "$ node-gyp --nodedir /usr/include/node <command>"
+}

diff --git a/net-libs/nodejs/nodejs-12.18.3.ebuild b/net-libs/nodejs/nodejs-12.18.3.ebuild
new file mode 100644
index 00000000000..6148cf5bb50
--- /dev/null
+++ b/net-libs/nodejs/nodejs-12.18.3.ebuild
@@ -0,0 +1,213 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python3_{6,7} )
+PYTHON_REQ_USE="threads(+)"
+inherit bash-completion-r1 eutils flag-o-matic pax-utils python-any-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine"
+HOMEPAGE="https://nodejs.org/"
+SRC_URI="
+	https://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz
+"
+
+LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x64-macos"
+IUSE="cpu_flags_x86_sse2 debug doc icu inspector +npm +snapshot +ssl +system-ssl systemtap test"
+REQUIRED_USE="
+	inspector? ( icu ssl )
+	npm? ( ssl )
+	system-ssl? ( ssl )
+"
+
+RDEPEND="
+	>=dev-libs/libuv-1.38.0:=
+	>=net-dns/c-ares-1.16.0
+	>=net-libs/http-parser-2.9.3:=
+	>=net-libs/nghttp2-1.40.0
+	sys-libs/zlib
+	icu? ( >=dev-libs/icu-64.2:= )
+	system-ssl? ( >=dev-libs/openssl-1.1.1:0= )
+"
+BDEPEND="
+	${PYTHON_DEPS}
+	systemtap? ( dev-util/systemtap )
+	test? ( net-misc/curl )
+"
+DEPEND="
+	${RDEPEND}
+"
+PATCHES=(
+	"${FILESDIR}"/${PN}-10.3.0-global-npm-config.patch
+	"${FILESDIR}"/${PN}-99999999-llhttp.patch
+)
+RESTRICT="test"
+S="${WORKDIR}/node-v${PV}"
+
+pkg_pretend() {
+	(use x86 && ! use cpu_flags_x86_sse2) && \
+		die "Your CPU doesn't support the required SSE2 instruction."
+
+	( [[ ${MERGE_TYPE} != "binary" ]] && ! test-flag-CXX -std=c++11 ) && \
+		die "Your compiler doesn't support C++11. Use GCC 4.8, Clang 3.3 or newer."
+}
+
+src_prepare() {
+	tc-export CC CXX PKG_CONFIG
+	export V=1
+	export BUILDTYPE=Release
+
+	# fix compilation on Darwin
+	# https://code.google.com/p/gyp/issues/detail?id=260
+	sed -i -e "/append('-arch/d" tools/gyp/pylib/gyp/xcode_emulation.py || die
+
+	# less verbose install output (stating the same as portage, basically)
+	sed -i -e "/print/d" tools/install.py || die
+
+	# proper libdir, hat tip @ryanpcmcquen https://github.com/iojs/io.js/issues/504
+	local LIBDIR=$(get_libdir)
+	sed -i -e "s|lib/|${LIBDIR}/|g" tools/install.py || die
+	sed -i -e "s/'lib'/'${LIBDIR}'/" deps/npm/lib/npm.js || die
+
+	# Avoid writing a depfile, not useful
+	sed -i -e "/DEPFLAGS =/d" tools/gyp/pylib/gyp/generator/make.py || die
+
+	sed -i -e "/'-O3'/d" common.gypi node.gypi || die
+
+	# Avoid a test that I've only been able to reproduce from emerge. It doesnt
+	# seem sandbox related either (invoking it from a sandbox works fine).
+	# The issue is that no stdin handle is openened when asked for one.
+	# It doesn't really belong upstream , so it'll just be removed until someone
+	# with more gentoo-knowledge than me (jbergstroem) figures it out.
+	rm test/parallel/test-stdout-close-unref.js || die
+
+	# debug builds. change install path, remove optimisations and override buildtype
+	if use debug; then
+		sed -i -e "s|out/Release/|out/Debug/|g" tools/install.py || die
+		BUILDTYPE=Debug
+	fi
+
+	default
+}
+
+src_configure() {
+	xdg_environment_reset
+
+	local myconf=(
+		--shared-cares
+		--shared-http-parser
+		--shared-libuv
+		--shared-nghttp2
+		--shared-zlib
+	)
+	use debug && myconf+=( --debug )
+	use icu && myconf+=( --with-intl=system-icu ) || myconf+=( --with-intl=none )
+	use inspector || myconf+=( --without-inspector )
+	use npm || myconf+=( --without-npm )
+	use snapshot || myconf+=( --without-node-snapshot )
+	if use ssl; then
+		use system-ssl && myconf+=( --shared-openssl --openssl-use-def-ca-store )
+	else
+		myconf+=( --without-ssl )
+	fi
+
+	local myarch=""
+	case ${ABI} in
+		amd64) myarch="x64";;
+		arm) myarch="arm";;
+		arm64) myarch="arm64";;
+		ppc64) myarch="ppc64";;
+		x32) myarch="x32";;
+		x86) myarch="ia32";;
+		*) myarch="${ABI}";;
+	esac
+
+	GYP_DEFINES="linux_use_gold_flags=0
+		linux_use_bundled_binutils=0
+		linux_use_bundled_gold=0" \
+	"${EPYTHON}" configure.py \
+		--prefix="${EPREFIX}"/usr \
+		--dest-cpu=${myarch} \
+		$(use_with systemtap dtrace) \
+		"${myconf[@]}" || die
+}
+
+src_compile() {
+	emake -C out mksnapshot
+	pax-mark m "out/${BUILDTYPE}/mksnapshot"
+	emake -C out
+}
+
+src_install() {
+	local LIBDIR="${ED}/usr/$(get_libdir)"
+	default
+
+	pax-mark -m "${ED}"/usr/bin/node
+
+	# set up a symlink structure that node-gyp expects..
+	dodir /usr/include/node/deps/{v8,uv}
+	dosym . /usr/include/node/src
+	for var in deps/{uv,v8}/include; do
+		dosym ../.. /usr/include/node/${var}
+	done
+
+	if use doc; then
+		docinto html
+		dodoc -r "${S}"/doc/*
+	fi
+
+	if use npm; then
+		dodir /etc/npm
+
+		# Install bash completion for `npm`
+		# We need to temporarily replace default config path since
+		# npm otherwise tries to write outside of the sandbox
+		local npm_config="usr/$(get_libdir)/node_modules/npm/lib/config/core.js"
+		sed -i -e "s|'/etc'|'${ED}/etc'|g" "${ED}/${npm_config}" || die
+		local tmp_npm_completion_file="$(emktemp)"
+		"${ED}/usr/bin/npm" completion > "${tmp_npm_completion_file}"
+		newbashcomp "${tmp_npm_completion_file}" npm
+		sed -i -e "s|'${ED}/etc'|'/etc'|g" "${ED}/${npm_config}" || die
+
+		# Move man pages
+		doman "${LIBDIR}"/node_modules/npm/man/man{1,5,7}/*
+
+		# Clean up
+		rm "${LIBDIR}"/node_modules/npm/{.mailmap,.npmignore,Makefile} || die
+		rm -rf "${LIBDIR}"/node_modules/npm/{doc,html,man} || die
+
+		local find_exp="-or -name"
+		local find_name=()
+		for match in "AUTHORS*" "CHANGELOG*" "CONTRIBUT*" "README*" \
+			".travis.yml" ".eslint*" ".wercker.yml" ".npmignore" \
+			"*.md" "*.markdown" "*.bat" "*.cmd"; do
+			find_name+=( ${find_exp} "${match}" )
+		done
+
+		# Remove various development and/or inappropriate files and
+		# useless docs of dependend packages.
+		find "${LIBDIR}"/node_modules \
+			\( -type d -name examples \) -or \( -type f \( \
+				-iname "LICEN?E*" \
+				"${find_name[@]}" \
+			\) \) -exec rm -rf "{}" \;
+	fi
+
+	mv "${ED}"/usr/share/doc/node "${ED}"/usr/share/doc/${PF} || die
+}
+
+src_test() {
+	out/${BUILDTYPE}/cctest || die
+	"${PYTHON}" tools/test.py --mode=${BUILDTYPE,,} -J message parallel sequential || die
+}
+
+pkg_postinst() {
+	elog "The global npm config lives in /etc/npm. This deviates slightly"
+	elog "from upstream which otherwise would have it live in /usr/etc/."
+	elog ""
+	elog "Protip: When using node-gyp to install native modules, you can"
+	elog "avoid having to download extras by doing the following:"
+	elog "$ node-gyp --nodedir /usr/include/node <command>"
+}


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: net-libs/nodejs/files/, net-libs/nodejs/
@ 2020-11-09 15:06 Marek Szuba
  0 siblings, 0 replies; 36+ messages in thread
From: Marek Szuba @ 2020-11-09 15:06 UTC (permalink / raw
  To: gentoo-commits

commit:     1398b77a96625ee50dd430fb4d265b7f793322be
Author:     Marek Szuba <marecki <AT> gentoo <DOT> org>
AuthorDate: Mon Nov  9 13:52:36 2020 +0000
Commit:     Marek Szuba <marecki <AT> gentoo <DOT> org>
CommitDate: Mon Nov  9 15:05:39 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1398b77a

net-libs/nodejs: bump to 14.15.0

Includes subslotting, support for building against bundled ICU, a fix
for PPC64 crashes and python3_9 support.

Closes: https://bugs.gentoo.org/724978
Closes: https://bugs.gentoo.org/728110
Closes: https://bugs.gentoo.org/747100
Closes: https://bugs.gentoo.org/749852
Closes: https://github.com/gentoo/gentoo/pull/17809
Signed-off-by: Marek Szuba <marecki <AT> gentoo.org>

 net-libs/nodejs/Manifest                           |  2 +-
 .../files/nodejs-14.15.0-fix_ppc64_crashes.patch   | 33 +++++++++++
 net-libs/nodejs/metadata.xml                       |  1 +
 ...nodejs-14.14.0.ebuild => nodejs-14.15.0.ebuild} | 64 ++++++++++------------
 4 files changed, 65 insertions(+), 35 deletions(-)

diff --git a/net-libs/nodejs/Manifest b/net-libs/nodejs/Manifest
index f2f49ce2d02..00154d0e2bf 100644
--- a/net-libs/nodejs/Manifest
+++ b/net-libs/nodejs/Manifest
@@ -4,6 +4,6 @@ DIST node-v14.11.0.tar.xz 33379456 BLAKE2B 99e2eba4ba2e54209836fa1e3b63e42caf854
 DIST node-v14.12.0.tar.xz 33390472 BLAKE2B 930b196ada16d21e2d2b43d030d936391e039cc985ee517b6b420277baa071ecef8c8cef7bd2f24b5e167465e9d4acc6b0da36ae4e7332fe179c47724e05ff50 SHA512 168141a3e3f20be98a0e800a8e8f70e1ff330ff087cc08c31d6ae185882615723166f445d6310a23e1bb5a023e671a74834b40e1b83f2b789f65c787c18762e2
 DIST node-v14.13.0.tar.xz 33418156 BLAKE2B 8a986a467b77485fbe2bc9d580c48ae72536d6d62c826319b787d2937c86358787ae452676b69df608adb9d9754f4cd068b729614989a4f2a93973380c4929d1 SHA512 7a75bff501520afbe15d6ceea4b4507717111c87cf03de47047af790df2e2e9d71da9501c7256d5dd9f58616c3d04db2e74401dfbcbd72abbd0c81778a588893
 DIST node-v14.13.1.tar.xz 33428732 BLAKE2B f3a7349ea4a13b47a66272b74fb7273d6071c35d7d047b147da13d5fd97a912a0770047ceed4d298f0999b9cab57aee81aaac44a6ffec59df1ee1d2ec9156e7b SHA512 a0ad1e6e4be887d56388d0cbe30d72e87fefdaa71be8fe8c96e3dce470821730741b7beff23c67277ab02991aa9813e9fb708b6b708a2cf108c5442a59d527a0
-DIST node-v14.14.0.tar.xz 33439920 BLAKE2B 6cea7fdb00cc0857d5dc46dbd83dc6387ef8a7561afd8616dfc37bf28981faa9dffd664b6e38035e13ec9c7720ec13c2499e948d412e8446e7dc39736852f045 SHA512 d5af1fa219297a8779e031bd94755212f002b6655539929f8fa8cd69a9c1c4b824fa0ccfa961b52023b92d2975e4fd2ec44c0fb238efac0b1a6e2bdfd2b7cff7
+DIST node-v14.15.0.tar.xz 33440584 BLAKE2B dda9fb44f163b2268db126dfcda34e80064eba24921e4f8e6c14c212deb9170c79f31f7b2be272c8fa7ca992d14540df490c6cad078833514bd348825934ad95 SHA512 2a0cd1b9d95e0ac228a90aca82cb04b9f4fc4d08ab86f0286eed7a519ca6e756081b37375ad5d14d7f0e09affdd27bad658c3e364237eb3c212fe5b5e27af96e
 DIST node-v14.2.0.tar.xz 32884616 BLAKE2B 7bcb07cb7623c5e08c20267c320cdf23ad110f124c5ad1f2447ef8b76ab8dc44ed50dab7c5651424d9d3a36f7eeecdf3292b07c02cb2e22c3fbe4ed633c4b842 SHA512 47e5ec0b7a207082d43419a7e0a6ea9242ec43b4d7c2217eb66d0b45e2f4d5cb561b3f6fe35fdc41a8be95c182dc122ba262f696ebd12833596d71b372ec85d2
 DIST node-v14.4.0.tar.xz 33005312 BLAKE2B bc1462d897e24a6b842e6f8146971866c73b54ff5383d76cfc5728a73e2c135d28ced068744174b3fb5af4a6ec05ef1f115ea51c2d65517cbe18e1d733460d04 SHA512 f1a7c788a8a149b942ec2b90a4314baaa5355c381029eda45002728ce7209925c016323b0ec1e0dfe2359fddb24f494df125805d0d266b738a333dcddb3f59c3

diff --git a/net-libs/nodejs/files/nodejs-14.15.0-fix_ppc64_crashes.patch b/net-libs/nodejs/files/nodejs-14.15.0-fix_ppc64_crashes.patch
new file mode 100644
index 00000000000..c9c01843cd6
--- /dev/null
+++ b/net-libs/nodejs/files/nodejs-14.15.0-fix_ppc64_crashes.patch
@@ -0,0 +1,33 @@
+--- a/deps/v8/src/compiler/backend/instruction-selector.cc
++++ b/deps/v8/src/compiler/backend/instruction-selector.cc
+@@ -2808,7 +2808,7 @@
+   switch (call_descriptor->kind()) {
+     case CallDescriptor::kCallAddress: {
+       int misc_field = static_cast<int>(call_descriptor->ParameterCount());
+-#if defined(_AIX)
++#if ABI_USES_FUNCTION_DESCRIPTORS
+       // Highest misc_field bit is used on AIX to indicate if a CFunction call
+       // has function descriptor or not.
+       if (!call_descriptor->NoFunctionDescriptor()) {
+--- a/deps/v8/src/compiler/backend/ppc/code-generator-ppc.cc
++++ b/deps/v8/src/compiler/backend/ppc/code-generator-ppc.cc
+@@ -1039,7 +1039,7 @@
+           linkage()->GetIncomingDescriptor()->IsWasmCapiFunction();
+       int offset = (FLAG_enable_embedded_constant_pool ? 20 : 23) * kInstrSize;
+ 
+-#if defined(_AIX)
++#if ABI_USES_FUNCTION_DESCRIPTORS
+       // AIX/PPC64BE Linux uses a function descriptor
+       int kNumParametersMask = kHasFunctionDescriptorBitMask - 1;
+       num_parameters = kNumParametersMask & misc_field;
+--- a/deps/v8/src/execution/simulator.h
++++ b/deps/v8/src/execution/simulator.h
+@@ -128,7 +128,7 @@
+ #if defined(V8_TARGET_OS_WIN) && !defined(V8_OS_WIN)
+     FATAL("Generated code execution not possible during cross-compilation.");
+ #endif  // defined(V8_TARGET_OS_WIN) && !defined(V8_OS_WIN)
+-#if V8_OS_AIX
++#if ABI_USES_FUNCTION_DESCRIPTORS
+     // AIX ABI requires function descriptors (FD).  Artificially create a pseudo
+     // FD to ensure correct dispatch to generated code.  The 'volatile'
+     // declaration is required to avoid the compiler from not observing the

diff --git a/net-libs/nodejs/metadata.xml b/net-libs/nodejs/metadata.xml
index 0c48f58c533..c23cc81d8e4 100644
--- a/net-libs/nodejs/metadata.xml
+++ b/net-libs/nodejs/metadata.xml
@@ -11,6 +11,7 @@
 		<flag name="npm">Enable NPM package manager</flag>
 		<flag name="pax_kernel">Enable building under a PaX enabled kernel</flag>
 		<flag name="snapshot">Enable snapshot creation for faster startup</flag>
+		<flag name="system-icu">Use system <pkg>dev-libs/icu</pkg> instead of the bundled version</flag>
 		<flag name="system-ssl">Use system OpenSSL instead of the bundled one</flag>
 		<flag name="systemtap">Enable SystemTAP/DTrace tracing</flag>
 	</use>

diff --git a/net-libs/nodejs/nodejs-14.14.0.ebuild b/net-libs/nodejs/nodejs-14.15.0.ebuild
similarity index 83%
rename from net-libs/nodejs/nodejs-14.14.0.ebuild
rename to net-libs/nodejs/nodejs-14.15.0.ebuild
index f6e7a717189..6c9a27f20e6 100644
--- a/net-libs/nodejs/nodejs-14.14.0.ebuild
+++ b/net-libs/nodejs/nodejs-14.15.0.ebuild
@@ -2,57 +2,52 @@
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=7
-PYTHON_COMPAT=( python3_{6,7,8} )
+
+PYTHON_COMPAT=( python3_{7..9} )
 PYTHON_REQ_USE="threads(+)"
-inherit bash-completion-r1 flag-o-matic pax-utils python-any-r1 toolchain-funcs xdg-utils
+
+inherit bash-completion-r1 flag-o-matic python-any-r1 toolchain-funcs xdg-utils
 
 DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine"
 HOMEPAGE="https://nodejs.org/"
-SRC_URI="
-	https://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz
-"
+SRC_URI="https://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz"
 
 LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
-SLOT="0"
+SLOT="0/$(ver_cut 1)"
 KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x64-macos"
-IUSE="cpu_flags_x86_sse2 debug doc +icu inspector +npm pax_kernel +snapshot +ssl +system-ssl systemtap test"
-REQUIRED_USE="
-	inspector? ( icu ssl )
+
+IUSE="cpu_flags_x86_sse2 debug doc +icu inspector +npm +snapshot +ssl system-icu +system-ssl systemtap test"
+REQUIRED_USE="inspector? ( icu ssl )
 	npm? ( ssl )
-	system-ssl? ( ssl )
-"
+	system-icu? ( icu )
+	system-ssl? ( ssl )"
 
-RDEPEND="
-	>=app-arch/brotli-1.0.9
+# FIXME: test-fs-mkdir fails with "no such file or directory". Investigate.
+RESTRICT="test"
+
+RDEPEND=">=app-arch/brotli-1.0.9
 	>=dev-libs/libuv-1.40.0:=
 	>=net-dns/c-ares-1.16.1
 	>=net-libs/nghttp2-1.41.0
 	sys-libs/zlib
-	icu? ( >=dev-libs/icu-67:= )
-	system-ssl? ( >=dev-libs/openssl-1.1.1:0= )
-"
-BDEPEND="
-	${PYTHON_DEPS}
+	system-icu? ( >=dev-libs/icu-67:= )
+	system-ssl? ( >=dev-libs/openssl-1.1.1:0= )"
+BDEPEND="${PYTHON_DEPS}
 	sys-apps/coreutils
 	systemtap? ( dev-util/systemtap )
-	test? ( net-misc/curl )
-	pax_kernel? ( sys-apps/elfix )
-"
-DEPEND="
-	${RDEPEND}
-"
+	test? ( net-misc/curl )"
+DEPEND="${RDEPEND}"
+
 PATCHES=(
 	"${FILESDIR}"/${PN}-10.3.0-global-npm-config.patch
+	"${FILESDIR}"/${PN}-14.15.0-fix_ppc64_crashes.patch
 )
-RESTRICT="test"
+
 S="${WORKDIR}/node-v${PV}"
 
 pkg_pretend() {
 	(use x86 && ! use cpu_flags_x86_sse2) && \
 		die "Your CPU doesn't support the required SSE2 instruction."
-
-	( [[ ${MERGE_TYPE} != "binary" ]] && ! test-flag-CXX -std=c++11 ) && \
-		die "Your compiler doesn't support C++11. Use GCC 4.8, Clang 3.3 or newer."
 }
 
 src_prepare() {
@@ -90,9 +85,6 @@ src_prepare() {
 		BUILDTYPE=Debug
 	fi
 
-	# We need to disable mprotect on two files when it builds Bug 694100.
-	use pax_kernel && PATCHES+=( "${FILESDIR}"/${PN}-13.8.0-paxmarking.patch )
-
 	default
 }
 
@@ -107,7 +99,13 @@ src_configure() {
 		--shared-zlib
 	)
 	use debug && myconf+=( --debug )
-	use icu && myconf+=( --with-intl=system-icu ) || myconf+=( --with-intl=none )
+	if use system-icu; then
+		myconf+=( --with-intl=system-icu )
+	elif use icu; then
+		myconf+=( --with-intl=full-icu )
+	else
+		myconf+=( --with-intl=none )
+	fi
 	use inspector || myconf+=( --without-inspector )
 	use npm || myconf+=( --without-npm )
 	use snapshot || myconf+=( --without-node-snapshot )
@@ -146,8 +144,6 @@ src_install() {
 	local LIBDIR="${ED}/usr/$(get_libdir)"
 	default
 
-	pax-mark -m "${ED}"/usr/bin/node
-
 	# set up a symlink structure that node-gyp expects..
 	dodir /usr/include/node/deps/{v8,uv}
 	dosym . /usr/include/node/src


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: net-libs/nodejs/files/, net-libs/nodejs/
@ 2020-11-13 17:25 Marek Szuba
  0 siblings, 0 replies; 36+ messages in thread
From: Marek Szuba @ 2020-11-13 17:25 UTC (permalink / raw
  To: gentoo-commits

commit:     19add7ba6500e6c60c8699b6bdda397744dfa73b
Author:     Marek Szuba <marecki <AT> gentoo <DOT> org>
AuthorDate: Fri Nov 13 14:51:49 2020 +0000
Commit:     Marek Szuba <marecki <AT> gentoo <DOT> org>
CommitDate: Fri Nov 13 17:25:03 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=19add7ba

net-libs/nodejs: drop PaX support altogether

Signed-off-by: Marek Szuba <marecki <AT> gentoo.org>

 .../nodejs/files/nodejs-13.2.0-paxmarking.patch    |  71 -------------
 .../nodejs/files/nodejs-13.8.0-paxmarking.patch    | 111 ---------------------
 net-libs/nodejs/metadata.xml                       |   1 -
 net-libs/nodejs/nodejs-12.18.4-r1.ebuild           |   5 +-
 net-libs/nodejs/nodejs-14.2.0.ebuild               |  10 +-
 net-libs/nodejs/nodejs-99999999.ebuild             |  10 +-
 6 files changed, 5 insertions(+), 203 deletions(-)

diff --git a/net-libs/nodejs/files/nodejs-13.2.0-paxmarking.patch b/net-libs/nodejs/files/nodejs-13.2.0-paxmarking.patch
deleted file mode 100644
index 143e4166272..00000000000
--- a/net-libs/nodejs/files/nodejs-13.2.0-paxmarking.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-    Bug: 694100
-    Add actions for pax marking mkcodecache and node_mksnapshot
-    to disable mprotect for pax enable kernel.
-    Reported-by: Attila Tóth <atoth@atoth.sote.hu>
-    Co-developed-by: Attila Tóth <atoth@atoth.sote.hu>
-    Signed-off-by: Magnus Granberg <zorry@gentoo.org>
-    
---- a/node.gyp	2019-10-23 11:52:41.000000000 +0200
-+++ a/node.gyp	2019-11-12 20:58:43.957881862 +0100
-@@ -233,7 +233,9 @@
-       'deps/acorn-plugins/acorn-static-class-features/index.js',
-     ],
-     'node_mksnapshot_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)node_mksnapshot<(EXECUTABLE_SUFFIX)',
-+    'node_mksnapshot_u_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)node_mksnapshot_u<(EXECUTABLE_SUFFIX)',
-     'mkcodecache_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)mkcodecache<(EXECUTABLE_SUFFIX)',
-+    'mkcodecache_u_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)mkcodecache_u<(EXECUTABLE_SUFFIX)',
-     'conditions': [
-       [ 'node_shared=="true"', {
-         'node_target_type%': 'shared_library',
-@@ -436,10 +438,24 @@
-           ],
-           'actions': [
-             {
-+              'action_name': 'run_pax_mkcodecache',
-+              'inputs': [
-+                '<(mkcodecache_exec)',
-+              ],
-+              'outputs': [
-+                '<(mkcodecache_u_exec)',
-+              ],
-+              'action': [
-+                'bash',
-+                '-c',
-+                'mv <(mkcodecache_exec) <(mkcodecache_u_exec) && paxmark.sh m <(mkcodecache_u_exec)',
-+              ],
-+            },
-+            {
-               'action_name': 'run_mkcodecache',
-               'process_outputs_as_sources': 1,
-               'inputs': [
--                '<(mkcodecache_exec)',
-+                '<(mkcodecache_u_exec)',
-               ],
-               'outputs': [
-                 '<(SHARED_INTERMEDIATE_DIR)/node_code_cache.cc',
-@@ -461,10 +477,24 @@
-           ],
-           'actions': [
-             {
-+              'action_name': 'run_pax_mksnapshot',
-+              'inputs': [
-+                '<(node_mksnapshot_exec)',
-+              ],
-+              'outputs': [
-+                '<(node_mksnapshot_u_exec)',
-+              ],
-+              'action': [
-+                'bash',
-+                '-c',
-+                'mv <(node_mksnapshot_exec) <(node_mksnapshot_u_exec) && paxmark.sh m <(node_mksnapshot_u_exec)',
-+              ],
-+            },
-+            {
-               'action_name': 'node_mksnapshot',
-               'process_outputs_as_sources': 1,
-               'inputs': [
--                '<(node_mksnapshot_exec)',
-+                '<(node_mksnapshot_u_exec)',
-               ],
-               'outputs': [
-                 '<(SHARED_INTERMEDIATE_DIR)/node_snapshot.cc',

diff --git a/net-libs/nodejs/files/nodejs-13.8.0-paxmarking.patch b/net-libs/nodejs/files/nodejs-13.8.0-paxmarking.patch
deleted file mode 100644
index c29825df3cf..00000000000
--- a/net-libs/nodejs/files/nodejs-13.8.0-paxmarking.patch
+++ /dev/null
@@ -1,111 +0,0 @@
-    Bug: 694100
-    Add actions for pax marking mkcodecache, node_mksnapshot and mksnapshot
-    to disable mprotect for pax enable kernel.
-    Reported-by: Attila Tóth <atoth@atoth.sote.hu>
-    Co-developed-by: Attila Tóth <atoth@atoth.sote.hu>
-    Signed-off-by: Magnus Granberg <zorry@gentoo.org>
-    
---- a/node.gyp	2019-10-23 11:52:41.000000000 +0200
-+++ b/node.gyp	2019-11-12 20:58:43.957881862 +0100
-@@ -233,7 +233,9 @@
-       'deps/acorn-plugins/acorn-static-class-features/index.js',
-     ],
-     'node_mksnapshot_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)node_mksnapshot<(EXECUTABLE_SUFFIX)',
-+    'node_mksnapshot_u_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)node_mksnapshot_u<(EXECUTABLE_SUFFIX)',
-     'mkcodecache_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)mkcodecache<(EXECUTABLE_SUFFIX)',
-+    'mkcodecache_u_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)mkcodecache_u<(EXECUTABLE_SUFFIX)',
-     'conditions': [
-       [ 'node_shared=="true"', {
-         'node_target_type%': 'shared_library',
-@@ -436,10 +438,24 @@
-           ],
-           'actions': [
-             {
-+              'action_name': 'run_pax_mkcodecache',
-+              'inputs': [
-+                '<(mkcodecache_exec)',
-+              ],
-+              'outputs': [
-+                '<(mkcodecache_u_exec)',
-+              ],
-+              'action': [
-+                'bash',
-+                '-c',
-+                'mv <(mkcodecache_exec) <(mkcodecache_u_exec) && paxmark.sh m <(mkcodecache_u_exec)',
-+              ],
-+            },
-+            {
-               'action_name': 'run_mkcodecache',
-               'process_outputs_as_sources': 1,
-               'inputs': [
--                '<(mkcodecache_exec)',
-+                '<(mkcodecache_u_exec)',
-               ],
-               'outputs': [
-                 '<(SHARED_INTERMEDIATE_DIR)/node_code_cache.cc',
-@@ -461,10 +477,24 @@
-           ],
-           'actions': [
-             {
-+              'action_name': 'run_pax_mksnapshot',
-+              'inputs': [
-+                '<(node_mksnapshot_exec)',
-+              ],
-+              'outputs': [
-+                '<(node_mksnapshot_u_exec)',
-+              ],
-+              'action': [
-+                'bash',
-+                '-c',
-+                'mv <(node_mksnapshot_exec) <(node_mksnapshot_u_exec) && paxmark.sh m <(node_mksnapshot_u_exec)',
-+              ],
-+            },
-+            {
-               'action_name': 'node_mksnapshot',
-               'process_outputs_as_sources': 1,
-               'inputs': [
--                '<(node_mksnapshot_exec)',
-+                '<(node_mksnapshot_u_exec)',
-               ],
-               'outputs': [
-                 '<(SHARED_INTERMEDIATE_DIR)/node_snapshot.cc',
---- a/tools/v8_gypfiles/v8.gyp	2019-12-03 16:10:36.000000000 +0100
-+++ b/tools/v8_gypfiles/v8.gyp	2019-12-17 18:37:33.695839254 +0100
-@@ -9,6 +9,7 @@
-     'v8_vector_stores%': 0,
-     'v8_embed_script%': "",
-     'mksnapshot_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)mksnapshot<(EXECUTABLE_SUFFIX)',
-+    'mksnapshot_u_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)mksnapshot_u<(EXECUTABLE_SUFFIX)',
-     'v8_os_page_size%': 0,
-     'generate_bytecode_output_root': '<(SHARED_INTERMEDIATE_DIR)/generate-bytecode-output-root',
-     'generate_bytecode_builtins_list_output': '<(generate_bytecode_output_root)/builtins-generated/bytecodes-builtins-list.h',
-@@ -427,6 +425,20 @@
-       },
-       'actions': [
-         {
-+          'action_name': 'run_pax_mksnapshot',
-+          'inputs': [
-+            '<(mksnapshot_exec)',
-+          ],
-+          'outputs': [
-+            '<(mksnapshot_u_exec)',
-+          ],
-+          'action': [
-+            'bash',
-+            '-c',
-+            'mv <(mksnapshot_exec) <(mksnapshot_u_exec) && paxmark.sh m <(mksnapshot_u_exec)',
-+          ],
-+        },
-+        {
-           'action_name': 'run_mksnapshot',
-           'message': 'generating: >@(_outputs)',
-           'variables': {
-@@ -442,7 +454,7 @@
-             ],
-           },
-           'inputs': [
--            '<(mksnapshot_exec)',
-+            '<(mksnapshot_u_exec)',
-           ],
-           'outputs': ["<(INTERMEDIATE_DIR)/snapshot.cc"],
-           'process_outputs_as_sources': 1,

diff --git a/net-libs/nodejs/metadata.xml b/net-libs/nodejs/metadata.xml
index ff595099c9d..1f2cfaf97be 100644
--- a/net-libs/nodejs/metadata.xml
+++ b/net-libs/nodejs/metadata.xml
@@ -13,7 +13,6 @@
 	<use>
 		<flag name="inspector">Enable V8 inspector</flag>
 		<flag name="npm">Enable NPM package manager</flag>
-		<flag name="pax_kernel">Enable building under a PaX enabled kernel</flag>
 		<flag name="snapshot">Enable snapshot creation for faster startup</flag>
 		<flag name="system-icu">Use system <pkg>dev-libs/icu</pkg> instead of the bundled version</flag>
 		<flag name="system-ssl">Use system OpenSSL instead of the bundled one</flag>

diff --git a/net-libs/nodejs/nodejs-12.18.4-r1.ebuild b/net-libs/nodejs/nodejs-12.18.4-r1.ebuild
index c606807087a..bbdc7bd8dd9 100644
--- a/net-libs/nodejs/nodejs-12.18.4-r1.ebuild
+++ b/net-libs/nodejs/nodejs-12.18.4-r1.ebuild
@@ -4,7 +4,7 @@
 EAPI=7
 PYTHON_COMPAT=( python3_{6,7} )
 PYTHON_REQ_USE="threads(+)"
-inherit bash-completion-r1 flag-o-matic pax-utils python-any-r1 toolchain-funcs xdg-utils
+inherit bash-completion-r1 flag-o-matic python-any-r1 toolchain-funcs xdg-utils
 
 DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine"
 HOMEPAGE="https://nodejs.org/"
@@ -139,7 +139,6 @@ src_configure() {
 
 src_compile() {
 	emake -C out mksnapshot
-	pax-mark m "out/${BUILDTYPE}/mksnapshot"
 	emake -C out
 }
 
@@ -147,8 +146,6 @@ src_install() {
 	local LIBDIR="${ED}/usr/$(get_libdir)"
 	default
 
-	pax-mark -m "${ED}"/usr/bin/node
-
 	# set up a symlink structure that node-gyp expects..
 	dodir /usr/include/node/deps/{v8,uv}
 	dosym . /usr/include/node/src

diff --git a/net-libs/nodejs/nodejs-14.2.0.ebuild b/net-libs/nodejs/nodejs-14.2.0.ebuild
index 47e27f90889..4b3509f8db3 100644
--- a/net-libs/nodejs/nodejs-14.2.0.ebuild
+++ b/net-libs/nodejs/nodejs-14.2.0.ebuild
@@ -4,7 +4,7 @@
 EAPI=7
 PYTHON_COMPAT=( python3_{6,7,8} )
 PYTHON_REQ_USE="threads(+)"
-inherit bash-completion-r1 flag-o-matic pax-utils python-any-r1 toolchain-funcs xdg-utils
+inherit bash-completion-r1 flag-o-matic python-any-r1 toolchain-funcs xdg-utils
 
 DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine"
 HOMEPAGE="https://nodejs.org/"
@@ -15,7 +15,7 @@ SRC_URI="
 LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
 SLOT="0"
 KEYWORDS="ppc"
-IUSE="cpu_flags_x86_sse2 debug doc icu inspector +npm pax_kernel +snapshot +ssl +system-ssl systemtap test"
+IUSE="cpu_flags_x86_sse2 debug doc icu inspector +npm +snapshot +ssl +system-ssl systemtap test"
 REQUIRED_USE="
 	inspector? ( icu ssl )
 	npm? ( ssl )
@@ -35,7 +35,6 @@ BDEPEND="
 	sys-apps/coreutils
 	systemtap? ( dev-util/systemtap )
 	test? ( net-misc/curl )
-	pax_kernel? ( sys-apps/elfix )
 "
 DEPEND="
 	${RDEPEND}
@@ -89,9 +88,6 @@ src_prepare() {
 		BUILDTYPE=Debug
 	fi
 
-	# We need to disable mprotect on two files when it builds Bug 694100.
-	use pax_kernel && PATCHES+=( "${FILESDIR}"/${PN}-13.8.0-paxmarking.patch )
-
 	default
 }
 
@@ -141,8 +137,6 @@ src_install() {
 	local LIBDIR="${ED}/usr/$(get_libdir)"
 	default
 
-	pax-mark -m "${ED}"/usr/bin/node
-
 	# set up a symlink structure that node-gyp expects..
 	dodir /usr/include/node/deps/{v8,uv}
 	dosym . /usr/include/node/src

diff --git a/net-libs/nodejs/nodejs-99999999.ebuild b/net-libs/nodejs/nodejs-99999999.ebuild
index e7a2c7c7eb9..65d30862d4c 100644
--- a/net-libs/nodejs/nodejs-99999999.ebuild
+++ b/net-libs/nodejs/nodejs-99999999.ebuild
@@ -4,7 +4,7 @@
 EAPI=7
 PYTHON_COMPAT=( python3_{6,7,8} )
 PYTHON_REQ_USE="threads(+)"
-inherit bash-completion-r1 flag-o-matic git-r3 pax-utils python-any-r1 toolchain-funcs xdg-utils
+inherit bash-completion-r1 flag-o-matic git-r3 python-any-r1 toolchain-funcs xdg-utils
 
 DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine"
 HOMEPAGE="https://nodejs.org/"
@@ -13,7 +13,7 @@ EGIT_REPO_URI="https://github.com/nodejs/node"
 LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
 SLOT="0"
 KEYWORDS=""
-IUSE="cpu_flags_x86_sse2 debug doc +icu inspector +npm pax_kernel +snapshot +ssl +system-ssl systemtap test"
+IUSE="cpu_flags_x86_sse2 debug doc +icu inspector +npm +snapshot +ssl +system-ssl systemtap test"
 RESTRICT="!test? ( test )"
 REQUIRED_USE="
 	inspector? ( icu ssl )
@@ -35,7 +35,6 @@ BDEPEND="
 	sys-apps/coreutils
 	systemtap? ( dev-util/systemtap )
 	test? ( net-misc/curl )
-	pax_kernel? ( sys-apps/elfix )
 "
 DEPEND="
 	${RDEPEND}
@@ -84,9 +83,6 @@ src_prepare() {
 		BUILDTYPE=Debug
 	fi
 
-	# We need to disable mprotect on two files when it builds Bug 694100.
-	use pax_kernel && PATCHES+=( "${FILESDIR}"/${PN}-13.2.0-paxmarking.patch )
-
 	default
 }
 
@@ -140,8 +136,6 @@ src_install() {
 	local LIBDIR="${ED}/usr/$(get_libdir)"
 	default
 
-	pax-mark -m "${ED}"/usr/bin/node
-
 	# set up a symlink structure that node-gyp expects..
 	dodir /usr/include/node/deps/{v8,uv}
 	dosym . /usr/include/node/src


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: net-libs/nodejs/files/, net-libs/nodejs/
@ 2020-11-21 21:36 Marek Szuba
  0 siblings, 0 replies; 36+ messages in thread
From: Marek Szuba @ 2020-11-21 21:36 UTC (permalink / raw
  To: gentoo-commits

commit:     5d8c279936a29f2455ed9aa85ba735b77530cf7b
Author:     Marek Szuba <marecki <AT> gentoo <DOT> org>
AuthorDate: Sat Nov 21 21:32:24 2020 +0000
Commit:     Marek Szuba <marecki <AT> gentoo <DOT> org>
CommitDate: Sat Nov 21 21:36:23 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5d8c2799

net-libs/nodejs: bump to 15.2.0

No PaX support yet, will be added separately.

Signed-off-by: Marek Szuba <marecki <AT> gentoo.org>

 net-libs/nodejs/Manifest                           |   1 +
 .../files/nodejs-15.2.0-global-npm-config.patch    |  13 ++
 net-libs/nodejs/nodejs-15.2.1.ebuild               | 196 +++++++++++++++++++++
 3 files changed, 210 insertions(+)

diff --git a/net-libs/nodejs/Manifest b/net-libs/nodejs/Manifest
index b981c6dec8b..87cfe291987 100644
--- a/net-libs/nodejs/Manifest
+++ b/net-libs/nodejs/Manifest
@@ -1,3 +1,4 @@
 DIST node-v12.19.1.tar.xz 23829692 BLAKE2B 244ca8ef29e315ce027638d9d5c66469ac8cd69abec47d5bf6370b990da0d9d2a7af812963530e5187d273d3f20638be0d23ccb1c0409fbbd678677740939f4f SHA512 7c628ca214d3b17b34658aae32e335ce863d90853c92f1cd4119e9a82b7097ddf47d0d4cc7c9bbdbfdd4b403811aa6ee08e844078a947f31a3adc78f569b931a
 DIST node-v14.15.0.tar.xz 33440584 BLAKE2B dda9fb44f163b2268db126dfcda34e80064eba24921e4f8e6c14c212deb9170c79f31f7b2be272c8fa7ca992d14540df490c6cad078833514bd348825934ad95 SHA512 2a0cd1b9d95e0ac228a90aca82cb04b9f4fc4d08ab86f0286eed7a519ca6e756081b37375ad5d14d7f0e09affdd27bad658c3e364237eb3c212fe5b5e27af96e
 DIST node-v14.15.1.tar.xz 33437304 BLAKE2B f08251d2a76e4030433001fd7f062c71193de190036d1147ade0ea36350df0d65df9e1b749fbac77837dd090cbeda6c133ff88099691c932bc29e75b7bfa2acc SHA512 cbab757e370a09b73c29a9bcb310b4122e4424d6baeaeaf1b10919ed6b348bc6ddbfc0e0eaff99d8ebb4d3d74f0206f575e2656245151eda564dd2cd33ff823a
+DIST node-v15.2.1.tar.xz 33172472 BLAKE2B d63dbc138ec161253f996fb61c9f40db2eabb5a598804eca7f2446b654ae8a11164820d46ea3c2b41b6a891bb0a3f15fe67712988ed67c1344ab72e2e4749fac SHA512 b05663131d6bb458fe49cf610a7296cdd169b6e957df3e5117ad5553de9891ed4cb71c7d3dc0dbb7774153c884cf245f49faecfa308736086fe6f041f83c8a57

diff --git a/net-libs/nodejs/files/nodejs-15.2.0-global-npm-config.patch b/net-libs/nodejs/files/nodejs-15.2.0-global-npm-config.patch
new file mode 100644
index 00000000000..2b0705b1d71
--- /dev/null
+++ b/net-libs/nodejs/files/nodejs-15.2.0-global-npm-config.patch
@@ -0,0 +1,13 @@
+--- a/deps/npm/node_modules/@npmcli/config/lib/index.js
++++ b/deps/npm/node_modules/@npmcli/config/lib/index.js
+@@ -275,8 +275,9 @@
+     // default the globalconfig file to that location, instead of the default
+     // global prefix.  It's weird that `npm get globalconfig --prefix=/foo`
+     // returns `/foo/etc/npmrc`, but better to not change it at this point.
++    // gentoo deviates wrt global config; store in /etc/npm
+     settableGetter(data, 'globalconfig', () =>
+-      resolve(this[_get]('prefix'), 'etc/npmrc'))
++      resolve('/etc', 'npmrc'))
+   }
+ 
+   loadHome () {

diff --git a/net-libs/nodejs/nodejs-15.2.1.ebuild b/net-libs/nodejs/nodejs-15.2.1.ebuild
new file mode 100644
index 00000000000..a69a9626746
--- /dev/null
+++ b/net-libs/nodejs/nodejs-15.2.1.ebuild
@@ -0,0 +1,196 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{7..9} )
+PYTHON_REQ_USE="threads(+)"
+
+inherit bash-completion-r1 flag-o-matic python-any-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine"
+HOMEPAGE="https://nodejs.org/"
+SRC_URI="https://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz"
+
+LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
+SLOT="0/$(ver_cut 1)"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86 ~amd64-linux ~x64-macos"
+
+IUSE="cpu_flags_x86_sse2 debug doc +icu inspector +npm +snapshot +ssl system-icu +system-ssl systemtap test"
+REQUIRED_USE="inspector? ( icu ssl )
+	npm? ( ssl )
+	system-icu? ( icu )
+	system-ssl? ( ssl )"
+
+# FIXME: test-fs-mkdir fails with "no such file or directory". Investigate.
+RESTRICT="test"
+
+RDEPEND=">=app-arch/brotli-1.0.9
+	>=dev-libs/libuv-1.40.0:=
+	>=net-dns/c-ares-1.17.0
+	>=net-libs/nghttp2-1.41.0
+	sys-libs/zlib
+	system-icu? ( >=dev-libs/icu-67:= )
+	system-ssl? ( >=dev-libs/openssl-1.1.1:0= )"
+BDEPEND="${PYTHON_DEPS}
+	sys-apps/coreutils
+	systemtap? ( dev-util/systemtap )
+	test? ( net-misc/curl )"
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+	"${FILESDIR}"/${PN}-15.2.0-global-npm-config.patch
+)
+
+S="${WORKDIR}/node-v${PV}"
+
+pkg_pretend() {
+	(use x86 && ! use cpu_flags_x86_sse2) && \
+		die "Your CPU doesn't support the required SSE2 instruction."
+}
+
+src_prepare() {
+	tc-export AR CC CXX PKG_CONFIG
+	export V=1
+	export BUILDTYPE=Release
+
+	# fix compilation on Darwin
+	# https://code.google.com/p/gyp/issues/detail?id=260
+	sed -i -e "/append('-arch/d" tools/gyp/pylib/gyp/xcode_emulation.py || die
+
+	# less verbose install output (stating the same as portage, basically)
+	sed -i -e "/print/d" tools/install.py || die
+
+	# proper libdir, hat tip @ryanpcmcquen https://github.com/iojs/io.js/issues/504
+	local LIBDIR=$(get_libdir)
+	sed -i -e "s|lib/|${LIBDIR}/|g" tools/install.py || die
+	sed -i -e "s/'lib'/'${LIBDIR}'/" deps/npm/lib/npm.js || die
+
+	# Avoid writing a depfile, not useful
+	sed -i -e "/DEPFLAGS =/d" tools/gyp/pylib/gyp/generator/make.py || die
+
+	sed -i -e "/'-O3'/d" common.gypi node.gypi || die
+
+	# Avoid a test that I've only been able to reproduce from emerge. It doesnt
+	# seem sandbox related either (invoking it from a sandbox works fine).
+	# The issue is that no stdin handle is openened when asked for one.
+	# It doesn't really belong upstream , so it'll just be removed until someone
+	# with more gentoo-knowledge than me (jbergstroem) figures it out.
+	rm test/parallel/test-stdout-close-unref.js || die
+
+	# debug builds. change install path, remove optimisations and override buildtype
+	if use debug; then
+		sed -i -e "s|out/Release/|out/Debug/|g" tools/install.py || die
+		BUILDTYPE=Debug
+	fi
+
+	default
+}
+
+src_configure() {
+	xdg_environment_reset
+
+	local myconf=(
+		--shared-brotli
+		--shared-cares
+		--shared-libuv
+		--shared-nghttp2
+		--shared-zlib
+	)
+	use debug && myconf+=( --debug )
+	if use system-icu; then
+		myconf+=( --with-intl=system-icu )
+	elif use icu; then
+		myconf+=( --with-intl=full-icu )
+	else
+		myconf+=( --with-intl=none )
+	fi
+	use inspector || myconf+=( --without-inspector )
+	use npm || myconf+=( --without-npm )
+	use snapshot || myconf+=( --without-node-snapshot )
+	if use ssl; then
+		use system-ssl && myconf+=( --shared-openssl --openssl-use-def-ca-store )
+	else
+		myconf+=( --without-ssl )
+	fi
+
+	local myarch=""
+	case ${ABI} in
+		amd64) myarch="x64";;
+		arm) myarch="arm";;
+		arm64) myarch="arm64";;
+		ppc64) myarch="ppc64";;
+		x32) myarch="x32";;
+		x86) myarch="ia32";;
+		*) myarch="${ABI}";;
+	esac
+
+	GYP_DEFINES="linux_use_gold_flags=0
+		linux_use_bundled_binutils=0
+		linux_use_bundled_gold=0" \
+	"${EPYTHON}" configure.py \
+		--prefix="${EPREFIX}"/usr \
+		--dest-cpu=${myarch} \
+		$(use_with systemtap dtrace) \
+		"${myconf[@]}" || die
+}
+
+src_compile() {
+	emake -C out
+}
+
+src_install() {
+	local LIBDIR="${ED}/usr/$(get_libdir)"
+	default
+
+	# set up a symlink structure that node-gyp expects..
+	dodir /usr/include/node/deps/{v8,uv}
+	dosym . /usr/include/node/src
+	for var in deps/{uv,v8}/include; do
+		dosym ../.. /usr/include/node/${var}
+	done
+
+	if use doc; then
+		docinto html
+		dodoc -r "${S}"/doc/*
+	fi
+
+	if use npm; then
+		keepdir /etc/npm
+
+		# Install bash completion for `npm`
+		local tmp_npm_completion_file="$(TMPDIR="${T}" mktemp -t npm.XXXXXXXXXX)"
+		"${ED}/usr/bin/npm" completion > "${tmp_npm_completion_file}"
+		newbashcomp "${tmp_npm_completion_file}" npm
+
+		# Move man pages
+		doman "${LIBDIR}"/node_modules/npm/man/man{1,5,7}/*
+
+		# Clean up
+		rm "${LIBDIR}"/node_modules/npm/{.mailmap,.npmignore,Makefile} || die
+		rm -rf "${LIBDIR}"/node_modules/npm/{doc,html,man} || die
+
+		local find_exp="-or -name"
+		local find_name=()
+		for match in "AUTHORS*" "CHANGELOG*" "CONTRIBUT*" "README*" \
+			".travis.yml" ".eslint*" ".wercker.yml" ".npmignore" \
+			"*.md" "*.markdown" "*.bat" "*.cmd"; do
+			find_name+=( ${find_exp} "${match}" )
+		done
+
+		# Remove various development and/or inappropriate files and
+		# useless docs of dependend packages.
+		find "${LIBDIR}"/node_modules \
+			\( -type d -name examples \) -or \( -type f \( \
+				-iname "LICEN?E*" \
+				"${find_name[@]}" \
+			\) \) -exec rm -rf "{}" \;
+	fi
+
+	mv "${ED}"/usr/share/doc/node "${ED}"/usr/share/doc/${PF} || die
+}
+
+src_test() {
+	out/${BUILDTYPE}/cctest || die
+	"${EPYTHON}" tools/test.py --mode=${BUILDTYPE,,} -J message parallel sequential || die
+}


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: net-libs/nodejs/files/, net-libs/nodejs/
@ 2021-01-08 22:55 Marek Szuba
  0 siblings, 0 replies; 36+ messages in thread
From: Marek Szuba @ 2021-01-08 22:55 UTC (permalink / raw
  To: gentoo-commits

commit:     cd0cb8e673c0a2609174f456c3145e61ec408791
Author:     Marek Szuba <marecki <AT> gentoo <DOT> org>
AuthorDate: Fri Jan  8 22:53:40 2021 +0000
Commit:     Marek Szuba <marecki <AT> gentoo <DOT> org>
CommitDate: Fri Jan  8 22:53:40 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cd0cb8e6

net-libs/nodejs-12.20.1: fix mksnapshot segfaults on ppc64

Upstream regression?

Signed-off-by: Marek Szuba <marecki <AT> gentoo.org>

 .../files/nodejs-12.20.1-fix_ppc64_crashes.patch   | 44 ++++++++++++++++++++++
 net-libs/nodejs/nodejs-12.20.1.ebuild              |  1 +
 2 files changed, 45 insertions(+)

diff --git a/net-libs/nodejs/files/nodejs-12.20.1-fix_ppc64_crashes.patch b/net-libs/nodejs/files/nodejs-12.20.1-fix_ppc64_crashes.patch
new file mode 100644
index 00000000000..0982d3c81c2
--- /dev/null
+++ b/net-libs/nodejs/files/nodejs-12.20.1-fix_ppc64_crashes.patch
@@ -0,0 +1,44 @@
+Backport of https://github.com/nodejs/node/pull/33866 to nodejs-12
+
+--- a/deps/v8/src/compiler/backend/instruction-selector.cc
++++ b/deps/v8/src/compiler/backend/instruction-selector.cc
+@@ -2788,7 +2788,7 @@
+   switch (call_descriptor->kind()) {
+     case CallDescriptor::kCallAddress: {
+       int misc_field = static_cast<int>(call_descriptor->ParameterCount());
+-#if defined(_AIX)
++#if ABI_USES_FUNCTION_DESCRIPTORS
+       // Highest misc_field bit is used on AIX to indicate if a CFunction call
+       // has function descriptor or not.
+       misc_field |= call_descriptor->HasFunctionDescriptor()
+--- a/deps/v8/src/compiler/backend/ppc/code-generator-ppc.cc
++++ b/deps/v8/src/compiler/backend/ppc/code-generator-ppc.cc
+@@ -1026,7 +1026,7 @@
+       Label start_call;
+       bool isWasmCapiFunction =
+           linkage()->GetIncomingDescriptor()->IsWasmCapiFunction();
+-#if defined(_AIX)
++#if ABI_USES_FUNCTION_DESCRIPTORS
+       // AIX/PPC64BE Linux uses a function descriptor
+       int kNumParametersMask = kHasFunctionDescriptorBitMask - 1;
+       num_parameters = kNumParametersMask & misc_field;
+--- a/deps/v8/src/execution/simulator.h
++++ b/deps/v8/src/execution/simulator.h
+@@ -122,7 +122,7 @@
+ 
+   DISABLE_CFI_ICALL Return Call(Args... args) {
+     // When running without a simulator we call the entry directly.
+-#if V8_OS_AIX
++#if ABI_USES_FUNCTION_DESCRIPTORS
+     // AIX ABI requires function descriptors (FD).  Artificially create a pseudo
+     // FD to ensure correct dispatch to generated code.  The 'volatile'
+     // declaration is required to avoid the compiler from not observing the
+@@ -134,7 +134,7 @@
+     return fn(args...);
+ #else
+     return fn_ptr_(args...);
+-#endif  // V8_OS_AIX
++#endif  // ABI_USES_FUNCTION_DESCRIPTORS
+   }
+ #endif  // USE_SIMULATOR
+ 

diff --git a/net-libs/nodejs/nodejs-12.20.1.ebuild b/net-libs/nodejs/nodejs-12.20.1.ebuild
index 87b53e063d2..fc8227e01db 100644
--- a/net-libs/nodejs/nodejs-12.20.1.ebuild
+++ b/net-libs/nodejs/nodejs-12.20.1.ebuild
@@ -45,6 +45,7 @@ DEPEND="
 "
 PATCHES=(
 	"${FILESDIR}"/${PN}-10.3.0-global-npm-config.patch
+	"${FILESDIR}"/${PN}-12.20.1-fix_ppc64_crashes.patch
 	"${FILESDIR}"/${PN}-99999999-llhttp.patch
 )
 RESTRICT="test"


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: net-libs/nodejs/files/, net-libs/nodejs/
@ 2021-05-04 15:42 Marek Szuba
  0 siblings, 0 replies; 36+ messages in thread
From: Marek Szuba @ 2021-05-04 15:42 UTC (permalink / raw
  To: gentoo-commits

commit:     d2aae48cbb242fae42837df1fba82b3aaf70139a
Author:     Marek Szuba <marecki <AT> gentoo <DOT> org>
AuthorDate: Tue May  4 15:37:14 2021 +0000
Commit:     Marek Szuba <marecki <AT> gentoo <DOT> org>
CommitDate: Tue May  4 15:41:57 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d2aae48c

net-libs/nodejs: really link against system libuv

Turns out the bundled library "uvwasi" implicitly pulled in the bundled
libuv as a static library regardless of us having been passing
--shared-libuv to configure.py pretty much for ever. Fortunately,
patching the relevant lines out of the uvwasi gyp file seems to take
care of the problem.

Closes: https://bugs.gentoo.org/787251
Signed-off-by: Marek Szuba <marecki <AT> gentoo.org>

 .../nodejs/files/nodejs-12.22.1-uvwasi_shared_libuv.patch    | 12 ++++++++++++
 net-libs/nodejs/nodejs-12.22.1-r1.ebuild                     |  1 +
 net-libs/nodejs/nodejs-14.16.1-r1.ebuild                     |  1 +
 net-libs/nodejs/nodejs-16.0.0-r1.ebuild                      |  1 +
 4 files changed, 15 insertions(+)

diff --git a/net-libs/nodejs/files/nodejs-12.22.1-uvwasi_shared_libuv.patch b/net-libs/nodejs/files/nodejs-12.22.1-uvwasi_shared_libuv.patch
new file mode 100644
index 00000000000..eb56bb87d86
--- /dev/null
+++ b/net-libs/nodejs/files/nodejs-12.22.1-uvwasi_shared_libuv.patch
@@ -0,0 +1,12 @@
+--- a/deps/uvwasi/uvwasi.gyp
++++ b/deps/uvwasi/uvwasi.gyp
+@@ -18,9 +18,6 @@
+         'src/wasi_rights.c',
+         'src/wasi_serdes.c',
+       ],
+-      'dependencies': [
+-        '../uv/uv.gyp:libuv',
+-      ],
+       'direct_dependent_settings': {
+         'include_dirs': ['include']
+       },

diff --git a/net-libs/nodejs/nodejs-12.22.1-r1.ebuild b/net-libs/nodejs/nodejs-12.22.1-r1.ebuild
index 52bbbaf5862..f96dac1dcb1 100644
--- a/net-libs/nodejs/nodejs-12.22.1-r1.ebuild
+++ b/net-libs/nodejs/nodejs-12.22.1-r1.ebuild
@@ -47,6 +47,7 @@ DEPEND="
 PATCHES=(
 	"${FILESDIR}"/${PN}-10.3.0-global-npm-config.patch
 	"${FILESDIR}"/${PN}-12.20.1-fix_ppc64_crashes.patch
+	"${FILESDIR}"/${PN}-12.22.1-uvwasi_shared_libuv.patch
 	"${FILESDIR}"/${PN}-12.22.1-v8_icu69.patch
 	"${FILESDIR}"/${PN}-99999999-llhttp.patch
 )

diff --git a/net-libs/nodejs/nodejs-14.16.1-r1.ebuild b/net-libs/nodejs/nodejs-14.16.1-r1.ebuild
index 37454244851..c386c0e45b7 100644
--- a/net-libs/nodejs/nodejs-14.16.1-r1.ebuild
+++ b/net-libs/nodejs/nodejs-14.16.1-r1.ebuild
@@ -41,6 +41,7 @@ DEPEND="${RDEPEND}"
 
 PATCHES=(
 	"${FILESDIR}"/${PN}-10.3.0-global-npm-config.patch
+	"${FILESDIR}"/${PN}-12.22.1-uvwasi_shared_libuv.patch
 	"${FILESDIR}"/${PN}-14.15.0-fix_ppc64_crashes.patch
 	"${FILESDIR}"/${PN}-14.16.1-v8_icu69.patch
 )

diff --git a/net-libs/nodejs/nodejs-16.0.0-r1.ebuild b/net-libs/nodejs/nodejs-16.0.0-r1.ebuild
index b9358387895..95528f2021f 100644
--- a/net-libs/nodejs/nodejs-16.0.0-r1.ebuild
+++ b/net-libs/nodejs/nodejs-16.0.0-r1.ebuild
@@ -41,6 +41,7 @@ BDEPEND="${PYTHON_DEPS}
 DEPEND="${RDEPEND}"
 
 PATCHES=(
+	"${FILESDIR}"/${PN}-12.22.1-uvwasi_shared_libuv.patch
 	"${FILESDIR}"/${PN}-15.2.0-global-npm-config.patch
 	"${FILESDIR}"/${PN}-16.0.0-v8_lto.patch
 )


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: net-libs/nodejs/files/, net-libs/nodejs/
@ 2021-05-09 14:29 Marek Szuba
  0 siblings, 0 replies; 36+ messages in thread
From: Marek Szuba @ 2021-05-09 14:29 UTC (permalink / raw
  To: gentoo-commits

commit:     a52b28a758d244f86e4609bd5936b7a1023a34d6
Author:     Marek Szuba <marecki <AT> gentoo <DOT> org>
AuthorDate: Sun May  9 12:24:29 2021 +0000
Commit:     Marek Szuba <marecki <AT> gentoo <DOT> org>
CommitDate: Sun May  9 14:28:33 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a52b28a7

net-libs/nodejs-16.1.0: Backport upstream fix for test-repl-history-navigation

Signed-off-by: Marek Szuba <marecki <AT> gentoo.org>

 ...odejs-16.1.0-test-repl-history-navigation.patch | 56 ++++++++++++++++++++++
 net-libs/nodejs/nodejs-16.1.0.ebuild               |  5 +-
 2 files changed, 57 insertions(+), 4 deletions(-)

diff --git a/net-libs/nodejs/files/nodejs-16.1.0-test-repl-history-navigation.patch b/net-libs/nodejs/files/nodejs-16.1.0-test-repl-history-navigation.patch
new file mode 100644
index 00000000000..724541a870d
--- /dev/null
+++ b/net-libs/nodejs/files/nodejs-16.1.0-test-repl-history-navigation.patch
@@ -0,0 +1,56 @@
+From 7c8a60851c459ea18afbfc54bfc8cf7394ea56c3 Mon Sep 17 00:00:00 2001
+From: Antoine du Hamel <duhamelantoine1995@gmail.com>
+Date: Thu, 6 May 2021 12:00:07 +0200
+Subject: [PATCH] test,repl: fix tests when inspector is disabled
+
+Fixes: https://github.com/nodejs/node/issues/38558
+
+PR-URL: https://github.com/nodejs/node/pull/38564
+Reviewed-By: Anna Henningsen <anna@addaleax.net>
+Reviewed-By: James M Snell <jasnell@gmail.com>
+Reviewed-By: Rich Trott <rtrott@gmail.com>
+---
+ test/parallel/test-repl-history-navigation.js | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/test/parallel/test-repl-history-navigation.js b/test/parallel/test-repl-history-navigation.js
+index df4f0390a69c..527cf235bddd 100644
+--- a/test/parallel/test-repl-history-navigation.js
++++ b/test/parallel/test-repl-history-navigation.js
+@@ -559,14 +559,14 @@ const tests = [
+     env: { NODE_REPL_HISTORY: defaultHistoryPath },
+     test: ['const util = {}', ENTER,
+            'ut', RIGHT, ENTER],
+-    expected: common.hasIntl && common.hasCrypto ? [
++    expected: [
+       prompt, ...'const util = {}',
+       'undefined\n',
+-      prompt, ...'ut', ' // il', '\n// {}',
+-      'il', '\n// {}',
++      prompt, ...'ut', ...(prev ? [' // il', '\n// {}',
++                                   'il', '\n// {}'] : [' // il', 'il']),
+       '{}\n',
+       prompt,
+-    ] : [],
++    ],
+     clean: false
+   },
+   {
+@@ -577,7 +577,7 @@ const tests = [
+       'globalThis.util = {}', ENTER,
+       'ut', RIGHT, ENTER,
+       'Reflect.defineProperty(globalThis, "util", utilDesc)', ENTER],
+-    expected: common.hasIntl && common.hasCrypto ? [
++    expected: [
+       prompt, ...'const utilDesc = ' +
+       'Reflect.getOwnPropertyDescriptor(globalThis, "util")',
+       'undefined\n',
+@@ -588,7 +588,7 @@ const tests = [
+       prompt, ...'Reflect.defineProperty(globalThis, "util", utilDesc)',
+       'true\n',
+       prompt,
+-    ] : [],
++    ],
+     clean: false
+   },
+ ];

diff --git a/net-libs/nodejs/nodejs-16.1.0.ebuild b/net-libs/nodejs/nodejs-16.1.0.ebuild
index 61ddcf50edb..f3079de1131 100644
--- a/net-libs/nodejs/nodejs-16.1.0.ebuild
+++ b/net-libs/nodejs/nodejs-16.1.0.ebuild
@@ -42,6 +42,7 @@ DEPEND="${RDEPEND}"
 PATCHES=(
 	"${FILESDIR}"/${PN}-12.22.1-uvwasi_shared_libuv.patch
 	"${FILESDIR}"/${PN}-15.2.0-global-npm-config.patch
+	"${FILESDIR}"/${PN}-16.1.0-test-repl-history-navigation.patch
 )
 
 S="${WORKDIR}/node-v${PV}"
@@ -70,10 +71,6 @@ src_prepare() {
 	export V=1
 	export BUILDTYPE=Release
 
-	# See https://github.com/nodejs/node/issues/38558
-	# FIXME: temporary, until we have figured out why that one single test fails.
-	rm -f test/parallel/test-repl-history-navigation.js
-
 	# fix compilation on Darwin
 	# https://code.google.com/p/gyp/issues/detail?id=260
 	sed -i -e "/append('-arch/d" tools/gyp/pylib/gyp/xcode_emulation.py || die


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: net-libs/nodejs/files/, net-libs/nodejs/
@ 2021-05-09 14:29 Marek Szuba
  0 siblings, 0 replies; 36+ messages in thread
From: Marek Szuba @ 2021-05-09 14:29 UTC (permalink / raw
  To: gentoo-commits

commit:     ae867aad2f1430c812d608eb2a8bdfb1cd7ad1a7
Author:     Marek Szuba <marecki <AT> gentoo <DOT> org>
AuthorDate: Sun May  9 12:25:37 2021 +0000
Commit:     Marek Szuba <marecki <AT> gentoo <DOT> org>
CommitDate: Sun May  9 14:28:36 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ae867aad

net-libs/nodejs: drop 16.0.0-r1

Signed-off-by: Marek Szuba <marecki <AT> gentoo.org>

 net-libs/nodejs/Manifest                         |   1 -
 net-libs/nodejs/files/nodejs-16.0.0-v8_lto.patch |  39 ----
 net-libs/nodejs/nodejs-16.0.0-r1.ebuild          | 229 -----------------------
 3 files changed, 269 deletions(-)

diff --git a/net-libs/nodejs/Manifest b/net-libs/nodejs/Manifest
index c0656482fd6..aec0f6fda87 100644
--- a/net-libs/nodejs/Manifest
+++ b/net-libs/nodejs/Manifest
@@ -1,4 +1,3 @@
 DIST node-v12.22.1.tar.xz 23650180 BLAKE2B 90b0a8ab3842483fea0c776e0245e63539a986c18f55abd8c7cd22ec399ccde22fa5b008d3e07c0f07713b5a45a1ee2a0bc370c04408800db2ee59cd92fcb5be SHA512 eaead633611bda04ab9be200aeddf3b4004b8104e9c6af246023b8008003dd3a7103e1508ea690443e59c6591521b04a2d71c7344343f2a20d1c935ef51c66a0
 DIST node-v14.16.1.tar.xz 33297064 BLAKE2B 0927434c63cd248e90a4002b50c7a0fd68a5527a4cd7424b451840ddf0c403ba452979b195e598cc3b323e24233248a74a1274519ce8cd3a2f4e71dc7a8f3dcb SHA512 d4f5fbab69592ae555613b2186090b85a458d2211b6035989aee2617bfd0f6768ca767ec45ce12756a9c452d00af7237edee3b1ae526049e9fcd01f8f67680c0
-DIST node-v16.0.0.tar.xz 33784448 BLAKE2B 3286cf6522074cb7b17dce8fce642204777fef26fd4bdb904fdef638061913a1eccda13b8e2f170906dd9098500c8fae7eaea7275e41bf97ea6d9fdd644b215c SHA512 6b976a8959079751bfdece15614a6286088d9145fc4db4ae048aca2ede4b7e38e86e91b1722be51eb4c934749a144a745e425ccf118bed9848c30ff254de2557
 DIST node-v16.1.0.tar.xz 33770472 BLAKE2B 2b7cf5f07dbf72eb25018cd046ce15cf6c5a444225e34d425614c19e69888b4f5c9488b079fed12e6fe52cb8dfdee20cf61c4df5a39f53e60b95c4da445f2091 SHA512 dc12078203940e7b280198ae15f51f68aaefcf8cab71a9f988952e67045e4b16dc48ec471abcc497bd15b0b426c06678e376b53762349d6568b48d52888cc2d5

diff --git a/net-libs/nodejs/files/nodejs-16.0.0-v8_lto.patch b/net-libs/nodejs/files/nodejs-16.0.0-v8_lto.patch
deleted file mode 100644
index a3e4acb02c3..00000000000
--- a/net-libs/nodejs/files/nodejs-16.0.0-v8_lto.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From ea694e2b138d2f991989e09fc0e964fec3587b5f Mon Sep 17 00:00:00 2001
-From: Jesse Chan <jc@linux.com>
-Date: Thu, 22 Apr 2021 19:41:09 +0800
-Subject: [PATCH] tools: disable LTO for "v8_cppgc_shared" target
-
-"PushAllRegistersAndIterateStack" is implemented in assembly and
-called from "stack.cc" via 'extern "C"'. [1]
-
-However, LTO does not work well with symbol usage from assembly. [2]
-
-This change workarounds the issue by disabling LTO for the target.
-
-With GCC 10 and "./configure --enable-lto", compilation succeeds
-after this change.
-
-[1] v8/v8@c10863153
-[2] https://gcc.gnu.org/wiki/LinkTimeOptimizationFAQ#Symbol_usage_from_assembly_language
-
-Refs: #35957
-Refs: #38335
-Signed-off-by: Jesse Chan <jc@linux.com>
----
- tools/v8_gypfiles/v8.gyp | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/tools/v8_gypfiles/v8.gyp b/tools/v8_gypfiles/v8.gyp
-index ccb5984f47d..377e12d1fdc 100644
---- a/tools/v8_gypfiles/v8.gyp
-+++ b/tools/v8_gypfiles/v8.gyp
-@@ -1378,6 +1378,9 @@
-           '<(V8_ROOT)/src/heap/base/worklist.h',
-         ],
-         'conditions': [
-+          ['enable_lto=="true"', {
-+            'cflags_cc': [ '-fno-lto' ],
-+          }],
-           ['clang or OS!="win"', {
-             'conditions': [
-               ['_toolset == "host" and host_arch == "x64" or _toolset == "target" and target_arch=="x64"', {

diff --git a/net-libs/nodejs/nodejs-16.0.0-r1.ebuild b/net-libs/nodejs/nodejs-16.0.0-r1.ebuild
deleted file mode 100644
index 95528f2021f..00000000000
--- a/net-libs/nodejs/nodejs-16.0.0-r1.ebuild
+++ /dev/null
@@ -1,229 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{7..9} )
-PYTHON_REQ_USE="threads(+)"
-
-inherit bash-completion-r1 flag-o-matic pax-utils python-any-r1 toolchain-funcs xdg-utils
-
-DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine"
-HOMEPAGE="https://nodejs.org/"
-SRC_URI="https://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz"
-
-LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
-SLOT="0/$(ver_cut 1)"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86 ~amd64-linux ~x64-macos"
-
-IUSE="cpu_flags_x86_sse2 debug doc +icu inspector lto +npm pax_kernel +snapshot +ssl system-icu +system-ssl systemtap test"
-REQUIRED_USE="inspector? ( icu ssl )
-	npm? ( ssl )
-	system-icu? ( icu )
-	system-ssl? ( ssl )"
-
-# As of 16.0.0, tests fail because "npm is not ready for this release"
-RESTRICT="test"
-
-RDEPEND=">=app-arch/brotli-1.0.9
-	>=dev-libs/libuv-1.40.0:=
-	>=net-dns/c-ares-1.17.0
-	>=net-libs/nghttp2-1.41.0
-	sys-libs/zlib
-	system-icu? ( >=dev-libs/icu-67:= )
-	system-ssl? ( >=dev-libs/openssl-1.1.1:0= )"
-BDEPEND="${PYTHON_DEPS}
-	sys-apps/coreutils
-	virtual/pkgconfig
-	systemtap? ( dev-util/systemtap )
-	test? ( net-misc/curl )
-	pax_kernel? ( sys-apps/elfix )"
-DEPEND="${RDEPEND}"
-
-PATCHES=(
-	"${FILESDIR}"/${PN}-12.22.1-uvwasi_shared_libuv.patch
-	"${FILESDIR}"/${PN}-15.2.0-global-npm-config.patch
-	"${FILESDIR}"/${PN}-16.0.0-v8_lto.patch
-)
-
-S="${WORKDIR}/node-v${PV}"
-
-pkg_pretend() {
-	(use x86 && ! use cpu_flags_x86_sse2) && \
-		die "Your CPU doesn't support the required SSE2 instruction."
-
-	if [[ ${MERGE_TYPE} != "binary" ]]; then
-		if use lto; then
-			if tc-is-gcc; then
-				if [[ $(gcc-major-version) -ge 11 ]]; then
-					# Bug #787158
-					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"
-				fi
-			else
-				# configure.py will abort on this later if we do not
-				die "${PN} only supports LTO for gcc"
-			fi
-		fi
-	fi
-}
-
-src_prepare() {
-	tc-export AR CC CXX PKG_CONFIG
-	export V=1
-	export BUILDTYPE=Release
-
-	# fix compilation on Darwin
-	# https://code.google.com/p/gyp/issues/detail?id=260
-	sed -i -e "/append('-arch/d" tools/gyp/pylib/gyp/xcode_emulation.py || die
-
-	# less verbose install output (stating the same as portage, basically)
-	sed -i -e "/print/d" tools/install.py || die
-
-	# proper libdir, hat tip @ryanpcmcquen https://github.com/iojs/io.js/issues/504
-	local LIBDIR=$(get_libdir)
-	sed -i -e "s|lib/|${LIBDIR}/|g" tools/install.py || die
-	sed -i -e "s/'lib'/'${LIBDIR}'/" deps/npm/lib/npm.js || die
-
-	# Avoid writing a depfile, not useful
-	sed -i -e "/DEPFLAGS =/d" tools/gyp/pylib/gyp/generator/make.py || die
-
-	sed -i -e "/'-O3'/d" common.gypi node.gypi || die
-
-	# Avoid a test that I've only been able to reproduce from emerge. It doesnt
-	# seem sandbox related either (invoking it from a sandbox works fine).
-	# The issue is that no stdin handle is openened when asked for one.
-	# It doesn't really belong upstream , so it'll just be removed until someone
-	# with more gentoo-knowledge than me (jbergstroem) figures it out.
-	rm test/parallel/test-stdout-close-unref.js || die
-
-	# debug builds. change install path, remove optimisations and override buildtype
-	if use debug; then
-		sed -i -e "s|out/Release/|out/Debug/|g" tools/install.py || die
-		BUILDTYPE=Debug
-	fi
-
-	# We need to disable mprotect on two files when it builds Bug 694100.
-	use pax_kernel && PATCHES+=( "${FILESDIR}"/${PN}-13.8.0-paxmarking.patch )
-
-	default
-}
-
-src_configure() {
-	xdg_environment_reset
-
-	# LTO compiler flags are handled by configure.py itself
-	filter-flags '-flto*'
-
-	local myconf=(
-		--shared-brotli
-		--shared-cares
-		--shared-libuv
-		--shared-nghttp2
-		--shared-zlib
-	)
-	use debug && myconf+=( --debug )
-	use lto && myconf+=( --enable-lto )
-	if use system-icu; then
-		myconf+=( --with-intl=system-icu )
-	elif use icu; then
-		myconf+=( --with-intl=full-icu )
-	else
-		myconf+=( --with-intl=none )
-	fi
-	use inspector || myconf+=( --without-inspector )
-	use npm || myconf+=( --without-npm )
-	use snapshot || myconf+=( --without-node-snapshot )
-	if use ssl; then
-		use system-ssl && myconf+=( --shared-openssl --openssl-use-def-ca-store )
-	else
-		myconf+=( --without-ssl )
-	fi
-
-	local myarch=""
-	case ${ABI} in
-		amd64) myarch="x64";;
-		arm) myarch="arm";;
-		arm64) myarch="arm64";;
-		ppc64) myarch="ppc64";;
-		x32) myarch="x32";;
-		x86) myarch="ia32";;
-		*) myarch="${ABI}";;
-	esac
-
-	GYP_DEFINES="linux_use_gold_flags=0
-		linux_use_bundled_binutils=0
-		linux_use_bundled_gold=0" \
-	"${EPYTHON}" configure.py \
-		--prefix="${EPREFIX}"/usr \
-		--dest-cpu=${myarch} \
-		$(use_with systemtap dtrace) \
-		"${myconf[@]}" || die
-}
-
-src_compile() {
-	emake -C out
-}
-
-src_install() {
-	local LIBDIR="${ED}/usr/$(get_libdir)"
-	default
-
-	pax-mark -m "${ED}"/usr/bin/node
-
-	# set up a symlink structure that node-gyp expects..
-	dodir /usr/include/node/deps/{v8,uv}
-	dosym . /usr/include/node/src
-	for var in deps/{uv,v8}/include; do
-		dosym ../.. /usr/include/node/${var}
-	done
-
-	if use doc; then
-		docinto html
-		dodoc -r "${S}"/doc/*
-	fi
-
-	if use npm; then
-		keepdir /etc/npm
-
-		# Install bash completion for `npm`
-		local tmp_npm_completion_file="$(TMPDIR="${T}" mktemp -t npm.XXXXXXXXXX)"
-		"${ED}/usr/bin/npm" completion > "${tmp_npm_completion_file}"
-		newbashcomp "${tmp_npm_completion_file}" npm
-
-		# Move man pages
-		doman "${LIBDIR}"/node_modules/npm/man/man{1,5,7}/*
-
-		# Clean up
-		rm -f "${LIBDIR}"/node_modules/npm/{.mailmap,.npmignore,Makefile}
-		rm -rf "${LIBDIR}"/node_modules/npm/{doc,html,man}
-
-		local find_exp="-or -name"
-		local find_name=()
-		for match in "AUTHORS*" "CHANGELOG*" "CONTRIBUT*" "README*" \
-			".travis.yml" ".eslint*" ".wercker.yml" ".npmignore" \
-			"*.md" "*.markdown" "*.bat" "*.cmd"; do
-			find_name+=( ${find_exp} "${match}" )
-		done
-
-		# Remove various development and/or inappropriate files and
-		# useless docs of dependend packages.
-		find "${LIBDIR}"/node_modules \
-			\( -type d -name examples \) -or \( -type f \( \
-				-iname "LICEN?E*" \
-				"${find_name[@]}" \
-			\) \) -exec rm -rf "{}" \;
-	fi
-
-	mv "${ED}"/usr/share/doc/node "${ED}"/usr/share/doc/${PF} || die
-}
-
-src_test() {
-	# parallel/test-fs-mkdir is known to fail with FEATURES=usersandbox
-	if has usersandbox ${FEATURES}; then
-		ewarn "You are emerging ${P} with 'usersandbox' enabled." \
-			"Expect some test failures or emerge with 'FEATURES=-usersandbox'!"
-	fi
-
-	out/${BUILDTYPE}/cctest || die
-	"${EPYTHON}" tools/test.py --mode=${BUILDTYPE,,} -J message parallel sequential || die
-}


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: net-libs/nodejs/files/, net-libs/nodejs/
@ 2021-06-04 12:01 Marek Szuba
  0 siblings, 0 replies; 36+ messages in thread
From: Marek Szuba @ 2021-06-04 12:01 UTC (permalink / raw
  To: gentoo-commits

commit:     c696ef464b522cc22961cc0393efeafd64155f0e
Author:     Marek Szuba <marecki <AT> gentoo <DOT> org>
AuthorDate: Fri Jun  4 11:55:09 2021 +0000
Commit:     Marek Szuba <marecki <AT> gentoo <DOT> org>
CommitDate: Fri Jun  4 12:00:55 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c696ef46

net-libs/nodejs: drop 16.1.0

We will only stabilise v16 once it has reached the Active LTS status
(since according to upstream release schedule it is only then that a
Node.js major version becomes ready for general use), i.e. not before
2021-10-27. Until then, no point in keeping old v16 ebuilds in the tree
once a newer version has been added.

Signed-off-by: Marek Szuba <marecki <AT> gentoo.org>

 net-libs/nodejs/Manifest                           |   1 -
 ...odejs-16.1.0-test-repl-history-navigation.patch |  56 -----
 net-libs/nodejs/nodejs-16.1.0.ebuild               | 235 ---------------------
 3 files changed, 292 deletions(-)

diff --git a/net-libs/nodejs/Manifest b/net-libs/nodejs/Manifest
index 72047ea96f6..ca1d06ede63 100644
--- a/net-libs/nodejs/Manifest
+++ b/net-libs/nodejs/Manifest
@@ -1,5 +1,4 @@
 DIST node-v12.22.1.tar.xz 23650180 BLAKE2B 90b0a8ab3842483fea0c776e0245e63539a986c18f55abd8c7cd22ec399ccde22fa5b008d3e07c0f07713b5a45a1ee2a0bc370c04408800db2ee59cd92fcb5be SHA512 eaead633611bda04ab9be200aeddf3b4004b8104e9c6af246023b8008003dd3a7103e1508ea690443e59c6591521b04a2d71c7344343f2a20d1c935ef51c66a0
 DIST node-v14.16.1.tar.xz 33297064 BLAKE2B 0927434c63cd248e90a4002b50c7a0fd68a5527a4cd7424b451840ddf0c403ba452979b195e598cc3b323e24233248a74a1274519ce8cd3a2f4e71dc7a8f3dcb SHA512 d4f5fbab69592ae555613b2186090b85a458d2211b6035989aee2617bfd0f6768ca767ec45ce12756a9c452d00af7237edee3b1ae526049e9fcd01f8f67680c0
 DIST node-v14.17.0.tar.xz 33484212 BLAKE2B 0ad045b7e0b96f564f42cef703338fece2167cb8bfe32840b765b137e01491a43a9c31ce290a3379ffa834ddfe4e2e1f42f95d4d0014240151b06313e0339383 SHA512 7a7683523904580462077c8bf3ee9640f1b674c7df55655049ca50ca3cfdb2973b13088f2b65e4eccf4df2641cd9c86c9716bcd160a5d5863a969cb1e88de093
-DIST node-v16.1.0.tar.xz 33770472 BLAKE2B 2b7cf5f07dbf72eb25018cd046ce15cf6c5a444225e34d425614c19e69888b4f5c9488b079fed12e6fe52cb8dfdee20cf61c4df5a39f53e60b95c4da445f2091 SHA512 dc12078203940e7b280198ae15f51f68aaefcf8cab71a9f988952e67045e4b16dc48ec471abcc497bd15b0b426c06678e376b53762349d6568b48d52888cc2d5
 DIST node-v16.3.0.tar.xz 33801084 BLAKE2B aa1f2fc6639ccb995252e483b68e1b425a9ad47cd148f5536fad168e94b0582819df511f797b3a278fd54d45e45f64dc701a997c2f17ad72d94d8b02d590cf81 SHA512 f25243521869ee9d99c2490150f8f9361b1603e497364ec559917d5c76e4a857e6c25c90d54b11e5a9d16fabb85e12b052ea768f3c2977ff18e96d33f60d9eff

diff --git a/net-libs/nodejs/files/nodejs-16.1.0-test-repl-history-navigation.patch b/net-libs/nodejs/files/nodejs-16.1.0-test-repl-history-navigation.patch
deleted file mode 100644
index 724541a870d..00000000000
--- a/net-libs/nodejs/files/nodejs-16.1.0-test-repl-history-navigation.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 7c8a60851c459ea18afbfc54bfc8cf7394ea56c3 Mon Sep 17 00:00:00 2001
-From: Antoine du Hamel <duhamelantoine1995@gmail.com>
-Date: Thu, 6 May 2021 12:00:07 +0200
-Subject: [PATCH] test,repl: fix tests when inspector is disabled
-
-Fixes: https://github.com/nodejs/node/issues/38558
-
-PR-URL: https://github.com/nodejs/node/pull/38564
-Reviewed-By: Anna Henningsen <anna@addaleax.net>
-Reviewed-By: James M Snell <jasnell@gmail.com>
-Reviewed-By: Rich Trott <rtrott@gmail.com>
----
- test/parallel/test-repl-history-navigation.js | 12 ++++++------
- 1 file changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/test/parallel/test-repl-history-navigation.js b/test/parallel/test-repl-history-navigation.js
-index df4f0390a69c..527cf235bddd 100644
---- a/test/parallel/test-repl-history-navigation.js
-+++ b/test/parallel/test-repl-history-navigation.js
-@@ -559,14 +559,14 @@ const tests = [
-     env: { NODE_REPL_HISTORY: defaultHistoryPath },
-     test: ['const util = {}', ENTER,
-            'ut', RIGHT, ENTER],
--    expected: common.hasIntl && common.hasCrypto ? [
-+    expected: [
-       prompt, ...'const util = {}',
-       'undefined\n',
--      prompt, ...'ut', ' // il', '\n// {}',
--      'il', '\n// {}',
-+      prompt, ...'ut', ...(prev ? [' // il', '\n// {}',
-+                                   'il', '\n// {}'] : [' // il', 'il']),
-       '{}\n',
-       prompt,
--    ] : [],
-+    ],
-     clean: false
-   },
-   {
-@@ -577,7 +577,7 @@ const tests = [
-       'globalThis.util = {}', ENTER,
-       'ut', RIGHT, ENTER,
-       'Reflect.defineProperty(globalThis, "util", utilDesc)', ENTER],
--    expected: common.hasIntl && common.hasCrypto ? [
-+    expected: [
-       prompt, ...'const utilDesc = ' +
-       'Reflect.getOwnPropertyDescriptor(globalThis, "util")',
-       'undefined\n',
-@@ -588,7 +588,7 @@ const tests = [
-       prompt, ...'Reflect.defineProperty(globalThis, "util", utilDesc)',
-       'true\n',
-       prompt,
--    ] : [],
-+    ],
-     clean: false
-   },
- ];

diff --git a/net-libs/nodejs/nodejs-16.1.0.ebuild b/net-libs/nodejs/nodejs-16.1.0.ebuild
deleted file mode 100644
index e1f164dff75..00000000000
--- a/net-libs/nodejs/nodejs-16.1.0.ebuild
+++ /dev/null
@@ -1,235 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{7..10} )
-PYTHON_REQ_USE="threads(+)"
-
-inherit bash-completion-r1 flag-o-matic pax-utils python-any-r1 toolchain-funcs xdg-utils
-
-DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine"
-HOMEPAGE="https://nodejs.org/"
-LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
-
-if [[ ${PV} == *9999 ]]; then
-	inherit git-r3
-	EGIT_REPO_URI="https://github.com/nodejs/node"
-	SLOT="0"
-else
-	SRC_URI="https://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz"
-	SLOT="0/$(ver_cut 1)"
-	KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86 ~amd64-linux ~x64-macos"
-	S="${WORKDIR}/node-v${PV}"
-fi
-
-IUSE="cpu_flags_x86_sse2 debug doc +icu inspector lto +npm pax_kernel +snapshot +ssl system-icu +system-ssl systemtap test"
-REQUIRED_USE="inspector? ( icu ssl )
-	npm? ( ssl )
-	system-icu? ( icu )
-	system-ssl? ( ssl )"
-
-RESTRICT="!test? ( test )"
-
-RDEPEND=">=app-arch/brotli-1.0.9
-	>=dev-libs/libuv-1.40.0:=
-	>=net-dns/c-ares-1.17.0
-	>=net-libs/nghttp2-1.41.0
-	sys-libs/zlib
-	system-icu? ( >=dev-libs/icu-67:= )
-	system-ssl? ( >=dev-libs/openssl-1.1.1:0= )"
-BDEPEND="${PYTHON_DEPS}
-	sys-apps/coreutils
-	virtual/pkgconfig
-	systemtap? ( dev-util/systemtap )
-	test? ( net-misc/curl )
-	pax_kernel? ( sys-apps/elfix )"
-DEPEND="${RDEPEND}"
-
-PATCHES=(
-	"${FILESDIR}"/${PN}-12.22.1-jinja_collections_abc.patch
-	"${FILESDIR}"/${PN}-12.22.1-uvwasi_shared_libuv.patch
-	"${FILESDIR}"/${PN}-15.2.0-global-npm-config.patch
-	"${FILESDIR}"/${PN}-16.1.0-test-repl-history-navigation.patch
-	"${FILESDIR}"/${PN}-16.1.0-ppc64-segfault.patch #785751, drop after it stops applying
-)
-
-pkg_pretend() {
-	(use x86 && ! use cpu_flags_x86_sse2) && \
-		die "Your CPU doesn't support the required SSE2 instruction."
-
-	if [[ ${MERGE_TYPE} != "binary" ]]; then
-		if use lto; then
-			if tc-is-gcc; then
-				if [[ $(gcc-major-version) -ge 11 ]]; then
-					# Bug #787158
-					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"
-				fi
-			else
-				# configure.py will abort on this later if we do not
-				die "${PN} only supports LTO for gcc"
-			fi
-		fi
-	fi
-}
-
-src_prepare() {
-	tc-export AR CC CXX PKG_CONFIG
-	export V=1
-	export BUILDTYPE=Release
-
-	# fix compilation on Darwin
-	# https://code.google.com/p/gyp/issues/detail?id=260
-	sed -i -e "/append('-arch/d" tools/gyp/pylib/gyp/xcode_emulation.py || die
-
-	# less verbose install output (stating the same as portage, basically)
-	sed -i -e "/print/d" tools/install.py || die
-
-	# proper libdir, hat tip @ryanpcmcquen https://github.com/iojs/io.js/issues/504
-	local LIBDIR=$(get_libdir)
-	sed -i -e "s|lib/|${LIBDIR}/|g" tools/install.py || die
-	sed -i -e "s/'lib'/'${LIBDIR}'/" deps/npm/lib/npm.js || die
-
-	# Avoid writing a depfile, not useful
-	sed -i -e "/DEPFLAGS =/d" tools/gyp/pylib/gyp/generator/make.py || die
-
-	sed -i -e "/'-O3'/d" common.gypi node.gypi || die
-
-	# debug builds. change install path, remove optimisations and override buildtype
-	if use debug; then
-		sed -i -e "s|out/Release/|out/Debug/|g" tools/install.py || die
-		BUILDTYPE=Debug
-	fi
-
-	# We need to disable mprotect on two files when it builds Bug 694100.
-	use pax_kernel && PATCHES+=( "${FILESDIR}"/${PN}-13.8.0-paxmarking.patch )
-
-	# All this test does is check if the npm CLI produces warnings of any sort,
-	# failing if it does. Overkill, much? Especially given one possible warning
-	# is that there is a newer version of npm available upstream (yes, it does
-	# use the network if available), thus making it a real possibility for this
-	# test to begin failing one day even though it was fine before.
-	rm -f test/parallel/test-release-npm.js
-
-	default
-}
-
-src_configure() {
-	xdg_environment_reset
-
-	# LTO compiler flags are handled by configure.py itself
-	filter-flags '-flto*'
-
-	local myconf=(
-		--shared-brotli
-		--shared-cares
-		--shared-libuv
-		--shared-nghttp2
-		--shared-zlib
-	)
-	use debug && myconf+=( --debug )
-	use lto && myconf+=( --enable-lto )
-	if use system-icu; then
-		myconf+=( --with-intl=system-icu )
-	elif use icu; then
-		myconf+=( --with-intl=full-icu )
-	else
-		myconf+=( --with-intl=none )
-	fi
-	use inspector || myconf+=( --without-inspector )
-	use npm || myconf+=( --without-npm )
-	use snapshot || myconf+=( --without-node-snapshot )
-	if use ssl; then
-		use system-ssl && myconf+=( --shared-openssl --openssl-use-def-ca-store )
-	else
-		myconf+=( --without-ssl )
-	fi
-
-	local myarch=""
-	case ${ABI} in
-		amd64) myarch="x64";;
-		arm) myarch="arm";;
-		arm64) myarch="arm64";;
-		ppc64) myarch="ppc64";;
-		x32) myarch="x32";;
-		x86) myarch="ia32";;
-		*) myarch="${ABI}";;
-	esac
-
-	GYP_DEFINES="linux_use_gold_flags=0
-		linux_use_bundled_binutils=0
-		linux_use_bundled_gold=0" \
-	"${EPYTHON}" configure.py \
-		--prefix="${EPREFIX}"/usr \
-		--dest-cpu=${myarch} \
-		$(use_with systemtap dtrace) \
-		"${myconf[@]}" || die
-}
-
-src_compile() {
-	emake -C out
-}
-
-src_install() {
-	local LIBDIR="${ED}/usr/$(get_libdir)"
-	default
-
-	pax-mark -m "${ED}"/usr/bin/node
-
-	# set up a symlink structure that node-gyp expects..
-	dodir /usr/include/node/deps/{v8,uv}
-	dosym . /usr/include/node/src
-	for var in deps/{uv,v8}/include; do
-		dosym ../.. /usr/include/node/${var}
-	done
-
-	if use doc; then
-		docinto html
-		dodoc -r "${S}"/doc/*
-	fi
-
-	if use npm; then
-		keepdir /etc/npm
-
-		# Install bash completion for `npm`
-		local tmp_npm_completion_file="$(TMPDIR="${T}" mktemp -t npm.XXXXXXXXXX)"
-		"${ED}/usr/bin/npm" completion > "${tmp_npm_completion_file}"
-		newbashcomp "${tmp_npm_completion_file}" npm
-
-		# Move man pages
-		doman "${LIBDIR}"/node_modules/npm/man/man{1,5,7}/*
-
-		# Clean up
-		rm -f "${LIBDIR}"/node_modules/npm/{.mailmap,.npmignore,Makefile}
-		rm -rf "${LIBDIR}"/node_modules/npm/{doc,html,man}
-
-		local find_exp="-or -name"
-		local find_name=()
-		for match in "AUTHORS*" "CHANGELOG*" "CONTRIBUT*" "README*" \
-			".travis.yml" ".eslint*" ".wercker.yml" ".npmignore" \
-			"*.md" "*.markdown" "*.bat" "*.cmd"; do
-			find_name+=( ${find_exp} "${match}" )
-		done
-
-		# Remove various development and/or inappropriate files and
-		# useless docs of dependend packages.
-		find "${LIBDIR}"/node_modules \
-			\( -type d -name examples \) -or \( -type f \( \
-				-iname "LICEN?E*" \
-				"${find_name[@]}" \
-			\) \) -exec rm -rf "{}" \;
-	fi
-
-	mv "${ED}"/usr/share/doc/node "${ED}"/usr/share/doc/${PF} || die
-}
-
-src_test() {
-	# parallel/test-fs-mkdir is known to fail with FEATURES=usersandbox
-	if has usersandbox ${FEATURES}; then
-		ewarn "You are emerging ${P} with 'usersandbox' enabled." \
-			"Expect some test failures or emerge with 'FEATURES=-usersandbox'!"
-	fi
-
-	out/${BUILDTYPE}/cctest || die
-	"${EPYTHON}" tools/test.py --mode=${BUILDTYPE,,} --flaky-tests=dontcare -J message parallel sequential || die
-}


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: net-libs/nodejs/files/, net-libs/nodejs/
@ 2021-06-24 11:15 Marek Szuba
  0 siblings, 0 replies; 36+ messages in thread
From: Marek Szuba @ 2021-06-24 11:15 UTC (permalink / raw
  To: gentoo-commits

commit:     8343d8dbc07ef7749636b6954a0dc6749536e434
Author:     Marek Szuba <marecki <AT> gentoo <DOT> org>
AuthorDate: Thu Jun 24 11:15:17 2021 +0000
Commit:     Marek Szuba <marecki <AT> gentoo <DOT> org>
CommitDate: Thu Jun 24 11:15:17 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8343d8db

net-libs/nodejs: add 16.4.0, drop 16.3.0

Signed-off-by: Marek Szuba <marecki <AT> gentoo.org>

 net-libs/nodejs/Manifest                           |   2 +-
 .../files/nodejs-16.1.0-ppc64-segfault.patch       | 119 ---------------------
 .../{nodejs-16.3.0.ebuild => nodejs-16.4.0.ebuild} |   1 -
 3 files changed, 1 insertion(+), 121 deletions(-)

diff --git a/net-libs/nodejs/Manifest b/net-libs/nodejs/Manifest
index 17ecdcf2898..8bfd4716c99 100644
--- a/net-libs/nodejs/Manifest
+++ b/net-libs/nodejs/Manifest
@@ -2,4 +2,4 @@ DIST node-v12.22.1.tar.xz 23650180 BLAKE2B 90b0a8ab3842483fea0c776e0245e63539a98
 DIST node-v14.16.1.tar.xz 33297064 BLAKE2B 0927434c63cd248e90a4002b50c7a0fd68a5527a4cd7424b451840ddf0c403ba452979b195e598cc3b323e24233248a74a1274519ce8cd3a2f4e71dc7a8f3dcb SHA512 d4f5fbab69592ae555613b2186090b85a458d2211b6035989aee2617bfd0f6768ca767ec45ce12756a9c452d00af7237edee3b1ae526049e9fcd01f8f67680c0
 DIST node-v14.17.0.tar.xz 33484212 BLAKE2B 0ad045b7e0b96f564f42cef703338fece2167cb8bfe32840b765b137e01491a43a9c31ce290a3379ffa834ddfe4e2e1f42f95d4d0014240151b06313e0339383 SHA512 7a7683523904580462077c8bf3ee9640f1b674c7df55655049ca50ca3cfdb2973b13088f2b65e4eccf4df2641cd9c86c9716bcd160a5d5863a969cb1e88de093
 DIST node-v14.17.1.tar.xz 33580416 BLAKE2B da5234087945327fc7f3a666a8869426ec5adff3b31b800c59135d9937507bcca7be3c8ca6720c2593b45ec6a9b49c30f71dadbcc03dc0a68c082e3f1746e6df SHA512 354f9f215a4915ca3dbccdbb90c14fb8bfb8b0ed8ece4f95106d7b068affdeab65a79db0beb2c7d6af03dc15567edc5250629deedd38a9de7d581f76716315f8
-DIST node-v16.3.0.tar.xz 33801084 BLAKE2B aa1f2fc6639ccb995252e483b68e1b425a9ad47cd148f5536fad168e94b0582819df511f797b3a278fd54d45e45f64dc701a997c2f17ad72d94d8b02d590cf81 SHA512 f25243521869ee9d99c2490150f8f9361b1603e497364ec559917d5c76e4a857e6c25c90d54b11e5a9d16fabb85e12b052ea768f3c2977ff18e96d33f60d9eff
+DIST node-v16.4.0.tar.xz 33597252 BLAKE2B c43543057f58ed706e525db9956cb258ace88026c9ef1c87d85f07bc02bb382482e9044748b6c865d913ef167544f089e9c5c11fb00c2f0fa7ca9e6bf8d06de8 SHA512 c4e12d8e50c26f21170e998a209d060acfac792bf2a5970efc482f431f483841d40427aafe72a63d5b2bd2cd8d5d1fd19678105ab9b1265f68de6359d98fa1a3

diff --git a/net-libs/nodejs/files/nodejs-16.1.0-ppc64-segfault.patch b/net-libs/nodejs/files/nodejs-16.1.0-ppc64-segfault.patch
deleted file mode 100644
index 5ddd1fe7d08..00000000000
--- a/net-libs/nodejs/files/nodejs-16.1.0-ppc64-segfault.patch
+++ /dev/null
@@ -1,119 +0,0 @@
-From ca4bf75504d07db5e1e66ec5c867cd76c90268af Mon Sep 17 00:00:00 2001
-From: Junliang Yan <jyan@ca.ibm.ca>
-Date: Tue, 11 May 2021 08:57:03 -0400
-Subject: [PATCH] ppc: Prevent trampoline emission on deoptimization table generation
-
-The deoptimization table needs to be continuously, so we need to block
-trampoline pool emission during the whole process.
-
-bug: v8:11759
-Change-Id: Ie5e0ffe27dc8e6cdb18985dc2cf26bdadeff318f
-Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2881918
-Commit-Queue: Junliang Yan <junyan@redhat.com>
-Reviewed-by: Jakob Gruber <jgruber@chromium.org>
-Cr-Commit-Position: refs/heads/master@{#74506}
-X-Gentoo-bug: https://bugs.gentoo.org/785751
-Backported by gyakovlev@gentoo.org
----
-
-diff --git a/src/codegen/ppc/assembler-ppc.h b/src/codegen/ppc/assembler-ppc.h
-index 794b917..ae04118 100644
---- a/deps/v8/src/codegen/ppc/assembler-ppc.h
-+++ b/deps/v8/src/codegen/ppc/assembler-ppc.h
-@@ -195,6 +195,12 @@
- 
-   void MaybeEmitOutOfLineConstantPool() { EmitConstantPool(); }
- 
-+  inline void CheckTrampolinePoolQuick(int extra_space = 0) {
-+    if (pc_offset() >= next_trampoline_check_ - extra_space) {
-+      CheckTrampolinePool();
-+    }
-+  }
-+
-   // Label operations & relative jumps (PPUM Appendix D)
-   //
-   // Takes a branch opcode (cc) and a label (L) and generates
-@@ -1334,12 +1340,6 @@
-   }
- 
-   inline void UntrackBranch();
--  void CheckTrampolinePoolQuick() {
--    if (pc_offset() >= next_trampoline_check_) {
--      CheckTrampolinePool();
--    }
--  }
--
-   // Instruction generation
-   void a_form(Instr instr, DoubleRegister frt, DoubleRegister fra,
-               DoubleRegister frb, RCBit r);
-diff --git a/src/compiler/backend/code-generator.cc b/src/compiler/backend/code-generator.cc
-index 023e697..62e57fe 100644
---- a/deps/v8/src/compiler/backend/code-generator.cc
-+++ b/deps/v8/src/compiler/backend/code-generator.cc
-@@ -416,23 +416,29 @@
-     std::sort(deoptimization_exits_.begin(), deoptimization_exits_.end(), cmp);
-   }
- 
--  for (DeoptimizationExit* exit : deoptimization_exits_) {
--    if (exit->emitted()) continue;
--    if (Deoptimizer::kSupportsFixedDeoptExitSizes) {
--      exit->set_deoptimization_id(next_deoptimization_id_++);
--    }
--    result_ = AssembleDeoptimizerCall(exit);
--    if (result_ != kSuccess) return;
-+  {
-+#ifdef V8_TARGET_ARCH_PPC64
-+    v8::internal::Assembler::BlockTrampolinePoolScope block_trampoline_pool(
-+        tasm());
-+#endif
-+    for (DeoptimizationExit* exit : deoptimization_exits_) {
-+      if (exit->emitted()) continue;
-+      if (Deoptimizer::kSupportsFixedDeoptExitSizes) {
-+        exit->set_deoptimization_id(next_deoptimization_id_++);
-+      }
-+      result_ = AssembleDeoptimizerCall(exit);
-+      if (result_ != kSuccess) return;
- 
--    // UpdateDeoptimizationInfo expects lazy deopts to be visited in pc_offset
--    // order, which is always the case since they are added to
--    // deoptimization_exits_ in that order, and the optional sort operation
--    // above preserves that order.
--    if (exit->kind() == DeoptimizeKind::kLazy) {
--      int trampoline_pc = exit->label()->pos();
--      last_updated = safepoints()->UpdateDeoptimizationInfo(
--          exit->pc_offset(), trampoline_pc, last_updated,
--          exit->deoptimization_id());
-+      // UpdateDeoptimizationInfo expects lazy deopts to be visited in pc_offset
-+      // order, which is always the case since they are added to
-+      // deoptimization_exits_ in that order, and the optional sort operation
-+      // above preserves that order.
-+      if (exit->kind() == DeoptimizeKind::kLazy) {
-+        int trampoline_pc = exit->label()->pos();
-+        last_updated = safepoints()->UpdateDeoptimizationInfo(
-+            exit->pc_offset(), trampoline_pc, last_updated,
-+            exit->deoptimization_id());
-+      }
-     }
-   }
- 
-diff --git a/src/compiler/backend/ppc/code-generator-ppc.cc b/src/compiler/backend/ppc/code-generator-ppc.cc
-index 3e4e94a..0281376 100644
---- a/deps/v8/src/compiler/backend/ppc/code-generator-ppc.cc
-+++ b/deps/v8/src/compiler/backend/ppc/code-generator-ppc.cc
-@@ -4296,7 +4296,15 @@
- 
- void CodeGenerator::PrepareForDeoptimizationExits(
-     ZoneDeque<DeoptimizationExit*>* exits) {
--  // __ EmitConstantPool();
-+  int total_size = 0;
-+  for (DeoptimizationExit* exit : deoptimization_exits_) {
-+    total_size += (exit->kind() == DeoptimizeKind::kLazy)
-+                      ? Deoptimizer::kLazyDeoptExitSize
-+                      : Deoptimizer::kNonLazyDeoptExitSize;
-+  }
-+
-+  __ CheckTrampolinePoolQuick(total_size);
-+  DCHECK(Deoptimizer::kSupportsFixedDeoptExitSizes);
- }
- 
- void CodeGenerator::AssembleMove(InstructionOperand* source,

diff --git a/net-libs/nodejs/nodejs-16.3.0.ebuild b/net-libs/nodejs/nodejs-16.4.0.ebuild
similarity index 98%
rename from net-libs/nodejs/nodejs-16.3.0.ebuild
rename to net-libs/nodejs/nodejs-16.4.0.ebuild
index f4ae0ff1f25..f4221d00ab4 100644
--- a/net-libs/nodejs/nodejs-16.3.0.ebuild
+++ b/net-libs/nodejs/nodejs-16.4.0.ebuild
@@ -50,7 +50,6 @@ PATCHES=(
 	"${FILESDIR}"/${PN}-12.22.1-jinja_collections_abc.patch
 	"${FILESDIR}"/${PN}-12.22.1-uvwasi_shared_libuv.patch
 	"${FILESDIR}"/${PN}-15.2.0-global-npm-config.patch
-	"${FILESDIR}"/${PN}-16.1.0-ppc64-segfault.patch #785751, drop after it stops applying
 )
 
 pkg_pretend() {


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: net-libs/nodejs/files/, net-libs/nodejs/
@ 2022-03-17 21:39 William Hubbs
  0 siblings, 0 replies; 36+ messages in thread
From: William Hubbs @ 2022-03-17 21:39 UTC (permalink / raw
  To: gentoo-commits

commit:     b6286012b3486b92a400cd116512f807a9b20dcb
Author:     William Hubbs <williamh <AT> gentoo <DOT> org>
AuthorDate: Thu Mar 17 21:39:19 2022 +0000
Commit:     William Hubbs <williamh <AT> gentoo <DOT> org>
CommitDate: Thu Mar 17 21:39:19 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b6286012

net-libs/nodejs: add 12.22.10

Bug: https://bugs.gentoo.org/831037
Signed-off-by: William Hubbs <williamh <AT> gentoo.org>

 net-libs/nodejs/Manifest                           |   1 +
 .../files/nodejs-12.22.10-global-npm-config.patch  |  20 ++
 net-libs/nodejs/nodejs-12.22.10.ebuild             | 249 +++++++++++++++++++++
 3 files changed, 270 insertions(+)

diff --git a/net-libs/nodejs/Manifest b/net-libs/nodejs/Manifest
index 4877d0318846..880e390b294b 100644
--- a/net-libs/nodejs/Manifest
+++ b/net-libs/nodejs/Manifest
@@ -1,3 +1,4 @@
+DIST node-v12.22.10.tar.xz 24089580 BLAKE2B 0ecf0b2ed64cba1bbcab287ccf7e524bd08ce787399d01fb792fd5232983289403a85810bc6eccd090b6d15796c48dc6ea3baf0cb3154e392dc343da53086b81 SHA512 da984e98856ef89eb259346d9d1eae60ff3d255d964f3b09d59851a9c21c86acd0c56b9c888f61423de07afab1c09946c00856c832a1f1a8abc4c671c31e23b1
 DIST node-v12.22.5.tar.xz 23654908 BLAKE2B ca4f304e31f091ae656142035851d6e4427d8b2ddd2a69506dec96efbb1269a19a08e9ab8d44dfe10f8429bc239e4102f3f030adb25e9c41901c7d94b53e88c8 SHA512 80f3c673a1f2af7fffd6aaa556c06b8225034c8413e1a738c19d491aff1b3e6ed388df66ecbff88e4bfbefe1013dac7e3beb301456c2099b6a954ba468b21883
 DIST node-v12.22.6.tar.xz 23664904 BLAKE2B 04dd4fd4cbe39642a1c3dd8639a4d9e3362055f56bc2565303d0095cda1655033ba4e0ce5a969647d2be73df13ddbcccc4907825a94a41b45c0723b3c02ca980 SHA512 d107f1ff7073d2db9f0198f14b0523870e9b262c71055de2e03fba54f87bc98a57dad43d902c0b349957df21de71dc066133d4831eb7eb07f4e548d0ac724fb2
 DIST node-v12.22.7.tar.xz 23661696 BLAKE2B aa162e2aee98568c207b11a27651cefdf6444568ad0c0dc602d63a6767fc7d00d10e93626168b334d6fe1774fc8da420ed05b9d2ce485f0ec3544d992bfb5b83 SHA512 7697b409537114abf14a3847fffd8952fd35f54569bfa84ba527f231ac1defced5d11fe7bc39ff8ec7cccb282d584ff50a33bcbba16474c6a125808a29104222

diff --git a/net-libs/nodejs/files/nodejs-12.22.10-global-npm-config.patch b/net-libs/nodejs/files/nodejs-12.22.10-global-npm-config.patch
new file mode 100644
index 000000000000..09d9dbe47be0
--- /dev/null
+++ b/net-libs/nodejs/files/nodejs-12.22.10-global-npm-config.patch
@@ -0,0 +1,20 @@
+diff --git a/deps/npm/lib/config/core.js b/deps/npm/lib/config/core.js
+index 36420b3450..0afb0b6792 100644
+--- a/deps/npm/lib/config/core.js
++++ b/deps/npm/lib/config/core.js
+@@ -151,11 +151,10 @@ function load_ (builtin, rc, cli, cb) {
+     // Eg, `npm config get globalconfig --prefix ~/local` should
+     // return `~/local/etc/npmrc`
+     // annoying humans and their expectations!
+-    if (conf.get('prefix')) {
+-      var etc = path.resolve(conf.get('prefix'), 'etc')
+-      defaults.globalconfig = path.resolve(etc, 'npmrc')
+-      defaults.globalignorefile = path.resolve(etc, 'npmignore')
+-    }
++    // gentoo deviates wrt global config; store in /etc/npm
++    var globalconfig = path.resolve('/etc', 'npm')
++    defaults.globalconfig = path.resolve(globalconfig, 'npmrc')
++    defaults.globalignorefile = path.resolve(globalconfig, 'npmignore')
+ 
+     conf.addFile(conf.get('globalconfig'), 'global')
+ 

diff --git a/net-libs/nodejs/nodejs-12.22.10.ebuild b/net-libs/nodejs/nodejs-12.22.10.ebuild
new file mode 100644
index 000000000000..f0d3207ee367
--- /dev/null
+++ b/net-libs/nodejs/nodejs-12.22.10.ebuild
@@ -0,0 +1,249 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..10} )
+PYTHON_REQ_USE="threads(+)"
+
+inherit bash-completion-r1 flag-o-matic pax-utils python-any-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine"
+HOMEPAGE="https://nodejs.org/"
+LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
+
+if [[ ${PV} == *9999 ]]; then
+	inherit git-r3
+	EGIT_REPO_URI="https://github.com/nodejs/node"
+	SLOT="0"
+else
+	SRC_URI="https://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz"
+	SLOT="0/$(ver_cut 1)"
+	KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 -riscv ~x86 ~amd64-linux ~x64-macos"
+	S="${WORKDIR}/node-v${PV}"
+fi
+
+IUSE="cpu_flags_x86_sse2 debug doc icu inspector lto +npm +snapshot +ssl +system-ssl systemtap test"
+REQUIRED_USE="
+	inspector? ( icu ssl )
+	npm? ( ssl )
+	system-ssl? ( ssl )
+"
+
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	>=app-arch/brotli-1.0.9:=
+	>=dev-libs/libuv-1.39.0:=
+	>=net-dns/c-ares-1.17.2:=
+	>=net-libs/http-parser-2.9.3:=
+	>=net-libs/nghttp2-1.40.0:=
+	sys-libs/zlib
+	icu? ( >=dev-libs/icu-64.2:= )
+	system-ssl? (
+		>=dev-libs/openssl-1.1.1:0=
+		<dev-libs/openssl-3.0.0_beta1:0=
+	)
+"
+BDEPEND="
+	${PYTHON_DEPS}
+	sys-apps/coreutils
+	virtual/pkgconfig
+	systemtap? ( dev-util/systemtap )
+	test? ( net-misc/curl )
+"
+DEPEND="
+	${RDEPEND}
+"
+PATCHES=(
+	"${FILESDIR}"/${P}-global-npm-config.patch
+	"${FILESDIR}"/${PN}-12.20.1-fix_ppc64_crashes.patch
+	"${FILESDIR}"/${PN}-12.22.1-jinja_collections_abc.patch
+	"${FILESDIR}"/${PN}-12.22.1-uvwasi_shared_libuv.patch
+	"${FILESDIR}"/${PN}-12.22.5-shared_c-ares_nameser_h.patch
+	"${FILESDIR}"/${PN}-99999999-llhttp.patch
+)
+
+pkg_pretend() {
+	(use x86 && ! use cpu_flags_x86_sse2) && \
+		die "Your CPU doesn't support the required SSE2 instruction."
+
+	if [[ ${MERGE_TYPE} != "binary" ]]; then
+		if use lto; then
+			if tc-is-gcc; then
+				if [[ $(gcc-major-version) -ge 11 ]]; then
+					# Bug #787158
+					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"
+				fi
+			else
+				# configure.py will abort on this later if we do not
+				die "${PN} only supports LTO for gcc"
+			fi
+		fi
+	fi
+}
+
+src_prepare() {
+	tc-export CC CXX PKG_CONFIG
+	export V=1
+	export BUILDTYPE=Release
+
+	# fix compilation on Darwin
+	# https://code.google.com/p/gyp/issues/detail?id=260
+	sed -i -e "/append('-arch/d" tools/gyp/pylib/gyp/xcode_emulation.py || die
+
+	# less verbose install output (stating the same as portage, basically)
+	sed -i -e "/print/d" tools/install.py || die
+
+	# proper libdir, hat tip @ryanpcmcquen https://github.com/iojs/io.js/issues/504
+	local LIBDIR=$(get_libdir)
+	sed -i -e "s|lib/|${LIBDIR}/|g" tools/install.py || die
+	sed -i -e "s/'lib'/'${LIBDIR}'/" deps/npm/lib/npm.js || die
+
+	# Avoid writing a depfile, not useful
+	sed -i -e "/DEPFLAGS =/d" tools/gyp/pylib/gyp/generator/make.py || die
+
+	sed -i -e "/'-O3'/d" common.gypi node.gypi || die
+
+	# Known-to-fail test of a deprecated, legacy HTTP parser. Just don't bother.
+	rm -f test/parallel/test-http-transfer-encoding-smuggling-legacy.js
+
+	# debug builds. change install path, remove optimisations and override buildtype
+	if use debug; then
+		sed -i -e "s|out/Release/|out/Debug/|g" tools/install.py || die
+		BUILDTYPE=Debug
+	fi
+
+	default
+}
+
+src_configure() {
+	xdg_environment_reset
+
+	# LTO compiler flags are handled by configure.py itself
+	filter-flags '-flto*'
+
+	local myconf=(
+		--shared-brotli
+		--shared-cares
+		--shared-http-parser
+		--shared-libuv
+		--shared-nghttp2
+		--shared-zlib
+	)
+	use debug && myconf+=( --debug )
+	use lto && myconf+=( --enable-lto )
+	use icu && myconf+=( --with-intl=system-icu ) || myconf+=( --with-intl=none )
+	use inspector || myconf+=( --without-inspector )
+	use npm || myconf+=( --without-npm )
+	use snapshot || myconf+=( --without-node-snapshot )
+	if use ssl; then
+		use system-ssl && myconf+=( --shared-openssl --openssl-use-def-ca-store )
+	else
+		myconf+=( --without-ssl )
+	fi
+
+	local myarch=""
+	case ${ABI} in
+		amd64) myarch="x64";;
+		arm) myarch="arm";;
+		arm64) myarch="arm64";;
+		ppc64) myarch="ppc64";;
+		x32) myarch="x32";;
+		x86) myarch="ia32";;
+		*) myarch="${ABI}";;
+	esac
+
+	GYP_DEFINES="linux_use_gold_flags=0
+		linux_use_bundled_binutils=0
+		linux_use_bundled_gold=0" \
+	"${EPYTHON}" configure.py \
+		--prefix="${EPREFIX}"/usr \
+		--dest-cpu=${myarch} \
+		$(use_with systemtap dtrace) \
+		"${myconf[@]}" || die
+}
+
+src_compile() {
+	emake -C out mksnapshot
+	pax-mark m "out/${BUILDTYPE}/mksnapshot"
+	emake -C out
+}
+
+src_install() {
+	local LIBDIR="${ED}/usr/$(get_libdir)"
+	default
+
+	pax-mark -m "${ED}"/usr/bin/node
+
+	# set up a symlink structure that node-gyp expects..
+	dodir /usr/include/node/deps/{v8,uv}
+	dosym . /usr/include/node/src
+	for var in deps/{uv,v8}/include; do
+		dosym ../.. /usr/include/node/${var}
+	done
+
+	if use doc; then
+		docinto html
+		dodoc -r "${S}"/doc/*
+	fi
+
+	if use npm; then
+		dodir /etc/npm
+
+		# Install bash completion for `npm`
+		# We need to temporarily replace default config path since
+		# npm otherwise tries to write outside of the sandbox
+		local npm_config="usr/$(get_libdir)/node_modules/npm/lib/config/core.js"
+		sed -i -e "s|'/etc'|'${ED}/etc'|g" "${ED}/${npm_config}" || die
+		local tmp_npm_completion_file="$(TMPDIR="${T}" mktemp -t npm.XXXXXXXXXX)"
+		"${ED}/usr/bin/npm" completion > "${tmp_npm_completion_file}"
+		newbashcomp "${tmp_npm_completion_file}" npm
+		sed -i -e "s|'${ED}/etc'|'/etc'|g" "${ED}/${npm_config}" || die
+
+		# Move man pages
+		doman "${LIBDIR}"/node_modules/npm/man/man{1,5,7}/*
+
+		# Clean up
+		rm -f "${LIBDIR}"/node_modules/npm/{.mailmap,.npmignore,Makefile}
+		rm -rf "${LIBDIR}"/node_modules/npm/{doc,html,man}
+
+		local find_exp="-or -name"
+		local find_name=()
+		for match in "AUTHORS*" "CHANGELOG*" "CONTRIBUT*" "README*" \
+			".travis.yml" ".eslint*" ".wercker.yml" ".npmignore" \
+			"*.md" "*.markdown" "*.bat" "*.cmd"; do
+			find_name+=( ${find_exp} "${match}" )
+		done
+
+		# Remove various development and/or inappropriate files and
+		# useless docs of dependend packages.
+		find "${LIBDIR}"/node_modules \
+			\( -type d -name examples \) -or \( -type f \( \
+				-iname "LICEN?E*" \
+				"${find_name[@]}" \
+			\) \) -exec rm -rf "{}" \;
+	fi
+
+	mv "${ED}"/usr/share/doc/node "${ED}"/usr/share/doc/${PF} || die
+}
+
+src_test() {
+	if has usersandbox ${FEATURES}; then
+		rm -f "${S}"/test/parallel/test-fs-mkdir.js
+		ewarn "You are emerging ${PN} with 'usersandbox' enabled. Excluding tests known to fail in this mode." \
+			"For full test coverage, emerge =${CATEGORY}/${PF} with 'FEATURES=-usersandbox'."
+	fi
+
+	out/${BUILDTYPE}/cctest || die
+	"${PYTHON}" tools/test.py --mode=${BUILDTYPE,,} --flaky-tests=dontcare -J message parallel sequential || die
+}
+
+pkg_postinst() {
+	elog "The global npm config lives in /etc/npm. This deviates slightly"
+	elog "from upstream which otherwise would have it live in /usr/etc/."
+	elog ""
+	elog "Protip: When using node-gyp to install native modules, you can"
+	elog "avoid having to download extras by doing the following:"
+	elog "$ node-gyp --nodedir /usr/include/node <command>"
+}


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: net-libs/nodejs/files/, net-libs/nodejs/
@ 2022-05-04 17:57 William Hubbs
  0 siblings, 0 replies; 36+ messages in thread
From: William Hubbs @ 2022-05-04 17:57 UTC (permalink / raw
  To: gentoo-commits

commit:     f50edf9044e26c33da7c46d40be1081bfa88728a
Author:     William Hubbs <williamh <AT> gentoo <DOT> org>
AuthorDate: Wed May  4 17:43:40 2022 +0000
Commit:     William Hubbs <williamh <AT> gentoo <DOT> org>
CommitDate: Wed May  4 17:57:39 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f50edf90

net-libs/nodejs: add 18.1.0

Signed-off-by: William Hubbs <williamh <AT> gentoo.org>

 net-libs/nodejs/Manifest                           |   1 +
 .../nodejs/files/nodejs-18.0.0-paxmarking.patch    | 113 ++++++++++
 net-libs/nodejs/nodejs-18.1.0.ebuild               | 230 +++++++++++++++++++++
 3 files changed, 344 insertions(+)

diff --git a/net-libs/nodejs/Manifest b/net-libs/nodejs/Manifest
index b7f49695e375..5717aa7e1f63 100644
--- a/net-libs/nodejs/Manifest
+++ b/net-libs/nodejs/Manifest
@@ -6,3 +6,4 @@ DIST node-v14.17.6.tar.xz 33606464 BLAKE2B c2c449e5eaf8214d7ed4bfab8db0208034cee
 DIST node-v14.19.0.tar.xz 34486868 BLAKE2B 12e571a366c1d4b2475ef258e338f516bb81e9c08f7e6b7f951decbf371028cdcf32c72181d8504d0890496eaecce0d6b23437b8dad6c6e498d30bf6636bd1e7 SHA512 80573fa3a0882c1f2a40b991f187f49714748ca4c56c78133e2d2be0322f201816eb059a1a7d38ea8a925229c1b1324d0ffc28ff4002d0115bfae44fe87efe97
 DIST node-v16.14.2.tar.xz 34332624 BLAKE2B 756895f81ecabbacf30b1e513890d100192c367443a5d041cd3e383985acb6fae189213f44b7a533b43d1b759d5a2677a5ee787c72d3abdb480879d6d24cc95e SHA512 b97274f6e0d63f19e01497c43af36e6561f019e7b0b5b4f6ea19d0fbe2cb4d3c514c06f49e237d1e327936db03c3f437ae0d0b2f830a35f1b7c3a723fbe2a1be
 DIST node-v18.0.0.tar.xz 36826840 BLAKE2B 658b6a4872779c648b1c10b952403892a4ea846525737daba222aeb7d1467f797345c2e07bfb28320d593810617541b893dd37006dcbd13e5e69313455045ff0 SHA512 801ee56e22490453f259ab92bfcd1b13da3f9510fb70078da1e680d0a27971d4ee4b4b4344b2a969d230e661fd9a8b35e9104c5fe0a594222be3a20583a59f3e
+DIST node-v18.1.0.tar.xz 36841136 BLAKE2B 77cc028f61391c483cf9bdff09a2101790119257ceee5b6702347aee771c7ed9656458f482bceb89d9921a598b9e2134ef6c424e6c879934dce9bcc85fbb3552 SHA512 edaf830b90b74ff7e8d1098f7f09cff91dc60738bfc612f6847bd7ac283ca76453f624057f64ba3ddcc86804bfbd652eaf8eae1398118220fd54fbf9c0a0e49c

diff --git a/net-libs/nodejs/files/nodejs-18.0.0-paxmarking.patch b/net-libs/nodejs/files/nodejs-18.0.0-paxmarking.patch
new file mode 100644
index 000000000000..c778d1729384
--- /dev/null
+++ b/net-libs/nodejs/files/nodejs-18.0.0-paxmarking.patch
@@ -0,0 +1,113 @@
+diff -urNp node-v15.8.0-orig/node.gyp node-v15.8.0-dwok/node.gyp
+--- node-v15.8.0-orig/node.gyp	2021-02-24 22:21:44.202911780 +0100
++++ node-v15.8.0-dwok/node.gyp	2021-02-24 22:25:34.298281739 +0100
+@@ -55,7 +55,9 @@
+       'deps/undici/undici.js',
+     ],
+     'node_mksnapshot_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)node_mksnapshot<(EXECUTABLE_SUFFIX)',
++    'node_mksnapshot_u_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)node_mksnapshot_u<(EXECUTABLE_SUFFIX)',
+     'mkcodecache_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)mkcodecache<(EXECUTABLE_SUFFIX)',
++    'mkcodecache_u_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)mkcodecache_u<(EXECUTABLE_SUFFIX)',
+     'conditions': [
+       ['GENERATOR == "ninja"', {
+         'node_text_start_object_path': 'src/large_pages/node_text_start.node_text_start.o'
+@@ -293,10 +295,24 @@
+           ],
+           'actions': [
+             {
++              'action_name': 'run_pax_mkcodecache',
++              'inputs': [
++                '<(mkcodecache_exec)',
++              ],
++              'outputs': [
++                '<(mkcodecache_u_exec)',
++              ],
++              'action': [
++                'bash',
++                '-c',
++                'mv <(mkcodecache_exec) <(mkcodecache_u_exec) && paxmark.sh m <(mkcodecache_u_exec)',
++              ],
++            },
++            {
+               'action_name': 'run_mkcodecache',
+               'process_outputs_as_sources': 1,
+               'inputs': [
+-                '<(mkcodecache_exec)',
++                '<(mkcodecache_u_exec)',
+               ],
+               'outputs': [
+                 '<(SHARED_INTERMEDIATE_DIR)/node_code_cache.cc',
+@@ -340,10 +356,24 @@
+             }, {
+               'actions': [
+                 {
++                  'action_name': 'run_pax_mksnapshot',
++                  'inputs': [
++                    '<(node_mksnapshot_exec)',
++                  ],
++                  'outputs': [
++                    '<(node_mksnapshot_u_exec)',
++                  ],
++                  'action': [
++                    'bash',
++                    '-c',
++                    'mv <(node_mksnapshot_exec) <(node_mksnapshot_u_exec) && paxmark.sh m <(node_mksnapshot_u_exec)',
++                  ],
++                },
++                {
+                   'action_name': 'node_mksnapshot',
+                   'process_outputs_as_sources': 1,
+                   'inputs': [
+-                    '<(node_mksnapshot_exec)',
++                    '<(node_mksnapshot_u_exec)',
+                   ],
+                   'outputs': [
+                     '<(SHARED_INTERMEDIATE_DIR)/node_snapshot.cc',
+diff -urNp node-v15.8.0-orig/tools/v8_gypfiles/v8.gyp node-v15.8.0-dwok/tools/v8_gypfiles/v8.gyp
+--- node-v15.8.0-orig/tools/v8_gypfiles/v8.gyp	2021-02-24 22:21:44.654910571 +0100
++++ node-v15.8.0-dwok/tools/v8_gypfiles/v8.gyp	2021-02-24 22:25:54.834224791 +0100
+@@ -9,6 +9,7 @@
+     'v8_vector_stores%': 0,
+     'v8_embed_script%': "",
+     'mksnapshot_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)mksnapshot<(EXECUTABLE_SUFFIX)',
++    'mksnapshot_u_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)mksnapshot_u<(EXECUTABLE_SUFFIX)',
+     'v8_os_page_size%': 0,
+     'generate_bytecode_output_root': '<(SHARED_INTERMEDIATE_DIR)/generate-bytecode-output-root',
+     'generate_bytecode_builtins_list_output': '<(generate_bytecode_output_root)/builtins-generated/bytecodes-builtins-list.h',
+@@ -1413,7 +1414,7 @@
+       ],
+     },  # bytecode_builtins_list_generator
+     {
+-      'target_name': 'mksnapshot',
++      'target_name': 'mksnapshot_u',
+       'type': 'executable',
+       'dependencies': [
+         'v8_base_without_compiler',
+@@ -1432,6 +1433,27 @@
+           'toolsets': ['host'],
+         }],
+       ],
++    },  # mksnapshot_u
++    {
++      'target_name': 'mksnapshot',
++      'type': 'none',
++      'dependencies': ['mksnapshot_u'],
++      'actions': [
++        {
++          'action_name': 'paxmark_mksnapshot',
++          'inputs': [
++            '<(mksnapshot_u_exec)',
++          ],
++          'outputs': [
++            '<(mksnapshot_exec)',
++          ],
++          'action': [
++            'bash',
++            '-c',
++            'cp <(mksnapshot_u_exec) <(mksnapshot_exec) && paxmark.sh m <(mksnapshot_exec)'
++          ],
++        },
++      ],
+     },  # mksnapshot
+     {
+       'target_name': 'torque',

diff --git a/net-libs/nodejs/nodejs-18.1.0.ebuild b/net-libs/nodejs/nodejs-18.1.0.ebuild
new file mode 100644
index 000000000000..f546bf353cfc
--- /dev/null
+++ b/net-libs/nodejs/nodejs-18.1.0.ebuild
@@ -0,0 +1,230 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..10} )
+PYTHON_REQ_USE="threads(+)"
+
+inherit bash-completion-r1 flag-o-matic pax-utils python-any-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine"
+HOMEPAGE="https://nodejs.org/"
+LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
+
+if [[ ${PV} == *9999 ]]; then
+	inherit git-r3
+	EGIT_REPO_URI="https://github.com/nodejs/node"
+	SLOT="0"
+else
+	SRC_URI="https://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz"
+	SLOT="0/$(ver_cut 1)"
+	KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86 ~amd64-linux ~x64-macos"
+	S="${WORKDIR}/node-v${PV}"
+fi
+
+IUSE="cpu_flags_x86_sse2 debug doc +icu inspector lto +npm pax-kernel +snapshot +ssl +system-icu +system-ssl systemtap test"
+REQUIRED_USE="inspector? ( icu ssl )
+	npm? ( ssl )
+	system-icu? ( icu )
+	system-ssl? ( ssl )"
+
+RESTRICT="!test? ( test )"
+
+RDEPEND=">=app-arch/brotli-1.0.9:=
+	>=dev-libs/libuv-1.40.0:=
+	>=net-dns/c-ares-1.17.2:=
+	>=net-libs/nghttp2-1.41.0:=
+	sys-libs/zlib
+	system-icu? ( >=dev-libs/icu-67:= )
+	system-ssl? ( >=dev-libs/openssl-1.1.1:0= )"
+BDEPEND="${PYTHON_DEPS}
+	sys-apps/coreutils
+	virtual/pkgconfig
+	systemtap? ( dev-util/systemtap )
+	test? ( net-misc/curl )
+	pax-kernel? ( sys-apps/elfix )"
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+	"${FILESDIR}"/${PN}-12.22.5-shared_c-ares_nameser_h.patch
+	"${FILESDIR}"/${PN}-15.2.0-global-npm-config.patch
+)
+
+pkg_pretend() {
+	(use x86 && ! use cpu_flags_x86_sse2) && \
+		die "Your CPU doesn't support the required SSE2 instruction."
+
+	if [[ ${MERGE_TYPE} != "binary" ]]; then
+		if use lto; then
+			if tc-is-gcc; then
+				if [[ $(gcc-major-version) -ge 11 ]]; then
+					# Bug #787158
+					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"
+				fi
+			fi
+		fi
+	fi
+}
+
+src_prepare() {
+	tc-export AR CC CXX PKG_CONFIG
+	export V=1
+	export BUILDTYPE=Release
+
+	# fix compilation on Darwin
+	# https://code.google.com/p/gyp/issues/detail?id=260
+	sed -i -e "/append('-arch/d" tools/gyp/pylib/gyp/xcode_emulation.py || die
+
+	# less verbose install output (stating the same as portage, basically)
+	sed -i -e "/print/d" tools/install.py || die
+
+	# proper libdir, hat tip @ryanpcmcquen https://github.com/iojs/io.js/issues/504
+	local LIBDIR=$(get_libdir)
+	sed -i -e "s|lib/|${LIBDIR}/|g" tools/install.py || die
+	sed -i -e "s/'lib'/'${LIBDIR}'/" deps/npm/lib/npm.js || die
+
+	# Avoid writing a depfile, not useful
+	sed -i -e "/DEPFLAGS =/d" tools/gyp/pylib/gyp/generator/make.py || die
+
+	sed -i -e "/'-O3'/d" common.gypi node.gypi || die
+
+	# debug builds. change install path, remove optimisations and override buildtype
+	if use debug; then
+		sed -i -e "s|out/Release/|out/Debug/|g" tools/install.py || die
+		BUILDTYPE=Debug
+	fi
+
+	# We need to disable mprotect on two files when it builds Bug 694100.
+	use pax-kernel && PATCHES+=( "${FILESDIR}"/${PN}-18.0.0-paxmarking.patch )
+
+	# All this test does is check if the npm CLI produces warnings of any sort,
+	# failing if it does. Overkill, much? Especially given one possible warning
+	# is that there is a newer version of npm available upstream (yes, it does
+	# use the network if available), thus making it a real possibility for this
+	# test to begin failing one day even though it was fine before.
+	rm -f test/parallel/test-release-npm.js
+
+	default
+}
+
+src_configure() {
+	xdg_environment_reset
+
+	# LTO compiler flags are handled by configure.py itself
+	filter-flags '-flto*'
+
+	local myconf=(
+		--shared-brotli
+		--shared-cares
+		--shared-libuv
+		--shared-nghttp2
+		--shared-zlib
+	)
+	use debug && myconf+=( --debug )
+	use lto && myconf+=( --enable-lto )
+	if use system-icu; then
+		myconf+=( --with-intl=system-icu )
+	elif use icu; then
+		myconf+=( --with-intl=full-icu )
+	else
+		myconf+=( --with-intl=none )
+	fi
+	use inspector || myconf+=( --without-inspector )
+	use npm || myconf+=( --without-npm )
+	use snapshot || myconf+=( --without-node-snapshot )
+	if use ssl; then
+		use system-ssl && myconf+=( --shared-openssl --openssl-use-def-ca-store )
+	else
+		myconf+=( --without-ssl )
+	fi
+
+	local myarch=""
+	case ${ABI} in
+		amd64) myarch="x64";;
+		arm) myarch="arm";;
+		arm64) myarch="arm64";;
+		lp64*) myarch="riscv64";;
+		ppc64) myarch="ppc64";;
+		x32) myarch="x32";;
+		x86) myarch="ia32";;
+		*) myarch="${ABI}";;
+	esac
+
+	GYP_DEFINES="linux_use_gold_flags=0
+		linux_use_bundled_binutils=0
+		linux_use_bundled_gold=0" \
+	"${EPYTHON}" configure.py \
+		--prefix="${EPREFIX}"/usr \
+		--dest-cpu=${myarch} \
+		$(use_with systemtap dtrace) \
+		"${myconf[@]}" || die
+}
+
+src_compile() {
+	emake -C out
+}
+
+src_install() {
+	local LIBDIR="${ED}/usr/$(get_libdir)"
+	default
+
+	pax-mark -m "${ED}"/usr/bin/node
+
+	# set up a symlink structure that node-gyp expects..
+	dodir /usr/include/node/deps/{v8,uv}
+	dosym . /usr/include/node/src
+	for var in deps/{uv,v8}/include; do
+		dosym ../.. /usr/include/node/${var}
+	done
+
+	if use doc; then
+		docinto html
+		dodoc -r "${S}"/doc/*
+	fi
+
+	if use npm; then
+		keepdir /etc/npm
+
+		# Install bash completion for `npm`
+		local tmp_npm_completion_file="$(TMPDIR="${T}" mktemp -t npm.XXXXXXXXXX)"
+		"${ED}/usr/bin/npm" completion > "${tmp_npm_completion_file}"
+		newbashcomp "${tmp_npm_completion_file}" npm
+
+		# Move man pages
+		doman "${LIBDIR}"/node_modules/npm/man/man{1,5,7}/*
+
+		# Clean up
+		rm -f "${LIBDIR}"/node_modules/npm/{.mailmap,.npmignore,Makefile}
+		rm -rf "${LIBDIR}"/node_modules/npm/{doc,html,man}
+
+		local find_exp="-or -name"
+		local find_name=()
+		for match in "AUTHORS*" "CHANGELOG*" "CONTRIBUT*" "README*" \
+			".travis.yml" ".eslint*" ".wercker.yml" ".npmignore" \
+			"*.md" "*.markdown" "*.bat" "*.cmd"; do
+			find_name+=( ${find_exp} "${match}" )
+		done
+
+		# Remove various development and/or inappropriate files and
+		# useless docs of dependend packages.
+		find "${LIBDIR}"/node_modules \
+			\( -type d -name examples \) -or \( -type f \( \
+				-iname "LICEN?E*" \
+				"${find_name[@]}" \
+			\) \) -exec rm -rf "{}" \;
+	fi
+
+	mv "${ED}"/usr/share/doc/node "${ED}"/usr/share/doc/${PF} || die
+}
+
+src_test() {
+	if has usersandbox ${FEATURES}; then
+		rm -f "${S}"/test/parallel/test-fs-mkdir.js
+		ewarn "You are emerging ${PN} with 'usersandbox' enabled. Excluding tests known to fail in this mode." \
+			"For full test coverage, emerge =${CATEGORY}/${PF} with 'FEATURES=-usersandbox'."
+	fi
+
+	out/${BUILDTYPE}/cctest || die
+	"${EPYTHON}" tools/test.py --mode=${BUILDTYPE,,} --flaky-tests=dontcare -J message parallel sequential || die
+}


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: net-libs/nodejs/files/, net-libs/nodejs/
@ 2022-05-04 18:25 William Hubbs
  0 siblings, 0 replies; 36+ messages in thread
From: William Hubbs @ 2022-05-04 18:25 UTC (permalink / raw
  To: gentoo-commits

commit:     92041b5ba9b80d6b6e2a493dd45468c82fdbd393
Author:     William Hubbs <williamh <AT> gentoo <DOT> org>
AuthorDate: Wed May  4 18:24:55 2022 +0000
Commit:     William Hubbs <williamh <AT> gentoo <DOT> org>
CommitDate: Wed May  4 18:25:40 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=92041b5b

net-libs/nodejs: update paxmarking patch for nodejs 16.x

Signed-off-by: William Hubbs <williamh <AT> gentoo.org>

 .../nodejs/files/nodejs-16.4.2-paxmarking.patch    | 113 +++++++++++++++++++++
 net-libs/nodejs/nodejs-16.14.2.ebuild              |   2 +-
 2 files changed, 114 insertions(+), 1 deletion(-)

diff --git a/net-libs/nodejs/files/nodejs-16.4.2-paxmarking.patch b/net-libs/nodejs/files/nodejs-16.4.2-paxmarking.patch
new file mode 100644
index 000000000000..41abd1f1917f
--- /dev/null
+++ b/net-libs/nodejs/files/nodejs-16.4.2-paxmarking.patch
@@ -0,0 +1,113 @@
+diff -urNp node-v15.8.0-orig/node.gyp node-v15.8.0-dwok/node.gyp
+--- node-v15.8.0-orig/node.gyp	2021-02-24 22:21:44.202911780 +0100
++++ node-v15.8.0-dwok/node.gyp	2021-02-24 22:25:34.298281739 +0100
+@@ -53,7 +53,9 @@
+       'deps/cjs-module-lexer/dist/lexer.js',
+     ],
+     'node_mksnapshot_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)node_mksnapshot<(EXECUTABLE_SUFFIX)',
++    'node_mksnapshot_u_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)node_mksnapshot_u<(EXECUTABLE_SUFFIX)',
+     'mkcodecache_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)mkcodecache<(EXECUTABLE_SUFFIX)',
++    'mkcodecache_u_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)mkcodecache_u<(EXECUTABLE_SUFFIX)',
+     'conditions': [
+       ['GENERATOR == "ninja"', {
+         'node_text_start_object_path': 'src/large_pages/node_text_start.node_text_start.o'
+@@ -291,10 +293,24 @@
+           ],
+           'actions': [
+             {
++              'action_name': 'run_pax_mkcodecache',
++              'inputs': [
++                '<(mkcodecache_exec)',
++              ],
++              'outputs': [
++                '<(mkcodecache_u_exec)',
++              ],
++              'action': [
++                'bash',
++                '-c',
++                'mv <(mkcodecache_exec) <(mkcodecache_u_exec) && paxmark.sh m <(mkcodecache_u_exec)',
++              ],
++            },
++            {
+               'action_name': 'run_mkcodecache',
+               'process_outputs_as_sources': 1,
+               'inputs': [
+-                '<(mkcodecache_exec)',
++                '<(mkcodecache_u_exec)',
+               ],
+               'outputs': [
+                 '<(SHARED_INTERMEDIATE_DIR)/node_code_cache.cc',
+@@ -316,10 +332,24 @@
+           ],
+           'actions': [
+             {
++              'action_name': 'run_pax_mksnapshot',
++              'inputs': [
++                '<(node_mksnapshot_exec)',
++              ],
++              'outputs': [
++                '<(node_mksnapshot_u_exec)',
++              ],
++              'action': [
++                'bash',
++                '-c',
++                'mv <(node_mksnapshot_exec) <(node_mksnapshot_u_exec) && paxmark.sh m <(node_mksnapshot_u_exec)',
++              ],
++            },
++            {
+               'action_name': 'node_mksnapshot',
+               'process_outputs_as_sources': 1,
+               'inputs': [
+-                '<(node_mksnapshot_exec)',
++                '<(node_mksnapshot_u_exec)',
+               ],
+               'outputs': [
+                 '<(SHARED_INTERMEDIATE_DIR)/node_snapshot.cc',
+diff -urNp node-v15.8.0-orig/tools/v8_gypfiles/v8.gyp node-v15.8.0-dwok/tools/v8_gypfiles/v8.gyp
+--- node-v15.8.0-orig/tools/v8_gypfiles/v8.gyp	2021-02-24 22:21:44.654910571 +0100
++++ node-v15.8.0-dwok/tools/v8_gypfiles/v8.gyp	2021-02-24 22:25:54.834224791 +0100
+@@ -9,6 +9,7 @@
+     'v8_vector_stores%': 0,
+     'v8_embed_script%': "",
+     'mksnapshot_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)mksnapshot<(EXECUTABLE_SUFFIX)',
++    'mksnapshot_u_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)mksnapshot_u<(EXECUTABLE_SUFFIX)',
+     'v8_os_page_size%': 0,
+     'generate_bytecode_output_root': '<(SHARED_INTERMEDIATE_DIR)/generate-bytecode-output-root',
+     'generate_bytecode_builtins_list_output': '<(generate_bytecode_output_root)/builtins-generated/bytecodes-builtins-list.h',
+@@ -1430,7 +1431,7 @@
+       ],
+     },  # bytecode_builtins_list_generator
+     {
+-      'target_name': 'mksnapshot',
++      'target_name': 'mksnapshot_u',
+       'type': 'executable',
+       'dependencies': [
+         'v8_base_without_compiler',
+@@ -1449,6 +1450,27 @@
+           'toolsets': ['host'],
+         }],
+       ],
++    },  # mksnapshot_u
++    {
++      'target_name': 'mksnapshot',
++      'type': 'none',
++      'dependencies': ['mksnapshot_u'],
++      'actions': [
++        {
++          'action_name': 'paxmark_mksnapshot',
++          'inputs': [
++            '<(mksnapshot_u_exec)',
++          ],
++          'outputs': [
++            '<(mksnapshot_exec)',
++          ],
++          'action': [
++            'bash',
++            '-c',
++            'cp <(mksnapshot_u_exec) <(mksnapshot_exec) && paxmark.sh m <(mksnapshot_exec)'
++          ],
++        },
++      ],
+     },  # mksnapshot
+     {
+       'target_name': 'torque',

diff --git a/net-libs/nodejs/nodejs-16.14.2.ebuild b/net-libs/nodejs/nodejs-16.14.2.ebuild
index 2a2901aecff5..d5a7de09fe13 100644
--- a/net-libs/nodejs/nodejs-16.14.2.ebuild
+++ b/net-libs/nodejs/nodejs-16.14.2.ebuild
@@ -96,7 +96,7 @@ src_prepare() {
 	fi
 
 	# We need to disable mprotect on two files when it builds Bug 694100.
-	use pax-kernel && PATCHES+=( "${FILESDIR}"/${PN}-13.8.0-paxmarking.patch )
+	use pax-kernel && PATCHES+=( "${FILESDIR}"/${PN}-16.4.2-paxmarking.patch )
 
 	# All this test does is check if the npm CLI produces warnings of any sort,
 	# failing if it does. Overkill, much? Especially given one possible warning


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: net-libs/nodejs/files/, net-libs/nodejs/
@ 2022-05-04 18:50 William Hubbs
  0 siblings, 0 replies; 36+ messages in thread
From: William Hubbs @ 2022-05-04 18:50 UTC (permalink / raw
  To: gentoo-commits

commit:     d790231b88ab650ac50f754719fa515128ce1119
Author:     William Hubbs <williamh <AT> gentoo <DOT> org>
AuthorDate: Wed May  4 18:49:11 2022 +0000
Commit:     William Hubbs <williamh <AT> gentoo <DOT> org>
CommitDate: Wed May  4 18:49:30 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d790231b

net-libs/nodejs: drop 12.22.5-r1, 12.22.6, 12.22.10

Nodejs 12.x is no longer supported upstream.
Signed-off-by: William Hubbs <williamh <AT> gentoo.org>

 net-libs/nodejs/Manifest                           |   3 -
 .../files/nodejs-12.20.1-fix_ppc64_crashes.patch   |  44 ----
 .../nodejs-12.22.1-jinja_collections_abc.patch     |  95 --------
 net-libs/nodejs/nodejs-12.22.10.ebuild             | 249 ---------------------
 net-libs/nodejs/nodejs-12.22.5-r1.ebuild           | 249 ---------------------
 net-libs/nodejs/nodejs-12.22.6.ebuild              | 249 ---------------------
 6 files changed, 889 deletions(-)

diff --git a/net-libs/nodejs/Manifest b/net-libs/nodejs/Manifest
index 0b7285ce5651..0c6c3c7600cc 100644
--- a/net-libs/nodejs/Manifest
+++ b/net-libs/nodejs/Manifest
@@ -1,6 +1,3 @@
-DIST node-v12.22.10.tar.xz 24089580 BLAKE2B 0ecf0b2ed64cba1bbcab287ccf7e524bd08ce787399d01fb792fd5232983289403a85810bc6eccd090b6d15796c48dc6ea3baf0cb3154e392dc343da53086b81 SHA512 da984e98856ef89eb259346d9d1eae60ff3d255d964f3b09d59851a9c21c86acd0c56b9c888f61423de07afab1c09946c00856c832a1f1a8abc4c671c31e23b1
-DIST node-v12.22.5.tar.xz 23654908 BLAKE2B ca4f304e31f091ae656142035851d6e4427d8b2ddd2a69506dec96efbb1269a19a08e9ab8d44dfe10f8429bc239e4102f3f030adb25e9c41901c7d94b53e88c8 SHA512 80f3c673a1f2af7fffd6aaa556c06b8225034c8413e1a738c19d491aff1b3e6ed388df66ecbff88e4bfbefe1013dac7e3beb301456c2099b6a954ba468b21883
-DIST node-v12.22.6.tar.xz 23664904 BLAKE2B 04dd4fd4cbe39642a1c3dd8639a4d9e3362055f56bc2565303d0095cda1655033ba4e0ce5a969647d2be73df13ddbcccc4907825a94a41b45c0723b3c02ca980 SHA512 d107f1ff7073d2db9f0198f14b0523870e9b262c71055de2e03fba54f87bc98a57dad43d902c0b349957df21de71dc066133d4831eb7eb07f4e548d0ac724fb2
 DIST node-v14.17.5.tar.xz 33585724 BLAKE2B cf79397caad8c81e4096f344f9fdb88d8ecea44b97fe208256dfd4afb750ecdf52142a2dc0430285b9d5117bdd43fa5ce42b4418926eec4d2c7f0a5f5d1a1539 SHA512 9d62c8946d05862d96a13a71b241a097b9f592a9e5f7362c81d8f3c74e7c5546a308b4c74bef34a66cafeef5d1a87d9d3e5ae8bb87d470c1ecf5abb8de0dedb5
 DIST node-v14.17.6.tar.xz 33606464 BLAKE2B c2c449e5eaf8214d7ed4bfab8db0208034cee1d08ef0e1fca478c30fc5cf95be037eb141080dbcfbe4fc58ef734457747dcbd0fe585a0536f9c0bec495435f25 SHA512 581c5698112426042fbf54fa793e56a30cae0c54ce8f23af6ac20d73c69a4f1166c5410f357c5a7b0409a773f99e3b9291e4afffd53b3c0e00569725dc4c47d3
 DIST node-v14.19.0.tar.xz 34486868 BLAKE2B 12e571a366c1d4b2475ef258e338f516bb81e9c08f7e6b7f951decbf371028cdcf32c72181d8504d0890496eaecce0d6b23437b8dad6c6e498d30bf6636bd1e7 SHA512 80573fa3a0882c1f2a40b991f187f49714748ca4c56c78133e2d2be0322f201816eb059a1a7d38ea8a925229c1b1324d0ffc28ff4002d0115bfae44fe87efe97

diff --git a/net-libs/nodejs/files/nodejs-12.20.1-fix_ppc64_crashes.patch b/net-libs/nodejs/files/nodejs-12.20.1-fix_ppc64_crashes.patch
deleted file mode 100644
index 0982d3c81c2a..000000000000
--- a/net-libs/nodejs/files/nodejs-12.20.1-fix_ppc64_crashes.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-Backport of https://github.com/nodejs/node/pull/33866 to nodejs-12
-
---- a/deps/v8/src/compiler/backend/instruction-selector.cc
-+++ b/deps/v8/src/compiler/backend/instruction-selector.cc
-@@ -2788,7 +2788,7 @@
-   switch (call_descriptor->kind()) {
-     case CallDescriptor::kCallAddress: {
-       int misc_field = static_cast<int>(call_descriptor->ParameterCount());
--#if defined(_AIX)
-+#if ABI_USES_FUNCTION_DESCRIPTORS
-       // Highest misc_field bit is used on AIX to indicate if a CFunction call
-       // has function descriptor or not.
-       misc_field |= call_descriptor->HasFunctionDescriptor()
---- a/deps/v8/src/compiler/backend/ppc/code-generator-ppc.cc
-+++ b/deps/v8/src/compiler/backend/ppc/code-generator-ppc.cc
-@@ -1026,7 +1026,7 @@
-       Label start_call;
-       bool isWasmCapiFunction =
-           linkage()->GetIncomingDescriptor()->IsWasmCapiFunction();
--#if defined(_AIX)
-+#if ABI_USES_FUNCTION_DESCRIPTORS
-       // AIX/PPC64BE Linux uses a function descriptor
-       int kNumParametersMask = kHasFunctionDescriptorBitMask - 1;
-       num_parameters = kNumParametersMask & misc_field;
---- a/deps/v8/src/execution/simulator.h
-+++ b/deps/v8/src/execution/simulator.h
-@@ -122,7 +122,7 @@
- 
-   DISABLE_CFI_ICALL Return Call(Args... args) {
-     // When running without a simulator we call the entry directly.
--#if V8_OS_AIX
-+#if ABI_USES_FUNCTION_DESCRIPTORS
-     // AIX ABI requires function descriptors (FD).  Artificially create a pseudo
-     // FD to ensure correct dispatch to generated code.  The 'volatile'
-     // declaration is required to avoid the compiler from not observing the
-@@ -134,7 +134,7 @@
-     return fn(args...);
- #else
-     return fn_ptr_(args...);
--#endif  // V8_OS_AIX
-+#endif  // ABI_USES_FUNCTION_DESCRIPTORS
-   }
- #endif  // USE_SIMULATOR
- 

diff --git a/net-libs/nodejs/files/nodejs-12.22.1-jinja_collections_abc.patch b/net-libs/nodejs/files/nodejs-12.22.1-jinja_collections_abc.patch
deleted file mode 100644
index 5f0df09b6e2e..000000000000
--- a/net-libs/nodejs/files/nodejs-12.22.1-jinja_collections_abc.patch
+++ /dev/null
@@ -1,95 +0,0 @@
---- a/deps/v8/third_party/jinja2/tests.py
-+++ b/deps/v8/third_party/jinja2/tests.py
-@@ -10,7 +10,7 @@
- """
- import operator
- import re
--from collections import Mapping
-+from collections.abc import Mapping
- from jinja2.runtime import Undefined
- from jinja2._compat import text_type, string_types, integer_types
- import decimal
---- a/deps/v8/third_party/jinja2/runtime.py
-+++ b/deps/v8/third_party/jinja2/runtime.py
-@@ -315,7 +315,7 @@ class Context(with_metaclass(ContextMeta)):
- 
- # register the context as mapping if possible
- try:
--    from collections import Mapping
-+    from collections.abc import Mapping
-     Mapping.register(Context)
- except ImportError:
-     pass
---- a/deps/v8/third_party/jinja2/sandbox.py
-+++ b/deps/v8/third_party/jinja2/sandbox.py
-@@ -14,7 +14,7 @@
- """
- import types
- import operator
--from collections import Mapping
-+from collections.abc import Mapping
- from jinja2.environment import Environment
- from jinja2.exceptions import SecurityError
- from jinja2._compat import string_types, PY2
-@@ -79,7 +79,7 @@ except ImportError:
-     pass
- 
- #: register Python 2.6 abstract base classes
--from collections import MutableSet, MutableMapping, MutableSequence
-+from collections.abc import MutableSet, MutableMapping, MutableSequence
- _mutable_set_types += (MutableSet,)
- _mutable_mapping_types += (MutableMapping,)
- _mutable_sequence_types += (MutableSequence,)
---- a/deps/v8/third_party/jinja2/utils.py
-+++ b/deps/v8/third_party/jinja2/utils.py
-@@ -482,7 +482,7 @@ class LRUCache(object):
- 
- # register the LRU cache as mutable mapping if possible
- try:
--    from collections import MutableMapping
-+    from collections.abc import MutableMapping
-     MutableMapping.register(LRUCache)
- except ImportError:
-     pass
---- a/tools/inspector_protocol/jinja2/runtime.py
-+++ b/tools/inspector_protocol/jinja2/runtime.py
-@@ -315,7 +315,7 @@ class Context(with_metaclass(ContextMeta)):
- 
- # register the context as mapping if possible
- try:
--    from collections import Mapping
-+    from collections.abc import Mapping
-     Mapping.register(Context)
- except ImportError:
-     pass
---- a/tools/inspector_protocol/jinja2/sandbox.py
-+++ b/tools/inspector_protocol/jinja2/sandbox.py
-@@ -14,7 +14,7 @@
- """
- import types
- import operator
--from collections import Mapping
-+from collections.abc import Mapping
- from jinja2.environment import Environment
- from jinja2.exceptions import SecurityError
- from jinja2._compat import string_types, PY2
-@@ -79,7 +79,7 @@ except ImportError:
-     pass
- 
- #: register Python 2.6 abstract base classes
--from collections import MutableSet, MutableMapping, MutableSequence
-+from collections.abc import MutableSet, MutableMapping, MutableSequence
- _mutable_set_types += (MutableSet,)
- _mutable_mapping_types += (MutableMapping,)
- _mutable_sequence_types += (MutableSequence,)
---- a/tools/inspector_protocol/jinja2/tests.py
-+++ b/tools/inspector_protocol/jinja2/tests.py
-@@ -10,7 +10,7 @@
- """
- import operator
- import re
--from collections import Mapping
-+from collections.abc import Mapping
- from jinja2.runtime import Undefined
- from jinja2._compat import text_type, string_types, integer_types
- import decimal

diff --git a/net-libs/nodejs/nodejs-12.22.10.ebuild b/net-libs/nodejs/nodejs-12.22.10.ebuild
deleted file mode 100644
index 4638f6304808..000000000000
--- a/net-libs/nodejs/nodejs-12.22.10.ebuild
+++ /dev/null
@@ -1,249 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{8..10} )
-PYTHON_REQ_USE="threads(+)"
-
-inherit bash-completion-r1 flag-o-matic pax-utils python-any-r1 toolchain-funcs xdg-utils
-
-DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine"
-HOMEPAGE="https://nodejs.org/"
-LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
-
-if [[ ${PV} == *9999 ]]; then
-	inherit git-r3
-	EGIT_REPO_URI="https://github.com/nodejs/node"
-	SLOT="0"
-else
-	SRC_URI="https://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz"
-	SLOT="0/$(ver_cut 1)"
-	KEYWORDS="amd64 ~arm arm64 ppc64 -riscv x86 ~amd64-linux ~x64-macos"
-	S="${WORKDIR}/node-v${PV}"
-fi
-
-IUSE="cpu_flags_x86_sse2 debug doc icu inspector lto +npm +snapshot +ssl +system-ssl systemtap test"
-REQUIRED_USE="
-	inspector? ( icu ssl )
-	npm? ( ssl )
-	system-ssl? ( ssl )
-"
-
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	>=app-arch/brotli-1.0.9:=
-	>=dev-libs/libuv-1.39.0:=
-	>=net-dns/c-ares-1.17.2:=
-	>=net-libs/http-parser-2.9.3:=
-	>=net-libs/nghttp2-1.40.0:=
-	sys-libs/zlib
-	icu? ( >=dev-libs/icu-64.2:= )
-	system-ssl? (
-		>=dev-libs/openssl-1.1.1:0=
-		<dev-libs/openssl-3.0.0_beta1:0=
-	)
-"
-BDEPEND="
-	${PYTHON_DEPS}
-	sys-apps/coreutils
-	virtual/pkgconfig
-	systemtap? ( dev-util/systemtap )
-	test? ( net-misc/curl )
-"
-DEPEND="
-	${RDEPEND}
-"
-PATCHES=(
-	"${FILESDIR}"/${P}-global-npm-config.patch
-	"${FILESDIR}"/${PN}-12.20.1-fix_ppc64_crashes.patch
-	"${FILESDIR}"/${PN}-12.22.1-jinja_collections_abc.patch
-	"${FILESDIR}"/${PN}-12.22.1-uvwasi_shared_libuv.patch
-	"${FILESDIR}"/${PN}-12.22.5-shared_c-ares_nameser_h.patch
-	"${FILESDIR}"/${PN}-99999999-llhttp.patch
-)
-
-pkg_pretend() {
-	(use x86 && ! use cpu_flags_x86_sse2) && \
-		die "Your CPU doesn't support the required SSE2 instruction."
-
-	if [[ ${MERGE_TYPE} != "binary" ]]; then
-		if use lto; then
-			if tc-is-gcc; then
-				if [[ $(gcc-major-version) -ge 11 ]]; then
-					# Bug #787158
-					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"
-				fi
-			else
-				# configure.py will abort on this later if we do not
-				die "${PN} only supports LTO for gcc"
-			fi
-		fi
-	fi
-}
-
-src_prepare() {
-	tc-export CC CXX PKG_CONFIG
-	export V=1
-	export BUILDTYPE=Release
-
-	# fix compilation on Darwin
-	# https://code.google.com/p/gyp/issues/detail?id=260
-	sed -i -e "/append('-arch/d" tools/gyp/pylib/gyp/xcode_emulation.py || die
-
-	# less verbose install output (stating the same as portage, basically)
-	sed -i -e "/print/d" tools/install.py || die
-
-	# proper libdir, hat tip @ryanpcmcquen https://github.com/iojs/io.js/issues/504
-	local LIBDIR=$(get_libdir)
-	sed -i -e "s|lib/|${LIBDIR}/|g" tools/install.py || die
-	sed -i -e "s/'lib'/'${LIBDIR}'/" deps/npm/lib/npm.js || die
-
-	# Avoid writing a depfile, not useful
-	sed -i -e "/DEPFLAGS =/d" tools/gyp/pylib/gyp/generator/make.py || die
-
-	sed -i -e "/'-O3'/d" common.gypi node.gypi || die
-
-	# Known-to-fail test of a deprecated, legacy HTTP parser. Just don't bother.
-	rm -f test/parallel/test-http-transfer-encoding-smuggling-legacy.js
-
-	# debug builds. change install path, remove optimisations and override buildtype
-	if use debug; then
-		sed -i -e "s|out/Release/|out/Debug/|g" tools/install.py || die
-		BUILDTYPE=Debug
-	fi
-
-	default
-}
-
-src_configure() {
-	xdg_environment_reset
-
-	# LTO compiler flags are handled by configure.py itself
-	filter-flags '-flto*'
-
-	local myconf=(
-		--shared-brotli
-		--shared-cares
-		--shared-http-parser
-		--shared-libuv
-		--shared-nghttp2
-		--shared-zlib
-	)
-	use debug && myconf+=( --debug )
-	use lto && myconf+=( --enable-lto )
-	use icu && myconf+=( --with-intl=system-icu ) || myconf+=( --with-intl=none )
-	use inspector || myconf+=( --without-inspector )
-	use npm || myconf+=( --without-npm )
-	use snapshot || myconf+=( --without-node-snapshot )
-	if use ssl; then
-		use system-ssl && myconf+=( --shared-openssl --openssl-use-def-ca-store )
-	else
-		myconf+=( --without-ssl )
-	fi
-
-	local myarch=""
-	case ${ABI} in
-		amd64) myarch="x64";;
-		arm) myarch="arm";;
-		arm64) myarch="arm64";;
-		ppc64) myarch="ppc64";;
-		x32) myarch="x32";;
-		x86) myarch="ia32";;
-		*) myarch="${ABI}";;
-	esac
-
-	GYP_DEFINES="linux_use_gold_flags=0
-		linux_use_bundled_binutils=0
-		linux_use_bundled_gold=0" \
-	"${EPYTHON}" configure.py \
-		--prefix="${EPREFIX}"/usr \
-		--dest-cpu=${myarch} \
-		$(use_with systemtap dtrace) \
-		"${myconf[@]}" || die
-}
-
-src_compile() {
-	emake -C out mksnapshot
-	pax-mark m "out/${BUILDTYPE}/mksnapshot"
-	emake -C out
-}
-
-src_install() {
-	local LIBDIR="${ED}/usr/$(get_libdir)"
-	default
-
-	pax-mark -m "${ED}"/usr/bin/node
-
-	# set up a symlink structure that node-gyp expects..
-	dodir /usr/include/node/deps/{v8,uv}
-	dosym . /usr/include/node/src
-	for var in deps/{uv,v8}/include; do
-		dosym ../.. /usr/include/node/${var}
-	done
-
-	if use doc; then
-		docinto html
-		dodoc -r "${S}"/doc/*
-	fi
-
-	if use npm; then
-		dodir /etc/npm
-
-		# Install bash completion for `npm`
-		# We need to temporarily replace default config path since
-		# npm otherwise tries to write outside of the sandbox
-		local npm_config="usr/$(get_libdir)/node_modules/npm/lib/config/core.js"
-		sed -i -e "s|'/etc'|'${ED}/etc'|g" "${ED}/${npm_config}" || die
-		local tmp_npm_completion_file="$(TMPDIR="${T}" mktemp -t npm.XXXXXXXXXX)"
-		"${ED}/usr/bin/npm" completion > "${tmp_npm_completion_file}"
-		newbashcomp "${tmp_npm_completion_file}" npm
-		sed -i -e "s|'${ED}/etc'|'/etc'|g" "${ED}/${npm_config}" || die
-
-		# Move man pages
-		doman "${LIBDIR}"/node_modules/npm/man/man{1,5,7}/*
-
-		# Clean up
-		rm -f "${LIBDIR}"/node_modules/npm/{.mailmap,.npmignore,Makefile}
-		rm -rf "${LIBDIR}"/node_modules/npm/{doc,html,man}
-
-		local find_exp="-or -name"
-		local find_name=()
-		for match in "AUTHORS*" "CHANGELOG*" "CONTRIBUT*" "README*" \
-			".travis.yml" ".eslint*" ".wercker.yml" ".npmignore" \
-			"*.md" "*.markdown" "*.bat" "*.cmd"; do
-			find_name+=( ${find_exp} "${match}" )
-		done
-
-		# Remove various development and/or inappropriate files and
-		# useless docs of dependend packages.
-		find "${LIBDIR}"/node_modules \
-			\( -type d -name examples \) -or \( -type f \( \
-				-iname "LICEN?E*" \
-				"${find_name[@]}" \
-			\) \) -exec rm -rf "{}" \;
-	fi
-
-	mv "${ED}"/usr/share/doc/node "${ED}"/usr/share/doc/${PF} || die
-}
-
-src_test() {
-	if has usersandbox ${FEATURES}; then
-		rm -f "${S}"/test/parallel/test-fs-mkdir.js
-		ewarn "You are emerging ${PN} with 'usersandbox' enabled. Excluding tests known to fail in this mode." \
-			"For full test coverage, emerge =${CATEGORY}/${PF} with 'FEATURES=-usersandbox'."
-	fi
-
-	out/${BUILDTYPE}/cctest || die
-	"${PYTHON}" tools/test.py --mode=${BUILDTYPE,,} --flaky-tests=dontcare -J message parallel sequential || die
-}
-
-pkg_postinst() {
-	elog "The global npm config lives in /etc/npm. This deviates slightly"
-	elog "from upstream which otherwise would have it live in /usr/etc/."
-	elog ""
-	elog "Protip: When using node-gyp to install native modules, you can"
-	elog "avoid having to download extras by doing the following:"
-	elog "$ node-gyp --nodedir /usr/include/node <command>"
-}

diff --git a/net-libs/nodejs/nodejs-12.22.5-r1.ebuild b/net-libs/nodejs/nodejs-12.22.5-r1.ebuild
deleted file mode 100644
index 1e716cbf5e85..000000000000
--- a/net-libs/nodejs/nodejs-12.22.5-r1.ebuild
+++ /dev/null
@@ -1,249 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{8..10} )
-PYTHON_REQ_USE="threads(+)"
-
-inherit bash-completion-r1 flag-o-matic pax-utils python-any-r1 toolchain-funcs xdg-utils
-
-DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine"
-HOMEPAGE="https://nodejs.org/"
-LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
-
-if [[ ${PV} == *9999 ]]; then
-	inherit git-r3
-	EGIT_REPO_URI="https://github.com/nodejs/node"
-	SLOT="0"
-else
-	SRC_URI="https://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz"
-	SLOT="0/$(ver_cut 1)"
-	KEYWORDS="amd64 arm arm64 ppc64 -riscv x86 ~amd64-linux ~x64-macos"
-	S="${WORKDIR}/node-v${PV}"
-fi
-
-IUSE="cpu_flags_x86_sse2 debug doc icu inspector lto +npm +snapshot +ssl +system-ssl systemtap test"
-REQUIRED_USE="
-	inspector? ( icu ssl )
-	npm? ( ssl )
-	system-ssl? ( ssl )
-"
-
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	>=app-arch/brotli-1.0.9:=
-	>=dev-libs/libuv-1.39.0:=
-	>=net-dns/c-ares-1.17.2:=
-	>=net-libs/http-parser-2.9.3:=
-	>=net-libs/nghttp2-1.40.0:=
-	sys-libs/zlib
-	icu? ( >=dev-libs/icu-64.2:= )
-	system-ssl? (
-		>=dev-libs/openssl-1.1.1:0=
-		<dev-libs/openssl-3.0.0_beta1:0=
-	)
-"
-BDEPEND="
-	${PYTHON_DEPS}
-	sys-apps/coreutils
-	virtual/pkgconfig
-	systemtap? ( dev-util/systemtap )
-	test? ( net-misc/curl )
-"
-DEPEND="
-	${RDEPEND}
-"
-PATCHES=(
-	"${FILESDIR}"/${PN}-10.3.0-global-npm-config.patch
-	"${FILESDIR}"/${PN}-12.20.1-fix_ppc64_crashes.patch
-	"${FILESDIR}"/${PN}-12.22.1-jinja_collections_abc.patch
-	"${FILESDIR}"/${PN}-12.22.1-uvwasi_shared_libuv.patch
-	"${FILESDIR}"/${PN}-12.22.5-shared_c-ares_nameser_h.patch
-	"${FILESDIR}"/${PN}-99999999-llhttp.patch
-)
-
-pkg_pretend() {
-	(use x86 && ! use cpu_flags_x86_sse2) && \
-		die "Your CPU doesn't support the required SSE2 instruction."
-
-	if [[ ${MERGE_TYPE} != "binary" ]]; then
-		if use lto; then
-			if tc-is-gcc; then
-				if [[ $(gcc-major-version) -ge 11 ]]; then
-					# Bug #787158
-					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"
-				fi
-			else
-				# configure.py will abort on this later if we do not
-				die "${PN} only supports LTO for gcc"
-			fi
-		fi
-	fi
-}
-
-src_prepare() {
-	tc-export CC CXX PKG_CONFIG
-	export V=1
-	export BUILDTYPE=Release
-
-	# fix compilation on Darwin
-	# https://code.google.com/p/gyp/issues/detail?id=260
-	sed -i -e "/append('-arch/d" tools/gyp/pylib/gyp/xcode_emulation.py || die
-
-	# less verbose install output (stating the same as portage, basically)
-	sed -i -e "/print/d" tools/install.py || die
-
-	# proper libdir, hat tip @ryanpcmcquen https://github.com/iojs/io.js/issues/504
-	local LIBDIR=$(get_libdir)
-	sed -i -e "s|lib/|${LIBDIR}/|g" tools/install.py || die
-	sed -i -e "s/'lib'/'${LIBDIR}'/" deps/npm/lib/npm.js || die
-
-	# Avoid writing a depfile, not useful
-	sed -i -e "/DEPFLAGS =/d" tools/gyp/pylib/gyp/generator/make.py || die
-
-	sed -i -e "/'-O3'/d" common.gypi node.gypi || die
-
-	# Known-to-fail test of a deprecated, legacy HTTP parser. Just don't bother.
-	rm -f test/parallel/test-http-transfer-encoding-smuggling-legacy.js
-
-	# debug builds. change install path, remove optimisations and override buildtype
-	if use debug; then
-		sed -i -e "s|out/Release/|out/Debug/|g" tools/install.py || die
-		BUILDTYPE=Debug
-	fi
-
-	default
-}
-
-src_configure() {
-	xdg_environment_reset
-
-	# LTO compiler flags are handled by configure.py itself
-	filter-flags '-flto*'
-
-	local myconf=(
-		--shared-brotli
-		--shared-cares
-		--shared-http-parser
-		--shared-libuv
-		--shared-nghttp2
-		--shared-zlib
-	)
-	use debug && myconf+=( --debug )
-	use lto && myconf+=( --enable-lto )
-	use icu && myconf+=( --with-intl=system-icu ) || myconf+=( --with-intl=none )
-	use inspector || myconf+=( --without-inspector )
-	use npm || myconf+=( --without-npm )
-	use snapshot || myconf+=( --without-node-snapshot )
-	if use ssl; then
-		use system-ssl && myconf+=( --shared-openssl --openssl-use-def-ca-store )
-	else
-		myconf+=( --without-ssl )
-	fi
-
-	local myarch=""
-	case ${ABI} in
-		amd64) myarch="x64";;
-		arm) myarch="arm";;
-		arm64) myarch="arm64";;
-		ppc64) myarch="ppc64";;
-		x32) myarch="x32";;
-		x86) myarch="ia32";;
-		*) myarch="${ABI}";;
-	esac
-
-	GYP_DEFINES="linux_use_gold_flags=0
-		linux_use_bundled_binutils=0
-		linux_use_bundled_gold=0" \
-	"${EPYTHON}" configure.py \
-		--prefix="${EPREFIX}"/usr \
-		--dest-cpu=${myarch} \
-		$(use_with systemtap dtrace) \
-		"${myconf[@]}" || die
-}
-
-src_compile() {
-	emake -C out mksnapshot
-	pax-mark m "out/${BUILDTYPE}/mksnapshot"
-	emake -C out
-}
-
-src_install() {
-	local LIBDIR="${ED}/usr/$(get_libdir)"
-	default
-
-	pax-mark -m "${ED}"/usr/bin/node
-
-	# set up a symlink structure that node-gyp expects..
-	dodir /usr/include/node/deps/{v8,uv}
-	dosym . /usr/include/node/src
-	for var in deps/{uv,v8}/include; do
-		dosym ../.. /usr/include/node/${var}
-	done
-
-	if use doc; then
-		docinto html
-		dodoc -r "${S}"/doc/*
-	fi
-
-	if use npm; then
-		dodir /etc/npm
-
-		# Install bash completion for `npm`
-		# We need to temporarily replace default config path since
-		# npm otherwise tries to write outside of the sandbox
-		local npm_config="usr/$(get_libdir)/node_modules/npm/lib/config/core.js"
-		sed -i -e "s|'/etc'|'${ED}/etc'|g" "${ED}/${npm_config}" || die
-		local tmp_npm_completion_file="$(TMPDIR="${T}" mktemp -t npm.XXXXXXXXXX)"
-		"${ED}/usr/bin/npm" completion > "${tmp_npm_completion_file}"
-		newbashcomp "${tmp_npm_completion_file}" npm
-		sed -i -e "s|'${ED}/etc'|'/etc'|g" "${ED}/${npm_config}" || die
-
-		# Move man pages
-		doman "${LIBDIR}"/node_modules/npm/man/man{1,5,7}/*
-
-		# Clean up
-		rm -f "${LIBDIR}"/node_modules/npm/{.mailmap,.npmignore,Makefile}
-		rm -rf "${LIBDIR}"/node_modules/npm/{doc,html,man}
-
-		local find_exp="-or -name"
-		local find_name=()
-		for match in "AUTHORS*" "CHANGELOG*" "CONTRIBUT*" "README*" \
-			".travis.yml" ".eslint*" ".wercker.yml" ".npmignore" \
-			"*.md" "*.markdown" "*.bat" "*.cmd"; do
-			find_name+=( ${find_exp} "${match}" )
-		done
-
-		# Remove various development and/or inappropriate files and
-		# useless docs of dependend packages.
-		find "${LIBDIR}"/node_modules \
-			\( -type d -name examples \) -or \( -type f \( \
-				-iname "LICEN?E*" \
-				"${find_name[@]}" \
-			\) \) -exec rm -rf "{}" \;
-	fi
-
-	mv "${ED}"/usr/share/doc/node "${ED}"/usr/share/doc/${PF} || die
-}
-
-src_test() {
-	if has usersandbox ${FEATURES}; then
-		rm -f "${S}"/test/parallel/test-fs-mkdir.js
-		ewarn "You are emerging ${PN} with 'usersandbox' enabled. Excluding tests known to fail in this mode." \
-			"For full test coverage, emerge =${CATEGORY}/${PF} with 'FEATURES=-usersandbox'."
-	fi
-
-	out/${BUILDTYPE}/cctest || die
-	"${PYTHON}" tools/test.py --mode=${BUILDTYPE,,} --flaky-tests=dontcare -J message parallel sequential || die
-}
-
-pkg_postinst() {
-	elog "The global npm config lives in /etc/npm. This deviates slightly"
-	elog "from upstream which otherwise would have it live in /usr/etc/."
-	elog ""
-	elog "Protip: When using node-gyp to install native modules, you can"
-	elog "avoid having to download extras by doing the following:"
-	elog "$ node-gyp --nodedir /usr/include/node <command>"
-}

diff --git a/net-libs/nodejs/nodejs-12.22.6.ebuild b/net-libs/nodejs/nodejs-12.22.6.ebuild
deleted file mode 100644
index fc7f6f38aaa1..000000000000
--- a/net-libs/nodejs/nodejs-12.22.6.ebuild
+++ /dev/null
@@ -1,249 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{8..10} )
-PYTHON_REQ_USE="threads(+)"
-
-inherit bash-completion-r1 flag-o-matic pax-utils python-any-r1 toolchain-funcs xdg-utils
-
-DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine"
-HOMEPAGE="https://nodejs.org/"
-LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
-
-if [[ ${PV} == *9999 ]]; then
-	inherit git-r3
-	EGIT_REPO_URI="https://github.com/nodejs/node"
-	SLOT="0"
-else
-	SRC_URI="https://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz"
-	SLOT="0/$(ver_cut 1)"
-	KEYWORDS="amd64 arm arm64 ppc64 -riscv x86 ~amd64-linux ~x64-macos"
-	S="${WORKDIR}/node-v${PV}"
-fi
-
-IUSE="cpu_flags_x86_sse2 debug doc icu inspector lto +npm +snapshot +ssl +system-ssl systemtap test"
-REQUIRED_USE="
-	inspector? ( icu ssl )
-	npm? ( ssl )
-	system-ssl? ( ssl )
-"
-
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	>=app-arch/brotli-1.0.9:=
-	>=dev-libs/libuv-1.39.0:=
-	>=net-dns/c-ares-1.17.2:=
-	>=net-libs/http-parser-2.9.3:=
-	>=net-libs/nghttp2-1.40.0:=
-	sys-libs/zlib
-	icu? ( >=dev-libs/icu-64.2:= )
-	system-ssl? (
-		>=dev-libs/openssl-1.1.1:0=
-		<dev-libs/openssl-3.0.0_beta1:0=
-	)
-"
-BDEPEND="
-	${PYTHON_DEPS}
-	sys-apps/coreutils
-	virtual/pkgconfig
-	systemtap? ( dev-util/systemtap )
-	test? ( net-misc/curl )
-"
-DEPEND="
-	${RDEPEND}
-"
-PATCHES=(
-	"${FILESDIR}"/${PN}-10.3.0-global-npm-config.patch
-	"${FILESDIR}"/${PN}-12.20.1-fix_ppc64_crashes.patch
-	"${FILESDIR}"/${PN}-12.22.1-jinja_collections_abc.patch
-	"${FILESDIR}"/${PN}-12.22.1-uvwasi_shared_libuv.patch
-	"${FILESDIR}"/${PN}-12.22.5-shared_c-ares_nameser_h.patch
-	"${FILESDIR}"/${PN}-99999999-llhttp.patch
-)
-
-pkg_pretend() {
-	(use x86 && ! use cpu_flags_x86_sse2) && \
-		die "Your CPU doesn't support the required SSE2 instruction."
-
-	if [[ ${MERGE_TYPE} != "binary" ]]; then
-		if use lto; then
-			if tc-is-gcc; then
-				if [[ $(gcc-major-version) -ge 11 ]]; then
-					# Bug #787158
-					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"
-				fi
-			else
-				# configure.py will abort on this later if we do not
-				die "${PN} only supports LTO for gcc"
-			fi
-		fi
-	fi
-}
-
-src_prepare() {
-	tc-export CC CXX PKG_CONFIG
-	export V=1
-	export BUILDTYPE=Release
-
-	# fix compilation on Darwin
-	# https://code.google.com/p/gyp/issues/detail?id=260
-	sed -i -e "/append('-arch/d" tools/gyp/pylib/gyp/xcode_emulation.py || die
-
-	# less verbose install output (stating the same as portage, basically)
-	sed -i -e "/print/d" tools/install.py || die
-
-	# proper libdir, hat tip @ryanpcmcquen https://github.com/iojs/io.js/issues/504
-	local LIBDIR=$(get_libdir)
-	sed -i -e "s|lib/|${LIBDIR}/|g" tools/install.py || die
-	sed -i -e "s/'lib'/'${LIBDIR}'/" deps/npm/lib/npm.js || die
-
-	# Avoid writing a depfile, not useful
-	sed -i -e "/DEPFLAGS =/d" tools/gyp/pylib/gyp/generator/make.py || die
-
-	sed -i -e "/'-O3'/d" common.gypi node.gypi || die
-
-	# Known-to-fail test of a deprecated, legacy HTTP parser. Just don't bother.
-	rm -f test/parallel/test-http-transfer-encoding-smuggling-legacy.js
-
-	# debug builds. change install path, remove optimisations and override buildtype
-	if use debug; then
-		sed -i -e "s|out/Release/|out/Debug/|g" tools/install.py || die
-		BUILDTYPE=Debug
-	fi
-
-	default
-}
-
-src_configure() {
-	xdg_environment_reset
-
-	# LTO compiler flags are handled by configure.py itself
-	filter-flags '-flto*'
-
-	local myconf=(
-		--shared-brotli
-		--shared-cares
-		--shared-http-parser
-		--shared-libuv
-		--shared-nghttp2
-		--shared-zlib
-	)
-	use debug && myconf+=( --debug )
-	use lto && myconf+=( --enable-lto )
-	use icu && myconf+=( --with-intl=system-icu ) || myconf+=( --with-intl=none )
-	use inspector || myconf+=( --without-inspector )
-	use npm || myconf+=( --without-npm )
-	use snapshot || myconf+=( --without-node-snapshot )
-	if use ssl; then
-		use system-ssl && myconf+=( --shared-openssl --openssl-use-def-ca-store )
-	else
-		myconf+=( --without-ssl )
-	fi
-
-	local myarch=""
-	case ${ABI} in
-		amd64) myarch="x64";;
-		arm) myarch="arm";;
-		arm64) myarch="arm64";;
-		ppc64) myarch="ppc64";;
-		x32) myarch="x32";;
-		x86) myarch="ia32";;
-		*) myarch="${ABI}";;
-	esac
-
-	GYP_DEFINES="linux_use_gold_flags=0
-		linux_use_bundled_binutils=0
-		linux_use_bundled_gold=0" \
-	"${EPYTHON}" configure.py \
-		--prefix="${EPREFIX}"/usr \
-		--dest-cpu=${myarch} \
-		$(use_with systemtap dtrace) \
-		"${myconf[@]}" || die
-}
-
-src_compile() {
-	emake -C out mksnapshot
-	pax-mark m "out/${BUILDTYPE}/mksnapshot"
-	emake -C out
-}
-
-src_install() {
-	local LIBDIR="${ED}/usr/$(get_libdir)"
-	default
-
-	pax-mark -m "${ED}"/usr/bin/node
-
-	# set up a symlink structure that node-gyp expects..
-	dodir /usr/include/node/deps/{v8,uv}
-	dosym . /usr/include/node/src
-	for var in deps/{uv,v8}/include; do
-		dosym ../.. /usr/include/node/${var}
-	done
-
-	if use doc; then
-		docinto html
-		dodoc -r "${S}"/doc/*
-	fi
-
-	if use npm; then
-		dodir /etc/npm
-
-		# Install bash completion for `npm`
-		# We need to temporarily replace default config path since
-		# npm otherwise tries to write outside of the sandbox
-		local npm_config="usr/$(get_libdir)/node_modules/npm/lib/config/core.js"
-		sed -i -e "s|'/etc'|'${ED}/etc'|g" "${ED}/${npm_config}" || die
-		local tmp_npm_completion_file="$(TMPDIR="${T}" mktemp -t npm.XXXXXXXXXX)"
-		"${ED}/usr/bin/npm" completion > "${tmp_npm_completion_file}"
-		newbashcomp "${tmp_npm_completion_file}" npm
-		sed -i -e "s|'${ED}/etc'|'/etc'|g" "${ED}/${npm_config}" || die
-
-		# Move man pages
-		doman "${LIBDIR}"/node_modules/npm/man/man{1,5,7}/*
-
-		# Clean up
-		rm -f "${LIBDIR}"/node_modules/npm/{.mailmap,.npmignore,Makefile}
-		rm -rf "${LIBDIR}"/node_modules/npm/{doc,html,man}
-
-		local find_exp="-or -name"
-		local find_name=()
-		for match in "AUTHORS*" "CHANGELOG*" "CONTRIBUT*" "README*" \
-			".travis.yml" ".eslint*" ".wercker.yml" ".npmignore" \
-			"*.md" "*.markdown" "*.bat" "*.cmd"; do
-			find_name+=( ${find_exp} "${match}" )
-		done
-
-		# Remove various development and/or inappropriate files and
-		# useless docs of dependend packages.
-		find "${LIBDIR}"/node_modules \
-			\( -type d -name examples \) -or \( -type f \( \
-				-iname "LICEN?E*" \
-				"${find_name[@]}" \
-			\) \) -exec rm -rf "{}" \;
-	fi
-
-	mv "${ED}"/usr/share/doc/node "${ED}"/usr/share/doc/${PF} || die
-}
-
-src_test() {
-	if has usersandbox ${FEATURES}; then
-		rm -f "${S}"/test/parallel/test-fs-mkdir.js
-		ewarn "You are emerging ${PN} with 'usersandbox' enabled. Excluding tests known to fail in this mode." \
-			"For full test coverage, emerge =${CATEGORY}/${PF} with 'FEATURES=-usersandbox'."
-	fi
-
-	out/${BUILDTYPE}/cctest || die
-	"${PYTHON}" tools/test.py --mode=${BUILDTYPE,,} --flaky-tests=dontcare -J message parallel sequential || die
-}
-
-pkg_postinst() {
-	elog "The global npm config lives in /etc/npm. This deviates slightly"
-	elog "from upstream which otherwise would have it live in /usr/etc/."
-	elog ""
-	elog "Protip: When using node-gyp to install native modules, you can"
-	elog "avoid having to download extras by doing the following:"
-	elog "$ node-gyp --nodedir /usr/include/node <command>"
-}


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: net-libs/nodejs/files/, net-libs/nodejs/
@ 2022-05-04 19:02 William Hubbs
  0 siblings, 0 replies; 36+ messages in thread
From: William Hubbs @ 2022-05-04 19:02 UTC (permalink / raw
  To: gentoo-commits

commit:     06150adeff078a4cefa44939362f24059dbabfc2
Author:     William Hubbs <williamh <AT> gentoo <DOT> org>
AuthorDate: Wed May  4 19:00:49 2022 +0000
Commit:     William Hubbs <williamh <AT> gentoo <DOT> org>
CommitDate: Wed May  4 19:01:47 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=06150ade

Revert "net-libs/nodejs: drop 12.22.5-r1, 12.22.6, 12.22.10"

This reverts commit d790231b88ab650ac50f754719fa515128ce1119.
let's wait for node 18 to go stable.

Signed-off-by: William Hubbs <williamh <AT> gentoo.org>

 net-libs/nodejs/Manifest                           |   3 +
 .../files/nodejs-12.20.1-fix_ppc64_crashes.patch   |  44 ++++
 .../nodejs-12.22.1-jinja_collections_abc.patch     |  95 ++++++++
 net-libs/nodejs/nodejs-12.22.10.ebuild             | 249 +++++++++++++++++++++
 net-libs/nodejs/nodejs-12.22.5-r1.ebuild           | 249 +++++++++++++++++++++
 net-libs/nodejs/nodejs-12.22.6.ebuild              | 249 +++++++++++++++++++++
 6 files changed, 889 insertions(+)

diff --git a/net-libs/nodejs/Manifest b/net-libs/nodejs/Manifest
index 0c6c3c7600cc..0b7285ce5651 100644
--- a/net-libs/nodejs/Manifest
+++ b/net-libs/nodejs/Manifest
@@ -1,3 +1,6 @@
+DIST node-v12.22.10.tar.xz 24089580 BLAKE2B 0ecf0b2ed64cba1bbcab287ccf7e524bd08ce787399d01fb792fd5232983289403a85810bc6eccd090b6d15796c48dc6ea3baf0cb3154e392dc343da53086b81 SHA512 da984e98856ef89eb259346d9d1eae60ff3d255d964f3b09d59851a9c21c86acd0c56b9c888f61423de07afab1c09946c00856c832a1f1a8abc4c671c31e23b1
+DIST node-v12.22.5.tar.xz 23654908 BLAKE2B ca4f304e31f091ae656142035851d6e4427d8b2ddd2a69506dec96efbb1269a19a08e9ab8d44dfe10f8429bc239e4102f3f030adb25e9c41901c7d94b53e88c8 SHA512 80f3c673a1f2af7fffd6aaa556c06b8225034c8413e1a738c19d491aff1b3e6ed388df66ecbff88e4bfbefe1013dac7e3beb301456c2099b6a954ba468b21883
+DIST node-v12.22.6.tar.xz 23664904 BLAKE2B 04dd4fd4cbe39642a1c3dd8639a4d9e3362055f56bc2565303d0095cda1655033ba4e0ce5a969647d2be73df13ddbcccc4907825a94a41b45c0723b3c02ca980 SHA512 d107f1ff7073d2db9f0198f14b0523870e9b262c71055de2e03fba54f87bc98a57dad43d902c0b349957df21de71dc066133d4831eb7eb07f4e548d0ac724fb2
 DIST node-v14.17.5.tar.xz 33585724 BLAKE2B cf79397caad8c81e4096f344f9fdb88d8ecea44b97fe208256dfd4afb750ecdf52142a2dc0430285b9d5117bdd43fa5ce42b4418926eec4d2c7f0a5f5d1a1539 SHA512 9d62c8946d05862d96a13a71b241a097b9f592a9e5f7362c81d8f3c74e7c5546a308b4c74bef34a66cafeef5d1a87d9d3e5ae8bb87d470c1ecf5abb8de0dedb5
 DIST node-v14.17.6.tar.xz 33606464 BLAKE2B c2c449e5eaf8214d7ed4bfab8db0208034cee1d08ef0e1fca478c30fc5cf95be037eb141080dbcfbe4fc58ef734457747dcbd0fe585a0536f9c0bec495435f25 SHA512 581c5698112426042fbf54fa793e56a30cae0c54ce8f23af6ac20d73c69a4f1166c5410f357c5a7b0409a773f99e3b9291e4afffd53b3c0e00569725dc4c47d3
 DIST node-v14.19.0.tar.xz 34486868 BLAKE2B 12e571a366c1d4b2475ef258e338f516bb81e9c08f7e6b7f951decbf371028cdcf32c72181d8504d0890496eaecce0d6b23437b8dad6c6e498d30bf6636bd1e7 SHA512 80573fa3a0882c1f2a40b991f187f49714748ca4c56c78133e2d2be0322f201816eb059a1a7d38ea8a925229c1b1324d0ffc28ff4002d0115bfae44fe87efe97

diff --git a/net-libs/nodejs/files/nodejs-12.20.1-fix_ppc64_crashes.patch b/net-libs/nodejs/files/nodejs-12.20.1-fix_ppc64_crashes.patch
new file mode 100644
index 000000000000..0982d3c81c2a
--- /dev/null
+++ b/net-libs/nodejs/files/nodejs-12.20.1-fix_ppc64_crashes.patch
@@ -0,0 +1,44 @@
+Backport of https://github.com/nodejs/node/pull/33866 to nodejs-12
+
+--- a/deps/v8/src/compiler/backend/instruction-selector.cc
++++ b/deps/v8/src/compiler/backend/instruction-selector.cc
+@@ -2788,7 +2788,7 @@
+   switch (call_descriptor->kind()) {
+     case CallDescriptor::kCallAddress: {
+       int misc_field = static_cast<int>(call_descriptor->ParameterCount());
+-#if defined(_AIX)
++#if ABI_USES_FUNCTION_DESCRIPTORS
+       // Highest misc_field bit is used on AIX to indicate if a CFunction call
+       // has function descriptor or not.
+       misc_field |= call_descriptor->HasFunctionDescriptor()
+--- a/deps/v8/src/compiler/backend/ppc/code-generator-ppc.cc
++++ b/deps/v8/src/compiler/backend/ppc/code-generator-ppc.cc
+@@ -1026,7 +1026,7 @@
+       Label start_call;
+       bool isWasmCapiFunction =
+           linkage()->GetIncomingDescriptor()->IsWasmCapiFunction();
+-#if defined(_AIX)
++#if ABI_USES_FUNCTION_DESCRIPTORS
+       // AIX/PPC64BE Linux uses a function descriptor
+       int kNumParametersMask = kHasFunctionDescriptorBitMask - 1;
+       num_parameters = kNumParametersMask & misc_field;
+--- a/deps/v8/src/execution/simulator.h
++++ b/deps/v8/src/execution/simulator.h
+@@ -122,7 +122,7 @@
+ 
+   DISABLE_CFI_ICALL Return Call(Args... args) {
+     // When running without a simulator we call the entry directly.
+-#if V8_OS_AIX
++#if ABI_USES_FUNCTION_DESCRIPTORS
+     // AIX ABI requires function descriptors (FD).  Artificially create a pseudo
+     // FD to ensure correct dispatch to generated code.  The 'volatile'
+     // declaration is required to avoid the compiler from not observing the
+@@ -134,7 +134,7 @@
+     return fn(args...);
+ #else
+     return fn_ptr_(args...);
+-#endif  // V8_OS_AIX
++#endif  // ABI_USES_FUNCTION_DESCRIPTORS
+   }
+ #endif  // USE_SIMULATOR
+ 

diff --git a/net-libs/nodejs/files/nodejs-12.22.1-jinja_collections_abc.patch b/net-libs/nodejs/files/nodejs-12.22.1-jinja_collections_abc.patch
new file mode 100644
index 000000000000..5f0df09b6e2e
--- /dev/null
+++ b/net-libs/nodejs/files/nodejs-12.22.1-jinja_collections_abc.patch
@@ -0,0 +1,95 @@
+--- a/deps/v8/third_party/jinja2/tests.py
++++ b/deps/v8/third_party/jinja2/tests.py
+@@ -10,7 +10,7 @@
+ """
+ import operator
+ import re
+-from collections import Mapping
++from collections.abc import Mapping
+ from jinja2.runtime import Undefined
+ from jinja2._compat import text_type, string_types, integer_types
+ import decimal
+--- a/deps/v8/third_party/jinja2/runtime.py
++++ b/deps/v8/third_party/jinja2/runtime.py
+@@ -315,7 +315,7 @@ class Context(with_metaclass(ContextMeta)):
+ 
+ # register the context as mapping if possible
+ try:
+-    from collections import Mapping
++    from collections.abc import Mapping
+     Mapping.register(Context)
+ except ImportError:
+     pass
+--- a/deps/v8/third_party/jinja2/sandbox.py
++++ b/deps/v8/third_party/jinja2/sandbox.py
+@@ -14,7 +14,7 @@
+ """
+ import types
+ import operator
+-from collections import Mapping
++from collections.abc import Mapping
+ from jinja2.environment import Environment
+ from jinja2.exceptions import SecurityError
+ from jinja2._compat import string_types, PY2
+@@ -79,7 +79,7 @@ except ImportError:
+     pass
+ 
+ #: register Python 2.6 abstract base classes
+-from collections import MutableSet, MutableMapping, MutableSequence
++from collections.abc import MutableSet, MutableMapping, MutableSequence
+ _mutable_set_types += (MutableSet,)
+ _mutable_mapping_types += (MutableMapping,)
+ _mutable_sequence_types += (MutableSequence,)
+--- a/deps/v8/third_party/jinja2/utils.py
++++ b/deps/v8/third_party/jinja2/utils.py
+@@ -482,7 +482,7 @@ class LRUCache(object):
+ 
+ # register the LRU cache as mutable mapping if possible
+ try:
+-    from collections import MutableMapping
++    from collections.abc import MutableMapping
+     MutableMapping.register(LRUCache)
+ except ImportError:
+     pass
+--- a/tools/inspector_protocol/jinja2/runtime.py
++++ b/tools/inspector_protocol/jinja2/runtime.py
+@@ -315,7 +315,7 @@ class Context(with_metaclass(ContextMeta)):
+ 
+ # register the context as mapping if possible
+ try:
+-    from collections import Mapping
++    from collections.abc import Mapping
+     Mapping.register(Context)
+ except ImportError:
+     pass
+--- a/tools/inspector_protocol/jinja2/sandbox.py
++++ b/tools/inspector_protocol/jinja2/sandbox.py
+@@ -14,7 +14,7 @@
+ """
+ import types
+ import operator
+-from collections import Mapping
++from collections.abc import Mapping
+ from jinja2.environment import Environment
+ from jinja2.exceptions import SecurityError
+ from jinja2._compat import string_types, PY2
+@@ -79,7 +79,7 @@ except ImportError:
+     pass
+ 
+ #: register Python 2.6 abstract base classes
+-from collections import MutableSet, MutableMapping, MutableSequence
++from collections.abc import MutableSet, MutableMapping, MutableSequence
+ _mutable_set_types += (MutableSet,)
+ _mutable_mapping_types += (MutableMapping,)
+ _mutable_sequence_types += (MutableSequence,)
+--- a/tools/inspector_protocol/jinja2/tests.py
++++ b/tools/inspector_protocol/jinja2/tests.py
+@@ -10,7 +10,7 @@
+ """
+ import operator
+ import re
+-from collections import Mapping
++from collections.abc import Mapping
+ from jinja2.runtime import Undefined
+ from jinja2._compat import text_type, string_types, integer_types
+ import decimal

diff --git a/net-libs/nodejs/nodejs-12.22.10.ebuild b/net-libs/nodejs/nodejs-12.22.10.ebuild
new file mode 100644
index 000000000000..4638f6304808
--- /dev/null
+++ b/net-libs/nodejs/nodejs-12.22.10.ebuild
@@ -0,0 +1,249 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..10} )
+PYTHON_REQ_USE="threads(+)"
+
+inherit bash-completion-r1 flag-o-matic pax-utils python-any-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine"
+HOMEPAGE="https://nodejs.org/"
+LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
+
+if [[ ${PV} == *9999 ]]; then
+	inherit git-r3
+	EGIT_REPO_URI="https://github.com/nodejs/node"
+	SLOT="0"
+else
+	SRC_URI="https://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz"
+	SLOT="0/$(ver_cut 1)"
+	KEYWORDS="amd64 ~arm arm64 ppc64 -riscv x86 ~amd64-linux ~x64-macos"
+	S="${WORKDIR}/node-v${PV}"
+fi
+
+IUSE="cpu_flags_x86_sse2 debug doc icu inspector lto +npm +snapshot +ssl +system-ssl systemtap test"
+REQUIRED_USE="
+	inspector? ( icu ssl )
+	npm? ( ssl )
+	system-ssl? ( ssl )
+"
+
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	>=app-arch/brotli-1.0.9:=
+	>=dev-libs/libuv-1.39.0:=
+	>=net-dns/c-ares-1.17.2:=
+	>=net-libs/http-parser-2.9.3:=
+	>=net-libs/nghttp2-1.40.0:=
+	sys-libs/zlib
+	icu? ( >=dev-libs/icu-64.2:= )
+	system-ssl? (
+		>=dev-libs/openssl-1.1.1:0=
+		<dev-libs/openssl-3.0.0_beta1:0=
+	)
+"
+BDEPEND="
+	${PYTHON_DEPS}
+	sys-apps/coreutils
+	virtual/pkgconfig
+	systemtap? ( dev-util/systemtap )
+	test? ( net-misc/curl )
+"
+DEPEND="
+	${RDEPEND}
+"
+PATCHES=(
+	"${FILESDIR}"/${P}-global-npm-config.patch
+	"${FILESDIR}"/${PN}-12.20.1-fix_ppc64_crashes.patch
+	"${FILESDIR}"/${PN}-12.22.1-jinja_collections_abc.patch
+	"${FILESDIR}"/${PN}-12.22.1-uvwasi_shared_libuv.patch
+	"${FILESDIR}"/${PN}-12.22.5-shared_c-ares_nameser_h.patch
+	"${FILESDIR}"/${PN}-99999999-llhttp.patch
+)
+
+pkg_pretend() {
+	(use x86 && ! use cpu_flags_x86_sse2) && \
+		die "Your CPU doesn't support the required SSE2 instruction."
+
+	if [[ ${MERGE_TYPE} != "binary" ]]; then
+		if use lto; then
+			if tc-is-gcc; then
+				if [[ $(gcc-major-version) -ge 11 ]]; then
+					# Bug #787158
+					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"
+				fi
+			else
+				# configure.py will abort on this later if we do not
+				die "${PN} only supports LTO for gcc"
+			fi
+		fi
+	fi
+}
+
+src_prepare() {
+	tc-export CC CXX PKG_CONFIG
+	export V=1
+	export BUILDTYPE=Release
+
+	# fix compilation on Darwin
+	# https://code.google.com/p/gyp/issues/detail?id=260
+	sed -i -e "/append('-arch/d" tools/gyp/pylib/gyp/xcode_emulation.py || die
+
+	# less verbose install output (stating the same as portage, basically)
+	sed -i -e "/print/d" tools/install.py || die
+
+	# proper libdir, hat tip @ryanpcmcquen https://github.com/iojs/io.js/issues/504
+	local LIBDIR=$(get_libdir)
+	sed -i -e "s|lib/|${LIBDIR}/|g" tools/install.py || die
+	sed -i -e "s/'lib'/'${LIBDIR}'/" deps/npm/lib/npm.js || die
+
+	# Avoid writing a depfile, not useful
+	sed -i -e "/DEPFLAGS =/d" tools/gyp/pylib/gyp/generator/make.py || die
+
+	sed -i -e "/'-O3'/d" common.gypi node.gypi || die
+
+	# Known-to-fail test of a deprecated, legacy HTTP parser. Just don't bother.
+	rm -f test/parallel/test-http-transfer-encoding-smuggling-legacy.js
+
+	# debug builds. change install path, remove optimisations and override buildtype
+	if use debug; then
+		sed -i -e "s|out/Release/|out/Debug/|g" tools/install.py || die
+		BUILDTYPE=Debug
+	fi
+
+	default
+}
+
+src_configure() {
+	xdg_environment_reset
+
+	# LTO compiler flags are handled by configure.py itself
+	filter-flags '-flto*'
+
+	local myconf=(
+		--shared-brotli
+		--shared-cares
+		--shared-http-parser
+		--shared-libuv
+		--shared-nghttp2
+		--shared-zlib
+	)
+	use debug && myconf+=( --debug )
+	use lto && myconf+=( --enable-lto )
+	use icu && myconf+=( --with-intl=system-icu ) || myconf+=( --with-intl=none )
+	use inspector || myconf+=( --without-inspector )
+	use npm || myconf+=( --without-npm )
+	use snapshot || myconf+=( --without-node-snapshot )
+	if use ssl; then
+		use system-ssl && myconf+=( --shared-openssl --openssl-use-def-ca-store )
+	else
+		myconf+=( --without-ssl )
+	fi
+
+	local myarch=""
+	case ${ABI} in
+		amd64) myarch="x64";;
+		arm) myarch="arm";;
+		arm64) myarch="arm64";;
+		ppc64) myarch="ppc64";;
+		x32) myarch="x32";;
+		x86) myarch="ia32";;
+		*) myarch="${ABI}";;
+	esac
+
+	GYP_DEFINES="linux_use_gold_flags=0
+		linux_use_bundled_binutils=0
+		linux_use_bundled_gold=0" \
+	"${EPYTHON}" configure.py \
+		--prefix="${EPREFIX}"/usr \
+		--dest-cpu=${myarch} \
+		$(use_with systemtap dtrace) \
+		"${myconf[@]}" || die
+}
+
+src_compile() {
+	emake -C out mksnapshot
+	pax-mark m "out/${BUILDTYPE}/mksnapshot"
+	emake -C out
+}
+
+src_install() {
+	local LIBDIR="${ED}/usr/$(get_libdir)"
+	default
+
+	pax-mark -m "${ED}"/usr/bin/node
+
+	# set up a symlink structure that node-gyp expects..
+	dodir /usr/include/node/deps/{v8,uv}
+	dosym . /usr/include/node/src
+	for var in deps/{uv,v8}/include; do
+		dosym ../.. /usr/include/node/${var}
+	done
+
+	if use doc; then
+		docinto html
+		dodoc -r "${S}"/doc/*
+	fi
+
+	if use npm; then
+		dodir /etc/npm
+
+		# Install bash completion for `npm`
+		# We need to temporarily replace default config path since
+		# npm otherwise tries to write outside of the sandbox
+		local npm_config="usr/$(get_libdir)/node_modules/npm/lib/config/core.js"
+		sed -i -e "s|'/etc'|'${ED}/etc'|g" "${ED}/${npm_config}" || die
+		local tmp_npm_completion_file="$(TMPDIR="${T}" mktemp -t npm.XXXXXXXXXX)"
+		"${ED}/usr/bin/npm" completion > "${tmp_npm_completion_file}"
+		newbashcomp "${tmp_npm_completion_file}" npm
+		sed -i -e "s|'${ED}/etc'|'/etc'|g" "${ED}/${npm_config}" || die
+
+		# Move man pages
+		doman "${LIBDIR}"/node_modules/npm/man/man{1,5,7}/*
+
+		# Clean up
+		rm -f "${LIBDIR}"/node_modules/npm/{.mailmap,.npmignore,Makefile}
+		rm -rf "${LIBDIR}"/node_modules/npm/{doc,html,man}
+
+		local find_exp="-or -name"
+		local find_name=()
+		for match in "AUTHORS*" "CHANGELOG*" "CONTRIBUT*" "README*" \
+			".travis.yml" ".eslint*" ".wercker.yml" ".npmignore" \
+			"*.md" "*.markdown" "*.bat" "*.cmd"; do
+			find_name+=( ${find_exp} "${match}" )
+		done
+
+		# Remove various development and/or inappropriate files and
+		# useless docs of dependend packages.
+		find "${LIBDIR}"/node_modules \
+			\( -type d -name examples \) -or \( -type f \( \
+				-iname "LICEN?E*" \
+				"${find_name[@]}" \
+			\) \) -exec rm -rf "{}" \;
+	fi
+
+	mv "${ED}"/usr/share/doc/node "${ED}"/usr/share/doc/${PF} || die
+}
+
+src_test() {
+	if has usersandbox ${FEATURES}; then
+		rm -f "${S}"/test/parallel/test-fs-mkdir.js
+		ewarn "You are emerging ${PN} with 'usersandbox' enabled. Excluding tests known to fail in this mode." \
+			"For full test coverage, emerge =${CATEGORY}/${PF} with 'FEATURES=-usersandbox'."
+	fi
+
+	out/${BUILDTYPE}/cctest || die
+	"${PYTHON}" tools/test.py --mode=${BUILDTYPE,,} --flaky-tests=dontcare -J message parallel sequential || die
+}
+
+pkg_postinst() {
+	elog "The global npm config lives in /etc/npm. This deviates slightly"
+	elog "from upstream which otherwise would have it live in /usr/etc/."
+	elog ""
+	elog "Protip: When using node-gyp to install native modules, you can"
+	elog "avoid having to download extras by doing the following:"
+	elog "$ node-gyp --nodedir /usr/include/node <command>"
+}

diff --git a/net-libs/nodejs/nodejs-12.22.5-r1.ebuild b/net-libs/nodejs/nodejs-12.22.5-r1.ebuild
new file mode 100644
index 000000000000..1e716cbf5e85
--- /dev/null
+++ b/net-libs/nodejs/nodejs-12.22.5-r1.ebuild
@@ -0,0 +1,249 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{8..10} )
+PYTHON_REQ_USE="threads(+)"
+
+inherit bash-completion-r1 flag-o-matic pax-utils python-any-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine"
+HOMEPAGE="https://nodejs.org/"
+LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
+
+if [[ ${PV} == *9999 ]]; then
+	inherit git-r3
+	EGIT_REPO_URI="https://github.com/nodejs/node"
+	SLOT="0"
+else
+	SRC_URI="https://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz"
+	SLOT="0/$(ver_cut 1)"
+	KEYWORDS="amd64 arm arm64 ppc64 -riscv x86 ~amd64-linux ~x64-macos"
+	S="${WORKDIR}/node-v${PV}"
+fi
+
+IUSE="cpu_flags_x86_sse2 debug doc icu inspector lto +npm +snapshot +ssl +system-ssl systemtap test"
+REQUIRED_USE="
+	inspector? ( icu ssl )
+	npm? ( ssl )
+	system-ssl? ( ssl )
+"
+
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	>=app-arch/brotli-1.0.9:=
+	>=dev-libs/libuv-1.39.0:=
+	>=net-dns/c-ares-1.17.2:=
+	>=net-libs/http-parser-2.9.3:=
+	>=net-libs/nghttp2-1.40.0:=
+	sys-libs/zlib
+	icu? ( >=dev-libs/icu-64.2:= )
+	system-ssl? (
+		>=dev-libs/openssl-1.1.1:0=
+		<dev-libs/openssl-3.0.0_beta1:0=
+	)
+"
+BDEPEND="
+	${PYTHON_DEPS}
+	sys-apps/coreutils
+	virtual/pkgconfig
+	systemtap? ( dev-util/systemtap )
+	test? ( net-misc/curl )
+"
+DEPEND="
+	${RDEPEND}
+"
+PATCHES=(
+	"${FILESDIR}"/${PN}-10.3.0-global-npm-config.patch
+	"${FILESDIR}"/${PN}-12.20.1-fix_ppc64_crashes.patch
+	"${FILESDIR}"/${PN}-12.22.1-jinja_collections_abc.patch
+	"${FILESDIR}"/${PN}-12.22.1-uvwasi_shared_libuv.patch
+	"${FILESDIR}"/${PN}-12.22.5-shared_c-ares_nameser_h.patch
+	"${FILESDIR}"/${PN}-99999999-llhttp.patch
+)
+
+pkg_pretend() {
+	(use x86 && ! use cpu_flags_x86_sse2) && \
+		die "Your CPU doesn't support the required SSE2 instruction."
+
+	if [[ ${MERGE_TYPE} != "binary" ]]; then
+		if use lto; then
+			if tc-is-gcc; then
+				if [[ $(gcc-major-version) -ge 11 ]]; then
+					# Bug #787158
+					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"
+				fi
+			else
+				# configure.py will abort on this later if we do not
+				die "${PN} only supports LTO for gcc"
+			fi
+		fi
+	fi
+}
+
+src_prepare() {
+	tc-export CC CXX PKG_CONFIG
+	export V=1
+	export BUILDTYPE=Release
+
+	# fix compilation on Darwin
+	# https://code.google.com/p/gyp/issues/detail?id=260
+	sed -i -e "/append('-arch/d" tools/gyp/pylib/gyp/xcode_emulation.py || die
+
+	# less verbose install output (stating the same as portage, basically)
+	sed -i -e "/print/d" tools/install.py || die
+
+	# proper libdir, hat tip @ryanpcmcquen https://github.com/iojs/io.js/issues/504
+	local LIBDIR=$(get_libdir)
+	sed -i -e "s|lib/|${LIBDIR}/|g" tools/install.py || die
+	sed -i -e "s/'lib'/'${LIBDIR}'/" deps/npm/lib/npm.js || die
+
+	# Avoid writing a depfile, not useful
+	sed -i -e "/DEPFLAGS =/d" tools/gyp/pylib/gyp/generator/make.py || die
+
+	sed -i -e "/'-O3'/d" common.gypi node.gypi || die
+
+	# Known-to-fail test of a deprecated, legacy HTTP parser. Just don't bother.
+	rm -f test/parallel/test-http-transfer-encoding-smuggling-legacy.js
+
+	# debug builds. change install path, remove optimisations and override buildtype
+	if use debug; then
+		sed -i -e "s|out/Release/|out/Debug/|g" tools/install.py || die
+		BUILDTYPE=Debug
+	fi
+
+	default
+}
+
+src_configure() {
+	xdg_environment_reset
+
+	# LTO compiler flags are handled by configure.py itself
+	filter-flags '-flto*'
+
+	local myconf=(
+		--shared-brotli
+		--shared-cares
+		--shared-http-parser
+		--shared-libuv
+		--shared-nghttp2
+		--shared-zlib
+	)
+	use debug && myconf+=( --debug )
+	use lto && myconf+=( --enable-lto )
+	use icu && myconf+=( --with-intl=system-icu ) || myconf+=( --with-intl=none )
+	use inspector || myconf+=( --without-inspector )
+	use npm || myconf+=( --without-npm )
+	use snapshot || myconf+=( --without-node-snapshot )
+	if use ssl; then
+		use system-ssl && myconf+=( --shared-openssl --openssl-use-def-ca-store )
+	else
+		myconf+=( --without-ssl )
+	fi
+
+	local myarch=""
+	case ${ABI} in
+		amd64) myarch="x64";;
+		arm) myarch="arm";;
+		arm64) myarch="arm64";;
+		ppc64) myarch="ppc64";;
+		x32) myarch="x32";;
+		x86) myarch="ia32";;
+		*) myarch="${ABI}";;
+	esac
+
+	GYP_DEFINES="linux_use_gold_flags=0
+		linux_use_bundled_binutils=0
+		linux_use_bundled_gold=0" \
+	"${EPYTHON}" configure.py \
+		--prefix="${EPREFIX}"/usr \
+		--dest-cpu=${myarch} \
+		$(use_with systemtap dtrace) \
+		"${myconf[@]}" || die
+}
+
+src_compile() {
+	emake -C out mksnapshot
+	pax-mark m "out/${BUILDTYPE}/mksnapshot"
+	emake -C out
+}
+
+src_install() {
+	local LIBDIR="${ED}/usr/$(get_libdir)"
+	default
+
+	pax-mark -m "${ED}"/usr/bin/node
+
+	# set up a symlink structure that node-gyp expects..
+	dodir /usr/include/node/deps/{v8,uv}
+	dosym . /usr/include/node/src
+	for var in deps/{uv,v8}/include; do
+		dosym ../.. /usr/include/node/${var}
+	done
+
+	if use doc; then
+		docinto html
+		dodoc -r "${S}"/doc/*
+	fi
+
+	if use npm; then
+		dodir /etc/npm
+
+		# Install bash completion for `npm`
+		# We need to temporarily replace default config path since
+		# npm otherwise tries to write outside of the sandbox
+		local npm_config="usr/$(get_libdir)/node_modules/npm/lib/config/core.js"
+		sed -i -e "s|'/etc'|'${ED}/etc'|g" "${ED}/${npm_config}" || die
+		local tmp_npm_completion_file="$(TMPDIR="${T}" mktemp -t npm.XXXXXXXXXX)"
+		"${ED}/usr/bin/npm" completion > "${tmp_npm_completion_file}"
+		newbashcomp "${tmp_npm_completion_file}" npm
+		sed -i -e "s|'${ED}/etc'|'/etc'|g" "${ED}/${npm_config}" || die
+
+		# Move man pages
+		doman "${LIBDIR}"/node_modules/npm/man/man{1,5,7}/*
+
+		# Clean up
+		rm -f "${LIBDIR}"/node_modules/npm/{.mailmap,.npmignore,Makefile}
+		rm -rf "${LIBDIR}"/node_modules/npm/{doc,html,man}
+
+		local find_exp="-or -name"
+		local find_name=()
+		for match in "AUTHORS*" "CHANGELOG*" "CONTRIBUT*" "README*" \
+			".travis.yml" ".eslint*" ".wercker.yml" ".npmignore" \
+			"*.md" "*.markdown" "*.bat" "*.cmd"; do
+			find_name+=( ${find_exp} "${match}" )
+		done
+
+		# Remove various development and/or inappropriate files and
+		# useless docs of dependend packages.
+		find "${LIBDIR}"/node_modules \
+			\( -type d -name examples \) -or \( -type f \( \
+				-iname "LICEN?E*" \
+				"${find_name[@]}" \
+			\) \) -exec rm -rf "{}" \;
+	fi
+
+	mv "${ED}"/usr/share/doc/node "${ED}"/usr/share/doc/${PF} || die
+}
+
+src_test() {
+	if has usersandbox ${FEATURES}; then
+		rm -f "${S}"/test/parallel/test-fs-mkdir.js
+		ewarn "You are emerging ${PN} with 'usersandbox' enabled. Excluding tests known to fail in this mode." \
+			"For full test coverage, emerge =${CATEGORY}/${PF} with 'FEATURES=-usersandbox'."
+	fi
+
+	out/${BUILDTYPE}/cctest || die
+	"${PYTHON}" tools/test.py --mode=${BUILDTYPE,,} --flaky-tests=dontcare -J message parallel sequential || die
+}
+
+pkg_postinst() {
+	elog "The global npm config lives in /etc/npm. This deviates slightly"
+	elog "from upstream which otherwise would have it live in /usr/etc/."
+	elog ""
+	elog "Protip: When using node-gyp to install native modules, you can"
+	elog "avoid having to download extras by doing the following:"
+	elog "$ node-gyp --nodedir /usr/include/node <command>"
+}

diff --git a/net-libs/nodejs/nodejs-12.22.6.ebuild b/net-libs/nodejs/nodejs-12.22.6.ebuild
new file mode 100644
index 000000000000..fc7f6f38aaa1
--- /dev/null
+++ b/net-libs/nodejs/nodejs-12.22.6.ebuild
@@ -0,0 +1,249 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..10} )
+PYTHON_REQ_USE="threads(+)"
+
+inherit bash-completion-r1 flag-o-matic pax-utils python-any-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine"
+HOMEPAGE="https://nodejs.org/"
+LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
+
+if [[ ${PV} == *9999 ]]; then
+	inherit git-r3
+	EGIT_REPO_URI="https://github.com/nodejs/node"
+	SLOT="0"
+else
+	SRC_URI="https://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz"
+	SLOT="0/$(ver_cut 1)"
+	KEYWORDS="amd64 arm arm64 ppc64 -riscv x86 ~amd64-linux ~x64-macos"
+	S="${WORKDIR}/node-v${PV}"
+fi
+
+IUSE="cpu_flags_x86_sse2 debug doc icu inspector lto +npm +snapshot +ssl +system-ssl systemtap test"
+REQUIRED_USE="
+	inspector? ( icu ssl )
+	npm? ( ssl )
+	system-ssl? ( ssl )
+"
+
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	>=app-arch/brotli-1.0.9:=
+	>=dev-libs/libuv-1.39.0:=
+	>=net-dns/c-ares-1.17.2:=
+	>=net-libs/http-parser-2.9.3:=
+	>=net-libs/nghttp2-1.40.0:=
+	sys-libs/zlib
+	icu? ( >=dev-libs/icu-64.2:= )
+	system-ssl? (
+		>=dev-libs/openssl-1.1.1:0=
+		<dev-libs/openssl-3.0.0_beta1:0=
+	)
+"
+BDEPEND="
+	${PYTHON_DEPS}
+	sys-apps/coreutils
+	virtual/pkgconfig
+	systemtap? ( dev-util/systemtap )
+	test? ( net-misc/curl )
+"
+DEPEND="
+	${RDEPEND}
+"
+PATCHES=(
+	"${FILESDIR}"/${PN}-10.3.0-global-npm-config.patch
+	"${FILESDIR}"/${PN}-12.20.1-fix_ppc64_crashes.patch
+	"${FILESDIR}"/${PN}-12.22.1-jinja_collections_abc.patch
+	"${FILESDIR}"/${PN}-12.22.1-uvwasi_shared_libuv.patch
+	"${FILESDIR}"/${PN}-12.22.5-shared_c-ares_nameser_h.patch
+	"${FILESDIR}"/${PN}-99999999-llhttp.patch
+)
+
+pkg_pretend() {
+	(use x86 && ! use cpu_flags_x86_sse2) && \
+		die "Your CPU doesn't support the required SSE2 instruction."
+
+	if [[ ${MERGE_TYPE} != "binary" ]]; then
+		if use lto; then
+			if tc-is-gcc; then
+				if [[ $(gcc-major-version) -ge 11 ]]; then
+					# Bug #787158
+					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"
+				fi
+			else
+				# configure.py will abort on this later if we do not
+				die "${PN} only supports LTO for gcc"
+			fi
+		fi
+	fi
+}
+
+src_prepare() {
+	tc-export CC CXX PKG_CONFIG
+	export V=1
+	export BUILDTYPE=Release
+
+	# fix compilation on Darwin
+	# https://code.google.com/p/gyp/issues/detail?id=260
+	sed -i -e "/append('-arch/d" tools/gyp/pylib/gyp/xcode_emulation.py || die
+
+	# less verbose install output (stating the same as portage, basically)
+	sed -i -e "/print/d" tools/install.py || die
+
+	# proper libdir, hat tip @ryanpcmcquen https://github.com/iojs/io.js/issues/504
+	local LIBDIR=$(get_libdir)
+	sed -i -e "s|lib/|${LIBDIR}/|g" tools/install.py || die
+	sed -i -e "s/'lib'/'${LIBDIR}'/" deps/npm/lib/npm.js || die
+
+	# Avoid writing a depfile, not useful
+	sed -i -e "/DEPFLAGS =/d" tools/gyp/pylib/gyp/generator/make.py || die
+
+	sed -i -e "/'-O3'/d" common.gypi node.gypi || die
+
+	# Known-to-fail test of a deprecated, legacy HTTP parser. Just don't bother.
+	rm -f test/parallel/test-http-transfer-encoding-smuggling-legacy.js
+
+	# debug builds. change install path, remove optimisations and override buildtype
+	if use debug; then
+		sed -i -e "s|out/Release/|out/Debug/|g" tools/install.py || die
+		BUILDTYPE=Debug
+	fi
+
+	default
+}
+
+src_configure() {
+	xdg_environment_reset
+
+	# LTO compiler flags are handled by configure.py itself
+	filter-flags '-flto*'
+
+	local myconf=(
+		--shared-brotli
+		--shared-cares
+		--shared-http-parser
+		--shared-libuv
+		--shared-nghttp2
+		--shared-zlib
+	)
+	use debug && myconf+=( --debug )
+	use lto && myconf+=( --enable-lto )
+	use icu && myconf+=( --with-intl=system-icu ) || myconf+=( --with-intl=none )
+	use inspector || myconf+=( --without-inspector )
+	use npm || myconf+=( --without-npm )
+	use snapshot || myconf+=( --without-node-snapshot )
+	if use ssl; then
+		use system-ssl && myconf+=( --shared-openssl --openssl-use-def-ca-store )
+	else
+		myconf+=( --without-ssl )
+	fi
+
+	local myarch=""
+	case ${ABI} in
+		amd64) myarch="x64";;
+		arm) myarch="arm";;
+		arm64) myarch="arm64";;
+		ppc64) myarch="ppc64";;
+		x32) myarch="x32";;
+		x86) myarch="ia32";;
+		*) myarch="${ABI}";;
+	esac
+
+	GYP_DEFINES="linux_use_gold_flags=0
+		linux_use_bundled_binutils=0
+		linux_use_bundled_gold=0" \
+	"${EPYTHON}" configure.py \
+		--prefix="${EPREFIX}"/usr \
+		--dest-cpu=${myarch} \
+		$(use_with systemtap dtrace) \
+		"${myconf[@]}" || die
+}
+
+src_compile() {
+	emake -C out mksnapshot
+	pax-mark m "out/${BUILDTYPE}/mksnapshot"
+	emake -C out
+}
+
+src_install() {
+	local LIBDIR="${ED}/usr/$(get_libdir)"
+	default
+
+	pax-mark -m "${ED}"/usr/bin/node
+
+	# set up a symlink structure that node-gyp expects..
+	dodir /usr/include/node/deps/{v8,uv}
+	dosym . /usr/include/node/src
+	for var in deps/{uv,v8}/include; do
+		dosym ../.. /usr/include/node/${var}
+	done
+
+	if use doc; then
+		docinto html
+		dodoc -r "${S}"/doc/*
+	fi
+
+	if use npm; then
+		dodir /etc/npm
+
+		# Install bash completion for `npm`
+		# We need to temporarily replace default config path since
+		# npm otherwise tries to write outside of the sandbox
+		local npm_config="usr/$(get_libdir)/node_modules/npm/lib/config/core.js"
+		sed -i -e "s|'/etc'|'${ED}/etc'|g" "${ED}/${npm_config}" || die
+		local tmp_npm_completion_file="$(TMPDIR="${T}" mktemp -t npm.XXXXXXXXXX)"
+		"${ED}/usr/bin/npm" completion > "${tmp_npm_completion_file}"
+		newbashcomp "${tmp_npm_completion_file}" npm
+		sed -i -e "s|'${ED}/etc'|'/etc'|g" "${ED}/${npm_config}" || die
+
+		# Move man pages
+		doman "${LIBDIR}"/node_modules/npm/man/man{1,5,7}/*
+
+		# Clean up
+		rm -f "${LIBDIR}"/node_modules/npm/{.mailmap,.npmignore,Makefile}
+		rm -rf "${LIBDIR}"/node_modules/npm/{doc,html,man}
+
+		local find_exp="-or -name"
+		local find_name=()
+		for match in "AUTHORS*" "CHANGELOG*" "CONTRIBUT*" "README*" \
+			".travis.yml" ".eslint*" ".wercker.yml" ".npmignore" \
+			"*.md" "*.markdown" "*.bat" "*.cmd"; do
+			find_name+=( ${find_exp} "${match}" )
+		done
+
+		# Remove various development and/or inappropriate files and
+		# useless docs of dependend packages.
+		find "${LIBDIR}"/node_modules \
+			\( -type d -name examples \) -or \( -type f \( \
+				-iname "LICEN?E*" \
+				"${find_name[@]}" \
+			\) \) -exec rm -rf "{}" \;
+	fi
+
+	mv "${ED}"/usr/share/doc/node "${ED}"/usr/share/doc/${PF} || die
+}
+
+src_test() {
+	if has usersandbox ${FEATURES}; then
+		rm -f "${S}"/test/parallel/test-fs-mkdir.js
+		ewarn "You are emerging ${PN} with 'usersandbox' enabled. Excluding tests known to fail in this mode." \
+			"For full test coverage, emerge =${CATEGORY}/${PF} with 'FEATURES=-usersandbox'."
+	fi
+
+	out/${BUILDTYPE}/cctest || die
+	"${PYTHON}" tools/test.py --mode=${BUILDTYPE,,} --flaky-tests=dontcare -J message parallel sequential || die
+}
+
+pkg_postinst() {
+	elog "The global npm config lives in /etc/npm. This deviates slightly"
+	elog "from upstream which otherwise would have it live in /usr/etc/."
+	elog ""
+	elog "Protip: When using node-gyp to install native modules, you can"
+	elog "avoid having to download extras by doing the following:"
+	elog "$ node-gyp --nodedir /usr/include/node <command>"
+}


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: net-libs/nodejs/files/, net-libs/nodejs/
@ 2022-06-11 21:04 William Hubbs
  0 siblings, 0 replies; 36+ messages in thread
From: William Hubbs @ 2022-06-11 21:04 UTC (permalink / raw
  To: gentoo-commits

commit:     1cd2102cc5fc36973c064aa19da9e0d6d82d9d8d
Author:     William Hubbs <williamh <AT> gentoo <DOT> org>
AuthorDate: Sat Jun 11 21:00:35 2022 +0000
Commit:     William Hubbs <williamh <AT> gentoo <DOT> org>
CommitDate: Sat Jun 11 21:03:19 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1cd2102c

net-libs/nodejs: update 18.3.0 pax marking patch

Signed-off-by: William Hubbs <williamh <AT> gentoo.org>

 .../nodejs/files/nodejs-18.3.0-paxmarking.patch    | 85 ++++++++++++++++++++++
 net-libs/nodejs/nodejs-18.3.0.ebuild               |  2 +-
 2 files changed, 86 insertions(+), 1 deletion(-)

diff --git a/net-libs/nodejs/files/nodejs-18.3.0-paxmarking.patch b/net-libs/nodejs/files/nodejs-18.3.0-paxmarking.patch
new file mode 100644
index 000000000000..fd7ef431045e
--- /dev/null
+++ b/net-libs/nodejs/files/nodejs-18.3.0-paxmarking.patch
@@ -0,0 +1,85 @@
+diff -urNp node-v15.8.0-orig/node.gyp node-v15.8.0-dwok/node.gyp
+--- node-v15.8.0-orig/node.gyp	2021-02-24 22:21:44.202911780 +0100
++++ node-v15.8.0-dwok/node.gyp	2021-02-24 22:25:34.298281739 +0100
+@@ -55,6 +55,7 @@
+       'deps/undici/undici.js',
+     ],
+     'node_mksnapshot_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)node_mksnapshot<(EXECUTABLE_SUFFIX)',
++    'node_mksnapshot_u_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)node_mksnapshot_u<(EXECUTABLE_SUFFIX)',
+     'conditions': [
+       ['GENERATOR == "ninja"', {
+         'node_text_start_object_path': 'src/large_pages/node_text_start.node_text_start.o'
+@@ -331,10 +332,24 @@
+             }, {
+               'actions': [
+                 {
++                  'action_name': 'run_pax_mksnapshot',
++                  'inputs': [
++                    '<(node_mksnapshot_exec)',
++                  ],
++                  'outputs': [
++                    '<(node_mksnapshot_u_exec)',
++                  ],
++                  'action': [
++                    'bash',
++                    '-c',
++                    'mv <(node_mksnapshot_exec) <(node_mksnapshot_u_exec) && paxmark.sh m <(node_mksnapshot_u_exec)',
++                  ],
++                },
++                {
+                   'action_name': 'node_mksnapshot',
+                   'process_outputs_as_sources': 1,
+                   'inputs': [
+-                    '<(node_mksnapshot_exec)',
++                    '<(node_mksnapshot_u_exec)',
+                   ],
+                   'outputs': [
+                     '<(SHARED_INTERMEDIATE_DIR)/node_snapshot.cc',
+diff -urNp node-v15.8.0-orig/tools/v8_gypfiles/v8.gyp node-v15.8.0-dwok/tools/v8_gypfiles/v8.gyp
+--- node-v15.8.0-orig/tools/v8_gypfiles/v8.gyp	2021-02-24 22:21:44.654910571 +0100
++++ node-v15.8.0-dwok/tools/v8_gypfiles/v8.gyp	2021-02-24 22:25:54.834224791 +0100
+@@ -9,6 +9,7 @@
+     'v8_vector_stores%': 0,
+     'v8_embed_script%': "",
+     'mksnapshot_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)mksnapshot<(EXECUTABLE_SUFFIX)',
++    'mksnapshot_u_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)mksnapshot_u<(EXECUTABLE_SUFFIX)',
+     'v8_os_page_size%': 0,
+     'generate_bytecode_output_root': '<(SHARED_INTERMEDIATE_DIR)/generate-bytecode-output-root',
+     'generate_bytecode_builtins_list_output': '<(generate_bytecode_output_root)/builtins-generated/bytecodes-builtins-list.h',
+@@ -1413,7 +1414,7 @@
+       ],
+     },  # bytecode_builtins_list_generator
+     {
+-      'target_name': 'mksnapshot',
++      'target_name': 'mksnapshot_u',
+       'type': 'executable',
+       'dependencies': [
+         'v8_base_without_compiler',
+@@ -1432,6 +1433,27 @@
+           'toolsets': ['host'],
+         }],
+       ],
++    },  # mksnapshot_u
++    {
++      'target_name': 'mksnapshot',
++      'type': 'none',
++      'dependencies': ['mksnapshot_u'],
++      'actions': [
++        {
++          'action_name': 'paxmark_mksnapshot',
++          'inputs': [
++            '<(mksnapshot_u_exec)',
++          ],
++          'outputs': [
++            '<(mksnapshot_exec)',
++          ],
++          'action': [
++            'bash',
++            '-c',
++            'cp <(mksnapshot_u_exec) <(mksnapshot_exec) && paxmark.sh m <(mksnapshot_exec)'
++          ],
++        },
++      ],
+     },  # mksnapshot
+     {
+       'target_name': 'torque',

diff --git a/net-libs/nodejs/nodejs-18.3.0.ebuild b/net-libs/nodejs/nodejs-18.3.0.ebuild
index ca608fd9201a..ab8116548114 100644
--- a/net-libs/nodejs/nodejs-18.3.0.ebuild
+++ b/net-libs/nodejs/nodejs-18.3.0.ebuild
@@ -85,7 +85,7 @@ src_prepare() {
 	fi
 
 	# We need to disable mprotect on two files when it builds Bug 694100.
-	use pax-kernel && PATCHES+=( "${FILESDIR}"/${PN}-18.0.0-paxmarking.patch )
+	use pax-kernel && PATCHES+=( "${FILESDIR}"/${PN}-18.3.0-paxmarking.patch )
 
 	# All this test does is check if the npm CLI produces warnings of any sort,
 	# failing if it does. Overkill, much? Especially given one possible warning


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: net-libs/nodejs/files/, net-libs/nodejs/
@ 2022-09-14  6:14 William Hubbs
  0 siblings, 0 replies; 36+ messages in thread
From: William Hubbs @ 2022-09-14  6:14 UTC (permalink / raw
  To: gentoo-commits

commit:     b8ed541d56fe430d8c9d88924de1700db65d37fe
Author:     William Hubbs <williamh <AT> gentoo <DOT> org>
AuthorDate: Wed Sep 14 06:11:19 2022 +0000
Commit:     William Hubbs <williamh <AT> gentoo <DOT> org>
CommitDate: Wed Sep 14 06:14:20 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b8ed541d

net-libs/nodejs: add 18.9.0

Closes: https://github.com/gentoo/gentoo/pull/27242
Bug: https://bugs.gentoo.org/869992
Signed-off-by: William Hubbs <williamh <AT> gentoo.org>

 net-libs/nodejs/Manifest                           |   1 +
 .../files/nodejs-18.9.0-clang-fix-libatomic.patch  |  16 ++
 net-libs/nodejs/nodejs-18.9.0.ebuild               | 246 +++++++++++++++++++++
 3 files changed, 263 insertions(+)

diff --git a/net-libs/nodejs/Manifest b/net-libs/nodejs/Manifest
index ba40dcfe845a..e666bf77bd2f 100644
--- a/net-libs/nodejs/Manifest
+++ b/net-libs/nodejs/Manifest
@@ -3,3 +3,4 @@ DIST node-v16.16.0.tar.xz 35039712 BLAKE2B e4cf7debda3d32b515d60d11ac7ebd788fdab
 DIST node-v16.17.0.tar.xz 35664964 BLAKE2B 490bcb65440a81d356f6351c45b19a4022cd55834b8b90da9eed2006042ab73732d581d58983b34b12ddef618d3e99fe760ef93447a2201268e2ab86466d3bb1 SHA512 8906ee337562b6f0b1614aa57084499ffd3bdfe8f8e706de8fed98baed5a92f691c534528b98f6321cf8a1eaaed6b45a938f28bd08167fbd75bfeb432ca03181
 DIST node-v18.6.0.tar.xz 37189620 BLAKE2B 15a8a874f39db7de576d3ba81fddcb8072cb170ebb12308d2ade2efb9c8200c561671f453371a16db82d4c0f02522a28f6ae01216d11be40df94b53b184828b3 SHA512 d682e25a71ffbef90e2cb3c55e22dbd548952c4de24d48c47206afd270fd17c7bda95b3241840bf6a470f28d2389f3c6fddbb812ad17cf1d36262ff25fcda859
 DIST node-v18.7.0.tar.xz 36945328 BLAKE2B 8ec945347ba396f7c65f544325690abdece4aa82ce1dae63e56662c78f445845f3f858a803ee2b130444f44cd38f4e1d8f5df0240d5a0c5124a38cbab42daafc SHA512 3da56b25f304b4e205c27a59f2e442e7216e494465e4cce9f51ffd3f7c7da3ab3519c4b7d1eb41a754b86ecfa1d138d270578aa3908b4fd42cc5dbfd389a6798
+DIST node-v18.9.0.tar.xz 38309908 BLAKE2B 87ce3e45c6450bc686fe800a9c39a6c0cb5c01279c3052431455c29e0fc0b244de122dd899a43da1e8291fe60457847d307c7193c4e69f2d6f6b8824f4555daf SHA512 60bf98bc5011876429c9a687141b916fc6023ba21f1a641fef2f11d53218db24f442542382495455d2f107d708fcd04994e239a9bbfb52f070935c9048089e81

diff --git a/net-libs/nodejs/files/nodejs-18.9.0-clang-fix-libatomic.patch b/net-libs/nodejs/files/nodejs-18.9.0-clang-fix-libatomic.patch
new file mode 100644
index 000000000000..5296ed1318b0
--- /dev/null
+++ b/net-libs/nodejs/files/nodejs-18.9.0-clang-fix-libatomic.patch
@@ -0,0 +1,16 @@
+https://bugs.gentoo.org/869992
+
+diff --git a/node.gyp b/node.gyp
+index 347d82d2e1..8c4ffea256 100644
+--- a/node.gyp
++++ b/node.gyp
+@@ -117,9 +117,6 @@
+           '-Wl,-bnoerrmsg',
+         ],
+       }],
+-      ['OS == "linux" and llvm_version != "0.0"', {
+-        'libraries': ['-latomic'],
+-      }],
+     ],
+   },
+

diff --git a/net-libs/nodejs/nodejs-18.9.0.ebuild b/net-libs/nodejs/nodejs-18.9.0.ebuild
new file mode 100644
index 000000000000..03af59cf2a80
--- /dev/null
+++ b/net-libs/nodejs/nodejs-18.9.0.ebuild
@@ -0,0 +1,246 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CONFIG_CHECK="~ADVISE_SYSCALLS"
+PYTHON_COMPAT=( python3_{8..11} )
+PYTHON_REQ_USE="threads(+)"
+
+inherit bash-completion-r1 check-reqs flag-o-matic linux-info pax-utils python-any-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine"
+HOMEPAGE="https://nodejs.org/"
+LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
+
+if [[ ${PV} == *9999 ]]; then
+	inherit git-r3
+	EGIT_REPO_URI="https://github.com/nodejs/node"
+	SLOT="0"
+else
+	SRC_URI="https://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz"
+	SLOT="0/$(ver_cut 1)"
+	KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86 ~amd64-linux ~x64-macos"
+	S="${WORKDIR}/node-v${PV}"
+fi
+
+IUSE="cpu_flags_x86_sse2 debug doc +icu inspector lto +npm pax-kernel +snapshot +ssl +system-icu +system-ssl systemtap test"
+REQUIRED_USE="inspector? ( icu ssl )
+	npm? ( ssl )
+	system-icu? ( icu )
+	system-ssl? ( ssl )"
+
+RESTRICT="!test? ( test )"
+
+RDEPEND=">=app-arch/brotli-1.0.9:=
+	>=dev-libs/libuv-1.40.0:=
+	>=net-dns/c-ares-1.17.2:=
+	>=net-libs/nghttp2-1.41.0:=
+	sys-libs/zlib
+	system-icu? ( >=dev-libs/icu-67:= )
+	system-ssl? ( >=dev-libs/openssl-1.1.1:0= )"
+BDEPEND="${PYTHON_DEPS}
+	sys-apps/coreutils
+	virtual/pkgconfig
+	systemtap? ( dev-util/systemtap )
+	test? ( net-misc/curl )
+	pax-kernel? ( sys-apps/elfix )"
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+	"${FILESDIR}"/${PN}-12.22.5-shared_c-ares_nameser_h.patch
+	"${FILESDIR}"/${PN}-15.2.0-global-npm-config.patch
+	"${FILESDIR}"/${P}-clang-fix-libatomic.patch
+)
+
+# These are measured on a loong machine with -ggdb on, and only checked
+# if debugging flags are present in CFLAGS.
+#
+# The final link consumed a little more than 7GiB alone, so 8GiB is the lower
+# limit for memory usage. Disk usage was 19.1GiB for the build directory and
+# 1.2GiB for the installed image, so we leave some room for architectures with
+# fatter binaries and set the disk requirement to 22GiB.
+CHECKREQS_MEMORY="8G"
+CHECKREQS_DISK_BUILD="22G"
+
+pkg_pretend() {
+	(use x86 && ! use cpu_flags_x86_sse2) && \
+		die "Your CPU doesn't support the required SSE2 instruction."
+
+	if [[ ${MERGE_TYPE} != "binary" ]]; then
+		if is-flagq "-g*" && ! is-flagq "-g*0" ; then
+			einfo "Checking for sufficient disk space and memory to build ${PN} with debugging CFLAGS"
+			check-reqs_pkg_pretend
+		fi
+	fi
+}
+
+pkg_setup() {
+	python-any-r1_pkg_setup
+	linux-info_pkg_setup
+}
+
+src_prepare() {
+	tc-export AR CC CXX PKG_CONFIG
+	export V=1
+	export BUILDTYPE=Release
+
+	# fix compilation on Darwin
+	# https://code.google.com/p/gyp/issues/detail?id=260
+	sed -i -e "/append('-arch/d" tools/gyp/pylib/gyp/xcode_emulation.py || die
+
+	# less verbose install output (stating the same as portage, basically)
+	sed -i -e "/print/d" tools/install.py || die
+
+	# proper libdir, hat tip @ryanpcmcquen https://github.com/iojs/io.js/issues/504
+	local LIBDIR=$(get_libdir)
+	sed -i -e "s|lib/|${LIBDIR}/|g" tools/install.py || die
+	sed -i -e "s/'lib'/'${LIBDIR}'/" deps/npm/lib/npm.js || die
+
+	# Avoid writing a depfile, not useful
+	sed -i -e "/DEPFLAGS =/d" tools/gyp/pylib/gyp/generator/make.py || die
+
+	sed -i -e "/'-O3'/d" common.gypi node.gypi || die
+
+	# debug builds. change install path, remove optimisations and override buildtype
+	if use debug; then
+		sed -i -e "s|out/Release/|out/Debug/|g" tools/install.py || die
+		BUILDTYPE=Debug
+	fi
+
+	# We need to disable mprotect on two files when it builds Bug 694100.
+	use pax-kernel && PATCHES+=( "${FILESDIR}"/${PN}-18.3.0-paxmarking.patch )
+
+	# All this test does is check if the npm CLI produces warnings of any sort,
+	# failing if it does. Overkill, much? Especially given one possible warning
+	# is that there is a newer version of npm available upstream (yes, it does
+	# use the network if available), thus making it a real possibility for this
+	# test to begin failing one day even though it was fine before.
+	rm -f test/parallel/test-release-npm.js
+
+	default
+}
+
+src_configure() {
+	xdg_environment_reset
+
+	# LTO compiler flags are handled by configure.py itself
+	filter-flags '-flto*'
+	# nodejs unconditionally links to libatomic #869992
+	append-atomic-flags
+
+	local myconf=(
+		--shared-brotli
+		--shared-cares
+		--shared-libuv
+		--shared-nghttp2
+		--shared-zlib
+	)
+	use debug && myconf+=( --debug )
+	use lto && myconf+=( --enable-lto )
+	if use system-icu; then
+		myconf+=( --with-intl=system-icu )
+	elif use icu; then
+		myconf+=( --with-intl=full-icu )
+	else
+		myconf+=( --with-intl=none )
+	fi
+	use inspector || myconf+=( --without-inspector )
+	use npm || myconf+=( --without-npm )
+	use snapshot || myconf+=( --without-node-snapshot )
+	if use ssl; then
+		use system-ssl && myconf+=( --shared-openssl --openssl-use-def-ca-store )
+	else
+		myconf+=( --without-ssl )
+	fi
+
+	local myarch=""
+	case "${ARCH}:${ABI}" in
+		*:amd64) myarch="x64";;
+		*:arm) myarch="arm";;
+		*:arm64) myarch="arm64";;
+		loong:lp64*) myarch="loong64";;
+		riscv:lp64*) myarch="riscv64";;
+		*:ppc64) myarch="ppc64";;
+		*:x32) myarch="x32";;
+		*:x86) myarch="ia32";;
+		*) myarch="${ABI}";;
+	esac
+
+	GYP_DEFINES="linux_use_gold_flags=0
+		linux_use_bundled_binutils=0
+		linux_use_bundled_gold=0" \
+	"${EPYTHON}" configure.py \
+		--prefix="${EPREFIX}"/usr \
+		--dest-cpu=${myarch} \
+		$(use_with systemtap dtrace) \
+		"${myconf[@]}" || die
+}
+
+src_compile() {
+	emake -C out
+}
+
+src_install() {
+	local LIBDIR="${ED}/usr/$(get_libdir)"
+	default
+
+	pax-mark -m "${ED}"/usr/bin/node
+
+	# set up a symlink structure that node-gyp expects..
+	dodir /usr/include/node/deps/{v8,uv}
+	dosym . /usr/include/node/src
+	for var in deps/{uv,v8}/include; do
+		dosym ../.. /usr/include/node/${var}
+	done
+
+	if use doc; then
+		docinto html
+		dodoc -r "${S}"/doc/*
+	fi
+
+	if use npm; then
+		keepdir /etc/npm
+
+		# Install bash completion for `npm`
+		local tmp_npm_completion_file="$(TMPDIR="${T}" mktemp -t npm.XXXXXXXXXX)"
+		"${ED}/usr/bin/npm" completion > "${tmp_npm_completion_file}"
+		newbashcomp "${tmp_npm_completion_file}" npm
+
+		# Move man pages
+		doman "${LIBDIR}"/node_modules/npm/man/man{1,5,7}/*
+
+		# Clean up
+		rm -f "${LIBDIR}"/node_modules/npm/{.mailmap,.npmignore,Makefile}
+		rm -rf "${LIBDIR}"/node_modules/npm/{doc,html,man}
+
+		local find_exp="-or -name"
+		local find_name=()
+		for match in "AUTHORS*" "CHANGELOG*" "CONTRIBUT*" "README*" \
+			".travis.yml" ".eslint*" ".wercker.yml" ".npmignore" \
+			"*.md" "*.markdown" "*.bat" "*.cmd"; do
+			find_name+=( ${find_exp} "${match}" )
+		done
+
+		# Remove various development and/or inappropriate files and
+		# useless docs of dependend packages.
+		find "${LIBDIR}"/node_modules \
+			\( -type d -name examples \) -or \( -type f \( \
+				-iname "LICEN?E*" \
+				"${find_name[@]}" \
+			\) \) -exec rm -rf "{}" \;
+	fi
+
+	mv "${ED}"/usr/share/doc/node "${ED}"/usr/share/doc/${PF} || die
+}
+
+src_test() {
+	if has usersandbox ${FEATURES}; then
+		rm -f "${S}"/test/parallel/test-fs-mkdir.js
+		ewarn "You are emerging ${PN} with 'usersandbox' enabled. Excluding tests known to fail in this mode." \
+			"For full test coverage, emerge =${CATEGORY}/${PF} with 'FEATURES=-usersandbox'."
+	fi
+
+	out/${BUILDTYPE}/cctest || die
+	"${EPYTHON}" tools/test.py --mode=${BUILDTYPE,,} --flaky-tests=dontcare -J message parallel sequential || die
+}


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: net-libs/nodejs/files/, net-libs/nodejs/
@ 2022-09-16 16:16 William Hubbs
  0 siblings, 0 replies; 36+ messages in thread
From: William Hubbs @ 2022-09-16 16:16 UTC (permalink / raw
  To: gentoo-commits

commit:     7dc748f875d8f1a7bda9d0b8c00d45ad4be2d58d
Author:     matoro <matoro <AT> users <DOT> noreply <DOT> github <DOT> com>
AuthorDate: Thu Sep 15 18:46:37 2022 +0000
Commit:     William Hubbs <williamh <AT> gentoo <DOT> org>
CommitDate: Fri Sep 16 16:15:16 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7dc748f8

net-libs/nodejs: delete libatomic patch + force libgcc as support lib

Upstream behavior is correct wrt libatomic (unconditionally adding it)
due to their use of atomic_is_lock_free which is yet to be added to
compiler-rt (stuck in review hell at https://reviews.llvm.org/D85044).

This necessitates forcing libgcc as support lib.  Linking to libatomic
from gcc is dynamic, so sys-devel/gcc has to go in RDEPEND.  Clang can
be forced to use libgcc with --rtlib=libgcc, even with
USE=default-compiler-rt (which is the original cuase of the bug in
question).

Closes: https://bugs.gentoo.org/869992
Signed-off-by: William Hubbs <williamh <AT> gentoo.org>

 .../nodejs/files/nodejs-18.9.0-clang-fix-libatomic.patch | 16 ----------------
 net-libs/nodejs/nodejs-18.9.0.ebuild                     | 10 +++++++---
 2 files changed, 7 insertions(+), 19 deletions(-)

diff --git a/net-libs/nodejs/files/nodejs-18.9.0-clang-fix-libatomic.patch b/net-libs/nodejs/files/nodejs-18.9.0-clang-fix-libatomic.patch
deleted file mode 100644
index 5296ed1318b0..000000000000
--- a/net-libs/nodejs/files/nodejs-18.9.0-clang-fix-libatomic.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-https://bugs.gentoo.org/869992
-
-diff --git a/node.gyp b/node.gyp
-index 347d82d2e1..8c4ffea256 100644
---- a/node.gyp
-+++ b/node.gyp
-@@ -117,9 +117,6 @@
-           '-Wl,-bnoerrmsg',
-         ],
-       }],
--      ['OS == "linux" and llvm_version != "0.0"', {
--        'libraries': ['-latomic'],
--      }],
-     ],
-   },
-

diff --git a/net-libs/nodejs/nodejs-18.9.0.ebuild b/net-libs/nodejs/nodejs-18.9.0.ebuild
index 03af59cf2a80..6c803a2495ee 100644
--- a/net-libs/nodejs/nodejs-18.9.0.ebuild
+++ b/net-libs/nodejs/nodejs-18.9.0.ebuild
@@ -38,7 +38,8 @@ RDEPEND=">=app-arch/brotli-1.0.9:=
 	>=net-libs/nghttp2-1.41.0:=
 	sys-libs/zlib
 	system-icu? ( >=dev-libs/icu-67:= )
-	system-ssl? ( >=dev-libs/openssl-1.1.1:0= )"
+	system-ssl? ( >=dev-libs/openssl-1.1.1:0= )
+	sys-devel/gcc:*"
 BDEPEND="${PYTHON_DEPS}
 	sys-apps/coreutils
 	virtual/pkgconfig
@@ -50,7 +51,6 @@ DEPEND="${RDEPEND}"
 PATCHES=(
 	"${FILESDIR}"/${PN}-12.22.5-shared_c-ares_nameser_h.patch
 	"${FILESDIR}"/${PN}-15.2.0-global-npm-config.patch
-	"${FILESDIR}"/${P}-clang-fix-libatomic.patch
 )
 
 # These are measured on a loong machine with -ggdb on, and only checked
@@ -127,7 +127,11 @@ src_configure() {
 	# LTO compiler flags are handled by configure.py itself
 	filter-flags '-flto*'
 	# nodejs unconditionally links to libatomic #869992
-	append-atomic-flags
+	# specifically it requires __atomic_is_lock_free which
+	# is not yet implemented by sys-libs/compiler-rt (see
+	# https://reviews.llvm.org/D85044?id=287068), therefore
+	# we depend on gcc and force using libgcc as the support lib
+	tc-is-clang && append-ldflags "--rtlib=libgcc --unwindlib=libgcc"
 
 	local myconf=(
 		--shared-brotli


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: net-libs/nodejs/files/, net-libs/nodejs/
@ 2022-10-28 15:57 Sam James
  0 siblings, 0 replies; 36+ messages in thread
From: Sam James @ 2022-10-28 15:57 UTC (permalink / raw
  To: gentoo-commits

commit:     a5c7606a4cf5173622127ea833cdf7880aa786a9
Author:     WANG Xuerui <xen0n <AT> gentoo <DOT> org>
AuthorDate: Wed Oct  5 08:39:01 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Oct 28 15:57:12 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a5c7606a

net-libs/nodejs: fix build on gcc-13

Closes: https://bugs.gentoo.org/865981
Closes: https://github.com/gentoo/gentoo/pull/27654
Signed-off-by: WANG Xuerui <xen0n <AT> gentoo.org>
Signed-off-by: Sam James <sam <AT> gentoo.org>

 net-libs/nodejs/files/nodejs-gcc-13.patch | 27 +++++++++++++++++++++++++++
 net-libs/nodejs/nodejs-14.20.1.ebuild     |  1 +
 net-libs/nodejs/nodejs-16.17.1.ebuild     |  1 +
 net-libs/nodejs/nodejs-18.10.0.ebuild     |  1 +
 net-libs/nodejs/nodejs-18.9.1.ebuild      |  1 +
 5 files changed, 31 insertions(+)

diff --git a/net-libs/nodejs/files/nodejs-gcc-13.patch b/net-libs/nodejs/files/nodejs-gcc-13.patch
new file mode 100644
index 000000000000..13427a6b7407
--- /dev/null
+++ b/net-libs/nodejs/files/nodejs-gcc-13.patch
@@ -0,0 +1,27 @@
+https://chromium-review.googlesource.com/c/v8/v8/+/3934140
+adjusted to layout of the node project
+From: WANG Xuerui <git@xen0n.name>
+Date: Tue, 4 Oct 2022 17:21:03 +0800
+Subject: [PATCH] [base] Fix build with gcc-13
+
+See https://gcc.gnu.org/gcc-13/porting_to.html#header-dep-changes.
+--- a/deps/v8/src/base/logging.h
++++ b/deps/v8/src/base/logging.h
+@@ -5,6 +5,7 @@
+ #ifndef V8_BASE_LOGGING_H_
+ #define V8_BASE_LOGGING_H_
+ 
++#include <cstdint>
+ #include <cstring>
+ #include <sstream>
+ #include <string>
+--- a/deps/v8/src/inspector/v8-string-conversions.h
++++ b/deps/v8/src/inspector/v8-string-conversions.h
+@@ -5,6 +5,7 @@
+ #ifndef V8_INSPECTOR_V8_STRING_CONVERSIONS_H_
+ #define V8_INSPECTOR_V8_STRING_CONVERSIONS_H_
+ 
++#include <cstdint>
+ #include <string>
+ 
+ // Conversion routines between UT8 and UTF16, used by string-16.{h,cc}. You may

diff --git a/net-libs/nodejs/nodejs-14.20.1.ebuild b/net-libs/nodejs/nodejs-14.20.1.ebuild
index ec4700ccab22..c2dfc7980d1c 100644
--- a/net-libs/nodejs/nodejs-14.20.1.ebuild
+++ b/net-libs/nodejs/nodejs-14.20.1.ebuild
@@ -55,6 +55,7 @@ PATCHES=(
 	"${FILESDIR}"/${PN}-12.22.5-shared_c-ares_nameser_h.patch
 	"${FILESDIR}"/${PN}-14.15.0-fix_ppc64_crashes.patch
 	"${FILESDIR}"/${PN}-14.19.0-global-npm-config.patch
+	"${FILESDIR}"/${PN}-gcc-13.patch
 )
 
 pkg_pretend() {

diff --git a/net-libs/nodejs/nodejs-16.17.1.ebuild b/net-libs/nodejs/nodejs-16.17.1.ebuild
index c1fd507566a4..9492c22083ac 100644
--- a/net-libs/nodejs/nodejs-16.17.1.ebuild
+++ b/net-libs/nodejs/nodejs-16.17.1.ebuild
@@ -51,6 +51,7 @@ DEPEND="${RDEPEND}"
 PATCHES=(
 	"${FILESDIR}"/${PN}-12.22.5-shared_c-ares_nameser_h.patch
 	"${FILESDIR}"/${PN}-15.2.0-global-npm-config.patch
+	"${FILESDIR}"/${PN}-gcc-13.patch
 )
 
 pkg_pretend() {

diff --git a/net-libs/nodejs/nodejs-18.10.0.ebuild b/net-libs/nodejs/nodejs-18.10.0.ebuild
index 3ffd13f46228..fec5881c4739 100644
--- a/net-libs/nodejs/nodejs-18.10.0.ebuild
+++ b/net-libs/nodejs/nodejs-18.10.0.ebuild
@@ -51,6 +51,7 @@ DEPEND="${RDEPEND}"
 PATCHES=(
 	"${FILESDIR}"/${PN}-12.22.5-shared_c-ares_nameser_h.patch
 	"${FILESDIR}"/${PN}-15.2.0-global-npm-config.patch
+	"${FILESDIR}"/${PN}-gcc-13.patch
 )
 
 # These are measured on a loong machine with -ggdb on, and only checked

diff --git a/net-libs/nodejs/nodejs-18.9.1.ebuild b/net-libs/nodejs/nodejs-18.9.1.ebuild
index 9d98aef6f3b6..c4fe0dccc534 100644
--- a/net-libs/nodejs/nodejs-18.9.1.ebuild
+++ b/net-libs/nodejs/nodejs-18.9.1.ebuild
@@ -51,6 +51,7 @@ DEPEND="${RDEPEND}"
 PATCHES=(
 	"${FILESDIR}"/${PN}-12.22.5-shared_c-ares_nameser_h.patch
 	"${FILESDIR}"/${PN}-15.2.0-global-npm-config.patch
+	"${FILESDIR}"/${PN}-gcc-13.patch
 )
 
 # These are measured on a loong machine with -ggdb on, and only checked


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: net-libs/nodejs/files/, net-libs/nodejs/
@ 2023-03-05 23:18 William Hubbs
  0 siblings, 0 replies; 36+ messages in thread
From: William Hubbs @ 2023-03-05 23:18 UTC (permalink / raw
  To: gentoo-commits

commit:     713b1cd96ba4dabedac15b5ba2596a434d28fba2
Author:     William Hubbs <williamh <AT> gentoo <DOT> org>
AuthorDate: Sun Mar  5 23:11:15 2023 +0000
Commit:     William Hubbs <williamh <AT> gentoo <DOT> org>
CommitDate: Sun Mar  5 23:18:47 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=713b1cd9

net-libs/nodejs: drop local copy of ares_nameser.h

This has been added to the public API of c-ares for a while.
All versions of nodejs build with this patch dropped.

Signed-off-by: William Hubbs <williamh <AT> gentoo.org>

 .../nodejs-12.22.5-shared_c-ares_nameser_h.patch   | 534 ---------------------
 net-libs/nodejs/nodejs-14.21.3.ebuild              |   1 -
 net-libs/nodejs/nodejs-16.19.1.ebuild              |   1 -
 net-libs/nodejs/nodejs-18.14.2.ebuild              |   4 -
 net-libs/nodejs/nodejs-99999999.ebuild             |   4 -
 5 files changed, 544 deletions(-)

diff --git a/net-libs/nodejs/files/nodejs-12.22.5-shared_c-ares_nameser_h.patch b/net-libs/nodejs/files/nodejs-12.22.5-shared_c-ares_nameser_h.patch
deleted file mode 100644
index f90084c2bb2e..000000000000
--- a/net-libs/nodejs/files/nodejs-12.22.5-shared_c-ares_nameser_h.patch
+++ /dev/null
@@ -1,534 +0,0 @@
-From aff98a5667c22794e2eaf658f6dfbee54cdd4a3b Mon Sep 17 00:00:00 2001
-From: Felix Yan <felixonmars@archlinux.org>
-Date: Thu, 12 Aug 2021 02:44:43 +0800
-Subject: [PATCH 1/2] deps: fix building with system c-ares on Linux
-
-The change in #39724 breaks building with system c-ares
-(`--shared-cares`):
-```
-In file included from ../src/cares_wrap.cc:25:
-../src/cares_wrap.h:25:11: fatal error: ares_nameser.h: No such file or
-directory
-   25 | # include <ares_nameser.h>
-      |           ^~~~~~~~~~~~~~~~
-```
-
-Since `ares_nameser.h` isn't available with a default system c-ares
-installation, let's copy it as our private header here.
-
-Tested to build fine on Arch Linux with shared c-ares.
----
- src/ares_nameser.h | 482 +++++++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 482 insertions(+)
- create mode 100644 src/ares_nameser.h
-
-diff --git a/src/ares_nameser.h b/src/ares_nameser.h
-new file mode 100644
-index 000000000000..5270e5a3a6a0
---- /dev/null
-+++ b/src/ares_nameser.h
-@@ -0,0 +1,482 @@
-+
-+#ifndef ARES_NAMESER_H
-+#define ARES_NAMESER_H
-+
-+#ifdef HAVE_ARPA_NAMESER_H
-+#  include <arpa/nameser.h>
-+#endif
-+#ifdef HAVE_ARPA_NAMESER_COMPAT_H
-+#  include <arpa/nameser_compat.h>
-+#endif
-+
-+/* ============================================================================
-+ * arpa/nameser.h may or may not provide ALL of the below defines, so check
-+ * each one individually and set if not
-+ * ============================================================================
-+ */
-+
-+#ifndef NS_PACKETSZ
-+#  define NS_PACKETSZ     512   /* maximum packet size */
-+#endif
-+
-+#ifndef NS_MAXDNAME
-+#  define NS_MAXDNAME     256   /* maximum domain name */
-+#endif
-+
-+#ifndef NS_MAXCDNAME
-+#  define NS_MAXCDNAME    255   /* maximum compressed domain name */
-+#endif
-+
-+#ifndef NS_MAXLABEL
-+#  define NS_MAXLABEL     63
-+#endif
-+
-+#ifndef NS_HFIXEDSZ
-+#  define NS_HFIXEDSZ     12    /* #/bytes of fixed data in header */
-+#endif
-+
-+#ifndef NS_QFIXEDSZ
-+#  define NS_QFIXEDSZ     4     /* #/bytes of fixed data in query */
-+#endif
-+
-+#ifndef NS_RRFIXEDSZ
-+#  define NS_RRFIXEDSZ    10    /* #/bytes of fixed data in r record */
-+#endif
-+
-+#ifndef NS_INT16SZ
-+#  define NS_INT16SZ      2
-+#endif
-+
-+#ifndef NS_INADDRSZ
-+#  define NS_INADDRSZ     4
-+#endif
-+
-+#ifndef NS_IN6ADDRSZ
-+#  define NS_IN6ADDRSZ    16
-+#endif
-+
-+#ifndef NS_CMPRSFLGS
-+#  define NS_CMPRSFLGS    0xc0  /* Flag bits indicating name compression. */
-+#endif
-+
-+#ifndef NS_DEFAULTPORT
-+#  define NS_DEFAULTPORT  53    /* For both TCP and UDP. */
-+#endif
-+
-+/* ============================================================================
-+ * arpa/nameser.h should provide these enumerations always, so if not found,
-+ * provide them
-+ * ============================================================================
-+ */
-+#ifndef HAVE_ARPA_NAMESER_H
-+
-+typedef enum __ns_class {
-+    ns_c_invalid = 0,       /* Cookie. */
-+    ns_c_in = 1,            /* Internet. */
-+    ns_c_2 = 2,             /* unallocated/unsupported. */
-+    ns_c_chaos = 3,         /* MIT Chaos-net. */
-+    ns_c_hs = 4,            /* MIT Hesiod. */
-+    /* Query class values which do not appear in resource records */
-+    ns_c_none = 254,        /* for prereq. sections in update requests */
-+    ns_c_any = 255,         /* Wildcard match. */
-+    ns_c_max = 65536
-+} ns_class;
-+
-+typedef enum __ns_type {
-+    ns_t_invalid = 0,       /* Cookie. */
-+    ns_t_a = 1,             /* Host address. */
-+    ns_t_ns = 2,            /* Authoritative server. */
-+    ns_t_md = 3,            /* Mail destination. */
-+    ns_t_mf = 4,            /* Mail forwarder. */
-+    ns_t_cname = 5,         /* Canonical name. */
-+    ns_t_soa = 6,           /* Start of authority zone. */
-+    ns_t_mb = 7,            /* Mailbox domain name. */
-+    ns_t_mg = 8,            /* Mail group member. */
-+    ns_t_mr = 9,            /* Mail rename name. */
-+    ns_t_null = 10,         /* Null resource record. */
-+    ns_t_wks = 11,          /* Well known service. */
-+    ns_t_ptr = 12,          /* Domain name pointer. */
-+    ns_t_hinfo = 13,        /* Host information. */
-+    ns_t_minfo = 14,        /* Mailbox information. */
-+    ns_t_mx = 15,           /* Mail routing information. */
-+    ns_t_txt = 16,          /* Text strings. */
-+    ns_t_rp = 17,           /* Responsible person. */
-+    ns_t_afsdb = 18,        /* AFS cell database. */
-+    ns_t_x25 = 19,          /* X_25 calling address. */
-+    ns_t_isdn = 20,         /* ISDN calling address. */
-+    ns_t_rt = 21,           /* Router. */
-+    ns_t_nsap = 22,         /* NSAP address. */
-+    ns_t_nsap_ptr = 23,     /* Reverse NSAP lookup (deprecated). */
-+    ns_t_sig = 24,          /* Security signature. */
-+    ns_t_key = 25,          /* Security key. */
-+    ns_t_px = 26,           /* X.400 mail mapping. */
-+    ns_t_gpos = 27,         /* Geographical position (withdrawn). */
-+    ns_t_aaaa = 28,         /* Ip6 Address. */
-+    ns_t_loc = 29,          /* Location Information. */
-+    ns_t_nxt = 30,          /* Next domain (security). */
-+    ns_t_eid = 31,          /* Endpoint identifier. */
-+    ns_t_nimloc = 32,       /* Nimrod Locator. */
-+    ns_t_srv = 33,          /* Server Selection. */
-+    ns_t_atma = 34,         /* ATM Address */
-+    ns_t_naptr = 35,        /* Naming Authority PoinTeR */
-+    ns_t_kx = 36,           /* Key Exchange */
-+    ns_t_cert = 37,         /* Certification record */
-+    ns_t_a6 = 38,           /* IPv6 address (deprecates AAAA) */
-+    ns_t_dname = 39,        /* Non-terminal DNAME (for IPv6) */
-+    ns_t_sink = 40,         /* Kitchen sink (experimentatl) */
-+    ns_t_opt = 41,          /* EDNS0 option (meta-RR) */
-+    ns_t_apl = 42,          /* Address prefix list (RFC3123) */
-+    ns_t_ds = 43,           /* Delegation Signer (RFC4034) */
-+    ns_t_sshfp = 44,        /* SSH Key Fingerprint (RFC4255) */
-+    ns_t_rrsig = 46,        /* Resource Record Signature (RFC4034) */
-+    ns_t_nsec = 47,         /* Next Secure (RFC4034) */
-+    ns_t_dnskey = 48,       /* DNS Public Key (RFC4034) */
-+    ns_t_tkey = 249,        /* Transaction key */
-+    ns_t_tsig = 250,        /* Transaction signature. */
-+    ns_t_ixfr = 251,        /* Incremental zone transfer. */
-+    ns_t_axfr = 252,        /* Transfer zone of authority. */
-+    ns_t_mailb = 253,       /* Transfer mailbox records. */
-+    ns_t_maila = 254,       /* Transfer mail agent records. */
-+    ns_t_any = 255,         /* Wildcard match. */
-+    ns_t_zxfr = 256,        /* BIND-specific, nonstandard. */
-+    ns_t_caa = 257,         /* Certification Authority Authorization. */
-+    ns_t_max = 65536
-+} ns_type;
-+
-+typedef enum __ns_opcode {
-+    ns_o_query = 0,         /* Standard query. */
-+    ns_o_iquery = 1,        /* Inverse query (deprecated/unsupported). */
-+    ns_o_status = 2,        /* Name server status query (unsupported). */
-+                                /* Opcode 3 is undefined/reserved. */
-+    ns_o_notify = 4,        /* Zone change notification. */
-+    ns_o_update = 5,        /* Zone update message. */
-+    ns_o_max = 6
-+} ns_opcode;
-+
-+typedef enum __ns_rcode {
-+    ns_r_noerror = 0,       /* No error occurred. */
-+    ns_r_formerr = 1,       /* Format error. */
-+    ns_r_servfail = 2,      /* Server failure. */
-+    ns_r_nxdomain = 3,      /* Name error. */
-+    ns_r_notimpl = 4,       /* Unimplemented. */
-+    ns_r_refused = 5,       /* Operation refused. */
-+    /* these are for BIND_UPDATE */
-+    ns_r_yxdomain = 6,      /* Name exists */
-+    ns_r_yxrrset = 7,       /* RRset exists */
-+    ns_r_nxrrset = 8,       /* RRset does not exist */
-+    ns_r_notauth = 9,       /* Not authoritative for zone */
-+    ns_r_notzone = 10,      /* Zone of record different from zone section */
-+    ns_r_max = 11,
-+    /* The following are TSIG extended errors */
-+    ns_r_badsig = 16,
-+    ns_r_badkey = 17,
-+    ns_r_badtime = 18
-+} ns_rcode;
-+
-+#endif /* HAVE_ARPA_NAMESER_H */
-+
-+
-+/* ============================================================================
-+ * arpa/nameser_compat.h typically sets these.  However on some systems
-+ * arpa/nameser.h does, but may not set all of them.  Lets conditionally
-+ * define each
-+ * ============================================================================
-+ */
-+
-+#ifndef PACKETSZ
-+#  define PACKETSZ         NS_PACKETSZ
-+#endif
-+
-+#ifndef MAXDNAME
-+#  define MAXDNAME         NS_MAXDNAME
-+#endif
-+
-+#ifndef MAXCDNAME
-+#  define MAXCDNAME        NS_MAXCDNAME
-+#endif
-+
-+#ifndef MAXLABEL
-+#  define MAXLABEL         NS_MAXLABEL
-+#endif
-+
-+#ifndef HFIXEDSZ
-+#  define HFIXEDSZ         NS_HFIXEDSZ
-+#endif
-+
-+#ifndef QFIXEDSZ
-+#  define QFIXEDSZ         NS_QFIXEDSZ
-+#endif
-+
-+#ifndef RRFIXEDSZ
-+#  define RRFIXEDSZ        NS_RRFIXEDSZ
-+#endif
-+
-+#ifndef INDIR_MASK
-+#  define INDIR_MASK       NS_CMPRSFLGS
-+#endif
-+
-+#ifndef NAMESERVER_PORT
-+#  define NAMESERVER_PORT  NS_DEFAULTPORT
-+#endif
-+
-+
-+/* opcodes */
-+#ifndef O_QUERY
-+#  define O_QUERY 0  /* ns_o_query */
-+#endif
-+#ifndef O_IQUERY
-+#  define O_IQUERY 1 /* ns_o_iquery */
-+#endif
-+#ifndef O_STATUS
-+#  define O_STATUS 2 /* ns_o_status */
-+#endif
-+#ifndef O_NOTIFY
-+#  define O_NOTIFY 4 /* ns_o_notify */
-+#endif
-+#ifndef O_UPDATE
-+#  define O_UPDATE 5 /* ns_o_update */
-+#endif
-+
-+
-+/* response codes */
-+#ifndef SERVFAIL
-+#  define SERVFAIL        ns_r_servfail
-+#endif
-+#ifndef NOTIMP
-+#  define NOTIMP          ns_r_notimpl
-+#endif
-+#ifndef REFUSED
-+#  define REFUSED         ns_r_refused
-+#endif
-+#if defined(_WIN32) && !defined(HAVE_ARPA_NAMESER_COMPAT_H) && defined(NOERROR)
-+#  undef NOERROR /* it seems this is already defined in winerror.h */
-+#endif
-+#ifndef NOERROR
-+#  define NOERROR         ns_r_noerror
-+#endif
-+#ifndef FORMERR
-+#  define FORMERR         ns_r_formerr
-+#endif
-+#ifndef NXDOMAIN
-+#  define NXDOMAIN        ns_r_nxdomain
-+#endif
-+/* Non-standard response codes, use numeric values */
-+#ifndef YXDOMAIN
-+#  define YXDOMAIN        6 /* ns_r_yxdomain */
-+#endif
-+#ifndef YXRRSET
-+#  define YXRRSET         7 /* ns_r_yxrrset */
-+#endif
-+#ifndef NXRRSET
-+#  define NXRRSET         8 /* ns_r_nxrrset */
-+#endif
-+#ifndef NOTAUTH
-+#  define NOTAUTH         9 /* ns_r_notauth */
-+#endif
-+#ifndef NOTZONE
-+#  define NOTZONE         10 /* ns_r_notzone */
-+#endif
-+#ifndef TSIG_BADSIG
-+#  define TSIG_BADSIG     16 /* ns_r_badsig */
-+#endif
-+#ifndef TSIG_BADKEY
-+#  define TSIG_BADKEY     17 /* ns_r_badkey */
-+#endif
-+#ifndef TSIG_BADTIME
-+#  define TSIG_BADTIME    18 /* ns_r_badtime */
-+#endif
-+
-+
-+/* classes */
-+#ifndef C_IN
-+#  define C_IN            1 /* ns_c_in */
-+#endif
-+#ifndef C_CHAOS
-+#  define C_CHAOS         3 /* ns_c_chaos */
-+#endif
-+#ifndef C_HS
-+#  define C_HS            4 /* ns_c_hs */
-+#endif
-+#ifndef C_NONE
-+#  define C_NONE          254 /* ns_c_none */
-+#endif
-+#ifndef C_ANY
-+#  define C_ANY           255 /*  ns_c_any */
-+#endif
-+
-+
-+/* types */
-+#ifndef T_A
-+#  define T_A             1   /* ns_t_a */
-+#endif
-+#ifndef T_NS
-+#  define T_NS            2   /* ns_t_ns */
-+#endif
-+#ifndef T_MD
-+#  define T_MD            3   /* ns_t_md */
-+#endif
-+#ifndef T_MF
-+#  define T_MF            4   /* ns_t_mf */
-+#endif
-+#ifndef T_CNAME
-+#  define T_CNAME         5   /* ns_t_cname */
-+#endif
-+#ifndef T_SOA
-+#  define T_SOA           6   /* ns_t_soa */
-+#endif
-+#ifndef T_MB
-+#  define T_MB            7   /* ns_t_mb */
-+#endif
-+#ifndef T_MG
-+#  define T_MG            8   /* ns_t_mg */
-+#endif
-+#ifndef T_MR
-+#  define T_MR            9   /* ns_t_mr */
-+#endif
-+#ifndef T_NULL
-+#  define T_NULL          10  /* ns_t_null */
-+#endif
-+#ifndef T_WKS
-+#  define T_WKS           11  /* ns_t_wks */
-+#endif
-+#ifndef T_PTR
-+#  define T_PTR           12  /* ns_t_ptr */
-+#endif
-+#ifndef T_HINFO
-+#  define T_HINFO         13  /* ns_t_hinfo */
-+#endif
-+#ifndef T_MINFO
-+#  define T_MINFO         14  /* ns_t_minfo */
-+#endif
-+#ifndef T_MX
-+#  define T_MX            15  /* ns_t_mx */
-+#endif
-+#ifndef T_TXT
-+#  define T_TXT           16  /* ns_t_txt */
-+#endif
-+#ifndef T_RP
-+#  define T_RP            17  /* ns_t_rp */
-+#endif
-+#ifndef T_AFSDB
-+#  define T_AFSDB         18  /* ns_t_afsdb */
-+#endif
-+#ifndef T_X25
-+#  define T_X25           19  /* ns_t_x25 */
-+#endif
-+#ifndef T_ISDN
-+#  define T_ISDN          20  /* ns_t_isdn */
-+#endif
-+#ifndef T_RT
-+#  define T_RT            21  /* ns_t_rt */
-+#endif
-+#ifndef T_NSAP
-+#  define T_NSAP          22  /* ns_t_nsap */
-+#endif
-+#ifndef T_NSAP_PTR
-+#  define T_NSAP_PTR      23  /* ns_t_nsap_ptr */
-+#endif
-+#ifndef T_SIG
-+#  define T_SIG           24  /* ns_t_sig */
-+#endif
-+#ifndef T_KEY
-+#  define T_KEY           25  /* ns_t_key */
-+#endif
-+#ifndef T_PX
-+#  define T_PX            26  /* ns_t_px */
-+#endif
-+#ifndef T_GPOS
-+#  define T_GPOS          27  /* ns_t_gpos */
-+#endif
-+#ifndef T_AAAA
-+#  define T_AAAA          28  /* ns_t_aaaa */
-+#endif
-+#ifndef T_LOC
-+#  define T_LOC           29  /* ns_t_loc */
-+#endif
-+#ifndef T_NXT
-+#  define T_NXT           30  /* ns_t_nxt */
-+#endif
-+#ifndef T_EID
-+#  define T_EID           31  /* ns_t_eid */
-+#endif
-+#ifndef T_NIMLOC
-+#  define T_NIMLOC        32  /* ns_t_nimloc */
-+#endif
-+#ifndef T_SRV
-+#  define T_SRV           33  /* ns_t_srv */
-+#endif
-+#ifndef T_ATMA
-+#  define T_ATMA          34  /* ns_t_atma */
-+#endif
-+#ifndef T_NAPTR
-+#  define T_NAPTR         35  /* ns_t_naptr */
-+#endif
-+#ifndef T_KX
-+#  define T_KX            36  /* ns_t_kx */
-+#endif
-+#ifndef T_CERT
-+#  define T_CERT          37  /* ns_t_cert */
-+#endif
-+#ifndef T_A6
-+#  define T_A6            38  /* ns_t_a6 */
-+#endif
-+#ifndef T_DNAME
-+#  define T_DNAME         39  /* ns_t_dname */
-+#endif
-+#ifndef T_SINK
-+#  define T_SINK          40  /* ns_t_sink */
-+#endif
-+#ifndef T_OPT
-+#  define T_OPT           41  /* ns_t_opt */
-+#endif
-+#ifndef T_APL
-+#  define T_APL           42  /* ns_t_apl */
-+#endif
-+#ifndef T_DS
-+#  define T_DS            43  /* ns_t_ds */
-+#endif
-+#ifndef T_SSHFP
-+#  define T_SSHFP         44  /* ns_t_sshfp */
-+#endif
-+#ifndef T_RRSIG
-+#  define T_RRSIG         46  /* ns_t_rrsig */
-+#endif
-+#ifndef T_NSEC
-+#  define T_NSEC          47  /* ns_t_nsec */
-+#endif
-+#ifndef T_DNSKEY
-+#  define T_DNSKEY        48  /* ns_t_dnskey */
-+#endif
-+#ifndef T_TKEY
-+#  define T_TKEY          249 /* ns_t_tkey */
-+#endif
-+#ifndef T_TSIG
-+#  define T_TSIG          250 /* ns_t_tsig */
-+#endif
-+#ifndef T_IXFR
-+#  define T_IXFR          251 /* ns_t_ixfr */
-+#endif
-+#ifndef T_AXFR
-+#  define T_AXFR          252 /* ns_t_axfr */
-+#endif
-+#ifndef T_MAILB
-+#  define T_MAILB         253 /* ns_t_mailb */
-+#endif
-+#ifndef T_MAILA
-+#  define T_MAILA         254 /* ns_t_maila */
-+#endif
-+#ifndef T_ANY
-+#  define T_ANY           255 /* ns_t_any */
-+#endif
-+#ifndef T_ZXFR
-+#  define T_ZXFR          256 /* ns_t_zxfr */
-+#endif
-+#ifndef T_CAA
-+#  define T_CAA           257 /* ns_t_caa */
-+#endif
-+#ifndef T_MAX
-+#  define T_MAX         65536 /* ns_t_max */
-+#endif
-+
-+
-+#endif /* ARES_NAMESER_H */
-
-From db4643979ee676b3a3d6cdf2fb597d399cf8013f Mon Sep 17 00:00:00 2001
-From: Felix Yan <felixonmars@archlinux.org>
-Date: Fri, 13 Aug 2021 00:01:59 +0800
-Subject: [PATCH 2/2] build: ignore cpplint for third-party ares_nameser.h
-
----
- Makefile | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/Makefile b/Makefile
-index ec4c774748cd..c418995c53c1 100644
---- a/Makefile
-+++ b/Makefile
-@@ -1289,6 +1289,7 @@ jslint-ci: lint-js-ci
- LINT_CPP_ADDON_DOC_FILES_GLOB = test/addons/??_*/*.cc test/addons/??_*/*.h
- LINT_CPP_ADDON_DOC_FILES = $(wildcard $(LINT_CPP_ADDON_DOC_FILES_GLOB))
- LINT_CPP_EXCLUDE ?=
-+LINT_CPP_EXCLUDE += src/ares_nameser.h
- LINT_CPP_EXCLUDE += src/node_root_certs.h
- LINT_CPP_EXCLUDE += $(LINT_CPP_ADDON_DOC_FILES)
- LINT_CPP_EXCLUDE += $(wildcard test/js-native-api/??_*/*.cc test/js-native-api/??_*/*.h test/node-api/??_*/*.cc test/node-api/??_*/*.h)

diff --git a/net-libs/nodejs/nodejs-14.21.3.ebuild b/net-libs/nodejs/nodejs-14.21.3.ebuild
index 7543fd8dcedc..d58d6df5cedf 100644
--- a/net-libs/nodejs/nodejs-14.21.3.ebuild
+++ b/net-libs/nodejs/nodejs-14.21.3.ebuild
@@ -52,7 +52,6 @@ BDEPEND="${PYTHON_DEPS}
 DEPEND="${RDEPEND}"
 
 PATCHES=(
-	"${FILESDIR}"/${PN}-12.22.5-shared_c-ares_nameser_h.patch
 	"${FILESDIR}"/${PN}-14.15.0-fix_ppc64_crashes.patch
 	"${FILESDIR}"/${PN}-14.19.0-global-npm-config.patch
 	"${FILESDIR}"/${PN}-gcc-13.patch

diff --git a/net-libs/nodejs/nodejs-16.19.1.ebuild b/net-libs/nodejs/nodejs-16.19.1.ebuild
index aad6661508fa..c3744f846e98 100644
--- a/net-libs/nodejs/nodejs-16.19.1.ebuild
+++ b/net-libs/nodejs/nodejs-16.19.1.ebuild
@@ -49,7 +49,6 @@ BDEPEND="${PYTHON_DEPS}
 DEPEND="${RDEPEND}"
 
 PATCHES=(
-	"${FILESDIR}"/${PN}-12.22.5-shared_c-ares_nameser_h.patch
 	"${FILESDIR}"/${PN}-15.2.0-global-npm-config.patch
 	"${FILESDIR}"/${PN}-gcc-13.patch
 )

diff --git a/net-libs/nodejs/nodejs-18.14.2.ebuild b/net-libs/nodejs/nodejs-18.14.2.ebuild
index bb51f9d7af75..fe52fcfba5ed 100644
--- a/net-libs/nodejs/nodejs-18.14.2.ebuild
+++ b/net-libs/nodejs/nodejs-18.14.2.ebuild
@@ -48,10 +48,6 @@ BDEPEND="${PYTHON_DEPS}
 	pax-kernel? ( sys-apps/elfix )"
 DEPEND="${RDEPEND}"
 
-PATCHES=(
-	"${FILESDIR}"/${PN}-12.22.5-shared_c-ares_nameser_h.patch
-)
-
 # These are measured on a loong machine with -ggdb on, and only checked
 # if debugging flags are present in CFLAGS.
 #

diff --git a/net-libs/nodejs/nodejs-99999999.ebuild b/net-libs/nodejs/nodejs-99999999.ebuild
index 77822a99f225..ef61e71e60d6 100644
--- a/net-libs/nodejs/nodejs-99999999.ebuild
+++ b/net-libs/nodejs/nodejs-99999999.ebuild
@@ -48,10 +48,6 @@ BDEPEND="${PYTHON_DEPS}
 	pax-kernel? ( sys-apps/elfix )"
 DEPEND="${RDEPEND}"
 
-PATCHES=(
-	"${FILESDIR}"/${PN}-12.22.5-shared_c-ares_nameser_h.patch
-)
-
 # These are measured on a loong machine with -ggdb on, and only checked
 # if debugging flags are present in CFLAGS.
 #


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: net-libs/nodejs/files/, net-libs/nodejs/
@ 2023-04-17 17:20 William Hubbs
  0 siblings, 0 replies; 36+ messages in thread
From: William Hubbs @ 2023-04-17 17:20 UTC (permalink / raw
  To: gentoo-commits

commit:     4c17ce92a321b3bed25618d464998482a3877125
Author:     William Hubbs <williamh <AT> gentoo <DOT> org>
AuthorDate: Mon Apr 17 17:19:46 2023 +0000
Commit:     William Hubbs <williamh <AT> gentoo <DOT> org>
CommitDate: Mon Apr 17 17:20:11 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4c17ce92

net-libs/nodejs: add 18.16.0

Signed-off-by: William Hubbs <williamh <AT> gentoo.org>

 net-libs/nodejs/Manifest                           |   1 +
 .../nodejs/files/nodejs-18.16.0-paxmarking.patch   | 101 ++++++++
 net-libs/nodejs/nodejs-18.16.0.ebuild              | 255 +++++++++++++++++++++
 3 files changed, 357 insertions(+)

diff --git a/net-libs/nodejs/Manifest b/net-libs/nodejs/Manifest
index 16aeb4845923..e89465ec5597 100644
--- a/net-libs/nodejs/Manifest
+++ b/net-libs/nodejs/Manifest
@@ -3,3 +3,4 @@ DIST node-v16.19.1.tar.xz 35465252 BLAKE2B 717cf15ab6fa5a2a643138959c4e539ef5417
 DIST node-v16.20.0.tar.xz 35546884 BLAKE2B 5bdb1fb7365e07f13d0a58a8d052d11efaadcf1b0792af0517b78b1ecf01e50eabe26e31588ae410ee63b7494a4eb9d23f70d4dd157a452d0bbf8bd548865255 SHA512 b155acdff0244307afcc334844f113b5c321f7764ebb69326d60a6a79d0e0d38d55257a38b815f5933aa4071e6a788e01c466476ef012cec648c84d74adda406
 DIST node-v18.14.2.tar.xz 40330824 BLAKE2B d18cf6a23f091633e5298727eeee15dec65ca83e688ff9fbed78385102aa44707ff4b33bcb034f6d10aab9a81a646ad7e8c28a239de151b816ff7072977df0de SHA512 72bb788b40d83bc42850dd9e2d00ffc06d9bcb17d24280d4721038038d1632846f859864328c849498255d1095296402b9b3c6b8910bbd399f7f516a43b9c86f
 DIST node-v18.15.0.tar.xz 40355624 BLAKE2B 56337de0b6e3c2421e6d9add81d30ada821525e0bb05fc977c91b7162f6dc075610ec53af50d6596cab6c0f647d61fb243896b25f0a768eeeefedf1a8bde1c05 SHA512 e41fcda469809186fd724ef4691e25f4a5bd81357ee99acf3d7faa1190a69c19cb62bd14aea199ca6f8b5cf9687af7d898cdf605ea2414d2c04db87ddb3b4dc8
+DIST node-v18.16.0.tar.xz 40467860 BLAKE2B b16749c0212f3aa196ec9fc0f999a023adeb9031b3332939330ba5a3edb5bc2ed6dc21bf861509696e19ed0cc5d5c54bb882018f0e54eb1ad8e9b0ba3bb64bff SHA512 608ce5db97ce2d851f381c7991f635c5e0927ae79037649b482c7e197479341b7c6560644e25f4d65ece8aa80c5763a0e044349a5be210fa33fbbf97a96462bd

diff --git a/net-libs/nodejs/files/nodejs-18.16.0-paxmarking.patch b/net-libs/nodejs/files/nodejs-18.16.0-paxmarking.patch
new file mode 100644
index 000000000000..9decb13ec47b
--- /dev/null
+++ b/net-libs/nodejs/files/nodejs-18.16.0-paxmarking.patch
@@ -0,0 +1,101 @@
+From 4c910c45a73c61f908f85661a1568a614afde081 Mon Sep 17 00:00:00 2001
+From: William Hubbs <w.d.hubbs@gmail.com>
+Date: Mon, 17 Apr 2023 11:43:17 -0500
+Subject: [PATCH] pax marking
+
+---
+ node.gyp                 | 17 ++++++++++++++++-
+ tools/v8_gypfiles/v8.gyp | 24 +++++++++++++++++++++++-
+ 2 files changed, 39 insertions(+), 2 deletions(-)
+
+diff --git a/node.gyp b/node.gyp
+index cf52281bb4..80352dfcc5 100644
+--- a/node.gyp
++++ b/node.gyp
+@@ -54,6 +54,7 @@
+       '<@(node_builtin_shareable_builtins)',
+     ],
+     'node_mksnapshot_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)node_mksnapshot<(EXECUTABLE_SUFFIX)',
++    'node_mksnapshot_u_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)node_mksnapshot_u<(EXECUTABLE_SUFFIX)',
+     'conditions': [
+       ['GENERATOR == "ninja"', {
+         'node_text_start_object_path': 'src/large_pages/node_text_start.node_text_start.o'
+@@ -337,11 +338,25 @@
+               ],
+             }, {
+               'actions': [
++                {
++                  'action_name': 'run_pax_mksnapshot',
++                  'inputs': [
++                    '<(node_mksnapshot_exec)',
++                  ],
++                  'outputs': [
++                    '<(node_mksnapshot_u_exec)',
++                  ],
++                  'action': [
++                    'bash',
++                    '-c',
++                    'mv <(node_mksnapshot_exec) <(node_mksnapshot_u_exec) && paxmark.sh m <(node_mksnapshot_u_exec)',
++                  ],
++                },
+                 {
+                   'action_name': 'node_mksnapshot',
+                   'process_outputs_as_sources': 1,
+                   'inputs': [
+-                    '<(node_mksnapshot_exec)',
++                    '<(node_mksnapshot_u_exec)',
+                   ],
+                   'outputs': [
+                     '<(SHARED_INTERMEDIATE_DIR)/node_snapshot.cc',
+diff --git a/tools/v8_gypfiles/v8.gyp b/tools/v8_gypfiles/v8.gyp
+index a721ffb41a..4a52a1f822 100644
+--- a/tools/v8_gypfiles/v8.gyp
++++ b/tools/v8_gypfiles/v8.gyp
+@@ -9,6 +9,7 @@
+     'v8_vector_stores%': 0,
+     'v8_embed_script%': "",
+     'mksnapshot_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)mksnapshot<(EXECUTABLE_SUFFIX)',
++    'mksnapshot_u_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)mksnapshot_u<(EXECUTABLE_SUFFIX)',
+     'v8_os_page_size%': 0,
+     'generate_bytecode_output_root': '<(SHARED_INTERMEDIATE_DIR)/generate-bytecode-output-root',
+     'generate_bytecode_builtins_list_output': '<(generate_bytecode_output_root)/builtins-generated/bytecodes-builtins-list.h',
+@@ -1419,7 +1420,7 @@
+       ],
+     },  # bytecode_builtins_list_generator
+     {
+-      'target_name': 'mksnapshot',
++      'target_name': 'mksnapshot_u',
+       'type': 'executable',
+       'dependencies': [
+         'v8_base_without_compiler',
+@@ -1446,6 +1447,27 @@
+           ],
+         }],
+       ],
++    },  # mksnapshot_u
++    {
++      'target_name': 'mksnapshot',
++      'type': 'none',
++      'dependencies': ['mksnapshot_u'],
++      'actions': [
++        {
++          'action_name': 'paxmark_mksnapshot',
++          'inputs': [
++            '<(mksnapshot_u_exec)',
++          ],
++          'outputs': [
++            '<(mksnapshot_exec)',
++          ],
++          'action': [
++            'bash',
++            '-c',
++            'cp <(mksnapshot_u_exec) <(mksnapshot_exec) && paxmark.sh m <(mksnapshot_exec)'
++          ],
++        },
++      ],
+     },  # mksnapshot
+     {
+       'target_name': 'torque',
+-- 
+2.39.2
+

diff --git a/net-libs/nodejs/nodejs-18.16.0.ebuild b/net-libs/nodejs/nodejs-18.16.0.ebuild
new file mode 100644
index 000000000000..aa505edb748c
--- /dev/null
+++ b/net-libs/nodejs/nodejs-18.16.0.ebuild
@@ -0,0 +1,255 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CONFIG_CHECK="~ADVISE_SYSCALLS"
+PYTHON_COMPAT=( python3_{9..11} )
+PYTHON_REQ_USE="threads(+)"
+
+inherit bash-completion-r1 check-reqs flag-o-matic linux-info pax-utils python-any-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine"
+HOMEPAGE="https://nodejs.org/"
+LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
+
+if [[ ${PV} == *9999 ]]; then
+	inherit git-r3
+	EGIT_REPO_URI="https://github.com/nodejs/node"
+	SLOT="0"
+else
+	SRC_URI="https://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz"
+	SLOT="0/$(ver_cut 1)"
+	KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86 ~amd64-linux ~x64-macos"
+	S="${WORKDIR}/node-v${PV}"
+fi
+
+IUSE="cpu_flags_x86_sse2 debug doc +icu inspector lto +npm pax-kernel +snapshot +ssl +system-icu +system-ssl systemtap test"
+REQUIRED_USE="inspector? ( icu ssl )
+	npm? ( ssl )
+	system-icu? ( icu )
+	system-ssl? ( ssl )"
+
+RESTRICT="!test? ( test )"
+
+RDEPEND=">=app-arch/brotli-1.0.9:=
+	>=dev-libs/libuv-1.44.0:=
+	>=net-dns/c-ares-1.17.2:=
+	>=net-libs/nghttp2-1.41.0:=
+	sys-libs/zlib
+	system-icu? ( >=dev-libs/icu-67:= )
+	system-ssl? ( >=dev-libs/openssl-1.1.1:0= )
+	sys-devel/gcc:*"
+BDEPEND="${PYTHON_DEPS}
+	sys-apps/coreutils
+	virtual/pkgconfig
+	systemtap? ( dev-util/systemtap )
+	test? ( net-misc/curl )
+	pax-kernel? ( sys-apps/elfix )"
+DEPEND="${RDEPEND}"
+
+# These are measured on a loong machine with -ggdb on, and only checked
+# if debugging flags are present in CFLAGS.
+#
+# The final link consumed a little more than 7GiB alone, so 8GiB is the lower
+# limit for memory usage. Disk usage was 19.1GiB for the build directory and
+# 1.2GiB for the installed image, so we leave some room for architectures with
+# fatter binaries and set the disk requirement to 22GiB.
+CHECKREQS_MEMORY="8G"
+CHECKREQS_DISK_BUILD="22G"
+
+pkg_pretend() {
+	(use x86 && ! use cpu_flags_x86_sse2) && \
+		die "Your CPU doesn't support the required SSE2 instruction."
+
+	if [[ ${MERGE_TYPE} != "binary" ]]; then
+		if is-flagq "-g*" && ! is-flagq "-g*0" ; then
+			einfo "Checking for sufficient disk space and memory to build ${PN} with debugging CFLAGS"
+			check-reqs_pkg_pretend
+		fi
+	fi
+}
+
+pkg_setup() {
+	python-any-r1_pkg_setup
+	linux-info_pkg_setup
+}
+
+src_prepare() {
+	tc-export AR CC CXX PKG_CONFIG
+	export V=1
+	export BUILDTYPE=Release
+
+	# fix compilation on Darwin
+	# https://code.google.com/p/gyp/issues/detail?id=260
+	sed -i -e "/append('-arch/d" tools/gyp/pylib/gyp/xcode_emulation.py || die
+
+	# less verbose install output (stating the same as portage, basically)
+	sed -i -e "/print/d" tools/install.py || die
+
+	# proper libdir, hat tip @ryanpcmcquen https://github.com/iojs/io.js/issues/504
+	local LIBDIR=$(get_libdir)
+	sed -i -e "s|lib/|${LIBDIR}/|g" tools/install.py || die
+	sed -i -e "s/'lib'/'${LIBDIR}'/" deps/npm/lib/npm.js || die
+
+	# Avoid writing a depfile, not useful
+	sed -i -e "/DEPFLAGS =/d" tools/gyp/pylib/gyp/generator/make.py || die
+
+	sed -i -e "/'-O3'/d" common.gypi node.gypi || die
+
+	# debug builds. change install path, remove optimisations and override buildtype
+	if use debug; then
+		sed -i -e "s|out/Release/|out/Debug/|g" tools/install.py || die
+		BUILDTYPE=Debug
+	fi
+
+	# We need to disable mprotect on two files when it builds Bug 694100.
+	use pax-kernel && PATCHES+=( "${FILESDIR}"/${P}-paxmarking.patch )
+
+	# All this test does is check if the npm CLI produces warnings of any sort,
+	# failing if it does. Overkill, much? Especially given one possible warning
+	# is that there is a newer version of npm available upstream (yes, it does
+	# use the network if available), thus making it a real possibility for this
+	# test to begin failing one day even though it was fine before.
+	rm -f test/parallel/test-release-npm.js
+
+	default
+}
+
+src_configure() {
+	xdg_environment_reset
+
+	# LTO compiler flags are handled by configure.py itself
+	filter-flags '-flto*'
+	# nodejs unconditionally links to libatomic #869992
+	# specifically it requires __atomic_is_lock_free which
+	# is not yet implemented by sys-libs/compiler-rt (see
+	# https://reviews.llvm.org/D85044?id=287068), therefore
+	# we depend on gcc and force using libgcc as the support lib
+	tc-is-clang && append-ldflags "--rtlib=libgcc --unwindlib=libgcc"
+
+	local myconf=(
+		--shared-brotli
+		--shared-cares
+		--shared-libuv
+		--shared-nghttp2
+		--shared-zlib
+	)
+	use debug && myconf+=( --debug )
+	use lto && myconf+=( --enable-lto )
+	if use system-icu; then
+		myconf+=( --with-intl=system-icu )
+	elif use icu; then
+		myconf+=( --with-intl=full-icu )
+	else
+		myconf+=( --with-intl=none )
+	fi
+	use inspector || myconf+=( --without-inspector )
+	use npm || myconf+=( --without-npm )
+	use snapshot || myconf+=( --without-node-snapshot )
+	if use ssl; then
+		use system-ssl && myconf+=( --shared-openssl --openssl-use-def-ca-store )
+	else
+		myconf+=( --without-ssl )
+	fi
+
+	local myarch=""
+	case "${ARCH}:${ABI}" in
+		*:amd64) myarch="x64";;
+		*:arm) myarch="arm";;
+		*:arm64) myarch="arm64";;
+		loong:lp64*) myarch="loong64";;
+		riscv:lp64*) myarch="riscv64";;
+		*:ppc64) myarch="ppc64";;
+		*:x32) myarch="x32";;
+		*:x86) myarch="ia32";;
+		*) myarch="${ABI}";;
+	esac
+
+	GYP_DEFINES="linux_use_gold_flags=0
+		linux_use_bundled_binutils=0
+		linux_use_bundled_gold=0" \
+	"${EPYTHON}" configure.py \
+		--prefix="${EPREFIX}"/usr \
+		--dest-cpu=${myarch} \
+		$(use_with systemtap dtrace) \
+		"${myconf[@]}" || die
+}
+
+src_compile() {
+	emake -C out
+}
+
+src_install() {
+	local LIBDIR="${ED}/usr/$(get_libdir)"
+	default
+
+	pax-mark -m "${ED}"/usr/bin/node
+
+	# set up a symlink structure that node-gyp expects..
+	dodir /usr/include/node/deps/{v8,uv}
+	dosym . /usr/include/node/src
+	for var in deps/{uv,v8}/include; do
+		dosym ../.. /usr/include/node/${var}
+	done
+
+	if use doc; then
+		docinto html
+		dodoc -r "${S}"/doc/*
+	fi
+
+	if use npm; then
+		keepdir /etc/npm
+		echo "NPM_CONFIG_GLOBALCONFIG=${EPREFIX}/etc/npm/npmrc" > "${T}"/50npm
+		doenvd "${T}"/50npm
+
+		# Install bash completion for `npm`
+		local tmp_npm_completion_file="$(TMPDIR="${T}" mktemp -t npm.XXXXXXXXXX)"
+		"${ED}/usr/bin/npm" completion > "${tmp_npm_completion_file}"
+		newbashcomp "${tmp_npm_completion_file}" npm
+
+		# Move man pages
+		doman "${LIBDIR}"/node_modules/npm/man/man{1,5,7}/*
+
+		# Clean up
+		rm -f "${LIBDIR}"/node_modules/npm/{.mailmap,.npmignore,Makefile}
+		rm -rf "${LIBDIR}"/node_modules/npm/{doc,html,man}
+
+		local find_exp="-or -name"
+		local find_name=()
+		for match in "AUTHORS*" "CHANGELOG*" "CONTRIBUT*" "README*" \
+			".travis.yml" ".eslint*" ".wercker.yml" ".npmignore" \
+			"*.md" "*.markdown" "*.bat" "*.cmd"; do
+			find_name+=( ${find_exp} "${match}" )
+		done
+
+		# Remove various development and/or inappropriate files and
+		# useless docs of dependend packages.
+		find "${LIBDIR}"/node_modules \
+			\( -type d -name examples \) -or \( -type f \( \
+				-iname "LICEN?E*" \
+				"${find_name[@]}" \
+			\) \) -exec rm -rf "{}" \;
+	fi
+
+	mv "${ED}"/usr/share/doc/node "${ED}"/usr/share/doc/${PF} || die
+}
+
+src_test() {
+	rm -f "${S}"/tests/parallel/test-dns-setserver-when-querying.js
+	if has usersandbox ${FEATURES}; then
+		rm -f "${S}"/test/parallel/test-fs-mkdir.js
+		ewarn "You are emerging ${PN} with 'usersandbox' enabled. Excluding tests known to fail in this mode." \
+			"For full test coverage, emerge =${CATEGORY}/${PF} with 'FEATURES=-usersandbox'."
+	fi
+
+	out/${BUILDTYPE}/cctest || die
+	"${EPYTHON}" tools/test.py --mode=${BUILDTYPE,,} --flaky-tests=dontcare -J message parallel sequential || die
+}
+
+pkg_postinst() {
+	if use npm; then
+		ewarn "remember to run: source /etc/profile if you plan to use nodejs"
+		ewarn "	in your current shell"
+	fi
+}


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: net-libs/nodejs/files/, net-libs/nodejs/
@ 2023-04-27  2:04 William Hubbs
  0 siblings, 0 replies; 36+ messages in thread
From: William Hubbs @ 2023-04-27  2:04 UTC (permalink / raw
  To: gentoo-commits

commit:     07af95b423429ec4067d3d012b378f32d6699f53
Author:     William Hubbs <williamh <AT> gentoo <DOT> org>
AuthorDate: Thu Apr 27 02:02:58 2023 +0000
Commit:     William Hubbs <williamh <AT> gentoo <DOT> org>
CommitDate: Thu Apr 27 02:04:09 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=07af95b4

net-libs/nodejs: add 20.0.0

Signed-off-by: William Hubbs <williamh <AT> gentoo.org>

 net-libs/nodejs/Manifest                           |   1 +
 .../nodejs/files/nodejs-fix-incomplete-type.patch  |  44 ++++
 net-libs/nodejs/nodejs-20.0.0.ebuild               | 259 +++++++++++++++++++++
 3 files changed, 304 insertions(+)

diff --git a/net-libs/nodejs/Manifest b/net-libs/nodejs/Manifest
index e89465ec5597..06474cb6818a 100644
--- a/net-libs/nodejs/Manifest
+++ b/net-libs/nodejs/Manifest
@@ -4,3 +4,4 @@ DIST node-v16.20.0.tar.xz 35546884 BLAKE2B 5bdb1fb7365e07f13d0a58a8d052d11efaadc
 DIST node-v18.14.2.tar.xz 40330824 BLAKE2B d18cf6a23f091633e5298727eeee15dec65ca83e688ff9fbed78385102aa44707ff4b33bcb034f6d10aab9a81a646ad7e8c28a239de151b816ff7072977df0de SHA512 72bb788b40d83bc42850dd9e2d00ffc06d9bcb17d24280d4721038038d1632846f859864328c849498255d1095296402b9b3c6b8910bbd399f7f516a43b9c86f
 DIST node-v18.15.0.tar.xz 40355624 BLAKE2B 56337de0b6e3c2421e6d9add81d30ada821525e0bb05fc977c91b7162f6dc075610ec53af50d6596cab6c0f647d61fb243896b25f0a768eeeefedf1a8bde1c05 SHA512 e41fcda469809186fd724ef4691e25f4a5bd81357ee99acf3d7faa1190a69c19cb62bd14aea199ca6f8b5cf9687af7d898cdf605ea2414d2c04db87ddb3b4dc8
 DIST node-v18.16.0.tar.xz 40467860 BLAKE2B b16749c0212f3aa196ec9fc0f999a023adeb9031b3332939330ba5a3edb5bc2ed6dc21bf861509696e19ed0cc5d5c54bb882018f0e54eb1ad8e9b0ba3bb64bff SHA512 608ce5db97ce2d851f381c7991f635c5e0927ae79037649b482c7e197479341b7c6560644e25f4d65ece8aa80c5763a0e044349a5be210fa33fbbf97a96462bd
+DIST node-v20.0.0.tar.xz 41279796 BLAKE2B 1df8785ca22dea15c6c1f19ec2d3b3d704f9cda6cf13d6e8e8fbbf853515871f18a11a4bbe5ed765434f6f5606975c5254e1826f2e506165ff937ef16d326262 SHA512 cda981227398c1a9023a2212c0d5351eadfedd19d58776dcc470e3ba0213a178b626c37d48fa52548ddd5a70d26a18b66c266856321a0af9ada2b1eac7ee9fd8

diff --git a/net-libs/nodejs/files/nodejs-fix-incomplete-type.patch b/net-libs/nodejs/files/nodejs-fix-incomplete-type.patch
new file mode 100644
index 000000000000..e204421597d0
--- /dev/null
+++ b/net-libs/nodejs/files/nodejs-fix-incomplete-type.patch
@@ -0,0 +1,44 @@
+From 0164c09d4025df2bd1a42f14de29166aa0e7ac7a Mon Sep 17 00:00:00 2001
+From: Richard Lau <rlau@redhat.com>
+Date: Wed, 26 Apr 2023 15:46:00 -0400
+Subject: [PATCH] deps: V8: cherry-pick c5ab3e4f0c5a
+
+Original commit message:
+
+    libstdc++: fix incomplete type in v8::internal::is_subtype<T, U>
+
+    Using std::convertible with incomplete types is UB. However, till
+    GCC 12 it was accepted and std::convertible returned false.
+    This fails now for e.g. v8::internal::WasmArray. Use
+    std::disjunction and std::conjunction instead which are short-
+    circuiting, because std::is_base_of<T, T> is already true.
+
+    Bug: chromium:957519
+    Change-Id: Ia26643dbdf0fb00d5586c71ae6b18e8d0f3cf96e
+    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4394663
+    Commit-Queue: Stephan Hartmann <stha09@googlemail.com>
+    Reviewed-by: Clemens Backes <clemensb@chromium.org>
+    Cr-Commit-Position: refs/heads/main@{#86904}
+
+Refs: https://github.com/v8/v8/commit/c5ab3e4f0c5a3ce880941184ef8447c27cd19a93
+---
+ common.gypi                 | 2 +-
+ deps/v8/src/codegen/tnode.h | 5 +++--
+ 2 files changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/deps/v8/src/codegen/tnode.h b/deps/v8/src/codegen/tnode.h
+index cd7bd8db98c24..7629e89ad693f 100644
+--- a/deps/v8/src/codegen/tnode.h
++++ b/deps/v8/src/codegen/tnode.h
+@@ -269,8 +269,9 @@ using BuiltinPtr = Smi;
+ template <class T, class U>
+ struct is_subtype {
+   static const bool value =
+-      std::is_base_of<U, T>::value || (std::is_same<U, MaybeObject>::value &&
+-                                       std::is_convertible<T, Object>::value);
++      std::disjunction<std::is_base_of<U, T>,
++                       std::conjunction<std::is_same<U, MaybeObject>,
++                                        std::is_convertible<T, Object>>>::value;
+ };
+ template <class T1, class T2, class U>
+ struct is_subtype<UnionT<T1, T2>, U> {

diff --git a/net-libs/nodejs/nodejs-20.0.0.ebuild b/net-libs/nodejs/nodejs-20.0.0.ebuild
new file mode 100644
index 000000000000..5a4561402129
--- /dev/null
+++ b/net-libs/nodejs/nodejs-20.0.0.ebuild
@@ -0,0 +1,259 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CONFIG_CHECK="~ADVISE_SYSCALLS"
+PYTHON_COMPAT=( python3_{9..11} )
+PYTHON_REQ_USE="threads(+)"
+
+inherit bash-completion-r1 check-reqs flag-o-matic linux-info pax-utils python-any-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine"
+HOMEPAGE="https://nodejs.org/"
+LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
+
+if [[ ${PV} == *9999 ]]; then
+	inherit git-r3
+	EGIT_REPO_URI="https://github.com/nodejs/node"
+	SLOT="0"
+else
+	SRC_URI="https://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz"
+	SLOT="0/$(ver_cut 1)"
+	KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86 ~amd64-linux ~x64-macos"
+	S="${WORKDIR}/node-v${PV}"
+fi
+
+IUSE="cpu_flags_x86_sse2 debug doc +icu inspector lto +npm pax-kernel +snapshot +ssl +system-icu +system-ssl test"
+REQUIRED_USE="inspector? ( icu ssl )
+	npm? ( ssl )
+	system-icu? ( icu )
+	system-ssl? ( ssl )"
+
+RESTRICT="!test? ( test )"
+
+RDEPEND=">=app-arch/brotli-1.0.9:=
+	>=dev-libs/libuv-1.44.0:=
+	>=net-dns/c-ares-1.17.2:=
+	>=net-libs/nghttp2-1.41.0:=
+	sys-libs/zlib
+	system-icu? ( >=dev-libs/icu-67:= )
+	system-ssl? ( >=dev-libs/openssl-1.1.1:0= )
+	sys-devel/gcc:*"
+BDEPEND="${PYTHON_DEPS}
+	sys-apps/coreutils
+	virtual/pkgconfig
+	test? ( net-misc/curl )
+	pax-kernel? ( sys-apps/elfix )"
+DEPEND="${RDEPEND}"
+
+# These are measured on a loong machine with -ggdb on, and only checked
+# if debugging flags are present in CFLAGS.
+#
+# The final link consumed a little more than 7GiB alone, so 8GiB is the lower
+# limit for memory usage. Disk usage was 19.1GiB for the build directory and
+# 1.2GiB for the installed image, so we leave some room for architectures with
+# fatter binaries and set the disk requirement to 22GiB.
+CHECKREQS_MEMORY="8G"
+CHECKREQS_DISK_BUILD="22G"
+
+pkg_pretend() {
+	(use x86 && ! use cpu_flags_x86_sse2) && \
+		die "Your CPU doesn't support the required SSE2 instruction."
+
+	if [[ ${MERGE_TYPE} != "binary" ]]; then
+		if is-flagq "-g*" && ! is-flagq "-g*0" ; then
+			einfo "Checking for sufficient disk space and memory to build ${PN} with debugging CFLAGS"
+			check-reqs_pkg_pretend
+		fi
+	fi
+}
+
+pkg_setup() {
+	python-any-r1_pkg_setup
+	linux-info_pkg_setup
+}
+
+PATCHES=(
+	"${FILESDIR}"/${PN}-fix-incomplete-type.patch
+)
+
+src_prepare() {
+	tc-export AR CC CXX PKG_CONFIG
+	export V=1
+	export BUILDTYPE=Release
+
+	# fix compilation on Darwin
+	# https://code.google.com/p/gyp/issues/detail?id=260
+	sed -i -e "/append('-arch/d" tools/gyp/pylib/gyp/xcode_emulation.py || die
+
+	# less verbose install output (stating the same as portage, basically)
+	sed -i -e "/print/d" tools/install.py || die
+
+	# proper libdir, hat tip @ryanpcmcquen https://github.com/iojs/io.js/issues/504
+	local LIBDIR=$(get_libdir)
+	sed -i -e "s|lib/|${LIBDIR}/|g" tools/install.py || die
+	sed -i -e "s/'lib'/'${LIBDIR}'/" deps/npm/lib/npm.js || die
+
+	# Avoid writing a depfile, not useful
+	sed -i -e "/DEPFLAGS =/d" tools/gyp/pylib/gyp/generator/make.py || die
+
+	sed -i -e "/'-O3'/d" common.gypi node.gypi || die
+
+	# debug builds. change install path, remove optimisations and override buildtype
+	if use debug; then
+		sed -i -e "s|out/Release/|out/Debug/|g" tools/install.py || die
+		BUILDTYPE=Debug
+	fi
+
+	# We need to disable mprotect on two files when it builds Bug 694100.
+	use pax-kernel && PATCHES+=( "${FILESDIR}"/${PN}-18.16.0-paxmarking.patch )
+
+	# All this test does is check if the npm CLI produces warnings of any sort,
+	# failing if it does. Overkill, much? Especially given one possible warning
+	# is that there is a newer version of npm available upstream (yes, it does
+	# use the network if available), thus making it a real possibility for this
+	# test to begin failing one day even though it was fine before.
+	rm -f test/parallel/test-release-npm.js
+
+	default
+}
+
+src_configure() {
+	xdg_environment_reset
+
+	# LTO compiler flags are handled by configure.py itself
+	filter-flags '-flto*'
+	# nodejs unconditionally links to libatomic #869992
+	# specifically it requires __atomic_is_lock_free which
+	# is not yet implemented by sys-libs/compiler-rt (see
+	# https://reviews.llvm.org/D85044?id=287068), therefore
+	# we depend on gcc and force using libgcc as the support lib
+	tc-is-clang && append-ldflags "--rtlib=libgcc --unwindlib=libgcc"
+
+	local myconf=(
+		--shared-brotli
+		--shared-cares
+		--shared-libuv
+		--shared-nghttp2
+		--shared-zlib
+	)
+	use debug && myconf+=( --debug )
+	use lto && myconf+=( --enable-lto )
+	if use system-icu; then
+		myconf+=( --with-intl=system-icu )
+	elif use icu; then
+		myconf+=( --with-intl=full-icu )
+	else
+		myconf+=( --with-intl=none )
+	fi
+	use inspector || myconf+=( --without-inspector )
+	use npm || myconf+=( --without-npm )
+	use snapshot || myconf+=( --without-node-snapshot )
+	if use ssl; then
+		use system-ssl && myconf+=( --shared-openssl --openssl-use-def-ca-store )
+	else
+		myconf+=( --without-ssl )
+	fi
+
+	local myarch=""
+	case "${ARCH}:${ABI}" in
+		*:amd64) myarch="x64";;
+		*:arm) myarch="arm";;
+		*:arm64) myarch="arm64";;
+		loong:lp64*) myarch="loong64";;
+		riscv:lp64*) myarch="riscv64";;
+		*:ppc64) myarch="ppc64";;
+		*:x32) myarch="x32";;
+		*:x86) myarch="ia32";;
+		*) myarch="${ABI}";;
+	esac
+
+	GYP_DEFINES="linux_use_gold_flags=0
+		linux_use_bundled_binutils=0
+		linux_use_bundled_gold=0" \
+	"${EPYTHON}" configure.py \
+		--prefix="${EPREFIX}"/usr \
+		--dest-cpu=${myarch} \
+		"${myconf[@]}" || die
+}
+
+src_compile() {
+	emake -C out
+}
+
+src_install() {
+	local LIBDIR="${ED}/usr/$(get_libdir)"
+	default
+
+	pax-mark -m "${ED}"/usr/bin/node
+
+	# set up a symlink structure that node-gyp expects..
+	dodir /usr/include/node/deps/{v8,uv}
+	dosym . /usr/include/node/src
+	for var in deps/{uv,v8}/include; do
+		dosym ../.. /usr/include/node/${var}
+	done
+
+	if use doc; then
+		docinto html
+		dodoc -r "${S}"/doc/*
+	fi
+
+	if use npm; then
+		keepdir /etc/npm
+		echo "NPM_CONFIG_GLOBALCONFIG=${EPREFIX}/etc/npm/npmrc" > "${T}"/50npm
+		doenvd "${T}"/50npm
+
+		# Install bash completion for `npm`
+		local tmp_npm_completion_file="$(TMPDIR="${T}" mktemp -t npm.XXXXXXXXXX)"
+		"${ED}/usr/bin/npm" completion > "${tmp_npm_completion_file}"
+		newbashcomp "${tmp_npm_completion_file}" npm
+
+		# Move man pages
+		doman "${LIBDIR}"/node_modules/npm/man/man{1,5,7}/*
+
+		# Clean up
+		rm -f "${LIBDIR}"/node_modules/npm/{.mailmap,.npmignore,Makefile}
+		rm -rf "${LIBDIR}"/node_modules/npm/{doc,html,man}
+
+		local find_exp="-or -name"
+		local find_name=()
+		for match in "AUTHORS*" "CHANGELOG*" "CONTRIBUT*" "README*" \
+			".travis.yml" ".eslint*" ".wercker.yml" ".npmignore" \
+			"*.md" "*.markdown" "*.bat" "*.cmd"; do
+			find_name+=( ${find_exp} "${match}" )
+		done
+
+		# Remove various development and/or inappropriate files and
+		# useless docs of dependend packages.
+		find "${LIBDIR}"/node_modules \
+			\( -type d -name examples \) -or \( -type f \( \
+				-iname "LICEN?E*" \
+				"${find_name[@]}" \
+			\) \) -exec rm -rf "{}" \;
+	fi
+
+	mv "${ED}"/usr/share/doc/node "${ED}"/usr/share/doc/${PF} || die
+}
+
+src_test() {
+	rm \
+		"${S}"/test/parallel/test-dns-setserver-when-querying.js \
+		"${S}"/test/parallel/test-strace-openat-openssl.js || die
+	if has usersandbox ${FEATURES}; then
+		rm -f "${S}"/test/parallel/test-fs-mkdir.js
+		ewarn "You are emerging ${PN} with 'usersandbox' enabled. Excluding tests known to fail in this mode." \
+			"For full test coverage, emerge =${CATEGORY}/${PF} with 'FEATURES=-usersandbox'."
+	fi
+
+	out/${BUILDTYPE}/cctest || die
+	"${EPYTHON}" tools/test.py --mode=${BUILDTYPE,,} --flaky-tests=dontcare -J message parallel sequential || die
+}
+
+pkg_postinst() {
+	if use npm; then
+		ewarn "remember to run: source /etc/profile if you plan to use nodejs"
+		ewarn "	in your current shell"
+	fi
+}


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: net-libs/nodejs/files/, net-libs/nodejs/
@ 2023-09-07 15:51 William Hubbs
  0 siblings, 0 replies; 36+ messages in thread
From: William Hubbs @ 2023-09-07 15:51 UTC (permalink / raw
  To: gentoo-commits

commit:     aaf869ad9019596fbadff1c4ebcb59e0960afae5
Author:     William Hubbs <williamh <AT> gentoo <DOT> org>
AuthorDate: Thu Sep  7 15:42:09 2023 +0000
Commit:     William Hubbs <williamh <AT> gentoo <DOT> org>
CommitDate: Thu Sep  7 15:49:01 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=aaf869ad

net-libs/nodejs: drop 18.16.0

Signed-off-by: William Hubbs <williamh <AT> gentoo.org>

 net-libs/nodejs/Manifest                           |   1 -
 .../nodejs/files/nodejs-fix-incomplete-type.patch  |  44 ----
 net-libs/nodejs/nodejs-18.16.0.ebuild              | 256 ---------------------
 3 files changed, 301 deletions(-)

diff --git a/net-libs/nodejs/Manifest b/net-libs/nodejs/Manifest
index 5bf28d6ef508..fc9312231a84 100644
--- a/net-libs/nodejs/Manifest
+++ b/net-libs/nodejs/Manifest
@@ -1,5 +1,4 @@
 DIST node-v16.20.2.tar.xz 36834468 BLAKE2B 88bd0d91a6b69f7e5fba2b087684b07b8986fd1492f51f6fdccc02f043970303808c0cc1eeda29670aacddd4234ec3181752c916fefee060624b0462dff8cbcf SHA512 c7953630b7d0eb832ab5a4b839c07e6505cf5f4e37853f59cd0ffc6b8742ac2ecaba20bfb47d8995ef88f3c7005bb456c1eb70cb2fc6b6fc506e1d8b81f25cb4
-DIST node-v18.16.0.tar.xz 40467860 BLAKE2B b16749c0212f3aa196ec9fc0f999a023adeb9031b3332939330ba5a3edb5bc2ed6dc21bf861509696e19ed0cc5d5c54bb882018f0e54eb1ad8e9b0ba3bb64bff SHA512 608ce5db97ce2d851f381c7991f635c5e0927ae79037649b482c7e197479341b7c6560644e25f4d65ece8aa80c5763a0e044349a5be210fa33fbbf97a96462bd
 DIST node-v18.17.1.tar.xz 40788836 BLAKE2B 50e0dc0eecd68620ffa7457319e71124bbba302f6acff79286a30cf97442fb09a96cf8781456bafd5c2e497ba88cf392c141f0e221683da421b87f653b1ad7ca SHA512 fd6f586447ecd44ac6738da1cf7d54e74bd33ffd1ee1acc2e0e1bdaf0031bcaef85751d3dd590bb278eb502daf9c77f0763b5a181a30ee4cf537aef254629622
 DIST node-v20.2.0.tar.xz 41778040 BLAKE2B 362b0ee89fe822722caeeb4b918550637bfb10791de75d872da334cb1123b744c351b5822b05abf4d36a0449badc5232ab1d73896dd5ce7755d10b226f0b9f52 SHA512 bf780e79bf6c7f766beb7734c7af45edc62094aba4c608f5519b130ff263e52ece925f85a4ee5740e962d16020070ef00933f6c74e771d948f23525c223da48e
 DIST node-v20.5.1.tar.xz 41532256 BLAKE2B b26fbe8be7e3330b69ae0f630cabba7dee7879ae829c2c743491d26d9623c3170de85e4e7c0629993257935841978343c1ded2870ece24365784581c8be0143b SHA512 2828930bf2df0769ec7116fc6b89c7069294426b937ce38543426e0108a8c953301c523eb03419e35a993773895d74b28838bec96ffc01ab0e138a4b2a52737d

diff --git a/net-libs/nodejs/files/nodejs-fix-incomplete-type.patch b/net-libs/nodejs/files/nodejs-fix-incomplete-type.patch
deleted file mode 100644
index e204421597d0..000000000000
--- a/net-libs/nodejs/files/nodejs-fix-incomplete-type.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 0164c09d4025df2bd1a42f14de29166aa0e7ac7a Mon Sep 17 00:00:00 2001
-From: Richard Lau <rlau@redhat.com>
-Date: Wed, 26 Apr 2023 15:46:00 -0400
-Subject: [PATCH] deps: V8: cherry-pick c5ab3e4f0c5a
-
-Original commit message:
-
-    libstdc++: fix incomplete type in v8::internal::is_subtype<T, U>
-
-    Using std::convertible with incomplete types is UB. However, till
-    GCC 12 it was accepted and std::convertible returned false.
-    This fails now for e.g. v8::internal::WasmArray. Use
-    std::disjunction and std::conjunction instead which are short-
-    circuiting, because std::is_base_of<T, T> is already true.
-
-    Bug: chromium:957519
-    Change-Id: Ia26643dbdf0fb00d5586c71ae6b18e8d0f3cf96e
-    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4394663
-    Commit-Queue: Stephan Hartmann <stha09@googlemail.com>
-    Reviewed-by: Clemens Backes <clemensb@chromium.org>
-    Cr-Commit-Position: refs/heads/main@{#86904}
-
-Refs: https://github.com/v8/v8/commit/c5ab3e4f0c5a3ce880941184ef8447c27cd19a93
----
- common.gypi                 | 2 +-
- deps/v8/src/codegen/tnode.h | 5 +++--
- 2 files changed, 4 insertions(+), 3 deletions(-)
-
-diff --git a/deps/v8/src/codegen/tnode.h b/deps/v8/src/codegen/tnode.h
-index cd7bd8db98c24..7629e89ad693f 100644
---- a/deps/v8/src/codegen/tnode.h
-+++ b/deps/v8/src/codegen/tnode.h
-@@ -269,8 +269,9 @@ using BuiltinPtr = Smi;
- template <class T, class U>
- struct is_subtype {
-   static const bool value =
--      std::is_base_of<U, T>::value || (std::is_same<U, MaybeObject>::value &&
--                                       std::is_convertible<T, Object>::value);
-+      std::disjunction<std::is_base_of<U, T>,
-+                       std::conjunction<std::is_same<U, MaybeObject>,
-+                                        std::is_convertible<T, Object>>>::value;
- };
- template <class T1, class T2, class U>
- struct is_subtype<UnionT<T1, T2>, U> {

diff --git a/net-libs/nodejs/nodejs-18.16.0.ebuild b/net-libs/nodejs/nodejs-18.16.0.ebuild
deleted file mode 100644
index c5e3710c3393..000000000000
--- a/net-libs/nodejs/nodejs-18.16.0.ebuild
+++ /dev/null
@@ -1,256 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-CONFIG_CHECK="~ADVISE_SYSCALLS"
-PYTHON_COMPAT=( python3_{9..11} )
-PYTHON_REQ_USE="threads(+)"
-
-inherit bash-completion-r1 check-reqs flag-o-matic linux-info pax-utils python-any-r1 toolchain-funcs xdg-utils
-
-DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine"
-HOMEPAGE="https://nodejs.org/"
-LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
-
-if [[ ${PV} == *9999 ]]; then
-	inherit git-r3
-	EGIT_REPO_URI="https://github.com/nodejs/node"
-	SLOT="0"
-else
-	SRC_URI="https://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz"
-	SLOT="0/$(ver_cut 1)"
-	KEYWORDS="amd64 arm arm64 ~loong ppc64 ~riscv x86 ~amd64-linux ~x64-macos"
-	S="${WORKDIR}/node-v${PV}"
-fi
-
-IUSE="cpu_flags_x86_sse2 debug doc +icu inspector lto +npm pax-kernel +snapshot +ssl +system-icu +system-ssl systemtap test"
-REQUIRED_USE="inspector? ( icu ssl )
-	npm? ( ssl )
-	system-icu? ( icu )
-	system-ssl? ( ssl )"
-
-RESTRICT="!test? ( test )"
-
-RDEPEND=">=app-arch/brotli-1.0.9:=
-	>=dev-libs/libuv-1.44.0:=
-	>=net-dns/c-ares-1.18.1:=
-	>=net-libs/nghttp2-1.41.0:=
-	sys-libs/zlib
-	system-icu? ( >=dev-libs/icu-67:= )
-	system-ssl? ( >=dev-libs/openssl-1.1.1:0= )
-	sys-devel/gcc:*"
-BDEPEND="${PYTHON_DEPS}
-	sys-apps/coreutils
-	virtual/pkgconfig
-	systemtap? ( dev-util/systemtap )
-	test? ( net-misc/curl )
-	pax-kernel? ( sys-apps/elfix )"
-DEPEND="${RDEPEND}"
-
-# These are measured on a loong machine with -ggdb on, and only checked
-# if debugging flags are present in CFLAGS.
-#
-# The final link consumed a little more than 7GiB alone, so 8GiB is the lower
-# limit for memory usage. Disk usage was 19.1GiB for the build directory and
-# 1.2GiB for the installed image, so we leave some room for architectures with
-# fatter binaries and set the disk requirement to 22GiB.
-CHECKREQS_MEMORY="8G"
-CHECKREQS_DISK_BUILD="22G"
-
-PATCHES=(
-	"${FILESDIR}"/${PN}-fix-incomplete-type.patch
-)
-
-pkg_pretend() {
-	(use x86 && ! use cpu_flags_x86_sse2) && \
-		die "Your CPU doesn't support the required SSE2 instruction."
-
-	if [[ ${MERGE_TYPE} != "binary" ]]; then
-		if is-flagq "-g*" && ! is-flagq "-g*0" ; then
-			einfo "Checking for sufficient disk space and memory to build ${PN} with debugging CFLAGS"
-			check-reqs_pkg_pretend
-		fi
-	fi
-}
-
-pkg_setup() {
-	python-any-r1_pkg_setup
-	linux-info_pkg_setup
-}
-
-src_prepare() {
-	tc-export AR CC CXX PKG_CONFIG
-	export V=1
-	export BUILDTYPE=Release
-
-	# fix compilation on Darwin
-	# https://code.google.com/p/gyp/issues/detail?id=260
-	sed -i -e "/append('-arch/d" tools/gyp/pylib/gyp/xcode_emulation.py || die
-
-	# less verbose install output (stating the same as portage, basically)
-	sed -i -e "/print/d" tools/install.py || die
-
-	# proper libdir, hat tip @ryanpcmcquen https://github.com/iojs/io.js/issues/504
-	local LIBDIR=$(get_libdir)
-	sed -i -e "s|lib/|${LIBDIR}/|g" tools/install.py || die
-	sed -i -e "s/'lib'/'${LIBDIR}'/" deps/npm/lib/npm.js || die
-
-	# Avoid writing a depfile, not useful
-	sed -i -e "/DEPFLAGS =/d" tools/gyp/pylib/gyp/generator/make.py || die
-
-	sed -i -e "/'-O3'/d" common.gypi node.gypi || die
-
-	# debug builds. change install path, remove optimisations and override buildtype
-	if use debug; then
-		sed -i -e "s|out/Release/|out/Debug/|g" tools/install.py || die
-		BUILDTYPE=Debug
-	fi
-
-	# We need to disable mprotect on two files when it builds Bug 694100.
-	use pax-kernel && PATCHES+=( "${FILESDIR}"/${P}-paxmarking.patch )
-
-	default
-}
-
-src_configure() {
-	xdg_environment_reset
-
-	# LTO compiler flags are handled by configure.py itself
-	filter-lto
-	# nodejs unconditionally links to libatomic #869992
-	# specifically it requires __atomic_is_lock_free which
-	# is not yet implemented by sys-libs/compiler-rt (see
-	# https://reviews.llvm.org/D85044?id=287068), therefore
-	# we depend on gcc and force using libgcc as the support lib
-	tc-is-clang && append-ldflags "--rtlib=libgcc --unwindlib=libgcc"
-
-	local myconf=(
-		--shared-brotli
-		--shared-cares
-		--shared-libuv
-		--shared-nghttp2
-		--shared-zlib
-	)
-	use debug && myconf+=( --debug )
-	use lto && myconf+=( --enable-lto )
-	if use system-icu; then
-		myconf+=( --with-intl=system-icu )
-	elif use icu; then
-		myconf+=( --with-intl=full-icu )
-	else
-		myconf+=( --with-intl=none )
-	fi
-	use inspector || myconf+=( --without-inspector )
-	use npm || myconf+=( --without-npm )
-	use snapshot || myconf+=( --without-node-snapshot )
-	if use ssl; then
-		use system-ssl && myconf+=( --shared-openssl --openssl-use-def-ca-store )
-	else
-		myconf+=( --without-ssl )
-	fi
-
-	local myarch=""
-	case "${ARCH}:${ABI}" in
-		*:amd64) myarch="x64";;
-		*:arm) myarch="arm";;
-		*:arm64) myarch="arm64";;
-		loong:lp64*) myarch="loong64";;
-		riscv:lp64*) myarch="riscv64";;
-		*:ppc64) myarch="ppc64";;
-		*:x32) myarch="x32";;
-		*:x86) myarch="ia32";;
-		*) myarch="${ABI}";;
-	esac
-
-	GYP_DEFINES="linux_use_gold_flags=0
-		linux_use_bundled_binutils=0
-		linux_use_bundled_gold=0" \
-	"${EPYTHON}" configure.py \
-		--prefix="${EPREFIX}"/usr \
-		--dest-cpu=${myarch} \
-		$(use_with systemtap dtrace) \
-		"${myconf[@]}" || die
-}
-
-src_compile() {
-	emake -C out
-}
-
-src_install() {
-	local LIBDIR="${ED}/usr/$(get_libdir)"
-	default
-
-	pax-mark -m "${ED}"/usr/bin/node
-
-	# set up a symlink structure that node-gyp expects..
-	dodir /usr/include/node/deps/{v8,uv}
-	dosym . /usr/include/node/src
-	for var in deps/{uv,v8}/include; do
-		dosym ../.. /usr/include/node/${var}
-	done
-
-	if use doc; then
-		docinto html
-		dodoc -r "${S}"/doc/*
-	fi
-
-	if use npm; then
-		keepdir /etc/npm
-		echo "NPM_CONFIG_GLOBALCONFIG=${EPREFIX}/etc/npm/npmrc" > "${T}"/50npm
-		doenvd "${T}"/50npm
-
-		# Install bash completion for `npm`
-		local tmp_npm_completion_file="$(TMPDIR="${T}" mktemp -t npm.XXXXXXXXXX)"
-		"${ED}/usr/bin/npm" completion > "${tmp_npm_completion_file}"
-		newbashcomp "${tmp_npm_completion_file}" npm
-
-		# Move man pages
-		doman "${LIBDIR}"/node_modules/npm/man/man{1,5,7}/*
-
-		# Clean up
-		rm -f "${LIBDIR}"/node_modules/npm/{.mailmap,.npmignore,Makefile}
-		rm -rf "${LIBDIR}"/node_modules/npm/{doc,html,man}
-
-		local find_exp="-or -name"
-		local find_name=()
-		for match in "AUTHORS*" "CHANGELOG*" "CONTRIBUT*" "README*" \
-			".travis.yml" ".eslint*" ".wercker.yml" ".npmignore" \
-			"*.md" "*.markdown" "*.bat" "*.cmd"; do
-			find_name+=( ${find_exp} "${match}" )
-		done
-
-		# Remove various development and/or inappropriate files and
-		# useless docs of dependend packages.
-		find "${LIBDIR}"/node_modules \
-			\( -type d -name examples \) -or \( -type f \( \
-				-iname "LICEN?E*" \
-				"${find_name[@]}" \
-			\) \) -exec rm -rf "{}" \;
-	fi
-
-	mv "${ED}"/usr/share/doc/node "${ED}"/usr/share/doc/${PF} || die
-}
-
-src_test() {
-	local drop_tests=(
-		test/parallel/test-dns-setserver-when-querying.js
-		test/parallel/test-fs-mkdir.js
-		test/parallel/test-fs-utimes-y2K38.js
-		test/parallel/test-release-npm.js
-		test/parallel/test-socket-write-after-fin-error.js
-		test/parallel/test-strace-openat-openssl.js
-		test/sequential/test-util-debug.js
-	)
-	rm "${drop_tests[@]}" || die "disabling tests failed"
-
-	out/${BUILDTYPE}/cctest || die
-	"${EPYTHON}" tools/test.py --mode=${BUILDTYPE,,} --flaky-tests=dontcare -J message parallel sequential || die
-}
-
-pkg_postinst() {
-	if use npm; then
-		ewarn "remember to run: source /etc/profile if you plan to use nodejs"
-		ewarn "	in your current shell"
-	fi
-}


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: net-libs/nodejs/files/, net-libs/nodejs/
@ 2023-09-14 22:45 William Hubbs
  0 siblings, 0 replies; 36+ messages in thread
From: William Hubbs @ 2023-09-14 22:45 UTC (permalink / raw
  To: gentoo-commits

commit:     ee50f94201794f6e06f67526dd06c73f6249f5b6
Author:     William Hubbs <williamh <AT> gentoo <DOT> org>
AuthorDate: Thu Sep 14 22:40:27 2023 +0000
Commit:     William Hubbs <williamh <AT> gentoo <DOT> org>
CommitDate: Thu Sep 14 22:45:38 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ee50f942

net-libs/nodejs: fix pax-marking patch for 20.6.1

Signed-off-by: William Hubbs <williamh <AT> gentoo.org>

 .../nodejs/files/nodejs-20.6.0-paxmarking.patch    | 88 ++++++++++++++++++++++
 net-libs/nodejs/nodejs-20.6.1.ebuild               |  2 +-
 2 files changed, 89 insertions(+), 1 deletion(-)

diff --git a/net-libs/nodejs/files/nodejs-20.6.0-paxmarking.patch b/net-libs/nodejs/files/nodejs-20.6.0-paxmarking.patch
new file mode 100644
index 000000000000..32fbe2d1d00a
--- /dev/null
+++ b/net-libs/nodejs/files/nodejs-20.6.0-paxmarking.patch
@@ -0,0 +1,88 @@
+diff --git a/node.gyp b/node.gyp
+index 49e39c3ce8..767ebc4e5f 100644
+--- a/node.gyp
++++ b/node.gyp
+@@ -369,6 +369,7 @@
+       'src/quic/transportparams.h',
+     ],
+     'node_mksnapshot_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)node_mksnapshot<(EXECUTABLE_SUFFIX)',
++    'node_mksnapshot_u_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)node_mksnapshot_u<(EXECUTABLE_SUFFIX)',
+     'node_js2c_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)node_js2c<(EXECUTABLE_SUFFIX)',
+     'conditions': [
+       ['GENERATOR == "ninja"', {
+@@ -626,11 +627,25 @@
+           'conditions': [
+             ['node_snapshot_main!=""', {
+               'actions': [
++                {
++                  'action_name': 'run_pax_mksnapshot',
++                  'inputs': [
++                    '<(node_mksnapshot_exec)',
++                  ],
++                  'outputs': [
++                    '<(node_mksnapshot_u_exec)',
++                  ],
++                  'action': [
++                    'bash',
++                    '-c',
++                    'mv <(node_mksnapshot_exec) <(node_mksnapshot_u_exec) && paxmark.sh m <(node_mksnapshot_u_exec)',
++                  ],
++                },
+                 {
+                   'action_name': 'node_mksnapshot',
+                   'process_outputs_as_sources': 1,
+                   'inputs': [
+-                    '<(node_mksnapshot_exec)',
++                    '<(node_mksnapshot_u_exec)',
+                     '<(node_snapshot_main)',
+                   ],
+                   'outputs': [
+diff --git a/tools/v8_gypfiles/v8.gyp b/tools/v8_gypfiles/v8.gyp
+index f822c056e5..8b2820abf7 100644
+--- a/tools/v8_gypfiles/v8.gyp
++++ b/tools/v8_gypfiles/v8.gyp
+@@ -9,6 +9,7 @@
+     'v8_vector_stores%': 0,
+     'v8_embed_script%': "",
+     'mksnapshot_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)mksnapshot<(EXECUTABLE_SUFFIX)',
++    'mksnapshot_u_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)mksnapshot_u<(EXECUTABLE_SUFFIX)',
+     'v8_os_page_size%': 0,
+     'generate_bytecode_output_root': '<(SHARED_INTERMEDIATE_DIR)/generate-bytecode-output-root',
+     'generate_bytecode_builtins_list_output': '<(generate_bytecode_output_root)/builtins-generated/bytecodes-builtins-list.h',
+@@ -1520,7 +1521,7 @@
+       ],
+     },  # bytecode_builtins_list_generator
+     {
+-      'target_name': 'mksnapshot',
++      'target_name': 'mksnapshot_u',
+       'type': 'executable',
+       'dependencies': [
+         'v8_base_without_compiler',
+@@ -1545,6 +1546,27 @@
+           'ldflags': [ '-fno-lto' ],
+         }],
+       ],
++    },  # mksnapshot_u
++    {
++      'target_name': 'mksnapshot',
++      'type': 'none',
++      'dependencies': ['mksnapshot_u'],
++      'actions': [
++        {
++          'action_name': 'paxmark_mksnapshot',
++          'inputs': [
++            '<(mksnapshot_u_exec)',
++          ],
++          'outputs': [
++            '<(mksnapshot_exec)',
++          ],
++          'action': [
++            'bash',
++            '-c',
++            'cp <(mksnapshot_u_exec) <(mksnapshot_exec) && paxmark.sh m <(mksnapshot_exec)'
++          ],
++        },
++      ],
+     },  # mksnapshot
+     {
+       'target_name': 'torque',

diff --git a/net-libs/nodejs/nodejs-20.6.1.ebuild b/net-libs/nodejs/nodejs-20.6.1.ebuild
index a70dfde5f996..ad9c3ca7ca9d 100644
--- a/net-libs/nodejs/nodejs-20.6.1.ebuild
+++ b/net-libs/nodejs/nodejs-20.6.1.ebuild
@@ -108,7 +108,7 @@ src_prepare() {
 	fi
 
 	# We need to disable mprotect on two files when it builds Bug 694100.
-	use pax-kernel && PATCHES+=( "${FILESDIR}"/${PN}-18.16.0-paxmarking.patch )
+	use pax-kernel && PATCHES+=( "${FILESDIR}"/${PN}-20.6.0-paxmarking.patch )
 
 	default
 }


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: net-libs/nodejs/files/, net-libs/nodejs/
@ 2023-11-02 21:57 William Hubbs
  0 siblings, 0 replies; 36+ messages in thread
From: William Hubbs @ 2023-11-02 21:57 UTC (permalink / raw
  To: gentoo-commits

commit:     104857383c91f4de3d3d69db471d484b18789ed2
Author:     William Hubbs <williamh <AT> gentoo <DOT> org>
AuthorDate: Thu Nov  2 21:56:00 2023 +0000
Commit:     William Hubbs <williamh <AT> gentoo <DOT> org>
CommitDate: Thu Nov  2 21:57:13 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=10485738

net-libs/nodejs: restore 16.20.2

This is needed for now because of www-apps/kibana-bin

Signed-off-by: William Hubbs <williamh <AT> gentoo.org>

 net-libs/nodejs/Manifest                           |   1 +
 .../nodejs/files/nodejs-16.4.2-paxmarking.patch    | 113 ++++++++++
 net-libs/nodejs/nodejs-16.20.2.ebuild              | 234 +++++++++++++++++++++
 3 files changed, 348 insertions(+)

diff --git a/net-libs/nodejs/Manifest b/net-libs/nodejs/Manifest
index ad818c2e3af1..e19984278cbd 100644
--- a/net-libs/nodejs/Manifest
+++ b/net-libs/nodejs/Manifest
@@ -1,3 +1,4 @@
+DIST node-v16.20.2.tar.xz 36834468 BLAKE2B 88bd0d91a6b69f7e5fba2b087684b07b8986fd1492f51f6fdccc02f043970303808c0cc1eeda29670aacddd4234ec3181752c916fefee060624b0462dff8cbcf SHA512 c7953630b7d0eb832ab5a4b839c07e6505cf5f4e37853f59cd0ffc6b8742ac2ecaba20bfb47d8995ef88f3c7005bb456c1eb70cb2fc6b6fc506e1d8b81f25cb4
 DIST node-v18.17.1.tar.xz 40788836 BLAKE2B 50e0dc0eecd68620ffa7457319e71124bbba302f6acff79286a30cf97442fb09a96cf8781456bafd5c2e497ba88cf392c141f0e221683da421b87f653b1ad7ca SHA512 fd6f586447ecd44ac6738da1cf7d54e74bd33ffd1ee1acc2e0e1bdaf0031bcaef85751d3dd590bb278eb502daf9c77f0763b5a181a30ee4cf537aef254629622
 DIST node-v18.18.0.tar.xz 40813264 BLAKE2B 6cea11a663e5df730faef9125a80e730da83fdccebf8c4f454435ee622207803d59132b5d8e112741702103a6814a491b29bb9f22ddec60fba204236a763b95e SHA512 c10fb40902fc290cc069e86659ff4c7768215f80a7016402915cae7731bfd69aa901b7dc813d480f86fc39a850960f600ddde342d67b9bb570a3d2424b04f733
 DIST node-v18.18.2.tar.xz 40834428 BLAKE2B b2fcedd79fc8ca6a5b9236614874b9840d4df5f37f5ecfa5599a177b237543788eb985e8828f7a028f5fbca17aa0c4879393b956d08dce13bd04ec9e253aa48e SHA512 00af3c737d735a320481d764f1c23b1348c0454f2b9700cadb10e087feb47c75e7e9344277bb3149305c3e08ff69d9b17b0da81b1b9d9e978fd830c67858ce92

diff --git a/net-libs/nodejs/files/nodejs-16.4.2-paxmarking.patch b/net-libs/nodejs/files/nodejs-16.4.2-paxmarking.patch
new file mode 100644
index 000000000000..41abd1f1917f
--- /dev/null
+++ b/net-libs/nodejs/files/nodejs-16.4.2-paxmarking.patch
@@ -0,0 +1,113 @@
+diff -urNp node-v15.8.0-orig/node.gyp node-v15.8.0-dwok/node.gyp
+--- node-v15.8.0-orig/node.gyp	2021-02-24 22:21:44.202911780 +0100
++++ node-v15.8.0-dwok/node.gyp	2021-02-24 22:25:34.298281739 +0100
+@@ -53,7 +53,9 @@
+       'deps/cjs-module-lexer/dist/lexer.js',
+     ],
+     'node_mksnapshot_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)node_mksnapshot<(EXECUTABLE_SUFFIX)',
++    'node_mksnapshot_u_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)node_mksnapshot_u<(EXECUTABLE_SUFFIX)',
+     'mkcodecache_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)mkcodecache<(EXECUTABLE_SUFFIX)',
++    'mkcodecache_u_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)mkcodecache_u<(EXECUTABLE_SUFFIX)',
+     'conditions': [
+       ['GENERATOR == "ninja"', {
+         'node_text_start_object_path': 'src/large_pages/node_text_start.node_text_start.o'
+@@ -291,10 +293,24 @@
+           ],
+           'actions': [
+             {
++              'action_name': 'run_pax_mkcodecache',
++              'inputs': [
++                '<(mkcodecache_exec)',
++              ],
++              'outputs': [
++                '<(mkcodecache_u_exec)',
++              ],
++              'action': [
++                'bash',
++                '-c',
++                'mv <(mkcodecache_exec) <(mkcodecache_u_exec) && paxmark.sh m <(mkcodecache_u_exec)',
++              ],
++            },
++            {
+               'action_name': 'run_mkcodecache',
+               'process_outputs_as_sources': 1,
+               'inputs': [
+-                '<(mkcodecache_exec)',
++                '<(mkcodecache_u_exec)',
+               ],
+               'outputs': [
+                 '<(SHARED_INTERMEDIATE_DIR)/node_code_cache.cc',
+@@ -316,10 +332,24 @@
+           ],
+           'actions': [
+             {
++              'action_name': 'run_pax_mksnapshot',
++              'inputs': [
++                '<(node_mksnapshot_exec)',
++              ],
++              'outputs': [
++                '<(node_mksnapshot_u_exec)',
++              ],
++              'action': [
++                'bash',
++                '-c',
++                'mv <(node_mksnapshot_exec) <(node_mksnapshot_u_exec) && paxmark.sh m <(node_mksnapshot_u_exec)',
++              ],
++            },
++            {
+               'action_name': 'node_mksnapshot',
+               'process_outputs_as_sources': 1,
+               'inputs': [
+-                '<(node_mksnapshot_exec)',
++                '<(node_mksnapshot_u_exec)',
+               ],
+               'outputs': [
+                 '<(SHARED_INTERMEDIATE_DIR)/node_snapshot.cc',
+diff -urNp node-v15.8.0-orig/tools/v8_gypfiles/v8.gyp node-v15.8.0-dwok/tools/v8_gypfiles/v8.gyp
+--- node-v15.8.0-orig/tools/v8_gypfiles/v8.gyp	2021-02-24 22:21:44.654910571 +0100
++++ node-v15.8.0-dwok/tools/v8_gypfiles/v8.gyp	2021-02-24 22:25:54.834224791 +0100
+@@ -9,6 +9,7 @@
+     'v8_vector_stores%': 0,
+     'v8_embed_script%': "",
+     'mksnapshot_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)mksnapshot<(EXECUTABLE_SUFFIX)',
++    'mksnapshot_u_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)mksnapshot_u<(EXECUTABLE_SUFFIX)',
+     'v8_os_page_size%': 0,
+     'generate_bytecode_output_root': '<(SHARED_INTERMEDIATE_DIR)/generate-bytecode-output-root',
+     'generate_bytecode_builtins_list_output': '<(generate_bytecode_output_root)/builtins-generated/bytecodes-builtins-list.h',
+@@ -1430,7 +1431,7 @@
+       ],
+     },  # bytecode_builtins_list_generator
+     {
+-      'target_name': 'mksnapshot',
++      'target_name': 'mksnapshot_u',
+       'type': 'executable',
+       'dependencies': [
+         'v8_base_without_compiler',
+@@ -1449,6 +1450,27 @@
+           'toolsets': ['host'],
+         }],
+       ],
++    },  # mksnapshot_u
++    {
++      'target_name': 'mksnapshot',
++      'type': 'none',
++      'dependencies': ['mksnapshot_u'],
++      'actions': [
++        {
++          'action_name': 'paxmark_mksnapshot',
++          'inputs': [
++            '<(mksnapshot_u_exec)',
++          ],
++          'outputs': [
++            '<(mksnapshot_exec)',
++          ],
++          'action': [
++            'bash',
++            '-c',
++            'cp <(mksnapshot_u_exec) <(mksnapshot_exec) && paxmark.sh m <(mksnapshot_exec)'
++          ],
++        },
++      ],
+     },  # mksnapshot
+     {
+       'target_name': 'torque',

diff --git a/net-libs/nodejs/nodejs-16.20.2.ebuild b/net-libs/nodejs/nodejs-16.20.2.ebuild
new file mode 100644
index 000000000000..945fdbb0a1ab
--- /dev/null
+++ b/net-libs/nodejs/nodejs-16.20.2.ebuild
@@ -0,0 +1,234 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CONFIG_CHECK="~ADVISE_SYSCALLS"
+PYTHON_COMPAT=( python3_{9..11} )
+PYTHON_REQ_USE="threads(+)"
+
+inherit bash-completion-r1 flag-o-matic linux-info pax-utils python-any-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine"
+HOMEPAGE="https://nodejs.org/"
+LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
+
+if [[ ${PV} == *9999 ]]; then
+	inherit git-r3
+	EGIT_REPO_URI="https://github.com/nodejs/node"
+	SLOT="0"
+else
+	SRC_URI="https://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz"
+	SLOT="0/$(ver_cut 1)"
+	KEYWORDS="amd64 arm arm64 ppc64 ~riscv x86 ~amd64-linux ~x64-macos"
+	S="${WORKDIR}/node-v${PV}"
+fi
+
+IUSE="cpu_flags_x86_sse2 debug doc +icu inspector lto +npm pax-kernel +snapshot +ssl +system-icu +system-ssl systemtap test"
+REQUIRED_USE="inspector? ( icu ssl )
+	npm? ( ssl )
+	system-icu? ( icu )
+	system-ssl? ( ssl )"
+
+RESTRICT="!test? ( test )"
+
+RDEPEND=">=app-arch/brotli-1.0.9:=
+	>=dev-libs/libuv-1.40.0:=
+	>=net-dns/c-ares-1.18.1:=
+	>=net-libs/nghttp2-1.41.0:=
+	sys-libs/zlib
+	system-icu? ( >=dev-libs/icu-67:= )
+	system-ssl? ( >=dev-libs/openssl-1.1.1:0= )
+	sys-devel/gcc:*"
+BDEPEND="${PYTHON_DEPS}
+	sys-apps/coreutils
+	virtual/pkgconfig
+	systemtap? ( dev-util/systemtap )
+	test? ( net-misc/curl )
+	pax-kernel? ( sys-apps/elfix )"
+DEPEND="${RDEPEND}"
+
+pkg_pretend() {
+	(use x86 && ! use cpu_flags_x86_sse2) && \
+		die "Your CPU doesn't support the required SSE2 instruction."
+}
+
+pkg_setup() {
+	python-any-r1_pkg_setup
+	linux-info_pkg_setup
+}
+
+src_prepare() {
+	tc-export AR CC CXX PKG_CONFIG
+	export V=1
+	export BUILDTYPE=Release
+
+	# fix compilation on Darwin
+	# https://code.google.com/p/gyp/issues/detail?id=260
+	sed -i -e "/append('-arch/d" tools/gyp/pylib/gyp/xcode_emulation.py || die
+
+	# less verbose install output (stating the same as portage, basically)
+	sed -i -e "/print/d" tools/install.py || die
+
+	# proper libdir, hat tip @ryanpcmcquen https://github.com/iojs/io.js/issues/504
+	local LIBDIR=$(get_libdir)
+	sed -i -e "s|lib/|${LIBDIR}/|g" tools/install.py || die
+	sed -i -e "s/'lib'/'${LIBDIR}'/" deps/npm/lib/npm.js || die
+
+	# Avoid writing a depfile, not useful
+	sed -i -e "/DEPFLAGS =/d" tools/gyp/pylib/gyp/generator/make.py || die
+
+	sed -i -e "/'-O3'/d" common.gypi node.gypi || die
+
+	# debug builds. change install path, remove optimisations and override buildtype
+	if use debug; then
+		sed -i -e "s|out/Release/|out/Debug/|g" tools/install.py || die
+		BUILDTYPE=Debug
+	fi
+
+	# We need to disable mprotect on two files when it builds Bug 694100.
+	use pax-kernel && PATCHES+=( "${FILESDIR}"/${PN}-16.4.2-paxmarking.patch )
+
+	default
+}
+
+src_configure() {
+	xdg_environment_reset
+
+	# LTO compiler flags are handled by configure.py itself
+	filter-lto
+	# nodejs unconditionally links to libatomic #869992
+	# specifically it requires __atomic_is_lock_free which
+	# is not yet implemented by sys-libs/compiler-rt (see
+	# https://reviews.llvm.org/D85044?id=287068), therefore
+	# we depend on gcc and force using libgcc as the support lib
+	tc-is-clang && append-ldflags "--rtlib=libgcc --unwindlib=libgcc"
+
+	local myconf=(
+		--shared-brotli
+		--shared-cares
+		--shared-libuv
+		--shared-nghttp2
+		--shared-zlib
+	)
+	use debug && myconf+=( --debug )
+	use lto && myconf+=( --enable-lto )
+	if use system-icu; then
+		myconf+=( --with-intl=system-icu )
+	elif use icu; then
+		myconf+=( --with-intl=full-icu )
+	else
+		myconf+=( --with-intl=none )
+	fi
+	use inspector || myconf+=( --without-inspector )
+	use npm || myconf+=( --without-npm )
+	use snapshot || myconf+=( --without-node-snapshot )
+	if use ssl; then
+		use system-ssl && myconf+=( --shared-openssl --openssl-use-def-ca-store )
+	else
+		myconf+=( --without-ssl )
+	fi
+
+	local myarch=""
+	case ${ABI} in
+		amd64) myarch="x64";;
+		arm) myarch="arm";;
+		arm64) myarch="arm64";;
+		lp64*) myarch="riscv64";;
+		ppc64) myarch="ppc64";;
+		x32) myarch="x32";;
+		x86) myarch="ia32";;
+		*) myarch="${ABI}";;
+	esac
+
+	GYP_DEFINES="linux_use_gold_flags=0
+		linux_use_bundled_binutils=0
+		linux_use_bundled_gold=0" \
+	"${EPYTHON}" configure.py \
+		--prefix="${EPREFIX}"/usr \
+		--dest-cpu=${myarch} \
+		$(use_with systemtap dtrace) \
+		"${myconf[@]}" || die
+}
+
+src_compile() {
+	emake -C out
+}
+
+src_install() {
+	local LIBDIR="${ED}/usr/$(get_libdir)"
+	default
+
+	pax-mark -m "${ED}"/usr/bin/node
+
+	# set up a symlink structure that node-gyp expects..
+	dodir /usr/include/node/deps/{v8,uv}
+	dosym . /usr/include/node/src
+	for var in deps/{uv,v8}/include; do
+		dosym ../.. /usr/include/node/${var}
+	done
+
+	if use doc; then
+		docinto html
+		dodoc -r "${S}"/doc/*
+	fi
+
+	if use npm; then
+		keepdir /etc/npm
+		echo "NPM_CONFIG_GLOBALCONFIG=${EPREFIX}/etc/npm/npmrc" > "${T}"/50npm
+		doenvd "${T}"/50npm
+
+		# Install bash completion for `npm`
+		local tmp_npm_completion_file="$(TMPDIR="${T}" mktemp -t npm.XXXXXXXXXX)"
+		"${ED}/usr/bin/npm" completion > "${tmp_npm_completion_file}"
+		newbashcomp "${tmp_npm_completion_file}" npm
+
+		# Move man pages
+		doman "${LIBDIR}"/node_modules/npm/man/man{1,5,7}/*
+
+		# Clean up
+		rm -f "${LIBDIR}"/node_modules/npm/{.mailmap,.npmignore,Makefile}
+		rm -rf "${LIBDIR}"/node_modules/npm/{doc,html,man}
+
+		local find_exp="-or -name"
+		local find_name=()
+		for match in "AUTHORS*" "CHANGELOG*" "CONTRIBUT*" "README*" \
+			".travis.yml" ".eslint*" ".wercker.yml" ".npmignore" \
+			"*.md" "*.markdown" "*.bat" "*.cmd"; do
+			find_name+=( ${find_exp} "${match}" )
+		done
+
+		# Remove various development and/or inappropriate files and
+		# useless docs of dependend packages.
+		find "${LIBDIR}"/node_modules \
+			\( -type d -name examples \) -or \( -type f \( \
+				-iname "LICEN?E*" \
+				"${find_name[@]}" \
+			\) \) -exec rm -rf "{}" \;
+	fi
+
+	mv "${ED}"/usr/share/doc/node "${ED}"/usr/share/doc/${PF} || die
+}
+
+src_test() {
+	local drop_tests=(
+		test/parallel/test-dns-setserver-when-querying.js
+		test/parallel/test-fs-mkdir.js
+		test/parallel/test-fs-utimes-y2K38.js
+		test/parallel/test-release-npm.js
+		test/parallel/test-socket-write-after-fin-error.js
+		test/parallel/test-tls-streamwrap-buffersize.js
+		test/sequential/test-util-debug.js
+	)
+	rm -f "${drop_tests[@]}"
+
+	out/${BUILDTYPE}/cctest || die
+	"${EPYTHON}" tools/test.py --mode=${BUILDTYPE,,} --flaky-tests=dontcare -J message parallel sequential || die
+}
+
+pkg_postinst() {
+	if use npm; then
+		ewarn "remember to run: source /etc/profile if you plan to use nodejs"
+		ewarn "	in your current shell"
+	fi
+}


^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: net-libs/nodejs/files/, net-libs/nodejs/
@ 2023-11-06 15:42 William Hubbs
  0 siblings, 0 replies; 36+ messages in thread
From: William Hubbs @ 2023-11-06 15:42 UTC (permalink / raw
  To: gentoo-commits

commit:     5a367252e37e26524a0008a4923ba37ac08fc403
Author:     William Hubbs <williamh <AT> gentoo <DOT> org>
AuthorDate: Mon Nov  6 15:41:36 2023 +0000
Commit:     William Hubbs <williamh <AT> gentoo <DOT> org>
CommitDate: Mon Nov  6 15:41:36 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5a367252

net-libs/nodejs: gcc 14 porting fixes

Bug: https://bugs.gentoo.org/916754
Signed-off-by: William Hubbs <williamh <AT> gentoo.org>

 net-libs/nodejs/files/nodejs-20.8.1-gcc14.patch | 24 ++++++++++++++++++++++++
 net-libs/nodejs/nodejs-20.8.1-r1.ebuild         |  1 +
 net-libs/nodejs/nodejs-20.9.0.ebuild            |  4 ++++
 3 files changed, 29 insertions(+)

diff --git a/net-libs/nodejs/files/nodejs-20.8.1-gcc14.patch b/net-libs/nodejs/files/nodejs-20.8.1-gcc14.patch
new file mode 100644
index 000000000000..ee34d4ed2e7f
--- /dev/null
+++ b/net-libs/nodejs/files/nodejs-20.8.1-gcc14.patch
@@ -0,0 +1,24 @@
+https://chromium-review.googlesource.com/c/v8/v8/+/4583222
+
+From 6100b929273cffbd1377e21cce2cd0f83e99e459 Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Sun, 04 Jun 2023 04:15:16 +0100
+Subject: [PATCH] heap: Add missing <algorithm> include for std::remove
+
+GCC 14 changes some internal includes within libstdc++ so this transient
+include gets lost. Include <algorithm> explicitly for std::remove.
+
+Change-Id: Iab8a2c751a0f9c9dc6a770d6296ad6de724ef3bb
+---
+
+diff --git a/src/heap/cppgc/stats-collector.h b/src/heap/cppgc/stats-collector.h
+index 2cf7284..d8414ae 100644
+--- a/deps/v8/src/heap/cppgc/stats-collector.h
++++ b/deps/v8/src/heap/cppgc/stats-collector.h
+@@ -8,6 +8,7 @@
+ #include <stddef.h>
+ #include <stdint.h>
+
++#include <algorithm>
+ #include <atomic>
+ #include <vector>

diff --git a/net-libs/nodejs/nodejs-20.8.1-r1.ebuild b/net-libs/nodejs/nodejs-20.8.1-r1.ebuild
index ca388b4b5262..a6b4b1666cb1 100644
--- a/net-libs/nodejs/nodejs-20.8.1-r1.ebuild
+++ b/net-libs/nodejs/nodejs-20.8.1-r1.ebuild
@@ -62,6 +62,7 @@ CHECKREQS_DISK_BUILD="22G"
 
 PATCHES=(
 	"${FILESDIR}"/"${PN}"-20.3.0-gcc14.patch
+	"${FILESDIR}"/"${PN}"-20.8.1-gcc14.patch
 	)
 
 pkg_pretend() {

diff --git a/net-libs/nodejs/nodejs-20.9.0.ebuild b/net-libs/nodejs/nodejs-20.9.0.ebuild
index 58de8a867c1e..faa339ce0bd2 100644
--- a/net-libs/nodejs/nodejs-20.9.0.ebuild
+++ b/net-libs/nodejs/nodejs-20.9.0.ebuild
@@ -60,6 +60,10 @@ DEPEND="${RDEPEND}"
 CHECKREQS_MEMORY="8G"
 CHECKREQS_DISK_BUILD="22G"
 
+PATCHES=(
+	"${FILESDIR}"/"${PN}"-20.8.1-gcc14.patch
+	)
+
 pkg_pretend() {
 	if [[ ${MERGE_TYPE} != "binary" ]]; then
 		if is-flagq "-g*" && ! is-flagq "-g*0" ; then


^ permalink raw reply related	[flat|nested] 36+ messages in thread

end of thread, other threads:[~2023-11-06 15:42 UTC | newest]

Thread overview: 36+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-09-04  7:09 [gentoo-commits] repo/gentoo:master commit in: net-libs/nodejs/files/, net-libs/nodejs/ Jeroen Roovers
  -- strict thread matches above, loose matches on Subject: below --
2023-11-06 15:42 William Hubbs
2023-11-02 21:57 William Hubbs
2023-09-14 22:45 William Hubbs
2023-09-07 15:51 William Hubbs
2023-04-27  2:04 William Hubbs
2023-04-17 17:20 William Hubbs
2023-03-05 23:18 William Hubbs
2022-10-28 15:57 Sam James
2022-09-16 16:16 William Hubbs
2022-09-14  6:14 William Hubbs
2022-06-11 21:04 William Hubbs
2022-05-04 19:02 William Hubbs
2022-05-04 18:50 William Hubbs
2022-05-04 18:25 William Hubbs
2022-05-04 17:57 William Hubbs
2022-03-17 21:39 William Hubbs
2021-06-24 11:15 Marek Szuba
2021-06-04 12:01 Marek Szuba
2021-05-09 14:29 Marek Szuba
2021-05-09 14:29 Marek Szuba
2021-05-04 15:42 Marek Szuba
2021-01-08 22:55 Marek Szuba
2020-11-21 21:36 Marek Szuba
2020-11-13 17:25 Marek Szuba
2020-11-09 15:06 Marek Szuba
2019-11-27 21:37 Magnus Granberg
2019-10-11 14:53 Jeroen Roovers
2019-03-16 14:45 Jeroen Roovers
2018-12-27 14:59 Jeroen Roovers
2018-12-13 12:50 Jeroen Roovers
2018-07-23 10:49 Jeroen Roovers
2017-11-15 15:13 Jeroen Roovers
2017-10-24  4:49 Jeroen Roovers
2017-08-18 14:17 Jeroen Roovers
2016-10-25  6:29 Jeroen Roovers

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox