OSSystems / meta-browser

OpenEmbedded/Yocto BSP layer for Web Browsers
MIT License
183 stars 189 forks source link

chromium: Update to 114.0.5735.133 #727

Closed MaxIhlenfeldt closed 1 year ago

MaxIhlenfeldt commented 1 year ago

Release notes: https://chromereleases.googleblog.com/2023/05/stable-channel-update-for-desktop_30.html https://chromereleases.googleblog.com/2023/06/stable-channel-update-for-desktop.html https://chromereleases.googleblog.com/2023/06/stable-channel-update-for-desktop_13.html

Build and patch changes:

Drop 0024-Backport-Fix-erroneous-SupportsOstreamOperator-int-i.patch and 0025-Backport-Do-not-use-std-monospace-for-absl-variant.patch as they are included upstream now.

Add one more fixed defaulted operator== to 0018-Only-default-operator-on-declaration.patch.

Modify 0019-Backport-constexpr-std-string-fixes.patch and 0022-Backport-Avoid-capturing-structured-bindings.patch to work with 114 instead of 113.

Add some more needed typenames to 0021-Add-missing-typename-s.patch.

Add 0027-Don-t-pass-disable-auto-upgrade-debug-info-to-linker.patch to fix a build error due to upstream using an lld CLI option that's not yet available for us.

Add 0028-Avoid-capturing-structured-bindings.patch to fix build errors due to a C++20-specific feature being used with clang < 16.

Add 0029-Backport-IWYU-for-translate-TranslateUiLanguagesMana.patch to fix a build error due to a missing include.

Add 0030-Backport-Avoid-operator-which-is-C-20-specific.patch to fix build errors due to C++-specific features.

Rebase remaining patches.

License changes:

Added licenses:

Removed licenses:

Updated licenses:

Test-built:

** Please note that Chromium requires below set-up when on dunfell branch.

*** Please note that there currently is a problem on RPi4/dunfell where Chromium's network service crashes.

Signed-off-by: Max Ihlenfeldt max@igalia.com

MaxIhlenfeldt commented 1 year ago

The dunfell problems mentioned in #722 are still there for me, so I need to rely on your testing @nrpt-m @rwmacleod to ensure that the dunfell build still works. We might still be missing some patches, so if possible, please start your testing with dunfell, so we can later test the other releases with any potential additional patches.

nrpt-m commented 1 year ago

The dunfell problems mentioned in #722 are still there for me, so I need to rely on your testing @nrpt-m @rwmacleod to ensure that the dunfell build still works. We might still be missing some patches, so if possible, please start your testing with dunfell, so we can later test the other releases with any potential additional patches.

Sure, @MaxIhlenfeldt. I am starting my testing with dunfell branch and let you know if any build error.

nrpt-m commented 1 year ago

@MaxIhlenfeldt , I am getting below build error in dunfell.

