mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-24 04:59:14 -07:00
net-libs/nodejs: Bump, remove old
Package-Manager: Portage-2.3.4, Repoman-2.3.2
This commit is contained in:
@@ -1,13 +1,6 @@
|
||||
DIST node-v0.12.10.tar.gz 19572955 SHA256 edbd3710512ec7518a3de4cabf9bfee6d12f278eef2e4b53422c7b063f6b976d SHA512 d217f52dfedb5355df89b9c726f6bc68e53a713e6e005a66beefdbd20666b55770bab2eca6f39275aa1a64aca922a2a78808900ebaa4005eb21042a915413a7b WHIRLPOOL 4fe3e370cc645672590483e4b388a37a82fb04dfbbcf16a7a9cc2c1a47600e650ae5712133b205c3067180305a61e76fde9a7b78ad53d25f8f07b97e86271751
|
||||
DIST node-v0.12.17.tar.gz 19938029 SHA256 ddea5e253812f167608fbdda6ff29ffc30dc6f669cf2f6e4249938d28b9cd44d SHA512 86c22b17f57018083b07096beeca10e6dfa7569b3d1a25a3b12dd82796db3c9536e6136e0dd0ff62b4de116413f3722b36ce396faa46d8640f80ab09ccfcbca7 WHIRLPOOL 5fba1f95de0a7dbda7e7649bc0f8553cd8595eb87cd27062efbdc59a54673e7e1e6f80191abede683a686043a81d82b76e141aa765b98e3dc39e015aca98e41f
|
||||
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-v6.10.0.tar.xz 15745784 SHA256 f65d5d4b7253ee29f3ba4edabd3473845075e43569bceea4267e7bf3e00ebb96 SHA512 535f5caf028b7dd132d869ac9cb71951983ddde1de27ef1f960b7b55545c22fee0d1a5fec12de52c816d99f4c727732798e20771a339ae7df630b3833cbcde9e WHIRLPOOL 1b8c2435f71c61d322ff6b543c7afff84588a6371530e5a878068149d17c09fa673799449cf701d36e864fe3740c5108d45ca27198215794fa42934fe5bdb219
|
||||
DIST node-v6.9.4.tar.xz 15519264 SHA256 c51d7c61db40455d57428abcadc7eb0f0a08a8878cb1d8ea3c1e211c54532c35 SHA512 86d3e2889031c2b50c021bd3fd63194c2c22c44291d51dff1b5e1652b01853c09d2880c2f58fdad062e3e2a3f637a3f0d78dac66b835b676790cf272e64f8dce WHIRLPOOL d1bcf488ed1aae7959303b988c9467fc5d0930166c7bfe0e441392763e19f788496971c07560a9f62586bbb2be7ce741ece8346140d665d29593b9b8f649b002
|
||||
DIST node-v6.9.5.tar.xz 15521472 SHA256 d7fed1a354b29503f3e176d7fdb90b1a9de248e0ce9b3eb56cc26bb1f3d5b6b3 SHA512 d13cebccf0d0b422c735a5e3981fa430f6537c2bdb4569c9fe256c07d1e833524b60645746fe5a7957c7e49ca4df434aa4ed72ee392b14d1cf9693c49e27b063 WHIRLPOOL 2c08015b06d0b1bc34fb1869f7c2b327b42aff61ff205ec2e8db646a60633bfdaa4ea11da0dbf5832640db0d0bb03e298e1c6f0a38b444139c0042984a1606b1
|
||||
DIST node-v7.0.0.tar.xz 16296516 SHA256 e16c3c76c2d6756bbfd711189cbdaf5676049b443e6817007bb537f243ca899a SHA512 775b3a786ca6975b1913f048ea9a969e674d6d8ca58094557fe21e7c821e10f8d4bd8d484ca3617b553587449020ecf1d3d8c8d912c46725bab7f7561c2fbdda WHIRLPOOL e9068c49181151ebcf1dd75f5ecb8ee87b89abc7695cb9158bbfa701de9344bc5c2b59b5363d5be4a65bb4df1c37b8f6285b6c584f43ad3f933628a7e175ff1f
|
||||
DIST node-v7.2.0.tar.xz 16407484 SHA256 486d4db7ef659521ad2fafefca877638da07bef61e2aee090207ff52149294fb SHA512 482067965ac97f296a66317b6b10950087f9f61cf1bd3ee5275da6ca804aa2669cd1f82dc619ece576996403b27b295380b53c308ce5defe91c7b75a6bd3e91e WHIRLPOOL 37cebc3350b97390640a38c8701667cf66411fe2abdc41e77b089f2415f88434426e7da5a8192543ed63fa6dcd5ea768dfc2b33fbcf16431b36e4decbd4b793c
|
||||
DIST node-v7.3.0.tar.xz 16434356 SHA256 dde8f6c800ac8049016d86b91ba5aeb6ddb35cb747cd74756dc05cf9fbe16b81 SHA512 97961c68d097d71ff5030e04526935921af498acba7e9081cd8699c624d4df9b9ce9992c29fe224387a26a53727dcc2181b63841e75e69808295b259bd6da1f1 WHIRLPOOL 7ec8be0b169e3361896296cfe08b9fda8a0e467c479f6305ec255fc26ad1b346bd05b7397f0a18910d5d4999016db3d406914db4b9e19e5f85dfa5a52ac7f245
|
||||
DIST node-v7.4.0.tar.xz 16611356 SHA256 9f15b916f8677ec1615c46bdd6d2208ed1b24fad26384f9ac249f5b09d31c32b SHA512 50167c85cae41720412b8de627f7f6a9b351e80823aafe23d96bc8d37c96a25ad635abc46af481d1817cec89bf0bec0e059964434d585f59ad22f99af820c67d WHIRLPOOL a56dc105ef768f044f68181b186d7e907dbdc3238006f28cb677d62ced69f7430a02a2a2b9d026895dafd3f185aa50dec221a6ca76de37b84f8792ea8ae97a58
|
||||
DIST node-v7.5.0.tar.xz 16539384 SHA256 f99ee74647fe223eb03f2dd1dc6acdc14d9a881621376c848236c8d2ac8afd03 SHA512 ae903445d27b487200eaf95ef12ac56d84ae76efa0195a533bede33d9248489b3fd71db064969b3ea8505a5a013cce67787350d7633a6e57ea05d5fd33582ac8 WHIRLPOOL 03f1f7c1e54d620650705ba9fe6f4f556dcdbb8269f2db4192d793feee7c85bd07d7be3ad331b8442b438930387a1036d2d772262837c3b659aa19309d041c62
|
||||
DIST node-v7.6.0.tar.xz 16635292 SHA256 6ff9042696fff0b49647f5864e71cb495e554e4f66e61443494210f5e16ab4a9 SHA512 17bf7353f19a6bba659b8f238b83333241e721363b22adb01aa9dce421dc47826e47edd0ed2f7eee0209146ef322b2ca9fe6fe2733140c3e79c1498bc7c9b166 WHIRLPOOL 803efc7de3d18cd86a6b45675b01da79c271a8c36792fb875c307e224f8575e6c47d35816c56136ecd15f05029febae46faa6b020188c96e14269f2075f878e3
|
||||
DIST node-v7.7.2.tar.xz 16675844 SHA256 e7448d8e44d32c2c63347c822508cf5c87b9662c07db290056fec66d37c4f584 SHA512 bdf5dbaa73b41d004ab90e0e170d4985e4f57374e1dc87542779ad8c72135fca4db9894a5b8e0e29ac16d10375e3be56c21206e0decc3a02b498328d39c78572 WHIRLPOOL ddcd895dea2dd116a57ade56339619ba78131c89d77b7efc7e2141b486d8f7695f32d81bad4ad328420b17e3a5094667c39aeb2c961a1ff38401e8bda8d5c325
|
||||
|
||||
@@ -1,122 +0,0 @@
|
||||
# Copyright 1999-2016 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
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.6.1
|
||||
>=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>"
|
||||
}
|
||||
@@ -1,143 +0,0 @@
|
||||
# Copyright 1999-2016 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
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>"
|
||||
}
|
||||
@@ -1,192 +0,0 @@
|
||||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# 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 +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>"
|
||||
}
|
||||
@@ -1,192 +0,0 @@
|
||||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# 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 +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>"
|
||||
}
|
||||
@@ -1,193 +0,0 @@
|
||||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# 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 +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.9.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
|
||||
)
|
||||
|
||||
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} \
|
||||
$(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>"
|
||||
}
|
||||
@@ -1,193 +0,0 @@
|
||||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# 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 +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.9.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
|
||||
)
|
||||
|
||||
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} \
|
||||
$(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>"
|
||||
}
|
||||
@@ -1,193 +0,0 @@
|
||||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# 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 +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.9.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
|
||||
)
|
||||
|
||||
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} \
|
||||
$(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>"
|
||||
}
|
||||
@@ -2,6 +2,7 @@
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
RESTRICT="test"
|
||||
|
||||
PYTHON_COMPAT=( python2_7 )
|
||||
PYTHON_REQ_USE="threads"
|
||||
@@ -20,7 +21,7 @@ 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.9.0:=
|
||||
>=dev-libs/libuv-1.11.0:=
|
||||
>=dev-libs/openssl-1.0.2g:0=[-bindist]
|
||||
sys-libs/zlib"
|
||||
DEPEND="${RDEPEND}
|
||||
Reference in New Issue
Block a user