Sync with portage [Thu Feb 6 13:51:16 MSK 2020].

develop
root 4 years ago
parent c140b7075e
commit 6878741b5a

Binary file not shown.

Binary file not shown.

@ -1 +1 @@
Thu, 06 Feb 2020 09:08:57 +0000
Thu, 06 Feb 2020 10:08:58 +0000

@ -1 +1 @@
Thu, 06 Feb 2020 09:08:58 +0000
Thu, 06 Feb 2020 10:08:58 +0000

Binary file not shown.

@ -0,0 +1,11 @@
DEFINED_PHASES=compile configure install prepare test
DESCRIPTION=HTTP request/response parser for C
EAPI=7
HOMEPAGE=https://github.com/nodejs/http-parser
IUSE=static-libs abi_x86_32 abi_x86_64 abi_x86_x32 abi_mips_n32 abi_mips_n64 abi_mips_o32 abi_riscv_lp64d abi_riscv_lp64 abi_s390_32 abi_s390_64
KEYWORDS=~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x64-macos ~x64-solaris
LICENSE=MIT
SLOT=0/2.9.0
SRC_URI=https://github.com/nodejs/http-parser/archive/v2.9.3.tar.gz -> http-parser-2.9.3.tar.gz
_eclasses_=multibuild 40fe59465edacd730c644ec2bc197809 multilib 1d91b03d42ab6308b5f4f6b598ed110e multilib-build 02d2553a7a1865bb34733f40f54b9491 multilib-minimal 8bddda43703ba94d8341f4e247f97566 toolchain-funcs 512eb3367f507ebaa1d1d43ab7d66e6c
_md5_=b8c5acd6f211ea841dd76fc3b9a48a1f

@ -0,0 +1,15 @@
DEFINED_PHASES=compile configure install postinst prepare pretend setup test
DEPEND=>=dev-libs/libuv-1.28.0:= >=net-dns/c-ares-1.15.0 >=net-libs/http-parser-2.9.3:= >=net-libs/nghttp2-1.39.2 sys-libs/zlib icu? ( >=dev-libs/icu-64.2:= ) ssl? ( >=dev-libs/openssl-1.1.1:0= ) || ( >=dev-lang/python-2.7.5-r2:2.7[threads] ) systemtap? ( dev-util/systemtap ) test? ( net-misc/curl )
DESCRIPTION=A JavaScript runtime built on Chrome's V8 JavaScript engine
EAPI=7
HOMEPAGE=https://nodejs.org/
IUSE=cpu_flags_x86_sse2 debug doc icu inspector +npm +snapshot +ssl systemtap test
KEYWORDS=~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x64-macos
LICENSE=Apache-1.1 Apache-2.0 BSD BSD-2 MIT
RDEPEND=>=dev-libs/libuv-1.28.0:= >=net-dns/c-ares-1.15.0 >=net-libs/http-parser-2.9.3:= >=net-libs/nghttp2-1.39.2 sys-libs/zlib icu? ( >=dev-libs/icu-64.2:= ) ssl? ( >=dev-libs/openssl-1.1.1:0= )
REQUIRED_USE=inspector? ( icu ssl ) npm? ( ssl )
RESTRICT=test
SLOT=0
SRC_URI=https://nodejs.org/dist/v10.19.0/node-v10.19.0.tar.xz
_eclasses_=bash-completion-r1 47a7402d95930413ce25ba8d857339bb eutils fcb2aa98e1948b835b5ae66ca52868c5 flag-o-matic dc34234e8c43343da45853da22dcf14b multilib 1d91b03d42ab6308b5f4f6b598ed110e pax-utils a41d1fd1c111289ffa04490de6ee79d7 python-any-r1 b6db354660033efd06cd6d7f4905ccea python-utils-r1 611c493a4cfef5254350fabc04b606f5 toolchain-funcs 512eb3367f507ebaa1d1d43ab7d66e6c xdg-utils ff2ff954e6b17929574eee4efc5152ba
_md5_=b6a2d29229bb33c2e7d41c46bd156823