[22420/59395] aarch64-poky-linux-clang++ -target aarch64-poky-linux -mcpu=cortex-a72+crc+crypto -rtlib=compiler-rt --unwindlib=libgcc -stdlib=libc++ -mlittle-endian -Qunused-arguments -fstack-protector-strong -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/buildarea/eng1/chromium/build-chrom114/dunfell/tmp/work/aarch64-poky-linux/chromium-x11/114.0.5735.133-r0/recipe-sysroot -MMD -MF obj/third_party/pdfium/fxbarcode/fxbarcode/BC_ErrorCorrection.o.d -DUSE_UDEV -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_OZONE=1 -DOFFICIAL_BUILD -DSTDC_CONSTANT_MACROS -DSTDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DNO_UNWIND_TABLES -D_GNU_SOURCE -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DOPJ_STATIC -D_SKIASUPPORT -DPDF_USE_PARTITION_ALLOC -DPDF_ENABLE_V8 -DPDF_ENABLE_XFA -DPDF_ENABLE_XFA_BMP -DPDF_ENABLE_XFA_GIF -DPDF_ENABLE_XFA_PNG -DPDF_ENABLE_XFA_TIFF -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_56 -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_56 -DBASE_USE_PERFETTO_CLIENT_LIBRARY=1 -DWEBP_EXTERN=extern -DFT_CONFIG_MODULES_H=\"freetype-custom/freetype/config/ftmodule.h\" -DFT_CONFIG_OPTIONS_H=\"freetype-custom/freetype/config/ftoption.h\" -DPDFIUM_REQUIRED_MODULES -DCHROMIUM_RESTRICT_VISIBILITY -DU_USING_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0 -DUSE_CHROMIUM_ICU=1 -DU_ENABLE_TRACING=1 -DU_ENABLE_RESOURCE_TRACING=0 -DU_STATIC_IMPLEMENTATION -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE -DSK_CODEC_DECODES_PNG -DSK_CODEC_DECODES_WEBP -DSK_ENCODE_PNG -DSK_ENCODE_WEBP -DSK_ENABLE_SKSL -DSK_UNTIL_CRBUG_1187654_IS_FIXED -DSK_USER_CONFIG_HEADER=\"../../skia/config/SkUserConfig.h\" -DSK_WIN_FONTMGR_NO_SIMULATIONS -DSK_DISABLE_LEGACY_IMAGE_FACTORIES -DSK_DISABLE_LEGACY_MAKE_TEXTURE_IMAGE -DSK_DISABLE_LEGACY_IMAGE_FLUSH -DSK_DISABLE_LEGACY_GET_BACKEND_TEXTURE -DSK_DISABLE_LEGACY_IMAGE_ENCODE_METHODS -DSK_DISABLE_LEGACY_IMAGE_ENCODER -DSK_CODEC_DECODES_JPEG -DSK_ENCODE_JPEG -DSK_HAS_WUFFS_LIBRARY -DSK_GANESH -DSK_GPU_WORKAROUNDS_HEADER=\"gpu/config/gpu_driver_bug_workaround_autogen.h\" -DSK_GL -DSK_VULKAN=1 -DVK_USE_PLATFORM_XCB_KHR -I../.. -Igen -I../../third_party/pdfium -I../../third_party/perfetto/include -Igen/third_party/perfetto/build_config -Igen/third_party/perfetto -I../../third_party/libwebp/src/src -I../../third_party/freetype/include -I../../third_party/freetype/include/freetype-custom -I../../third_party/freetype/src/include -I../../third_party/harfbuzz-ng/src/src -I../../third_party/abseil-cpp -I../../third_party/icu/source/common -I../../third_party/icu/source/i18n -I../../third_party/skia -I../../third_party/wuffs/src/release/c -I../../third_party/vulkan/include -I../../third_party/vulkan-deps/vulkan-headers/src/include -Wall -Wextra -Wimplicit-fallthrough -Wextra-semi -Wunreachable-code-aggressive -Wthread-safety -Wno-missing-field-initializers -Wno-unused-parameter -Wno-psabi -Wloop-analysis -Wno-unneeded-internal-declaration -Wenum-compare-conditional -Wno-unknown-warning-option -Wno-ignored-pragma-optimize -Wno-deprecated-builtins -Wno-bitfield-constant-conversion -Wno-deprecated-this-capture -Wshadow -fno-delete-null-pointer-checks -fno-ident -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -fno-unwind-tables -fno-asynchronous-unwind-tables -fPIC -pthread -fcolor-diagnostics -fmerge-all-constants -fcrash-diagnostics-dir=../../tools/clang/crashreports -mllvm -instcombine-lower-dbg-declare=0 -ffp-contract=off -flto=thin -fsplit-lto-unit -fwhole-program-vtables -mbranch-protection=standard -mno-outline -Xclang -fdebug-compilation-dir -Xclang . -ftrivial-auto-var-init=pattern -O2 -fdata-sections -ffunction-sections -fno-unique-section-names -fno-omit-frame-pointer -g0 -fvisibility=hidden -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -Wc++11-narrowing -Wdeprecated-copy -Wtautological-unsigned-zero-compare -Wshadow -Wexit-time-destructors -Wglobal-constructors -I/buildarea/eng1/chromium/build-chrom114/dunfell/tmp/work/aarch64-poky-linux/chromium-x11/114.0.5735.133-r0/recipe-sysroot/usr/include/glib-2.0 -I/buildarea/eng1/chromium/build-chrom114/dunfell/tmp/work/aarch64-poky-linux/chromium-x11/114.0.5735.133-r0/recipe-sysroot/usr/lib/glib-2.0/include -Wno-redundant-parens -std=c++20 -Wno-trigraphs -fno-exceptions -fno-rtti -fvisibility-inlines-hidden -O2 -pipe -feliminate-unused-debug-types -fmacro-prefix-map=/buildarea/eng1/chromium/build-chrom114/dunfell/tmp/work/aarch64-poky-linux/chromium-x11/114.0.5735.133-r0=/usr/src/debug/chromium-x11/114.0.5735.133-r0 -fdebug-prefix-map=/buildarea/eng1/chromium/build-chrom114/dunfell/tmp/work/aarch64-poky-linux/chromium-x11/114.0.5735.133-r0=/usr/src/debug/chromium-x11/114.0.5735.133-r0 -fdebug-prefix-map=/buildarea/eng1/chromium/build-chrom114/dunfell/tmp/work/aarch64-poky-linux/chromium-x11/114.0.5735.133-r0/recipe-sysroot= -fdebug-prefix-map=/buildarea/eng1/chromium/build-chrom114/dunfell/tmp/work/aarch64-poky-linux/chromium-x11/114.0.5735.133-r0/recipe-sysroot-native= -g1 -stdlib=libc++ -fvisibility-inlines-hidden -c ../../third_party/pdfium/fxbarcode/datamatrix/BC_ErrorCorrection.cpp -o obj/third_party/pdfium/fxbarcode/fxbarcode/BC_ErrorCorrection.o In file included from ../../third_party/pdfium/fxbarcode/datamatrix/BC_ErrorCorrection.cpp:30: NOMERGE NOINLINE NOT_TAIL_CALLED ~CheckError(); NOMERGE NOINLINE NOT_TAIL_CALLED ~NotReachedError(); [[noreturn]] NOMERGE NOINLINE NOT_TAIL_CALLED ~NotReachedNoreturnError(); NOMERGE NOINLINE NOT_TAIL_CALLED ~CheckError(); NOMERGE NOINLINE NOT_TAIL_CALLED ~NotReachedError(); [[noreturn]] NOMERGE NOINLINE NOT_TAIL_CALLED ~NotReachedNoreturnError(); NOMERGE NOINLINE NOT_TAIL_CALLED ~CheckError(); NOMERGE NOINLINE NOT_TAIL_CALLED ~NotReachedError(); [[noreturn]] NOMERGE NOINLINE NOT_TAIL_CALLED ~NotReachedNoreturnError(); NOMERGE NOINLINE NOT_TAIL_CALLED ~CheckError(); NOMERGE NOINLINE NOT_TAIL_CALLED ~NotReachedError(); [[noreturn]] NOMERGE NOINLINE NOT_TAIL_CALLED ~NotReachedNoreturnError();

