+# BUILD NOTE:
+# until we get binutils with https://sourceware.org/bugzilla/show_bug.cgi?id=28138 fixed
+# build requires >1024 available file descriptors (4096 seems sufficient)
+#
# TODO
# - unpackaged files
# /usr/share/doc/node/gdbinit
# add-on binaries can be loaded in to without needing to be re-compiled. It
# used to be stored as hex value in earlier versions, but is now represented as
# an integer.
-%define node_module_version 83
+%define node_module_version 93
Summary: Asynchronous JavaScript Engine
Summary(pl.UTF-8): Asynchroniczny silnik JavaScriptu
Name: nodejs
-# 14.x LTS - https://github.com/nodejs/Release
-# Active start: 2020-10-27
-# Maintenance start: October 2020
-# Maintenance end: April 2023
-Version: 14.17.4
+# 16.x LTS - https://github.com/nodejs/Release
+# Active start: 2021-10-26
+# Maintenance start: October 2022
+# Maintenance end: September 2023
+Version: 16.20.2
Release: 1
License: BSD and MIT and Apache v2.0 and GPL v3
Group: Development/Languages
-Source0: https://nodejs.org/dist/v%{version}/node-v%{version}.tar.gz
-# Source0-md5: d46ffad24b7637bdd47995a799bcec7d
-
+Source0: https://nodejs.org/download/release/latest-v16.x/node-v%{version}.tar.xz
+# Source0-md5: c3bdaf2ababf0c753d42c0acef1a154a
+Patch0: system_cares.patch
# force node to use /usr/lib/node as the systemwide module directory
Patch2: %{name}-libpath.patch
# use /usr/lib64/node as an arch-specific module dir when appropriate
Patch3: %{name}-lib64path.patch
Patch4: 0001-Disable-running-gyp-on-shared-deps.patch
-Patch5: 0002-Install-both-binaries-and-use-libdir.patch
URL: https://nodejs.org/
-BuildRequires: c-ares-devel >= 1.17.1
+BuildRequires: c-ares-devel >= 1.17.2
BuildRequires: gcc >= 6:6.3
%if %{with http_parser}
BuildRequires: http-parser-devel >= 2.9.3
BuildRequires: llhttp-devel >= 2.1.3
%endif
+%ifarch mips mipsel mips64 mips64el ppc %{arm}
+BuildRequires: libatomic-devel
+%endif
%{?with_system_brotli:BuildRequires: libbrotli-devel >= 1.0.9}
-BuildRequires: libicu-devel >= 67
+BuildRequires: libicu-devel >= 69.1
BuildRequires: libstdc++-devel >= 6:4.8
-%{?with_system_uv:BuildRequires: libuv-devel >= 1.41.0}
+%{?with_system_uv:BuildRequires: libuv-devel >= 1.42.0}
BuildRequires: nghttp2-devel >= 1.42.0
BuildRequires: openssl-devel >= 1.0.1
BuildRequires: pkgconfig
-BuildRequires: python3
-BuildRequires: python3-modules
+BuildRequires: python3 >= 1:3.6
+BuildRequires: python3-modules >= 1:3.6
BuildRequires: rpm >= 4.4.9-56
+BuildRequires: rpm-build >= 4.6
BuildRequires: rpmbuild(macros) >= 1.752
+BuildRequires: tar >= 1:1.22
BuildRequires: sed >= 4.0
+BuildRequires: xz
BuildRequires: zlib-devel >= 1.2.11
Requires: c-ares >= 1.17.1
Requires: ca-certificates
%{?with_http_parser:Requires: http-parser >= 2.9.3}
%{?with_system_brotli:Requires: libbrotli >= 1.0.9}
-%{?with_system_uv:Requires: libuv >= 1.41.0}
+%{?with_system_uv:Requires: libuv >= 1.42.0}
Requires: nghttp2-libs >= 1.42.0
Requires: zlib >= 1.2.11
Provides: nodejs(engine) = %{version}
Provides: nodejs(module-version) = %{node_module_version}
-Obsoletes: nodejs-waf
+Obsoletes: nodejs-waf < 0.9
ExclusiveArch: %{ix86} %{x8664} %{arm} aarch64
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
Requires: gcc
%{?with_http_parser:Requires: http-parser-devel >= 2.9.3}
Requires: libstdc++-devel
-%{?with_system_uv:Requires: libuv-devel >= 1.41.0}
+%{?with_system_uv:Requires: libuv-devel >= 1.42.0}
Requires: openssl-devel
Requires: zlib-devel >= 1.2.11
%prep
%setup -q -n node-v%{version}
+%patch0 -p1
%if "%{_lib}" == "lib64"
%patch3 -p1
%else
%patch2 -p1
%endif
%patch4 -p1
-%patch5 -p1
-grep -r '#!.*env python' -l . | xargs %{__sed} -i -e '1 s,#!.*env python,#!%{__python3},'
+grep -r '#!.*env python' -l . | xargs %{__sed} -i -e '1 s,#!.*env python$,#!%{__python3},'
%{?with_system_brotli:%{__rm} -r deps/brotli}
%{__rm} -r deps/cares
--shared-openssl \
--shared-zlib \
--with-intl=system-icu \
+ --without-corepack \
--without-dtrace \
--without-npm
# CXXFLAGS must be exported, as it is needed for make, not gyp
CXXFLAGS="%{rpmcxxflags} -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fPIC" \
LDFLAGS="%{rpmldflags}" \
+PATH="$(pwd)/out/tools/bin:$PATH" \
%{__make} -C out \
BUILDTYPE=Release \
V=1