use single configure invocation

- refactor configure- and bootstrap-related sections of the specfile

Resolves: rhbz#2056969
This commit is contained in:
Jan “Khardix” Staněk 2022-04-01 10:05:38 +00:00
parent b553ca163d
commit 4d58280f41

View File

@ -18,7 +18,7 @@
# This is used by both the nodejs package and the npm subpackage that # 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 # has a separate version - the name is special so that rpmdev-bumpspec
# will bump this rather than adding .1 to the end. # will bump this rather than adding .1 to the end.
%global baserelease 2 %global baserelease 3
%{?!_pkgdocdir:%global _pkgdocdir %{_docdir}/%{name}-%{version}} %{?!_pkgdocdir:%global _pkgdocdir %{_docdir}/%{name}-%{version}}
@ -175,18 +175,18 @@ BuildRequires: libatomic
BuildRequires: systemtap-sdt-devel BuildRequires: systemtap-sdt-devel
%if %{with bootstrap} %if %{with bootstrap}
Provides: bundled(libuv) = %{libuv_version} Provides: bundled(libuv) = %{libuv_version}
Provides: bundled(nghttp2) = %{nghttp2_version}
%else %else
BuildRequires: libuv-devel >= 1:%{libuv_version} BuildRequires: libuv-devel >= 1:%{libuv_version}
Requires: libuv >= 1:%{libuv_version} Requires: libuv-devel >= 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}
%endif %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 %endif
# Temporarily bundle llhttp because the upstream doesn't # Temporarily bundle llhttp because the upstream doesn't
@ -281,9 +281,7 @@ Requires: zlib-devel%{?_isa}
Requires: brotli-devel%{?_isa} Requires: brotli-devel%{?_isa}
Requires: nodejs-packaging Requires: nodejs-packaging
%if %{with bootstrap} %if %{without bootstrap}
# deps are bundled
%else
Requires: libuv-devel%{?_isa} Requires: libuv-devel%{?_isa}
%endif %endif
@ -411,49 +409,28 @@ export CXX='%{__cxx}'
# build with debugging symbols and add defines from libuv (#892601) # build with debugging symbols and add defines from libuv (#892601)
# Node's v8 breaks with GCC 6 because of incorrect usage of methods on # Node's v8 breaks with GCC 6 because of incorrect usage of methods on
# NULL objects. We need to pass -fno-delete-null-pointer-checks # NULL objects. We need to pass -fno-delete-null-pointer-checks
export CFLAGS='%{optflags} \ extra_cflags=(
-D_LARGEFILE_SOURCE \ -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 \ -D_FILE_OFFSET_BITS=64
-DZLIB_CONST \ -DZLIB_CONST
-fno-delete-null-pointer-checks' -fno-delete-null-pointer-checks
export CXXFLAGS='%{optflags} \ )
-D_LARGEFILE_SOURCE \ export CFLAGS="%{optflags} ${extra_cflags[*]}" CXXFLAGS="%{optflags} ${extra_cflags[*]}"
-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\\' ' ')"
export LDFLAGS="%{build_ldflags}" export LDFLAGS="%{build_ldflags}"
%if %{with bootstrap}
%{__python3} configure.py --prefix=%{_prefix} \ %{__python3} configure.py --prefix=%{_prefix} \
--shared \ --shared \
--libdir=%{_lib} \ --libdir=%{_lib} \
--shared-openssl \ --shared-openssl \
--shared-zlib \ --shared-zlib \
--shared-brotli \ --shared-brotli \
--with-dtrace \ %{!?with_bootstrap:--shared-libuv} \
--with-intl=small-icu \ %{!?with_bootstrap:--shared-nghttp2} \
--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-dtrace \ --with-dtrace \
--with-intl=small-icu \ --with-intl=small-icu \
--with-icu-default-data-dir=%{icudatadir} \ --with-icu-default-data-dir=%{icudatadir} \
--openssl-use-def-ca-store \ --openssl-use-def-ca-store \
--openssl-default-cipher-list=PROFILE=SYSTEM --openssl-default-cipher-list=PROFILE=SYSTEM
%endif
make BUILDTYPE=Release %{?_smp_mflags} make BUILDTYPE=Release %{?_smp_mflags}
@ -704,6 +681,10 @@ end
%changelog %changelog
* Thu Mar 31 2022 Jan Staněk <jstanek@redhat.com> - 16.14.0-3
- Refactor bootstap handling and configure script invocation
Resolves: rhbz#2056969
* Sun Feb 13 2022 Zuzana Svetlikova <zsvetlik@redhat.com> - 1:16.14.0-2 * Sun Feb 13 2022 Zuzana Svetlikova <zsvetlik@redhat.com> - 1:16.14.0-2
- Build with bootstrap by default due to old versions of dependencies available - Build with bootstrap by default due to old versions of dependencies available
- Resolves: #2042995, #2042970, #2042981, #2042989 - Resolves: #2042995, #2042970, #2042981, #2042989