Below message observed at console logs:

| ninja: build stopped: subcommand failed. | WARNING: /buildarea/eng1/chromium/build-chrom114/dunfell/tmp/work/aarch64-poky-linux/chromium-x11/114.0.5735.133-r0/temp/run.do_compile.2001436:1 exit 1 from 'ninja -v -j 112 chrome chrome_sandbox chromedriver.unstripped' | ERROR: Execution of '/buildarea/eng1/chromium/build-chrom114/dunfell/tmp/work/aarch64-poky-linux/chromium-x11/114.0.5735.133-r0/temp/run.do_compile.2001436' failed with exit code 1 ERROR: Task (/buildarea/eng1/src/repos/meta-browser.git/meta-chromium/recipes-browser/chromium/chromium-x11_114.0.5735.133.bb:do_compile) failed with exit code '1' NOTE: Tasks Summary: Attempted 7191 tasks of which 7134 didn't need to be rerun and 1 failed.

Please let me know what can be done for it.

rakuco commented 1 year ago

I am getting below build error in dunfell.

Is that the entire error message or is there something more? Is this being printed by clang or something else? Can you paste the command-line parameters that caused this?

nrpt-m commented 1 year ago

I am getting below build error in dunfell.

Is that the entire error message or is there something more? Is this being printed by clang or something else? Can you paste the command-line parameters that caused this?

Sure, have updated the error message.

MaxIhlenfeldt commented 1 year ago

Sure, have updated the error message.

Thanks! I have to admit I still don't really understand what clang thinks the actual error is. Usually, there's a line somewhere that contains "error: <...>" where <...> is some informational error message. Is that the case here?

nrpt-m commented 1 year ago

Thanks! I have to admit I still don't really understand what clang thinks the actual error is. Usually, there's a line somewhere that contains "error: <...>" where <...> is some informational error message. Is that the case here?