@ -0,0 +1,16 @@
BDEPEND=|| ( dev-lang/python:3.7[threads(+)] dev-lang/python:3.6[threads(+)] >=dev-lang/python-2.7.5-r2:2.7[threads(+)] ) systemtap? ( dev-util/systemtap ) test? ( net-misc/curl )
DEFINED_PHASES=compile configure install postinst prepare pretend setup test
DEPEND=>=dev-libs/libuv-1.33.1:= >=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:= ) ssl? ( >=dev-libs/openssl-1.1.1:0= )
DESCRIPTION=A JavaScript runtime built on Chrome's V8 JavaScript engine
EAPI=7
HOMEPAGE=https://nodejs.org/
IUSE=cpu_flags_x86_sse2 debug doc icu inspector +npm +snapshot +ssl systemtap test
KEYWORDS=~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x64-macos
LICENSE=Apache-1.1 Apache-2.0 BSD BSD-2 MIT
RDEPEND=>=dev-libs/libuv-1.33.1:= >=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:= ) ssl? ( >=dev-libs/openssl-1.1.1:0= )
REQUIRED_USE=inspector? ( icu ssl ) npm? ( ssl )
RESTRICT=test
SLOT=0
SRC_URI=https://nodejs.org/dist/v12.15.0/node-v12.15.0.tar.xz
_eclasses_=bash-completion-r1 47a7402d95930413ce25ba8d857339bb eutils fcb2aa98e1948b835b5ae66ca52868c5 flag-o-matic dc34234e8c43343da45853da22dcf14b multilib 1d91b03d42ab6308b5f4f6b598ed110e pax-utils a41d1fd1c111289ffa04490de6ee79d7 python-any-r1 b6db354660033efd06cd6d7f4905ccea python-utils-r1 611c493a4cfef5254350fabc04b606f5 toolchain-funcs 512eb3367f507ebaa1d1d43ab7d66e6c xdg-utils ff2ff954e6b17929574eee4efc5152ba
_md5_=5dac5bd904cec92380d93401bc24829b

@ -0,0 +1,16 @@
BDEPEND=|| ( dev-lang/python:3.7[threads(+)] dev-lang/python:3.6[threads(+)] >=dev-lang/python-2.7.5-r2:2.7[threads(+)] ) systemtap? ( dev-util/systemtap ) test? ( net-misc/curl ) pax_kernel? ( sys-apps/elfix )
DEFINED_PHASES=compile configure install postinst prepare pretend setup test
DEPEND=>=dev-libs/libuv-1.34.1:= >=net-dns/c-ares-1.15.0 >=net-libs/nghttp2-1.40.0 sys-libs/zlib icu? ( >=dev-libs/icu-64.2:= ) ssl? ( >=dev-libs/openssl-1.1.1:0= )
DESCRIPTION=A JavaScript runtime built on Chrome's V8 JavaScript engine
EAPI=7
HOMEPAGE=https://nodejs.org/
IUSE=cpu_flags_x86_sse2 debug doc icu inspector +npm pax_kernel +snapshot +ssl systemtap test
KEYWORDS=~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x64-macos
LICENSE=Apache-1.1 Apache-2.0 BSD BSD-2 MIT
RDEPEND=>=dev-libs/libuv-1.34.1:= >=net-dns/c-ares-1.15.0 >=net-libs/nghttp2-1.40.0 sys-libs/zlib icu? ( >=dev-libs/icu-64.2:= ) ssl? ( >=dev-libs/openssl-1.1.1:0= )
REQUIRED_USE=inspector? ( icu ssl ) npm? ( ssl )
RESTRICT=test
SLOT=0
SRC_URI=https://nodejs.org/dist/v13.8.0/node-v13.8.0.tar.xz
_eclasses_=bash-completion-r1 47a7402d95930413ce25ba8d857339bb eutils fcb2aa98e1948b835b5ae66ca52868c5 flag-o-matic dc34234e8c43343da45853da22dcf14b multilib 1d91b03d42ab6308b5f4f6b598ed110e pax-utils a41d1fd1c111289ffa04490de6ee79d7 python-any-r1 b6db354660033efd06cd6d7f4905ccea python-utils-r1 611c493a4cfef5254350fabc04b606f5 toolchain-funcs 512eb3367f507ebaa1d1d43ab7d66e6c xdg-utils ff2ff954e6b17929574eee4efc5152ba
_md5_=4a6e0b6d8f24583cfb50f29b090e93b1

