From a8ba41ef71ccc672adf0d81eaa7273bef82cd120 Mon Sep 17 00:00:00 2001 From: Zuzana Svetlikova Date: Fri, 17 Apr 2020 13:10:35 +0200 Subject: [PATCH] Update to 12.16.2, add new Provides/Requires --- .gitignore | 1 + 0001-Disable-running-gyp-on-shared-deps.patch | 26 ++++----- nodejs-tarball.sh | 10 +++- nodejs.spec | 56 ++++++++++++++----- sources | 4 +- 5 files changed, 66 insertions(+), 31 deletions(-) diff --git a/.gitignore b/.gitignore index 4f7c337..ef6e814 100644 --- a/.gitignore +++ b/.gitignore @@ -109,3 +109,4 @@ /node-v10.10.0-stripped.tar.gz /node-v10.11.0-stripped.tar.gz /icu4c-64_2-src.tgz +/icu4c-65_1-src.tgz diff --git a/0001-Disable-running-gyp-on-shared-deps.patch b/0001-Disable-running-gyp-on-shared-deps.patch index ce6ff7a..6d662d3 100644 --- a/0001-Disable-running-gyp-on-shared-deps.patch +++ b/0001-Disable-running-gyp-on-shared-deps.patch @@ -1,29 +1,25 @@ -From 2213cf773b7cf503807397aac79f10d6690a6640 Mon Sep 17 00:00:00 2001 +From 0da4decd64a9cbfcf75b2697c722cd6fc82a164d Mon Sep 17 00:00:00 2001 From: Zuzana Svetlikova -Date: Thu, 27 Apr 2017 14:25:42 +0200 -Subject: [PATCH 1/2] Disable running gyp on shared deps +Date: Fri, 17 Apr 2020 12:59:44 +0200 +Subject: [PATCH] 0001 --- - Makefile | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) + Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile -index 05eaa73abbe0c6c651bdf446e3678b92700d57c3..829c4c7c9f8a2132def8767a243cb7160a85d2b2 100644 +index 88166da2a8..f0637b6c78 100644 --- a/Makefile +++ b/Makefile -@@ -141,9 +141,9 @@ test-code-cache: with-code-cache +@@ -141,7 +141,7 @@ test-code-cache: with-code-cache echo "'test-code-cache' target is a noop" out/Makefile: config.gypi common.gypi node.gyp \ - deps/uv/uv.gyp deps/http_parser/http_parser.gyp deps/zlib/zlib.gyp \ -- tools/v8_gypfiles/toolchain.gypi tools/v8_gypfiles/features.gypi \ -- tools/v8_gypfiles/inspector.gypi tools/v8_gypfiles/v8.gyp -+ deps/http_parser/http_parser.gyp \ -+ tools/v8_gypfiles/toolchain.gypi tools/v8_gypfiles/features.gypi \ -+ tools/v8_gypfiles/inspector.gypi tools/v8_gypfiles/v8.gyp ++ deps/http_parser/http_parser.gyp \ + tools/v8_gypfiles/toolchain.gypi tools/v8_gypfiles/features.gypi \ + tools/v8_gypfiles/inspector.gypi tools/v8_gypfiles/v8.gyp $(PYTHON) tools/gyp_node.py -f make - - # node_version.h is listed because the N-API version is taken from there -- -2.24.1 +2.25.2 diff --git a/nodejs-tarball.sh b/nodejs-tarball.sh index 2aed5cd..74e36e0 100755 --- a/nodejs-tarball.sh +++ b/nodejs-tarball.sh @@ -132,6 +132,8 @@ 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 "-------------------------" @@ -171,7 +173,7 @@ 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 "libuv" +echo "nghttp2" echo "=========================" grep "define NGHTTP2_VERSION " node-v${version}/deps/nghttp2/lib/includes/nghttp2/nghttp2ver.h echo @@ -183,6 +185,12 @@ 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 diff --git a/nodejs.spec b/nodejs.spec index 42504a0..fe06c61 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -8,7 +8,7 @@ # 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 4 +%global baserelease 1 %{?!_pkgdocdir:%global _pkgdocdir %{_docdir}/%{name}-%{version}} @@ -20,7 +20,7 @@ %global nodejs_epoch 1 %global nodejs_major 12 %global nodejs_minor 16 -%global nodejs_patch 1 +%global nodejs_patch 2 %global nodejs_abi %{nodejs_major}.%{nodejs_minor} # nodejs_soversion - from NODE_MODULE_VERSION in src/node_version.h %global nodejs_soversion 72 @@ -64,7 +64,7 @@ # libuv - from deps/uv/include/uv/version.h %global libuv_major 1 %global libuv_minor 34 -%global libuv_patch 0 +%global libuv_patch 2 %global libuv_version %{libuv_major}.%{libuv_minor}.%{libuv_patch} # nghttp2 - from deps/nghttp2/lib/includes/nghttp2/nghttp2ver.h @@ -74,8 +74,8 @@ %global nghttp2_version %{nghttp2_major}.%{nghttp2_minor}.%{nghttp2_patch} # ICU - from tools/icu/current_ver.dep -%global icu_major 64 -%global icu_minor 2 +%global icu_major 65 +%global icu_minor 1 %global icu_version %{icu_major}.%{icu_minor} %global icudatadir %{nodejs_datadir}/icudata @@ -97,10 +97,22 @@ # npm - from deps/npm/package.json %global npm_epoch 1 %global npm_major 6 -%global npm_minor 13 +%global npm_minor 14 %global npm_patch 4 %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 5 +%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 # 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 @@ -141,6 +153,7 @@ Patch2: 0002-Install-both-binaries-and-use-libdir.patch BuildRequires: python3-devel BuildRequires: zlib-devel +BuildRequires: brotli-devel BuildRequires: gcc >= 4.9.4 BuildRequires: gcc-c++ >= 4.9.4 BuildRequires: chrpath @@ -177,14 +190,14 @@ Requires: nodejs-libs%{?_isa} = %{nodejs_epoch}:%{version}-%{release} # 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 +# 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_major}) = %{nodejs_abi} Provides: nodejs(v8-abi) = %{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} # Node.js currently has a conflict with the 'node' package in Fedora @@ -222,6 +235,11 @@ Provides: bundled(v8) = %{v8_version} # an ABI-break, so we'll use the bundled copy. Provides: bundled(icu) = %{icu_version} +# Upstream added new dependencies, but so far they are not available in Fedora +# or there's no option to built it as a shared dependency, so we bundle them +Provides: bundled(uvwasi) = %{uvwasi_version} +Provides: bundled(histogram) = %{histogram_version} + # Make sure we keep NPM up to date when we update Node.js %if 0%{?rhel} < 8 # EPEL doesn't support Recommends, so make it strict @@ -244,6 +262,7 @@ Group: Development/Languages Requires: %{name}%{?_isa} = %{epoch}:%{nodejs_version}-%{nodejs_release}%{?dist} Requires: openssl-devel%{?_isa} Requires: zlib-devel%{?_isa} +Requires: brotli-devel%{?_isa} Requires: nodejs-packaging %if %{with bootstrap} @@ -342,6 +361,7 @@ The API documentation for the Node.js JavaScript runtime. # remove bundled dependencies that we aren't building rm -rf deps/zlib +rm -rf deps/brotli # Replace any instances of unversioned python' with python3 @@ -390,6 +410,7 @@ export LDFLAGS="%{build_ldflags}" --libdir=%{_lib} \ --shared-openssl \ --shared-zlib \ + --shared-brotli \ --without-dtrace \ --with-intl=small-icu \ --debug-nghttp2 \ @@ -400,6 +421,7 @@ export LDFLAGS="%{build_ldflags}" --libdir=%{_lib} \ --shared-openssl \ --shared-zlib \ + --shared-brotli \ --shared-libuv \ --shared-nghttp2 \ --with-dtrace \ @@ -477,12 +499,12 @@ echo 'nodejs(v8-abi%{v8_major}) >= %v8_abi' EOF chmod 0755 %{buildroot}%{_rpmconfigdir}/nodejs_native.req -#install documentation +# install documentation mkdir -p %{buildroot}%{_pkgdocdir}/html cp -pr doc/* %{buildroot}%{_pkgdocdir}/html rm -f %{buildroot}%{_pkgdocdir}/html/nodejs.1 -#node-gyp needs common.gypi too +# node-gyp needs common.gypi too mkdir -p %{buildroot}%{_datadir}/node cp -p common.gypi %{buildroot}%{_datadir}/node @@ -527,7 +549,7 @@ chmod 0755 %{buildroot}%{_prefix}/lib/node_modules/npm/node_modules/node-gyp/bin mkdir -p %{buildroot}%{_sysconfdir} cp %{SOURCE1} %{buildroot}%{_sysconfdir}/npmrc -# NPM upstream expectes it to be in /usr/etc/npmrc, so we'll put a symlink here +# 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 @@ -535,6 +557,7 @@ ln -s %{_sysconfdir}/npmrc %{buildroot}%{_prefix}/etc/npmrc # Install the full-icu data files install -Dpm0644 -t %{buildroot}%{icudatadir} deps/icu/source/converted/* + %check # Fail the build if the versions don't match LD_LIBRARY_PATH=%{buildroot}%{_libdir} %{buildroot}/%{_bindir}/node -e "require('assert').equal(process.versions.node, '%{nodejs_version}')" @@ -604,7 +627,7 @@ end %{_rpmconfigdir}/fileattrs/nodejs_native.attr %{_rpmconfigdir}/nodejs_native.req -%doc AUTHORS CHANGELOG.md COLLABORATOR_GUIDE.md GOVERNANCE.md README.md +%doc AUTHORS CHANGELOG.md onboarding.md GOVERNANCE.md README.md %doc %{_mandir}/man1/node.1* @@ -619,6 +642,7 @@ end %dir %{icudatadir} %{icudatadir}/icudt%{icu_major}*.dat + %files libs %license LICENSE %{_libdir}/libnode.so.%{nodejs_soversion} @@ -669,7 +693,13 @@ end %{_pkgdocdir}/html %{_pkgdocdir}/npm/docs + %changelog +* Wed Apr 15 2020 Zuzana Svetlikova - 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 - 1:12.16.1-4 - Replace hard-coded gcc and g++ with __cc and __cxx macros diff --git a/sources b/sources index a85e8b0..8bf1c62 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (node-v12.16.1-stripped.tar.gz) = 489d337bd522ab48ad9cef99aa2ce3203a05fb05fda0454b805905f699d14da643b51f6b20786995f2aeeb9f468434b60d734e75cec3451e7648da623914c699 -SHA512 (icu4c-64_2-src.tgz) = 5ecb4c230ba45918747a1cf9aef86f555aa07d5b29b1d07ab674e8013f46dfb907a0e9d6945db41155f9dc3012fd94e1152ffc19f61a68b6dfcbabdcb8ae9d78 +SHA512 (node-v12.16.2-stripped.tar.gz) = cc289da4a836feb5e7c330de0fcee8b3677d925f98e1c574918f0432d6dcdcbf6183a1a3a834f568ad80e273d1744ddb3df3679dccfd1b784c075b0ea6181c00 +SHA512 (icu4c-65_1-src.tgz) = 8f1ef33e1f4abc9a8ee870331c59f01b473d6da1251a19ce403f822f3e3871096f0791855d39c8f20c612fc49cda2c62c06864aa32ddab2dbd186d2b21ce9139