summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO164
-rw-r--r--.gitignore4
-rw-r--r--PKGBUILD1314
-rw-r--r--chromium-dev.install9
-rw-r--r--chromium-qt6.patch9
-rw-r--r--gclient_args.gni14
-rw-r--r--system-opus.diff13
-rw-r--r--use-oauth2-client-switches-as-default.patch17
8 files changed, 1002 insertions, 542 deletions
diff --git a/.SRCINFO b/.SRCINFO
index b445df56effe..9295e00a2454 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -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
diff --git a/PKGBUILD b/PKGBUILD
index 0770dc0d0dab..aad6b4902a9b 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -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