meta-webkit icon indicating copy to clipboard operation
meta-webkit copied to clipboard

wpewebkit,webkitgtk: Bump to version 2.46.0

Open psaavedra opened this issue 1 year ago • 7 comments

  • Create new recipe for version 2.46.0
  • Delete recipes for version 2.42.5

Changes:

  • Skia is used instead of Cairo for 2D rendering, and GPU rendering is enabled by default.
  • Offscreen Canvas is now enabled by default.
  • Add support for system tracing using Sysprof.
  • Add new API to load settings from a config file.
  • Add a new setting to toggle 2D Canvas acceleration (enabled by default).
  • Undeprecate console messages API and make it available in the 2.0 API.

Release Notes:

  • https://wpewebkit.org/release/wpewebkit-2.46.0.html
  • https://wpewebkit.org/release/wpewebkit-2.46.0.html

Also CI updates in the build tests jobs definitions:

  • Update test jobs definitions to primary build 2.46.X
  • Remove preset for 2.42 and add a new one for 2.42

psaavedra avatar Sep 18 '24 07:09 psaavedra

@psaavedra Changes LGTM in general. We may want to add this somewhere in wpewebkit.inc, though:

EXTRA_OECMAKE += "-DENABLE_WPE_PLATFORM=OFF"

(See this message in the mailing list, I forgot to make that option disabled by default in the release branch.)

Actually, that won't work, there's an unconditional SET_AND_EXPOSE_TO_BUILD(), I'm making a patch.

aperezdc avatar Sep 18 '24 09:09 aperezdc

@psaavedra Changes LGTM in general. We may want to add this somewhere in wpewebkit.inc, though:

EXTRA_OECMAKE += "-DENABLE_WPE_PLATFORM=OFF"

(See this message in the mailing list, I forgot to make that option disabled by default in the release branch.)

Actually, that won't work, there's an unconditional SET_AND_EXPOSE_TO_BUILD(), I'm making a patch.

Here's the patch needed to be able to toggle the option: https://github.com/WebKit/WebKit/pull/33819

aperezdc avatar Sep 18 '24 09:09 aperezdc

@aperezdc , I have a doubt for the GTK build: | -- No package 'sysprof-capture-4' found. Is sysprof really a mandatory depends? Can we set this depends off?

psaavedra avatar Sep 18 '24 12:09 psaavedra

@aperezdc , I have a doubt for the GTK build: | -- No package 'sysprof-capture-4' found. Is sysprof really a mandatory depends? Can we set this depends off?

You can go with -DUSE_SYSTEM_SYSPROF_CAPTURE=OFF to use the bundled copy of the library, or -DUSE_SYSPROF_CAPTURE=OFF to completely disable the feature.

aperezdc avatar Sep 18 '24 13:09 aperezdc

we are getting a build error for the WebKitGTK build:

