summaryrefslogtreecommitdiff
path: root/net-libs/nodejs
diff options
context:
space:
mode:
Diffstat (limited to 'net-libs/nodejs')
-rw-r--r--net-libs/nodejs/Manifest11
-rw-r--r--net-libs/nodejs/files/nodejs-11.4.0-stdarg_h.patch10
-rw-r--r--net-libs/nodejs/nodejs-10.15.3.ebuild205
-rw-r--r--net-libs/nodejs/nodejs-11.11.0.ebuild (renamed from net-libs/nodejs/nodejs-11.10.1.ebuild)1
-rw-r--r--net-libs/nodejs/nodejs-11.12.0.ebuild209
-rw-r--r--net-libs/nodejs/nodejs-99999999.ebuild36
6 files changed, 442 insertions, 30 deletions
diff --git a/net-libs/nodejs/Manifest b/net-libs/nodejs/Manifest
index 0d987c3023c3..a5e0302a5f43 100644
--- a/net-libs/nodejs/Manifest
+++ b/net-libs/nodejs/Manifest
@@ -1,10 +1,11 @@
AUX gentoo-global-npm-config.patch 1511 BLAKE2B da2b127df9ac9babc87c1930272244e7f89ac1931543fa524e13fb3c53d2b5a9cbdf0d93dc0cae207822dee3c8f71e2a12fca3d608f6de8589ad2c0064f0855b SHA512 b6c8bf88bd44d5461cbad0354273a6f964429d1cde48ab4c8bef9f50452de22bfc5d15707c5c9adc2a0d8000a6b1be4cffdee039618b627fb0d291886309cc3f
AUX nodejs-10.3.0-global-npm-config.patch 819 BLAKE2B 5e40738091bd1f3f18d4cfb2b3a0b94c87c2a570967aec9d418544c182f2e93f28d2dbe564980a975856ca31ab8c115b28fb9374701889cbebe3bba73d4ac83a SHA512 abe27eab0beb3444186fb3c4ce3c67fbc05b684a606f8f8bc4a5bae570fd8fd988f1ad5d65c442842fb6c7b069dc6e3f82577ba6becb1d934ae1039dac074e03
-AUX nodejs-11.4.0-stdarg_h.patch 243 BLAKE2B fef871a9900e3987559cc29ae4c60394b6474cadaf6afee9961245b0938563f736d050294587900264821b2e13a99729333eb1bc38eee9fc77cec16a48a64675 SHA512 008cb557c9d94fd3a70dcf54ea260ed5ad457f62bbc689eccb668052c7195895c3c7f115354dc76da8f1ff0c6807bda9ca7bce62c844e37036c3916cea40286b
AUX nodejs-99999999-llhttp.patch 506 BLAKE2B eea449910b97dfc320247f20bf20467f6c5bfe46f7acc95761270928b3413ffaa04ee948d8dece9a8ba47288804144c75ebda1009af17169b36bcd5b39aa0c33 SHA512 13cdbaf73696b4feef1fec48ac43f6a6d80f59096a81308c746655e2cffa0b0ef78850facff103f27062fd25192d8abd7bc200b36bd25df7bd4b800f80da0c5c
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-v11.10.1.tar.xz 22074212 BLAKE2B de4c224063050901a3898bb9d2a26dba8027b3722528c402d461f2ca892a80e230e16131e9c8b22d6fefbd44b79a6d78aef631934c80ed53f8601fd2d3405150 SHA512 8da793946d18c8368f12e786bc4fdcff0ac61237c95f896a49895d6433edcd42005d50237095fd2b1c69b51d56900d122528783338dbb97e5fcee9dcc9a5812c
+DIST node-v10.15.3.tar.xz 20262632 BLAKE2B d65d4e274fa829be5cda1970b0ebe7081e8476334cb825e5727324c3202bc015f4ba39589608284d0f8c0b722079c06d1587de5299a3c81ccb7b0eacbdaccf84 SHA512 cf741f733af7a7e1fbd37b0f98110078494b4771dbdfccacfda95a5ea4cda6cdcea4f8d31dddcf27477213614e4ab6cf7d1a1f900cb92936333730737ac4f9e8
+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
DIST node-v6.14.4.tar.xz 15842824 BLAKE2B fc56364be64fe5824e2bb50d861ebf8f58f9895f2c9c108b8df3315b127ffb2755eac85c28165ac9779adab4611ce8f5ea1a5745f43ebaa1389e82b8215c6396 SHA512 1ead0c097ec125230dd631f19a5c3ec06a1371f9ca3b392b5ad08fcc227dd0142f33ad52f96890c2c17448a4951a635b9099dfff00d7d8b3ffb59b07904d1bfa
DIST node-v6.17.0.tar.xz 15853760 BLAKE2B f1872b2ed43c447beff2b3278e49f9f10bbef58bba2640f6ecd889facfa4c5e5ae142f3b30721faae615df42c0870d7c09147930a259fa81c161b29559e2a340 SHA512 8ae9bfa0336a7d0d9f4a372330de1f877354a3d68bdd6977285787f81999012e42faf4ccef5981fe565ea9e2f18c5490b857bab29359fdf906b5a9fb14628858
@@ -12,11 +13,13 @@ DIST node-v8.12.0.tar.xz 18310452 BLAKE2B 79634fc57cd76a97e72bab4be37da91d5eff4d
DIST node-v8.15.1.tar.xz 18501532 BLAKE2B e6da98902d665997b2e85472424e00f817353dcfc118b1d309f1305099b145eb0eae33429554ab5d563366182b34b24ac78f8b78794f8d21318ebcd137622131 SHA512 23fb4e2580116a69a58514c2dc1f42098c7d594ea9d0cd6e7090f37e12e1805ca6546df66ee68fcb61b803e287ce34422f55129412f6bdcdaa97f515d9581e19
EBUILD nodejs-0.12.18.ebuild 3435 BLAKE2B 2fd0c799325e0def135f2618901aee64fd5d950aabe64b4ce52d3d525ce08a7581c68b60fe2e84773e04a0c101d873efe7cbfb08020a0b6f384649d0a265e182 SHA512 6d9a761e4fc8cd35899a10f57e47f00c1222c6573246756599c702e17885422a253b6906b1fc119d4298e562f6bc9994c89f59a405021bed1f6e03c4f53d88f0
EBUILD nodejs-10.15.2.ebuild 6444 BLAKE2B e3ec2234f80b4c65471bf56d5ae15ac657c3b6a89cb6b35cd9e0958210c7c196eab37b814951ce46b3e7ef854a4194f1ef64733c6cfe1299c6a028d50895aed5 SHA512 372baa09f94406d13cc0f0ab94b2454cdfce1121e243919b20f2aa97e2b1595cfed9f34c5c68369ce4aba5438d75f3c77ab1091af8bd19c80b0ee504844b8fc1
-EBUILD nodejs-11.10.1.ebuild 6531 BLAKE2B aae74f0eca235209b18c94ce80322e6566b4cb7f8ca2c197a4f5028db34735fa8c54643e4ac63734b714aae6097d147a7a4a937f7a49b25996f2a49d1b366b50 SHA512 c1238fb06883369eb2a6c4553920a60a4d9bcacf63c89ca226b35d9a872b3a75ac2996cccef87c17321d169f3242efa2819a39fe2efbc0dfc5d79cd1f35553d0
+EBUILD nodejs-10.15.3.ebuild 6444 BLAKE2B e3ec2234f80b4c65471bf56d5ae15ac657c3b6a89cb6b35cd9e0958210c7c196eab37b814951ce46b3e7ef854a4194f1ef64733c6cfe1299c6a028d50895aed5 SHA512 372baa09f94406d13cc0f0ab94b2454cdfce1121e243919b20f2aa97e2b1595cfed9f34c5c68369ce4aba5438d75f3c77ab1091af8bd19c80b0ee504844b8fc1
+EBUILD nodejs-11.11.0.ebuild 6488 BLAKE2B d801002c9e520b6c783ba0228e2a3f53e17096d37b24893ce1bdad28979a34399aa5caf7815fd63ea51e3f8b29d1d5e602b8ee0994fd8dc3b16a9966e7d11234 SHA512 010fd966f7834e3f57e610fafb07c6f47c16111fb4fdfe70d574ada6ba20c53cbbde835f554a30c6c1393bf68ea66e4b919d2b61ab45540e3a18039d4467bc63
+EBUILD nodejs-11.12.0.ebuild 6488 BLAKE2B d801002c9e520b6c783ba0228e2a3f53e17096d37b24893ce1bdad28979a34399aa5caf7815fd63ea51e3f8b29d1d5e602b8ee0994fd8dc3b16a9966e7d11234 SHA512 010fd966f7834e3f57e610fafb07c6f47c16111fb4fdfe70d574ada6ba20c53cbbde835f554a30c6c1393bf68ea66e4b919d2b61ab45540e3a18039d4467bc63
EBUILD nodejs-4.9.1.ebuild 4425 BLAKE2B c5167cf5f59209054cac22f49fd60803001d39949caf1be2f1c49356726884ec5e853be95eee3173548c1d6668aadc0b1f470c44b95150d959fcd33638614f63 SHA512 23280279876f8e8fa37e764bac0f9049b2fc32d1c405a5d5dc8136e92dac1b896c82944b713fdc99daa35806f814ef15f2b63debeb8bc5a2bccf6b8099c8c31e
EBUILD nodejs-6.14.4.ebuild 6153 BLAKE2B 6b358c6e4361f34761a577c10f0bcdf9273ee75dbbbafb652df8a374db376257c968ba9bc40142920266cf58b857f055ee46f161f31e756ba6f7124414976380 SHA512 0513974058c7c878f1104ab95b14d6788e293e4850b0d2d72979f3a3f9538854564eb6bb55b788f3616a4a0cd18d9f8b20e407c5aa221195a185ffbea5d9ccb7
EBUILD nodejs-6.17.0.ebuild 6202 BLAKE2B f0bc03d031211502a09878f0177729f00c1625a91ec89b6971cd1329d4f05bee838e04ae066f84bf7555f844fc0fff6d33cf15c80fdb800ee0bfb40a1c1ef79f SHA512 9ec3f757e9bd5dbb375bf03820ea277315f974b76029422d12c9fcef5e86c1b704203a21079384e5375968d1654d325d583cd09e89fa9bf1e8e62fe65c7b770a
EBUILD nodejs-8.12.0.ebuild 6362 BLAKE2B d2caec942c787ff4af79633f40d145d459df2e7ff7b15c7807a44086aa93dd3f21f4f0a84879ab61f9792d72c0855c3745400b6d791086184649bc22999e4f05 SHA512 b698140ab323e29eddfa4f3d579618206c4a31023ee25be2aff6ca03f321f4e9d3bde7735ac821093bdef62000e0d458e9fe4ae5cc9883b9bff9eb559135326e
EBUILD nodejs-8.15.1.ebuild 6464 BLAKE2B 047682cbf31f62246cc571d5385918ca8563f83f11f659382ad660867fc3e8cd95bef0940fbb2b4adbcfa82a7e97fb34ccea4037be3eb8cdb3f07af3c6e8ebf9 SHA512 28aebffa55645c850572f8aac9d7aa0f0c233d0abe5b829f80a971e55a65f3b0621e69b52fe8ab2eb3000fe6b84c603bb7f99a56172bed0d9840830222e521a5
-EBUILD nodejs-99999999.ebuild 6342 BLAKE2B 113f302b886a321f5aa59a1ad480c284c559542bd435ee6fbea4e83a86525a0b1c0c09d96835cea806cca2ae5e63e158f44d312ff4605763682fa537b6d8188a SHA512 820923a87afedbebf874697187ee652d2fa0a0199b617d73d1b2b36e1cd321a22dc65648ccb85efab5f905cd4ebd03edb69c6da2fa4e32aa558977d793061c11
+EBUILD nodejs-99999999.ebuild 6396 BLAKE2B 05e4c668ad5f7e124c39ea42468b111c58eb66c02f3e14032b1492ee7db82d77fba250db27d819ecc58bb6944d3d1547413f0f2125c948ee8cd3ad0c15a6b4a3 SHA512 245ece7b475eb54bcea5ca2ac9137734cfde957a9ef1d02487da6fa2fe5e44e464ae59a470414cb251bd1d9cfe18d5bc073af27f27476ffd15cdb6e40e79a87b
MISC metadata.xml 473 BLAKE2B c5c4f0ad6470bd70570d1f547d1355977be676a252416f3fe005733386fa84536aaac9b8e93fb70405fd76608ab2df281c586d80a2f9cc443acd5ca26dc8752a SHA512 f2911891d28329b3f6a21b56976f1507939bd51cb65581f73c2b5716c4610551cbc225450755be2e649e2070e1810ef41ca641d105155ceb1847e9a93ad2ee85
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 951c35989c69..000000000000
--- 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-10.15.3.ebuild b/net-libs/nodejs/nodejs-10.15.3.ebuild
new file mode 100644
index 000000000000..959fdfa0bf29
--- /dev/null
+++ b/net-libs/nodejs/nodejs-10.15.3.ebuild
@@ -0,0 +1,205 @@
+# 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.23.2:=
+ >=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-62.1:= )
+ ssl? ( =dev-libs/openssl-1.1.0*:0= )
+"
+DEPEND="
+ ${RDEPEND}
+ ${PYTHON_DEPS}
+ systemtap? ( dev-util/systemtap )
+ test? ( net-misc/curl )
+"
+PATCHES=(
+ "${FILESDIR}"/${PN}-10.3.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."
+
+ ( [[ ${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.10.1.ebuild b/net-libs/nodejs/nodejs-11.11.0.ebuild
index c4b2df6f8bdc..010d4dffa4e2 100644
--- a/net-libs/nodejs/nodejs-11.10.1.ebuild
+++ b/net-libs/nodejs/nodejs-11.11.0.ebuild
@@ -39,7 +39,6 @@ DEPEND="
"
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}"
diff --git a/net-libs/nodejs/nodejs-11.12.0.ebuild b/net-libs/nodejs/nodejs-11.12.0.ebuild
new file mode 100644
index 000000000000..010d4dffa4e2
--- /dev/null
+++ b/net-libs/nodejs/nodejs-11.12.0.ebuild
@@ -0,0 +1,209 @@
+# 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}-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>"
+}
diff --git a/net-libs/nodejs/nodejs-99999999.ebuild b/net-libs/nodejs/nodejs-99999999.ebuild
index 23540898bdb1..98c1addd667b 100644
--- a/net-libs/nodejs/nodejs-99999999.ebuild
+++ b/net-libs/nodejs/nodejs-99999999.ebuild
@@ -19,17 +19,17 @@ IUSE="cpu_flags_x86_sse2 debug doc icu inspector +npm +snapshot +ssl systemtap t
REQUIRED_USE="
${PYTHON_REQUIRED_USE}
inspector? ( icu ssl )
+ npm? ( ssl )
"
RDEPEND="
- >=dev-libs/libuv-1.19.2:=
+ >=dev-libs/libuv-1.26.0:=
>=net-dns/c-ares-1.15.0
>=net-libs/http-parser-2.9.0:=
- >=net-libs/nghttp2-1.29.0
+ >=net-libs/nghttp2-1.34.0
sys-libs/zlib
- icu? ( >=dev-libs/icu-61.1:= )
- npm? ( ${PYTHON_DEPS} )
- ssl? ( =dev-libs/openssl-1.1.0*:0= )
+ icu? ( >=dev-libs/icu-63.1:= )
+ ssl? ( =dev-libs/openssl-1.1.1*:0= )
"
DEPEND="
${RDEPEND}
@@ -69,7 +69,7 @@ src_prepare() {
# 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
+ 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
@@ -93,7 +93,10 @@ src_prepare() {
}
src_configure() {
- local myconf=( --shared-cares --shared-http-parser --shared-libuv --shared-nghttp2 --shared-zlib )
+ 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 )
@@ -145,8 +148,9 @@ src_install() {
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/*
+ # Install docs
+ docinto html
+ dodoc -r "${S}"/doc/*
fi
if use npm; then
@@ -185,6 +189,8 @@ src_install() {
"${find_name[@]}" \
\) \) -exec rm -rf "{}" \;
fi
+
+ mv "${ED}"/usr/share/doc/node "${ED}"/usr/share/doc/${PF} || die
}
src_test() {
@@ -193,10 +199,10 @@ src_test() {
}
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>"
+ 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>"
}