disable bootstrap on fedora and epel >=8, use system gn

This commit is contained in:
Than Ngo 2023-01-23 12:58:13 +01:00
parent 5c70c7eeb5
commit 2e0aa4d4c9
1 changed files with 35 additions and 14 deletions

View File

@ -1,3 +1,5 @@
%define _lto_cflags %{nil}
# set default fuzz=2 for patch
%global _default_patch_fuzz 2
@ -27,6 +29,13 @@
# official builds have less debugging and go faster... but we have to shut some things off.
%global official_build 1
# enable|disble bootstrap for gn
%if 0%{?rhel} >= 8 || 0%{?fedora}
%global bootstrap 0
%else
%global bootstrap 1
%endif
# Fancy build status, so we at least know, where we are..
# %1 where
# %2 what
@ -311,13 +320,13 @@ Patch90: chromium-109-disable-GlobalMediaControlsCastStartStop.patch
Patch91: chromium-108-system-opus.patch
# Fix extra qualification error
Patch97: chromium-107.0.5304.110-remoting-extra-qualification.patch
Patch97: chromium-107.0.5304.110-remoting-extra-qualification.patch
# From gentoo
Patch98: chromium-94.0.4606.71-InkDropHost-crash.patch
Patch98: chromium-94.0.4606.71-InkDropHost-crash.patch
# Enable WebRTCPPipeWireCapturer by default
Patch99: chromium-108-enable-WebRTCPipeWireCapturer-byDefault.patch
Patch99: chromium-108-enable-WebRTCPipeWireCapturer-byDefault.patch
# need to explicitly include a kernel header on EL7 to support MFD_CLOEXEC, F_SEAL_SHRINK, F_ADD_SEALS, F_SEAL_SEAL
Patch100: chromium-108-el7-include-fcntl-memfd.patch
@ -424,7 +433,7 @@ BuildRequires: %{toolset}-%{dts_version}-libatomic-devel
BuildRequires: %{toolset}-%{dts_version}-toolchain, %{toolset}-%{dts_version}-libatomic-devel
%endif
%if 0{?fedora} || 0%{?rhel} > 8
BuildRequires: gcc-c++
BuildRequires: gcc-c++
BuildRequires: gcc
BuildRequires: binutils
%endif
@ -497,15 +506,17 @@ BuildRequires: minizip-compat-devel
# RHEL 8 needs to use the compat-minizip (provided by minizip1.2)
%if 0%{?rhel} >= 8
BuildRequires: minizip-compat-devel
%else
# RHEL 7 used to have minizip, but as of 7.9, it does not.
# BuildRequires: minizip-devel
%endif
%endif
# RHEL 8 needs newer nodejs
%if ! 0%{?rhel} == 8
BuildRequires: nodejs
BuildRequires: nodejs
%endif
# use system gn on fedora and rhel >=8, el7 needs bundle gn
%if ! %{bootstrap}
BuildRequires: gn
%endif
BuildRequires: nss-devel >= 3.26
@ -519,8 +530,12 @@ BuildRequires: pkgconfig(libpipewire-0.3)
# for /usr/bin/appstream-util
BuildRequires: libappstream-glib
%if %{bootstrap}
# gn needs these
BuildRequires: libstdc++-static
%endif
# Fedora tries to use system libs whenever it can.
BuildRequires: bzip2-devel
BuildRequires: dbus-glib-devel
@ -624,16 +639,16 @@ BuildRequires: python-jinja2
%if ! %{bundlere2}
Requires: re2 >= 20160401
BuildRequires: re2-devel >= 20160401
BuildRequires: re2-devel >= 20160401
%endif
%if ! %{bundlebrotli}
BuildRequires: brotli-devel
%endif
BuildRequires: speech-dispatcher-devel
BuildRequires: yasm
BuildRequires: zlib-devel
BuildRequires: speech-dispatcher-devel
BuildRequires: yasm
BuildRequires: zlib-devel
# Technically, this logic probably applies to older rhel too... but whatever.
# RHEL 8 and 9 do not have gnome-keyring. Not sure why, but whatever again.
@ -691,7 +706,7 @@ Source114: https://github.com/googlefonts/noto-fonts/blob/master/unhinted/NotoSa
Source115: https://github.com/googlefonts/noto-fonts/blob/master/hinted/NotoSansTibetan/NotoSansTibetan-Regular.ttf
# using the built from source version on aarch64
BuildRequires: ninja-build
BuildRequires: ninja-build
# Yes, java is needed as well..
%if %{build_headless}
@ -905,7 +920,7 @@ Remote desktop support for google-chrome & chromium.
%endif
%package -n chromedriver
Summary: WebDriver for Google Chrome/Chromium
Summary: WebDriver for Google Chrome/Chromium
Requires: chromium-common%{_isa} = %{version}-%{release}
%description -n chromedriver
@ -1159,6 +1174,7 @@ FLAGS+=' -Wno-unused-but-set-variable -Wno-unused-result -Wno-unused-function -W
FLAGS+=' -Wno-unused-const-variable -Wno-unneeded-internal-declaration'
%if %{system_build_flags}
CFLAGS=${CFLAGS/-g }
CFLAGS=${CFLAGS/-fexceptions}
CFLAGS=${CFLAGS/-Wp,-D_GLIBCXX_ASSERTIONS}
CFLAGS=${CFLAGS/-fcf-protection}
@ -1369,7 +1385,12 @@ if python3 -c 'import google ; print google.__path__' 2> /dev/null ; then \
exit 1 ; \
fi
%if %{bootstrap}
tools/gn/bootstrap/bootstrap.py --gn-gen-args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES"
%else
cp -a %{_bindir}/gn %{builddir}/
%endif
%{builddir}/gn --script-executable=%{chromium_pybin} gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{builddir}
%if %{build_headless}