commit 88c384f62d2724e3b5ba827dfafc2ca577a458d9
Author: Leigh Scott <leigh123linux(a)gmail.com>
Date: Sun Mar 13 18:41:19 2022 +0000
Spec file improvements
...w-to-override-clang-through-env-variables.patch | 45 ++
chromium-freeworld.spec | 554 +++++++--------------
2 files changed, 220 insertions(+), 379 deletions(-)
---
diff --git a/allow-to-override-clang-through-env-variables.patch
b/allow-to-override-clang-through-env-variables.patch
new file mode 100644
index 0000000..266f9a2
--- /dev/null
+++ b/allow-to-override-clang-through-env-variables.patch
@@ -0,0 +1,45 @@
+From 11fc2f438c726814d54b06dd24a2d393af8d8028 Mon Sep 17 00:00:00 2001
+From: Alexey Gladkov <legion(a)altlinux.org>
+Date: Mon, 27 Aug 2018 14:59:55 +0300
+Subject: [PATCH] ALT: allow to override clang through env variables
+
+---
+ build/toolchain/gcc_toolchain.gni | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/build/toolchain/gcc_toolchain.gni b/build/toolchain/gcc_toolchain.gni
+index 0ad4537a302..3af38ae1c3f 100644
+--- a/build/toolchain/gcc_toolchain.gni
++++ b/build/toolchain/gcc_toolchain.gni
+@@ -286,20 +286,28 @@ template("gcc_toolchain") {
+ if (defined(invoker.readelf)) {
+ readelf = invoker.readelf
+ } else {
+ readelf = "readelf"
+ }
+ if (defined(invoker.nm)) {
+ nm = invoker.nm
+ } else {
+ nm = "nm"
+ }
++
++ cc = getenv("CC")
++ cxx = getenv("CXX")
++ ld = getenv("CXX")
++ readelf = getenv("READELF")
++ ar = getenv("AR")
++ nm = getenv("NM")
++
+ if (defined(invoker.dwp)) {
+ dwp_switch = " --dwp=\"${invoker.dwp}\""
+ } else {
+ dwp_switch = ""
+ }
+
+ if (defined(invoker.shlib_extension)) {
+ default_shlib_extension = invoker.shlib_extension
+ } else {
+ default_shlib_extension = shlib_extension
+--
+2.25.4
+
diff --git a/chromium-freeworld.spec b/chromium-freeworld.spec
index c56286b..cce44c8 100644
--- a/chromium-freeworld.spec
+++ b/chromium-freeworld.spec
@@ -17,14 +17,26 @@
%global __provides_exclude_from %{chromiumdir}/.*\\.so
#######################################CONFIGS###########################################
# System libraries to use.
-%global system_ffmpeg 1
+%global system_libdrm 1
+# Chrome upstream uses custom ffmpeg patches
+%global system_ffmpeg 0
+%global system_flac 1
+%global system_fontconfig 1
+# fedora freetype is too old
%global system_freetype 0
%global system_harfbuzz 0
+%global system_libjpeg 1
%global system_libicu 0
+# lto issue with system libpng
+%global system_libpng 0
%global system_libvpx 0
-%global system_libxml2 1
-%global system_minizip 1
+%global system_libxml2 0
+# lto issue with system minizip
+%global system_minizip 0
%global system_re2 1
+%global system_libwebp 1
+%global system_xslt 1
+
##############################Package Definitions######################################
Name: chromium-freeworld
Version: 99.0.4844.51
@@ -51,25 +63,37 @@ Source15: LICENSE
########################################################################################
#Compiler settings
# Make sure we don't encounter any bug
-BuildRequires: clang
+BuildRequires: clang, clang-tools-extra
BuildRequires: lld
BuildRequires: llvm
# Basic tools and libraries needed for building
BuildRequires: ninja-build, nodejs, bison, gperf, hwdata
-BuildRequires: libatomic
+BuildRequires: libatomic, flex, perl-Switch
BuildRequires: libcap-devel, cups-devel, alsa-lib-devel
BuildRequires: mesa-libGL-devel, mesa-libEGL-devel
-%if %{system_minizip}
-BuildRequires: minizip-compat-devel
-%endif
# Pipewire need this.
BuildRequires: pkgconfig(libpipewire-0.3)
BuildRequires: pkgconfig(gtk+-3.0)
BuildRequires: pkgconfig(libexif), pkgconfig(nss)
BuildRequires: pkgconfig(xtst), pkgconfig(xscrnsaver)
-BuildRequires: pkgconfig(dbus-1), pkgconfig(libudev)
+BuildRequires: pkgconfig(dbus-1), pkgconfig(dbus-glib-1)
+BuildRequires: pkgconfig(libudev), pkgconfig(uuid)
+BuildRequires: pkgconfig(xt)
+BuildRequires: pkgconfig(xcb-proto)
BuildRequires: pkgconfig(gnome-keyring-1)
BuildRequires: pkgconfig(libffi)
+BuildRequires: expat-devel
+BuildRequires: pciutils-devel
+BuildRequires: speech-dispatcher-devel
+BuildRequires: pulseaudio-libs-devel
+BuildRequires: libcurl-devel
+BuildRequires: libxshmfence-devel
+# install desktop files
+BuildRequires: desktop-file-utils
+# install AppData files
+BuildRequires: libappstream-glib
+# Libstdc++ static needed for linker
+BuildRequires: libstdc++-static
#for vaapi
BuildRequires: pkgconfig(libva)
BuildRequires: pkgconfig(gbm)
@@ -77,20 +101,21 @@ BuildRequires: pkgconfig(wayland-client)
BuildRequires: pkgconfig(wayland-cursor)
BuildRequires: pkgconfig(wayland-scanner)
BuildRequires: pkgconfig(wayland-server)
-#BuildRequires: /usr/bin/python2
+
BuildRequires: python3-devel
BuildRequires: python-unversioned-command
BuildRequires: python3-beautifulsoup4
BuildRequires: python3-html5lib
+BuildRequires: python3-json5
+BuildRequires: python3-mako
BuildRequires: python3-markupsafe
BuildRequires: python3-ply
BuildRequires: python3-simplejson
BuildRequires: python3-six
-%if %{system_re2}
-BuildRequires: re2-devel
-%endif
# replace_gn_files.py --system-libraries
+%if %{system_flac}
BuildRequires: flac-devel
+%endif
%if %{system_freetype}
BuildRequires: freetype-devel
%endif
@@ -100,10 +125,15 @@ BuildRequires: harfbuzz-devel
%if %{system_libicu}
BuildRequires: libicu-devel
%endif
+%if %{system_libdrm}
BuildRequires: libdrm-devel
+%endif
+%if %{system_libjpeg}
BuildRequires: libjpeg-turbo-devel
+%endif
+%if %{system_libpng}
BuildRequires: libpng-devel
-# Chromium requires libvpx 1.5.0 and some non-default options
+%endif
%if %{system_libvpx}
BuildRequires: libvpx-devel
%endif
@@ -115,26 +145,22 @@ BuildRequires: ffmpeg-devel
%endif
BuildRequires: opus-devel
%endif
+%if %{system_libwebp}
BuildRequires: libwebp-devel
+%endif
+%if %{system_minizip}
+BuildRequires: minizip-compat-devel
+%endif
%if %{system_libxml2}
BuildRequires: pkgconfig(libxml-2.0)
%endif
+%if %{system_xslt}
BuildRequires: pkgconfig(libxslt)
-BuildRequires: snappy-devel
-BuildRequires: expat-devel
-BuildRequires: pciutils-devel
-BuildRequires: speech-dispatcher-devel
-BuildRequires: pulseaudio-libs-devel
-BuildRequires: libcurl-devel
-BuildRequires: libxshmfence-devel
-# install desktop files
-BuildRequires: desktop-file-utils
-# install AppData files
-BuildRequires: libappstream-glib
-# Mojojojo need this >:(
-BuildRequires: java-1.8.0-openjdk-headless
-# Libstdc++ static needed for linker
-BuildRequires: libstdc++-static
+%endif
+%if %{system_re2}
+BuildRequires: re2-devel
+%endif
+
# Runtime Requirements
Requires: hicolor-icon-theme
# GTK modules it expects to find for some reason.
@@ -170,7 +196,8 @@ Patch300: chromium-py3-bootstrap.patch
Patch301: chromium-gcc11.patch
Patch302: chromium-java-only-allowed-in-android-builds.patch
Patch303: chromium-aarch64-cxxflags-addition.patch
-Patch304: chromium-clang-format.patch
+# Causes build error
+#Patch304: chromium-clang-format.patch
# RPM Fusion patches [free/chromium-freeworld]:
Patch401: chromium-fix-vaapi-on-intel.patch
@@ -179,6 +206,7 @@ Patch403: chromium-manpage.patch
Patch404: chromium-md5-based-build-id.patch
Patch405: chromium-names.patch
Patch406: gcc12.patch
+Patch407: allow-to-override-clang-through-env-variables.patch
Patch1406: chromium-rpm-fusion-brand.patch
%description
@@ -219,275 +247,6 @@ Patch1406: chromium-rpm-fusion-brand.patch
%patch1406 -p1
-./build/linux/unbundle/remove_bundled_libraries.py --do-remove \
- base/third_party/cityhash \
- base/third_party/double_conversion \
- base/third_party/dynamic_annotations \
- base/third_party/icu \
- base/third_party/libevent \
- base/third_party/nspr \
- base/third_party/superfasthash \
- base/third_party/symbolize \
- base/third_party/valgrind \
- base/third_party/xdg_mime \
- base/third_party/xdg_user_dirs \
- buildtools/third_party/libc++ \
- buildtools/third_party/libc++abi \
- chrome/third_party/mozilla_security_manager \
- courgette/third_party \
- native_client/src/third_party/dlmalloc \
- native_client/src/third_party/valgrind \
- net/third_party/mozilla_security_manager \
- net/third_party/nss \
- net/third_party/quic \
- net/third_party/uri_template \
- third_party/abseil-cpp \
- third_party/angle \
- third_party/angle/src/common/third_party/base \
- third_party/angle/src/common/third_party/smhasher \
- third_party/angle/src/common/third_party/xxhash \
- third_party/angle/src/third_party/libXNVCtrl \
- third_party/angle/src/third_party/trace_event \
- third_party/angle/src/third_party/volk \
- third_party/libgifcodec \
- third_party/apple_apsl \
- third_party/axe-core \
- third_party/boringssl \
- third_party/boringssl/src/third_party/fiat \
- third_party/blink \
- third_party/breakpad \
- third_party/breakpad/breakpad/src/third_party/curl \
- third_party/brotli \
- third_party/catapult \
- third_party/catapult/common/py_vulcanize/third_party/rcssmin \
- third_party/catapult/common/py_vulcanize/third_party/rjsmin \
- third_party/catapult/third_party/beautifulsoup4 \
- third_party/catapult/third_party/html5lib-python \
- third_party/catapult/third_party/polymer \
- third_party/catapult/third_party/six \
- third_party/catapult/tracing/third_party/d3 \
- third_party/catapult/tracing/third_party/gl-matrix \
- third_party/catapult/tracing/third_party/jpeg-js \
- third_party/catapult/tracing/third_party/jszip \
- third_party/catapult/tracing/third_party/mannwhitneyu \
- third_party/catapult/tracing/third_party/oboe \
- third_party/catapult/tracing/third_party/pako \
- third_party/ced \
- third_party/cld_3 \
- third_party/closure_compiler \
- third_party/crashpad \
- third_party/crashpad/crashpad/third_party/lss \
- third_party/crashpad/crashpad/third_party/zlib \
- third_party/crc32c \
- third_party/cros_system_api \
- third_party/dawn \
- third_party/dawn/third_party/khronos \
- third_party/dawn/third_party/tint \
- third_party/depot_tools \
- third_party/dav1d \
- third_party/devscripts \
- third_party/devtools-frontend \
- third_party/devtools-frontend/src/front_end/third_party/acorn \
- third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json
\
- third_party/devtools-frontend/src/front_end/third_party/axe-core \
- third_party/devtools-frontend/src/front_end/third_party/chromium \
- third_party/devtools-frontend/src/front_end/third_party/codemirror \
- third_party/devtools-frontend/src/front_end/third_party/diff \
- third_party/devtools-frontend/src/front_end/third_party/i18n \
- third_party/devtools-frontend/src/front_end/third_party/intl-messageformat \
- third_party/devtools-frontend/src/front_end/third_party/lighthouse \
- third_party/devtools-frontend/src/front_end/third_party/lit-html \
- third_party/devtools-frontend/src/front_end/third_party/lodash-isequal \
- third_party/devtools-frontend/src/front_end/third_party/marked \
- third_party/devtools-frontend/src/front_end/third_party/puppeteer \
- third_party/devtools-frontend/src/front_end/third_party/wasmparser \
- third_party/devtools-frontend/src/test/unittests/front_end/third_party/i18n \
- third_party/devtools-frontend/src/third_party \
- third_party/distributed_point_functions \
- third_party/dom_distiller_js \
- third_party/eigen3 \
- third_party/emoji-segmenter \
- third_party/farmhash \
- third_party/fdlibm \
-%if !%{system_ffmpeg}
- third_party/ffmpeg \
- third_party/opus \
-%endif
- third_party/fft2d \
- third_party/flatbuffers \
-%if !%{system_freetype}
- third_party/freetype \
-%endif
- third_party/fusejs \
- third_party/liburlpattern \
- third_party/libzip \
- third_party/gemmlowp \
- third_party/google_input_tools \
- third_party/google_input_tools/third_party/closure_library \
- third_party/google_input_tools/third_party/closure_library/third_party/closure \
- third_party/googletest \
-%if !%{system_harfbuzz}
- third_party/harfbuzz-ng \
-%endif
- third_party/harfbuzz-ng/utils \
- third_party/highway \
- third_party/hunspell \
- third_party/iccjpeg \
-%if !%{system_libicu}
- third_party/icu \
-%endif
- third_party/inspector_protocol \
- third_party/jinja2 \
- third_party/jsoncpp \
- third_party/jstemplate \
- third_party/khronos \
- third_party/leveldatabase \
- third_party/libaddressinput \
- third_party/libaom \
- third_party/libaom/source/libaom/third_party/fastfeat \
- third_party/libaom/source/libaom/third_party/vector \
- third_party/libaom/source/libaom/third_party/x86inc \
- third_party/libavif \
- third_party/libgav1 \
- third_party/libjingle \
- third_party/libjxl \
- third_party/libphonenumber \
- third_party/libsecret \
- third_party/libsrtp \
- third_party/libsync \
- third_party/libudev \
- third_party/libva_protected_content \
-%if !%{system_libvpx}
- third_party/libvpx \
- third_party/libvpx/source/libvpx/third_party/x86inc \
-%endif
- third_party/libwebm \
- third_party/libx11 \
- third_party/libxcb-keysyms \
-%if %{system_libxml2}
- third_party/libxml/chromium \
-%else
- third_party/libxml \
-%endif
- third_party/libXNVCtrl \
- third_party/libyuv \
- third_party/lottie \
- third_party/lss \
- third_party/lzma_sdk \
- third_party/mako \
- third_party/maldoca \
- third_party/maldoca/src/third_party/tensorflow_protos \
- third_party/maldoca/src/third_party/zlibwrappe \
- third_party/markupsafe \
- third_party/mesa \
- third_party/metrics_proto \
- third_party/minigbm \
-%if !%{system_minizip}
- third_party/minizip/ \
-%endif
- third_party/modp_b64 \
- third_party/nasm \
- third_party/nearby \
- third_party/neon_2_sse \
- third_party/node \
- third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2 \
- third_party/one_euro_filter \
- third_party/opencv \
- third_party/openh264 \
- third_party/openscreen \
- third_party/openscreen/src/third_party/mozilla \
- third_party/openscreen/src/third_party/tinycbor/src/src \
- third_party/ots \
- third_party/pdfium \
- third_party/pdfium/third_party/agg23 \
- third_party/pdfium/third_party/base \
- third_party/pdfium/third_party/bigint \
- third_party/pdfium/third_party/freetype \
- third_party/pdfium/third_party/lcms \
- third_party/pdfium/third_party/libopenjpeg20 \
- third_party/pdfium/third_party/libpng16 \
- third_party/pdfium/third_party/libtiff \
- third_party/pdfium/third_party/skia_shared \
- third_party/perfetto \
- third_party/perfetto/protos/third_party/chromium \
- third_party/pffft \
- third_party/ply \
- third_party/polymer \
- third_party/private-join-and-compute \
- third_party/private_membership \
- third_party/protobuf \
- third_party/protobuf/third_party/six \
- third_party/pyjson5 \
- third_party/qcms \
-%if !%{system_re2}
- third_party/re2 \
-%endif
- third_party/rnnoise \
- third_party/ruy \
- third_party/s2cellid \
- third_party/securemessage \
- third_party/shell-encryption \
- third_party/skia \
- third_party/skia/include/third_party/skcms \
- third_party/skia/include/third_party/vulkan \
- third_party/skia/third_party/vulkan \
- third_party/skia/third_party/skcms \
- third_party/smhasher \
- third_party/speech-dispatcher \
- third_party/sqlite \
- third_party/swiftshader \
- third_party/swiftshader/third_party/astc-encoder \
- third_party/swiftshader/third_party/llvm-10.0 \
- third_party/swiftshader/third_party/llvm-subzero \
- third_party/swiftshader/third_party/marl \
- third_party/swiftshader/third_party/subzero \
- third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1 \
- third_party/tcmalloc \
- third_party/tensorflow-text \
- third_party/tflite \
- third_party/tflite/src/third_party/eigen3 \
- third_party/tflite/src/third_party/fft2d \
- third_party/ukey2 \
- third_party/unrar \
- third_party/utf \
- third_party/usb_ids \
- third_party/usrsctp \
- third_party/vulkan \
- third_party/wayland \
- third_party/web-animations-js \
- third_party/webdriver \
- third_party/webgpu-cts \
- third_party/webrtc \
- third_party/webrtc/common_audio/third_party/ooura \
- third_party/webrtc/common_audio/third_party/spl_sqrt_floor \
- third_party/webrtc/modules/third_party/fft \
- third_party/webrtc/modules/third_party/g711 \
- third_party/webrtc/modules/third_party/g722 \
- third_party/webrtc/rtc_base/third_party/base64 \
- third_party/webrtc/rtc_base/third_party/sigslot \
- third_party/widevine \
- third_party/woff2 \
- third_party/wuffs \
- third_party/x11proto \
- third_party/xcbproto \
- third_party/xdg-utils \
- third_party/zlib/google \
- third_party/zxcvbn-cpp \
-%if !%{system_minizip}
- third_party/zlib \
-%endif
- tools/gn/src/base/third_party/icu \
- url/third_party/mozilla \
- v8/src/third_party/siphash \
- v8/src/third_party/valgrind \
- v8/src/third_party/utf8-decoder \
- v8/third_party/inspector_protocol \
- v8/third_party/v8
-
-# bundled eu-strip is for amd64 only and we don't want to pre-stripped binaries
-mkdir -p buildtools/third_party/eu-strip/bin || die
-ln -s %{_bindir}/true buildtools/third_party/eu-strip/bin/eu-strip || die
-
./build/linux/unbundle/replace_gn_files.py --system-libraries \
%if %{system_ffmpeg}
ffmpeg \
@@ -496,29 +255,42 @@ ln -s %{_bindir}/true buildtools/third_party/eu-strip/bin/eu-strip
|| die
%if %{system_harfbuzz}
harfbuzz-ng \
%endif
+%if %{system_flac}
flac \
+%endif
%if %{system_freetype}
freetype \
%endif
+%if %{system_fontconfig}
fontconfig \
+%endif
%if %{system_libicu}
icu \
%endif
+%if %{system_libdrm}
libdrm \
+%endif
+%if %{system_libjpeg}
libjpeg \
+%endif
+%if %{system_libpng}
libpng \
+%endif
%if %{system_libvpx}
libvpx \
%endif
+%if %{system_libwebp}
libwebp \
+%endif
%if %{system_libxml2}
libxml \
%endif
+%if %{system_xslt}
libxslt \
+%endif
%if %{system_re2}
re2 \
%endif
- snappy \
%if %{system_minizip}
zlib
%endif
@@ -529,14 +301,21 @@ sed -i 's|-g2|-g0|g' build/config/compiler/BUILD.gn
sed -i 's|//third_party/usb_ids|/usr/share/hwdata|g' \
services/device/public/cpp/usb/BUILD.gn
-# Allow building against system libraries in official builds
-sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
- tools/generate_shim_headers/generate_shim_headers.py || die
+sed -i \
+ -e 's/"-ffile-compilation-dir=."//g' \
+ -e 's/"-no-canonical-prefixes"//g' \
+ build/config/compiler/BUILD.gn
-# Fix the path to nodejs binary
mkdir -p third_party/node/linux/node-linux-x64/bin
ln -s %{_bindir}/node third_party/node/linux/node-linux-x64/bin/node
-#####################################BUILD#############################################
+
+mkdir -p buildtools/third_party/eu-strip/bin
+ln -sf %{_bindir}/strip buildtools/third_party/eu-strip/bin/eu-strip
+
+rm -f -- third_party/depot_tools/ninja
+ln -s %{_bindir}/ninja third_party/depot_tools/ninja
+ln -s %{_bindir}/python3 third_party/depot_tools/python
+
%build
%if 0%{?fedora} && 0%{?fedora} > 35
export PKG_CONFIG_PATH="%{_libdir}/compat-ffmpeg4/pkgconfig"
@@ -545,84 +324,99 @@ export
PKG_CONFIG_PATH="%{_libdir}/compat-ffmpeg4/pkgconfig"
ulimit -n 2048
#export compilar variables
-export CC=clang
-export CXX=clang++
-export AR=llvm-ar
-export NM=llvm-nm
-export CXXFLAGS="$CXXFLAGS -fpermissive"
-
-gn_args=(
- 'rpm_fusion_package_name="%{name}"'
- 'rpm_fusion_menu_name="%{menu_name}"'
- use_vaapi=true
- is_component_build=false
- is_official_build=true
- use_sysroot=false
- use_aura=true
- 'system_libdir="%{_lib}"'
- use_cups=true
- use_gnome_keyring=true
- use_gio=true
- use_kerberos=true
- use_libpci=true
- use_pulseaudio=true
- link_pulseaudio=true
+export CC="clang"
+export CXX="clang++"
+export AR="llvm-ar"
+export NM="llvm-nm"
+export READELF="llvm-readelf"
+
+export RANLIB="ranlib"
+export PATH="$PWD/third_party/depot_tools:$PATH"
+export CHROMIUM_RPATH="%{_libdir}/%{name}"
+
+FLAGS='-Wno-unknown-warning-option'
+
+export CFLAGS="$FLAGS"
+export CXXFLAGS="$FLAGS"
+
+CHROMIUM_GN_DEFINES=
+gn_arg() { CHROMIUM_GN_DEFINES="$CHROMIUM_GN_DEFINES $*"; }
+
+gn_arg 'rpm_fusion_package_name="%{name}"'
+gn_arg 'rpm_fusion_menu_name="%{menu_name}"'
+gn_arg custom_toolchain=\"//build/toolchain/linux/unbundle:default\"
+gn_arg host_toolchain=\"//build/toolchain/linux/unbundle:default\"
+gn_arg is_official_build=true
+gn_arg disable_fieldtrial_testing_config=true
+gn_arg use_custom_libcxx=false
+gn_arg use_sysroot=false
+gn_arg use_gio=true
+gn_arg use_glib=true
+gn_arg use_libpci=true
+gn_arg use_pulseaudio=true
+gn_arg use_aura=true
+gn_arg use_cups=true
+gn_arg use_kerberos=true
+gn_arg use_gold=false
+gn_arg use_vaapi=true
+gn_arg optimize_webui=false
%if %{system_freetype}
- use_system_freetype=true
+gn_arg use_system_freetype=true
%endif
- enable_widevine=true
%if %{system_harfbuzz}
- use_system_harfbuzz=true
-%endif
- 'ffmpeg_branding="Chrome"'
- proprietary_codecs=true
- enable_nacl=false
- enable_hangout_services_extension=true
+gn_arg use_system_harfbuzz=true
+%endif
+gn_arg link_pulseaudio=true
+gn_arg enable_hangout_services_extension=true
+gn_arg treat_warnings_as_errors=false
+gn_arg fatal_linker_warnings=false
+gn_arg system_libdir=\"%{_lib}\"
+gn_arg use_allocator=\"none\"
+gn_arg use_icf=false
+gn_arg enable_js_type_check=false
+gn_arg use_system_libwayland=true
+gn_arg use_system_wayland_scanner=true
+gn_arg use_bundled_weston=false
+
%ifarch aarch64
- 'target_cpu="arm64"'
-%endif
- fatal_linker_warnings=false
- treat_warnings_as_errors=false
- disable_fieldtrial_testing_config=true
- 'custom_toolchain="//build/toolchain/linux/unbundle:default"'
- 'host_toolchain="//build/toolchain/linux/unbundle:default"'
- 'google_api_key="%{api_key}"'
-)
-
-# Optimizations
-gn_args+=(
- enable_vr=false
+gn_arg 'target_cpu="arm64"'
+%endif
+
+# ffmpeg
+gn_arg ffmpeg_branding=\"Chrome\"
+gn_arg proprietary_codecs=true
+
+# Remove debug
+gn_arg is_debug=false
+gn_arg symbol_level=0
+
+gn_arg enable_nacl=false
+gn_arg is_component_build=false
+gn_arg enable_widevine=true
+
+gn_arg rtc_use_pipewire=true
+gn_arg rtc_link_pipewire=true
+
+gn_arg clang_base_path=\"%{_prefix}\"
+gn_arg is_clang=true
+gn_arg clang_use_chrome_plugins=false
+gn_arg use_lld=true
+gn_arg use_thin_lto=true
+gn_arg is_cfi=false
+gn_arg use_cfi_icall=false
+gn_arg chrome_pgo_phase=0
+
%if %{system_libicu}
- icu_use_data_file=false
-%endif
-)
-
-
-gn_args+=(
- is_debug=false
- is_clang=true
- clang_use_chrome_plugins=false
- use_custom_libcxx=false
- use_gold=false
- use_thin_lto=false
- use_lld=false
- is_cfi=false
-)
-
-#Pipewire
-gn_args+=(
- rtc_use_pipewire=true
- rtc_link_pipewire=true
-)
-
-#symbol
-gn_args+=(
- symbol_level=0
- blink_symbol_level=0
-)
-
-tools/gn/bootstrap/bootstrap.py --gn-gen-args "${gn_args[*]}"
-%{target}/gn --script-executable=%{__python3} gen --args="${gn_args[*]}"
%{target}
+gn_arg icu_use_data_file=false
+%endif
+
+gn_arg enable_vulkan=true
+
+gn_arg 'google_api_key="%{api_key}"'
+
+
+tools/gn/bootstrap/bootstrap.py --gn-gen-args="$CHROMIUM_GN_DEFINES"
--build-path=%{target}
+%{target}/gn --script-executable=%{__python3} gen --args="$CHROMIUM_GN_DEFINES"
%{target}
%ninja_build -C %{target} chrome chrome_sandbox
######################################Install####################################
%install
@@ -666,9 +460,10 @@ install -m 755 %{target}/libGLESv2.so %{buildroot}%{chromiumdir}/
install -m 644 %{target}/icudtl.dat %{buildroot}%{chromiumdir}/
%endif
install -m 644 %{target}/v8_context_snapshot.bin %{buildroot}%{chromiumdir}/
+install -m 644 %{target}/snapshot_blob.bin %{buildroot}%{chromiumdir}/
install -m 644 %{target}/*.pak %{buildroot}%{chromiumdir}/
install -m 644 %{target}/locales/*.pak %{buildroot}%{chromiumdir}/locales/
-install -m 644 %{target}/xdg* %{buildroot}%{chromiumdir}/
+install -m 755 %{target}/xdg* %{buildroot}%{chromiumdir}/
install -m 644 %{target}/MEIPreload/* %{buildroot}%{chromiumdir}/MEIPreload/
install -m 755 %{target}/swiftshader/*.so %{buildroot}%{chromiumdir}/swiftshader/
install -m 755 %{target}/libvk_swiftshader.so %{buildroot}%{chromiumdir}/
@@ -721,6 +516,7 @@ appstream-util validate-relax --nonet
"%{buildroot}%{_metainfodir}/%{name}.appda
%{chromiumdir}/icudtl.dat
%endif
%{chromiumdir}/v8_context_snapshot.bin
+%{chromiumdir}/snapshot_blob.bin
%{chromiumdir}/*.pak
%{chromiumdir}/xdg-mime
%{chromiumdir}/xdg-settings