Browse Source

nodejs package update v12

Signed-off-by: webbuilder_pel7ppc64lebuilder0 <webbuilder@powerel.org>
master
webbuilder_pel7ppc64lebuilder0 3 years ago
parent
commit
64cb515eda
  1. 37
      SOURCES/0001-Disable-running-gyp-on-shared-deps.patch
  2. 199
      SOURCES/nodejs-tarball.sh
  3. 1
      SOURCES/npmrc
  4. 657
      SPECS/nodejs.spec

37
SOURCES/0001-Disable-running-gyp-on-shared-deps.patch

@ -1,34 +1,25 @@
From def28d29f907050d8bcd94ed2e341d128ffa3fa6 Mon Sep 17 00:00:00 2001 From 0da4decd64a9cbfcf75b2697c722cd6fc82a164d Mon Sep 17 00:00:00 2001
From: Zuzana Svetlikova <zsvetlik@redhat.com> From: Zuzana Svetlikova <zsvetlik@redhat.com>
Date: Thu, 27 Apr 2017 14:25:42 +0200 Date: Fri, 17 Apr 2020 12:59:44 +0200
Subject: [PATCH 1/2] Disable running gyp on shared deps Subject: [PATCH] 0001


--- ---
Makefile | 7 +++---- Makefile | 2 +-
1 file changed, 3 insertions(+), 4 deletions(-) 1 file changed, 1 insertion(+), 1 deletion(-)


diff --git a/Makefile b/Makefile diff --git a/Makefile b/Makefile
index 5fc2bb0c58f5532044a14e9f9595b2316f562726..f1c1545caa220d7442d6d92c49412ec7554de123 100644 index 88166da2a8..f0637b6c78 100644
--- a/Makefile --- a/Makefile
+++ b/Makefile +++ b/Makefile
@@ -121,14 +121,13 @@ with-code-cache: @@ -141,7 +141,7 @@ test-code-cache: with-code-cache
echo "'test-code-cache' target is a noop"
.PHONY: test-code-cache out/Makefile: config.gypi common.gypi node.gyp \
test-code-cache: with-code-cache - deps/uv/uv.gyp deps/http_parser/http_parser.gyp deps/zlib/zlib.gyp \
$(PYTHON) tools/test.py $(PARALLEL_ARGS) --mode=$(BUILDTYPE_LOWER) code-cache + deps/http_parser/http_parser.gyp \
tools/v8_gypfiles/toolchain.gypi tools/v8_gypfiles/features.gypi \
-out/Makefile: common.gypi deps/uv/uv.gyp deps/http_parser/http_parser.gyp \ tools/v8_gypfiles/inspector.gypi tools/v8_gypfiles/v8.gyp
- deps/zlib/zlib.gyp deps/v8/gypfiles/toolchain.gypi \
- deps/v8/gypfiles/features.gypi deps/v8/gypfiles/v8.gyp node.gyp \
- config.gypi
+out/Makefile: common.gypi deps/http_parser/http_parser.gyp \
+ deps/v8/gypfiles/toolchain.gypi deps/v8/gypfiles/features.gypi \
+ deps/v8/gypfiles/v8.gyp node.gyp config.gypi
$(PYTHON) tools/gyp_node.py -f make $(PYTHON) tools/gyp_node.py -f make
config.gypi: configure configure.py
@if [ -x config.status ]; then \
./config.status; \
-- --
2.19.0 2.25.2



199
SOURCES/nodejs-tarball.sh

@ -1,10 +1,201 @@
#!/bin/sh #!/bin/sh
# Uses Argbash to generate command argument parsing. To update
# arguments, make sure to call
# `argbash nodejs-tarball.sh -o nodejs-tarball.sh`


version=$(rpm -q --specfile --qf='%{version}\n' nodejs.spec | head -n1) # ARG_POSITIONAL_SINGLE([version],[Node.js release version],[""])
rm -f node-v${version}.tar.gz # ARG_DEFAULTS_POS([])
wget http://nodejs.org/dist/v${version}/node-v${version}.tar.gz # ARG_HELP([Tool to aid in Node.js packaging of new releases])
# ARGBASH_GO()
# needed because of Argbash --> m4_ignore([
### START OF CODE GENERATED BY Argbash v2.8.1 one line above ###
# Argbash is a bash code generator used to get arguments parsing right.
# Argbash is FREE SOFTWARE, see https://argbash.io for more info


die()
{
local _ret=$2
test -n "$_ret" || _ret=1
test "$_PRINT_HELP" = yes && print_help >&2
echo "$1" >&2
exit ${_ret}
}


begins_with_short_option()
{
local first_option all_short_options='h'
first_option="${1:0:1}"
test "$all_short_options" = "${all_short_options/$first_option/}" && return 1 || return 0
}

# THE DEFAULTS INITIALIZATION - POSITIONALS
_positionals=()
_arg_version=""
# THE DEFAULTS INITIALIZATION - OPTIONALS


print_help()
{
printf '%s\n' "Tool to aid in Node.js packaging of new releases"
printf 'Usage: %s [-h|--help] [<version>]\n' "$0"
printf '\t%s\n' "<version>: Node.js release version (default: '""')"
printf '\t%s\n' "-h, --help: Prints help"
}


parse_commandline()
{
_positionals_count=0
while test $# -gt 0
do
_key="$1"
case "$_key" in
-h|--help)
print_help
exit 0
;;
-h*)
print_help
exit 0
;;
*)
_last_positional="$1"
_positionals+=("$_last_positional")
_positionals_count=$((_positionals_count + 1))
;;
esac
shift
done
}


