## START: Set by rpmautospec ## (rpmautospec version 0.7.3) ## RPMAUTOSPEC: autorelease, autochangelog %define autorelease(e:s:pb:n) %{?-p:0.}%{lua: release_number = 5; base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}")); print(release_number + base_release_number - 1); }%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}} ## END: Set by rpmautospec # These are candidates for inclusion to packaging # Note: %%SOURCE100 macro is not yet defined, so the explicit path is needed here %{load:%{_sourcedir}/nodejs.srpm.macros} # === Versions that matter for packaging === %nodejs_define_version nodejs -p 1:22.11.0-%{autorelease} # Version of libnode.so %global nodejs_soversion 127 # - Version from deps/npm/package.json # - The complex release string ensures that npm release is always increasing, # even in the event of nodejs version bump without npm version bump. %nodejs_define_version npm 1:10.9.0 # - Version from deps/cares/include/ares_version.h %nodejs_define_version c_ares 1.33.1 # - Version from tools/icu/current_ver.dep %nodejs_define_version icu -p 75.1 # - Minimal supported version %nodejs_define_version openssl -p 1:3.0.2 # - Version from lib/punycode.js %nodejs_define_version punycode 2.1.0 # - Version from deps/v8/include/v8-version.h %nodejs_define_version v8 -p 3:12.4.254.21 # For subpackages with their own version string. # The complex release string ensures that the subpackage release is always increasing, # even in the event of main package version bump without subpackage version bump. %global nodejs_subpackage_release %{nodejs_epoch}.%{nodejs_version}.%{nodejs_release}%{?dist} # === Global conditional build options === # Generate default packages as well %bcond default_stream 1 # Bundle everything when bootstrapping %bcond bundled_everything %{with bootstrap} # === Additional definitions === %global nodejs_sitelib %{nodejs_sitelib_path %{nodejs_version_major}} %global nodejs_datadir %{nodejs_datadir_path %{nodejs_version_major}} %global npm_sitelib %{npm_sitelib_path %{nodejs_version_major}} %global little_endian %(echo -n I|hexdump -o|awk '{print substr($2,6,1); exit}') Name: nodejs%{nodejs_version_major} Epoch: %{nodejs_epoch} Version: %{nodejs_version} Release: %{nodejs_release} Summary: JavaScript runtime License: Apache-2.0 AND Artistic-2.0 AND BSD-2-Clause AND BSD-3-Clause AND BlueOak-1.0.0 AND CC-BY-3.0 AND CC0-1.0 AND ISC AND MIT URL: https://nodejs.org Source: node-v%{nodejs_version}-stripped.tar.gz # Source 01-99: additional sources to be installed Source01: https://github.com/unicode-org/icu/releases/download/release-%{icu_version_major}-%{icu_version_minor}/icu4c-%{icu_version_major}_%{icu_version_minor}-data-bin-b.zip Source02: https://github.com/unicode-org/icu/releases/download/release-%{icu_version_major}-%{icu_version_minor}/icu4c-%{icu_version_major}_%{icu_version_minor}-data-bin-l.zip Source03: nodejs.pc.in Source04: v8.pc.in Source05: npmrc.builtin.in Source06: npmrc # Source 100+: packaging support files, will not be installed Source100: nodejs.srpm.macros Source101: nodejs-sources.sh Source102: btest402.js Patch: 0001-Remove-unused-OpenSSL-config.patch Patch: 0002-build-conditionally-compile-bundled-sqlite.patch Patch: 0003-deps-ncrypto-include-openssl-rand.h.patch Patch: 0004-tools-fix-riscv64-build-failed.patch ExclusiveArch: %{nodejs_arches} # Spec tools – macros, generators and utilities BuildRequires: nodejs-packaging BuildRequires: chrpath BuildRequires: jq # Build system and supporting tools BuildRequires: gcc >= 10.0, gcc-c++ >= 10.0, pkgconf, ninja-build BuildRequires: python%{python3_pkgversion}-devel BuildRequires: %{py3_dist setuptools jinja2} # External libraries BuildRequires: pkgconfig(openssl) >= %{openssl_version} # Potentially bundled libraries # - Version from deps/ada/ada.h %nodejs_declare_bundled ada 2.9.0 # - Version from deps/brotli/c/common/version.h %nodejs_declare_bundled brotli 1.1.0 -plibbrotlidec,libbrotlienc # %nodejs_declare_bundled c-ares %{c_ares_version} # - Version assumed from timestamp %nodejs_declare_bundled histogram 0.9.7 # %nodejs_declare_bundled icu %{icu_version} # - Version from deps/uv/include/uv/version.h %nodejs_declare_bundled libuv 1.48.0 -p # - Version from deps/llhttp/include/llhttp.h %nodejs_declare_bundled llhttp 9.2.1 # - Version from deps/nghttp2/lib/includes/nghttp2/nghttp2ver.h %nodejs_declare_bundled nghttp2 1.62.1 # - Version from deps/ngtcp2/nghttp3/lib/includes/nghttp3/version.h %nodejs_declare_bundled nghttp3 0.7.0 # - Version from deps/cjs-module-lexer/package.json %nodejs_declare_bundled nodejs-cjs-module-lexer 1.2.2 -s -r # %nodejs_declare_bundled nodejs-punycode %{punycode_version} -npunycode # - Version from deps/undici/src/package.json %nodejs_declare_bundled nodejs-undici 6.19.2 -s -r # - Version from deps/simdutf/simdutf.h %nodejs_declare_bundled simdutf 5.3.0 # - Version from deps/sqlite/sqlite3.h %nodejs_declare_bundled sqlite 3.46.1 -psqlite3 # - Version from deps/uvwasi/include/uvwasi.h %nodejs_declare_bundled uvwasi 0.0.21 # %nodejs_declare_bundled v8 %{v8_version} # - Version from deps/zlib/zlib.h %nodejs_declare_bundled zlib 1.3.0.1-motley -p # Extra requirements Requires: ca-certificates # Weak dependencies Recommends: %{name}-docs = %{nodejs_evr} Recommends: %{name}-full-i18n%{?_isa} = %{nodejs_evr} Recommends: %{name}-npm >= %{npm_evr} # Virtual provides Provides: nodejs(abi) = %{nodejs_soversion}, nodejs(abi%{nodejs_version_major}) = %{nodejs_soversion} Provides: nodejs(engine) = %{nodejs_version} %global _description %{expand: Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.} %description %{_description} %if %{with default_stream} %package -n nodejs Summary: JavaScript runtime (default stream) Requires: nodejs%{nodejs_version_major}%{?_isa} = %{nodejs_evr} %description -n nodejs %{_description} %endif %package devel Summary: JavaScript runtime - development headers %{!?with_bundled_brotli:Requires: brotli-devel%{?_isa}} %{!?with_bundled_libuv:Requires: libuv-devel%{?_isa}} Requires: nodejs%{nodejs_version_major}%{?_isa} = %{nodejs_evr} Requires: nodejs%{nodejs_version_major}-libs%{?_isa} = %{nodejs_evr} Requires: nodejs-packaging Requires: openssl-devel%{?_isa} %{!?with_bundled_zlib:Requires: zlib-devel%{?_isa}} # Note: -devel packages of various NodeJS streams conflict # with each other, as the headers cannot be easily namespaced # (would break i.e. node-gyp search path). # Hence the Provides instead of separate package. %{!?with_default_stream:Provides: nodejs-devel = %{nodejs_evr}} %global _description_devel %{expand: Development headers for the Node.js JavaScript runtime.} %description devel %{_description_devel} %package libs Summary: Node.js and v8 libraries # For compatibility with old separate v8 package Provides: v8 = %{v8_epoch}:%{v8_version}-%{nodejs_release} Provides: v8%{?_isa} = %{v8_epoch}:%{v8_version}-%{nodejs_release} Obsoletes: v8 < 1:6.7.17-10 %if 0%{?__isa_bits} == 64 %global _so_arch_suffix ()(64bit) %endif Provides: libv8.so.%{v8_version_major}%{?_so_arch_suffix} = %{v8_epoch}:%{v8_version} Provides: libv8_libbase.so.%{v8_version_major}%{?_so_arch_suffix} = %{v8_epoch}:%{v8_version} Provides: libv8_libplatform.so.%{v8_version_major}%{?_so_arch_suffix} = %{v8_epoch}:%{v8_version} %global _description_libs %{expand: Libraries to support Node.js and provide stable v8 interfaces.} %description libs %{_description_libs} %if %{with default_stream} %package -n nodejs-libs Summary: Node.js and v8 libraries (default stream) Requires: nodejs%{nodejs_version_major}-libs%{?_isa} = %{nodejs_evr} %description -n nodejs-libs %{_description_devel} %endif %package full-i18n Summary: Non-English locale data for Node.js Requires: nodejs%{nodejs_version_major}%{?_isa} = %{nodejs_evr} %global _description_full_i18n %{expand: Optional data files to provide full-icu support for Node.js. Remove this package to save space if non-English locales are not needed.} %description full-i18n %{_description_full_i18n} %if %{with default_stream} %package -n nodejs-full-i18n Summary: Non-English locale data for Node.js (default stream) Requires: nodejs%{nodejs_version_major}-full-i18n%{?_isa} = %{nodejs_evr} %description -n nodejs-full-i18n %{_description_full_i18n} %endif %package -n v8-%{v8_version_major}.%{v8_version_minor}-devel Summary: v8 - development headers Epoch: %{v8_epoch} Version: %{v8_version} Release: %{nodejs_subpackage_release} Requires: nodejs%{nodejs_version_major}-devel%{?_isa} = %{nodejs_evr} Requires: nodejs%{nodejs_version_major}-libs%{?_isa} = %{nodejs_evr} Provides: v8-devel = %{v8_evr} Obsoletes: v8-devel <= 2:10.2.154 Obsoletes: v8-314-devel <= 2:3.14 %description -n v8-%{v8_version_major}.%{v8_version_minor}-devel Development headers for the v8 runtime. %package npm Summary: Node.js Package Manager Epoch: %{npm_epoch} Version: %{npm_version} Release: %{nodejs_subpackage_release} Requires: nodejs%{nodejs_version_major}%{?_isa} = %{nodejs_evr} Recommends: nodejs%{nodejs_version_major}-docs = %{nodejs_evr} Provides: npm(npm) = %{npm_version} %global _description_npm %{expand: 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.} %description npm %{_description_npm} %if %{with default_stream} %package -n nodejs-npm Summary: Node.js Package Manager (default stream) Epoch: %{npm_epoch} Version: %{npm_version} Release: %{nodejs_subpackage_release} Requires: nodejs%{nodejs_version_major}-npm%{?_isa} = %{npm_evr} Provides: npm = %{npm_evr} Obsoletes: npm < 1:9 %description -n nodejs-npm %{_description_npm} %endif %package docs Summary: Node.js API documentation BuildArch: noarch Requires(meta): nodejs%{nodejs_version_major} = %{nodejs_evr} %global _description_docs %{expand: The API documentation for the Node.js JavaScript runtime.} %description docs %{_description_docs} %if %{with default_stream} %package -n nodejs-docs Summary: Node.js API documentation (default stream) Requires: nodejs{%nodejs_version_major}-docs = %{nodejs_evr} %description -n nodejs-docs %{_description_docs} %endif # === Adjustments of the distro-wide build configuration === # v8 cannot be built with LTO enabled %global _lto_cflags %{nil} %prep %autosetup -p1 -n node-v%{nodejs_version} # remove code of unbundled dependencies – mainly to ensure they are not used rm -rf deps/v8/third_party/jinja2 tools/inspector_protocol/jinja2 %{?!with_bundled_brotli:rm -rf deps/brotli} %{?!with_bundled_libuv:rm -rf deps/uv} %{?!with_bundled_nodejs_cjs_module_lexer:rm -rf deps/cjs-module-lexer} %{?!with_bundled_nodejs_undici:rm -rf deps/undici} %{?!with_bundled_zlib:rm -rf deps/zlib} # use system python throughout the whole sources readonly potential_python_scripts=($(grep --recursive --files-with-matches --max-count=1 python)) %py3_shebang_fix "${potential_python_scripts[@]}" %build # Extend default distribution build flags readonly extra_cflags=( # Decrease debuginfo verbosity; otherwise, # the linker will run out of memory when linking v8 -g1 # For i686 compatibility, build with defines from libuv (rhbz#892601) -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 # Do not use OpenSSL Engine API (RHEL-33743) -DOPENSSL_NO_ENGINE # 2022-07-14: There's a bug in either torque or gcc that causes a # segmentation fault on ppc64le and s390x if compiled with -O2. Things # run fine on -O1 and -O3, so we'll just go with -O3 (like upstream) # while this gets sorted out. -O3 # v8 segfaults when Identical Code Folding is enabled # - https://github.com/nodejs/node/issues/47865 -fno-ipa-icf ) # Determine configure flags (without worrying about whitespace too much) readonly configure_flags=( # Basic build options --verbose --ninja # Use FHS and build separate libnode.so --prefix=%{_prefix} --shared --libdir=%{_lib} # Use system OpenSSL --shared-openssl --openssl-is-fips --openssl-conf-name=openssl_conf --openssl-use-def-ca-store # Link with system libraries where appropriate %{?!with_bundled_brotli:--shared-brotli} %{?!with_bundled_libuv:--shared-libuv} %{?!with_bundled_sqlite:--shared-sqlite} %if %{without bundled_nodejs_cjs_module_lexer} --shared-builtin-cjs_module_lexer/lexer-path=%{nodejs_sitelib_path common}/cjs-module-lexer/lexer.js --shared-builtin-cjs_module_lexer/dist/lexer-path=%{nodejs_sitelib_path common}/cjs-module-lexer/dist/lexer.js %endif %if %{without bundled_nodejs_undici} --shared-builtin-undici/undici-path=%{nodejs_sitelib_path common}/undici/loader.js %endif %{?!with_bundled_zlib:--shared-zlib} # Compile with small icu, extendable via full-i18n subpackage --with-intl=small-icu --with-icu-default-data-dir=%{nodejs_datadir}/icudata # Do not ship corepack --without-corepack ) export CFLAGS="${CFLAGS} ${extra_cflags[*]}" CXXFLAGS="${CXXFLAGS} ${extra_cflags[*]}" %python3 configure.py "${configure_flags[@]}" %ninja_build -C out/Release %install # Always use current nodejs interpreter fix_shebang() { local -r SHEBANG_RE='^#!/usr/bin/env\s+node\b' local -r SHEBANG_FIX='#!%{_bindir}/node-%{nodejs_version_major}' local -r scriptfile="${1?No script file path provided!}" sed --regexp-extended --in-place "s;${SHEBANG_RE};${SHEBANG_FIX};" "${scriptfile}" } # Link a file into %%{_bindir} (possibly to multiple names) link_bin() { local -r target="${1?No link target provided!}"; shift for name in "$@"; do ln -srf "${target}" "${RPM_BUILD_ROOT}%{_bindir}/${name}" done } # Install npm man page snippets by directory install_npm_man_subdir() { local -r subdir="${1?No manpage subdir (manX) provided!}" local -r source_dir="deps/npm/man/${subdir}" local -r target_dir="${RPM_BUILD_ROOT}%{_mandir}/nodejs-%{nodejs_version_major}/${subdir}" %if %{with default_stream} local -r link_dir="${RPM_BUILD_ROOT}%{_mandir}/${subdir}" %endif install -pDt "${target_dir}" "${source_dir}"/* %if %{with default_stream} mkdir -p "${link_dir}" && ln -srft "${link_dir}" "${target_dir}"/* %endif } # FIXME(upstream): ninja build puts libnode.so in different location than the install script presumes test -r out/Release/libnode.so.%{nodejs_soversion} || mv out/Release/lib/libnode.so* out/Release %if 0%{nodejs_version_major} >= 20 %python3 tools/install.py install --dest-dir="${RPM_BUILD_ROOT}" --prefix="%{_prefix}" %else %python3 tools/install.py install "${RPM_BUILD_ROOT}" "%{_prefix}" %endif %if %{without default_stream} # Remove systemtap configuration rm -f "${RPM_BUILD_ROOT}%{_datadir}/systemtap/tapset/node.stp" %endif # Rename the NPM global path mv "${RPM_BUILD_ROOT}%{npm_sitelib_path default}" "${RPM_BUILD_ROOT}%{npm_sitelib}" %if %{with default_stream} ln -srf "${RPM_BUILD_ROOT}%{npm_sitelib}" "${RPM_BUILD_ROOT}%{npm_sitelib_path default}" %endif # Massage the main binary readonly node_bin="${RPM_BUILD_ROOT}%{_bindir}/node-%{nodejs_version_major}" mv "${RPM_BUILD_ROOT}%{_bindir}/node" "${node_bin}" chmod 0755 "${node_bin}" chrpath --delete "${node_bin}" %if %{with default_stream} link_bin "${node_bin}" node %endif # Re-create additional "binaries" with proper shebangs readonly npm_bindir="${RPM_BUILD_ROOT}/%{npm_sitelib}/npm/bin" grep --extended-regexp --files-with-matches --recursive \ '^#!/usr/bin/(env )?node($|[[:space:]])+' "${npm_bindir}" \ | while read -r npm_script; do fix_shebang "${npm_script}"; done link_bin "${npm_bindir}/npm-cli.js" npm-%{nodejs_version_major} %{?with_default_stream:npm} link_bin "${npm_bindir}/npx-cli.js" npx-%{nodejs_version_major} %{?with_default_stream:npx} readonly gyp_script="${RPM_BUILD_ROOT}%{npm_sitelib}/npm/node_modules/node-gyp/bin/node-gyp.js" fix_shebang "${gyp_script}" # Remove executable bit from npm bundled deps in order to not generate unneeded RPM deps. find "${RPM_BUILD_ROOT}%{npm_sitelib}/npm" \ -not -path "${RPM_BUILD_ROOT}%{npm_sitelib}/npm/bin/*" \ -not -path "${gyp_script}" \ -not -path "${RPM_BUILD_ROOT}%{npm_sitelib}/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin/node-gyp" \ -type f -executable \ -execdir chmod -x '{}' + # Provide unversioned sonames for all library files pushd "${RPM_BUILD_ROOT}%{_libdir}" ln -srf 'libnode.so.%{nodejs_soversion}' libnode.so for soname in libv8{,_libbase,_libplatform}; do ln -srf 'libnode.so.%{nodejs_soversion}' "${soname}.so.%{v8_version_major}.%{v8_version_minor}" %if %{with default_stream} ln -srf 'libnode.so.%{nodejs_soversion}' "${soname}.so.%{v8_version_major}" %endif ln -srf 'libnode.so.%{nodejs_soversion}' "${soname}.so" done popd # ${RPM_BUILD_ROOT}%{_libdir} pushd "${RPM_BUILD_ROOT}%{_includedir}" # Provide header symlinks for header in node/cppgc node/libplatform node/v8*.h; do ln -srf "${header}" "$(basename "${header}")" done # config.gypi is platform dependent, so rename it to not conflict across architectures mv node/config.gypi node/config-%{_arch}.gypi popd # ${RPM_BUILD_ROOT}%{_includedir} # Install pkg-config files readonly pkgconfdir="${RPM_BUILD_ROOT}%{_libdir}/pkgconfig" mkdir -p "${pkgconfdir}" sed -e 's#@PREFIX@#%{_prefix}#g' \ -e 's#@INCLUDEDIR@#%{_includedir}#g' \ -e 's#@LIBDIR@#%{_libdir}#g' \ -e 's#@PKGCONFNAME@#nodejs-%{nodejs_version_major}#g' \ -e 's#@NODEJS_VERSION@#%{nodejs_version}#g' \ %{SOURCE3} > "${pkgconfdir}/nodejs-%{nodejs_version_major}.pc" sed -e 's#@PREFIX@#%{_prefix}#g' \ -e 's#@INCLUDEDIR@#%{_includedir}#g' \ -e 's#@LIBDIR@#%{_libdir}#g' \ -e 's#@PKGCONFVERSION@#v8-%{v8_version_major}.%{v8_version_minor}#g' \ -e 's#@V8_VERSION@#%{v8_version}#g' \ %{SOURCE4} > "${pkgconfdir}/v8-%{v8_version_major}.%{v8_version_minor}.pc" # Install configuration files sed -e 's;@SYSCONFDIR@;%{_sysconfdir};g' \ %{SOURCE5} > "${RPM_BUILD_ROOT}%{npm_sitelib}/npm/npmrc" %if %{with default_stream} install -pD '%{SOURCE6}' "${RPM_BUILD_ROOT}%{_sysconfdir}/npmrc" %endif # Install data files # - needed by node-gyp install -pDt "${RPM_BUILD_ROOT}%{nodejs_datadir}" common.gypi # - full-icu readonly icudatadir="${RPM_BUILD_ROOT}%{nodejs_datadir}/icudata" readonly icudocdir="full-icu" mkdir -p "${icudatadir}" "${icudocdir}" %if %{little_endian} unzip -od "${icudatadir}" '%{SOURCE2}' icudt%{icu_version_major}l.dat unzip -od "${icudocdir}" '%{SOURCE2}' -x icudt%{icu_version_major}l.dat %else unzip -od "${icudatadir}" '%{SOURCE1}' icudt%{icu_version_major}b.dat unzip -od "${icudocdir}" '%{SOURCE1}' -x icudt%{icu_version_major}b.dat %endif # Install documentation to appropriate places readonly htmldocdir="${RPM_BUILD_ROOT}%{_pkgdocdir}/html" mkdir -p "${htmldocdir}" cp -prt "${htmldocdir}" doc/* rm -f "${htmldocdir}/nodejs.1" mv "${RPM_BUILD_ROOT}%{_datadir}/doc/node/gdbinit" "${RPM_BUILD_ROOT}%{_pkgdocdir}/gdbinit" # - npm mkdir -p "${RPM_BUILD_ROOT}%{_pkgdocdir}/npm" cp -pr deps/npm/docs "${RPM_BUILD_ROOT}%{_pkgdocdir}/npm" rm -rf "${RPM_BUILD_ROOT}%{npm_sitelib}/npm/docs" && ln -srf "${RPM_BUILD_ROOT}%{_pkgdocdir}/npm" "${_}" # Install man pages # - Rename interpreter man page to correspond to renamed binary pushd "${RPM_BUILD_ROOT}%{_mandir}" mv man1/node.1 man1/node-%{nodejs_version_major}.1 %if %{with default_stream} ln -srf man1/node-%{nodejs_version_major}.1 man1/node.1 %endif popd # ${RPM_BUILD_ROOT}%{_mandir} # - Install npm man files for subdir in man{1,5,7}; do install_npm_man_subdir "${subdir}"; done # - Turn npm help to symlinks to installed man-pages rm -rf "${RPM_BUILD_ROOT}%{npm_sitelib}/npm/man" \ && ln -srf "${RPM_BUILD_ROOT}%{_mandir}/nodejs-%{nodejs_version_major}" "${_}" # Remove python files from documentation rm -f "${RPM_BUILD_ROOT}%{_defaultdocdir}/node"/lldb{init,_commands.py} %check export LD_LIBRARY_PATH="${RPM_BUILD_ROOT}%{_libdir}" export NODE_PATH="${RPM_BUILD_ROOT}%{npm_sitelib}/npm/node_modules:${RPM_BUILD_ROOT}%{npm_sitelib}" # Shortcut for invoking the correct interpreter/command node() { "${RPM_BUILD_ROOT}%{_bindir}/node-%{nodejs_version_major}" "$@" } npm() { "${RPM_BUILD_ROOT}%{_bindir}/npm-%{nodejs_version_major}" "$@" } # Check installed versions node -e "require('assert').equal('%{nodejs_version}', process.versions.node)" node -e "require('assert').equal('%{v8_version}', process.versions.v8.replace(/-node\.\d+$/, ''))" node -e "require('assert').equal('%{c_ares_version}', process.versions.ares.replace(/-DEV$/, ''))" node -e "require('assert').equal('%{punycode_version}', require('punycode').version)" npm version --json | jq -e '.npm == "%{npm_version}"' # Make sure i18n support is working node --icu-data-dir="${RPM_BUILD_ROOT}%{nodejs_datadir}/icudata" '%{SOURCE102}' %if %{with default_stream} # Ensure the update notifier is disabled npm --globalconfig="${RPM_BUILD_ROOT}%{_sysconfdir}/npmrc" config list --json \ | jq -e '.["update-notifier"] == false' %endif %files %doc README.md CHANGELOG.md GOVERNANCE.md onboarding.md %license LICENSE %{_bindir}/node-%{nodejs_version_major} %dir %{npm_sitelib_filelist %{nodejs_version_major}} %{_mandir}/man1/node-%{nodejs_version_major}.1* %if %{with default_stream} %files -n nodejs %doc README.md CHANGELOG.md GOVERNANCE.md onboarding.md %license LICENSE %{_bindir}/node %{npm_sitelib_filelist default} %{_mandir}/man1/node.1* %endif %files libs %license LICENSE %dir %{nodejs_datadir} %{_libdir}/libnode.so.%{nodejs_soversion} %{_libdir}/libv8.so.%{v8_version_major}.%{v8_version_minor} %{_libdir}/libv8_libbase.so.%{v8_version_major}.%{v8_version_minor} %{_libdir}/libv8_libplatform.so.%{v8_version_major}.%{v8_version_minor} %if %{with default_stream} %files -n nodejs-libs %license LICENSE %{_libdir}/libv8.so.%{v8_version_major} %{_libdir}/libv8_libbase.so.%{v8_version_major} %{_libdir}/libv8_libplatform.so.%{v8_version_major} %endif %files devel %license LICENSE %{_includedir}/node %{_libdir}/libnode.so %{_libdir}/pkgconfig/nodejs-%{nodejs_version_major}.pc %{nodejs_datadir}/common.gypi %{_pkgdocdir}/gdbinit %files -n v8-%{v8_version_major}.%{v8_version_minor}-devel %license LICENSE %{_includedir}/libplatform %{_includedir}/v8*.h %{_includedir}/cppgc %{_libdir}/libv8.so %{_libdir}/libv8_libbase.so %{_libdir}/libv8_libplatform.so %{_libdir}/pkgconfig/v8-%{v8_version_major}.%{v8_version_minor}.pc %files full-i18n %doc full-icu/icu4c-%{icu_version_major}_%{icu_version_minor}-data-bin-?-README.md %license full-icu/LICENSE %{nodejs_datadir}/icudata %if %{with default_stream} %files -n nodejs-full-i18n %doc full-icu/icu4c-%{icu_version_major}_%{icu_version_minor}-data-bin-?-README.md %license full-icu/LICENSE %endif %files npm %doc deps/npm/README.md %license deps/npm/LICENSE %{_bindir}/npm-%{nodejs_version_major} %{_bindir}/npx-%{nodejs_version_major} %{npm_sitelib}/npm %{_mandir}/nodejs-%{nodejs_version_major} %if %{with default_stream} %files -n nodejs-npm %doc deps/npm/README.md %license deps/npm/LICENSE %{_bindir}/npm %{_bindir}/npx %config(noreplace) %{_sysconfdir}/npmrc %ghost %{_sysconfdir}/npmignore %{_mandir}/man*/ %exclude %{_mandir}/man1/node*.1* %endif %files docs %doc doc %license LICENSE %dir %{_pkgdocdir} %{_pkgdocdir}/html %{_pkgdocdir}/npm/docs %if %{with default_stream} %files -n nodejs-docs %license LICENSE %endif %changelog ## START: Generated by rpmautospec * Wed Dec 11 2024 Jan Staněk - 1:22.11.0-5 - fixup! refactor spec file * Mon Dec 09 2024 Jan Staněk - 1:22.11.0-4 - refactor spec file * Tue Dec 03 2024 Jan Staněk - 1:22.11.0-3 - Fix npm hashbang replacement * Tue Nov 19 2024 Jan Staněk - 1:22.11.0-2 - Import riscv64 build fix from upstream * Wed Oct 30 2024 Jan Staněk - 1:22.11.0-1 - Update to version 22.11.0 (LTS) (rhbz#2313003) * Fri Sep 13 2024 Jan Staněk - 1:22.8.0-1 - Update to version 22.8.0 * Thu Sep 12 2024 Jan Staněk - 1:22.6.0-3 - check: only check npm configuration on default stream * Wed Sep 11 2024 Jan Staněk - 1:22.6.0-2 - Fix npm invocation in %%check section * Tue Sep 10 2024 Jan Staněk - 1:22.6.0-1 - Update to version 22.6.0 * Mon Aug 19 2024 Jan Staněk - 1:22.4.1-3 - Disable npm update-notifier * Thu Jul 18 2024 Fedora Release Engineering - 1:22.4.1-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild * Wed Jul 10 2024 Jan Staněk - 1:22.4.1-1 - wip: Update to version 22.4.1 * Wed Jul 10 2024 Jan Staněk - 1:22.3.0-2 - Compile without OpenSSL Engine API * Fri Jun 14 2024 Stephen Gallagher - 1:22.3.0-1 - Update to 22.3.0 * Wed May 22 2024 Stephen Gallagher - 1:22.2.0-9 - Fix missing %%nodejs_pkg_major * Wed May 22 2024 Stephen Gallagher - 1:22.2.0-8 - Re-enable bundling without bootstrap mode * Tue May 21 2024 Stephen Gallagher - 1:22.2.0-7 - Temporarily re-enable bundling of cjs-module-lexer and undici * Tue May 21 2024 Stephen Gallagher - 1:22.2.0-6 - Move the default check to the top * Tue May 21 2024 Stephen Gallagher - Refactor bundling of undici and cjs-module-lexer * Tue May 21 2024 Stephen Gallagher - 1:22.2.0-4 - Make Node.js 22 the default for RHEL 11 * Tue May 21 2024 Stephen Gallagher - 1:22.2.0-3 - Revert "Temporarily add Node.js 20 as default for F41 and RHEL 11+" * Fri May 17 2024 Stephen Gallagher - 1:22.2.0-2 - Use correct macro for built-in modules * Thu May 16 2024 Stephen Gallagher - 1:22.2.0-1 - Update to 22.2.0 * Fri May 10 2024 Stephen Gallagher - 1:22.1.0-2 - Drop -fno-delete-null-pointer-checks * Fri May 03 2024 Stephen Gallagher - 1:22.1.0-1 - Update to 22.1.0 * Wed May 01 2024 Stephen Gallagher - 1:22.0.0-1 - Node.js 22.0.0 * Fri Jun 17 2022 Stephen Gallagher - 1:18.4.0-1 - Update to Node.js 18.4.0 - https://github.com/nodejs/node/blob/master/doc/changelogs/CHANGELOG_V18.md#18.4.0 * Thu Jun 09 2022 Stephen Gallagher - 1:18.3.0-2 - Fix conflict between x86_64 and i686 installs of nodejs-devel * Tue Jun 07 2022 Stephen Gallagher - 1:18.3.0-1 - Update to Node.js 18.3.0 - https://github.com/nodejs/node/blob/master/doc/changelogs/CHANGELOG_V18.md#18.3.0 * Tue May 17 2022 Stephen Gallagher - 1:18.2.0-1 - Update to Node.js 18.2.0 - https://github.com/nodejs/node/blob/master/doc/changelogs/CHANGELOG_V18.md#18.2.0 * Fri May 06 2022 Stephen Gallagher - 1:18.1.0-2 - Fix incorrect epoch in v8-devel dependency * Thu May 05 2022 Stephen Gallagher - 1:18.1.0-1 - Update to Node.js 18.1.0 - https://github.com/nodejs/node/blob/master/doc/changelogs/CHANGELOG_V18.md#18.1.0 * Thu Apr 28 2022 Stephen Gallagher - 1:18.0.0-1 - First release of Node.js 18.x ## END: Generated by rpmautospec