@ -1 +1 @@
Thu, 06 Feb 2020 09:08:58 +0000
Thu, 06 Feb 2020 10:08:58 +0000

@ -1 +1 @@
Thu 06 Feb 2020 09:08:57 AM UTC
Thu 06 Feb 2020 10:08:58 AM UTC

@ -1 +1 @@
Thu, 06 Feb 2020 09:30:01 +0000
Thu, 06 Feb 2020 10:30:01 +0000

@ -1 +1 @@
8bc674b28e5efabdcf907a98fa91b2e40b4b3f32 1580979836 2020-02-06T09:03:56+00:00
96189439cfa4dfd23cbfafb931588a2f9100832a 1580983434 2020-02-06T10:03:54+00:00

@ -1 +1 @@
1580979901 Thu 06 Feb 2020 09:05:01 AM UTC
1580983501 Thu 06 Feb 2020 10:05:01 AM UTC

@ -1 +1 @@
Thu, 06 Feb 2020 09:08:57 +0000
Thu, 06 Feb 2020 10:08:58 +0000

Binary file not shown.

@ -1,3 +1,4 @@
DIST http-parser-2.8.1.tar.gz 50731 BLAKE2B 1c4f3f61550f7f8e86d7b47e3986754a108dc979c6232d87ac418f9f8295b88ee43c4a5af150460f707e6ade01f5d435801f980ccbff93369ee0a9dc2eb60656 SHA512 6f52f543d979f39688ccefae236527a8183929b3d30f5370570107b01cf89d0338b448249a81102b78d31615d2e8f6e7c708f8961f55ece08e7d3a40e5ad0883
DIST http-parser-2.9.1.tar.gz 51300 BLAKE2B f99c3e6a764ea0870359b43aac7f31691faef9cc6be3fb99426a3c1e3f24ae50689dfd8e46fa52a22d713780476130ee6fae6294b83cc3526bb5131cf16b98f2 SHA512 110a1861666cdd45857c3ab0e9bf8a3eb9d98f86fe001f7c620009e13186377de805d295f7751921cd5c9d4c2781807b3ae00f939af04d7365a3a45aa20b5052
DIST http-parser-2.9.2.tar.gz 51298 BLAKE2B 5d37ea197acbac468de03081010fb3b755a093085e56c9fa5a3d4dbd70dd2903335a8113ec21664ca54a74aac4cbbb1cc64b861d021df944790453c2de9baaab SHA512 fe21ba46c9297b55a6382497b689da2af88999a9a5716ffef0731057ce1bb053056e4f20147284c78338e48ed1a793a0270fe0edfe3f4b589926e3ede603d023
DIST http-parser-2.9.3.tar.gz 51973 BLAKE2B c46160e811874f3d4d2a7390e3b64520c7c01d51f74fb608ca8972ffe264cc389b744c1b6d8b5b6a7c9d7816eb95c179a9c210ba1a122ac4fa95996308d667af SHA512 d200c52f594192ba80a8d5b59d414404843f8601dac647f29c27845db75ac1f015789031e30e91aaab5b553af1ee6af50b90f9342a444c10c1027e10fdb9a31b

@ -0,0 +1,34 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit toolchain-funcs multilib-minimal
DESCRIPTION="HTTP request/response parser for C"
HOMEPAGE="https://github.com/nodejs/http-parser"
SRC_URI="https://github.com/nodejs/http-parser/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="MIT"
SLOT="0/2.9.0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x64-macos ~x64-solaris"
IUSE="static-libs"
src_prepare() {
default
tc-export CC AR
multilib_copy_sources
}
multilib_src_compile() {
emake PREFIX="${EPREFIX}/usr" LIBDIR="${EPREFIX}/usr/$(get_libdir)" CFLAGS_FAST="${CFLAGS}" library
use static-libs && emake CFLAGS_FAST="${CFLAGS}" package
}
multilib_src_test() {
emake CFLAGS_DEBUG="${CFLAGS}" CFLAGS_FAST="${CFLAGS}" test
}
multilib_src_install() {
emake DESTDIR="${D}" PREFIX="${EPREFIX}/usr" LIBDIR="${EPREFIX}/usr/$(get_libdir)" install
use static-libs && dolib.a libhttp_parser.a
}