Sorry, I couldn't find the error details before. Here are some more error message details :

../../components/password_manager/core/browser/password_form.h:48:8: error: no type named 'strong_ordering' in namespace 'std' ../../components/password_manager/core/browser/password_form.cc:228:26: error: equality comparison operator can only be defaulted in a class definition

MaxIhlenfeldt commented 1 year ago

Perfect, that's very useful! I think I know what's going wrong, give me a few minutes to cook up a patch.

MaxIhlenfeldt commented 1 year ago

I've added a patch that hopefully fixes the issue, please try building again.

I'll squash everything and update the commit message and PR description once we're sure we have all the patches we need.

nrpt-m commented 1 year ago

I've added a patch that hopefully fixes the issue, please try building again.

I'll squash everything and update the commit message and PR description once we're sure we have all the patches we need.

Sure, Thanks.

nrpt-m commented 1 year ago

@MaxIhlenfeldt , Still getting the errors as below:

$less /buildarea/eng1/chromium/build-chrom114/dunfell/tmp/work/aarch64-poky-linux/chromium-x11/114.0.5735.133-r0/temp/log.do_compile.1902787 | grep error: ALWAYS_INLINE error::Error GLES2DecoderImpl::DoMultiDrawArrays( ALWAYS_INLINE error::Error GLES2DecoderImpl::DoMultiDrawElements( ../../components/password_manager/core/browser/passkey_credential.cc:49:6: error: equality comparison operator can only be defaulted in a class definition

MaxIhlenfeldt commented 1 year ago

Thanks, I've updated 0018-... to include that one as well. I tried when introducing that patch to automatically search for such defaulted operator== occurrences, but as they usually stretch multiple lines, searching took too long. Maybe there are still more, we'll just have to keep building :smile:

nrpt-m commented 1 year ago

Thanks, I've updated 0018-... to include that one as well. I tried when introducing that patch to automatically search for such defaulted operator== occurrences, but as they usually stretch multiple lines, searching took too long. Maybe there are still more, we'll just have to keep building 😄

Here are some more errors:

$less /buildarea/eng1/chromium/build-chrom114/dunfell/tmp/work/aarch64-poky-linux/chromium-x11/114.0.5735.133-r0/temp/log.do_compile.3046106 | grep error: ALWAYS_INLINE error::Error GLES2DecoderImpl::DoMultiDrawArrays( ALWAYS_INLINE error::Error GLES2DecoderImpl::DoMultiDrawElements( ../../components/password_manager/core/browser/passkey_credential.h:51:8: error: overloaded 'operator==' must be a binary operator (has 3 parameters) ../../components/password_manager/core/browser/passkey_credential.h:51:8: error: overloaded 'operator==' must be a binary operator (has 3 parameters) ../../components/password_manager/core/browser/passkey_credential.h:51:8: error: overloaded 'operator==' must be a binary operator (has 3 parameters)

MaxIhlenfeldt commented 1 year ago

Here are some more errors:

Ugh, I missed that, thanks. Made the same mistake in another file when writing the original 0018 patch :sweat_smile: should be fixed now.

nrpt-m commented 1 year ago

$less /buildarea/eng1/chromium/build-chrom114/dunfell/tmp/work/aarch64-poky-linux/chromium-x11/114.0.5735.133-r0/temp/log.do_compile.3046106 | grep error: ALWAYS_INLINE error::Error GLES2DecoderImpl::DoMultiDrawArrays( ALWAYS_INLINE error::Error GLES2DecoderImpl::DoMultiDrawElements( ../../components/password_manager/core/browser/passkey_credential.h:51:8: error: overloaded 'operator==' must be a binary operator (has 3 parameters) ../../components/password_manager/core/browser/passkey_credential.h:51:8: error: overloaded 'operator==' must be a binary operator (has 3 parameters) ../../components/password_manager/core/browser/passkey_credential.h:51:8: error: overloaded 'operator==' must be a binary operator (has 3 parameters)

Even after applying "patch: fix defaulted operator==", still getting these above errors.

MaxIhlenfeldt commented 1 year ago

Even after applying "patch: fix defaulted operator==", still getting these above errors.

Sorry, I really hope it's fixed now.

nrpt-m commented 1 year ago

$less /buildarea/eng1/chromium/build-chrom114/dunfell/tmp/work/aarch64-poky-linux/chromium-x11/114.0.5735.133-r0/temp/log.do_compile.3046106 | grep error: ALWAYS_INLINE error::Error GLES2DecoderImpl::DoMultiDrawArrays( ALWAYS_INLINE error::Error GLES2DecoderImpl::DoMultiDrawElements( ../../components/password_manager/core/browser/passkey_credential.h:51:8: error: overloaded 'operator==' must be a binary operator (has 3 parameters) ../../components/password_manager/core/browser/passkey_credential.h:51:8: error: overloaded 'operator==' must be a binary operator (has 3 parameters) ../../components/password_manager/core/browser/passkey_credential.h:51:8: error: overloaded 'operator==' must be a binary operator (has 3 parameters)

Even after applying "patch: fix defaulted operator==", still getting these above errors.

@MaxIhlenfeldt Still getting the same errors and this below warning as well:

WARNING: /buildarea/eng1/chromium/poky-dunfell/bitbake/lib/bb/ui/knotty.py:856: ResourceWarning: unclosed file <_io.TextIOWrapper name='/buildarea/eng1/chromium/build-chrom114/dunfell/tmp/work/aarch64-poky-linux/chromium-x11/114.0.5735.133-r0/temp/log.do_compile.4027713' mode='r' encoding='UTF-8'> pass

MaxIhlenfeldt commented 1 year ago

Interesting. Can you replace grep error: in your command with something like grep -C 10 error: so we might get more context for the error? (Maybe 10 is too small and we still lose context, you might need to play around a bit to get all the information from clang.)

nrpt-m commented 1 year ago

Interesting. Can you replace grep error: in your command with something like grep -C 10 error: so we might get more context for the error? (Maybe 10 is too small and we still lose context, you might need to play around a bit to get all the information from clang.)

With the use of 'grep -C 10 error', it's giving so much of data so, have attached the error logs. This should help you more to fix it. chrom-114-build-errors.txt

MaxIhlenfeldt commented 1 year ago

Thanks! It seems the error message slightly changed (error: defaulted member equality comparison operator must be const-qualified), I fixed that now as well. Sorry for all this back and forth, it's a bit less silly when I can do it on my own machine...

nrpt-m commented 1 year ago

Thanks! It seems the error message slightly changed (error: defaulted member equality comparison operator must be const-qualified), I fixed that now as well. Sorry for all this back and forth, it's a bit less silly when I can do it on my own machine...

It's okay, now it has completed the build for rpi4 and other systems are on the way to finish the build 👍

MaxIhlenfeldt commented 1 year ago

Nice, I expected more hiccups :smile: thanks a lot for helping with finding all the remaining build errors and the additional testing!

nrpt-m commented 1 year ago

@MaxIhlenfeldt @rakuco @rwmacleod , Have completed the builds & testing in dunfell branch for all these below systems and all the systems worked well except rpi4.

**We are still observing the same "network service crashed" problem in rpi4. Chromium works fine but, have observed some unknown print messages in execution logs as below.

longjmp causes uninitialized stack frame : terminated stack smashing detected : terminated

Next will start with master, kirkstone and mickledore branches.

nrpt-m commented 1 year ago

@MaxIhlenfeldt, @rakuco, @rwmacleod, Have completed the builds & testing in master branch for all these below systems and all the systems worked well.

Next, will start with kirkstone and mickledore branches.

nrpt-m commented 1 year ago

Have completed the builds & testing in kirkstone branch for all these below systems and all the systems worked well.

Next, started with mickledore branch.

rwmacleod commented 1 year ago

chromium-114/RPi64/mickledore works fine. @nrpt-m will report on the qemu/mickledore test results soon.

nrpt-m commented 1 year ago

chromium-114/RPi64/mickledore works fine. @nrpt-m will report on the qemu/mickledore test results soon.

Yes, have completed the builds & testing in mickledore branch for all these below systems and all the systems worked well.

@MaxIhlenfeldt & @rakuco, If you are agree with the above test results in all the branches then, we are good to go for merge.

MaxIhlenfeldt commented 1 year ago

Thanks @nrpt-m and @rwmacleod for the testing! It's unfortunate that the network service crash is still there on dunfell/rpi4, but I suppose we'll just have to hope it'll disappear again. I'll update the commit message and PR description with the test results, and if @rakuco agrees we can merge this!

rakuco commented 1 year ago

I 100% agree, thank you all for working on this!