From 4d58280f41155cde17edea6186a01bd314858a4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20=E2=80=9CKhardix=E2=80=9D=20Stan=C4=9Bk?= Date: Fri, 1 Apr 2022 10:05:38 +0000 Subject: [PATCH] use single configure invocation - refactor configure- and bootstrap-related sections of the specfile Resolves: rhbz#2056969 --- nodejs.spec | 69 +++++++++++++++++++---------------------------------- 1 file changed, 25 insertions(+), 44 deletions(-) diff --git a/nodejs.spec b/nodejs.spec index e73a708..f242e2c 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -18,7 +18,7 @@ # This is used by both the nodejs package and the npm subpackage that # has a separate version - the name is special so that rpmdev-bumpspec # will bump this rather than adding .1 to the end. -%global baserelease 2 +%global baserelease 3 %{?!_pkgdocdir:%global _pkgdocdir %{_docdir}/%{name}-%{version}} @@ -175,18 +175,18 @@ BuildRequires: libatomic BuildRequires: systemtap-sdt-devel %if %{with bootstrap} -Provides: bundled(libuv) = %{libuv_version} -Provides: bundled(nghttp2) = %{nghttp2_version} +Provides: bundled(libuv) = %{libuv_version} %else -BuildRequires: libuv-devel >= 1:%{libuv_version} -Requires: libuv >= 1:%{libuv_version} -%if 0%{?fedora} || 0%{?rhel} >= 9 -BuildRequires: libnghttp2-devel >= %{nghttp2_version} -Requires: libnghttp2 >= %{nghttp2_version} -%else -%define nghttp2_configure %{nil} -Provides: bundled(nghttp2) = %{nghttp2_version} +BuildRequires: libuv-devel >= 1:%{libuv_version} +Requires: libuv-devel >= 1:%{libuv_version} %endif + +%if %{with bootstrap} || !(0%{?fedora} || 0%{?rhel} >= 9) +%define nghttp2_configure %{nil} +Provides: bundled(nghttp2) = %{nghttp2_version} +%else +BuildRequires: libnghttp2-devel >= %{nghttp2_version} +Requires: libnghttp2-devel >= %{nghttp2_version} %endif # Temporarily bundle llhttp because the upstream doesn't @@ -281,9 +281,7 @@ Requires: zlib-devel%{?_isa} Requires: brotli-devel%{?_isa} Requires: nodejs-packaging -%if %{with bootstrap} -# deps are bundled -%else +%if %{without bootstrap} Requires: libuv-devel%{?_isa} %endif @@ -411,49 +409,28 @@ export CXX='%{__cxx}' # build with debugging symbols and add defines from libuv (#892601) # Node's v8 breaks with GCC 6 because of incorrect usage of methods on # NULL objects. We need to pass -fno-delete-null-pointer-checks -export CFLAGS='%{optflags} \ - -D_LARGEFILE_SOURCE \ - -D_FILE_OFFSET_BITS=64 \ - -DZLIB_CONST \ - -fno-delete-null-pointer-checks' -export CXXFLAGS='%{optflags} \ - -D_LARGEFILE_SOURCE \ - -D_FILE_OFFSET_BITS=64 \ - -DZLIB_CONST \ - -fno-delete-null-pointer-checks' - -# Explicit new lines in C(XX)FLAGS can break naive build scripts -export CFLAGS="$(echo ${CFLAGS} | tr '\n\\' ' ')" -export CXXFLAGS="$(echo ${CXXFLAGS} | tr '\n\\' ' ')" - +extra_cflags=( + -D_LARGEFILE_SOURCE + -D_FILE_OFFSET_BITS=64 + -DZLIB_CONST + -fno-delete-null-pointer-checks +) +export CFLAGS="%{optflags} ${extra_cflags[*]}" CXXFLAGS="%{optflags} ${extra_cflags[*]}" export LDFLAGS="%{build_ldflags}" -%if %{with bootstrap} %{__python3} configure.py --prefix=%{_prefix} \ --shared \ --libdir=%{_lib} \ --shared-openssl \ --shared-zlib \ --shared-brotli \ - --with-dtrace \ - --with-intl=small-icu \ - --openssl-use-def-ca-store \ - --openssl-default-cipher-list=PROFILE=SYSTEM -%else -%{__python3} configure.py --prefix=%{_prefix} \ - --shared \ - --libdir=%{_lib} \ - --shared-openssl \ - --shared-zlib \ - --shared-brotli \ - --shared-libuv \ - --shared-nghttp2 \ + %{!?with_bootstrap:--shared-libuv} \ + %{!?with_bootstrap:--shared-nghttp2} \ --with-dtrace \ --with-intl=small-icu \ --with-icu-default-data-dir=%{icudatadir} \ --openssl-use-def-ca-store \ --openssl-default-cipher-list=PROFILE=SYSTEM -%endif make BUILDTYPE=Release %{?_smp_mflags} @@ -704,6 +681,10 @@ end %changelog +* Thu Mar 31 2022 Jan Staněk - 16.14.0-3 +- Refactor bootstap handling and configure script invocation + Resolves: rhbz#2056969 + * Sun Feb 13 2022 Zuzana Svetlikova - 1:16.14.0-2 - Build with bootstrap by default due to old versions of dependencies available - Resolves: #2042995, #2042970, #2042981, #2042989