@ -1,8 +1,11 @@
DIST node-v10.18.0.tar.xz 21913328 BLAKE2B 84b0b5157671dcc3e96bb2cfd11e085251fd2942c03b27491f712f5603797bab7503d8f7c0eb45ca8e348b20a0555c1767d4d1964fff474c8590a47eb01523a5 SHA512 8fc9062e150af6f054f1ebebbdf67151b16f14bcca9cbb35338a4c7fcd7fa1c3f05c4a7ace12d4153180cec0007a195cbc94942c4d04c3895384dc18951d2c1c
DIST node-v10.18.1.tar.xz 21920068 BLAKE2B 9dc0887a33f0888a347628e5bf15eb3687f15cba264a00317a15336fda48e41da9b4c45df6d0f223f2017c6b55b99eda0c4cd6f5913673da29c52a61450d03e2 SHA512 0979d264ef5286caea61a527771e2ac2fbe1b909a151061dbb7d9e0fde9461edd76b6060f55cfbd49d3ae2e7e10595a2eb4d2e98182e735e7df10940120fb9b6
DIST node-v10.19.0.tar.xz 21906168 BLAKE2B 395504ef3befa47d8b967114e019e6a76c799871e7eb21e2c6c0453655ffa07f17f42209daddeb5417342cfbad71ba1a35ae15a2d210b692bc60be270c2fc415 SHA512 512efc58415ed789938c434af131d76bdd51772cac9f7e380afaa79d83cc9c433a979068fc7272adba6ba6551d195267978e1fc819236926b0d1fd6cf91c5eee
DIST node-v12.14.0.tar.xz 23244684 BLAKE2B 0e25cbba5e256b139efd45908236f008834afdf01f57a8e84c7e55ba950e56b786cd52eba9a02986eb0e1d38cbf6df38e1cd719d7dcd8085e8c71767adf8155e SHA512 12e887709a54be911c5a81ab7b7be995247b47ebbd2954ca942f9ed8a784ae1a8e4bdb2613e5bb671196f9101d8861cd29e10650a3f0c414db4d096df94b309b
DIST node-v12.14.1.tar.xz 23258936 BLAKE2B 125289ce3e342c2e5e7bbb6f0b1af109f0ba8fbf2d6630f2cdc4aa31c25a3d846afe773e84daed9824360a6680a2d21378af4fbc42c6337399a143f92850a82f SHA512 2e2b6fa8351b59450ab5491b5e31dc36ce4d9be13c55a14e6e4d95a82cc8334f9fc35261a56a8843903f8021ff333a333bb4d5f24c92b5d7483d4779c3d88342
DIST node-v12.15.0.tar.xz 23271600 BLAKE2B 20e31e2ecb6352f6fa9e2c60fc505046034434e287e827edd5e0b091c4d5e124b681ba178e1669db26ab3d1b588e3b0894595e9cd1fa46d560f7100d8ab7e1c1 SHA512 40cc5fc252e8939856886cd57cad50df11eedc37de8e50b1b2d49a2e7439d1f4bbba8de90efc030a659919106eca72facf8b31280323fc4803bed9a175ffbbfa
DIST node-v13.6.0.tar.xz 32706824 BLAKE2B 69e66354570e057fe215830a2d5bd157e5decfd1e58e4ead4304e0dfcf64e5adfe48503f3bf54afe2cc27df581a0f2ae79e9b730257ceb70c412bd2a47fa5603 SHA512 e7dc8356ac1b167cc32055e209f13cee82c9251440b6a6cc99b26c91f9625e11bd025cfc1c22b6ece95ea178640209a7c8700d678678b3e8bad26080aa2762c6
DIST node-v13.7.0.tar.xz 32739116 BLAKE2B 2bc4331a059d18f37f41bb472bb19d864366cebae32b6be18d9c14ab91019fbfa6dcb2a8c3c1c256ddd54773d801e852e1820d90bc3b55f3509bfa8e5425121d SHA512 e2a9b0b6c6e038b9c5c55b51531ed30e8767dd492d3c5c50a0de764f7a97f22a3fcb65c4f50adff62219b076e0c688f1320dc87061fbb751a867746e22c60ccf
DIST node-v13.8.0.tar.xz 32745596 BLAKE2B 14bf82e8cecde1a4125c7c00c4c9e613c1dbc5bb0241b20f4d30cb8d172612d5a8c362ac786ae516baf9553d5a9c3053414b269fb040cebb664f09096a57985c SHA512 b50d79f029bc04caf193f137b7b3d03f1e1ec9252712015cab2efdeef92bc3176cf7eb36e835cda6221950792e516f9c1894cd2c480e082106e07a11aa1d0761
DIST node-v8.12.0.tar.xz 18310452 BLAKE2B 79634fc57cd76a97e72bab4be37da91d5eff4d13cdaa2b48e83f013885fa3590ba4a28378baf036ed26b7304bf234753d1d4014f72571496f5bb6cd5b221e5f0 SHA512 665d2dba287d78bcd723d7b4d00a6897fb996f4aa69a541e010a3dfeb2614257892117fcce7123966b1ecaddc9269a6667e0e262df693baea1f476c96de55c42
DIST node-v8.17.0.tar.xz 19013844 BLAKE2B 2f35f61ccc2d67132441dace8b59df6565e5df9e14e6798ab0cb0a024493182881708368248964db30e1213fa7b66301bd73b5146944129d7b14cd2b5b1a9583 SHA512 9f7b0b5695e882b4f727802ad855d398da596f908e64263902781e01f6222a4044be48c104eb76182ddb525dedfc4b28ccd07d64dfa126c462a248d9e8b49fca

