465a72 import nodejs-18.2.0-1.module+el8.7.0+15540+b092248e

Merged and Committed by centosrcm 2 years ago
    import nodejs-18.2.0-1.module+el8.7.0+15540+b092248e
    
        
file added
+2
.gitignore ADDED
@@ -0,0 +1,2 @@
1
+ SOURCES/icu4c-71_1-src.tgz
2
+ SOURCES/node-v18.2.0-stripped.tar.gz
file added
+2
.nodejs.metadata ADDED
@@ -0,0 +1,2 @@
1
+ 406b0c8635288b772913b6ff646451e69748878a SOURCES/icu4c-71_1-src.tgz
2
+ 4526d7fcdd06ec712ebbdfd01468be65e06b458f SOURCES/node-v18.2.0-stripped.tar.gz
SOURCES/0001-Disable-running-gyp-on-shared-deps.patch ADDED
@@ -0,0 +1,55 @@
1
+ From 142fe30256f96e28b49f55d5c72e604719aaaad8 Mon Sep 17 00:00:00 2001
2
+ From: Zuzana Svetlikova <zsvetlik@redhat.com>
3
+ Date: Fri, 17 Apr 2020 12:59:44 +0200
4
+ Subject: [PATCH] Disable running gyp on shared deps
5
+
6
+ Signed-off-by: rpm-build <rpm-build>
7
+ ---
8
+ Makefile | 2 +-
9
+ node.gyp | 17 -----------------
10
+ 2 files changed, 1 insertion(+), 18 deletions(-)
11
+
12
+ diff --git a/Makefile b/Makefile
13
+ index 4aace77..0bad864 100644
14
+ --- a/Makefile
15
+ +++ b/Makefile
16
+ @@ -147,7 +147,7 @@ with-code-cache test-code-cache:
17
+ $(warning '$@' target is a noop)
18
+
19
+ out/Makefile: config.gypi common.gypi node.gyp \
20
+ - deps/uv/uv.gyp deps/llhttp/llhttp.gyp deps/zlib/zlib.gyp \
21
+ + deps/llhttp/llhttp.gyp \
22
+ tools/v8_gypfiles/toolchain.gypi tools/v8_gypfiles/features.gypi \
23
+ tools/v8_gypfiles/inspector.gypi tools/v8_gypfiles/v8.gyp
24
+ $(PYTHON) tools/gyp_node.py -f make
25
+ diff --git a/node.gyp b/node.gyp
26
+ index 86fe9a6..bfa5093 100644
27
+ --- a/node.gyp
28
+ +++ b/node.gyp
29
+ @@ -449,23 +449,6 @@
30
+ ],
31
+ },
32
+ ],
33
+ - }, {
34
+ - 'variables': {
35
+ - 'opensslconfig_internal': '<(obj_dir)/deps/openssl/openssl.cnf',
36
+ - 'opensslconfig': './deps/openssl/openssl/apps/openssl.cnf',
37
+ - },
38
+ - 'actions': [
39
+ - {
40
+ - 'action_name': 'reset_openssl_cnf',
41
+ - 'inputs': [ '<(opensslconfig)', ],
42
+ - 'outputs': [ '<(opensslconfig_internal)', ],
43
+ - 'action': [
44
+ - 'python', 'tools/copyfile.py',
45
+ - './deps/openssl/openssl/apps/openssl.cnf',
46
+ - '<(obj_dir)/deps/openssl/openssl.cnf',
47
+ - ],
48
+ - },
49
+ - ],
50
+ }],
51
+ ],
52
+ }, # node_core_target_name
53
+ --
54
+ 2.36.1
55
+
file added
+151
SOURCES/btest402.js ADDED
@@ -0,0 +1,151 @@
1
+ // Copyright (C) 2014 IBM Corporation and Others. All Rights Reserved.
2
+ // This file is part of the Node.JS ICU enablement work
3
+ // https://github.com/joyent/node/pull/7719
4
+ // and is under the same license.
5
+ //
6
+ // This is a very, very, very basic test of es402
7
+ //
8
+ // URL: https://github.com/srl295/btest402
9
+ // Author: Steven R. Loomis <srl@icu-project.org>
10
+ //
11
+ // for a complete test, see http://test262.ecmascript.org
12
+ //
13
+ // Usage: node btest402.js
14
+
15
+ try {
16
+ console.log("You have console.log.");
17
+ } catch(e) {
18
+ // this works on d8
19
+ console = { log: print };
20
+ console.log("Now you have console.log.");
21
+ }
22
+
23
+ function runbtest() {
24
+ var summary = {};
25
+
26
+ try {
27
+ var i = Intl;
28
+ summary.haveIntl = true;
29
+ console.log("+ Congrats, you have the Intl object.");
30
+ } catch(e) {
31
+ console.log("You don't have the Intl object: " + e);
32
+ }
33
+
34
+ if(summary.haveIntl) {
35
+ var locs = [ "en", "mt", "ja","tlh"];
36
+ var d = new Date(196400000);
37
+ for ( var n=0; n<locs.length; n++ ) {
38
+ var loc = locs[n];
39
+ var lsummary = summary[loc] = {};
40
+
41
+ console.log(loc+":");
42
+ var sl=null;
43
+ try {
44
+ sl = Intl.DateTimeFormat.supportedLocalesOf([loc]);
45
+ if( sl.length > 0 ) {
46
+ lsummary.haveSlo = true;
47
+ }
48
+ } catch (e) {
49
+ console.log("SLO err: " + e);
50
+ }
51
+ var dstr = "ERR";
52
+ try {
53
+ lsummary.dstr = d.toLocaleString(loc,{month: "long",day:"numeric",weekday:"long",year:"numeric"});
54
+ console.log(" date: (supported:"+sl+") " + lsummary.dstr);
55
+ } catch (e) {
56
+ console.log(" Date Format err: " + e);
57
+ }
58
+ try {
59
+ new Intl.v8BreakIterator();
60
+ console.log(" Intl.v8BreakIterator:" +
61
+ Intl.v8BreakIterator.supportedLocalesOf(loc) + " Supported, first()==" +
62
+ new Intl.v8BreakIterator(loc).first() );
63
+ lsummary.brkOk = true;
64
+ } catch ( e) {
65
+ console.log(" Intl.v8BreakIterator error (NOT part of EcmaScript402): " + e);
66
+ }
67
+ console.log();
68
+ }
69
+ }
70
+
71
+ // print summary
72
+ console.log();
73
+ console.log("--------- Analysis ---------");
74
+ stxt = "";
75
+ if( summary.haveIntl ) {
76
+ console.log("* You have the 'Intl' object. Congratulations! You have the possibility of being EcmaScript 402 compliant.");
77
+ stxt += "Have Intl, ";
78
+
79
+ if ( !summary.en.haveSlo ) {
80
+ stxt += "Date:no EN, ";
81
+ console.log("* English isn't a supported language by the date formatter. Perhaps the data isn't installed properly?");
82
+ }
83
+ if ( !summary.tlh.haveSlo ) {
84
+ stxt += "Date:no 'tlh', ";
85
+ console.log("* Klingon isn't a supported language by the date formatter. It is without honor!");
86
+ }
87
+ // now, what is it actually saying
88
+ if( summary.en.dstr.indexOf("1970") == -1) {
89
+ stxt += "Date:bad 'en', ";
90
+ console.log("* the English date format text looks bad to me. Doesn't even have the year.");
91
+ } else {
92
+ if( summary.en.dstr.indexOf("Jan") == -1) {
93
+ stxt += "Date:bad 'en', ";
94
+ console.log("* The English date format text looks bad to me. Doesn't have the right month.");
95
+ }
96
+ }
97
+
98
+ if( summary.mt.dstr == summary.en.dstr ) {
99
+ stxt += "Date:'mt'=='en', ";
100
+ console.log("* The English and Maltese look the same to me. Probably a 'small' build.");
101
+ } else if( summary.mt.dstr.indexOf("1970") == -1) {
102
+ stxt += "Date:bad 'mt', ";
103
+ console.log("* the Maltese date format text looks bad to me. Doesn't even have the year. (This data is missing from the Chromium ICU build)");
104
+ } else {
105
+ if( summary.mt.dstr.indexOf("Jann") == -1) {
106
+ stxt += "Date:bad 'mt', ";
107
+ console.log("* The Maltese date format text looks bad to me. Doesn't have the right month. (This data is missing from the Chromium ICU build)");
108
+ }
109
+ }
110
+
111
+ if ( !summary.ja.haveSlo ) {
112
+ stxt += "Date:no 'ja', ";
113
+ console.log("* Japanese isn't a supported language by the date formatter. Could be a 'small' build.");
114
+ } else {
115
+ if( summary.ja.dstr.indexOf("1970") == -1) {
116
+ stxt += "Date:bad 'ja', ";
117
+ console.log("* the Japanese date format text looks bad to me. Doesn't even have the year.");
118
+ } else {
119
+ if( summary.ja.dstr.indexOf("æ—¥") == -1) {
120
+ stxt += "Date:bad 'ja', ";
121
+ console.log("* The Japanese date format text looks bad to me.");
122
+ }
123
+ }
124
+ }
125
+ if ( summary.en.brkOk ) {
126
+ stxt += "FYI: v8Brk:have 'en', ";
127
+ console.log("* You have Intl.v8BreakIterator support. (Note: not part of ES402.)");
128
+ }
129
+ } else {
130
+ console.log("* You don't have the 'Intl' object. You aren't EcmaScript 402 compliant.");
131
+ stxt += " NO Intl. ";
132
+ }
133
+
134
+ // 1-liner.
135
+ console.log();
136
+ console.log("----------------");
137
+ console.log( "SUMMARY:" + stxt );
138
+ }
139
+
140
+ var dorun = true;
141
+
142
+ try {
143
+ if(btest402_noautorun) {
144
+ dorun = false;
145
+ }
146
+ } catch(e) {}
147
+
148
+ if(dorun) {
149
+ console.log("Running btest..");
150
+ runbtest();
151
+ }
SOURCES/nodejs-tarball.sh ADDED
@@ -0,0 +1,203 @@
1
+ #!/bin/sh
2
+ # Uses Argbash to generate command argument parsing. To update
3
+ # arguments, make sure to call
4
+ # `argbash nodejs-tarball.sh -o nodejs-tarball.sh`
5
+
6
+ # ARG_POSITIONAL_SINGLE([version],[Node.js release version],[""])
7
+ # ARG_DEFAULTS_POS([])
8
+ # ARG_HELP([Tool to aid in Node.js packaging of new releases])
9
+ # ARGBASH_GO()
10
+ # needed because of Argbash --> m4_ignore([
11
+ ### START OF CODE GENERATED BY Argbash v2.8.1 one line above ###
12
+ # Argbash is a bash code generator used to get arguments parsing right.
13
+ # Argbash is FREE SOFTWARE, see https://argbash.io for more info
14
+
15
+
16
+ die()
17
+ {
18
+ local _ret=$2
19
+ test -n "$_ret" || _ret=1
20
+ test "$_PRINT_HELP" = yes && print_help >&2
21
+ echo "$1" >&2
22
+ exit ${_ret}
23
+ }
24
+
25
+
26
+ begins_with_short_option()
27
+ {
28
+ local first_option all_short_options='h'
29
+ first_option="${1:0:1}"
30
+ test "$all_short_options" = "${all_short_options/$first_option/}" && return 1 || return 0
31
+ }
32
+
33
+ # THE DEFAULTS INITIALIZATION - POSITIONALS
34
+ _positionals=()
35
+ _arg_version=""
36
+ # THE DEFAULTS INITIALIZATION - OPTIONALS
37
+
38
+
39
+ print_help()
40
+ {
41
+ printf '%s\n' "Tool to aid in Node.js packaging of new releases"
42
+ printf 'Usage: %s [-h|--help] [<version>]\n' "$0"
43
+ printf '\t%s\n' "<version>: Node.js release version (default: '""')"
44
+ printf '\t%s\n' "-h, --help: Prints help"
45
+ }
46
+
47
+
48
+ parse_commandline()
49
+ {
50
+ _positionals_count=0
51
+ while test $# -gt 0
52
+ do
53
+ _key="$1"
54
+ case "$_key" in
55
+ -h|--help)
56
+ print_help
57
+ exit 0
58
+ ;;
59
+ -h*)
60
+ print_help
61
+ exit 0
62
+ ;;
63
+ *)
64
+ _last_positional="$1"
65
+ _positionals+=("$_last_positional")
66
+ _positionals_count=$((_positionals_count + 1))
67
+ ;;
68
+ esac
69
+ shift
70
+ done
71
+ }
72
+
73
+
74
+ handle_passed_args_count()
75
+ {
76
+ 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
77
+ }
78
+
79
+
80
+ assign_positional_args()
81
+ {
82
+ local _positional_name _shift_for=$1
83
+ _positional_names="_arg_version "
84
+
85
+ shift "$_shift_for"
86
+ for _positional_name in ${_positional_names}
87
+ do
88
+ test $# -gt 0 || break
89
+ eval "$_positional_name=\${1}" || die "Error during argument parsing, possibly an Argbash bug." 1
90
+ shift
91
+ done
92
+ }
93
+
94
+ parse_commandline "$@"
95
+ handle_passed_args_count
96
+ assign_positional_args 1 "${_positionals[@]}"
97
+
98
+ # OTHER STUFF GENERATED BY Argbash
99
+
100
+ ### END OF CODE GENERATED BY Argbash (sortof) ### ])
101
+ # [ <-- needed because of Argbash
102
+
103
+
104
+ set -e
105
+
106
+ echo $_arg_version
107
+
108
+ if [ x$_arg_version != x ]; then
109
+ version=$_arg_version
110
+ else
111
+ version=$(rpm -q --specfile --qf='%{version}\n' nodejs.spec | head -n1)
112
+ fi
113
+
114
+ rm -f node-v${version}.tar.gz node-v${version}-stripped.tar.gz
115
+ wget http://nodejs.org/dist/v${version}/node-v${version}.tar.gz \
116
+ http://nodejs.org/dist/v${version}/SHASUMS256.txt
117
+ sha256sum -c SHASUMS256.txt --ignore-missing
118
+ tar -zxf node-v${version}.tar.gz
119
+ rm -rf node-v${version}/deps/openssl
120
+ tar -zcf node-v${version}-stripped.tar.gz node-v${version}
121
+
122
+ # Download the matching version of ICU
123
+ rm -f icu4c*-src.tgz icu.md5
124
+ ICUMD5=$(cat node-v${version}/tools/icu/current_ver.dep |jq -r '.[0].md5')
125
+ wget $(cat node-v${version}/tools/icu/current_ver.dep |jq -r '.[0].url')
126
+ ICUTARBALL=$(ls -1 icu4c*-src.tgz)
127
+ echo "$ICUMD5 $ICUTARBALL" > icu.md5
128
+ md5sum -c icu.md5
129
+ rm -f icu.md5 SHASUMS256.txt
130
+
131
+ #fedpkg new-sources node-v${version}-stripped.tar.gz icu4c*-src.tgz
132
+
133
+ rm -f node-v${version}.tar.gz
134
+
135
+ set +e
136
+
137
+ # Determine the bundled versions of the various packages
138
+ echo "Bundled software versions"
139
+ echo "-------------------------"
140
+ echo
141
+ echo "libnode shared object version"
142
+ echo "========================="
143
+ grep "define NODE_MODULE_VERSION" node-v${version}/src/node_version.h
144
+ echo
145
+ echo "V8"
146
+ echo "========================="
147
+ grep "define V8_MAJOR_VERSION" node-v${version}/deps/v8/include/v8-version.h
148
+ grep "define V8_MINOR_VERSION" node-v${version}/deps/v8/include/v8-version.h
149
+ grep "define V8_BUILD_NUMBER" node-v${version}/deps/v8/include/v8-version.h
150
+ grep "define V8_PATCH_LEVEL" node-v${version}/deps/v8/include/v8-version.h
151
+ echo
152
+ echo "c-ares"
153
+ echo "========================="
154
+ grep "define ARES_VERSION_MAJOR" node-v${version}/deps/cares/include/ares_version.h
155
+ grep "define ARES_VERSION_MINOR" node-v${version}/deps/cares/include/ares_version.h
156
+ grep "define ARES_VERSION_PATCH" node-v${version}/deps/cares/include/ares_version.h
157
+ echo
158
+ echo "llhttp"
159
+ echo "========================="
160
+ grep "define LLHTTP_VERSION_MAJOR" node-v${version}/deps/llhttp/include/llhttp.h
161
+ grep "define LLHTTP_VERSION_MINOR" node-v${version}/deps/llhttp/include/llhttp.h
162
+ grep "define LLHTTP_VERSION_PATCH" node-v${version}/deps/llhttp/include/llhttp.h
163
+ echo
164
+ echo "libuv"
165
+ echo "========================="
166
+ grep "define UV_VERSION_MAJOR" node-v${version}/deps/uv/include/uv/version.h
167
+ grep "define UV_VERSION_MINOR" node-v${version}/deps/uv/include/uv/version.h
168
+ grep "define UV_VERSION_PATCH" node-v${version}/deps/uv/include/uv/version.h
169
+ echo
170
+ echo "nghttp2"
171
+ echo "========================="
172
+ grep "define NGHTTP2_VERSION " node-v${version}/deps/nghttp2/lib/includes/nghttp2/nghttp2ver.h
173
+ echo
174
+ echo "nghttp3"
175
+ echo "========================="
176
+ grep "define NGHTTP3_VERSION " node-v${version}/deps/ngtcp2/nghttp3/lib/includes/nghttp3/version.h
177
+ echo
178
+ echo "ngtcp2"
179
+ echo "========================="
180
+ grep "define NGTCP2_VERSION " node-v${version}/deps/ngtcp2/ngtcp2/lib/includes/ngtcp2/version.h
181
+ echo
182
+ echo "ICU"
183
+ echo "========================="
184
+ grep "url" node-v${version}/tools/icu/current_ver.dep
185
+ echo
186
+ echo "punycode"
187
+ echo "========================="
188
+ grep "'version'" node-v${version}/lib/punycode.js
189
+ echo
190
+ echo "uvwasi"
191
+ echo "========================="
192
+ grep "define UVWASI_VERSION_MAJOR" node-v${version}/deps/uvwasi/include/uvwasi.h
193
+ grep "define UVWASI_VERSION_MINOR" node-v${version}/deps/uvwasi/include/uvwasi.h
194
+ grep "define UVWASI_VERSION_PATCH" node-v${version}/deps/uvwasi/include/uvwasi.h
195
+ echo
196
+ echo "npm"
197
+ echo "========================="
198
+ grep "\"version\":" node-v${version}/deps/npm/package.json
199
+ echo
200
+ echo "Make sure these versions match what is in the RPM spec file"
201
+
202
+ rm -rf node-v${version}
203
+ # ] <-- needed because of Argbash
SOURCES/nodejs_native.attr ADDED
@@ -0,0 +1,2 @@
1
+ %__nodejs_native_requires %{_rpmconfigdir}/nodejs_native.req
2
+ %__nodejs_native_path ^/usr/lib.*/node_modules/.*\\.node$
file added
+2
SOURCES/npmrc ADDED
@@ -0,0 +1,2 @@
1
+ prefix=/usr/local
2
+ python=/usr/bin/python3
file added
+1040
SPECS/nodejs.spec ADDED
@@ -0,0 +1,1040 @@
1
+ %global with_debug 0
2
+
3
+ # PowerPC, s390x and aarch64 segfault during Debug builds
4
+ # https://github.com/nodejs/node/issues/20642
5
+ %ifarch %{power64} s390x aarch64
6
+ %global with_debug 0
7
+ %endif
8
+
9
+ # The following macros control the usage of dependencies bundled from upstream.
10
+ #
11
+ # When to use what:
12
+ # - Regular (presumably non-modular) build: use neither (the default in Fedora)
13
+ # - Early bootstrapping build that is not intended to be shipped:
14
+ # use --with=bootstrap; this will bundle deps and add `~bootstrap` release suffix
15
+ # - Build with some dependencies not avalaible in necessary versions (i.e. module build):
16
+ # use --with=bundled; will bundle deps, but do not add the suffix
17
+ #
18
+ # create bootstrapping build with bundled deps and extra release suffix
19
+ %bcond_with bootstrap
20
+ # bundle dependencies that are not available as Fedora modules
21
+ %if %{with bootstrap}
22
+ %bcond_without bundled
23
+ %else
24
+ %bcond_with bundled
25
+ %endif
26
+
27
+ %bcond_without python3_fixup
28
+
29
+ # == Master Relase ==
30
+ # This is used by both the nodejs package and the npm subpackage that
31
+ # has a separate version - the name is special so that rpmdev-bumpspec
32
+ # will bump this rather than adding .1 to the end.
33
+ %global baserelease 1
34
+
35
+ %{?!_pkgdocdir:%global _pkgdocdir %{_docdir}/%{name}-%{version}}
36
+
37
+ # == Node.js Version ==
38
+ # Note: Fedora should only ship LTS versions of Node.js (currently expected
39
+ # to be major versions with even numbers). The odd-numbered versions are new
40
+ # feature releases that are only supported for nine months, which is shorter
41
+ # than a Fedora release lifecycle.
42
+ %global nodejs_epoch 1
43
+ %global nodejs_major 18
44
+ %global nodejs_minor 2
45
+ %global nodejs_patch 0
46
+ %global nodejs_abi %{nodejs_major}.%{nodejs_minor}
47
+ # nodejs_soversion - from NODE_MODULE_VERSION in src/node_version.h
48
+ %global nodejs_soversion 108
49
+ %global nodejs_version %{nodejs_major}.%{nodejs_minor}.%{nodejs_patch}
50
+ %global nodejs_release %{baserelease}
51
+
52
+ %global nodejs_datadir %{_datarootdir}/nodejs
53
+
54
+ # == Bundled Dependency Versions ==
55
+ # v8 - from deps/v8/include/v8-version.h
56
+ # Epoch is set to ensure clean upgrades from the old v8 package
57
+ %global v8_epoch 2
58
+ %global v8_major 10
59
+ %global v8_minor 1
60
+ %global v8_build 124
61
+ %global v8_patch 8
62
+ # V8 presently breaks ABI at least every x.y release while never bumping SONAME
63
+ %global v8_abi %{v8_major}.%{v8_minor}
64
+ %global v8_version %{v8_major}.%{v8_minor}.%{v8_build}.%{v8_patch}
65
+ %global v8_release %{nodejs_epoch}.%{nodejs_major}.%{nodejs_minor}.%{nodejs_patch}.%{nodejs_release}
66
+
67
+ # c-ares - from deps/cares/include/ares_version.h
68
+ # https://github.com/nodejs/node/pull/9332
69
+ %global c_ares_major 1
70
+ %global c_ares_minor 18
71
+ %global c_ares_patch 1
72
+ %global c_ares_version %{c_ares_major}.%{c_ares_minor}.%{c_ares_patch}
73
+
74
+ # llhttp - from deps/llhttp/include/llhttp.h
75
+ %global llhttp_major 6
76
+ %global llhttp_minor 0
77
+ %global llhttp_patch 6
78
+ %global llhttp_version %{llhttp_major}.%{llhttp_minor}.%{llhttp_patch}
79
+
80
+ # libuv - from deps/uv/include/uv/version.h
81
+ %global libuv_major 1
82
+ %global libuv_minor 43
83
+ %global libuv_patch 0
84
+ %global libuv_version %{libuv_major}.%{libuv_minor}.%{libuv_patch}
85
+
86
+ # nghttp2 - from deps/nghttp2/lib/includes/nghttp2/nghttp2ver.h
87
+ %global nghttp2_major 1
88
+ %global nghttp2_minor 47
89
+ %global nghttp2_patch 0
90
+ %global nghttp2_version %{nghttp2_major}.%{nghttp2_minor}.%{nghttp2_patch}
91
+
92
+ # nghttp3 - from deps/ngtcp2/nghttp3/lib/includes/nghttp3/version.h
93
+ %global nghttp3_major 0
94
+ %global nghttp3_minor 1
95
+ %global nghttp3_patch 0-DEV
96
+ %global nghttp3_version %{nghttp3_major}.%{nghttp3_minor}.%{nghttp3_patch}
97
+
98
+ # ngtcp2 from deps/ngtcp2/ngtcp2/lib/includes/ngtcp2/version.h
99
+ %global ngtcp2_major 0
100
+ %global ngtcp2_minor 1
101
+ %global ngtcp2_patch 0-DEV
102
+ %global ngtcp2_version %{ngtcp2_major}.%{ngtcp2_minor}.%{ngtcp2_patch}
103
+
104
+ # ICU - from tools/icu/current_ver.dep
105
+ %global icu_major 71
106
+ %global icu_minor 1
107
+ %global icu_version %{icu_major}.%{icu_minor}
108
+
109
+ %global icudatadir %{nodejs_datadir}/icudata
110
+ %{!?little_endian: %global little_endian %(%{__python3} -c "import sys;print (0 if sys.byteorder=='big' else 1)")}
111
+ # " this line just fixes syntax highlighting for vim that is confused by the above and continues literal
112
+
113
+ %global sys_icu_version %(/usr/bin/icu-config --version)
114
+
115
+ %if "%{sys_icu_version}" >= "%{icu_version}"
116
+ %global bundled_icu 0
117
+ %global icu_flag system-icu
118
+ %else
119
+ %global bundled_icu 1
120
+ %global icu_flag full-icu
121
+ %endif
122
+
123
+ # OpenSSL minimum version
124
+ %global openssl_minimum 1:1.1.1
125
+
126
+ # punycode - from lib/punycode.js
127
+ # Note: this was merged into the mainline since 0.6.x
128
+ # Note: this will be unmerged in an upcoming major release
129
+ %global punycode_major 2
130
+ %global punycode_minor 1
131
+ %global punycode_patch 0
132
+ %global punycode_version %{punycode_major}.%{punycode_minor}.%{punycode_patch}
133
+
134
+ # npm - from deps/npm/package.json
135
+ %global npm_epoch 1
136
+ %global npm_major 8
137
+ %global npm_minor 9
138
+ %global npm_patch 0
139
+ %global npm_version %{npm_major}.%{npm_minor}.%{npm_patch}
140
+
141
+ # uvwasi - from deps/uvwasi/include/uvwasi.h
142
+ %global uvwasi_major 0
143
+ %global uvwasi_minor 0
144
+ %global uvwasi_patch 12
145
+ %global uvwasi_version %{uvwasi_major}.%{uvwasi_minor}.%{uvwasi_patch}
146
+
147
+ # histogram_c - assumed from timestamps
148
+ %global histogram_major 0
149
+ %global histogram_minor 9
150
+ %global histogram_patch 7
151
+ %global histogram_version %{histogram_major}.%{histogram_minor}.%{histogram_patch}
152
+
153
+ # In order to avoid needing to keep incrementing the release version for the
154
+ # main package forever, we will just construct one for npm that is guaranteed
155
+ # to increment safely. Changing this can only be done during an update when the
156
+ # base npm version number is increasing.
157
+ %global npm_release %{nodejs_epoch}.%{nodejs_major}.%{nodejs_minor}.%{nodejs_patch}.%{nodejs_release}
158
+
159
+ # Node.js 16.9.1 and later comes with an experimental package management tool
160
+ %global corepack_version 0.10.0
161
+
162
+ Name: nodejs
163
+ Epoch: %{nodejs_epoch}
164
+ Version: %{nodejs_version}
165
+ Release: %{nodejs_release}%{?dist}
166
+ Summary: JavaScript runtime
167
+ License: MIT and ASL 2.0 and ISC and BSD
168
+ Group: Development/Languages
169
+ URL: http://nodejs.org/
170
+
171
+ ExclusiveArch: %{nodejs_arches}
172
+
173
+ # nodejs bundles openssl, but we use the system version in Fedora
174
+ # because openssl contains prohibited code, we remove openssl completely from
175
+ # the tarball, using the script in Source100
176
+ Source0: node-v%{nodejs_version}-stripped.tar.gz
177
+ Source1: npmrc
178
+ Source2: btest402.js
179
+ Source3: https://github.com/unicode-org/icu/releases/download/release-%{icu_major}-%{icu_minor}/icu4c-%{icu_major}_%{icu_minor}-src.tgz
180
+ Source100: %{name}-tarball.sh
181
+
182
+ # The native module Requires generator remains in the nodejs SRPM, so it knows
183
+ # the nodejs and v8 versions. The remainder has migrated to the
184
+ # nodejs-packaging SRPM.
185
+ Source7: nodejs_native.attr
186
+
187
+ # Disable running gyp on bundled deps we don't use
188
+ Patch1: 0001-Disable-running-gyp-on-shared-deps.patch
189
+
190
+ BuildRequires: make
191
+ BuildRequires: python3-devel
192
+ BuildRequires: zlib-devel
193
+ BuildRequires: brotli-devel
194
+ BuildRequires: gcc >= 8.3.0
195
+ BuildRequires: gcc-c++ >= 8.3.0
196
+ # needed to generate bundled provides for npm dependencies
197
+ # https://src.fedoraproject.org/rpms/nodejs/pull-request/2
198
+ # https://pagure.io/nodejs-packaging/pull-request/10
199
+ BuildRequires: nodejs-packaging
200
+ BuildRequires: chrpath
201
+ BuildRequires: libatomic
202
+ BuildRequires: systemtap-sdt-devel
203
+
204
+ %if %{with bundled}
205
+ Provides: bundled(libuv) = %{libuv_version}
206
+ %else
207
+ BuildRequires: libuv-devel >= 1:%{libuv_version}
208
+ Requires: libuv >= 1:%{libuv_version}
209
+ %endif
210
+
211
+ %if %{with bundled}
212
+ Provides: bundled(nghttp2) = %{nghttp2_version}
213
+ %else
214
+ BuildRequires: libnghttp2-devel >= %{nghttp2_version}
215
+ Requires: libnghttp2 >= %{nghttp2_version}
216
+ %endif
217
+
218
+ # Temporarily bundle llhttp because the upstream doesn't
219
+ # provide releases for it.
220
+ Provides: bundled(llhttp) = %{llhttp_version}
221
+ Provides: bundled(nghttp3) = %{nghttp3_version}
222
+ Provides: bundled(ngtcp2) = %{ngtcp2_version}
223
+
224
+ BuildRequires: openssl-devel >= %{openssl_minimum}
225
+ Requires: openssl >= %{openssl_minimum}
226
+
227
+ # we need the system certificate store
228
+ Requires: ca-certificates
229
+
230
+ # Pull in the full-icu data by default
231
+ Recommends: nodejs-full-i18n%{?_isa} = %{nodejs_epoch}:%{version}-%{release}
232
+
233
+ # we need ABI virtual provides where SONAMEs aren't enough/not present so deps
234
+ # break when binary compatibility is broken
235
+ Provides: nodejs(abi) = %{nodejs_abi}
236
+ Provides: nodejs(abi%{nodejs_major}) = %{nodejs_abi}
237
+ Provides: nodejs(v8-abi) = %{v8_abi}
238
+ Provides: nodejs(v8-abi%{v8_major}) = %{v8_abi}
239
+
240
+ # this corresponds to the "engine" requirement in package.json
241
+ Provides: nodejs(engine) = %{nodejs_version}
242
+
243
+ # Node.js currently has a conflict with the 'node' package in Fedora
244
+ # The ham-radio group has agreed to rename their binary for us, but
245
+ # in the meantime, we're setting an explicit Conflicts: here
246
+ Conflicts: node <= 0.3.2-12
247
+
248
+ # The punycode module was absorbed into the standard library in v0.6.
249
+ # It still exists as a seperate package for the benefit of users of older
250
+ # versions. Since we've never shipped anything older than v0.10 in Fedora,
251
+ # we don't need the seperate nodejs-punycode package, so we Provide it here so
252
+ # dependent packages don't need to override the dependency generator.
253
+ # See also: RHBZ#11511811
254
+ # UPDATE: punycode will be deprecated and so we should unbundle it in Node v8
255
+ # and use upstream module instead
256
+ # https://github.com/nodejs/node/commit/29e49fc286080215031a81effbd59eac092fff2f
257
+ Provides: nodejs-punycode = %{punycode_version}
258
+ Provides: npm(punycode) = %{punycode_version}
259
+
260
+ # Node.js has forked c-ares from upstream in an incompatible way, so we need
261
+ # to carry the bundled version internally.
262
+ # See https://github.com/nodejs/node/commit/766d063e0578c0f7758c3a965c971763f43fec85
263
+ Provides: bundled(c-ares) = %{c_ares_version}
264
+
265
+ # Node.js is closely tied to the version of v8 that is used with it. It makes
266
+ # sense to use the bundled version because upstream consistently breaks ABI
267
+ # even in point releases. Node.js upstream has now removed the ability to build
268
+ # against a shared system version entirely.
269
+ # See https://github.com/nodejs/node/commit/d726a177ed59c37cf5306983ed00ecd858cfbbef
270
+ Provides: bundled(v8) = %{v8_version}
271
+
272
+ # Node.js is bound to a specific version of ICU which may not match the OS
273
+ # We cannot pin the OS to this version of ICU because every update includes
274
+ # an ABI-break, so we'll use the bundled copy.
275
+ Provides: bundled(icu) = %{icu_version}
276
+
277
+ # Upstream added new dependencies, but so far they are not available in Fedora
278
+ # or there's no option to built it as a shared dependency, so we bundle them
279
+ Provides: bundled(uvwasi) = %{uvwasi_version}
280
+ Provides: bundled(histogram) = %{histogram_version}
281
+ Provides: bundled(corepack) = %{corepack_version}
282
+
283
+ # Make sure we keep NPM up to date when we update Node.js
284
+ %if 0%{?rhel} < 8
285
+ # EPEL doesn't support Recommends, so make it strict
286
+ Requires: npm >= %{npm_epoch}:%{npm_version}-%{npm_release}%{?dist}
287
+ %else
288
+ Recommends: npm >= %{npm_epoch}:%{npm_version}-%{npm_release}%{?dist}
289
+ %endif
290
+
291
+ %description
292
+ Node.js is a platform built on Chrome's JavaScript runtime
293
+ for easily building fast, scalable network applications.
294
+ Node.js uses an event-driven, non-blocking I/O model that
295
+ makes it lightweight and efficient, perfect for data-intensive
296
+ real-time applications that run across distributed devices.
297
+
298
+
299
+ %package devel
300
+ Summary: JavaScript runtime - development headers
301
+ Group: Development/Languages
302
+ Requires: %{name}%{?_isa} = %{epoch}:%{nodejs_version}-%{nodejs_release}%{?dist}
303
+ Requires: openssl-devel%{?_isa}
304
+ Requires: zlib-devel%{?_isa}
305
+ Requires: brotli-devel%{?_isa}
306
+ Requires: nodejs-packaging
307
+
308
+ %if %{without bundled}
309
+ Requires: libuv-devel%{?_isa}
310
+ %endif
311
+
312
+ %description devel
313
+ Development headers for the Node.js JavaScript runtime.
314
+
315
+
316
+ %package full-i18n
317
+ Summary: Non-English locale data for Node.js
318
+ Requires: %{name}%{?_isa} = %{nodejs_epoch}:%{nodejs_version}-%{nodejs_release}%{?dist}
319
+
320
+ %description full-i18n
321
+ Optional data files to provide full-icu support for Node.js. Remove this
322
+ package to save space if non-English locales are not needed.
323
+
324
+
325
+ %package -n npm
326
+ Summary: Node.js Package Manager
327
+ Epoch: %{npm_epoch}
328
+ Version: %{npm_version}
329
+ Release: %{npm_release}%{?dist}
330
+
331
+ # We used to ship npm separately, but it is so tightly integrated with Node.js
332
+ # (and expected to be present on all Node.js systems) that we ship it bundled
333
+ # now.
334
+ Obsoletes: npm < 0:3.5.4-6
335
+ Provides: npm = %{npm_epoch}:%{npm_version}
336
+ Requires: nodejs = %{nodejs_epoch}:%{nodejs_version}-%{nodejs_release}%{?dist}
337
+ %if 0%{?fedora} || 0%{?rhel} >= 8
338
+ Recommends: nodejs-docs = %{nodejs_epoch}:%{nodejs_version}-%{nodejs_release}%{?dist}
339
+ %endif
340
+
341
+ # Do not add epoch to the virtual NPM provides or it will break
342
+ # the automatic dependency-generation script.
343
+ Provides: npm(npm) = %{npm_version}
344
+
345
+ %description -n npm
346
+ npm is a package manager for node.js. You can use it to install and publish
347
+ your node programs. It manages dependencies and does other cool stuff.
348
+
349
+
350
+ %package docs
351
+ Summary: Node.js API documentation
352
+ Group: Documentation
353
+ BuildArch: noarch
354
+
355
+ # We don't require that the main package be installed to
356
+ # use the docs, but if it is installed, make sure the
357
+ # version always matches
358
+ Conflicts: %{name} > %{nodejs_epoch}:%{nodejs_version}-%{nodejs_release}%{?dist}
359
+ Conflicts: %{name} < %{nodejs_epoch}:%{nodejs_version}-%{nodejs_release}%{?dist}
360
+
361
+ %description docs
362
+ The API documentation for the Node.js JavaScript runtime.
363
+
364
+
365
+ %prep
366
+ %autosetup -p1 -n node-v%{nodejs_version}
367
+
368
+ # remove bundled dependencies that we aren't building
369
+ rm -rf deps/zlib
370
+ rm -rf deps/brotli
371
+
372
+ # Replace any instances of unversioned python' with python3
373
+ %if %{with python3_fixup}
374
+ pathfix.py -i %{__python3} -pn $(find -type f ! -name "*.js")
375
+ find . -type f -exec sed -i "s~/usr\/bin\/env python~/usr/bin/python3~" {} \;
376
+ find . -type f -exec sed -i "s~/usr\/bin\/python\W~/usr/bin/python3~" {} \;
377
+ sed -i "s~usr\/bin\/python2~usr\/bin\/python3~" ./deps/v8/tools/gen-inlining-tests.py
378
+ sed -i "s~usr\/bin\/python.*$~usr\/bin\/python3~" ./deps/v8/tools/mb/mb_unittest.py
379
+ find . -type f -exec sed -i "s~python -c~python3 -c~" {} \;
380
+ %endif
381
+
382
+ %build
383
+
384
+ %ifarch s390 s390x %{arm} %ix86
385
+ # Decrease debuginfo verbosity to reduce memory consumption during final
386
+ # library linking
387
+ %global optflags %(echo %{optflags} | sed 's/-g /-g1 /')
388
+ %endif
389
+
390
+ export CC='gcc'
391
+ export CXX='g++'
392
+ %{?with_python3_fixup:export NODE_GYP_FORCE_PYTHON=%{__python3}}
393
+
394
+ # build with debugging symbols and add defines from libuv (#892601)
395
+ # Node's v8 breaks with GCC 6 because of incorrect usage of methods on
396
+ # NULL objects. We need to pass -fno-delete-null-pointer-checks
397
+ extra_cflags=(
398
+ -D_LARGEFILE_SOURCE
399
+ -D_FILE_OFFSET_BITS=64
400
+ -DZLIB_CONST
401
+ -fno-delete-null-pointer-checks
402
+ )
403
+ export CFLAGS="%{optflags} ${extra_cflags[*]}" CXXFLAGS="%{optflags} ${extra_cflags[*]}"
404
+ export LDFLAGS="%{build_ldflags}"
405
+
406
+ %{__python3} configure.py --prefix=%{_prefix} --verbose \
407
+ --shared-openssl \
408
+ --shared-zlib \
409
+ --shared-brotli \
410
+ %{!?with_bundled:--shared-libuv} \
411
+ %{!?with_bundled:--shared-nghttp2} \
412
+ --with-dtrace \
413
+ --with-intl=small-icu \
414
+ --with-icu-default-data-dir=%{icudatadir} \
415
+ --openssl-use-def-ca-store \
416
+ --openssl-default-cipher-list=PROFILE=SYSTEM
417
+
418
+ %if %{?with_debug} == 1
419
+ # Setting BUILDTYPE=Debug builds both release and debug binaries
420
+ make BUILDTYPE=Debug %{?_smp_mflags}
421
+ %else
422
+ make BUILDTYPE=Release %{?_smp_mflags}
423
+ %endif
424
+
425
+ # Extract the ICU data and convert it to the appropriate endianness
426
+ pushd deps/
427
+ tar xfz %SOURCE3
428
+
429
+ pushd icu/source
430
+
431
+ mkdir -p converted
432
+ %if 0%{?little_endian}
433
+ # The little endian data file is included in the ICU sources
434
+ install -Dpm0644 data/in/icudt%{icu_major}l.dat converted/
435
+
436
+ %else
437
+ # For the time being, we need to build ICU and use the included `icupkg` tool
438
+ # to convert the little endian data file into a big-endian one.
439
+ # At some point in the future, ICU releases will start including both data
440
+ # files and we should switch to those.
441
+ mkdir -p data/out/tmp
442
+
443
+ %configure
444
+ %make_build
445
+
446
+ icu_root=$(pwd)
447
+ LD_LIBRARY_PATH=./lib ./bin/icupkg -tb data/in/icudt%{icu_major}l.dat \
448
+ converted/icudt%{icu_major}b.dat
449
+ %endif
450
+
451
+ popd # icu/source
452
+ popd # deps
453
+
454
+
455
+ %install
456
+ rm -rf %{buildroot}
457
+
458
+ ./tools/install.py install %{buildroot} %{_prefix}
459
+
460
+ # Set the binary permissions properly
461
+ chmod 0755 %{buildroot}/%{_bindir}/node
462
+ chrpath --delete %{buildroot}%{_bindir}/node
463
+
464
+ %if %{?with_debug} == 1
465
+ # Install the debug binary and set its permissions
466
+ install -Dpm0755 out/Debug/node %{buildroot}/%{_bindir}/node_g
467
+ %endif
468
+
469
+ # own the sitelib directory
470
+ mkdir -p %{buildroot}%{_prefix}/lib/node_modules
471
+
472
+ # ensure Requires are added to every native module that match the Provides from
473
+ # the nodejs build in the buildroot
474
+ install -Dpm0644 %{SOURCE7} %{buildroot}%{_rpmconfigdir}/fileattrs/nodejs_native.attr
475
+ cat << EOF > %{buildroot}%{_rpmconfigdir}/nodejs_native.req
476
+ #!/bin/sh
477
+ echo 'nodejs(abi%{nodejs_major}) >= %nodejs_abi'
478
+ echo 'nodejs(v8-abi%{v8_major}) >= %v8_abi'
479
+ EOF
480
+ chmod 0755 %{buildroot}%{_rpmconfigdir}/nodejs_native.req
481
+
482
+ # install documentation
483
+ mkdir -p %{buildroot}%{_pkgdocdir}/html
484
+ cp -pr doc/* %{buildroot}%{_pkgdocdir}/html
485
+ rm -f %{buildroot}%{_pkgdocdir}/html/nodejs.1
486
+
487
+ # node-gyp needs common.gypi too
488
+ mkdir -p %{buildroot}%{_datadir}/node
489
+ cp -p common.gypi %{buildroot}%{_datadir}/node
490
+
491
+ # Install the GDB init tool into the documentation directory
492
+ mv %{buildroot}/%{_datadir}/doc/node/gdbinit %{buildroot}/%{_pkgdocdir}/gdbinit
493
+
494
+ # install NPM docs to mandir
495
+ mkdir -p %{buildroot}%{_mandir} \
496
+ %{buildroot}%{_pkgdocdir}/npm
497
+
498
+ cp -pr deps/npm/man/* %{buildroot}%{_mandir}/
499
+ rm -rf %{buildroot}%{_prefix}/lib/node_modules/npm/man
500
+ ln -sf %{_mandir} %{buildroot}%{_prefix}/lib/node_modules/npm/man
501
+
502
+ # Install Gatsby HTML documentation to %%{_pkgdocdir}
503
+ cp -pr deps/npm/docs %{buildroot}%{_pkgdocdir}/npm/
504
+ rm -rf %{buildroot}%{_prefix}/lib/node_modules/npm/docs
505
+
506
+ ln -sf %{_pkgdocdir}/npm %{buildroot}%{_prefix}/lib/node_modules/npm/docs
507
+
508
+ # Node tries to install some python files into a documentation directory
509
+ # (and not the proper one). Remove them for now until we figure out what to
510
+ # do with them.
511
+ rm -f %{buildroot}/%{_defaultdocdir}/node/lldb_commands.py \
512
+ %{buildroot}/%{_defaultdocdir}/node/lldbinit
513
+
514
+ # Some NPM bundled deps are executable but should not be. This causes
515
+ # unnecessary automatic dependencies to be added. Make them not executable.
516
+ # Skip the npm bin directory or the npm binary will not work.
517
+ find %{buildroot}%{_prefix}/lib/node_modules/npm \
518
+ -not -path "%{buildroot}%{_prefix}/lib/node_modules/npm/bin/*" \
519
+ -executable -type f \
520
+ -exec chmod -x {} \;
521
+
522
+ # The above command is a little overzealous. Add a few permissions back.
523
+ chmod 0755 %{buildroot}%{_prefix}/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin/node-gyp
524
+ chmod 0755 %{buildroot}%{_prefix}/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js
525
+
526
+ # Corepack contains a number of executable"shims", including some for Windows
527
+ # PowerShell. Drop the executable bit for those so we don't pick up an
528
+ # automatic dependency on /usr/bin/pwsh that we cannot satisfy.
529
+ chmod -x %{buildroot}%{_prefix}/lib/node_modules/corepack/shims/*.ps1
530
+
531
+ # Drop the NPM default configuration in place
532
+ mkdir -p %{buildroot}%{_sysconfdir}
533
+ cp %{SOURCE1} %{buildroot}%{_sysconfdir}/npmrc
534
+
535
+ # NPM upstream expects it to be in /usr/etc/npmrc, so we'll put a symlink here
536
+ # This is done in the interests of keeping /usr read-only.
537
+ mkdir -p %{buildroot}%{_prefix}/etc
538
+ ln -s %{_sysconfdir}/npmrc %{buildroot}%{_prefix}/etc/npmrc
539
+
540
+ # Install the full-icu data files
541
+ install -Dpm0644 -t %{buildroot}%{icudatadir} deps/icu/source/converted/*
542
+
543
+
544
+ %check
545
+ # Fail the build if the versions don't match
546
+ %{buildroot}/%{_bindir}/node -e "require('assert').equal(process.versions.node, '%{nodejs_version}')"
547
+ %{buildroot}/%{_bindir}/node -e "require('assert').equal(process.versions.v8.replace(/-node\.\d+$/, ''), '%{v8_version}')"
548
+ %{buildroot}/%{_bindir}/node -e "require('assert').equal(process.versions.ares.replace(/-DEV$/, ''), '%{c_ares_version}')"
549
+
550
+ # Ensure we have punycode and that the version matches
551
+ %{buildroot}/%{_bindir}/node -e "require(\"assert\").equal(require(\"punycode\").version, '%{punycode_version}')"
552
+
553
+ # Ensure we have npm and that the version matches
554
+ # 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}')"
555
+ NODE_PATH=%{buildroot}%{_prefix}/lib/node_modules:%{buildroot}%{_prefix}/lib/node_modules/npm/node_modules %{buildroot}/%{_bindir}/node -e "require(\"assert\").equal(JSON.parse(require(\"fs\").readFileSync(\"%{buildroot}%{_prefix}/lib/node_modules/npm/package.json\")).version, '%{npm_version}')"
556
+
557
+ # Make sure i18n support is working
558
+ 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}
559
+
560
+
561
+ %pretrans -n npm -p <lua>
562
+ -- Remove all of the symlinks from the bundled npm node_modules directory
563
+ -- This scriptlet can be removed in Fedora 31
564
+ base_path = "%{_prefix}/lib/node_modules/npm/node_modules/"
565
+ d_st = posix.stat(base_path)
566
+ if d_st then
567
+ for f in posix.files(base_path) do
568
+ path = base_path..f
569
+ st = posix.stat(path)
570
+ if st and st.type == "link" then
571
+ os.remove(path)
572
+ end
573
+ end
574
+ end
575
+
576
+ -- Replace the npm docs directory with a symlink
577
+ -- Drop this scriptlet when F31 is EOL
578
+ path = "%{_prefix}/lib/node_modules/npm/doc"
579
+ st = posix.stat(path)
580
+ if st and st.type == "directory" then
581
+ status = os.rename(path, path .. ".rpmmoved")
582
+ if not status then
583
+ suffix = 0
584
+ while not status do
585
+ suffix = suffix + 1
586
+ status = os.rename(path .. ".rpmmoved", path .. ".rpmmoved." .. suffix)
587
+ end
588
+ os.rename(path, path .. ".rpmmoved")
589
+ end
590
+ end
591
+
592
+ -- Replace the npm docs directory with a symlink
593
+ -- Drop this scriptlet when F31 is EOL
594
+ path = "%{_prefix}/lib/node_modules/npm/html"
595
+ st = posix.stat(path)
596
+ if st and st.type == "directory" then
597
+ status = os.rename(path, path .. ".rpmmoved")
598
+ if not status then
599
+ suffix = 0
600
+ while not status do
601
+ suffix = suffix + 1
602
+ status = os.rename(path .. ".rpmmoved", path .. ".rpmmoved." .. suffix)
603
+ end
604
+ os.rename(path, path .. ".rpmmoved")
605
+ end
606
+ end
607
+
608
+ -- Replace the npm man directory with a symlink
609
+ -- Drop this scriptlet when F31 is EOL
610
+ path = "%{_prefix}/lib/node_modules/npm/man"
611
+ st = posix.stat(path)
612
+ if st and st.type == "directory" then
613
+ status = os.rename(path, path .. ".rpmmoved")
614
+ if not status then
615
+ suffix = 0
616
+ while not status do
617
+ suffix = suffix + 1
618
+ status = os.rename(path .. ".rpmmoved", path .. ".rpmmoved." .. suffix)
619
+ end
620
+ os.rename(path, path .. ".rpmmoved")
621
+ end
622
+ end
623
+
624
+
625
+ %files
626
+ %{_bindir}/node
627
+ %dir %{_prefix}/lib/node_modules
628
+ %dir %{_datadir}/node
629
+ %dir %{_datadir}/systemtap
630
+ %dir %{_datadir}/systemtap/tapset
631
+ %{_datadir}/systemtap/tapset/node.stp
632
+
633
+ # corepack
634
+ %{_bindir}/corepack
635
+ %{_prefix}/lib/node_modules/corepack
636
+
637
+ %dir %{_usr}/lib/dtrace
638
+ %{_usr}/lib/dtrace/node.d
639
+
640
+ %{_rpmconfigdir}/fileattrs/nodejs_native.attr
641
+ %{_rpmconfigdir}/nodejs_native.req
642
+ %license LICENSE
643
+ %doc AUTHORS CHANGELOG.md onboarding.md GOVERNANCE.md README.md
644
+ %doc %{_mandir}/man1/node.1*
645
+
646
+
647
+ %files devel
648
+ %if %{?with_debug} == 1
649
+ %{_bindir}/node_g
650
+ %endif
651
+ %{_includedir}/node
652
+ %{_datadir}/node/common.gypi
653
+ %{_pkgdocdir}/gdbinit
654
+
655
+
656
+ %files full-i18n
657
+ %dir %{icudatadir}
658
+ %{icudatadir}/icudt%{icu_major}*.dat
659
+
660
+
661
+ %files -n npm
662
+ %{_bindir}/npm
663
+ %{_bindir}/npx
664
+ %{_prefix}/lib/node_modules/npm
665
+ %config(noreplace) %{_sysconfdir}/npmrc
666
+ %{_prefix}/etc/npmrc
667
+ %ghost %{_sysconfdir}/npmignore
668
+ %doc %{_mandir}/man1/npm*.1*
669
+ %doc %{_mandir}/man1/npx.1*
670
+ %doc %{_mandir}/man5/folders.5*
671
+ %doc %{_mandir}/man5/install.5*
672
+ %doc %{_mandir}/man5/npmrc.5*
673
+ %doc %{_mandir}/man5/package-json.5*
674
+ %doc %{_mandir}/man5/package-lock-json.5*
675
+ %doc %{_mandir}/man5/npm-shrinkwrap-json.5*
676
+ %doc %{_mandir}/man7/config.7*
677
+ %doc %{_mandir}/man7/developers.7*
678
+ %doc %{_mandir}/man7/orgs.7*
679
+ %doc %{_mandir}/man7/logging.7*
680
+ %doc %{_mandir}/man7/registry.7*
681
+ %doc %{_mandir}/man7/removal.7*
682
+ %doc %{_mandir}/man7/scope.7*
683
+ %doc %{_mandir}/man7/scripts.7*
684
+ %doc %{_mandir}/man7/workspaces.7*
685
+
686
+
687
+ %files docs
688
+ %doc doc
689
+ %dir %{_pkgdocdir}
690
+ %{_pkgdocdir}/html
691
+ %{_pkgdocdir}/npm/docs
692
+
693
+
694
+ %changelog
695
+ * Tue May 31 2022 Jan Staněk <jstanek@redhat.com> - 1:18.2.0-1
696
+ - Rebase to version 18.2.0
697
+
698
+ * Mon Apr 25 2022 Jan Staněk <jstanek@redhat.com> - 1:16.14.0-5
699
+ - Unify configure calls into single command
700
+ - Refactor bootstrap-related parts
701
+ - Decouple dependency bundling from bootstrapping
702
+
703
+ * Mon Apr 11 2022 Zuzana Svetlikova <zsvetlik@redhat.com> - 1:16.14.0-4
704
+ - Apply lock file validation fixes
705
+ - Resolves: CVE-2021-43616
706
+ - Resolves: RHBZ#2070013
707
+
708
+ * Mon Dec 06 2021 Zuzana Svetlikova <zsvetlik@redhat.com> - 1:16.13.1-3
709
+ - Resolves: RHBZ#2026329
710
+ - Add corepack to spec
711
+
712
+ * Mon Dec 06 2021 Zuzana Svetlikova <zsvetlik@redhat.com> - 1:16.13.1-2
713
+ - Resolves: RHBZ#2026329
714
+ - Update npm version test
715
+
716
+ * Thu Dec 02 2021 Zuzana Svetlikova <zsvetlik@redhat.com> - 1:16.13.1-1
717
+ - Resolves: RHBZ#2014132, RHBZ#2014126, RHBZ#2013828, RHBZ#2024920
718
+ - Resolves: RHBZ#2026329
719
+ - Rebase to LTS release and to fix multiple low and medium CVEs
720
+
721
+ * Mon Sep 13 2021 Zuzana Svetlikova <zsvetlik@redhat.com> - 1:16.8.0-1
722
+ - Resolves CVE-2021-32803, CVE-2021-32804, CVE-2021-37701, CVE-2021-37712
723
+ - Resolves: RHBZ#1993948, RHBZ#1993941, RHBZ#2000151, RHBZ#2002176
724
+
725
+ * Mon Aug 30 2021 Zuzana Svetlikova <zsvetlik@redhat.com> - 1:16.7.0-2
726
+ - Resolves CVE-2021-22930, CVE-2021-22931, CVE-2021-22939,
727
+ - CVE-2021-22940, CVE-2021-32803, CVE-2021-32804, CVE-2021-3672
728
+ - Resolves: RHBZ#1988608, RHBZ#1993816, RHBZ#1993810
729
+ - Resolves: RHBZ#1993097, RHBZ#1993948, RHBZ#1993941, RHBZ#1994963
730
+ - fix python3 in gyp
731
+
732
+ * Wed Aug 18 2021 Zuzana Svetlikova <zsvetlik@redhat.com> - 1:16.7.0-1
733
+ - Resolves CVE-2021-22930, CVE-2021-22931, CVE-2021-22939,
734
+ - CVE-2021-22940, CVE-2021-32803, CVE-2021-32804, CVE-2021-3672
735
+ - Resolves: RHBZ#1988608, RHBZ#1993816, RHBZ#1993810
736
+ - Resolves: RHBZ#1993097, RHBZ#1993948, RHBZ#1993941, RHBZ#1994963
737
+
738
+ * Fri Jul 09 2021 Zuzana Svetlikova <zsvetlik@redhat.com> - 1:16.4.2-1
739
+ - Resolves: RHBZ#1979847
740
+ - Resolves CVE-2021-22918(libuv)
741
+ - Use system cipher list(1842826, 1952915)
742
+
743
+ * Tue May 11 2021 Zuzana Svetlikova <zsvetlik@redhat.com> - 1:16.1.0-1
744
+ - Resolves: RHBZ#1953991
745
+ - Rebase to v16.x
746
+ - Update version of gcc and gcc-c++ needed
747
+ - Remove libs conditionals
748
+ - Remove unused patches
749
+ - Bundle nghttp3 and ngtcp2
750
+
751
+ * Mon Mar 01 2021 Zuzana Svetlikova <zsvetlik@redhat.com> - 1:14.16.0-2
752
+ - Resolves RHBZ#1930775
753
+ - remove --debug-nghttp2 option
754
+
755
+ * Mon Mar 01 2021 Zuzana Svetlikova <zsvetlik@redhat.com> - 1:14.16.0-1
756
+ - Resolves CVE-2021-22883 CVE-2021-22884
757
+ - Resolves: RHBZ#1934566, RHBZ#1934599
758
+ - Rebase, remove ini patch
759
+
760
+ * Tue Jan 26 2021 Zuzana Svetlikova <zsvetlik@redhat.com> - 1:14.15.4-2
761
+ - Add patch for yarn crash
762
+ - Resolves: RHBZ#1915296
763
+
764
+ * Tue Jan 19 2021 Zuzana Svetlikova <zsvetlik@redhat.com> - 1:14.15.4-1
765
+ - Security rebase to 14.15.4
766
+ - https://nodejs.org/en/blog/vulnerability/january-2021-security-releases/
767
+ - Resolves: RHBZ#1913001, RHBZ#1912953
768
+ - Resolves: RHBZ#1912636, RHBZ#1898602, RHBZ#1898768, RHBZ#1893987, RHBZ#1893184
769
+
770
+ * Thu Oct 29 2020 Zuzana Svetlikova <zsvetlik@redhat.com> - 1:14.15.0-1
771
+ - Resolves: RHBZ#1858864
772
+ - Update to LTS release
773
+
774
+ * Mon Sep 21 2020 Jan Staněk <jstanek@redhat.com> - 1:14.11.0-1
775
+ - Security update to 14.11.0
776
+
777
+ * Wed Jun 03 2020 Zuzana Svetlikova <zsvetlik@redhat.com> - 1:14.4.0-1
778
+ - Security update to 14.4.0
779
+ - Resolves: RHBZ#1815402
780
+
781
+ * Thu May 21 2020 Zuzana Svetlikova <zsvetlik@redhat.com> - 1:14.3.0-1
782
+ - Update to 14.3.0
783
+ - Fix optflags to save memory
784
+ - Resolves: RHBZ#1815402
785
+
786
+ * Wed May 06 2020 Zuzana Svetlikova <zsvetlik@redhat.com> - 1:14.2.0-1
787
+ - Update to 14.2.0
788
+ - build with python3 only
789
+ - some clean up
790
+
791
+ * Tue Mar 17 2020 Zuzana Svetlikova <zsvetlik@redhat.com> - 1:12.16.1-2
792
+ - Fix CVE-2020-10531
793
+
794
+ * Thu Feb 20 2020 Zuzana Svetlikova <zsvetlik@redhat.com> - 1:12.16.1-1
795
+ - Rebase to 12.16.1
796
+
797
+ * Wed Jan 15 2020 Jan Staněk <jstanek@redhat.com> - 1:12.14.1-1
798
+ - Rebase to 12.14.1
799
+
800
+ * Fri Nov 29 2019 Zuzana Svetlikova <zsvetlik@redhat.com> - 1:12.13.1-1
801
+ - Resolves: RHBZ# 1773503, update to 12.13.1
802
+ - minor clean up and sync with Fedora spec
803
+ - turn off debug builds
804
+
805
+ * Thu Aug 01 2019 Zuzana Svetlikova <zsvetlik@redhat.com> - 1:12.4.0-2
806
+ - Add condition to libs
807
+
808
+ * Wed Jun 12 2019 Zuzana Svetlikova <zsvetlik@redhat.com> - 1:12.4.0-1
809
+ - Update to v12.x
810
+ - Add v8-devel and libs subpackages from fedora
811
+
812
+ * Thu Mar 14 2019 Zuzana Svetlikova <zsvetlik@redhat.com> - 1:10.14.1-2
813
+ - move nodejs-packaging BR out of conditional
814
+
815
+ * Tue Dec 11 2018 Zuzana Svetlikova <zsvetlik@redhat.com> - 1:10.14.1-1
816
+ - Resolves RHBZ#1644207
817
+ - fixes node-gyp permissions
818
+ - rebase
819
+
820
+ * Thu Oct 11 2018 Jan Staněk <jstanek@redhat.com> - 1:10.11.0-2
821
+ - BuildRequire nodejs-packaging for proper npm dependency generation
822
+ - Resolves: rhbz#1615947
823
+
824
+ * Mon Oct 08 2018 Jan Staněk <jstanek@redhat.com> - 1:10.11.0-1
825
+ - Rebase to 10.11.0
826
+ - Import changes from fedora
827
+ - Resolves: rhbz#1621766
828
+
829
+ * Mon Jul 30 2018 Zuzana Svetlikova <zsvetlik@redhat.com> - 1:10.7.0-5
830
+ - Import sources from fedora
831
+ - Allow using python2 at %%build and %%install
832
+ - turn off debug for aarch64
833
+
834
+ * Fri Jul 20 2018 Stephen Gallagher <sgallagh@redhat.com> - 1:10.7.0-4
835
+ - Fix npm upgrade scriptlet
836
+ - Fix unexpected trailing .1 in npm release field
837
+
838
+ * Fri Jul 20 2018 Stephen Gallagher <sgallagh@redhat.com> - 1:10.7.0-3
839
+ - Restore annotations to binaries
840
+ - Fix unexpected trailing .1 in release field
841
+
842
+ * Thu Jul 19 2018 Stephen Gallagher <sgallagh@redhat.com> - 1:10.7.0-2
843
+ - Update to 10.7.0
844
+ - https://nodejs.org/en/blog/release/v10.7.0/
845
+ - https://nodejs.org/en/blog/release/v10.6.0/
846
+
847
+ * Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1:10.5.0-1.1
848
+ - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
849
+
850
+ * Thu Jun 21 2018 Stephen Gallagher <sgallagh@redhat.com> - 1:10.5.0-1
851
+ - Update to 10.5.0
852
+ - https://nodejs.org/en/blog/release/v10.5.0/
853
+
854
+ * Thu Jun 14 2018 Stephen Gallagher <sgallagh@redhat.com> - 1:10.4.1-1
855
+ - Update to 10.4.1 to address security issues
856
+ - https://nodejs.org/en/blog/release/v10.4.1/
857
+ - Resolves: rhbz#1590801
858
+ - Resolves: rhbz#1591014
859
+ - Resolves: rhbz#1591019
860
+
861
+ * Thu Jun 07 2018 Stephen Gallagher <sgallagh@redhat.com> - 1:10.4.0-1
862
+ - Update to 10.4.0
863
+ - https://nodejs.org/en/blog/release/v10.4.0/
864
+
865
+ * Wed May 30 2018 Stephen Gallagher <sgallagh@redhat.com> - 1:10.3.0-1
866
+ - Update to 10.3.0
867
+ - Update npm to 6.1.0
868
+ - https://nodejs.org/en/blog/release/v10.3.0/
869
+
870
+ * Tue May 29 2018 Stephen Gallagher <sgallagh@redhat.com> - 1:10.2.1-2
871
+ - Fix up bare 'python' to be python2
872
+ - Drop redundant entry in docs section
873
+
874
+ * Fri May 25 2018 Stephen Gallagher <sgallagh@redhat.com> - 1:10.2.1-1
875
+ - Update to 10.2.1
876
+ - https://nodejs.org/en/blog/release/v10.2.1/
877
+
878
+ * Wed May 23 2018 Stephen Gallagher <sgallagh@redhat.com> - 1:10.2.0-1
879
+ - Update to 10.2.0
880
+ - https://nodejs.org/en/blog/release/v10.2.0/
881
+
882
+ * Thu May 10 2018 Stephen Gallagher <sgallagh@redhat.com> - 1:10.1.0-3
883
+ - Fix incorrect rpm macro
884
+
885
+ * Thu May 10 2018 Stephen Gallagher <sgallagh@redhat.com> - 1:10.1.0-2
886
+ - Include upstream v8 fix for ppc64[le]
887
+ - Disable debug build on ppc64[le] and s390x
888
+
889
+ * Wed May 09 2018 Stephen Gallagher <sgallagh@redhat.com> - 1:10.1.0-1
890
+ - Update to 10.1.0
891
+ - https://nodejs.org/en/blog/release/v10.1.0/
892
+ - Reenable node_g binary
893
+
894
+ * Thu Apr 26 2018 Stephen Gallagher <sgallagh@redhat.com> - 1:10.0.0-1
895
+ - Update to 10.0.0
896
+ - https://nodejs.org/en/blog/release/v10.0.0/
897
+ - Drop workaround patch
898
+ - Temporarily drop node_g binary due to
899
+ https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85587
900
+
901
+ * Fri Apr 13 2018 Rafael dos Santos <rdossant@redhat.com> - 1:9.11.1-2
902
+ - Use standard Fedora linker flags (bug #1543859)
903
+
904
+ * Thu Apr 05 2018 Stephen Gallagher <sgallagh@redhat.com> - 1:9.11.1-1
905
+ - Update to 9.11.1
906
+ - https://nodejs.org/en/blog/release/v9.11.0/
907
+ - https://nodejs.org/en/blog/release/v9.11.1/
908
+
909
+ * Wed Mar 28 2018 Stephen Gallagher <sgallagh@redhat.com> - 1:9.10.0-1
910
+ - Update to 9.10.0
911
+ - https://nodejs.org/en/blog/release/v9.10.0/
912
+
913
+ * Wed Mar 21 2018 Stephen Gallagher <sgallagh@redhat.com> - 1:9.9.0-1
914
+ - Update to 9.9.0
915
+ - https://nodejs.org/en/blog/release/v9.9.0/
916
+
917
+ * Thu Mar 08 2018 Stephen Gallagher <sgallagh@redhat.com> - 1:9.8.0-1
918
+ - Update to 9.8.0
919
+ - https://nodejs.org/en/blog/release/v9.8.0/
920
+
921
+ * Thu Mar 01 2018 Stephen Gallagher <sgallagh@redhat.com> - 1:9.7.0-1
922
+ - Update to 9.7.0
923
+ - https://nodejs.org/en/blog/release/v9.7.0/
924
+ - Work around F28 build issue
925
+
926
+ * Sun Feb 25 2018 Stephen Gallagher <sgallagh@redhat.com> - 1:9.6.1-1
927
+ - Update to 9.6.1
928
+ - https://nodejs.org/en/blog/release/v9.6.1/
929
+ - https://nodejs.org/en/blog/release/v9.6.0/
930
+
931
+ * Mon Feb 05 2018 Stephen Gallagher <sgallagh@redhat.com> - 1:9.5.0-1
932
+ - Package Node.js 9.5.0
933
+
934
+ * Thu Jan 11 2018 Stephen Gallagher <sgallagh@redhat.com> - 1:8.9.4-2
935
+ - Fix incorrect Requires:
936
+
937
+ * Thu Jan 11 2018 Stephen Gallagher <sgallagh@redhat.com> - 1:8.9.4-1
938
+ - Update to 8.9.4
939
+ - https://nodejs.org/en/blog/release/v8.9.4/
940
+ - Switch to system copy of nghttp2
941
+
942
+ * Fri Dec 08 2017 Stephen Gallagher <sgallagh@redhat.com> - 1:8.9.3-2
943
+ - Update to 8.9.3
944
+ - https://nodejs.org/en/blog/release/v8.9.3/
945
+ - https://nodejs.org/en/blog/release/v8.9.2/
946
+
947
+ * Thu Nov 30 2017 Pete Walter <pwalter@fedoraproject.org> - 1:8.9.1-2
948
+ - Rebuild for ICU 60.1
949
+
950
+ * Thu Nov 09 2017 Zuzana Svetlikova <zsvetlik@redhat.com> - 1:8.9.1-1
951
+ - Update to 8.9.1
952
+
953
+ * Tue Oct 31 2017 Stephen Gallagher <sgallagh@redhat.com> - 1:8.9.0-1
954
+ - Update to 8.9.0
955
+ - Drop upstreamed patch
956
+
957
+ * Thu Oct 26 2017 Stephen Gallagher <sgallagh@redhat.com> - 1:8.8.1-1
958
+ - Update to 8.8.1 to fix a regression
959
+
960
+ * Wed Oct 25 2017 Zuzana Svetlikova <zsvetlik@redhat.com> - 1:8.8.0-1
961
+ - Security update to 8.8.0
962
+ - https://nodejs.org/en/blog/release/v8.8.0/
963
+
964
+ * Sun Oct 15 2017 Zuzana Svetlikova <zsvetlik@redhat.com> - 1:8.7.0-1
965
+ - Update to 8.7.0
966
+ - https://nodejs.org/en/blog/release/v8.7.0/
967
+
968
+ * Fri Oct 06 2017 Zuzana Svetlikova <zsvetlik@redhat.com> - 1:8.6.0-2
969
+ - Use bcond macro instead of bootstrap conditional
970
+
971
+ * Wed Sep 27 2017 Zuzana Svetlikova <zsvetlik@redhat.com> - 1:8.6.0-1
972
+ - Fix nghttp2 version
973
+ - Update to 8.6.0
974
+ - https://nodejs.org/en/blog/release/v8.6.0/
975
+
976
+ * Wed Sep 20 2017 Zuzana Svetlikova <zsvetlik@redhat.com> - 1:8.5.0-3
977
+ - Build with bootstrap + bundle libuv for modularity
978
+ - backport patch for aarch64 debug build
979
+
980
+ * Wed Sep 13 2017 Stephen Gallagher <sgallagh@redhat.com> - 1:8.5.0-2
981
+ - Disable debug builds on aarch64 due to https://github.com/nodejs/node/issues/15395
982
+
983
+ * Tue Sep 12 2017 Stephen Gallagher <sgallagh@redhat.com> - 1:8.5.0-1
984
+ - Update to v8.5.0
985
+ - https://nodejs.org/en/blog/release/v8.5.0/
986
+
987
+ * Thu Sep 07 2017 Zuzana Svetlikova <zsvetlik@redhat.com> - 1:8.4.0-2
988
+ - Refactor openssl BR
989
+
990
+ * Wed Aug 16 2017 Zuzana Svetlikova <zsvetlik@redhat.com> - 1:8.4.0-1
991
+ - Update to v8.4.0
992
+ - https://nodejs.org/en/blog/release/v8.4.0/
993
+ - http2 is now supported, add bundled nghttp2
994
+ - remove openssl 1.0.1 patches, we won't be using them in fedora
995
+
996
+ * Thu Aug 10 2017 Zuzana Svetlikova <zsvetlik@redhat.com> - 1:8.3.0-1
997
+ - Update to v8.3.0
998
+ - https://nodejs.org/en/blog/release/v8.3.0/
999
+ - update V8 to 6.0
1000
+ - update minimal gcc and g++ requirements to 4.9.4
1001
+
1002
+ * Wed Aug 09 2017 Tom Hughes <tom@compton.nu> - 1:8.2.1-2
1003
+ - Bump release to fix broken dependencies
1004
+
1005
+ * Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1:8.2.1-1.2
1006
+ - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
1007
+
1008
+ * Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1:8.2.1-1.1
1009
+ - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
1010
+
1011
+ * Fri Jul 21 2017 Stephen Gallagher <sgallagh@redhat.com> - 1:8.2.1-1
1012
+ - Update to v8.2.1
1013
+ - https://nodejs.org/en/blog/release/v8.2.1/
1014
+
1015
+ * Thu Jul 20 2017 Stephen Gallagher <sgallagh@redhat.com> - 1:8.2.0-1
1016
+ - Update to v8.2.0
1017
+ - https://nodejs.org/en/blog/release/v8.2.0/
1018
+ - Update npm to 5.3.0
1019
+ - Adds npx command
1020
+
1021
+ * Tue Jul 18 2017 Igor Gnatenko <ignatenko@redhat.com> - 1:8.1.4-3
1022
+ - s/BuildRequires/Requires/ for http-parser-devel%%{?_isa}
1023
+
1024
+ * Mon Jul 17 2017 Zuzana Svetlikova <zsvetlik@redhat.com> - 1:8.1.4-2
1025
+ - Rename python-devel to python2-devel
1026
+ - own %%{_pkgdocdir}/npm
1027
+
1028
+ * Tue Jul 11 2017 Stephen Gallagher <sgallagh@redhat.com> - 1:8.1.4-1
1029
+ - Update to v8.1.4
1030
+ - https://nodejs.org/en/blog/release/v8.1.4/
1031
+ - Drop upstreamed c-ares patch
1032
+
1033
+ * Thu Jun 29 2017 Zuzana Svetlikova <zsvetlik@redhat.com> - 1:8.1.3-1
1034
+ - Update to v8.1.3
1035
+ - https://nodejs.org/en/blog/release/v8.1.3/
1036
+
1037
+ * Wed Jun 28 2017 Zuzana Svetlikova <zsvetlik@redhat.com> - 1:8.1.2-1
1038
+ - Update to v8.1.2
1039
+ - remove GCC 7 patch, as it is now fixed in node >= 6.12
1040
+