handle_passed_args_count()
{
test "${_positionals_count}" -le 1 || _PRINT_HELP=yes die "FATAL ERROR: There were spurious positional arguments --- we expect between 0 and 1, but got ${_positionals_count} (the last one was: '${_last_positional}')." 1
}


assign_positional_args()
{
local _positional_name _shift_for=$1
_positional_names="_arg_version "

shift "$_shift_for"
for _positional_name in ${_positional_names}
do
test $# -gt 0 || break
eval "$_positional_name=\${1}" || die "Error during argument parsing, possibly an Argbash bug." 1
shift
done
}

parse_commandline "$@"
handle_passed_args_count
assign_positional_args 1 "${_positionals[@]}"

# OTHER STUFF GENERATED BY Argbash

### END OF CODE GENERATED BY Argbash (sortof) ### ])
# [ <-- needed because of Argbash


set -e

echo $_arg_version

if [ x$_arg_version != x ]; then
version=$_arg_version
else
version=$(rpm -q --specfile --qf='%{version}\n' nodejs.spec | head -n1)
fi

rm -f node-v${version}.tar.gz node-v${version}-stripped.tar.gz
wget http://nodejs.org/dist/v${version}/node-v${version}.tar.gz \
http://nodejs.org/dist/v${version}/SHASUMS256.txt
sha256sum -c SHASUMS256.txt --ignore-missing
tar -zxf node-v${version}.tar.gz tar -zxf node-v${version}.tar.gz
rm -rf node-v${version}/deps/openssl rm -rf node-v${version}/deps/openssl
tar -zcf node-v${version}-stripped.tar.gz node-v${version} tar -zcf node-v${version}-stripped.tar.gz node-v${version}


fedpkg new-sources node-v${version}-stripped.tar.gz # Download the matching version of ICU
rm -f icu4c*-src.tgz icu.md5
ICUMD5=$(cat node-v${version}/tools/icu/current_ver.dep |jq -r '.[0].md5')
wget $(cat node-v${version}/tools/icu/current_ver.dep |jq -r '.[0].url')
ICUTARBALL=$(ls -1 icu4c*-src.tgz)
echo "$ICUMD5 $ICUTARBALL" > icu.md5
md5sum -c icu.md5
rm -f icu.md5 SHASUMS256.txt

fedpkg new-sources node-v${version}-stripped.tar.gz icu4c*-src.tgz

rm -f node-v${version}.tar.gz

set +e

# Determine the bundled versions of the various packages
echo "Bundled software versions"
echo "-------------------------"
echo
echo "libnode shared object version"
echo "========================="
grep "define NODE_MODULE_VERSION" node-v${version}/src/node_version.h
echo
echo "V8"
echo "========================="
grep "define V8_MAJOR_VERSION" node-v${version}/deps/v8/include/v8-version.h
grep "define V8_MINOR_VERSION" node-v${version}/deps/v8/include/v8-version.h
grep "define V8_BUILD_NUMBER" node-v${version}/deps/v8/include/v8-version.h
grep "define V8_PATCH_LEVEL" node-v${version}/deps/v8/include/v8-version.h
echo
echo "c-ares"
echo "========================="
grep "define ARES_VERSION_MAJOR" node-v${version}/deps/cares/include/ares_version.h
grep "define ARES_VERSION_MINOR" node-v${version}/deps/cares/include/ares_version.h
grep "define ARES_VERSION_PATCH" node-v${version}/deps/cares/include/ares_version.h
echo
echo "http-parser"
echo "========================="
grep "define HTTP_PARSER_VERSION_MAJOR" node-v${version}/deps/http_parser/http_parser.h
grep "define HTTP_PARSER_VERSION_MINOR" node-v${version}/deps/http_parser/http_parser.h
grep "define HTTP_PARSER_VERSION_PATCH" node-v${version}/deps/http_parser/http_parser.h
echo
echo "llhttp"
echo "========================="
grep "define LLHTTP_VERSION_MAJOR" node-v${version}/deps/llhttp/include/llhttp.h
grep "define LLHTTP_VERSION_MINOR" node-v${version}/deps/llhttp/include/llhttp.h
grep "define LLHTTP_VERSION_PATCH" node-v${version}/deps/llhttp/include/llhttp.h
echo
echo "libuv"
echo "========================="
grep "define UV_VERSION_MAJOR" node-v${version}/deps/uv/include/uv/version.h
grep "define UV_VERSION_MINOR" node-v${version}/deps/uv/include/uv/version.h
grep "define UV_VERSION_PATCH" node-v${version}/deps/uv/include/uv/version.h
echo
echo "nghttp2"
echo "========================="
grep "define NGHTTP2_VERSION " node-v${version}/deps/nghttp2/lib/includes/nghttp2/nghttp2ver.h
echo
echo "ICU"
echo "========================="
grep "url" node-v${version}/tools/icu/current_ver.dep
echo
echo "punycode"
echo "========================="
grep "'version'" node-v${version}/lib/punycode.js
echo
echo "uvwasi"
echo "========================="
grep "define UVWASI_VERSION_MAJOR" node-v${version}/deps/uvwasi/include/uvwasi.h
grep "define UVWASI_VERSION_MINOR" node-v${version}/deps/uvwasi/include/uvwasi.h
grep "define UVWASI_VERSION_PATCH" node-v${version}/deps/uvwasi/include/uvwasi.h
echo
echo "npm"
echo "========================="
grep "\"version\":" node-v${version}/deps/npm/package.json
echo
echo "Make sure these versions match what is in the RPM spec file"

rm -rf node-v${version}
# ] <-- needed because of Argbash

1
SOURCES/npmrc

@ -1 +1,2 @@
prefix=/usr/local prefix=/usr/local
python=/usr/bin/python3

657
SPECS/nodejs.spec

@ -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

Loading…
Cancel
Save