2024-09-19T10:40:08.8312493Z | /home/bot/yocto-webkit-scarthgap/builds/raspberrypi3-mesa-webkitgtk/tmp/work/cortexa7t2hf-neon-vfpv4-poky-linux-gnueabi/webkitgtk/2.46.0/build/bmalloc/Headers/bmalloc/EligibilityResult.h:35:5: error: expected identifier before numeric constant
2024-09-19T10:40:08.8314249Z |    35 |     Success, 
2024-09-19T10:40:08.8314565Z |       |     ^~~~~~~
2024-09-19T10:40:08.8316408Z | /home/bot/yocto-webkit-scarthgap/builds/raspberrypi3-mesa-webkitgtk/tmp/work/cortexa7t2hf-neon-vfpv4-poky-linux-gnueabi/webkitgtk/2.46.0/build/bmalloc/Headers/bmalloc/EligibilityResult.h:35:5: error: expected '}' before numeric constant
2024-09-19T10:40:08.8319541Z | In file included from /home/bot/yocto-webkit-scarthgap/builds/raspberrypi3-mesa-webkitgtk/tmp/work/cortexa7t2hf-neon-vfpv4-poky-linux-gnueabi/webkitgtk/2.46.0/build/bmalloc/Headers/bmalloc/EligibilityResultInlines.h:28,
2024-09-19T10:40:08.8322401Z |                  from /home/bot/yocto-webkit-scarthgap/builds/raspberrypi3-mesa-webkitgtk/tmp/work/cortexa7t2hf-neon-vfpv4-poky-linux-gnueabi/webkitgtk/2.46.0/build/bmalloc/Headers/bmalloc/IsoHeapInlines.h:31,
2024-09-19T10:40:08.8325041Z |                  from /home/bot/yocto-webkit-scarthgap/builds/raspberrypi3-mesa-webkitgtk/tmp/work/cortexa7t2hf-neon-vfpv4-poky-linux-gnueabi/webkitgtk/2.46.0/build/WTF/Headers/wtf/TZoneMallocInlines.h:58,
2024-09-19T10:40:08.8327893Z |                  from /home/bot/yocto-webkit-scarthgap/builds/raspberrypi3-mesa-webkitgtk/tmp/work/cortexa7t2hf-neon-vfpv4-poky-linux-gnueabi/webkitgtk/2.46.0/webkitgtk-2.46.0/Source/WebKit/UIProcess/gtk/PointerLockManagerX11.cpp:34:
2024-09-19T10:40:08.8330867Z | /home/bot/yocto-webkit-scarthgap/builds/raspberrypi3-mesa-webkitgtk/tmp/work/cortexa7t2hf-neon-vfpv4-poky-linux-gnueabi/webkitgtk/2.46.0/build/bmalloc/Headers/bmalloc/EligibilityResult.h:34:28: note: to match this '{'
2024-09-19T10:40:08.8332470Z |    34 | enum class EligibilityKind {
2024-09-19T10:40:08.8332889Z |       |                            ^
2024-09-19T10:40:08.8334978Z | /home/bot/yocto-webkit-scarthgap/builds/raspberrypi3-mesa-webkitgtk/tmp/work/cortexa7t2hf-neon-vfpv4-poky-linux-gnueabi/webkitgtk/2.46.0/build/bmalloc/Headers/bmalloc/EligibilityResult.h:35:5: error: expected unqualified-id before numeric constant
2024-09-19T10:40:08.8336719Z |    35 |     Success,
2024-09-19T10:40:08.8337030Z |       |     ^~~~~~~
2024-09-19T10:40:08.8339221Z | /home/bot/yocto-webkit-scarthgap/builds/raspberrypi3-mesa-webkitgtk/tmp/work/cortexa7t2hf-neon-vfpv4-poky-linux-gnueabi/webkitgtk/2.46.0/build/bmalloc/Headers/bmalloc/EligibilityResult.h:44:22: warning: unnecessary parentheses in declaration of 'EligibilityKind' [-Wparentheses]
2024-09-19T10:40:08.8341210Z |    44 |     EligibilityResult(EligibilityKind);
2024-09-19T10:40:08.8341683Z |       |                      ^~~~~~~~~~~~~~~~~
2024-09-19T10:40:08.8343497Z | /home/bot/yocto-webkit-scarthgap/builds/raspberrypi3-mesa-webkitgtk/tmp/work/cortexa7t2hf-neon-vfpv4-poky-linux-gnueabi/webkitgtk/2.46.0/build/bmalloc/Headers/bmalloc/EligibilityResult.h:44:22: note: remove parentheses
2024-09-19T10:40:08.8345154Z |    44 |     EligibilityResult(EligibilityKind);
2024-09-19T10:40:08.8345627Z |       |                      ^~~~~~~~~~~~~~~~~
2024-09-19T10:40:08.8346133Z |       |                      -               -
2024-09-19T10:40:08.8348328Z | /home/bot/yocto-webkit-scarthgap/builds/raspberrypi3-mesa-webkitgtk/tmp/work/cortexa7t2hf-neon-vfpv4-poky-linux-gnueabi/webkitgtk/2.46.0/build/bmalloc/Headers/bmalloc/EligibilityResult.h:44:23: error: field 'EligibilityKind' has incomplete type 'EligibilityResult<Config>'
2024-09-19T10:40:08.8350293Z |    44 |     EligibilityResult(EligibilityKind);
2024-09-19T10:40:08.8350762Z |       |                       ^~~~~~~~~~~~~~~
2024-09-19T10:40:08.8353022Z | /home/bot/yocto-webkit-scarthgap/builds/raspberrypi3-mesa-webkitgtk/tmp/work/cortexa7t2hf-neon-vfpv4-poky-linux-gnueabi/webkitgtk/2.46.0/build/bmalloc/Headers/bmalloc/EligibilityResult.h:41:8: note: definition of 'struct EligibilityResult<Config>' is not complete until the closing brace
2024-09-19T10:40:08.8355020Z |    41 | struct EligibilityResult {
2024-09-19T10:40:08.8355423Z |       |        ^~~~~~~~~~~~~~~~~
2024-09-19T10:40:08.8357270Z | /home/bot/yocto-webkit-scarthgap/builds/raspberrypi3-mesa-webkitgtk/tmp/work/cortexa7t2hf-neon-vfpv4-poky-linux-gnueabi/webkitgtk/2.46.0/build/bmalloc/Headers/bmalloc/EligibilityResult.h:45:30: error: expected ')' before '<' token
2024-09-19T10:40:08.8358997Z |    45 |     EligibilityResult(IsoPage<Config>*);
2024-09-19T10:40:08.8359461Z |       |                      ~       ^
2024-09-19T10:40:08.8359896Z |       |                              )

I am not familiar with this code. The error indicates that Success is being treated as a numeric constant or macro, possibly because Success has been defined somewhere else, potentially as a macro or constant.

psaavedra avatar Sep 19 '24 11:09 psaavedra

Likely the issue could be related with this flag:

//Whether to enable support for the X11 windowing target.
ENABLE_X11_TARGET:BOOL=ON

psaavedra avatar Sep 19 '24 12:09 psaavedra

Maybe you will want to pick WebKitGTK 2.46.1 and wait for the corresponding WPE release 😉.

aperezdc avatar Sep 30 '24 12:09 aperezdc

Likely the issue could be related with this flag:

//Whether to enable support for the X11 windowing target.
ENABLE_X11_TARGET:BOOL=ON

issue: https://bugs.webkit.org/show_bug.cgi?id=278858

psaavedra avatar Oct 09 '24 11:10 psaavedra

I still have a couple of comments.

Also, the build is currently broken with -DENABLE_VIDEO=OFF (both in main and in the 2.46 release branch); there are patches being worked on for this.

Could you be more specific? I see https://github.com/WebKit/WebKit/pull/35004 which is being about to be landed which this partially depends of 2f4378eb7afab. Is this what you are making a reference in you previous comment?

psaavedra avatar Oct 14 '24 08:10 psaavedra

I still have a couple of comments. Also, the build is currently broken with -DENABLE_VIDEO=OFF (both in main and in the 2.46 release branch); there are patches being worked on for this.

Could you be more specific? I see WebKit/WebKit#35004 which is being about to be landed which this partially depends of 2f4378eb7afab. Is this what you are making a reference in you previous comment?

All these three patches to be able to build with multimedia support disabled:

  • https://github.com/WebKit/WebKit/pull/34923
  • https://github.com/WebKit/WebKit/pull/35004 (this is the one you linked above)
  • https://github.com/WebKit/WebKit/pull/35147

I have backported them all into the webkitglib/2.46 branch:

  • https://github.com/WebKit/WebKit/commit/6b59562904cd85cebdd91106308d35c5e112858d
  • https://github.com/WebKit/WebKit/commit/99989ffdf40b0290d9129a76a5128987f7299728
  • https://github.com/WebKit/WebKit/commit/3f520c14f646445b2b242ace42a8aadd0d834a3b

If you are going to import the patches into meta-webkit, pick them from the release branch, because the second one has some additional fixes by me.

aperezdc avatar Oct 15 '24 09:10 aperezdc

If you are going to import the patches into meta-webkit, pick them from the release branch, because the second one has some additional fixes by me.

About the ENABLE(MEDIA_SESSION), I indeed left this part out in commit 2f4378eb7afab. @aperezdc : are you going to push this to main branch too?

blino avatar Oct 15 '24 11:10 blino

@psaavedra And one more fix for ARM NEON (needed e.g. for the Raspberry Pi 4) → https://github.com/WebKit/WebKit/pull/35244

@blino I will push the ENABLE(MEDIA_SESSION) bits to main, yes.

aperezdc avatar Oct 15 '24 23:10 aperezdc

Thanks @aperezdc I will take care of those patches and I will add it in a subsequent PR. 🙇🏼

psaavedra avatar Oct 17 '24 20:10 psaavedra