Skip to content

Commit

Permalink
kirkstone: backport chromium from scarthgap (#843)
Browse files Browse the repository at this point in the history
* chromium: Update to 121.0.6167.184 (#791)

Release notes:
    https://chromereleases.googleblog.com/2024/01/stable-channel-update-for-desktop_23.html
    https://chromereleases.googleblog.com/2024/01/stable-channel-update-for-desktop_30.html
    https://chromereleases.googleblog.com/2024/02/stable-channel-update-for-desktop.html
    https://chromereleases.googleblog.com/2024/02/stable-channel-update-for-desktop_13.html

Build and patch changes:
------------------------

Drop five backported patches that are included upstream now, and add
three new backports.

Drop arm/0002-Fix-ARM-build-with-recent-glibc.patch as
https://crrev.com/c/5035139 includes an equivalent patch.

Add 0019-Don-t-require-profiler_builtins.rlib.patch to fix a build error
when using OE master.

Rebase and renumber remaining patches.

License changes:
----------------

Added licenses:
  * third_party/lit/LICENSE
  - https://chromium-review.googlesource.com/c/chromium/src/+/5046161

Removed licenses:
  * base/third_party/xdg_mime/LICENSE
  - https://chromium-review.googlesource.com/c/chromium/src/+/4996430

  * native_client/LICENSE
  - not sure which change caused this, but we don't use NativeClient anyways

Updated licenses:
  * third_party/libxml/src/Copyright
  - https://chromium-review.googlesource.com/c/chromium/src/+/4985186

Test-built (big thanks to @rjanani-p):
--------------------------------------

* chromium-ozone-wayland:
 - master, clang,   MACHINE=qemuarm, qemux86-64
 - nanbield, clang, MACHINE=qemuarm64, qemux86-64

* chromium-x11:
 - master, clang,   MACHINE=qemuarm, qemuarm64, qemux86-64
 - nanbield, clang, MACHINE=qemuarm, qemuarm64, qemux86-64

Signed-off-by: Max Ihlenfeldt <[email protected]>

* meta-browser: Update some README.md information (#797)

- Remove dunfell-specific notes now that dunfell is unsupported.
- Link to chromiumdash.appspot.com, as OmahaProxy has been retired.

Signed-off-by: Raphael Kubo da Costa <[email protected]>

* chromium: Drop patches that are specific to clang < 17 (#801)

Given that we have decided not to support kirkstone until it uses a more
recent version of clang, we can now drop all patches that are only
needed to fix errors with clang < 17 (as nanbield uses clang 17).

This also updates LAYERSERIES_COMPAT, dropping kirkstone, as well as the
EOL'd mickledore and langdale.

Signed-off-by: Max Ihlenfeldt <[email protected]>

* chromium: Update to 122.0.6261.128 (#803)

Fixes #795.

Release notes:
    https://chromereleases.googleblog.com/2024/02/stable-channel-update-for-desktop_20.html
    https://chromereleases.googleblog.com/2024/02/stable-channel-update-for-desktop_22.html
    https://chromereleases.googleblog.com/2024/02/stable-channel-update-for-desktop_27.html
    https://chromereleases.googleblog.com/2024/03/stable-channel-update-for-desktop.html
    https://chromereleases.googleblog.com/2024/03/stable-channel-update-for-desktop_12.html

Build and patch changes:
------------------------

Drop six backported patches that are included upstream now.

Drop arm/0002-Fix-static_assert-failed-build-error-on-32-bit-ARM.patch
as it was only needed to fix a build error with clang < 17, which we
don't support any more.

Rebase remaining patches and renumber remaining ARM patches.

License changes:
----------------

Added licenses:
  * third_party/coremltools/mlmodel/format/LICENSE
  - https://chromium-review.googlesource.com/c/chromium/src/+/5108678

  * third_party/node/LICENSE
  - https://chromium-review.googlesource.com/c/chromium/src/+/5136956

  * third_party/angle/src/libANGLE/renderer/vulkan/shaders/src/third_party/etc_decoder/LICENSE,
  third_party/angle/src/third_party/libXNVCtrl/LICENSE,
  third_party/angle/src/third_party/volk/LICENSE.md,
  third_party/angle/third_party/android_system_sdk/LICENSE,
  third_party/angle/third_party/flatbuffers/LICENSE,
  third_party/catapult/experimental/trace_on_tap/third_party/pako/LICENSE,
  third_party/catapult/third_party/Paste/docs/license.txt,
  third_party/catapult/third_party/WebOb/docs/license.txt,
  third_party/catapult/third_party/apiclient/LICENSE,
  third_party/catapult/third_party/cachetools/LICENSE,
  third_party/catapult/third_party/chardet/LICENSE,
  third_party/catapult/third_party/cloudstorage/COPYING,
  third_party/catapult/third_party/coverage/LICENSE.txt,
  third_party/catapult/third_party/flot/LICENSE.txt,
  third_party/catapult/third_party/google-auth/LICENSE,
  third_party/catapult/third_party/gsutil/LICENSE,
  third_party/catapult/third_party/html5lib-python/LICENSE,
  third_party/catapult/third_party/httplib2/LICENSE,
  third_party/catapult/third_party/ijson/LICENSE.txt,
  third_party/catapult/third_party/oauth2client/LICENSE,
  third_party/catapult/third_party/polymer/LICENSE.polymer,
  third_party/catapult/third_party/polymer2/LICENSE.polymer,
  third_party/catapult/third_party/polymer3/LICENSE.polymer,
  third_party/catapult/third_party/pyfakefs/COPYING,
  third_party/catapult/third_party/pyparsing/LICENSE,
  third_party/catapult/third_party/python_gflags/COPYING,
  third_party/catapult/third_party/redux/LICENSE.md,
  third_party/catapult/third_party/requests_toolbelt/LICENSE,
  third_party/catapult/third_party/six/LICENSE,
  third_party/catapult/third_party/typ/LICENSE,
  third_party/catapult/third_party/vinn/third_party/v8/LICENSE,
  third_party/catapult/third_party/vinn/third_party/v8/LICENSE.strongtalk,
  third_party/catapult/third_party/vinn/third_party/v8/LICENSE.v8,
  third_party/catapult/third_party/vinn/third_party/v8/LICENSE.valgrind,
  third_party/catapult/third_party/webapp2/LICENSE,
  third_party/catapult/tracing/third_party/jpeg-js/LICENSE,
  third_party/catapult/tracing/third_party/oboe/LICENCE,
  third_party/catapult/tracing/third_party/pako/LICENSE,
  third_party/chromevox/third_party/closure-library/LICENSE,
  third_party/chromevox/third_party/sre/LICENSE,
  third_party/crashpad/crashpad/third_party/getopt/LICENSE,
  third_party/crashpad/crashpad/third_party/xnu/APPLE_LICENSE,
  third_party/dawn/third_party/khronos/LICENSE,
  third_party/devtools-frontend/src/front_end/third_party/axe-core/LICENSE,
  third_party/devtools-frontend/src/front_end/third_party/lodash-isequal/LICENSE,
  third_party/devtools-frontend/src/front_end/third_party/vscode.web-custom-data/package/LICENSE.md,
  third_party/google_input_tools/third_party/closure_library/LICENSE,
  third_party/openscreen/src/third_party/protobuf/LICENSE,
  third_party/openscreen/src/third_party/tinycbor/src/LICENSE,
  third_party/openscreen/src/third_party/zlib/LICENSE,
  third_party/pdfium/third_party/fp16/LICENSE,
  third_party/pdfium/third_party/freetype/FTL.TXT,
  third_party/screen-ai/LICENSE,
  third_party/selenium-atoms/LICENSE.closure,
  third_party/selenium-atoms/LICENSE.sizzle,
  third_party/selenium-atoms/LICENSE.wgxpath,
  third_party/swiftshader/third_party/SPIRV-Headers/LICENSE,
  third_party/swiftshader/third_party/SPIRV-Tools/LICENSE,
  third_party/webrtc/common_audio/third_party/ooura/LICENSE,
  third_party/webrtc/common_audio/third_party/spl_sqrt_floor/LICENSE,
  third_party/webrtc/modules/third_party/portaudio/LICENSE,
  third_party/webrtc/rtc_base/third_party/sigslot/LICENSE,
  - https://chromium-review.googlesource.com/c/chromium/src/+/5061468

Removed licenses:
  * third_party/gvr-android-sdk/LICENSE
  - https://chromium-review.googlesource.com/c/chromium/src/+/5128757

  * third_party/nasm/LICENSE
  - Removed due to being marked as not shipped.

Updated licenses:
  * chrome/installer/mac/third_party/xz/LICENSE
  - https://chromium-review.googlesource.com/c/chromium/src/+/5289735

  * third_party/libxml/src/Copyright
  - https://chromium-review.googlesource.com/c/chromium/src/+/5140988

Test-built (big thanks to @rjanani-p):
--------------------------------------

* chromium-ozone-wayland:
 - master, clang,   MACHINE=qemux86-64, raspberrypi4-64
 - nanbield, clang, MACHINE=qemuarm64, qemux86-64

* chromium-x11:
 - master, clang,   MACHINE=qemuarm, qemuarm64, qemux86-64
 - nanbield, clang, MACHINE=qemuarm, qemuarm64, qemux86-64, raspberrypi4-64

Signed-off-by: Max Ihlenfeldt <[email protected]>

* chromium: Fix gn build for Yocto master (#808)

Build and patch changes:
------------------------

Add one backported patch to fix a build error on Yocto master.

License changes:
----------------

Added licenses: none.

Removed licenses: none.

Updated licenses: none.

Test-built:
-----------

* chromium-x11:
 - master, clang, MACHINE=qemuarm

Signed-off-by: Max Ihlenfeldt <[email protected]>

* chromium: Use STAGING_* dirs instead of RECIPE_SYSROOT(_NATIVE) (#810)

Build and patch changes:
------------------------

Replace all usages off `RECIPE_SYSROOT` and `RECIPE_SYSROOT_NATIVE` with
the respective matching `STAGING_*` variables to ensure compatibility
with all build setups.

License changes:
----------------

Added licenses: none.

Removed licenses: none.

Updated licenses: none.

Test-built:
-----------

* chromium-wayland:
 - nanbield, clang, MACHINE=qemuarm64

Signed-off-by: Max Ihlenfeldt <[email protected]>

* chromium: Fix build race condition (#812)

Fixes #811.

Build and patch changes:
------------------------

Add one backported patch to fix a build race condition that would
sometimes lead to build errors.

License changes:
----------------

Added licenses: none.

Removed licenses: none.

Updated licenses: none.

Test-built:
-----------

* chromium-wayland:
 - nanbield, clang, MACHINE=qemuarm64

* chromium-x11:
 - master, clang,   MACHINE=qemuarm

Signed-off-by: Max Ihlenfeldt <[email protected]>

* chromium: Depend on libstd-rs instead of rust (#809)

chromium: Depend on libstd-rs instead of rust

Fixes #792.

Build and patch changes:
------------------------

In #782, we decided to depend on rust instead of libstd-rs, because the
latter didn't include libprofiler_builtins and also used a naming scheme
that trips up Chromium.

However, in #791 we decided to patch Chromium so that it doesn't need
libprofiler_builtins any more, because the master version of the rust
recipe also doesn't include it.

Finally, while investigating #792 it turned out that our approach breaks
as soon as we have something that depends on libstd-rs in our dependency
graph. In that scenario, both libstd-rs and rust (the latter due to our
bbappend file) install Rust libraries to /usr/lib/rustlib. This first
leads to Chromium build system errors (due to libstd-rs's naming
scheme), and after fixing these to Rust compiler errors due to multiple
versions being present.

The conclusion is now that we can depend on libstd-rs we should do so.
This only requires a small change to Chromium's Rust build scripts to
adapt them to the slightly different naming scheme.

Also, while we're already reworking our Rust setup, we can remove the
remaining part of our bbappend for the rust recipe and instead inherit
the `rust-common` class, thereby inheriting `rust-target-config` (which
needs stuff from `rust-common`). This means we get the `target.json`
files the Rust compiler needs installed in the directory pointed to by
the `RUST_TARGET_PATH` environment variable.

License changes:
----------------

Added licenses: none.

Removed licenses: none.

Updated licenses: none.

Test-built:
-----------

* chromium-wayland:
 - nanbield, clang, MACHINE=qemuarm64

* chromium-x11:
 - master, clang,   MACHINE=qemuarm

Signed-off-by: Max Ihlenfeldt <[email protected]>

* chromium: Fix incremental build error after meta-clang update (#814)

Fixes #794.

Build and patch changes:
------------------------

We previously created a symlink pointing to the subdirectory of the
latest version under $STAGING_LIBDIR_NATIVE/clang, and then copied the
libclang_rt.builtins library from $STAGING_LIBDIR/clang to the same
directory as the native library. This is necessary because we need to
point Chromium to a single clang directory for building both native and
target code, and we need its path to be independent of the specific
clang version used.

However, the chosen approach leads to an error when doing a build,
updating meta-clang to a revision containing a new version of clang, and
then doing an incremental build.

This commit replaces the previous approach with a more safe one that
does a full copy of the $STAGING_LIBDIR_NATIVE/clang subdirectory that
we want to point Chromium to, and then copies the libclang_rt.builtins
library for the target architecture to this copied directory.

License changes:
----------------

Added licenses: none.

Removed licenses: none.

Updated licenses: none.

Test-built:
-----------

* chromium-x11:
 - master, clang, MACHINE=qemuarm64

Signed-off-by: Max Ihlenfeldt <[email protected]>

* chromium: Update to 123.0.6312.122 (#806)

Fixes #796.

Note that this PR drops support for Nanbield (which is scheduled to
reach its EOL this month anyway), see the discussion at #796 for why.

Release notes:
    https://chromereleases.googleblog.com/2024/03/stable-channel-update-for-desktop_19.html
    https://chromereleases.googleblog.com/2024/03/stable-channel-update-for-desktop_26.html
    https://chromereleases.googleblog.com/2024/04/stable-channel-update-for-desktop.html
    https://chromereleases.googleblog.com/2024/04/stable-channel-update-for-desktop_10.html

Build and patch changes:
------------------------

Drop one backported patch that is included upstream now.

Rebase remaining patches.

License changes:
----------------

Added licenses:
  * third_party/android_deps/libs/com_google_android_gms_play_services_tflite_impl/LICENSE,
    third_party/android_deps/libs/com_google_android_gms_play_services_tflite_java/LICENSE,
    third_party/android_deps/libs/org_tensorflow_tensorflow_lite_api/LICENSE
  - https://chromium-review.googlesource.com/c/chromium/src/+/5288046

  * third_party/android_deps/libs/org_jetbrains_kotlin_kotlin_android_extensions_runtime/LICENSE,
    third_party/android_deps/libs/org_jetbrains_kotlin_kotlin_parcelize_runtime/LICENSE
  - https://chromium-review.googlesource.com/c/chromium/src/+/5260026

  * third_party/android_deps/libs/org_jetbrains_kotlinx_atomicfu_jvm/LICENSE
  - https://chromium-review.googlesource.com/c/chromium/src/+/5237443

Removed licenses:
  * third_party/catapult/third_party/Paste/docs/license.txt
  - https://chromium-review.googlesource.com/c/catapult/+/5288589

  * third_party/screen-ai/LICENSE
  - Not sure why.

Updated licenses:
  * third_party/android_deps/libs/com_google_android_gms_play_services_base/LICENSE
  - https://chromium-review.googlesource.com/c/chromium/src/+/5288046

Test-built (big thanks to @rjanani-p):
--------------------------------------

* chromium-ozone-wayland:
 - master, clang,    MACHINE=qemux86-64
 - scarthgap, clang, MACHINE=qemuarm64

* chromium-x11:
 - master, clang,    MACHINE=qemuarm, qemuarm64, qemux86-64, raspberrypi4-64

Signed-off-by: Max Ihlenfeldt <[email protected]>

* chromium: Backport missing dependency in NewTabPage (#816)

Cherry-pick of #815.

Build and patch changes:
------------------------

Add one backported patch to fix a build race condition that would
sometimes lead to build errors.

License changes:
----------------

Added licenses: none.

Removed licenses: none.

Updated licenses: none.

Test-built:
-----------

* chromium-x11:
 - scarthgap, clang, MACHINE=qemux86-64

Signed-off-by: Max Ihlenfeldt <[email protected]>
Co-authored-by: Daniel Semkowicz <[email protected]>

* chromium: Update to 124.0.6367.207 (#819)

Fixes #817.

Release notes:
    https://chromereleases.googleblog.com/2024/04/stable-channel-update-for-desktop_16.html
    https://chromereleases.googleblog.com/2024/04/stable-channel-update-for-desktop_24.html
    https://chromereleases.googleblog.com/2024/05/stable-channel-update-for-desktop.html
    https://chromereleases.googleblog.com/2024/04/stable-channel-update-for-desktop_30.html
    https://chromereleases.googleblog.com/2024/05/stable-channel-update-for-desktop_7.html
    https://chromereleases.googleblog.com/2024/05/stable-channel-update-for-desktop_9.html
    https://chromereleases.googleblog.com/2024/05/stable-channel-update-for-desktop_13.html

Build and patch changes:
------------------------

Rebase patches.

License changes:
----------------

Added licenses:
  * third_party/devtools-frontend/src/front_end/third_party/puppeteer/third_party/mitt/LICENSE,
    third_party/devtools-frontend/src/front_end/third_party/puppeteer/third_party/rxjs/LICENSE
  - https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/5349136

  * third_party/protobuf-javascript/LICENSE
  - https://chromium-review.googlesource.com/c/chromium/src/+/5365789

Removed licenses:
  * third_party/catapult/third_party/WebOb/docs/license.txt
  - https://chromium-review.googlesource.com/c/catapult/+/5324206

  * v8/LICENSE.fdlibm, v8/LICENSE.strongtalk
  - Most likely wrongly removed due to https://crrev.com/c/5375144. See
    https://crbug.com/342197912.

Updated licenses:
  * third_party/ffmpeg/CREDITS.chromium
  - https://chromium-review.googlesource.com/c/chromium/third_party/ffmpeg/+/5315059

  * third_party/selenium-atoms/LICENSE.sizzle
  - https://chromium-review.googlesource.com/c/chromium/src/+/5339957

Test-built (big thanks to @rjanani-p):
--------------------------------------

* chromium-ozone-wayland:
 - master, clang,    MACHINE=qemux86-64
 - scarthgap, clang, MACHINE=qemuarm64, qemux86-64

* chromium-x11:
 - master, clang,    MACHINE=qemuarm, qemuarm64, qemux86-64, raspberrypi4-64
 - scarthgap, clang, MACHINE=qemuarm, qemuarm64, qemux86-64, raspberrypi4-64

Signed-off-by: Max Ihlenfeldt <[email protected]>

* chromium: Update to 125.0.6422.141 (#824)

Fixes #818.

Release notes:
    https://chromereleases.googleblog.com/2024/05/stable-channel-update-for-desktop_15.html
    https://chromereleases.googleblog.com/2024/05/stable-channel-update-for-desktop_21.html
    https://chromereleases.googleblog.com/2024/05/stable-channel-update-for-desktop_23.html
    https://chromereleases.googleblog.com/2024/05/stable-channel-update-for-desktop_30.html

Build and patch changes:
------------------------

Drop one backported patch that is included in upstream now.

Rebase remaining patches.

License changes:
----------------

Added licenses:
  * third_party/bidimapper/licenses/LICENSE.mitt,
    third_party/bidimapper/licenses/LICENSE.urlpattern_polyfill,
    third_party/bidimapper/licenses/LICENSE.zod
  - https://chromium-review.googlesource.com/c/chromium/src/+/5374914

  * third_party/lens_server_proto/LICENSE
  - https://chromium-review.googlesource.com/c/chromium/src/+/5394109

Removed licenses:
  * third_party/selenium-atoms/LICENSE.closure
  - https://chromium-review.googlesource.com/c/chromium/src/+/5424804

Updated licenses:
  * third_party/icu/LICENSE
  - https://chromium-review.googlesource.com/c/chromium/deps/icu/+/5397901

Test-built (big thanks to @rjanani-p):
--------------------------------------

* chromium-ozone-wayland:
 - master, clang,    MACHINE=qemux86-64
 - scarthgap, clang, MACHINE=qemuarm64, qemux86-64

* chromium-x11:
 - master, clang,    MACHINE=qemuarm, qemuarm64, qemux86-64, raspberrypi4-64
 - scarthgap, clang, MACHINE=qemuarm, qemuarm64, qemux86-64, raspberrypi4-64

Signed-off-by: Max Ihlenfeldt <[email protected]>

* chromium: Merge interlinked compiler option patches (#825)

Build and patch changes:
------------------------

`arm/0001-BUILD-do-not-specify-march-on-arm.patch` depends on
`0001-Remove-the-GN-settings-done-for-clang-that-conflict-.patch` (i.e.
it fails to apply on its own), which is confusing and makes rebasing on
new upstream releases harder.

This merges the two patches into a single one.

License changes:
----------------

Added licenses: none.

Removed licenses: none.

Updated licenses: none.

Test-built:
-----------

* chromium-ozone-wayland:
 - scarthgap, clang, MACHINE=qemuarm64

* chromium-x11:
 - master, clang,    MACHINE=qemuarm

Signed-off-by: Max Ihlenfeldt <[email protected]>

* chromium: Update to 126.0.6478.126 (#826)

Fixes #823.

Release notes:
    https://chromereleases.googleblog.com/2024/06/stable-channel-update-for-desktop.html
    https://chromereleases.googleblog.com/2024/06/stable-channel-update-for-desktop_13.html
    https://chromereleases.googleblog.com/2024/06/stable-channel-update-for-desktop_18.html
    https://chromereleases.googleblog.com/2024/06/stable-channel-update-for-desktop_24.html

Build and patch changes:
------------------------

Drop two backported patches that are included in upstream now.

Rebase remaining patches.

License changes:
----------------

Added licenses:
  * third_party/crabbyavif/LICENSE
  - https://chromium-review.googlesource.com/c/chromium/src/+/5458147

Removed licenses:
  * base/third_party/dynamic_annotations/LICENSE
  - https://chromium-review.googlesource.com/c/chromium/src/+/2544607

  * third_party/android_deps/libs/com_google_android_gms_play_services_places_placereport/LICENSE
  - https://chromium-review.googlesource.com/c/chromium/src/+/5515920

  * third_party/android_deps/libs/com_google_android_gms_play_services_tflite_impl/LICENSE,
    third_party/android_deps/libs/com_google_android_gms_play_services_tflite_java/LICENSE,
    third_party/android_deps/libs/org_tensorflow_tensorflow_lite_api/LICENSE
  - https://chromium-review.googlesource.com/c/chromium/src/+/5494530

Updated licenses:
  * third_party/android_deps/libs/com_google_android_gms_play_services_location/LICENSE
  - https://chromium-review.googlesource.com/c/chromium/src/+/5515920

  * third_party/ffmpeg/CREDITS.chromium
  - https://chromium.googlesource.com/chromium/third_party/ffmpeg.git/+/46a49cb3ec46cf95499c7f265e9d840c16430ac7

  * third_party/swiftshader/third_party/SPIRV-Headers/LICENSE
  - https://swiftshader-review.googlesource.com/c/SwiftShader/+/73371

Test-built (big thanks to @rjanani-p):
--------------------------------------

* chromium-ozone-wayland:
 - master, clang,    MACHINE=qemux86-64
 - scarthgap, clang, MACHINE=qemuarm64, qemux86-64

* chromium-x11:
 - master, clang,    MACHINE=qemuarm, qemuarm64, qemux86-64, raspberrypi4-64
 - scarthgap, clang, MACHINE=qemuarm, qemuarm64, qemux86-64, raspberrypi4-64

Signed-off-by: Max Ihlenfeldt <[email protected]>

* chromium: Update to 127.0.6533.99 (#828)

Fixes #827.

Release notes:
    https://chromereleases.googleblog.com/2024/07/stable-channel-update-for-desktop_23.html
    https://chromereleases.googleblog.com/2024/07/stable-channel-update-for-desktop_30.html
    https://chromereleases.googleblog.com/2024/08/stable-channel-update-for-desktop.html

Build and patch changes:
------------------------

Add 0011-Disable-crabbyavif-to-fix-build-errors.patch to fix a build
error that's most likely because the way upstream configures bindgen
makes it incompatible with our cross-architecture builds.

Add 0012-m127-side_panel-Add-missing-deps.patch to fix build race
conditions due to missing deps.

Add a backported patch to fix a build race conditions due to a missing
dep.

Rebase remaining patches.

License changes:
----------------

Added licenses:
  * third_party/angle/third_party/spirv-headers/LICENSE,
    third_party/angle/third_party/spirv-tools/LICENSE,
    third_party/angle/third_party/vulkan-headers/LICENSE.txt
  - https://chromium-review.googlesource.com/c/angle/angle/+/5545577

  * third_party/dawn/third_party/spirv-headers/LICENSE,
    third_party/dawn/third_party/spirv-tools/LICENSE,
    third_party/dawn/third_party/vulkan-headers/LICENSE.txt
  - https://dawn-review.googlesource.com/c/dawn/+/189420

  * third_party/devtools-frontend/src/front_end/third_party/web-vitals/package/LICENSE
  - https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/5549634

  * third_party/spirv-headers/LICENSE,
    third_party/spirv-tools/LICENSE,
    third_party/vulkan-headers/LICENSE.txt,
    third_party/vulkan-loader/src/LICENSE.txt
  - https://chromium-review.googlesource.com/c/chromium/src/+/5568828

Removed licenses:
  * base/third_party/valgrind/LICENSE
  - https://chromium-review.googlesource.com/c/chromium/src/+/5571961

  * third_party/devtools-frontend/src/front_end/third_party/axe-core/LICENSE,
    third_party/devtools-frontend/src/front_end/third_party/lodash-isequal/LICENSE,
    third_party/devtools-frontend/src/front_end/third_party/vscode.web-custom-data/package/LICENSE.md
  - unknown

  * third_party/maldoca/src/LICENSE
  - https://chromium-review.googlesource.com/c/chromium/src/+/5536396

  * third_party/vulkan-deps/vulkan-loader/src/LICENSE.txt
  - https://chromium-review.googlesource.com/c/chromium/src/+/5568828

Updated licenses:
  * third_party/ffmpeg/CREDITS.chromium
  - https://chromium.googlesource.com/chromium/third_party/ffmpeg/+/a65f1034

Test-built (big thanks to @SoumyaWind):
---------------------------------------

* chromium-ozone-wayland:
 - master, clang,    MACHINE=qemux86-64
 - scarthgap, clang, MACHINE=qemuarm64, qemux86-64

* chromium-x11:
 - master, clang,    MACHINE=qemuarm, qemuarm64, qemux86-64, raspberrypi4-64
 - scarthgap, clang, MACHINE=qemuarm, qemuarm64, qemux86-64, raspberrypi4-64

Signed-off-by: Max Ihlenfeldt <[email protected]>

* chromium: fix do_copy_clang_library failed for multilib (#830)

Due to commit [clang: use nonarch_libdir/clang for all runtime
files][1] applied, the clang runtime libraries was installed
to ${nonarch_libdir}, no matter the value of libdir

Tweak it for do_copy_clang_library, use ${nonarch_libdir} to instead

[1] kraj/meta-clang@cda1376

Signed-off-by: Hongxu Jia <[email protected]>

* chromium: Update to 128.0.6613.84 (#832)

Fixes #831.

Release notes:
    https://chromereleases.googleblog.com/2024/08/stable-channel-update-for-desktop_21.html

Build and patch changes:
------------------------

Drop 0012-m127-side_panel-Add-missing-deps.patch as m128 contains the
proper fix for the issue this patch was working around.

Rebase remaining patches.

License changes:
----------------

Added licenses:
  * third_party/devtools-frontend/src/front_end/third_party/puppeteer/third_party/parsel/LICENSE
  - https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/5630499

Removed licenses:
  * third_party/catapult/third_party/polymer2/LICENSE.polymer
  - https://chromium-review.googlesource.com/c/catapult/+/5670761

  * third_party/setupdesign/LICENSE
  - https://chromium-review.googlesource.com/c/chromium/src/+/5659916

Updated licenses:
  * third_party/perfetto/LICENSE
  - https://android.googlesource.com/platform/external/perfetto/+/917165dd

Test-built (big thanks to @SoumyaWind):
---------------------------------------

* chromium-ozone-wayland:
 - master, clang,    MACHINE=qemux86-64
 - scarthgap, clang, MACHINE=qemuarm64, qemux86-64

* chromium-x11:
 - master, clang,    MACHINE=qemuarm, qemuarm64, qemux86-64, raspberrypi4-64
 - scarthgap, clang, MACHINE=qemuarm, qemuarm64, qemux86-64, raspberrypi4-64

Signed-off-by: Max Ihlenfeldt <[email protected]>

* chromium: Update to 128.0.6613.119 (#833)

Release notes:
    https://chromereleases.googleblog.com/2024/08/stable-channel-update-for-desktop_28.html
    https://chromereleases.googleblog.com/2024/09/stable-channel-update-for-desktop.html

Build and patch changes:
------------------------

None.

License changes:
----------------

None.

Test-built:
-----------

* chromium-ozone-wayland:
 - scarthgap, clang, MACHINE=qemuarm64

* chromium-x11:
 - master, clang,    MACHINE=qemuarm

Signed-off-by: Max Ihlenfeldt <[email protected]>

* layer.conf: set LAYERSERIES_COMPAT to styhead

OE-Core has switched the master branch to styhead, follow the change.

Signed-off-by: Dmitry Baryshkov <[email protected]>

* chromium: Update to 128.0.6613.137 (#836)

Release notes:
    https://chromereleases.googleblog.com/2024/09/stable-channel-update-for-desktop_10.html

Build and patch changes:
------------------------

None.

License changes:
----------------

None.

Test-built:
-----------

* chromium-ozone-wayland:
 - scarthgap, clang, MACHINE=qemuarm64

* chromium-x11:
 - master, clang,    MACHINE=qemuarm

Signed-off-by: Max Ihlenfeldt <[email protected]>

* layer.conf: Update to walnascar (5.2) layer/release series

Signed-off-by: Khem Raj <[email protected]>

* chromium: Update to 129.0.6668.70 (#838)

Fixes #837.

Release notes:
    https://chromereleases.googleblog.com/2024/09/stable-channel-update-for-desktop_17.html
    https://chromereleases.googleblog.com/2024/09/stable-channel-update-for-desktop_24.html

Build and patch changes:
------------------------

Drop one backported patch that is included upstream now.

Rebase remaining patches.

License changes:
----------------

Added licenses:
  * third_party/android_deps/libs/com_google_android_gms_play_services_identity_credentials/LICENSE
  - https://chromium-review.googlesource.com/c/chromium/src/+/5766672

  * third_party/fast_float/src/LICENSE-MIT
  - https://chromium-review.googlesource.com/c/chromium/src/+/5743598

Removed licenses:
  * ios/components/third_party/compiler-rt/LICENSE.TXT
  - https://chromium-review.googlesource.com/c/chromium/src/+/5767039

  * third_party/android_deps/libs/org_jetbrains_kotlin_kotlin_stdlib_jdk7/LICENSE,
    third_party/android_deps/libs/org_jetbrains_kotlin_kotlin_stdlib_jdk8/LICENSE
  - https://chromium-review.googlesource.com/c/chromium/src/+/5786197

  * third_party/catapult/third_party/html5lib-python/LICENSE
  - https://chromium-review.googlesource.com/c/catapult/+/5768072

  * third_party/libudev/LICENSE
  - https://chromium-review.googlesource.com/c/chromium/src/+/5738848

  * third_party/sudden_motion_sensor/LICENSE
  - https://chromium-review.googlesource.com/c/chromium/src/+/5734364

Updated licenses:
  * third_party/android_deps/libs/com_google_android_gms_play_services_base/LICENSE,
    third_party/android_deps/libs/com_google_android_gms_play_services_basement/LICENSE,
    third_party/android_deps/libs/com_google_android_gms_play_services_tasks/LICENSE
  - https://chromium-review.googlesource.com/c/chromium/src/+/5766672

Test-built (big thanks to @SoumyaWind):
---------------------------------------

* chromium-ozone-wayland:
 - master, clang,    MACHINE=qemux86-64
 - scarthgap, clang, MACHINE=qemuarm64, qemux86-64

* chromium-x11:
 - master, clang,    MACHINE=qemuarm, qemuarm64, qemux86-64, raspberrypi4-64
 - scarthgap, clang, MACHINE=qemuarm, qemuarm64, qemux86-64, raspberrypi4-64

Signed-off-by: Max Ihlenfeldt <[email protected]>

* chromium: Update to 129.0.6668.100 (#840)

Release notes:
    https://chromereleases.googleblog.com/2024/10/stable-channel-update-for-desktop.html
    https://chromereleases.googleblog.com/2024/10/stable-channel-update-for-desktop_8.html

Build and patch changes:
------------------------

None.

License changes:
----------------

None.

Test-built:
-----------

* chromium-ozone-wayland:
 - scarthgap, clang, MACHINE=qemuarm64

* chromium-x11:
 - master, clang,    MACHINE=qemuarm

Signed-off-by: Max Ihlenfeldt <[email protected]>

* chromium: Update to 130.0.6723.58 (#844)

Fixes #841.

Release notes:
    https://chromereleases.googleblog.com/2024/10/stable-channel-update-for-desktop_15.html
    https://chromereleases.googleblog.com/2024/10/stable-channel-update-for-desktop_22.html

Build and patch changes:
------------------------

Add one patch to fix a build error on scarthgap with clang 18.

Rebase remaining patches.

License changes:
----------------

Added licenses:
  * third_party/android_deps/libs/com_google_dagger_hilt_core/LICENSE
  - https://chromium-review.googlesource.com/c/chromium/src/+/5823738

  * third_party/android_deps/libs/com_squareup_okio_okio_jvm/LICENSE,
    third_party/android_deps/libs/org_jetbrains_kotlinx_kotlinx_serialization_core_jvm/LICENSE
  - https://chromium-review.googlesource.com/c/chromium/src/+/4294685,
    https://chromium-review.googlesource.com/c/chromium/src/+/5857028

  * third_party/android_deps/libs/jakarta_inject_jakarta_inject_api/LICENSE
  - https://chromium-review.googlesource.com/c/chromium/src/+/5824189

  * third_party/catapult/third_party/pipeline/LICENSE
  - https://chromium-review.googlesource.com/c/catapult/+/5847129

  * third_party/devtools-frontend/src/front_end/third_party/third-party-web/LICENSE
  - https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/5809617

  * third_party/pdfium/third_party/agg23/copying,
    third_party/pdfium/third_party/libopenjpeg/LICENSE,
    third_party/pdfium/third_party/libtiff/LICENSE.md
  - https://pdfium-review.googlesource.com/c/pdfium/+/124210

Removed licenses:
  * courgette/third_party/bsdiff/LICENCE,
    courgette/third_party/divsufsort/LICENSE
  - https://chromium-review.googlesource.com/c/chromium/src/+/5812826

  * third_party/android_deps/libs/android_arch_core_common/LICENSE,
    third_party/android_deps/libs/android_arch_core_runtime/LICENSE,
    third_party/android_deps/libs/android_arch_lifecycle_common/LICENSE,
    third_party/android_deps/libs/android_arch_lifecycle_livedata/LICENSE,
    third_party/android_deps/libs/android_arch_lifecycle_livedata_core/LICENSE,
    third_party/android_deps/libs/android_arch_lifecycle_runtime/LICENSE,
    third_party/android_deps/libs/android_arch_lifecycle_viewmodel/LICENSE,
    third_party/android_deps/libs/com_android_support_asynclayoutinflater/LICENSE,
    third_party/android_deps/libs/com_android_support_collections/LICENSE,
    third_party/android_deps/libs/com_android_support_coordinatorlayout/LICENSE,
    third_party/android_deps/libs/com_android_support_cursoradapter/LICENSE,
    third_party/android_deps/libs/com_android_support_customview/LICENSE,
    third_party/android_deps/libs/com_android_support_documentfile/LICENSE,
    third_party/android_deps/libs/com_android_support_drawerlayout/LICENSE,
    third_party/android_deps/libs/com_android_support_interpolator/LICENSE,
    third_party/android_deps/libs/com_android_support_loader/LICENSE,
    third_party/android_deps/libs/com_android_support_localbroadcastmanager/LICENSE,
    third_party/android_deps/libs/com_android_support_print/LICENSE,
    third_party/android_deps/libs/com_android_support_slidingpanelayout/LICENSE,
    third_party/android_deps/libs/com_android_support_support_compat/LICENSE,
    third_party/android_deps/libs/com_android_support_support_core_ui/LICENSE,
    third_party/android_deps/libs/com_android_support_support_core_utils/LICENSE,
    third_party/android_deps/libs/com_android_support_swiperefreshlayout/LICENSE,
    third_party/android_deps/libs/com_android_support_versionedparcelable/LICENSE,
    third_party/android_deps/libs/com_android_support_viewpager/LICENSE
  - https://chromium-review.googlesource.com/c/chromium/src/+/5835984

  * third_party/android_toolchain_canary/NOTICE
  - https://chromium-review.googlesource.com/c/chromium/src/+/5798143

  * third_party/bidimapper/licenses/LICENSE.urlpattern_polyfill
  - https://chromium-review.googlesource.com/c/chromium/src/+/5850570

  * third_party/catapult/third_party/requests_toolbelt/LICENSE
  - https://chromium-review.googlesource.com/c/catapult/+/5847130

  * third_party/openscreen/src/third_party/zlib/LICENSE
  - https://chromium-review.googlesource.com/c/openscreen/+/5816482

Updated licenses:
  * chrome/installer/mac/third_party/xz/LICENSE
  - https://chromium-review.googlesource.com/c/chromium/src/+/5846369

  * third_party/ced/LICENSE
  - https://chromium-review.googlesource.com/c/chromium/src/+/5816777

  * third_party/perfetto/LICENSE
  - google/perfetto@fcae376

Test-built (big thanks to @SoumyaWind):
---------------------------------------

* chromium-ozone-wayland:
 - master, clang,    MACHINE=qemux86-64
 - scarthgap, clang, MACHINE=qemuarm64, qemux86-64

* chromium-x11:
 - master, clang,    MACHINE=qemuarm, qemuarm64, qemux86-64, raspberrypi4-64
 - scarthgap, clang, MACHINE=qemuarm, qemuarm64, qemux86-64, raspberrypi4-64

Signed-off-by: Max Ihlenfeldt <[email protected]>

* chromium: Update to 130.0.6723.91 (#846)

Release notes:
    https://chromereleases.googleblog.com/2024/10/stable-channel-update-for-desktop_22.html
    https://chromereleases.googleblog.com/2024/10/stable-channel-update-for-desktop_29.html

Build and patch changes:
------------------------

None.

License changes:
----------------

None.

Test-built:
-----------

* chromium-ozone-wayland:
 - scarthgap, clang, MACHINE=qemuarm64

* chromium-x11:
 - master, clang,    MACHINE=qemuarm

Signed-off-by: Max Ihlenfeldt <[email protected]>

* chromium: Update EGL CLI args (#850)

As mentioned in e.g. #849, `--use-gl=egl` doesn't work any more. We can replace it with `--use-gl=angle --use-angle=gles-egl`, or just `--use-angle=gles-egl` as ANGLE is the default.

* chromium: Update to 131.0.6778.85 (#852)

chromium: Update to 131.0.6778.85

Fixes #848.

Release notes:
    https://chromereleases.googleblog.com/2024/11/stable-channel-update-for-desktop_12.html
    https://chromereleases.googleblog.com/2024/11/stable-channel-update-for-desktop_19.html

Build and patch changes:
------------------------

Add a patch to remporarily revert an upstream change that increases the
minimum supported Rust version to 1.78, as Scarthgap currently only has
1.75. Once meta-lts-mixins has a scarthgap/rust branch, we can drop that
patch again.

Rebase remaining patches.

License changes:
----------------

Added licenses:
  * third_party/android_deps/libs/org_jspecify_jspecify/LICENSE
  - https://chromium-review.googlesource.com/c/chromium/src/+/5898977

  * third_party/devtools-frontend/src/front_end/third_party/json5/LICENSE
  - https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/5920841

  * third_party/ink/LICENSE
  - https://chromium-review.googlesource.com/c/chromium/src/+/5530802

  * third_party/ink_stroke_modeler/LICENSE
  - https://chromium-review.googlesource.com/c/chromium/src/+/5530867

Removed licenses:
  * third_party/catapult/third_party/httplib2/LICENSE
  - https://chromium-review.googlesource.com/c/catapult/+/5858365

Updated licenses: None.

Test-built (big thanks to @SoumyaWind):
---------------------------------------

* chromium-ozone-wayland:
 - master, clang,    MACHINE=qemux86-64
 - styhead, clang,   MACHINE=raspberrypi4-64
 - scarthgap, clang, MACHINE=qemux86-64

* chromium-x11:
 - master, clang,    MACHINE=qemuarm, qemuarm64, qemux86-64, raspberrypi4-64
 - scarthgap, clang, MACHINE=qemuarm, qemuarm64, qemux86-64, raspberrypi4-64

Signed-off-by: Max Ihlenfeldt <[email protected]>

* chromium: Update my email address in the repository (#856)

My affiliation has changed 🎉 Update my contact information in the README.md
as well as in the patches that have my Signed-off-by tag.

Signed-off-by: Raphael Kubo da Costa <[email protected]>
Co-authored-by: Raphael Kubo da Costa <[email protected]>

* [scarthgap] chromium: Drop patch to decrease minimum Rust version (#858)

chromium: Drop patch to decrease minimum Rust version

Build and patch changes:
------------------------

Drop a patch to decrease the required version of Rust, and instead
depend on meta-lts-mixins to provide a more up-to-date version of Rust
than OE Core.

License changes:
----------------

None.

Test-built:
-----------

* chromium-ozone-wayland:
 - scarthgap, clang, MACHINE=raspberrypi4-64

Signed-off-by: Max Ihlenfeldt <[email protected]>

* [scarthgap] chromium: Update to 131.0.6778.139 (#860)

chromium: Update to 131.0.6778.139

Release notes:
    https://chromereleases.googleblog.com/2024/12/stable-channel-update-for-desktop.html
    https://chromereleases.googleblog.com/2024/12/stable-channel-update-for-desktop_10.html

Build and patch changes:
------------------------

None.

License changes:
----------------

None.

Test-built:
-----------

* chromium-ozone-wayland:
 - scarthgap, clang, MACHINE=raspberrypi4-64

Signed-off-by: Max Ihlenfeldt <[email protected]>

* [scarthgap] chromium: Use correct Rust mixin layer dependency (#863)

Fixes #862.

Thanks to @darren-etheridge for finding this as well as the right name to use!

---------

Signed-off-by: Max Ihlenfeldt <[email protected]>
Signed-off-by: Raphael Kubo da Costa <[email protected]>
Signed-off-by: Hongxu Jia <[email protected]>
Signed-off-by: Dmitry Baryshkov <[email protected]>
Signed-off-by: Khem Raj <[email protected]>
Signed-off-by: Raphael Kubo da Costa <[email protected]>
Signed-off-by: Ariel D'Alessandro <[email protected]>
Co-authored-by: Max Ihlenfeldt <[email protected]>
Co-authored-by: Raphael Kubo da Costa <[email protected]>
Co-authored-by: Daniel Semkowicz <[email protected]>
Co-authored-by: Hongxu Jia <[email protected]>
Co-authored-by: Dmitry Baryshkov <[email protected]>
Co-authored-by: Khem Raj <[email protected]>
Co-authored-by: Raphael Kubo da Costa <[email protected]>
Co-authored-by: Raphael Kubo da Costa <[email protected]>
  • Loading branch information
9 people authored Dec 23, 2024
1 parent c512ef2 commit 01eca11
Show file tree
Hide file tree
Showing 47 changed files with 538 additions and 2,895 deletions.
27 changes: 18 additions & 9 deletions meta-chromium/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ post to the list). Please cc the maintainers if you send your patches.
## Maintainers

* Fabio Berton <[email protected]>
* Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
* Raphael Kubo da Costa <kubo@igalia.com>
* Khem Raj <[email protected]>
* Otavio Salvador <[email protected]>
* Max Ihlenfeldt <[email protected]>
Expand All @@ -47,7 +47,7 @@ Chromium browser.

This recipe provides a package for the Chromium web browser. It strives to
always follow the latest stable Linux release as listed in
https://omahaproxy.appspot.com
https://chromiumdash.appspot.com/releases?platform=Linux

We refer to the web browser as Chromium, not Chrome, because "Chrome" is
Google's version of the web browser with proprietary content on top of the
Expand All @@ -60,6 +60,16 @@ peculiarities:
- Parts of the V8 (Chromium's JavaScript engine) build need to run binaries
built for the target, for which we use QEMU.

## Supported OE/Yocto releases

We only support the master branch and the current LTS releases of OE/Yocto,
using this repo's master branch for the former and separate branches for the
latter.

Recent non-LTS releases should still work with our master branch, and we'll
create branches capturing the last buildable version once they stop working with
the latest version.

## Build requirements

This recipe requires clang, and GCC is not supported. Upstream Chromium has not
Expand All @@ -79,13 +89,12 @@ Chromium's release model because it often requires recent versions of certain
recipes to build correctly.

This is particularly a problem for the toolchain (i.e. LLVM/clang and Rust).
Because meta-clang's kirkstone branch currently only provides clang 14, we are
unable to support Chromium versions higher than 120 due to those versions
requiring a more recent clang version. Also, kirkstone users **must** ensure the
following:
* Chromium needs a somewhat recent version of Rust, and for that
meta-lts-mixins' **kirkstone/rust-1.68** or **kirkstone/rust-1.70** branch
needs to be used.

* Chromium needs a more recent version of Rust than OE Core provides for
kirkstone, which is why we depend on meta-lts-mixins' `kirkstone/rust` branch.

* Chromium needs at least clang 18, but meta-clang's kirkstone branch provides
clang 14. Thus, we depend on meta-clang's `kirkstone-clang18` branch.

## PACKAGECONFIG knobs

Expand Down
2 changes: 1 addition & 1 deletion meta-chromium/conf/layer.conf
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,6 @@ BBFILE_PATTERN_chromium-browser-layer := "^${LAYERDIR}/"
BBFILE_PRIORITY_chromium-browser-layer = "7"

LAYERVERSION_chromium-browser-layer = "1"
LAYERSERIES_COMPAT_chromium-browser-layer = "kirkstone langdale mickledore nanbield scarthgap"
LAYERSERIES_COMPAT_chromium-browser-layer = "kirkstone scarthgap styhead walnascar"

LAYERDEPENDS_chromium-browser-layer = "clang-layer core openembedded-layer lts-rust-mixin"
91 changes: 36 additions & 55 deletions meta-chromium/recipes-browser/chromium/chromium-gn.inc
Original file line number Diff line number Diff line change
Expand Up @@ -4,54 +4,32 @@ require gn-utils.inc

GTKIC_VERSION = "${@bb.utils.contains('PACKAGECONFIG', 'gtk4', '4', '3',d)}"

inherit features_check gtk-icon-cache qemu
inherit features_check gtk-icon-cache qemu rust-common

# The actual directory name in out/ is irrelevant for GN.
OUTPUT_DIR = "out/Release"
B = "${S}/${OUTPUT_DIR}"

# Backported patches.
SRC_URI += "\
file://backport/IWYU-for-chrome-browser-ui-views-dark_mode_.patch \
file://backport/IWYU-for-net-filter-zstd_source_stream.cc.patch \
file://backport/IWYU-for-components-user_education-common-p.patch \
file://backport/atspi-mark-possibly-unused-gn-variables.patch \
file://backport/Revert-recent-C-20-usage-in-CFX_FillRenderO.patch \
file://backport/IWYU-for-chrome-browser-ui-tabs-organizatio.patch \
file://backport/IWYU-for-content-browser-generic_sensor-fra.patch \
file://backport/IWYU-for-g-c-service-shared_image-ozone_ima.patch \
file://backport/Make-toolchain_supports_rust_thin_lto-configurable.patch \
file://backport/NewTabPage-Add-missing-dep-to-cr_components.patch \
"
# None currently \o/

# Non-specific patches.
SRC_URI += "\
file://0001-Remove-the-GN-settings-done-for-clang-that-conflict-.patch \
file://0001-Drop-GN-compiler-settings-conflicting-with-OE.patch \
file://0002-v8-qemu-wrapper.patch \
file://0003-wrapper-extra-flags.patch \
file://0004-Delete-compiler-options-not-available-in-release-ver.patch \
file://0005-avoid-link-latomic-failure-on-CentOS-8-host.patch \
file://0006-Revert-__attribute__-and-alignas-changes.patch \
file://0007-Add-missing-typename-s.patch \
file://0008-Don-t-pass-unknown-LLVM-options.patch \
file://0009-Avoid-capturing-structured-bindings.patch \
file://0010-Revert-Reland-Reland-mte-refactor-the-tagging-functi.patch \
file://0011-Avoid-parenthesized-initialization-of-aggregates.patch \
file://0012-Fix-constexpr-variable-cannot-have-non-literal-type-.patch \
file://0013-Fix-undefined-symbol-PaintOpWriter-SerializedSize-un.patch \
file://0014-Fix-implicitly-deleted-default-constructor-build-err.patch \
file://0015-Don-t-delete-CrashKeyWithName-dtor.patch \
file://0016-Use-base-ranges-instead-of-std-ranges.patch \
file://0017-Use-the-correct-path-to-libclang_rt.builtins.a.patch \
file://0018-Adjust-the-Rust-build-to-our-needs.patch \
file://0019-Don-t-require-profiler_builtins.rlib.patch \
file://0006-Don-t-pass-unknown-LLVM-options.patch \
file://0007-Fix-constexpr-variable-must-be-initialized-by-a-cons.patch \
file://0008-Use-the-correct-path-to-libclang_rt.builtins.a.patch \
file://0009-Adjust-the-Rust-build-to-our-needs.patch \
file://0010-Don-t-require-profiler_builtins.rlib.patch \
file://0011-Disable-crabbyavif-to-fix-build-errors.patch \
file://0012-Revert-Allow-and-use-std-hardware_destructive_interf.patch \
"
# ARM/AArch64-specific patches.
SRC_URI:append:arm = "\
file://arm/0001-BUILD-do-not-specify-march-on-arm.patch \
file://arm/0002-Fix-ARM-build-with-recent-glibc.patch \
file://arm/0003-Fix-static_assert-failed-build-error-on-32-bit-ARM.patch \
"
SRC_URI:append:aarch64 = "${@bb.utils.contains('TUNE_FEATURES', 'crypto', '', ' file://arm/0004-Fix-AES-crypto-SIGILL-on-rpi4-64.patch', d)}"
SRC_URI:append:aarch64 = "${@bb.utils.contains('TUNE_FEATURES', 'crypto', '', ' file://arm/0001-Fix-AES-crypto-SIGILL-on-rpi4-64.patch', d)}"

# musl-specific patches.
SRC_URI:append:libc-musl = "\
Expand Down Expand Up @@ -92,6 +70,7 @@ DEPENDS += " \
jpeg \
libdrm \
libffi \
libstd-rs \
libwebp \
libxkbcommon \
libxslt \
Expand All @@ -106,7 +85,6 @@ DEPENDS += " \
pkgconfig-native \
${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '', d)} \
qemu-native \
rust \
rust-native \
virtual/libgl \
"
Expand Down Expand Up @@ -308,8 +286,8 @@ GN_ARGS += ' \
'

# Make sure Chromium is able to find clang libraries. See
# 0023-Use-the-correct-path-to-libclang_rt.builtins.a.patch and the
# add_clang_symlink and copy_clang_library tasks for more context.
# 0008-Use-the-correct-path-to-libclang_rt.builtins.a.patch and the
# add_clang_latest and copy_clang_library tasks for more context.
GN_ARGS += ' \
clang_base_path="${@clang_install_path(d)}" \
clang_version="latest" \
Expand All @@ -325,7 +303,7 @@ GN_ARGS += 'max_jobs_per_link="${@oe.utils.parallel_make_argument(d, '%d')}"'
# Rust code is rebuilt after updating the Rust toolchain. This is irrelevant for
# our build setup, but not setting it leads to an error.
GN_ARGS += ' \
rust_sysroot_absolute="${RECIPE_SYSROOT_NATIVE}/usr" \
rust_sysroot_absolute="${STAGING_DIR_NATIVE}/usr" \
rustc_version="custom" \
rust_target_triple_vendor_for_target="${TARGET_VENDOR}" \
'
Expand Down Expand Up @@ -379,7 +357,7 @@ GN_ARGS:append:armv6 = ' arm_use_neon=false'
GN_ARGS:append:libc-musl = ' use_allocator_shim=false use_partition_alloc_as_malloc=false enable_backup_ref_ptr_support=false'

CHROMIUM_EXTRA_ARGS ?= " \
${@bb.utils.contains('PACKAGECONFIG', 'use-egl', '--use-gl=egl', '', d)} \
${@bb.utils.contains('PACKAGECONFIG', 'use-egl', '--use-angle=gles-egl', '', d)} \
${@bb.utils.contains('PACKAGECONFIG', 'kiosk-mode', '--kiosk --no-first-run --incognito', '', d)} \
${@bb.utils.contains('PACKAGECONFIG', 'gtk4', '--gtk-version=4', '', d)} \
"
Expand Down Expand Up @@ -455,39 +433,42 @@ do_add_nodejs_symlink () {
}
addtask add_nodejs_symlink after do_configure before do_compile

do_add_clang_symlink () {
# Creates a `latest` symlink in the native sysroot's /usr/lib/clang
# directory that points to /usr/lib/clang/$CLANG_VERSION. Chromium manually
# links against libclang_rt.builtins.a and uses the `clang_version` GN
# variable to find it. This allows us to set it to the same value for all
do_add_clang_latest () {
# Creates a `latest` directory in the native sysroot's /usr/lib/clang
# directory that is a copy of /usr/lib/clang/$CLANG_VERSION. Chromium
# manually links against libclang_rt.builtins.a and uses the `clang_version`
# GN variable to find it. This allows us to set it to the same value for all
# Yocto releases.
cd "${RECIPE_SYSROOT_NATIVE}/usr/lib/clang"
cd "${STAGING_LIBDIR_NATIVE}/clang"
rm -rf latest
# find the directory containing the library
for dir in *; do
if [ -n "$(find $dir -name 'libclang_rt.builtins*')" ] ; then
ln -sf "$dir" latest
cp -r "$dir" latest
break
fi
done
}
addtask add_clang_symlink after do_configure before do_compile
addtask add_clang_latest after do_configure before do_compile

do_copy_clang_library () {
# Chromium needs to link against libclang_rt.builtins.a for both host and
# target code, and expects to find both libraries in the same directory
# (thanks to 0023-Use-the-correct-path-to-libclang_rt.builtins.a.patch).
cd "${RECIPE_SYSROOT}"
lib_file="$(find usr/lib/clang -name 'libclang_rt.builtins*')"
lib_dir="$(dirname $lib_file)"
cp "$lib_file" "${RECIPE_SYSROOT_NATIVE}/$lib_dir"
# (thanks to 0008-Use-the-correct-path-to-libclang_rt.builtins.a.patch).
cd "${STAGING_DIR_HOST}${nonarch_libdir}/clang"
# lib_file = "./$CLANG_VERSION/lib/linux/libclang_rt.builtins-$ARCH.a"
lib_file="$(find . -name 'libclang_rt.builtins*')"
# stripped_lib_file = "lib/linux/libclang_rt.builtins-$ARCH.a"
stripped_lib_file="${lib_file#*/*/}"
cp "$lib_file" "${STAGING_LIBDIR_NATIVE}/clang/latest/${stripped_lib_file}"
}
addtask copy_clang_library after do_configure before do_compile
addtask copy_clang_library after do_add_clang_latest before do_compile

do_copy_target_rustlibs () {
# Chromium needs a single Rust sysroot that contains the rustlibs for both
# the host and target, so we copy the target rustlibs to the native sysroot.
rustlib_src_dir="${RECIPE_SYSROOT}/usr/lib/rustlib/${TARGET_ARCH}"*
cp -r $rustlib_src_dir "${RECIPE_SYSROOT_NATIVE}/usr/lib/rustlib"
rustlib_src_dir="${STAGING_LIBDIR}/rustlib/${TARGET_ARCH}"*
cp -r $rustlib_src_dir "${STAGING_LIBDIR_NATIVE}/rustlib"
}
addtask copy_target_rustlibs after do_configure before do_compile

Expand Down
Loading

0 comments on commit 01eca11

Please sign in to comment.