# Buildsheet autogenerated by ravenadm tool -- Do not edit. NAMEBASE= nodejs VERSION= 17.6.0 KEYWORDS= www lang VARIANTS= standard SDESC[standard]= Evented I/O for V8 JavaScript HOMEPAGE= https://nodejs.org/ CONTACT= nobody DOWNLOAD_GROUPS= main SITES[main]= http://nodejs.org/dist/v17.6.0/ DISTFILE[1]= node-v17.6.0.tar.gz:main DF_INDEX= 1 SPKGS[standard]= complete primary docs OPTIONS_AVAILABLE= none OPTIONS_STANDARD= none BROKEN[sunos]= The ld.sun linker does not support required options BROKEN[netbsd]= Run OOM on mksnapshot step near end BUILDRUN_DEPENDS= icu:single:standard libuv:single:standard libnghttp2:single:standard USES= execinfo gmake python:build pkgconfig shebangfix cpe zlib DISTNAME= node-v17.6.0 LICENSE= MIT:primary LICENSE_FILE= MIT:{{WRKSRC}}/LICENSE LICENSE_SCHEME= solo CPE_PRODUCT= node.js CPE_VENDOR= nodejs FPC_EQUIVALENT= www/node SHEBANG_FILES= tools/specialize_node_d.py tools/genv8constants.py MUST_CONFIGURE= yes CONFIGURE_ARGS= --prefix={{PREFIX}} --without-npm --without-dtrace --shared-libuv --shared-zlib --shared-nghttp2 --with-intl=system-icu MAKE_ENV= CC.host={{CC}} CXX.host={{CXX}} LINK.host={{CXX}} LINK.target={{CXX}} INSTALL_REQ_TOOLCHAIN= yes VAR_OPSYS[netbsd]= CONFIGURE_ENV=GYP_DEFINES="OS=netbsd" MAKE_ENV=GYP_DEFINES="OS=netbsd" pre-configure-netbsd: # hack to avoid undefined reference to 'engine_load_devcrypto_int' ${REINPLACE_CMD} -e 's/ifndef OPENSSL_NO_DEVCRYPTOENG/if 0/' \ ${WRKSRC}/deps/openssl/openssl/crypto/init.c post-install: ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/node ${CHOWN} ${MANMODE} ${STAGEDIR}${PREFIX}/share/man/man1/node.1 pre-configure: ${GREP} -rl "/usr/local" ${WRKSRC} | \ ${XARGS} ${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' # So many different ways to run python. Fix them all. ${REINPLACE_CMD} -e 's|/usr/bin/env python|${PYTHON_CMD}|' \ ${WRKSRC}/configure ${FIND} ${WRKSRC} -type f -name '*.gyp*' -print0 | \ ${XARGS} -0 ${REINPLACE_CMD} \ -e "s|'python'|'${PYTHON_CMD}'|" \ -e 's| "BSD-sparc64" } ], [ 'ia64-.*-.*bsd.*', { target => "BSD-ia64" } ], [ 'x86_64-.*-dragonfly.*', { target => "BSD-x86_64" } ], + [ 'x86_64-.*-*bsd.*', { target => "BSD-x86_64" } ], [ 'amd64-.*-.*bsd.*', { target => "BSD-x86_64" } ], [ '.*86.*-.*-.*bsd.*', sub { [FILE:414:patches/patch-deps_uv_common.gypi] --- deps/uv/common.gypi.orig 2022-02-10 04:59:26 UTC +++ deps/uv/common.gypi @@ -135,7 +135,7 @@ }] ] }], - ['OS in "freebsd dragonflybsd linux openbsd solaris android aix"', { + ['OS in "freebsd dragonflybsd linux openbsd netbsd solaris android aix"', { 'cflags': [ '-Wall' ], 'cflags_cc': [ '-fno-rtti', '-fno-exceptions' ], 'target_conditions': [ [FILE:478:patches/patch-deps_v8_src_base_platform_condition-variable.cc] --- deps/v8/src/base/platform/condition-variable.cc.orig 2022-02-10 04:59:26 UTC +++ deps/v8/src/base/platform/condition-variable.cc @@ -20,6 +20,7 @@ namespace base { ConditionVariable::ConditionVariable() { #if (V8_OS_FREEBSD || V8_OS_NETBSD || V8_OS_OPENBSD || \ + V8_OS_DRAGONFLYBSD || \ (V8_OS_LINUX && V8_LIBC_GLIBC)) // On Free/Net/OpenBSD and Linux with glibc we can change the time // source for pthread_cond_timedwait() to use the monotonic clock. [FILE:638:patches/patch-deps_v8_src_base_platform_platform-freebsd.cc] --- deps/v8/src/base/platform/platform-freebsd.cc.orig 2022-02-10 04:59:26 UTC +++ deps/v8/src/base/platform/platform-freebsd.cc @@ -48,6 +48,9 @@ static unsigned StringToLong(char* buffe } std::vector OS::GetSharedLibraryAddresses() { +#ifdef __DragonFly__ + return std::vector(); +#else std::vector result; int mib[4] = {CTL_KERN, KERN_PROC, KERN_PROC_VMMAP, getpid()}; size_t miblen = sizeof(mib) / sizeof(mib[0]); @@ -91,6 +94,7 @@ std::vector OS } } return result; +#endif } void OS::SignalCodeMovingGC() {} [FILE:1632:patches/patch-deps_v8_src_base_platform_platform-posix.cc] --- deps/v8/src/base/platform/platform-posix.cc.orig 2022-02-10 04:59:26 UTC +++ deps/v8/src/base/platform/platform-posix.cc @@ -840,8 +840,13 @@ Thread::Thread(const Options& options) : data_(new PlatformData), stack_size_(options.stack_size()), start_semaphore_(nullptr) { +#if V8_OS_NETBSD + if (stack_size_ > 0 && static_cast(stack_size_) < sysconf(_SC_THREAD_STACK_MIN)) { + stack_size_ = sysconf(_SC_THREAD_STACK_MIN); +#else if (stack_size_ > 0 && static_cast(stack_size_) < PTHREAD_STACK_MIN) { stack_size_ = PTHREAD_STACK_MIN; +#endif } set_name(options.name()); } @@ -857,7 +862,7 @@ static void SetThreadName(const char* na pthread_set_name_np(pthread_self(), name); #elif V8_OS_NETBSD STATIC_ASSERT(Thread::kMaxThreadNameLength <= PTHREAD_MAX_NAMELEN_NP); - pthread_setname_np(pthread_self(), "%s", name); + pthread_setname_np(pthread_self(), "%s", (void *)name); #elif V8_OS_MACOSX // pthread_setname_np is only available in 10.6 or later, so test // for it at runtime. @@ -1055,6 +1060,7 @@ void Thread::SetThreadLocal(LocalStorage // support it. MacOS and FreeBSD are different here. #if !defined(V8_OS_FREEBSD) && !defined(V8_OS_MACOSX) && !defined(_AIX) && \ !defined(V8_OS_SOLARIS) +#if !defined(V8_OS_DRAGONFLYBSD) // static Stack::StackSlot Stack::GetStackStart() { @@ -1080,6 +1086,7 @@ Stack::StackSlot Stack::GetStackStart() #endif // !defined(V8_LIBC_GLIBC) } +#endif // !defined(V8_OS_DRAGONFLYBSD) #endif // !defined(V8_OS_FREEBSD) && !defined(V8_OS_MACOSX) && // !defined(_AIX) && !defined(V8_OS_SOLARIS) [FILE:296:patches/patch-deps_v8_src_base_strings.h] --- deps/v8/src/base/strings.h.orig 2022-02-10 04:59:26 UTC +++ deps/v8/src/base/strings.h @@ -5,6 +5,7 @@ #ifndef V8_BASE_STRINGS_H_ #define V8_BASE_STRINGS_H_ +#include // for va_list #include "src/base/base-export.h" #include "src/base/macros.h" #include "src/base/vector.h" [FILE:616:patches/patch-deps_v8_src_base_utils_random-number-generator.cc] --- deps/v8/src/base/utils/random-number-generator.cc.orig 2022-02-10 04:59:26 UTC +++ deps/v8/src/base/utils/random-number-generator.cc @@ -55,7 +55,7 @@ RandomNumberGenerator::RandomNumberGener result = rand_s(&second_half); DCHECK_EQ(0, result); SetSeed((static_cast(first_half) << 32) + second_half); -#elif V8_OS_MACOSX || V8_OS_FREEBSD || V8_OS_OPENBSD +#elif V8_OS_MACOSX || V8_OS_FREEBSD || V8_OS_OPENBSD || V8_OS_DRAGONFLYBSD // Despite its prefix suggests it is not RC4 algorithm anymore. // It always succeeds while having decent performance and // no file descriptor involved. [FILE:451:patches/patch-deps_v8_src_d8_d8-posix.cc] --- deps/v8/src/d8/d8-posix.cc.orig 2022-02-10 04:59:26 UTC +++ deps/v8/src/d8/d8-posix.cc @@ -340,7 +340,7 @@ static Local GetStdout(Isolate* i // See http://code.google.com/p/v8/issues/detail?id=401. #if defined(WNOWAIT) && !defined(ANDROID) && !defined(__APPLE__) && \ !defined(__NetBSD__) && !defined(__Fuchsia__) -#if !defined(__FreeBSD__) +#if !defined(__FreeBSD__) && !defined(__DragonFly__) #define HAS_WAITID 1 #endif #endif [FILE:484:patches/patch-deps_v8_src_libsampler_sampler.cc] --- deps/v8/src/libsampler/sampler.cc.orig 2022-02-10 04:59:26 UTC +++ deps/v8/src/libsampler/sampler.cc @@ -484,7 +484,7 @@ void SignalHandler::FillRegisterState(vo state->fp = reinterpret_cast(arm_thread_state64_get_fp(mcontext->__ss)); #endif // V8_HOST_ARCH_* -#elif V8_OS_FREEBSD +#elif V8_OS_FREEBSD || V8_OS_DRAGONFLYBSD #if V8_HOST_ARCH_IA32 state->pc = reinterpret_cast(mcontext.mc_eip); state->sp = reinterpret_cast(mcontext.mc_esp); [FILE:669:patches/patch-deps_v8_src_trap-handler_handler-inside-posix.cc] --- deps/v8/src/trap-handler/handler-inside-posix.cc.orig 2022-02-10 04:59:26 UTC +++ deps/v8/src/trap-handler/handler-inside-posix.cc @@ -27,7 +27,7 @@ #include -#if defined(V8_OS_LINUX) || defined(V8_OS_FREEBSD) +#if V8_OS_LINUX || V8_OS_FREEBSD || V8_OS_DRAGONFLYBSD #include #elif V8_OS_MACOSX #include @@ -53,6 +53,8 @@ namespace trap_handler { #define CONTEXT_REG(reg, REG) &uc->uc_mcontext->__ss.__##reg #elif V8_OS_FREEBSD #define CONTEXT_REG(reg, REG) &uc->uc_mcontext.mc_##reg +#elif V8_OS_DRAGONFLYBSD +#define CONTEXT_REG(reg, REG) &uc->uc_mcontext.mc_##reg #else #error "Unsupported platform." #endif [FILE:426:patches/patch-deps_v8_src_trap-handler_handler-inside-posix.h] --- deps/v8/src/trap-handler/handler-inside-posix.h.orig 2022-02-10 04:59:26 UTC +++ deps/v8/src/trap-handler/handler-inside-posix.h @@ -13,7 +13,7 @@ namespace v8 { namespace internal { namespace trap_handler { -#if V8_OS_LINUX || V8_OS_FREEBSD +#if defined(V8_OS_LINUX) || defined(V8_OS_FREEBSD) || defined(V8_OS_DRAGONFLYBSD) constexpr int kOobSignal = SIGSEGV; #elif V8_OS_MACOSX constexpr int kOobSignal = SIGBUS; [FILE:472:patches/patch-deps_v8_src_trap-handler_trap-handler.h] --- deps/v8/src/trap-handler/trap-handler.h.orig 2022-02-10 04:59:26 UTC +++ deps/v8/src/trap-handler/trap-handler.h @@ -20,6 +20,7 @@ namespace trap_handler { // X64 on Linux, Windows, MacOS, FreeBSD. #if V8_HOST_ARCH_X64 && V8_TARGET_ARCH_X64 && \ ((V8_OS_LINUX && !V8_OS_ANDROID) || V8_OS_WIN || V8_OS_MACOSX || \ + V8_OS_DRAGONFLYBSD || \ V8_OS_FREEBSD) #define V8_TRAP_HANDLER_SUPPORTED true // Arm64 (non-simulator) on Mac. [FILE:321:patches/patch-deps_v8_tools_run-llprof.sh] --- deps/v8/tools/run-llprof.sh.orig 2022-02-10 04:59:28 UTC +++ deps/v8/tools/run-llprof.sh @@ -46,7 +46,7 @@ framework, then calls the low level tick EOF } -if [ $# -eq 0 ] || [ "$1" == "-h" ] || [ "$1" == "--help" ] ; then +if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "--help" ] ; then usage exit 1 fi [FILE:216:patches/patch-node.gypi] --- node.gypi.orig 2022-02-10 04:59:28 UTC +++ node.gypi @@ -245,6 +245,7 @@ [ 'OS=="solaris"', { 'libraries': [ '-lkstat', + '-lsocket', '-lumem', ], 'defines!': [ [FILE:638:patches/patch-src_inspector__agent.cc] --- src/inspector_agent.cc.orig 2022-02-10 04:59:28 UTC +++ src/inspector_agent.cc @@ -96,7 +96,7 @@ static int StartDebugSignalHandler() { CHECK_EQ(0, uv_sem_init(&start_io_thread_semaphore, 0)); pthread_attr_t attr; CHECK_EQ(0, pthread_attr_init(&attr)); -#if defined(PTHREAD_STACK_MIN) && !defined(__FreeBSD__) +#if defined(PTHREAD_STACK_MIN) && !defined(__FreeBSD__) && !defined(__NetBSD__) // PTHREAD_STACK_MIN is 2 KB with musl libc, which is too small to safely // receive signals. PTHREAD_STACK_MIN + MINSIGSTKSZ is 8 KB on arm64, which // is the musl architecture with the biggest MINSIGSTKSZ so let's use that [FILE:600:patches/patch-src_node__postmortem__metadata.cc] --- src/node_postmortem_metadata.cc.orig 2022-02-10 04:59:28 UTC +++ src/node_postmortem_metadata.cc @@ -12,6 +12,10 @@ #define NODEDBG_OFFSET(Class, Member, Type) \ NODEDBG_SYMBOL(offset_ ## Class ## __ ## Member ## __ ## Type) +// Some systems provide macros for the types as well, which get expanded +// by the nested macros here. +#undef uintptr_t + // These are the constants describing Node internal structures. Every constant // should use the format described above. These constants are declared as // global integers so that they'll be present in the generated node binary. They [FILE:511:patches/patch-tools_gyp_pylib_gyp_generator_make.py] --- tools/gyp/pylib/gyp/generator/make.py.orig 2022-02-10 04:59:28 UTC +++ tools/gyp/pylib/gyp/generator/make.py @@ -2398,7 +2398,7 @@ def GenerateOutput(target_list, target_d "flock_index": 2, } ) - elif flavor == "freebsd": + elif flavor == "freebsd" or flavor == 'dragonflybsd' or flavor == 'netbsd': # Note: OpenBSD has sysutils/flock. lockf seems to be FreeBSD specific. header_params.update({"flock": "lockf"}) elif flavor == "openbsd": [FILE:980:patches/patch-tools_gyp_pylib_gyp_xcode__emulation.py] --- tools/gyp/pylib/gyp/xcode_emulation.py.orig 2022-02-10 04:59:28 UTC +++ tools/gyp/pylib/gyp/xcode_emulation.py @@ -607,7 +607,7 @@ class XcodeSettings: self._Appendf(cflags, "GCC_OPTIMIZATION_LEVEL", "-O%s", default="s") - if self._Test("GCC_GENERATE_DEBUGGING_SYMBOLS", "YES", default="YES"): + if self._Test("GCC_GENERATE_DEBUGGING_SYMBOLS", "YES", default="NO"): dbg_format = self._Settings().get("DEBUG_INFORMATION_FORMAT", "dwarf") if dbg_format == "dwarf": cflags.append("-gdwarf-2") @@ -1099,7 +1099,7 @@ class XcodeSettings: # For static libraries, no dSYMs are created. result = [] if ( - self._Test("GCC_GENERATE_DEBUGGING_SYMBOLS", "YES", default="YES") + self._Test("GCC_GENERATE_DEBUGGING_SYMBOLS", "YES", default="NO") and self._Test( "DEBUG_INFORMATION_FORMAT", "dwarf-with-dsym", default="dwarf" ) [FILE:424:patches/patch-tools_install.py] --- tools/install.py.orig 2022-02-10 04:59:28 UTC +++ tools/install.py @@ -156,7 +156,7 @@ def files(action): action(['deps/v8/tools/gdbinit'], 'share/doc/node/') action(['deps/v8/tools/lldb_commands.py'], 'share/doc/node/') - if 'freebsd' in sys.platform or 'openbsd' in sys.platform: + if 'skipme' in sys.platform: action(['doc/node.1'], 'man/man1/') else: action(['doc/node.1'], 'share/man/man1/')