diff options
-rw-r--r-- | .SRCINFO | 164 | ||||
-rw-r--r-- | .gitignore | 4 | ||||
-rw-r--r-- | PKGBUILD | 1314 | ||||
-rw-r--r-- | chromium-dev.install | 9 | ||||
-rw-r--r-- | chromium-qt6.patch | 9 | ||||
-rw-r--r-- | gclient_args.gni | 14 | ||||
-rw-r--r-- | system-opus.diff | 13 | ||||
-rw-r--r-- | use-oauth2-client-switches-as-default.patch | 17 |
8 files changed, 1002 insertions, 542 deletions
@@ -1,6 +1,6 @@ pkgbase = chromium-dev pkgdesc = The open-source project behind Google Chrome (Dev Channel) - pkgver = 97.0.4692.8 + pkgver = 126.0.6423.2 pkgrel = 1 url = http://www.chromium.org install = chromium-dev.install @@ -10,46 +10,154 @@ pkgbase = chromium-dev makedepends = ninja makedepends = python-protobuf makedepends = python-setuptools - makedepends = python makedepends = yasm makedepends = nasm makedepends = git - makedepends = hwids - makedepends = nodejs + makedepends = gn + makedepends = hwdata + makedepends = libspeechd makedepends = java-runtime-headless - depends = libxss - depends = nss - depends = pciutils - depends = xdg-utils - depends = gtk3 + makedepends = qt6-tools + depends = gcc-libs + depends = glibc + depends = flac + depends = alsa-lib + depends = libcups + depends = dbus + depends = libdrm + depends = expat + depends = libffi + depends = fontconfig + depends = glib2 + depends = harfbuzz + depends = libjpeg-turbo + depends = lcms2 + depends = openh264 + depends = opus + depends = pango + depends = libpipewire + depends = libpng depends = libpulse depends = libwebp - depends = libva - depends = opus + depends = libx11 + depends = libxcb + depends = libxcomposite + depends = libxdamage + depends = libxext + depends = libxfixes + depends = libxkbcommon + depends = libxml2 + depends = libxrandr + depends = libxtst + depends = libxslt + depends = mesa + depends = nspr + depends = nss depends = openjpeg2 - depends = bluez-libs - depends = libnet - depends = pipewire + depends = hicolor-icon-theme + depends = pciutils + depends = xdg-utils + depends = qt6-base optdepends = pepper-flash: PPAPI Flash Player optdepends = chromium-widevine: Widevine plugin (eg: Netflix) - optdepends = kdialog: Needed for file dialogs in KF5 - optdepends = kwalletmanager: Needed for storing passwords in KWallet5 - optdepends = org.freedesktop.secrets: password storage backend on GNOME / Xfce + optdepends = xdg-desktop-portal-gnome: GNOME portal support + optdepends = xdg-desktop-portal-kde: KDE portal support + optdepends = org.freedesktop.secrets: password storage backend on GNOME/Xfce/KDE optdepends = ttf-font: For some typography - source = https://commondatastorage.googleapis.com/chromium-browser-official/chromium-97.0.4692.8.tar.xz + optdepends = pipewire: WebRTC desktop sharing under Wayland + options = debug + options = !lto + source = chromium::git+https://chromium.googlesource.com/chromium/src.git#tag=126.0.6423.2 source = git+https://github.com/foutrelis/chromium-launcher.git + source = git+https://chromium.googlesource.com/chromium/tools/depot_tools.git#branch=main source = chromium-dev.svg - source = https://raw.githubusercontent.com/gentoo/gentoo/master/www-client/chromium/files/chromium-96-EnumTable-crash.patch - source = https://raw.githubusercontent.com/gentoo/gentoo/master/www-client/chromium/files/chromium-93-InkDropHost-crash.patch - source = https://raw.githubusercontent.com/gentoo/gentoo/master/www-client/chromium/files/chromium-shim_headers.patch - source = https://raw.githubusercontent.com/archlinux/svntogit-packages/packages/chromium/trunk/use-oauth2-client-switches-as-default.patch - sha256sums = 0e874db7c87fd814c044e75d462c42dcbf5b9c4c231597cc2de515a0bb938758 + source = gclient_args.gni + source = https://raw.githubusercontent.com/gentoo/gentoo/master/www-client/chromium/files/chromium-cross-compile.patch + source = https://raw.githubusercontent.com/gentoo/gentoo/master/www-client/chromium/files/chromium-111-InkDropHost-crash.patch + source = https://raw.githubusercontent.com/gentoo/gentoo/master/www-client/chromium/files/chromium-117-system-zstd.patch + source = https://raw.githubusercontent.com/gentoo/gentoo/master/www-client/chromium/files/chromium-124-libwebp-shim-sharpyuv.patch + source = use-oauth2-client-switches-as-default.patch + source = system-opus.diff + source = chromium-qt6.patch + source = copy_config.base64::https://chromium.googlesource.com/chromium/third_party/ffmpeg/+/a21071589971c54596dbbccbccdbac7bdd9d4e4c/chromium/scripts/copy_config.sh?format=TEXT + sha256sums = SKIP + sha256sums = SKIP sha256sums = SKIP sha256sums = 18a2dfc0a56b2fbbeb8ef16a19227b77bf9a6621c6021d04396e52a9a2313034 - sha256sums = bf0ab64df0121908ff0aa260643f73c02fe402a30eea824f89017ad3b9f518cf - sha256sums = 04bba6fb19ea5a4ab3949b65f06c88728a00ab296f42022ece62ca2fa25ec2e7 - sha256sums = fabf66cfb15449011a20e377d600573b6338cc4c52e3f28f80e0541772659e8b - sha256sums = e393174d7695d0bafed69e868c5fbfecf07aa6969f3b64596d0bae8b067e1711 + sha256sums = 8c403dd7d732e39b6660b3d841338794a9583fab75d597db13f53ad987b2e8d5 + sha256sums = 9f8e90672e7914e1974ea73de48336800204a188b94d8b03e3ddd64a97f5e630 + sha256sums = 960556d2b337e091a2954f14ba00b2f67ec7d54c2ff54302f98dcb9830ccd97f + sha256sums = 3a71bf3b242a6c0936cac3d90587fded243d7c65f7967697c9a99bd1fb93d4a8 + sha256sums = 500da684872586baf3824def9c8a4d51a54177dfcc0a4f15a611897af80409ee + sha256sums = de110bfd8b35b2c31f5e673672c16eb2a3405e158f18ce47255a119e4bc95b1d + sha256sums = 8db539e3665e98a8efb17c3a0e2a2a71f8d57729e3abf8d884d5e99e781f76b4 + sha256sums = aa8f0ac027e0c7bd73f9359e6e6166288f49e3a31a241d43a54a3a9d71797b34 + sha256sums = SKIP pkgname = chromium-dev - options = !strip + depends = gcc-libs + depends = glibc + depends = flac + depends = alsa-lib + depends = libcups + depends = dbus + depends = libdrm + depends = expat + depends = libffi + depends = fontconfig + depends = glib2 + depends = harfbuzz + depends = libjpeg-turbo + depends = lcms2 + depends = openh264 + depends = opus + depends = pango + depends = libpipewire + depends = libpng + depends = libpulse + depends = libwebp + depends = libx11 + depends = libxcb + depends = libxcomposite + depends = libxdamage + depends = libxext + depends = libxfixes + depends = libxkbcommon + depends = libxml2 + depends = libxrandr + depends = libxtst + depends = libxslt + depends = mesa + depends = nspr + depends = nss + depends = openjpeg2 + depends = hicolor-icon-theme + depends = pciutils + depends = xdg-utils + depends = qt6-base + depends = libFLAC.so + depends = libasound.so + depends = libdbus-1.so + depends = libexpat.so + depends = libffi.so + depends = libfontconfig.so + depends = libfontconfig.so + depends = libgio-2.0.so + depends = libglib-2.0.so + depends = libgobject-2.0.so + depends = libharfbuzz-subset.so + depends = libharfbuzz.so + depends = libjpeg.so + depends = liblcms2.so + depends = libopenh264.so + depends = libopus.so + depends = libpango-1.0.so + depends = libpipewire-0.3.so + depends = libpng16.so + depends = libpulse.so + depends = libwebp.so + depends = libwebpdemux.so + depends = libwebpmux.so + depends = libxkbcommon.so + depends = libxml2.so + depends = libxslt.so diff --git a/.gitignore b/.gitignore index 148d59231dff..8cabc3784de2 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,7 @@ !PKGBUILD !chromium-dev.install !chromium-dev.svg +!gclient_args.gni +!system-opus.diff +!chromium-qt6.patch +!use-oauth2-client-switches-as-default.patch @@ -4,100 +4,212 @@ # Contributor: Misc <andreas.reis@gmail.com> # Contributor: Jeagoss <jgoliver@jeago.com> # Contributor: Saikrishna Arcot <saiarcot895@gmail.com> and Steven Newbury <steve@snewbury.org.uk> (First Authors of VAAPI patch) +_USE_GTK=0 -######################### -## -- Build options -- ## -######################### +# Select only one: +_USE_QT5=0 +_USE_QT6=1 + +_VERBOSE_OUTPUT=0 ############################################## ## -- Package and components information -- ## ############################################## pkgname=chromium-dev -pkgver=97.0.4692.8 +pkgver=126.0.6423.2 pkgrel=1 pkgdesc="The open-source project behind Google Chrome (Dev Channel)" arch=('x86_64') url='http://www.chromium.org' license=('BSD') depends=( -# 'libsrtp' -# 'libxslt' - 'libxss' -# 'minizip' - 'nss' - 'pciutils' -# 're2' -# 'snappy' - 'xdg-utils' -# 'protobuf' -# 'libevent' -# 'ffmpeg' -# 'icu' # https://crbug.com/678661. - 'gtk3' -# 'openh264' - 'libpulse' - 'libwebp' -# 'libvpx' - 'libva' - 'opus' - 'openjpeg2' - 'bluez-libs' - 'libnet' - 'pipewire' - ) + 'gcc-libs' + 'glibc' + 'flac' + 'alsa-lib' +# 'brotli' + 'libcups' + 'dbus' + 'libdrm' + 'expat' + 'libffi' + 'fontconfig' +# 'freetype2' + 'glib2' + 'harfbuzz' + 'libjpeg-turbo' + 'lcms2' + 'openh264' + 'opus' + 'pango' + 'libpipewire' + 'libpng' + 'libpulse' + 'libwebp' + 'libx11' + 'libxcb' + 'libxcomposite' + 'libxdamage' + 'libxext' + 'libxfixes' + 'libxkbcommon' + 'libxml2' + 'libxrandr' + 'libxtst' + 'libxslt' + 'mesa' + 'nspr' + 'nss' + 'openjpeg2' + 'hicolor-icon-theme' + 'pciutils' + 'xdg-utils' +# 'double-conversion' +# 'dav1d' +# 'libyuv' +# 'jsoncpp' +# 'aom' +# 'libvpx' +# 'libva' +# 'protobuf' +# 'libevent' +# 'ffmpeg' +# 'icu' # https://crbug.com/678661. +# 're2' +# 'snappy' +# 'minizip' +# 'libsrtp' +) makedepends=( - 'gperf' - 'ninja' - 'python-protobuf' - 'python-setuptools' - 'python' - 'yasm' - 'nasm' - 'git' - 'hwids' - 'nodejs' - 'java-runtime-headless' - ) + 'gperf' + 'ninja' + 'python-protobuf' + 'python-setuptools' + 'yasm' + 'nasm' + 'git' + 'gn' + 'hwdata' + 'libspeechd' + 'java-runtime-headless' +# 'abseil-cpp' +# 'woff2' +) optdepends=( - 'pepper-flash: PPAPI Flash Player' - 'chromium-widevine: Widevine plugin (eg: Netflix)' - # - 'kdialog: Needed for file dialogs in KF5' - 'kwalletmanager: Needed for storing passwords in KWallet5' - 'org.freedesktop.secrets: password storage backend on GNOME / Xfce' - # - 'ttf-font: For some typography' - ) + 'pepper-flash: PPAPI Flash Player' + 'chromium-widevine: Widevine plugin (eg: Netflix)' + 'xdg-desktop-portal-gnome: GNOME portal support' + 'xdg-desktop-portal-kde: KDE portal support' + # + 'org.freedesktop.secrets: password storage backend on GNOME/Xfce/KDE' + # + 'ttf-font: For some typography' + 'pipewire: WebRTC desktop sharing under Wayland' +) source=( - #"https://gsdview.appspot.com/chromium-browser-official/chromium-${pkgver}.tar.xz" - "https://commondatastorage.googleapis.com/chromium-browser-official/chromium-${pkgver}.tar.xz" - 'git+https://github.com/foutrelis/chromium-launcher.git' - 'chromium-dev.svg' - # Patch form Gentoo. - 'https://raw.githubusercontent.com/gentoo/gentoo/master/www-client/chromium/files/chromium-96-EnumTable-crash.patch' - 'https://raw.githubusercontent.com/gentoo/gentoo/master/www-client/chromium/files/chromium-93-InkDropHost-crash.patch' - 'https://raw.githubusercontent.com/gentoo/gentoo/master/www-client/chromium/files/chromium-shim_headers.patch' - # Misc Patches. -# - # Patch from crbug.com (chromium bugtracker), chromium-review.googlesource.com / Gerrit or Arch chromium package. - 'https://raw.githubusercontent.com/archlinux/svntogit-packages/packages/chromium/trunk/use-oauth2-client-switches-as-default.patch' - ) +# "https://gsdview.appspot.com/chromium-browser-official/chromium-${pkgver}.tar.xz" +# "https://commondatastorage.googleapis.com/chromium-browser-official/chromium-${pkgver}.tar.xz" + "chromium::git+https://chromium.googlesource.com/chromium/src.git#tag=${pkgver}" + 'git+https://github.com/foutrelis/chromium-launcher.git' + 'git+https://chromium.googlesource.com/chromium/tools/depot_tools.git#branch=main' + 'chromium-dev.svg' + 'gclient_args.gni' + # Patch form Gentoo. + 'https://raw.githubusercontent.com/gentoo/gentoo/master/www-client/chromium/files/chromium-cross-compile.patch' + 'https://raw.githubusercontent.com/gentoo/gentoo/master/www-client/chromium/files/chromium-111-InkDropHost-crash.patch' + 'https://raw.githubusercontent.com/gentoo/gentoo/master/www-client/chromium/files/chromium-117-system-zstd.patch' + 'https://raw.githubusercontent.com/gentoo/gentoo/master/www-client/chromium/files/chromium-124-libwebp-shim-sharpyuv.patch' + # Misc Patches. + + # Patch from crbug.com (chromium bugtracker), chromium-review.googlesource.com / Gerrit or Arch chromium package. + 'use-oauth2-client-switches-as-default.patch' #'https://raw.githubusercontent.com/archlinux/svntogit-packages/packages/chromium/trunk/use-oauth2-client-switches-as-default.patch' + 'system-opus.diff' + 'chromium-qt6.patch' # https://issues.chromium.org/issues/332724863 + 'copy_config.base64::https://chromium.googlesource.com/chromium/third_party/ffmpeg/+/a21071589971c54596dbbccbccdbac7bdd9d4e4c/chromium/scripts/copy_config.sh?format=TEXT' +) sha256sums=( - #"$(curl -sL https://gsdview.appspot.com/chromium-browser-official/chromium-${pkgver}.tar.xz.hashes | grep sha256 | cut -d ' ' -f3)" - "$(curl -sL https://commondatastorage.googleapis.com/chromium-browser-official/chromium-${pkgver}.tar.xz.hashes | grep sha256 | cut -d ' ' -f3)" - 'SKIP' - '18a2dfc0a56b2fbbeb8ef16a19227b77bf9a6621c6021d04396e52a9a2313034' - # Patch form Gentoo - 'bf0ab64df0121908ff0aa260643f73c02fe402a30eea824f89017ad3b9f518cf' - '04bba6fb19ea5a4ab3949b65f06c88728a00ab296f42022ece62ca2fa25ec2e7' - 'fabf66cfb15449011a20e377d600573b6338cc4c52e3f28f80e0541772659e8b' - # Misc Patches -# - # Patch from crbug (chromium bugtracker) or Arch chromium package - 'e393174d7695d0bafed69e868c5fbfecf07aa6969f3b64596d0bae8b067e1711' - ) +# "$(curl -sL https://gsdview.appspot.com/chromium-browser-official/chromium-${pkgver}.tar.xz.hashes | grep sha256 | cut -d ' ' -f3)" +# "$(curl -sL https://commondatastorage.googleapis.com/chromium-browser-official/chromium-${pkgver}.tar.xz.hashes | grep sha256 | cut -d ' ' -f3)" + 'SKIP' + 'SKIP' + 'SKIP' + '18a2dfc0a56b2fbbeb8ef16a19227b77bf9a6621c6021d04396e52a9a2313034' + '8c403dd7d732e39b6660b3d841338794a9583fab75d597db13f53ad987b2e8d5' + # Patch form Gentoo + '9f8e90672e7914e1974ea73de48336800204a188b94d8b03e3ddd64a97f5e630' + '960556d2b337e091a2954f14ba00b2f67ec7d54c2ff54302f98dcb9830ccd97f' + '3a71bf3b242a6c0936cac3d90587fded243d7c65f7967697c9a99bd1fb93d4a8' + '500da684872586baf3824def9c8a4d51a54177dfcc0a4f15a611897af80409ee' + # Misc Patches + + # Patch from crbug (chromium bugtracker) or Arch chromium package + 'de110bfd8b35b2c31f5e673672c16eb2a3405e158f18ce47255a119e4bc95b1d' + '8db539e3665e98a8efb17c3a0e2a2a71f8d57729e3abf8d884d5e99e781f76b4' + 'aa8f0ac027e0c7bd73f9359e6e6166288f49e3a31a241d43a54a3a9d71797b34' + 'SKIP' +) +options=('debug' '!lto') # Chromium adds its own flags for ThinLTO install=chromium-dev.install +_keeplibs=() +_flags=() +_use_system=() + +if [ "${_USE_GTK}" == "1" ]; then + depends+=( + 'cairo' 'libcairo.so' + 'libgio-2.0.so' + 'libxslt' 'libxslt.so' + 'at-spi2-core' 'libatk-1.0.so' 'libatk-bridge-2.0.so' 'libatspi.so' + ) + makedepends+=( + 'gtk3' +# 'gtk4' + ) + _flags+=( + 'use_gtk=true' + 'use_gio=true' + 'gtk_version=3' +# 'gtk_version=4' + 'enable_remoting=true' +) +else + _flags+=( + 'use_gtk=false' + 'use_gio=false' + 'enable_remoting=false' # side-efect if disable GTK :( + ) +fi + +if [ "${_USE_QT5}" == "1" ] || [ "${_USE_QT6}" == "1" ]; then + _flags+=('use_qt=true') + if [ "${_USE_QT5}" == "1" ]; then + depends+=('qt5-base') # 'libQt5Core.so' 'libQt5Gui.so' 'libQt5Widgets.so') + makedepends+=('qt5-tools') + _flags+=( + 'use_qt6=false' + "moc_qt5_path=\"$(qtpaths --binaries-dir)\"" + ) + fi + if [ "${_USE_QT6}" == "1" ]; then + depends+=('qt6-base') # 'libQt6Core.so' 'libQt6Gui.so' 'libQt6Widgets.so') + makedepends+=('qt6-tools') + _flags+=( + 'use_qt6=true' + "moc_qt6_path=\"/usr/lib/qt6\"" + ) + fi +else + _flags+=('use_qt=false') +fi + + +if [ "${_VERBOSE_OUTPUT}" == "1" ]; then + _verbose_ffmpeg="'V=1'," + _verbose_output="-v" +fi + + ################################################ ## -- Don't touch anything below this line -- ## ################################################ @@ -110,350 +222,411 @@ _google_api_key="AIzaSyDwr302FpOSkGRpLlUpPThNTDPbXcIn_FM" #_google_default_client_id="413772536636.apps.googleusercontent.com" #_google_default_client_secret="0ZChLK6AxeA3Isu96MkwqDR4" -# List of third-party components needed for build chromium. The rest is removed by remove_bundled_libraries srcipt in prepare(). -_keeplibs=( - 'base/third_party/cityhash' - 'base/third_party/double_conversion' - 'base/third_party/dynamic_annotations' - 'base/third_party/icu' - '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' - 'buildtools/third_party/eu-strip' - 'chrome/third_party/mozilla_security_manager' - 'courgette/third_party' - 'native_client/src/third_party/dlmalloc' - 'native_client_sdk/src/libraries/third_party/newlib-extras' - '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/apple_apsl' - 'third_party/axe-core' - 'third_party/blink' - 'third_party/boringssl' - 'third_party/boringssl/src/third_party/fiat' - '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-4.9.3' - 'third_party/catapult/third_party/html5lib-1.1' - '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/dav1d' - 'third_party/dawn' - 'third_party/dawn/third_party/khronos' - 'third_party/dawn/third_party/tint' - 'third_party/depot_tools' - '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/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' - 'third_party/fft2d' - 'third_party/ffmpeg' - 'third_party/flatbuffers' - 'third_party/freetype' - 'third_party/freetype-testing' - 'third_party/fusejs' - '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' - 'third_party/harfbuzz-ng' - 'third_party/highway' - 'third_party/hunspell' - 'third_party/iccjpeg' - 'third_party/inspector_protocol' - 'third_party/jinja2' - 'third_party/jsoncpp' - 'third_party/jstemplate' - 'third_party/khronos' - 'third_party/leveldatabase' - 'third_party/libXNVCtrl' - '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/libdrm' - 'third_party/libgav1' - 'third_party/libgifcodec' - 'third_party/libjingle' - 'third_party/libjxl' - 'third_party/libphonenumber' - 'third_party/libsecret' - 'third_party/libsrtp' - 'third_party/libsync' - 'third_party/libudev' - 'third_party/liburlpattern' - 'third_party/libva_protected_content' - 'third_party/libvpx' - 'third_party/libvpx/source/libvpx/third_party/x86inc' - 'third_party/libwebm' - 'third_party/libx11' - 'third_party/libxcb-keysyms' - 'third_party/libxml' - 'third_party/libxml/chromium' - 'third_party/libxslt' - 'third_party/libyuv' - 'third_party/libzip' - 'third_party/llvm' - '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/zlibwrapper' - 'third_party/markupsafe' - 'third_party/mesa' - 'third_party/metrics_proto' - 'third_party/minigbm' - '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' - 'third_party/re2' - 'third_party/rnnoise' - 'third_party/s2cellid' - 'third_party/securemessage' - 'third_party/shell-encryption' - 'third_party/simplejson' - 'third_party/skia' - 'third_party/skia/include/third_party/skcms' - 'third_party/skia/include/third_party/vulkan' - 'third_party/skia/third_party/skcms' - 'third_party/skia/third_party/vulkan' - 'third_party/smhasher' - 'third_party/sqlite' - 'third_party/swiftshader' - 'third_party/swiftshader/third_party/astc-encoder' - '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/tcmalloc' - 'third_party/ruy' - 'third_party/six' - 'third_party/snappy' - 'third_party/ukey2' - 'third_party/unrar' - 'third_party/usrsctp' - 'third_party/utf' - 'third_party/vulkan' - 'third_party/wayland' - 'third_party/wayland-protocols' - '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/zxcvbn-cpp' - 'third_party/zlib' # /google - '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' - - # gyp -> gn leftovers. - 'base/third_party/libevent' - 'third_party/speech-dispatcher' - 'third_party/usb_ids' - 'third_party/xdg-utils' - ) - +# List of third-party components neededs keep for build chromium. The rest is removed by remove_bundled_libraries srcipt in prepare(). _keeplibs+=( - 'third_party/icu' # https://crbug.com/678661. - ) + 'base/third_party/cityhash' + 'base/third_party/double_conversion' + 'base/third_party/dynamic_annotations' + 'base/third_party/icu' + 'base/third_party/nspr' + 'base/third_party/superfasthash' + 'base/third_party/symbolize' + 'base/third_party/valgrind' + '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_sdk/src/libraries/third_party/newlib-extras' + '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/xxhash' + 'third_party/angle/src/third_party/ceval' + 'third_party/angle/src/third_party/libXNVCtrl' + 'third_party/angle/src/third_party/volk' + 'third_party/anonymous_tokens' + 'third_party/apple_apsl' + 'third_party/axe-core' + 'third_party/blink' + 'third_party/bidimapper' + 'third_party/boringssl' + 'third_party/boringssl/src/third_party/fiat' + '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-4.9.3' + 'third_party/catapult/third_party/html5lib-1.1' + '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/content_analysis_sdk' + 'third_party/cpuinfo' + '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/d3' + 'third_party/dav1d' + 'third_party/dawn' + 'third_party/dawn/third_party/gn/webgpu-cts' + 'third_party/dawn/third_party/khronos' + 'third_party/depot_tools' + 'third_party/depot_tools' + 'third_party/depot_tools/third_party/colorama' + 'third_party/depot_tools/third_party/repo' + 'third_party/depot_tools/third_party/schema' + '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/codemirror.next' + 'third_party/devtools-frontend/src/front_end/third_party/csp_evaluator' + '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' + '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/puppeteer/package/lib/esm/third_party/mitt' + 'third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/rxjs' + 'third_party/devtools-frontend/src/front_end/third_party/vscode.web-custom-data' + 'third_party/devtools-frontend/src/front_end/third_party/wasmparser' + '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' + 'third_party/fft2d' + 'third_party/ffmpeg' + 'third_party/flatbuffers' + 'third_party/fp16' + 'third_party/freetype' + 'third_party/freetype-testing' + 'third_party/fusejs' + 'third_party/fxdiv' + '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' + 'third_party/harfbuzz-ng' + 'third_party/highway' + 'third_party/hunspell' + 'third_party/iccjpeg' + 'third_party/icu' # https://crbug.com/678661. + 'third_party/inspector_protocol' + 'third_party/ipcz' + 'third_party/jinja2' + 'third_party/jsoncpp' + 'third_party/jstemplate' + 'third_party/khronos' + 'third_party/lens_server_proto' + 'third_party/leveldatabase' + 'third_party/libaddressinput' + 'third_party/libaom' + 'third_party/libaom/source/libaom/third_party/fastfeat' + 'third_party/libaom/source/libaom/third_party/SVT-AV1' + 'third_party/libaom/source/libaom/third_party/vector' + 'third_party/libaom/source/libaom/third_party/x86inc' + 'third_party/libavif' + 'third_party/libc++' + 'third_party/libevent' + 'third_party/libgav1' + 'third_party/libjingle' + 'third_party/libphonenumber' + 'third_party/libsecret' + 'third_party/libsrtp' + 'third_party/libsync' + 'third_party/libudev' + 'third_party/liburlpattern' + 'third_party/libva_protected_content' + 'third_party/libvpx' + 'third_party/libvpx/source/libvpx/third_party/x86inc' + 'third_party/libwebm' + 'third_party/libx11' + 'third_party/libxcb-keysyms' + 'third_party/libxml' #/chromium' + 'third_party/libyuv' + 'third_party/libzip' + 'third_party/lit' +# 'third_party/llvm' + '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/zlibwrapper' + 'third_party/markupsafe' + 'third_party/material_color_utilities' + 'third_party/mesa_headers' + 'third_party/metrics_proto' + 'third_party/minigbm' + 'third_party/modp_b64' + 'third_party/nasm' + 'third_party/nearby' + 'third_party/neon_2_sse' + 'third_party/node' + 'third_party/omnibox_proto' + 'third_party/one_euro_filter' + 'third_party/openscreen' + 'third_party/ots' + 'third_party/pdfium' + 'third_party/pdfium/third_party/agg23' + 'third_party/pdfium/third_party/bigint' + 'third_party/pdfium/third_party/freetype' + 'third_party/pdfium/third_party/lcms' + 'third_party/pdfium/third_party/libopenjpeg' + 'third_party/pdfium/third_party/libtiff' + '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/pthreadpool' + 'third_party/puffin' + 'third_party/pyjson5' + 'third_party/pyyaml' + 'third_party/qcms' + 'third_party/re2' + 'third_party/rnnoise' + 'third_party/rust' + 'third_party/s2cellid' + 'third_party/securemessage' + 'third_party/selenium-atoms' + 'third_party/shell-encryption' + 'third_party/simplejson' + 'third_party/skia' + 'third_party/skia/include/third_party/vulkan' + 'third_party/skia/third_party/vulkanmemoryallocator' + 'third_party/smhasher' + 'third_party/sqlite' + 'third_party/swiftshader' + 'third_party/swiftshader/third_party/astc-encoder' + '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' + 'third_party/swiftshader/third_party/SPIRV-Tools' + 'third_party/tensorflow_models' + 'third_party/tensorflow-text' + 'third_party/tflite' + 'third_party/tflite/src/third_party/eigen3' + 'third_party/tflite/src/third_party/fft2d' + 'third_party/tflite/src/third_party/xla' + 'third_party/tflite/src/third_party/xla/third_party/tsl' + 'third_party/ruy' + 'third_party/six' + 'third_party/snappy' + 'third_party/ukey2' + 'third_party/unrar' + 'third_party/utf' + 'third_party/vulkan-deps' + 'third_party/vulkan_memory_allocator' + 'third_party/wayland' + '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/xnnpack' + 'third_party/zlib' # /google + 'third_party/zstd' + 'third_party/zxcvbn-cpp' + 'url/third_party/mozilla' + 'v8/src/third_party/siphash' + 'v8/src/third_party/valgrind' + 'v8/src/third_party/utf8-decoder' + 'v8/third_party/glibc' + 'v8/third_party/inspector_protocol' + 'v8/third_party/v8' + + # gyp -> gn leftovers. + 'third_party/speech-dispatcher' + 'third_party/usb_ids' + 'third_party/xdg-utils' +) # Set build flags. -_flags=( - "custom_toolchain=\"//build/toolchain/linux/unbundle:default\"" - "host_toolchain=\"//build/toolchain/linux/unbundle:default\"" - 'is_debug=false' - 'is_official_build=false' - 'chrome_pgo_phase=0' # unsupported instrumentation profile format version - 'is_component_build=true' - 'enable_widevine=true' - 'enable_hangout_services_extension=true' - "ffmpeg_branding=\"ChromeOS\"" - 'proprietary_codecs=true' - "google_api_key=\"${_google_api_key}\"" -# "google_default_client_id=\"${_google_default_client_id}\"" -# "google_default_client_secret=\"${_google_default_client_secret}\"" - 'disable_fieldtrial_testing_config=true' - 'blink_enable_generated_code_formatting=false' - 'blink_symbol_level=0' - 'use_aura=true' - 'use_gio=false' - 'use_gnome_keyring=false' - 'link_pulseaudio=true' - 'use_sysroot=false' - 'treat_warnings_as_errors=false' - 'enable_nacl=true' - 'enable_nacl_nonsfi=true' - 'use_custom_libcxx=true' # use true if you want use bundled RE2 - 'use_vaapi=true' - 'enable_platform_hevc=true' - 'enable_platform_ac3_eac3_audio=true' - 'enable_platform_mpeg_h_audio=true' - 'enable_platform_dolby_vision=true' - 'enable_mse_mpeg2ts_stream_parser=true' - 'clang_use_chrome_plugins=true' - 'use_gold=false' - 'use_dbus=true' - 'use_thin_lto=false' - 'enable_pseudolocales=false' - 'enable_platform_hevc=true' - 'enable_platform_hevc_decoding=true' - 'dcheck_always_on=false' - 'dcheck_is_configurable=false' - 'use_system_harfbuzz=false' - 'use_system_freetype=false' - 'use_system_lcms2=true' - 'use_system_minigbm=true' - 'use_system_libwayland=true' - 'use_system_libpng=true' -# 'use_system_libsync=true' - 'use_system_libopenjpeg2=true' - 'use_system_wayland_scanner=true' - 'rtc_use_pipewire=true' - 'rtc_link_pipewire=true' - ) +_flags+=( + "custom_toolchain=\"//build/toolchain/linux/unbundle:default\"" + "host_toolchain=\"//build/toolchain/linux/unbundle:default\"" + 'is_debug=false' + 'symbol_level=0' # sufficient for backtraces on x86(_64) + 'is_official_build=false' + 'chrome_pgo_phase=0' # unsupported instrumentation profile format version + 'is_component_build=true' + 'enable_widevine=true' + 'enable_hangout_services_extension=true' + "ffmpeg_branding=\"ChromeOS\"" + 'proprietary_codecs=true' + "google_api_key=\"${_google_api_key}\"" +# "google_default_client_id=\"${_google_default_client_id}\"" +# "google_default_client_secret=\"${_google_default_client_secret}\"" + 'disable_fieldtrial_testing_config=true' + 'blink_enable_generated_code_formatting=false' + 'blink_symbol_level=0' + 'use_cups=true' + 'use_kerberos=true' + 'use_pulseaudio=true' + 'link_pulseaudio=true' + 'use_vaapi=true' + 'rtc_use_pipewire=true' + 'rtc_link_pipewire=true' + 'use_dbus=true' + 'use_sysroot=false' + 'use_gold=false' + 'treat_warnings_as_errors=false' + 'enable_nacl=true' + 'use_custom_libcxx=true' # use true if you want use bundled RE2 + 'enable_platform_hevc=true' + 'enable_platform_ac3_eac3_audio=true' + 'enable_platform_mpeg_h_audio=true' + 'enable_platform_dolby_vision=true' + 'enable_mse_mpeg2ts_stream_parser=true' + 'is_clang=true' + 'clang_use_chrome_plugins=false' + 'enable_pseudolocales=false' + 'dcheck_always_on=false' + 'dcheck_is_configurable=false' + 'use_system_harfbuzz=true' + 'use_system_freetype=false' + 'use_system_lcms2=true' + 'use_system_libpng=true' + 'use_system_libsync=false' + 'use_system_libopenjpeg2=true' + 'use_system_libffi=true' + 'v8_use_libm_trig_functions=true' +) # Set the bundled/external components. -# TODO: need ported to GN as GYP doing before. see status page: https://crbug.com/551343. -_use_system=( -# 'ffmpeg' # I'm not sure why, but all videos stop playback if use system ffmpeg. - 'flac' - 'fontconfig' -# 'freetype' -# 'harfbuzz-ng' -# 'icu' # https://crbug.com/678661. - 'libdrm' -# 'libevent' # Get segfaults and other problems https://bugs.gentoo.org/593458. - 'libjpeg' - 'libpng' -# 'libvpx' - 'libwebp' -# 'libxml' -# 'libxslt' -# 'openh264' - 'opus' -# 're2' -# 'snappy' -# 'zlib' # NaCL needs it - ) +# list of unbundled options: +# https://chromium.googlesource.com/chromium/src/+/refs/tags/${pkgver}/build/linux/unbundle/ +_use_system+=( +# 'absl_algorithm' # NaCL needs the bundled one +# 'absl_base' # NaCL needs the bundled one +# 'absl_cleanup' # NaCL needs the bundled one +# 'absl_container' # NaCL needs the bundled one +# 'absl_debugging' # NaCL needs the bundled one +# 'absl_flags' # NaCL needs the bundled one +# 'absl_functional' # NaCL needs the bundled one +# 'absl_hash' # NaCL needs the bundled one +# 'absl_log' # NaCL needs the bundled one +# 'absl_log_internal' # NaCL needs the bundled one +# 'absl_memory' # NaCL needs the bundled one +# 'absl_meta' # NaCL needs the bundled one +# 'absl_numeric' # NaCL needs the bundled one +# 'absl_random' # NaCL needs the bundled one +# 'absl_status' # NaCL needs the bundled one +# 'absl_strings' # NaCL needs the bundled one +# 'absl_synchronization' # NaCL needs the bundled one +# 'absl_time' # NaCL needs the bundled one +# 'absl_types' # NaCL needs the bundled one +# 'absl_utility' # NaCL needs the bundled one +# 'brotli' # Needs update +# 'crc32c' +# 'dav1d' # Fails due undeclared identifier +# 'double-conversion' # NaCL needs the bundled one +# 'ffmpeg' # I'm not sure why, but all videos stop playback if use system ffmpeg. + 'flac' + 'fontconfig' +# 'freetype' # Neeeds private headers + 'harfbuzz-ng' +# 'icu' # https://crbug.com/678661. +# 'jsoncpp' # Fails due undefined symbols +# 'libaom' # Fails due undeclared identifier +# 'libavif' # Fails due undeclared identifier + 'libdrm' +# 'libevent' # Get segfaults and other problems https://bugs.gentoo.org/593458. + 'libjpeg' + 'libpng' +# 'libvpx' # Some components hardcode the bundled code + 'libwebp' +# 'libxml' +# 'libXNVCtrl.gn' + 'libxslt' +# 'libyuv' # Missing pkg-config file + 'openh264' + 'opus' +# 're2' # Needs disable if build with clang +# 'snappy' # Needs disable if build with clang + 'swiftshader-SPIRV-Headers' +# 'swiftshader-SPIRV-Tools' # Fails due undefined symbols + 'vulkan-SPIRV-Headers' +# 'vulkan-SPIRV-Tools' # Fails due undefined symbols +# 'woff2' # Fails due undefined symbols +# 'zlib' # NaCL needs the bundled one +) + +CFLAGS="${CFLAGS/-march=x86-64 -mtune=generic/}" +CXXFLAGS="${CFLAGS/-march=x86-64 -mtune=generic/}" +CFLAGS="${CFLAGS/-march=native/}" +CXXFLAGS="${CFLAGS/-march=native/}" # Facilitate deterministic builds (taken from build/config/compiler/BUILD.gn). CFLAGS+=' -Wno-builtin-macro-redefined' CXXFLAGS+=' -Wno-builtin-macro-redefined' CPPFLAGS+=' -D__DATE__= -D__TIME__= -D__TIMESTAMP__=' -# Conditionals. -if check_option strip y; then - _flags+=('symbol_level=0') -fi +# Let Chromium set its own symbol level +CFLAGS=${CFLAGS/-g } +CXXFLAGS=${CXXFLAGS/-g } + +# https://github.com/ungoogled-software/ungoogled-chromium-archlinux/issues/123 +CFLAGS=${CFLAGS/-fexceptions} +CFLAGS=${CFLAGS/-fcf-protection} +CXXFLAGS=${CXXFLAGS/-fexceptions} +CXXFLAGS=${CXXFLAGS/-fcf-protection} + +# This appears to cause random segfaults when combined with ThinLTO +# https://bugs.archlinux.org/task/73518 +CFLAGS=${CFLAGS/-fstack-clash-protection} +CXXFLAGS=${CXXFLAGS/-fstack-clash-protection} + +# https://crbug.com/957519#c122 +CXXFLAGS=${CXXFLAGS/-Wp,-D_GLIBCXX_ASSERTIONS} + +# Seems bundled clang don't like Debug flag -fvar-tracking-assignments. +DEBUG_CFLAGS=${DEBUG_CFLAGS/-fvar-tracking-assignments} +DEBUG_CXXFLAGS=${DEBUG_CXXFLAGS/-fvar-tracking-assignments} if check_buildoption ccache y; then # Avoid falling back to preprocessor mode when sources contain time macros. @@ -466,7 +639,7 @@ if [ ! -f "${BUILDDIR}/PKGBUILD" ]; then _builddir="/${pkgname}" fi -_clang_path="${BUILDDIR}${_builddir}/src/chromium-${pkgver}/third_party/llvm-build/Release+Asserts/bin/" +_clang_path="${BUILDDIR}${_builddir}/src/chromium/third_party/llvm-build/Release+Asserts/bin/" export CC="${_clang_path}clang" export CXX="${_clang_path}clang++" @@ -478,29 +651,55 @@ _lld="ld.lld" ################################################ prepare() { - cd "${srcdir}/chromium-${pkgver}" - # Py3toniced. - 2to3 -w --no-diff third_party/ffmpeg/chromium/scripts/build_ffmpeg.py + cat >.gclient <<EOF +solutions = [ + { + "name": "src", + "url": "file://${srcdir}/chromium", + "deps_file": "DEPS", + "managed": False, + "custom_deps": { + "src": None, + }, + "custom_vars": {}, + }, +] +EOF - # Remove most bundled libraries. Some are still needed. - msg2 "Removing unnecessary components to save disk space." - build/linux/unbundle/remove_bundled_libraries.py ${_keeplibs[@]} --do-remove + # enable again nacl(?) + sed "s|'checkout_nacl': 'checkout_chromeos',|'checkout_nacl': 'host_os == \"linux\"',|g" -i chromium/DEPS - msg2 "Changing bundle libraries to system ones." - build/linux/unbundle/replace_gn_files.py --system-libraries ${_use_system[@]} + export PATH+=":${PWD}/depot_tools" DEPOT_TOOLS_UPDATE=0 + export VPYTHON_BYPASS='manually managed python not supported by chrome operations' - msg2 "Setup NaCl/PNaCl SDK: Download and install toolchains" - build/download_nacl_toolchains.py --packages saigo_newlib,nacl_x86_newlib,pnacl_newlib,pnacl_translator sync --extract + echo "Linking chromium from sources..." + ln -s chromium src - msg2 "Download prebuild clang from Google" - tools/clang/scripts/update.py + depot_tools/gclient.py sync -D \ + --nohooks \ + --shallow \ + --no-history \ + --no_bootstrap \ + --with_branch_heads \ + --with_tags + + cd "${srcdir}/chromium" + + cp "${srcdir}/gclient_args.gni" build/config/gclient_args.gni + + build/util/lastchange.py -o build/util/LASTCHANGE + build/util/lastchange.py -m GPU_LISTS_VERSION --revision-id-only --header gpu/config/gpu_lists_version.h + build/util/lastchange.py -m SKIA_COMMIT_HASH -s third_party/skia --header skia/ext/skia_commit_hash.h + build/util/lastchange.py -s third_party/dawn --revision gpu/webgpu/DAWN_VERSION # Use chromium-dev as brand name. sed -e 's|=Chromium|&-Dev|g' \ -i chrome/app/theme/chromium/BRANDING sed -e '0,/output_name = "chrome"/s/= "chrome"/= "chromium-dev"/' \ -e 's|root_out_dir/chrome"|root_out_dir/chromium-dev"|g' \ + -e 's|root_out_dir/chrome.debug"|root_out_dir/chromium-dev.debug"|g' \ + -e 's|root_out_dir/chrome.stripped"|root_out_dir/chromium-dev.stripped"|g' \ -i chrome/BUILD.gn sed -e 's|"chromium-browser"|"chromium-dev"|g' \ -e 's|"Chromium"|"Chromium-Dev"|g' \ @@ -508,20 +707,22 @@ prepare() { sed -e 's|"Chromium|&-Dev|g' \ -i chrome/common/chrome_constants.cc sed -e 's|chromium-browser|chromium-dev|g' \ - -i chrome/browser/shell_integration_linux.cc \ - -i ui/gtk/gtk_util.cc + -i chrome/browser/shell_integration_linux.cc sed -e 's|chromium|&-dev|' \ -i chrome/common/chrome_paths_linux.cc sed -e 's|/etc/chromium|&-dev|' \ -e 's|/usr/share/chromium|&-dev|' \ - -i chrome/common/chrome_paths.cc + -i chrome/common/chrome_paths.cc \ + -i chrome/browser/web_applications/preinstalled_web_apps/README.md \ + -i chrome/browser/web_applications/preinstalled_web_app_manager.cc sed -e 's|/etc/chromium|&-dev|' \ -e "s|'app_name': 'Chromium|&-Dev|g" \ -i components/policy/tools/template_writers/writer_configuration.py # Fix(?) the name of the sandbox. sed -e 's|chrome-sandbox|chrome_sandbox|g'\ - -i sandbox/linux/suid/client/setuid_sandbox_host.cc + -i sandbox/linux/suid/client/setuid_sandbox_host.cc \ + -i sandbox/linux/suid/client/setuid_sandbox_host.h msg2 "Patching the sources" @@ -539,15 +740,32 @@ prepare() { -e 's/\<xmlFree\>/free/' \ -i third_party/blink/renderer/core/xml/*.cc \ -i third_party/blink/renderer/core/xml/parser/xml_document_parser.cc \ - -i third_party/libxml/chromium/libxml_utils.cc + -i third_party/libxml/chromium/*.cc \ + -i third_party/maldoca/src/maldoca/ole/oss_utils.h - # Fix build if enable HEVC in non-chromeOS system -# patch -p1 -i "${srcdir}/fix_hevc_in_non_cromeos_r1.patch" + # "unbundle" speech-dispatcher + _speechd_headers=( + 'libspeechd_version.h' + 'spd_audio_plugin.h' + 'speechd_defines.h' + 'speechd_types.h' + ) + for _i in "${_speechd_headers[@]}"; do + cp "/usr/include/speech-dispatcher/${_i}" "third_party/speech-dispatcher/${_i}" + done # # Patch from Gentoo - patch -p1 -i "${srcdir}/chromium-96-EnumTable-crash.patch" - patch -p1 -i "${srcdir}/chromium-93-InkDropHost-crash.patch" - patch -p1 -i "${srcdir}/chromium-shim_headers.patch" + patch -p1 -i "${srcdir}/chromium-cross-compile.patch" + patch -p1 -i "${srcdir}/chromium-111-InkDropHost-crash.patch" + patch -p1 -i "${srcdir}/chromium-117-system-zstd.patch" + patch -p1 -i "${srcdir}/chromium-124-libwebp-shim-sharpyuv.patch" + + if [ "${_USE_QT6}" == "1" ]; then + patch -p1 -i "${srcdir}/chromium-qt6.patch" + fi + + mkdir -p buildtools/third_party/eu-strip/bin + ln -sf /usr/bin/true buildtools/third_party/eu-strip/bin/eu-strip # # Patch from crbug.com (chromium bugtracker), chromium-review.googlesource.com / Gerrit or Arch chromium package. @@ -556,45 +774,78 @@ prepare() { # runtime -- this allows signing into Chromium without baked-in values patch -p1 -i "${srcdir}/use-oauth2-client-switches-as-default.patch" - # https://crbug.com/1192875. - ln -s /usr/bin/java third_party/jdk/current/bin/java - # Upstream fixes - # Setup nodejs dependency. - mkdir -p third_party/node/linux/node-linux-x64/bin/ - ln -sf /usr/bin/node third_party/node/linux/node-linux-x64/bin/node # Use the file at run time instead of effectively compiling it in. - sed 's|//third_party/usb_ids/usb.ids|/usr/share/hwdata/usb.ids|g' -i services/device/usb/BUILD.gn + sed 's|//third_party/usb_ids/usb.ids|/usr/share/hwdata/usb.ids|g' \ + -i services/device/usb/BUILD.gn # Setup the linker in chromium. sed "s|-fuse-ld=lld|-fuse-ld=${_clang_path}${_lld}|g" \ - -i third_party/ffmpeg/chromium/scripts/build_ffmpeg.py \ + -i media/ffmpeg/scripts/build_ffmpeg.py \ -i build/config/compiler/BUILD.gn # Setup bundled ffmpeg. # Add build verbose output. # setup all cores - sed -e "s|'make', '-j|'make', 'V=1', '-j|g" \ + # comment out --disable-iamf + sed -e "s|'make', '-j|'make', $_verbose_ffmpeg '-j|g" \ -e "s|parallel_jobs = 8|parallel_jobs = $(nproc)|g" \ - -i third_party/ffmpeg/chromium/scripts/build_ffmpeg.py + -i media/ffmpeg/scripts/build_ffmpeg.py + sed -e "s|, \"src\"|, \"chromium\"|g" \ + -e 's|makeinfo|mkeinfo|g' \ + -i media/ffmpeg/scripts/robo_lib/config.py + sed '/iamf/s/^/#/g' -i media/ffmpeg/scripts/build_ffmpeg.py + # Use system opus. - rm -fr third_party/opus/src/include - ln -sf /usr/include/opus/ third_party/opus/src/include + patch -d media/ffmpeg -p4 -i "${srcdir}/system-opus.diff" + + # Use system openh264 + if [ -d /usr/include/openh264 ]; then + sed 's|wels/|openh264/wels/|g' \ + -i build/linux/unbundle/openh264.gn + fi + + # Remove most bundled libraries. Some are still needed. + msg2 "Removing unnecessary components to save disk space." + build/linux/unbundle/remove_bundled_libraries.py ${_keeplibs[@]} --do-remove + + msg2 "Changing bundle libraries to system ones." + build/linux/unbundle/replace_gn_files.py --system-libraries ${_use_system[@]} + + msg2 "Setup NaCl/PNaCl SDK: Download and install toolchains" + build/download_nacl_toolchains.py --packages saigo_newlib,nacl_x86_newlib,pnacl_newlib,pnacl_translator sync --extract + + msg2 "Download prebuild clang from Google" + tools/clang/scripts/update.py + + msg2 "Download prebuild rust from Google" + tools/rust/update_rust.py + + msg2 "Download prebuild node,js from Google" + # Setup nodejs dependency. + ( + cd third_party/node + sed -E -e '/mac/d' -e '/^update_win\n/d' -i update_node_binaries + ./update_node_binaries + ./update_npm_deps + ) } build() { # set python for build pnacl. export PNACLPYTHON=/usr/bin/python +# 'snappy' +# 'minizip' + + export PATH="${_clang_path}:$PATH" msg2 "Build the Launcher" make -C chromium-launcher \ CHROMIUM_SUFFIX="-dev" - cd "chromium-${pkgver}" - - #echo ${_flags[@]} + cd "${srcdir}/chromium" msg2 "Build bundled ffmpeg" pushd third_party/ffmpeg &> /dev/null @@ -603,32 +854,81 @@ build() { # bfd plugin: LLVM gold plugin has failed to create LTO module: Unknown attribute kind (60) (Producer: 'LLVM9.0.0svn' Reader: 'LLVM 8.0.0') # when you have installed clang in the system. # Use bundled clang - chromium/scripts/build_ffmpeg.py linux x64 --branding ChromeOS -- \ - --disable-lto \ + ../../media/ffmpeg/scripts/build_ffmpeg.py linux x64 --branding ChromeOS -- \ + --enable-lto=no \ --cc="${_clang_path}clang" \ --cxx="${_clang_path}clang++" \ --ld="${_clang_path}clang" \ --ar="${_clang_path}llvm-ar" \ + --disable-doc # --disable-asm + cat "${srcdir}/copy_config.base64" | base64 -d > chromium/scripts/copy_config.sh; chmod +x chromium/scripts/copy_config.sh chromium/scripts/copy_config.sh - chromium/scripts/generate_gn.py + ../../media/ffmpeg/scripts/generate_gn.py popd &> /dev/null - # New chromium seems not like this flag. see base/allocator/allocator_shim.cc:411 - CFLAGS="${CFLAGS/-fexceptions/}" - CXXFLAGS="${CXXFLAGS/-fexceptions/}" - msg2 "Starting building Chromium..." -# LC_ALL=C buildtools/linux64/gn args out/Release --list && exit # DEBUG: this command list the build options. - LC_ALL=C buildtools/linux64/gn gen out/Release -v --args="${_flags[*]}" --script-executable=/usr/bin/python + msg2 "Flags Active:" + echo ${_flags[@]} + LC_ALL=C gn gen out/Release $_verbose_output --args="${_flags[*]}" --script-executable=/usr/bin/python + # LC_ALL=C gn args --list out/Release && exit # DEBUG: this command list the build options. only available if configure is sucessfull # Build all. - LC_ALL=C ninja -C out/Release -v chrome chrome_sandbox chromedriver + LC_ALL=C ninja -C out/Release $_verbose_output chrome chrome_sandbox chromedriver.unstripped } package() { - options=('!strip') + depends+=( +# 'libgcc_s.so' 'libstdc++.so' +# 'ld-linux-x86-64.so' 'libc.so' 'libm.so' + 'libFLAC.so' + 'libasound.so' +# 'libbrotlidec.so' +# 'libcups.so' + 'libdbus-1.so' +# 'libdrm.so' + 'libexpat.so' + 'libffi.so' + 'libfontconfig.so' 'libfontconfig.so' +# 'libfreetype.so' + 'libgio-2.0.so' 'libglib-2.0.so' 'libgobject-2.0.so' + 'libharfbuzz-subset.so' 'libharfbuzz.so' + 'libjpeg.so' + 'liblcms2.so' + 'libopenh264.so' + 'libopus.so' + 'libpango-1.0.so' + 'libpipewire-0.3.so' + 'libpng16.so' + 'libpulse.so' + 'libwebp.so' 'libwebpdemux.so' 'libwebpmux.so' +# 'libX11.so' +# 'libxcb.so' +# 'libXcomposite.so' +# 'libXdamage.so' +# 'libXext.so' +# 'libXfixes.so' + 'libxkbcommon.so' + 'libxml2.so' +# 'libXrandr.so' +# 'libXtst.so' + 'libxslt.so' +# 'libgbm.so' +# 'libnspr4.so' +# 'libnss3.so' 'libnssutil3.so' 'libsmime3.so' +# 'libopenjp2.so' +# 'libdav1d.so' +# 'libyuv.so' +# 'libjsoncpp.so' +# 'libaom.so' +# 'libvpx.so' +# 'libva-drm.so=' 'libva-glx.so' 'libva-wayland.so' 'libva-x11.so' 'libva.so' +# 'libprotobuf.so' +# 'libevent-2.1.so' 'libevent_core-2.1.so' 'libevent_extra-2.1.so' 'libevent_openssl-2.1.so' 'libevent_pthreads-2.1.so' +# 'libavcodec.so' 'libavdevice.so' 'libavfilter.so' 'libavformat.so' 'libavutil.so' 'libpostproc.so' 'libswresample.so' 'libswscale.so' +# 'libre2.so' + ) # Install launcher. make -C chromium-launcher \ @@ -637,32 +937,26 @@ package() { DESTDIR="${pkgdir}" \ install install -Dm644 "chromium-launcher/LICENSE" "${pkgdir}/usr/share/licenses/chromium-dev/LICENSE.launcher" - strip $STRIP_BINARIES "${pkgdir}/usr/bin/chromium-dev" - pushd "chromium-${pkgver}/out/Release" &> /dev/null + pushd "chromium/out/Release" &> /dev/null # Install binaries. _bin=( - 'chromium-dev' - 'chrome_sandbox' - 'chromedriver' - 'chromedriver.unstripped' - 'chrome_crashpad_handler' - ) + 'chromium-dev' + 'chrome_sandbox' + 'chromedriver.unstripped' + 'chrome_crashpad_handler' + ) for i in "${_bin[@]}"; do case "$i" in chrome_sandbox) install -Dm4755 "${i}" "${pkgdir}/usr/lib/chromium-dev/${i}" ;; - *) - install -Dm755 "${i}" "${pkgdir}/usr/lib/chromium-dev/${i}" - ;; - esac - case "$i" in chromedriver.unstripped) + install -Dm775 "${i}" "${pkgdir}/usr/lib/chromium-dev/chromedriver" ;; *) - strip $STRIP_BINARIES "${pkgdir}/usr/lib/chromium-dev/${i}" + install -Dm755 "${i}" "${pkgdir}/usr/lib/chromium-dev/${i}" ;; esac done @@ -670,64 +964,58 @@ package() { ln -sf /usr/lib/chromium-dev/chromedriver "${pkgdir}/usr/bin/chromedriver-dev" # Install libs. - for i in lib*.so swiftshader/lib*.so; do - install -Dm755 "${i}" "${pkgdir}/usr/lib/chromium-dev/${i}" - strip $STRIP_SHARED "${pkgdir}/usr/lib/chromium-dev/${i}" + for _i in lib*.so; do + install -Dm755 "${_i}" "${pkgdir}/usr/lib/chromium-dev/${_i}" done + local _blobs _blobs=( - 'snapshot_blob.bin' - 'v8_context_snapshot.bin' - 'icudtl.dat' # https://crbug.com/678661. - 'MEIPreload/manifest.json' - 'MEIPreload/preloaded_data.pb' - 'vk_swiftshader_icd.json' - 'angledata/VkICD_mock_icd.json' - ) - - for i in "${_blobs[@]}"; do - install -Dm644 "${i}" "${pkgdir}/usr/lib/chromium-dev/${i}" + 'snapshot_blob.bin' + 'v8_context_snapshot.bin' + 'icudtl.dat' # https://crbug.com/678661. + 'MEIPreload/manifest.json' + 'MEIPreload/preloaded_data.pb' + ) + + for _i in "${_blobs[@]}"; do + install -Dm644 "${_i}" "${pkgdir}/usr/lib/chromium-dev/${_i}" done # Install NaCL. + local _nacl_libs _nacl_libs=( - 'nacl_helper' - 'nacl_helper_bootstrap' - 'nacl_helper_nonsfi' - 'nacl_irt_x86_64.nexe' - ) - for i in "${_nacl_libs[@]}"; do - install -Dm755 "${i}" "${pkgdir}/usr/lib/chromium-dev/${i}" - case "$i" in - nacl_irt_x86_64.nexe) - ;; - *) - strip $STRIP_BINARIES "${pkgdir}/usr/lib/chromium-dev/${i}" - ;; - esac + 'nacl_helper' + 'nacl_helper_bootstrap' + 'nacl_irt_x86_64.nexe' + ) + for _i in "${_nacl_libs[@]}"; do + install -Dm755 "${_i}" "${pkgdir}/usr/lib/chromium-dev/${_i}" done # Install Resources. + local _resources _resources=( - 'chrome_100_percent.pak' - 'chrome_200_percent.pak' - 'headless_lib.pak' - 'resources.pak' - ) - for i in "${_resources[@]}"; do - install -Dm644 "${i}" "${pkgdir}/usr/lib/chromium-dev/${i}" + 'chrome_100_percent.pak' + 'chrome_200_percent.pak' + 'headless_command_resources.pak' + 'headless_lib_data.pak' + 'headless_lib_strings.pak' + 'resources.pak' + ) + for _i in "${_resources[@]}"; do + install -Dm644 "${_i}" "${pkgdir}/usr/lib/chromium-dev/${_i}" done # Set info. - source "${srcdir}/chromium-${pkgver}/chrome/installer/linux/common/installer.include" + source "${srcdir}/chromium/chrome/installer/linux/common/installer.include" PACKAGE=chromium-dev PROGNAME=chromium-dev MENUNAME="Chromium-dev Web Browser" USR_BIN_SYMLINK_NAME=chromium-dev # Install .desktop and manpages. - process_template "${srcdir}/chromium-${pkgver}/chrome/app/resources/manpage.1.in" chromium-dev.1 + process_template "${srcdir}/chromium/chrome/app/resources/manpage.1.in" chromium-dev.1 install -Dm644 chromium-dev.1 "${pkgdir}/usr/share/man/man1/chromium-dev.1" - process_template "${srcdir}/chromium-${pkgver}/chrome/installer/linux/common/desktop.template" chromium-dev.desktop + process_template "${srcdir}/chromium/chrome/installer/linux/common/desktop.template" chromium-dev.desktop install -Dm644 chromium-dev.desktop "${pkgdir}/usr/share/applications/chromium-dev.desktop" # Install locales. @@ -736,8 +1024,8 @@ package() { # Install icons. for _size in 16 24 32 48 64 128 256; do case "${_size}" in - 16|32) _branding="${srcdir}/chromium-${pkgver}/chrome/app/theme/default_100_percent/chromium" ;; - *) _branding="${srcdir}/chromium-${pkgver}/chrome/app/theme/chromium" ;; + 16|32) local _branding="${srcdir}/chromium/chrome/app/theme/default_100_percent/chromium" ;; + *) local _branding="${srcdir}/chromium/chrome/app/theme/chromium" ;; esac install -Dm644 "${_branding}/product_logo_${_size}.png" "${pkgdir}/usr/share/icons/hicolor/${_size}x${_size}/apps/chromium-dev.png" done @@ -746,5 +1034,5 @@ package() { popd &> /dev/null # Install License. - install -Dm644 "chromium-${pkgver}/LICENSE" "${pkgdir}/usr/share/licenses/chromium-dev/LICENSE" + install -Dm644 "chromium/LICENSE" "${pkgdir}/usr/share/licenses/chromium-dev/LICENSE" } diff --git a/chromium-dev.install b/chromium-dev.install index d6ff195f31f0..47ab9c9514c5 100644 --- a/chromium-dev.install +++ b/chromium-dev.install @@ -25,7 +25,14 @@ ${green}==>${all_off} ${bold}Chromium-dev Policy path:${all_off} ${green}==>${all_off} ${bold}Chromium-dev Native Messaging Hosts path:${all_off} ${blue}->${all_off} Is stored into '${bold}/etc/chromium-dev/native-messaging-hosts${all_off}'. ${green}==>${all_off} ${bold}Chromium-dev external extensions path:${all_off} - ${blue}->${all_off} Is stored into '${bold}/usr/share/chromium-dev/extensions${all_off}'.\n" + ${blue}->${all_off} Is stored into '${bold}/usr/share/chromium-dev/extensions${all_off}'. +${green}==>${all_off} ${bold}Chromium detects Qt5 or Qt6 based on your desktop environment (if you builded with Qt5/6 support enabled):${all_off} + ${blue}->${all_off} To override you needs add '${bold}--qt-version=5${all_off}' or '${bold}--qt-version=6${all_off}' + into '${bold}chromium-dev-flags.conf${all_off}' file under '${bold}\x24HOME/.config/${all_off}' (or ${bold}\x24XDG_CONFIG_HOME${all_off}). +${green}==>${all_off} ${bold}Screencast is disabled by default at runtime:${all_off} + ${blue}->${all_off} Either enable it by navigating to '${bold}chrome://flags/#enable-webrtc-pipewire-capturer${all_off}' inside Chromium + or add '${bold}--enable-features=WebRTCPipeWireCapturer${all_off}' into '${bold}chromium-dev-flags.conf${all_off}' file + under '${bold}\x24HOME/.config/${all_off}' (or ${bold}\x24XDG_CONFIG_HOME${all_off}).\n" } post_install() { diff --git a/chromium-qt6.patch b/chromium-qt6.patch new file mode 100644 index 000000000000..4d4eb1e357c3 --- /dev/null +++ b/chromium-qt6.patch @@ -0,0 +1,9 @@ +--- a/ui/qt/BUILD.gn 2024-03-20 21:45:17.817038800 +0000 ++++ b/ui/qt/BUILD.gn 2024-04-04 16:06:36.817852683 +0100 +@@ -61,6 +61,7 @@ + packages = [ + "Qt" + invoker.qt_version + "Core", + "Qt" + invoker.qt_version + "Widgets", ++ "Qt" + invoker.qt_version + "Gui", + ] + } diff --git a/gclient_args.gni b/gclient_args.gni new file mode 100644 index 000000000000..04c01c247964 --- /dev/null +++ b/gclient_args.gni @@ -0,0 +1,14 @@ +# Generated from 'DEPS' +build_with_chromium = true +checkout_android = false +checkout_android_prebuilts_build_tools = false +checkout_android_native_support = false +checkout_clang_coverage_tools = false +checkout_ios_webkit = false +checkout_nacl = true +checkout_openxr = false +checkout_rts_model = false +checkout_src_internal = false +cros_boards = "" +cros_boards_with_qemu_images = "" +generate_location_tags = true
\ No newline at end of file diff --git a/system-opus.diff b/system-opus.diff new file mode 100644 index 000000000000..3c9a02b8c23a --- /dev/null +++ b/system-opus.diff @@ -0,0 +1,13 @@ +diff --git a/third_party/ffmpeg/chromium/scripts/build_ffmpeg.py b/third_party/ffmpeg/chromium/scripts/build_ffmpeg.py +index 638964e..fe5a2dd 100755 +--- a/third_party/ffmpeg/chromium/scripts/build_ffmpeg.py ++++ b/third_party/ffmpeg/chromium/scripts/build_ffmpeg.py +@@ -686,7 +686,7 @@ def ConfigureAndBuild(target_arch, target_os, host_os, host_arch, + + # Setup include path so Chromium's libopus can be used. + '--extra-cflags=-I' + +- os.path.join(CHROMIUM_ROOT_DIR, 'third_party/opus/src/include'), ++ os.path.join('/usr/include/opus'), + + # Disable usage of Linux Performance API. Not used in production code, but + # missing system headers break some Android builds. diff --git a/use-oauth2-client-switches-as-default.patch b/use-oauth2-client-switches-as-default.patch new file mode 100644 index 000000000000..de5cc78aabff --- /dev/null +++ b/use-oauth2-client-switches-as-default.patch @@ -0,0 +1,17 @@ +diff -upr chromium-89.0.4389.58.orig/google_apis/google_api_keys-inc.cc chromium-89.0.4389.58/google_apis/google_api_keys-inc.cc +--- chromium-89.0.4389.58.orig/google_apis/google_api_keys-inc.cc 2021-02-24 22:37:18.494007649 +0000 ++++ chromium-89.0.4389.58/google_apis/google_api_keys-inc.cc 2021-02-24 22:35:00.865777600 +0000 +@@ -154,11 +154,11 @@ class APIKeyCache { + + std::string default_client_id = CalculateKeyValue( + GOOGLE_DEFAULT_CLIENT_ID, +- STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_ID), nullptr, ++ STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_ID), ::switches::kOAuth2ClientID, + std::string(), environment.get(), command_line, gaia_config); + std::string default_client_secret = CalculateKeyValue( + GOOGLE_DEFAULT_CLIENT_SECRET, +- STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_SECRET), nullptr, ++ STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_SECRET), ::switches::kOAuth2ClientSecret, + std::string(), environment.get(), command_line, gaia_config); + + // We currently only allow overriding the baked-in values for the |