@ -1,17 +1,14 @@
%global with_debug 1
# PowerPC and s390x segfault during Debug builds
# https://github.com/nodejs/node/issues/20642
%ifarch %{power64} s390x
%global with_debug 0
%define _smp_mflags -j16
%define _smp_mflags -j16
%endif
# bundle dependencies that are not available as Fedora modules
# bundle dependencies that are not available as Fedora modules
# %%{!?_with_bootstrap: %%global bootstrap 1}
# use bcond for building modules
%bcond_with bootstrap
%bcond_with bootstrap
# == Master Relase ==
# This is used by both the nodejs package and the npm subpackage thar
# has a separate version - the name is special so that rpmdev-bumpspec
# will bump this rather than adding .1 to the end.
%global baserelease 1
%{?!_pkgdocdir:%global _pkgdocdir %{_docdir}/%{name}-%{version}}
%{?!_pkgdocdir:%global _pkgdocdir %{_docdir}/%{name}-%{version}}
# == Node.js Version ==
# == Node.js Version ==
@ -20,59 +17,73 @@
# feature releases that are only supported for nine months, which is shorter
# feature releases that are only supported for nine months, which is shorter
# than a Fedora release lifecycle.
# than a Fedora release lifecycle.
%global nodejs_epoch 1
%global nodejs_epoch 1
%global nodejs_major 10
%global nodejs_major 12
%global nodejs_minor 15
%global nodejs_minor 19
%global nodejs_patch 0
%global nodejs_patch 0
%global nodejs_abi %{nodejs_major}.%{nodejs_minor}
%global nodejs_abi %{nodejs_major}.%{nodejs_minor}
# nodejs_soversion - from NODE_MODULE_VERSION in src/node_version.h
%global nodejs_soversion 72
%global nodejs_version %{nodejs_major}.%{nodejs_minor}.%{nodejs_patch}
%global nodejs_version %{nodejs_major}.%{nodejs_minor}.%{nodejs_patch}
%global nodejs_release 1
%global nodejs_release %{baserelease}
%global nodejs_datadir %{_datarootdir}/nodejs
# == Bundled Dependency Versions ==
# == Bundled Dependency Versions ==
# v8 - from deps/v8/include/v8-version.h
# v8 - from deps/v8/include/v8-version.h
%global v8_major 6
# Epoch is set to ensure clean upgrades from the old v8 package
%global v8_epoch 2
%global v8_major 7
%global v8_minor 8
%global v8_minor 8
%global v8_build 275
%global v8_build 279
%global v8_patch 32
%global v8_patch 23
# V8 presently breaks ABI at least every x.y release while never bumping SONAME
# V8 presently breaks ABI at least every x.y release while never bumping SONAME
%global v8_abi %{v8_major}.%{v8_minor}
%global v8_abi %{v8_major}.%{v8_minor}
%global v8_version %{v8_major}.%{v8_minor}.%{v8_build}.%{v8_patch}
%global v8_version %{v8_major}.%{v8_minor}.%{v8_build}.%{v8_patch}
%global v8_release %{nodejs_epoch}.%{nodejs_major}.%{nodejs_minor}.%{nodejs_patch}.%{nodejs_release}
# c-ares - from deps/cares/include/ares_version.h
# c-ares - from deps/cares/include/ares_version.h
# https://github.com/nodejs/node/pull/9332
# https://github.com/nodejs/node/pull/9332
%global c_ares_major 1
%global c_ares_major 1
%global c_ares_minor 15
%global c_ares_minor 16
%global c_ares_patch 0
%global c_ares_patch 0
%global c_ares_version %{c_ares_major}.%{c_ares_minor}.%{c_ares_patch}
%global c_ares_version %{c_ares_major}.%{c_ares_minor}.%{c_ares_patch}
# http-parser - from deps/http_parser/http_parser.h
# http-parser - from deps/http_parser/http_parser.h
%global http_parser_major 2
%global http_parser_major 2
%global http_parser_minor 8
%global http_parser_minor 9
%global http_parser_patch 0
%global http_parser_patch 3
%global http_parser_version %{http_parser_major}.%{http_parser_minor}.%{http_parser_patch}
%global http_parser_version %{http_parser_major}.%{http_parser_minor}.%{http_parser_patch}
# llhttp - from deps/llhttp/include/llhttp.h
%global llhttp_major 2
%global llhttp_minor 1
%global llhttp_patch 2
%global llhttp_version %{llhttp_major}.%{llhttp_minor}.%{llhttp_patch}
# libuv - from deps/uv/include/uv/version.h
# libuv - from deps/uv/include/uv/version.h
%global libuv_major 1
%global libuv_major 1
%global libuv_minor 23
%global libuv_minor 39
%global libuv_patch 2
%global libuv_patch 0
%global libuv_version %{libuv_major}.%{libuv_minor}.%{libuv_patch}
%global libuv_version %{libuv_major}.%{libuv_minor}.%{libuv_patch}
# nghttp2 - from deps/nghttp2/lib/includes/nghttp2/nghttp2ver.h
# nghttp2 - from deps/nghttp2/lib/includes/nghttp2/nghttp2ver.h
%global nghttp2_major 1
%global nghttp2_major 1
%global nghttp2_minor 34
%global nghttp2_minor 41
%global nghttp2_patch 0
%global nghttp2_patch 0
%global nghttp2_version %{nghttp2_major}.%{nghttp2_minor}.%{nghttp2_patch}
%global nghttp2_version %{nghttp2_major}.%{nghttp2_minor}.%{nghttp2_patch}
# ICU - from tools/icu/current_ver.dep
# ICU - from tools/icu/current_ver.dep
%global icu_major 62
%global icu_major 67
%global icu_minor 1
%global icu_minor 1
%global icu_version %{icu_major}.%{icu_minor}
%global icu_version %{icu_major}.%{icu_minor}
%if 0%{?fedora} >= 29
%global icudatadir %{nodejs_datadir}/icudata
%global icu_flag system-icu
%{!?little_endian: %global little_endian %(%{__python3} -c "import sys;print (0 if sys.byteorder=='big' else 1)")}
%else
# " this line just fixes syntax highlighting for vim that is confused by the above and continues literal
%global icu_flag small-icu
%endif
# OpenSSL minimum version
%global openssl_minimum 1:1.1.1
# punycode - from lib/punycode.js
# punycode - from lib/punycode.js
# Note: this was merged into the mainline since 0.6.x
# Note: this was merged into the mainline since 0.6.x
@ -85,10 +96,22 @@
# npm - from deps/npm/package.json
# npm - from deps/npm/package.json
%global npm_epoch 1
%global npm_epoch 1
%global npm_major 6
%global npm_major 6
%global npm_minor 4
%global npm_minor 14
%global npm_patch 1
%global npm_patch 8
%global npm_version %{npm_major}.%{npm_minor}.%{npm_patch}
%global npm_version %{npm_major}.%{npm_minor}.%{npm_patch}
# uvwasi - from deps/uvwasi/include/uvwasi.h
%global uvwasi_major 0
%global uvwasi_minor 0
%global uvwasi_patch 10
%global uvwasi_version %{uvwasi_major}.%{uvwasi_minor}.%{uvwasi_patch}
# histogram_c - assumed from timestamps
%global histogram_major 0
%global histogram_minor 9
%global histogram_patch 7
%global histogram_version %{histogram_major}.%{histogram_minor}.%{histogram_patch}
# In order to avoid needing to keep incrementing the release version for the
# In order to avoid needing to keep incrementing the release version for the
# main package forever, we will just construct one for npm that is guaranteed
# main package forever, we will just construct one for npm that is guaranteed
# to increment safely. Changing this can only be done during an update when the
# to increment safely. Changing this can only be done during an update when the
@ -111,7 +134,10 @@ ExclusiveArch: %{nodejs_arches}
# because openssl contains prohibited code, we remove openssl completely from
# because openssl contains prohibited code, we remove openssl completely from
# the tarball, using the script in Source100
# the tarball, using the script in Source100
#Source0: node-v%{nodejs_version}-stripped.tar.gz
#Source0: node-v%{nodejs_version}-stripped.tar.gz
Source0: http://nodejs.org/dist/v%{version}/node-v%{version}.tar.gz
Source0: node-v%{nodejs_version}.tar.gz
Source1: npmrc
Source2: btest402.js
Source3: https://github.com/unicode-org/icu/releases/download/release-%{icu_major}-%{icu_minor}/icu4c-%{icu_major}_%{icu_minor}-src.tgz
Source100: %{name}-tarball.sh
Source100: %{name}-tarball.sh
# The native module Requires generator remains in the nodejs SRPM, so it knows
# The native module Requires generator remains in the nodejs SRPM, so it knows
@ -122,50 +148,59 @@ Source7: nodejs_native.attr
# Disable running gyp on bundled deps we don't use
# Disable running gyp on bundled deps we don't use
Patch1: 0001-Disable-running-gyp-on-shared-deps.patch
Patch1: 0001-Disable-running-gyp-on-shared-deps.patch
# Suppress the message from npm to run `npm -g update npm`
# Patch to install both node and libnode.so, using the correct libdir
# This does bad things on an RPM-managed npm.
Patch2: 0002-Install-both-binaries-and-use-libdir.patch
Patch2: 0002-Suppress-NPM-message-to-run-global-update.patch
BuildRequires: python2-devel
BuildRequires: python3-devel
BuildRequires: python3-devel
BuildRequires: zlib-devel
BuildRequires: zlib-devel
BuildRequires: gcc >= 4.9.4
BuildRequires: brotli-devel
BuildRequires: gcc-c++ >= 4.9.4
BuildRequires: gcc >= 6.3.0
BuildRequires: gcc-c++ >= 6.3.0
# needed to generate bundled provides for npm dependencies
# https://src.fedoraproject.org/rpms/nodejs/pull-request/2
# https://pagure.io/nodejs-packaging/pull-request/10
BuildRequires: nodejs-packaging
BuildRequires: chrpath
BuildRequires: libatomic
#%if ! 0%%{?bootstrap}
%if %{with bootstrap}
%if %{with bootstrap}
Provides: bundled(http-parser) = %{http_parser_version}
Provides: bundled(http-parser) = %{http_parser_version}
Provides: bundled(libuv) = %{libuv_version}
Provides: bundled(libuv) = %{libuv_version}
Provides: bundled(nghttp2) = %{nghttp2_version}
Provides: bundled(nghttp2) = %{nghttp2_version}
%else
%else
BuildRequires: nodejs-packaging
BuildRequires: systemtap-sdt-devel
BuildRequires: systemtap-sdt-devel
BuildRequires: http-parser-devel >= 2.9.0
Requires: http-parser >= 2.9.0
BuildRequires: libuv-devel >= 1:%{libuv_version}
BuildRequires: libuv-devel >= 1:%{libuv_version}
Requires: libuv >= 1:%{libuv_version}
Requires: libuv >= 1:%{libuv_version}
BuildRequires: libnghttp2-devel >= %{nghttp2_version}
BuildRequires: libnghttp2-devel >= %{nghttp2_version}
Requires: libnghttp2 >= %{nghttp2_version}
Requires: libnghttp2 >= %{nghttp2_version}
%endif
# Temporarily bundle http-parser and llhttp because the latter
# isn't packaged yet and they are controlled by the same
# configure flag.
Provides: bundled(http-parser) = %{http_parser_version}
Provides: bundled(llhttp) = %{llhttp_version}
%if 0%{?fedora} >= 29
BuildRequires: libicu-devel >= 62.1
%endif
%endif
BuildRequires: openssl-devel
BuildRequires: openssl-devel >= %{openssl_minimum}
Requires: openssl >= %{openssl_minimum}
# we need the system certificate store
# we need the system certificate store
Requires: ca-certificates
Requires: ca-certificates
#we need ABI virtual provides where SONAMEs aren't enough/not present so deps
Requires: nodejs-libs%{?_isa} = %{nodejs_epoch}:%{version}-%{release}
#break when binary compatibility is broken
# Pull in the full-icu data by default
#Recommends: nodejs-full-i18n%{?_isa} = %{nodejs_epoch}:%{version}-%{release}
# we need ABI virtual provides where SONAMEs aren't enough/not present so deps
# break when binary compatibility is broken
Provides: nodejs(abi) = %{nodejs_abi}
Provides: nodejs(abi) = %{nodejs_abi}
Provides: nodejs(abi%{nodejs_major}) = %{nodejs_abi}
Provides: nodejs(abi%{nodejs_major}) = %{nodejs_abi}
Provides: nodejs(v8-abi) = %{v8_abi}
Provides: nodejs(v8-abi) = %{v8_abi}
Provides: nodejs(v8-abi%{v8_major}) = %{v8_abi}
Provides: nodejs(v8-abi%{v8_major}) = %{v8_abi}
#this corresponds to the "engine" requirement in package.json
# this corresponds to the "engine" requirement in package.json
Provides: nodejs(engine) = %{nodejs_version}
Provides: nodejs(engine) = %{nodejs_version}
# Node.js currently has a conflict with the 'node' package in Fedora
# Node.js currently has a conflict with the 'node' package in Fedora
@ -185,7 +220,6 @@ Conflicts: node <= 0.3.2-12
Provides: nodejs-punycode = %{punycode_version}
Provides: nodejs-punycode = %{punycode_version}
Provides: npm(punycode) = %{punycode_version}
Provides: npm(punycode) = %{punycode_version}
# Node.js has forked c-ares from upstream in an incompatible way, so we need
# Node.js has forked c-ares from upstream in an incompatible way, so we need
# to carry the bundled version internally.
# to carry the bundled version internally.
# See https://github.com/nodejs/node/commit/766d063e0578c0f7758c3a965c971763f43fec85
# See https://github.com/nodejs/node/commit/766d063e0578c0f7758c3a965c971763f43fec85
@ -203,14 +237,16 @@ Provides: bundled(v8) = %{v8_version}
# an ABI-break, so we'll use the bundled copy.
# an ABI-break, so we'll use the bundled copy.
Provides: bundled(icu) = %{icu_version}
Provides: bundled(icu) = %{icu_version}
# Make sure we keep NPM up to date when we update Node.js
# Upstream added new dependencies, but so far they are not available in Fedora
%if 0%{?rhel}
# or there's no option to built it as a shared dependency, so we bundle them
# EPEL doesn't support Recommends, so make it strict
Provides: bundled(uvwasi) = %{uvwasi_version}
Requires: npm = %{npm_epoch}:%{npm_version}-%{npm_release}%{?dist}
Provides: bundled(histogram) = %{histogram_version}
%else
Recommends: npm = %{npm_epoch}:%{npm_version}-%{npm_release}%{?dist}
%endif
# Make sure to pull in the appropriate packaging macros when building RPMs
#Requires: (nodejs-packaging if rpm-build)
# Make sure we keep NPM up to date when we update Node.js
#Recommends: npm >= %{npm_epoch}:%{npm_version}-%{npm_release}%{?dist}
%description
%description
Node.js is a platform built on Chrome's JavaScript runtime
Node.js is a platform built on Chrome's JavaScript runtime
@ -219,25 +255,69 @@ Node.js uses an event-driven, non-blocking I/O model that
makes it lightweight and efficient, perfect for data-intensive
makes it lightweight and efficient, perfect for data-intensive
real-time applications that run across distributed devices.
real-time applications that run across distributed devices.
%package devel
%package devel
Summary: JavaScript runtime - development headers
Summary: JavaScript runtime - development headers
Group: Development/Languages
Group: Development/Languages
Requires: %{name}%{?_isa} = %{epoch}:%{nodejs_version}-%{nodejs_release}%{?dist}
Requires: %{name}%{?_isa} = %{epoch}:%{nodejs_version}-%{nodejs_release}%{?dist}
Requires: openssl-devel%{?_isa}
Requires: openssl-devel%{?_isa}
Requires: zlib-devel%{?_isa}
Requires: zlib-devel%{?_isa}
Requires: brotli-devel%{?_isa}
Requires: nodejs-packaging
Requires: nodejs-packaging
#%if ! 0%%{?bootstrap}
%if %{with bootstrap}
%if %{with bootstrap}
# deps are bundled
# deps are bundled
%else
%else
Requires: http-parser-devel%{?_isa}
Requires: libuv-devel%{?_isa}
Requires: libuv-devel%{?_isa}
%endif
%endif
%description devel
%description devel
Development headers for the Node.js JavaScript runtime.
Development headers for the Node.js JavaScript runtime.
%package libs
Summary: Node.js and v8 libraries
# Compatibility for obsolete v8 package
%if 0%{?__isa_bits} == 64
Provides: libv8.so.%{v8_major}()(64bit)
Provides: libv8_libbase.so.%{v8_major}()(64bit)
Provides: libv8_libplatform.so.%{v8_major}()(64bit)
%else
# 32-bits
Provides: libv8.so.%{v8_major}
Provides: libv8_libbase.so.%{v8_major}
Provides: libv8_libplatform.so.%{v8_major}
%endif
Provides: v8 = %{v8_epoch}:%{v8_version}-%{nodejs_release}%{?dist}
Provides: v8%{?_isa} = %{v8_epoch}:%{v8_version}-%{nodejs_release}%{?dist}
Obsoletes: v8 < 1:6.7.17-10
%description libs
Libraries to support Node.js and provide stable v8 interfaces.
%package full-i18n
Summary: Non-English locale data for Node.js
Requires: %{name}%{?_isa} = %{nodejs_epoch}:%{nodejs_version}-%{nodejs_release}%{?dist}
%description full-i18n
Optional data files to provide full-icu support for Node.js. Remove this
package to save space if non-English locales are not needed.
%package -n v8-devel
Summary: v8 - development headers
Epoch: %{v8_epoch}
Version: %{v8_version}
Release: %{v8_release}%{?dist}
Requires: %{name}-devel%{?_isa} = %{nodejs_epoch}:%{nodejs_version}-%{nodejs_release}%{?dist}
%description -n v8-devel
Development headers for the v8 runtime.
%package -n npm
%package -n npm
Summary: Node.js Package Manager
Summary: Node.js Package Manager
Epoch: %{npm_epoch}
Epoch: %{npm_epoch}
@ -249,7 +329,8 @@ Release: %{npm_release}%{?dist}
# now.
# now.
Obsoletes: npm < 0:3.5.4-6
Obsoletes: npm < 0:3.5.4-6
Provides: npm = %{npm_epoch}:%{npm_version}
Provides: npm = %{npm_epoch}:%{npm_version}
Requires: nodejs = %{epoch}:%{nodejs_version}-%{nodejs_release}%{?dist}
Requires: nodejs = %{nodejs_epoch}:%{nodejs_version}-%{nodejs_release}%{?dist}
#Recommends: nodejs-docs = %{nodejs_epoch}:%{nodejs_version}-%{nodejs_release}%{?dist}
# Do not add epoch to the virtual NPM provides or it will break
# Do not add epoch to the virtual NPM provides or it will break
# the automatic dependency-generation script.
# the automatic dependency-generation script.
@ -259,6 +340,7 @@ Provides: npm(npm) = %{npm_version}
npm is a package manager for node.js. You can use it to install and publish
npm is a package manager for node.js. You can use it to install and publish
your node programs. It manages dependencies and does other cool stuff.
your node programs. It manages dependencies and does other cool stuff.
%package docs
%package docs
Summary: Node.js API documentation
Summary: Node.js API documentation
Group: Documentation
Group: Documentation
@ -267,43 +349,52 @@ BuildArch: noarch
# We don't require that the main package be installed to
# We don't require that the main package be installed to
# use the docs, but if it is installed, make sure the
# use the docs, but if it is installed, make sure the
# version always matches
# version always matches
Conflicts: %{name} > %{epoch}:%{nodejs_version}-%{nodejs_release}%{?dist}
Conflicts: %{name} > %{nodejs_epoch}:%{nodejs_version}-%{nodejs_release}%{?dist}
Conflicts: %{name} < %{epoch}:%{nodejs_version}-%{nodejs_release}%{?dist}
Conflicts: %{name} < %{nodejs_epoch}:%{nodejs_version}-%{nodejs_release}%{?dist}
%description docs
%description docs
The API documentation for the Node.js JavaScript runtime.
The API documentation for the Node.js JavaScript runtime.
%prep
%prep
%setup -q -n node-v%{nodejs_version}
%autosetup -p1 -n node-v%{nodejs_version}
# remove bundled dependencies that we aren't building
# remove bundled dependencies that we aren't building
#%patch1 -p1
#rm -rf deps/zlib
#rm -rf deps/zlib
#rm -rf deps/brotli
%patch2 -p1
# Replace any instances of unversioned python' with python3
#pathfix.py -i %{__python3} -pn $(find -type f ! -name "*.js")
# Replace any instances of unversioned python' with python2
find . -type f -exec sed -i "s~/usr\/bin\/env python~/usr/bin/python3~" {} \;
#pathfix.py -i %{__python2} -pn $(find -type f)
find . -type f -exec sed -i "s~/usr\/bin\/python\W~/usr/bin/python3~" {} \;
find . -type f -exec sed -i "s~/usr\/bin\/env python~/usr/bin/python2~" {} \;
sed -i "s~python~python3~" $(find . -type f | grep "gyp$")
find . -type f -exec sed -i "s~/usr\/bin\/python\W~/usr/bin/python2~" {} \;
sed -i "s~python~python2~" $(find . -type f | grep "gyp$")
sed -i "s~usr\/bin\/python2~usr\/bin\/python3~" ./deps/v8/tools/gen-inlining-tests.py
sed -i "s~usr\/bin\/python2~usr\/bin\/python3~" ./deps/v8/tools/gen-inlining-tests.py
sed -i "s~usr\/bin\/python.*$~usr\/bin\/python2~" ./deps/v8/tools/mb/mb_unittest.py
sed -i "s~usr\/bin\/python.*$~usr\/bin\/python3~" ./deps/v8/tools/mb/mb_unittest.py
find . -type f -exec sed -i "s~python -c~python2 -c~" {} \;
find . -type f -exec sed -i "s~python -c~python3 -c~" {} \;
sed -i "s~which('python')~which('python2')~" configure
%build
%build
# This package has static probes which do not work with LTO
# Disable LTO
%define _lto_cflags %{nil}
%ifarch s390 s390x %{arm} %ix86
# Decrease debuginfo verbosity to reduce memory consumption during final
# library linking
%global optflags %(echo %{optflags} | sed 's/-g /-g1 /')
%endif
export CC='%{__cc}'
export CXX='%{__cxx}'
# build with debugging symbols and add defines from libuv (#892601)
# build with debugging symbols and add defines from libuv (#892601)
# Node's v8 breaks with GCC 6 because of incorrect usage of methods on
# Node's v8 breaks with GCC 6 because of incorrect usage of methods on
# NULL objects. We need to pass -fno-delete-null-pointer-checks
# NULL objects. We need to pass -fno-delete-null-pointer-checks
export CFLAGS='%{optflags} -g \
export CFLAGS='%{optflags} \
-D_LARGEFILE_SOURCE \
-D_LARGEFILE_SOURCE \
-D_FILE_OFFSET_BITS=64 \
-D_FILE_OFFSET_BITS=64 \
-DZLIB_CONST \
-DZLIB_CONST \
-fno-delete-null-pointer-checks'
-fno-delete-null-pointer-checks'
export CXXFLAGS='%{optflags} -g \
export CXXFLAGS='%{optflags} \
-D_LARGEFILE_SOURCE \
-D_LARGEFILE_SOURCE \
-D_FILE_OFFSET_BITS=64 \
-D_FILE_OFFSET_BITS=64 \
-DZLIB_CONST \
-DZLIB_CONST \
@ -313,31 +404,77 @@ export CXXFLAGS='%{optflags} -g \
export CFLAGS="$(echo ${CFLAGS} | tr '\n\\' ' ')"
export CFLAGS="$(echo ${CFLAGS} | tr '\n\\' ' ')"
export CXXFLAGS="$(echo ${CXXFLAGS} | tr '\n\\' ' ')"
export CXXFLAGS="$(echo ${CXXFLAGS} | tr '\n\\' ' ')"
export LDFLAGS="%{__global_ldflags}"
# # # export LDFLAGS="%{build_ldflags}"
#%if ! 0%%{?bootstrap}
source /opt/rh/devtoolset-7/enable
%if %{with bootstrap}
#source /opt/rh/llvm-toolset-7/enable
./configure --prefix=%{_prefix} \
#%define __cmake /opt/rh/llvm-toolset-7/root/usr/bin/cmake
--without-dtrace \
--with-intl=small-icu \
#%if %{with bootstrap}
--debug-nghttp2 \
#%{__python3} configure.py --prefix=%{_prefix} \
%else
# --shared \
./configure --prefix=%{_prefix} \
# --libdir=%{_lib} \
--shared-libuv \
# --shared-openssl \
--shared-http-parser \
# --shared-zlib \
--shared-nghttp2 \
# --shared-brotli \
# --without-dtrace \
# --with-intl=small-icu \
# --debug-nghttp2 \
# --openssl-use-def-ca-store
#%else
##%{__python3} configure.py --prefix=%{_prefix} \
## --shared \
## --libdir=%{_lib} \
## --shared-openssl \
## --shared-zlib \
## --shared-brotli \
## --shared-libuv \
## --shared-nghttp2 \
## --with-dtrace \
## --with-intl=small-icu \
## --with-icu-default-data-dir=%{icudatadir} \
## --debug-nghttp2 \
## --openssl-use-def-ca-store
%{__python3} configure.py --prefix=%{_prefix} \
--shared \
--libdir=%{_lib} \
--with-dtrace \
--with-dtrace \
--with-intl=%{icu_flag} \
--with-intl=small-icu \
--debug-nghttp2 \
--debug-nghttp2 \
%endif
--enable-lto
#%endif
%if %{?with_debug} == 1
# Setting BUILDTYPE=Debug builds both release and debug binaries
make BUILDTYPE=Debug %{?_smp_mflags}
%else
make BUILDTYPE=Release %{?_smp_mflags}
make BUILDTYPE=Release %{?_smp_mflags}
# Extract the ICU data and convert it to the appropriate endianness
pushd deps/
tar xfz %SOURCE3
pushd icu/source
mkdir -p converted
%if 0%{?little_endian}
# The little endian data file is included in the ICU sources
install -Dpm0644 data/in/icudt%{icu_major}l.dat converted/
%else
# For the time being, we need to build ICU and use the included `icupkg` tool
# to convert the little endian data file into a big-endian one.
# At some point in the future, ICU releases will start including both data
# files and we should switch to those.
mkdir -p data/out/tmp
%configure
%make_build
icu_root=$(pwd)
LD_LIBRARY_PATH=./lib ./bin/icupkg -tb data/in/icudt%{icu_major}l.dat \
converted/icudt%{icu_major}b.dat
%endif
%endif
popd # icu/source
popd # deps
%install
%install
rm -rf %{buildroot}
rm -rf %{buildroot}
@ -346,11 +483,20 @@ rm -rf %{buildroot}
# Set the binary permissions properly
# Set the binary permissions properly
chmod 0755 %{buildroot}/%{_bindir}/node
chmod 0755 %{buildroot}/%{_bindir}/node
chrpath --delete %{buildroot}%{_bindir}/node
%if %{?with_debug} == 1
# Install library symlink
# Install the debug binary and set its permissions
ln -s libnode.so.%{nodejs_soversion} %{buildroot}%{_libdir}/libnode.so
install -Dpm0755 out/Debug/node %{buildroot}/%{_bindir}/node_g
%endif
# Install v8 compatibility symlinks
for header in %{buildroot}%{_includedir}/node/libplatform %{buildroot}%{_includedir}/node/v8*.h; do
header=$(basename ${header})
ln -s ./node/${header} %{buildroot}%{_includedir}/${header}
done
for soname in libv8 libv8_libbase libv8_libplatform; do
ln -s libnode.so.%{nodejs_soversion} %{buildroot}%{_libdir}/${soname}.so
ln -s libnode.so.%{nodejs_soversion} %{buildroot}%{_libdir}/${soname}.so.%{v8_major}
done
# own the sitelib directory
# own the sitelib directory
mkdir -p %{buildroot}%{_prefix}/lib/node_modules
mkdir -p %{buildroot}%{_prefix}/lib/node_modules
@ -365,12 +511,12 @@ echo 'nodejs(v8-abi%{v8_major}) >= %v8_abi'
EOF
EOF
chmod 0755 %{buildroot}%{_rpmconfigdir}/nodejs_native.req
chmod 0755 %{buildroot}%{_rpmconfigdir}/nodejs_native.req
#install documentation
# install documentation
mkdir -p %{buildroot}%{_pkgdocdir}/html
mkdir -p %{buildroot}%{_pkgdocdir}/html
cp -pr doc/* %{buildroot}%{_pkgdocdir}/html
cp -pr doc/* %{buildroot}%{_pkgdocdir}/html
rm -f %{buildroot}%{_pkgdocdir}/html/nodejs.1
rm -f %{buildroot}%{_pkgdocdir}/html/nodejs.1
#node-gyp needs common.gypi too
# node-gyp needs common.gypi too
mkdir -p %{buildroot}%{_datadir}/node
mkdir -p %{buildroot}%{_datadir}/node
cp -p common.gypi %{buildroot}%{_datadir}/node
cp -p common.gypi %{buildroot}%{_datadir}/node
@ -385,14 +531,11 @@ cp -pr deps/npm/man/* %{buildroot}%{_mandir}/
rm -rf %{buildroot}%{_prefix}/lib/node_modules/npm/man
rm -rf %{buildroot}%{_prefix}/lib/node_modules/npm/man
ln -sf %{_mandir} %{buildroot}%{_prefix}/lib/node_modules/npm/man
ln -sf %{_mandir} %{buildroot}%{_prefix}/lib/node_modules/npm/man
# Install Markdown and HTML documentation to %{_pkgdocdir}
# Install Gatsby HTML documentation to %{_pkgdocdir}
cp -pr deps/npm/html deps/npm/doc %{buildroot}%{_pkgdocdir}/npm/
cp -pr deps/npm/docs %{buildroot}%{_pkgdocdir}/npm/
rm -rf %{buildroot}%{_prefix}/lib/node_modules/npm/html \
rm -rf %{buildroot}%{_prefix}/lib/node_modules/npm/docs
%{buildroot}%{_prefix}/lib/node_modules/npm/doc
ln -sf %{_pkgdocdir} %{buildroot}%{_prefix}/lib/node_modules/npm/html
ln -sf %{_pkgdocdir}/npm/html %{buildroot}%{_prefix}/lib/node_modules/npm/doc
ln -sf %{_pkgdocdir}/npm %{buildroot}%{_prefix}/lib/node_modules/npm/docs
# Node tries to install some python files into a documentation directory
# Node tries to install some python files into a documentation directory
# (and not the proper one). Remove them for now until we figure out what to
# (and not the proper one). Remove them for now until we figure out what to
@ -412,35 +555,53 @@ find %{buildroot}%{_prefix}/lib/node_modules/npm \
chmod 0755 %{buildroot}%{_prefix}/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin/node-gyp
chmod 0755 %{buildroot}%{_prefix}/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin/node-gyp
chmod 0755 %{buildroot}%{_prefix}/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js
chmod 0755 %{buildroot}%{_prefix}/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js
# Drop the NPM default configuration in place
mkdir -p %{buildroot}%{_sysconfdir}
cp %{SOURCE1} %{buildroot}%{_sysconfdir}/npmrc
# NPM upstream expects it to be in /usr/etc/npmrc, so we'll put a symlink here
# This is done in the interests of keeping /usr read-only.
mkdir -p %{buildroot}%{_prefix}/etc
ln -s %{_sysconfdir}/npmrc %{buildroot}%{_prefix}/etc/npmrc
# Install the full-icu data files
#install -Dpm0644 -t %{buildroot}%{icudatadir} deps/icu/source/converted/*
%check
%check
# Fail the build if the versions don't match
# Fail the build if the versions don't match
%{buildroot}/%{_bindir}/node -e "require('assert').equal(process.versions.node, '%{nodejs_version}')"
LD_LIBRARY_PATH=%{buildroot}%{_libdir} %{buildroot}/%{_bindir}/node -e "require('assert').equal(process.versions.node, '%{nodejs_version}')"
%{buildroot}/%{_bindir}/node -e "require('assert').equal(process.versions.v8.replace(/-node\.\d+$/, ''), '%{v8_version}')"
LD_LIBRARY_PATH=%{buildroot}%{_libdir} %{buildroot}/%{_bindir}/node -e "require('assert').equal(process.versions.v8.replace(/-node\.\d+$/, ''), '%{v8_version}')"
%{buildroot}/%{_bindir}/node -e "require('assert').equal(process.versions.ares.replace(/-DEV$/, ''), '%{c_ares_version}')"
LD_LIBRARY_PATH=%{buildroot}%{_libdir} %{buildroot}/%{_bindir}/node -e "require('assert').equal(process.versions.ares.replace(/-DEV$/, ''), '%{c_ares_version}')"
# Ensure we have punycode and that the version matches
# Ensure we have punycode and that the version matches
%{buildroot}/%{_bindir}/node -e "require(\"assert\").equal(require(\"punycode\").version, '%{punycode_version}')"
LD_LIBRARY_PATH=%{buildroot}%{_libdir} %{buildroot}/%{_bindir}/node -e "require(\"assert\").equal(require(\"punycode\").version, '%{punycode_version}')"
# Ensure we have npm and that the version matches
# Ensure we have npm and that the version matches
NODE_PATH=%{buildroot}%{_prefix}/lib/node_modules:%{buildroot}%{_prefix}/lib/node_modules/npm/node_modules %{buildroot}/%{_bindir}/node -e "require(\"assert\").equal(require(\"npm\").version, '%{npm_version}')"
NODE_PATH=%{buildroot}%{_prefix}/lib/node_modules:%{buildroot}%{_prefix}/lib/node_modules/npm/node_modules LD_LIBRARY_PATH=%{buildroot}%{_libdir} %{buildroot}/%{_bindir}/node -e "require(\"assert\").equal(require(\"npm\").version, '%{npm_version}')"
# Make sure i18n support is working
#NODE_PATH=%{buildroot}%{_prefix}/lib/node_modules:%{buildroot}%{_prefix}/lib/node_modules/npm/node_modules LD_LIBRARY_PATH=%{buildroot}%{_libdir} %{buildroot}/%{_bindir}/node --icu-data-dir=%{buildroot}%{icudatadir} %{SOURCE2}
%pretrans -n npm -p <lua>
%pretrans -n npm -p <lua>
-- Remove all of the symlinks from the bundled npm node_modules directory
-- Replace the npm man directory with a symlink
-- This scriptlet can be removed in Fedora 31
-- Drop this scriptlet when F31 is EOL
base_path = "%{_prefix}/lib/node_modules/npm/node_modules/"
path = "%{_prefix}/lib/node_modules/npm/man"
d_st = posix.stat(base_path)
st = posix.stat(path)
if d_st then
if st and st.type == "directory" then
for f in posix.files(base_path) do
status = os.rename(path, path .. ".rpmmoved")
path = base_path..f
if not status then
st = posix.stat(path)
suffix = 0
if st and st.type == "link" then
while not status do
os.remove(path)
suffix = suffix + 1
status = os.rename(path .. ".rpmmoved", path .. ".rpmmoved." .. suffix)
end
end
os.rename(path, path .. ".rpmmoved")
end
end
end
end
%files
%files
%{_bindir}/node
%{_bindir}/node
%dir %{_prefix}/lib/node_modules
%dir %{_prefix}/lib/node_modules
@ -449,7 +610,6 @@ end
%dir %{_datadir}/systemtap/tapset
%dir %{_datadir}/systemtap/tapset
%{_datadir}/systemtap/tapset/node.stp
%{_datadir}/systemtap/tapset/node.stp
#%if ! 0%%{?bootstrap}
%if %{with bootstrap}
%if %{with bootstrap}
# no dtrace
# no dtrace
%else
%else
@ -459,49 +619,260 @@ end
%{_rpmconfigdir}/fileattrs/nodejs_native.attr
%{_rpmconfigdir}/fileattrs/nodejs_native.attr
%{_rpmconfigdir}/nodejs_native.req
%{_rpmconfigdir}/nodejs_native.req
%license LICENSE
%doc AUTHORS CHANGELOG.md onboarding.md GOVERNANCE.md README.md
%doc AUTHORS CHANGELOG.md COLLABORATOR_GUIDE.md GOVERNANCE.md README.md
%doc %{_mandir}/man1/node.1*
%doc %{_mandir}/man1/node.1*
%files devel
%files devel
%if %{?with_debug} == 1
%{_bindir}/node_g
%endif
%{_includedir}/node
%{_includedir}/node
%{_libdir}/libnode.so
%{_datadir}/node/common.gypi
%{_datadir}/node/common.gypi
%{_pkgdocdir}/gdbinit
%{_pkgdocdir}/gdbinit
%files full-i18n
#%dir %{icudatadir}
#%{icudatadir}/icudt%{icu_major}*.dat
%files libs
%license LICENSE
%{_libdir}/libnode.so.%{nodejs_soversion}
%{_libdir}/libv8.so.%{v8_major}
%{_libdir}/libv8_libbase.so.%{v8_major}
%{_libdir}/libv8_libplatform.so.%{v8_major}
#%dir %{nodejs_datadir}/
%files -n v8-devel
%{_includedir}/libplatform
%{_includedir}/v8*.h
%{_libdir}/libv8.so
%{_libdir}/libv8_libbase.so
%{_libdir}/libv8_libplatform.so
%files -n npm
%files -n npm
%{_bindir}/npm
%{_bindir}/npm
%{_bindir}/npx
%{_bindir}/npx
%{_prefix}/lib/node_modules/npm
%{_prefix}/lib/node_modules/npm
%ghost %{_sysconfdir}/npmrc
%config(noreplace) %{_sysconfdir}/npmrc
%{_prefix}/etc/npmrc
%ghost %{_sysconfdir}/npmignore
%ghost %{_sysconfdir}/npmignore
%doc %{_mandir}/man*/npm*
%doc %{_mandir}/man1/npm*.1*
%doc %{_mandir}/man*/npx*
%doc %{_mandir}/man1/npx.1*
%doc %{_mandir}/man5/package.json.5*
%doc %{_mandir}/man5/folders.5*
%doc %{_mandir}/man5/package-lock.json.5*
%doc %{_mandir}/man5/install.5*
%doc %{_mandir}/man7/removing-npm.7*
%doc %{_mandir}/man5/npmrc.5*
%doc %{_mandir}/man5/package-json.5*
%doc %{_mandir}/man5/package-lock-json.5*
%doc %{_mandir}/man5/package-locks.5*
%doc %{_mandir}/man5/shrinkwrap-json.5*
%doc %{_mandir}/man7/config.7*
%doc %{_mandir}/man7/developers.7*
%doc %{_mandir}/man7/disputes.7*
%doc %{_mandir}/man7/orgs.7*
%doc %{_mandir}/man7/registry.7*
%doc %{_mandir}/man7/removal.7*
%doc %{_mandir}/man7/scope.7*
%doc %{_mandir}/man7/scripts.7*
%doc %{_mandir}/man7/semver.7*
%doc %{_mandir}/man7/semver.7*
%files docs
%files docs
%dir %{_pkgdocdir}
%dir %{_pkgdocdir}
%{_pkgdocdir}/html
%{_pkgdocdir}/html
%{_pkgdocdir}/npm/html
%{_pkgdocdir}/npm/docs
%{_pkgdocdir}/npm/doc
%changelog
%changelog
* Wed Jan 02 2019 Stephen Gallagher <sgallagh@redhat.com> - 1:10.15.0-1
* Mon Oct 19 2020 Stephen Gallagher <sgallagh@redhat.com> - 1:12.19.0-1
- Update to 10.15.0
- Update to 12.19.0
- https://nodejs.org/en/blog/release/v10.15.0/
* Wed Sep 16 2020 Stephen Gallagher <sgallagh@redhat.com> - 1:12.18.4-1
* Thu Nov 29 2018 Stephen Gallagher <sgallagh@redhat.com> - 1:10.14.1-1
- Update to 12.18.4
- Update to 10.14.1
- https://nodejs.org/en/blog/release/v10.14.0/
* Mon Aug 03 2020 Stephen Gallagher <sgallagh@redhat.com> - 1:12.18.3-1
- https://nodejs.org/en/blog/release/v10.14.1/
- Update to 12.18.3
* Tue Jul 07 2020 Stephen Gallagher <sgallagh@redhat.com> - 1:12.18.2-1
- Update to 12.18.2
* Tue Jul 07 2020 Stephen Gallagher <sgallagh@redhat.com> - 1:14.4.0-2
- Update for new packaging guidelines
- Disable LTO
* Thu Jun 04 2020 Zuzana Svetlikova <zsvetlik@redhat.com> - 1:12.18.0-1
- Security update to 12.18.0
* Wed Apr 29 2020 Stephen Gallagher <sgallagh@redhat.com> - 1:12.16.3-1
- Update to 12.16.3
* Wed Apr 15 2020 Zuzana Svetlikova <zsvetlik@redhat.com> - 1:12.16.2-1
- Update to 12.16.2
- Add bundled uvwasi and histogram_c provides
- Add shared brotli dependency
* Tue Mar 17 2020 Tom Stellard <tstellar@redhat.com> - 1:12.16.1-4
- Replace hard-coded gcc and g++ with __cc and __cxx macros
* Mon Mar 16 2020 Stephen Gallagher <sgallagh@redhat.com> - 1:12.16.1-3
- Set npmrc to use python3 explicitly
* Wed Feb 26 2020 Stephen Gallagher <sgallagh@redhat.com> - 1:12.16.1-2
- Build with Python 3 only
* Tue Feb 25 2020 Stephen Gallagher <sgallagh@redhat.com> - 1:12.16.1-1
- Update to 12.16.1
- Fixes six regressions introduced in 12.16.0
* Fri Feb 14 2020 Stephen Gallagher <sgallagh@redhat.com> - 1:12.16.0-1
- Update to 12.16.0
- Drop upstreamed patch
* Thu Feb 06 2020 Stephen Gallagher <sgallagh@redhat.com> - 1:12.15.0-1
- Update to 12.15.0
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1:12.14.1-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Mon Jan 13 2020 Stephen Gallagher <sgallagh@redhat.com> - 1:12.14.1-3
- Fix issue with header symlinks in v8-devel
* Tue Jan 07 2020 Stephen Gallagher <sgallagh@redhat.com> - 1:12.14.1-2
- Drop unneeded dependency on http-parser-devel
* Tue Jan 07 2020 Stephen Gallagher <sgallagh@redhat.com> - 1:12.14.1-1
- Update to 12.14.1
- https://github.com/nodejs/node/blob/v12.14.1/doc/changelogs/CHANGELOG_V12.md
* Mon Jan 06 2020 Stephen Gallagher <sgallagh@redhat.com> - 1:12.14.0-2
- Update to 12.14.0
- https://github.com/nodejs/node/blob/v12.14.0/doc/changelogs/CHANGELOG_V12.md
- Add new subpackage nodejs-full-i18n to enable optional non-English locale
support
- Update documentation packaging for NPM
* Mon Dec 02 2019 Stephen Gallagher <sgallagh@redhat.com> - 1:12.13.1-1
- Update to 12.13.1
- https://github.com/nodejs/node/blob/v12.13.1/doc/changelogs/CHANGELOG_V12.md
* Tue Oct 29 2019 Stephen Gallagher <sgallagh@redhat.com> - 1:12.13.0-6
- Add proper i18n support
* Tue Oct 29 2019 Stephen Gallagher <sgallagh@redhat.com> - 1:12.13.0-5
- Fix issue with NPM docs being replaced with a symlink
* Mon Oct 28 2019 Stephen Gallagher <sgallagh@redhat.com> - 1:12.13.0-2
- Simplify npmrc default configuration
* Mon Oct 28 2019 Stephen Gallagher <sgallagh@redhat.com> - 1:12.13.0-1
- Update to 12.13.0 (LTS)
- https://github.com/nodejs/node/blob/v12.13.0/doc/changelogs/CHANGELOG_V12.md
- NPM no longer clobbers RPM-installed Node.js modules
- Drop no-longer needed patch to suppress `npm update -g npm` message
* Wed Sep 04 2019 Stephen Gallagher <sgallagh@redhat.com> - 1:12.10.0-1
- Update to 12.10.0
- https://github.com/nodejs/node/blob/v12.10.0/doc/changelogs/CHANGELOG_V12.md#12.10.0
* Wed Aug 21 2019 Stephen Gallagher <sgallagh@redhat.com> - 1:12.9.0-1
- Update to 12.9.0
- https://github.com/nodejs/node/blob/v12.9.0/doc/changelogs/CHANGELOG_V12.md#12.9.0
* Thu Aug 15 2019 Stephen Gallagher <sgallagh@redhat.com> - 1:12.8.2-1
- Update to 12.8.1
- Resolves: CVE-2019-9511 "Data Dribble"
- Resolves: CVE-2019-9512 "Ping Flood"
- Resolves: CVE-2019-9513 "Resource Loop"
- Resolves: CVE-2019-9514 "Reset Flood"
- Resolves: CVE-2019-9515 "Settings Flood"
- Resolves: CVE-2019-9516 "0-Length Headers Leak"
- Resolves: CVE-2019-9517 "Internal Data Buffering"
- Resolves: CVE-2019-9518 "Empty Frames Flood"
- https://github.com/nodejs/node/blob/v12.8.1/doc/changelogs/CHANGELOG_V12.md#12.8.1
* Mon Aug 05 2019 Stephen Gallagher <sgallagh@redhat.com> - 1:12.7.0-3
- Fix epoch dependencies
- Carry data files for ICU
* Fri Aug 02 2019 Stephen Gallagher <sgallagh@redhat.com> - 1:12.7.0-2
- Change v8-devel release field to avoid duplicated package names
* Thu Aug 01 2019 Stephen Gallagher <sgallagh@redhat.com> - 1:12.7.0-1
- Update to 12.7.0
- https://nodejs.org/en/blog/release/v12.7.0/
* Tue Jul 30 2019 Tom Hughes <tom@compton.nu> - 1:12.6.0-2
- Bump release to fix dependencies
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1:12.6.0-1.1
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Thu Jun 27 2019 Stephen Gallagher <sgallagh@redhat.com> - 1:12.6.0-1
- Update to 12.6.0
- https://nodejs.org/en/blog/release/v12.6.0/
- https://nodejs.org/en/blog/release/v12.5.0/
* Tue Jun 04 2019 Stephen Gallagher <sgallagh@redhat.com> - 1:12.4.0-1
- Update to 12.4.0
- https://nodejs.org/en/blog/release/v12.4.0/
* Fri May 24 2019 Stephen Gallagher <sgallagh@redhat.com> - 1:12.3.1-1
- Update to 12.3.1
- https://nodejs.org/en/blog/release/v12.3.1/
- https://nodejs.org/en/blog/release/v12.3.0/
* Wed May 15 2019 Stephen Gallagher <sgallagh@redhat.com> - 1:12.2.0-1
- Update to 12.2.0
- https://nodejs.org/en/blog/release/v12.2.0/
* Tue Apr 30 2019 Stephen Gallagher <sgallagh@redhat.com> - 1:12.1.0-1
- Update to 12.1.0
- https://nodejs.org/en/blog/release/v12.1.0/
* Wed Apr 24 2019 Stephen Gallagher <sgallagh@redhat.com> - 1:12.0.0-3
- Fix upgrade bug for v8-devel (BZ #1702609)
* Tue Apr 23 2019 Stephen Gallagher <sgallagh@redhat.com> - 1:12.0.0-2
- Node.js 12.x requires OpenSSL 1.1.1+
* Tue Apr 23 2019 Stephen Gallagher <sgallagh@redhat.com> - 1:12.0.0-1
- Release 12.0.0
- https://nodejs.org/en/blog/release/v12.0.0/
* Thu Apr 11 2019 Stephen Gallagher <sgallagh@redhat.com> - 1:11.13.0-1
- Update to 11.13.0
- https://nodejs.org/en/blog/release/v11.13.0/
- https://nodejs.org/en/blog/release/v11.12.0/
- https://nodejs.org/en/blog/release/v11.11.0/
* Fri Mar 01 2019 Stephen Gallagher <sgallagh@redhat.com> - 1:11.10.1-1
- Update to 11.10.1
- https://nodejs.org/en/blog/release/v11.10.1/
- https://nodejs.org/en/blog/release/v11.10.0/
- https://nodejs.org/en/blog/release/v11.9.0/
- https://nodejs.org/en/blog/release/v11.8.0/
* Fri Jan 18 2019 Stephen Gallagher <sgallagh@redhat.com> - 1:11.7.0-1
- Update to 11.7.0
- https://nodejs.org/en/blog/release/v11.7.0/
- https://nodejs.org/en/blog/release/v11.6.0/
- https://nodejs.org/en/blog/release/v11.5.0/
- https://nodejs.org/en/blog/release/v11.4.0/
* Thu Nov 29 2018 Stephen Gallagher <sgallagh@redhat.com> - 1:11.3.0-1
- Update to 11.3.0
- https://nodejs.org/en/blog/release/v11.2.0/
- https://nodejs.org/en/blog/release/v11.3.0/
* Fri Nov 02 2018 Stephen Gallagher <sgallagh@redhat.com> - 1:11.1.0-1
- Update to 11.1.0
- https://nodejs.org/en/blog/release/v11.1.0/
* Thu Nov 01 2018 Stephen Gallagher <sgallagh@redhat.com> - 1:11.0.0-1
- Update to 11.0.0
- https://nodejs.org/en/blog/release/v11.0.0/
* Thu Nov 01 2018 Stephen Gallagher <sgallagh@redhat.com> - 1:10.13.0-1
* Thu Nov 01 2018 Stephen Gallagher <sgallagh@redhat.com> - 1:10.13.0-1
- Update to 10.13.0
- Update to 10.13.0