summaryrefslogtreecommitdiff
path: root/net-libs/nodejs/nodejs-99999999.ebuild
diff options
context:
space:
mode:
Diffstat (limited to 'net-libs/nodejs/nodejs-99999999.ebuild')
-rw-r--r--net-libs/nodejs/nodejs-99999999.ebuild60
1 files changed, 47 insertions, 13 deletions
diff --git a/net-libs/nodejs/nodejs-99999999.ebuild b/net-libs/nodejs/nodejs-99999999.ebuild
index 8f647b977a19..2c68aa6262a1 100644
--- a/net-libs/nodejs/nodejs-99999999.ebuild
+++ b/net-libs/nodejs/nodejs-99999999.ebuild
@@ -4,10 +4,10 @@
EAPI=8
CONFIG_CHECK="~ADVISE_SYSCALLS"
-PYTHON_COMPAT=( python3_{9..11} )
+PYTHON_COMPAT=( python3_{10..12} )
PYTHON_REQ_USE="threads(+)"
-inherit bash-completion-r1 check-reqs flag-o-matic linux-info pax-utils python-any-r1 toolchain-funcs xdg-utils
+inherit bash-completion-r1 check-reqs flag-o-matic linux-info ninja-utils pax-utils python-any-r1 toolchain-funcs xdg-utils
DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine"
HOMEPAGE="https://nodejs.org/"
@@ -24,9 +24,8 @@ else
S="${WORKDIR}/node-v${PV}"
fi
-IUSE="corepack cpu_flags_x86_sse2 debug doc +icu inspector lto +npm pax-kernel +snapshot +ssl +system-icu +system-ssl test"
-REQUIRED_USE="corepack? ( !npm )
- inspector? ( icu ssl )
+IUSE="corepack cpu_flags_x86_sse2 debug doc +icu inspector lto npm pax-kernel +snapshot +ssl +system-icu +system-ssl test"
+REQUIRED_USE="inspector? ( icu ssl )
npm? ( ssl )
system-icu? ( icu )
system-ssl? ( ssl )
@@ -35,13 +34,19 @@ REQUIRED_USE="corepack? ( !npm )
RESTRICT="!test? ( test )"
RDEPEND=">=app-arch/brotli-1.0.9:=
- >=dev-libs/libuv-1.44.0:=
+ dev-db/sqlite:3
+ >=dev-libs/libuv-1.46.0:=
+ >=dev-libs/simdjson-3.9.1:=
>=net-dns/c-ares-1.18.1:=
- >=net-libs/nghttp2-1.41.0:=
+ >=net-libs/nghttp2-1.61.0:=
sys-libs/zlib
corepack? ( !sys-apps/yarn )
system-icu? ( >=dev-libs/icu-73:= )
- system-ssl? ( >=dev-libs/openssl-1.1.1:0= )
+ system-ssl? (
+ >=net-libs/ngtcp2-1.3.0:=
+ >=dev-libs/openssl-1.1.1:0=
+ )
+ !system-ssl? ( >=net-libs/ngtcp2-1.3.0:=[-gnutls] )
sys-devel/gcc:*"
BDEPEND="${PYTHON_DEPS}
app-alternatives/ninja
@@ -84,9 +89,6 @@ src_prepare() {
# 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
@@ -104,7 +106,10 @@ src_prepare() {
fi
# We need to disable mprotect on two files when it builds Bug 694100.
- use pax-kernel && PATCHES+=( "${FILESDIR}"/${PN}-18.16.0-paxmarking.patch )
+ use pax-kernel && PATCHES+=( "${FILESDIR}"/${PN}-20.6.0-paxmarking.patch )
+
+ # bug 931256
+ use riscv && PATCHES+=( "${FILESDIR}"/${PN}-22.2.0-riscv.patch )
default
}
@@ -114,6 +119,10 @@ src_configure() {
# LTO compiler flags are handled by configure.py itself
filter-lto
+ # GCC with -ftree-vectorize miscompiles node's exception handling code
+ # causing it to fail to catch exceptions sometimes
+ # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116057
+ tc-is-gcc && append-cxxflags -fno-tree-vectorize
# nodejs unconditionally links to libatomic #869992
# specifically it requires __atomic_is_lock_free which
# is not yet implemented by sys-libs/compiler-rt (see
@@ -123,10 +132,19 @@ src_configure() {
local myconf=(
--ninja
+ # ada is not packaged yet
+ # https://github.com/ada-url/ada
+ # --shared-ada
--shared-brotli
--shared-cares
--shared-libuv
--shared-nghttp2
+ --shared-ngtcp2
+ --shared-simdjson
+ # sindutf is not packaged yet
+ # https://github.com/simdutf/simdutf
+ # --shared-simdutf
+ --shared-sqlite
--shared-zlib
)
use debug && myconf+=( --debug )
@@ -171,6 +189,7 @@ src_configure() {
}
src_compile() {
+ export NINJA_ARGS=" $(get_NINJAOPTS)"
emake -Onone
}
@@ -234,15 +253,30 @@ src_install() {
src_test() {
local drop_tests=(
+ test/parallel/test-dns.js
+ test/parallel/test-dns-resolveany-bad-ancount.js
test/parallel/test-dns-setserver-when-querying.js
test/parallel/test-fs-mkdir.js
+ test/parallel/test-fs-read-stream.js
test/parallel/test-fs-utimes-y2K38.js
test/parallel/test-fs-watch-recursive-add-file.js
+ test/parallel/test-process-euid-egid.js
+ test/parallel/test-process-get-builtin.mjs
+ test/parallel/test-process-initgroups.js
+ test/parallel/test-process-setgroups.js
+ test/parallel/test-process-uid-gid.js
test/parallel/test-release-npm.js
test/parallel/test-socket-write-after-fin-error.js
test/parallel/test-strace-openat-openssl.js
test/sequential/test-util-debug.js
)
+ [[ "$(nice)" -gt 10 ]] && drop_tests+=( "test/parallel/test-os.js" )
+ use inspector ||
+ drop_tests+=(
+ test/parallel/test-inspector-emit-protocol-event.js
+ test/parallel/test-inspector-network-domain.js
+ test/sequential/test-watch-mode.mjs
+ )
rm -f "${drop_tests[@]}" || die "disabling tests failed"
out/${BUILDTYPE}/cctest || die
@@ -252,6 +286,6 @@ src_test() {
pkg_postinst() {
if use npm; then
ewarn "remember to run: source /etc/profile if you plan to use nodejs"
- ewarn " in your current shell"
+ ewarn " in your current shell"
fi
}