diff options
Diffstat (limited to 'net-libs/nodejs')
-rw-r--r-- | net-libs/nodejs/Manifest | 11 | ||||
-rw-r--r-- | net-libs/nodejs/files/nodejs-11.4.0-stdarg_h.patch | 10 | ||||
-rw-r--r-- | net-libs/nodejs/nodejs-10.15.3.ebuild | 205 | ||||
-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.ebuild | 209 | ||||
-rw-r--r-- | net-libs/nodejs/nodejs-99999999.ebuild | 36 |
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>" } |