@ -0,0 +1,200 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python2_7 )
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"
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="
inspector? ( icu ssl )
npm? ( ssl )
"
RDEPEND="
>=dev-libs/libuv-1.28.0:=
>=net-dns/c-ares-1.15.0
>=net-libs/http-parser-2.9.3:=
>=net-libs/nghttp2-1.39.2
sys-libs/zlib
icu? ( >=dev-libs/icu-64.2:= )
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
)
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
# 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() {
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+=( --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
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>"
}

@ -0,0 +1,208 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python{2_7,3_{6,7}} )
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"
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="
inspector? ( icu ssl )
npm? ( ssl )
"
RDEPEND="
>=dev-libs/libuv-1.33.1:=
>=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:= )
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 )
use ssl && myconf+=( --shared-openssl --openssl-use-def-ca-store ) || 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" \
"${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>"
}

@ -0,0 +1,204 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python{2_7,3_{6,7}} )
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"
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 systemtap test"
REQUIRED_USE="
inspector? ( icu ssl )
npm? ( ssl )
"
RDEPEND="
>=dev-libs/libuv-1.34.1:=
>=net-dns/c-ares-1.15.0
>=net-libs/nghttp2-1.40.0
sys-libs/zlib
icu? ( >=dev-libs/icu-64.2:= )
ssl? ( >=dev-libs/openssl-1.1.1:0= )
"
BDEPEND="
${PYTHON_DEPS}
systemtap? ( dev-util/systemtap )
test? ( net-misc/curl )
pax_kernel? ( sys-apps/elfix )
"
DEPEND="
${RDEPEND}
"
PATCHES=(
"${FILESDIR}"/${PN}-10.3.0-global-npm-config.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
# 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
}
src_configure() {
xdg_environment_reset
local myconf=(
--shared-cares --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 )
use ssl && myconf+=( --shared-openssl --openssl-use-def-ca-store ) || 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" \
"${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
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
"${EPYTHON}" 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>"
}
Loading…
Cancel
Save