This is coming shortly to oe-core. Alex
On Thu 27. Jul 2023 at 14.53, Zoltan Boszormenyi <zbos...@gmail.com> wrote: > 2023. 07. 27. 13:38 keltezéssel, Markus Volk írta: > > - Change the meta-gnome recipes to use the gtk3 variant of webkitgtk > > Can you also add the GTK4 variant, too? Pretty please. > > > - Import gcr3 recipe from oe-core > > > > Most Gnome recipes require webkitgtk built with gtk+3. oe-core is in the > > process of updating webkitgtk to be built with gtk4. It will be necessary > > to add a recipe that provides the gtk+3 variant, or we wont be able > > to use e.g. geary with gmail addresses or provide google integration for > > gnome-calendar or nautilus/files. > > > > Signed-off-by: Markus Volk <f_...@t-online.de> > > --- > > .../recipes-connectivity/geary/geary_43.0.bb | 2 +- > > .../evolution-data-server.bb | 2 +- > > ...ectly-handle-disabled-ssh_agent-opti.patch | 36 ++ > > meta-gnome/recipes-gnome/gcr/gcr3_3.41.1.bb | 59 ++++ > > .../gnome-online-accounts_3.48.0.bb | 2 +- > > meta-gnome/recipes-gnome/yelp/yelp_42.2.bb | 2 +- > > .../recipes-gnome/zenity/zenity_3.44.0.bb | 2 +- > > ...spection.cmake-prefix-variables-obta.patch | 29 ++ > > ...tCore-CMakeLists.txt-ensure-reproduc.patch | 28 ++ > > ...44e17d258106617b0e6d783d073b188a2548.patch | 310 ++++++++++++++++++ > > ...290ab4ab35258a6da9b13795c9b0f7894bf4.patch | 41 +++ > > .../check-GST_GL_HAVE_PLATFORM_GLX.patch | 33 ++ > > .../webkitgtk3/reproducibility.patch | 22 ++ > > .../webkitgtk/webkitgtk3_2.40.2.bb | 169 ++++++++++ > > .../wxwidgets/wxwidgets_3.2.1.bb | 2 +- > > meta-oe/recipes-graphics/surf/surf_2.1.bb | 2 +- > > 16 files changed, 734 insertions(+), 7 deletions(-) > > create mode 100644 > meta-gnome/recipes-gnome/gcr/gcr3/0001-meson.build-correctly-handle-disabled-ssh_agent-opti.patch > > create mode 100644 meta-gnome/recipes-gnome/gcr/gcr3_3.41.1.bb > > create mode 100644 > meta-gnome/recipes-support/webkitgtk/webkitgtk3/0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch > > create mode 100644 > meta-gnome/recipes-support/webkitgtk/webkitgtk3/0001-Source-JavaScriptCore-CMakeLists.txt-ensure-reproduc.patch > > create mode 100644 > meta-gnome/recipes-support/webkitgtk/webkitgtk3/0d3344e17d258106617b0e6d783d073b188a2548.patch > > create mode 100644 > meta-gnome/recipes-support/webkitgtk/webkitgtk3/4977290ab4ab35258a6da9b13795c9b0f7894bf4.patch > > create mode 100644 > meta-gnome/recipes-support/webkitgtk/webkitgtk3/check-GST_GL_HAVE_PLATFORM_GLX.patch > > create mode 100644 > meta-gnome/recipes-support/webkitgtk/webkitgtk3/reproducibility.patch > > create mode 100644 meta-gnome/recipes-support/webkitgtk/ > webkitgtk3_2.40.2.bb > > > > diff --git a/meta-gnome/recipes-connectivity/geary/geary_43.0.bb > b/meta-gnome/recipes-connectivity/geary/geary_43.0.bb > > index 6085d94fdc..bab4f909e0 100644 > > --- a/meta-gnome/recipes-connectivity/geary/geary_43.0.bb > > +++ b/meta-gnome/recipes-connectivity/geary/geary_43.0.bb > > @@ -26,7 +26,7 @@ DEPENDS = " \ > > libstemmer \ > > libxml2 \ > > sqlite3 \ > > - webkitgtk \ > > + webkitgtk3 \ > > " > > > > RDEPENDS:${PN} = "gnome-keyring" > > diff --git a/meta-gnome/recipes-gnome/evolution-data-server/ > evolution-data-server.bb b/meta-gnome/recipes-gnome/evolution-data-server/ > evolution-data-server.bb > > index 43717a84cd..edbe30ff87 100644 > > --- a/meta-gnome/recipes-gnome/evolution-data-server/ > evolution-data-server.bb > > +++ b/meta-gnome/recipes-gnome/evolution-data-server/ > evolution-data-server.bb > > @@ -37,7 +37,7 @@ EXTRA_OECMAKE:append:class-target = " > -DG_IR_SCANNER=${STAGING_BINDIR}/g-ir-scan > > PACKAGECONFIG ?= "oauth" > > > > PACKAGECONFIG[canberra] = > "-DENABLE_CANBERRA=ON,-DENABLE_CANBERRA=OFF,libcanberra" > > -PACKAGECONFIG[oauth] = "-DENABLE_OAUTH2_WEBKITGTK=ON > -DENABLE_OAUTH2_WEBKITGTK4=OFF,-DENABLE_OAUTH2_WEBKITGTK4=OFF > -DENABLE_OAUTH2_WEBKITGTK=OFF,webkitgtk json-glib" > > +PACKAGECONFIG[oauth] = "-DENABLE_OAUTH2_WEBKITGTK=ON > -DENABLE_OAUTH2_WEBKITGTK4=OFF,-DENABLE_OAUTH2_WEBKITGTK4=OFF > -DENABLE_OAUTH2_WEBKITGTK=OFF,webkitgtk3 json-glib" > > PACKAGECONFIG[goa] = > "-DENABLE_GOA=ON,-DENABLE_GOA=OFF,gnome-online-accounts" > > PACKAGECONFIG[kerberos] = "-DWITH_KRB5=ON,-DWITH_KRB5=OFF,krb5" > > # BROKEN: due missing pkg-config in openldap eds' cmake finds > host-libs when > > diff --git > a/meta-gnome/recipes-gnome/gcr/gcr3/0001-meson.build-correctly-handle-disabled-ssh_agent-opti.patch > b/meta-gnome/recipes-gnome/gcr/gcr3/0001-meson.build-correctly-handle-disabled-ssh_agent-opti.patch > > new file mode 100644 > > index 0000000000..d3c26d97ae > > --- /dev/null > > +++ > b/meta-gnome/recipes-gnome/gcr/gcr3/0001-meson.build-correctly-handle-disabled-ssh_agent-opti.patch > > @@ -0,0 +1,36 @@ > > +From 9b67bb18d8409e0e693cc6000507acbd73a30eab Mon Sep 17 00:00:00 2001 > > +From: Alexander Kanavin <a...@linutronix.de> > > +Date: Wed, 16 Nov 2022 11:27:24 +0100 > > +Subject: [PATCH 1/2] meson.build: correctly handle disabled ssh_agent > option > > + > > +Existing code produces these errors: > > +| gcr/meson.build:61:0: ERROR: Unable to get the path of a not-found > external program > > +| gcr/meson.build:101:5: ERROR: Unknown variable "ssh_add_path". > > + > > +Signed-off-by: Alexander Kanavin <a...@linutronix.de> > > + > > +Upstream-Status: Backport [ > https://gitlab.gnome.org/GNOME/gcr/-/commit/9b67bb18d8409e0e693cc6000507acbd73a30eab > ] > > +--- > > + meson.build | 12 ++++++++---- > > + 1 file changed, 8 insertions(+), 4 deletions(-) > > + > > +diff --git a/meson.build b/meson.build > > +index 3f35173..11d7fa7 100644 > > +--- a/meson.build > > ++++ b/meson.build > > +@@ -96,8 +98,10 @@ conf.set('HAVE_TIMEGM', cc.has_function('timegm')) > > + conf.set('HAVE_MLOCK', cc.has_function('mlock')) > > + conf.set_quoted('GPG_EXECUTABLE', gpg_path) > > + conf.set_quoted('LIBGCRYPT_VERSION', libgcrypt_dep.version()) > > +-conf.set_quoted('SSH_ADD_EXECUTABLE', ssh_add_path) > > +-conf.set_quoted('SSH_AGENT_EXECUTABLE', ssh_agent_path) > > ++if get_option('ssh_agent') > > ++ conf.set_quoted('SSH_ADD_EXECUTABLE', ssh_add_path) > > ++ conf.set_quoted('SSH_AGENT_EXECUTABLE', ssh_agent_path) > > ++endif > > + conf.set10('WITH_SYSTEMD', with_systemd) > > + config_file = configure_file( > > + output: 'config.h', > > +-- > > +2.34.1 > > + > > diff --git a/meta-gnome/recipes-gnome/gcr/gcr3_3.41.1.bb > b/meta-gnome/recipes-gnome/gcr/gcr3_3.41.1.bb > > new file mode 100644 > > index 0000000000..ba5660a5ed > > --- /dev/null > > +++ b/meta-gnome/recipes-gnome/gcr/gcr3_3.41.1.bb > > @@ -0,0 +1,59 @@ > > +SUMMARY = "A library for bits of crypto UI and parsing etc" > > +DESCRIPTION = "GCR is a library for displaying certificates, and crypto > UI, \ > > +accessing key stores. It also provides the viewer for crypto files on > the \ > > +GNOME desktop." > > +HOMEPAGE = "https://gitlab.gnome.org/GNOME/gcr" > > +BUGTRACKER = "https://gitlab.gnome.org/GNOME/gcr/issues" > > + > > +LICENSE = "GPL-2.0-only" > > +LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605" > > + > > +DEPENDS = "p11-kit glib-2.0 libgcrypt gnupg-native \ > > + ${@bb.utils.contains('GI_DATA_ENABLED', 'True', > 'libxslt-native', '', d)}" > > + > > +CACHED_CONFIGUREVARS += "ac_cv_path_GPG='gpg2'" > > + > > +CFLAGS += "-D_GNU_SOURCE" > > + > > +GNOMEBASEBUILDCLASS = "meson" > > +GTKDOC_MESON_OPTION = "gtk_doc" > > +inherit gnomebase gtk-icon-cache gi-docgen features_check > upstream-version-is-even vala gobject-introspection gettext mime mime-xdg > > +UPSTREAM_CHECK_REGEX = "[^\d\.](?P<pver>3.(?!9\d+)\d+(\.\d+)+)\.tar" > > + > > +SRC_URI = " > https://download.gnome.org/sources/gcr/3.41/gcr-${PV}.tar.xz;name=archive" > > +SRC_URI += > "file://0001-meson.build-correctly-handle-disabled-ssh_agent-opti.patch" > > +SRC_URI[archive.sha256sum] = > "bb7128a3c2febbfee9c03b90d77d498d0ceb237b0789802d60185c71c4bea24f" > > + > > +S = "${WORKDIR}/gcr-${PV}" > > + > > +PACKAGECONFIG ??= " \ > > + ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \ > > + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gtk', '', d)} \ > > + ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'gtk', '', d)} \ > > +" > > +PACKAGECONFIG[gtk] = "-Dgtk=true,-Dgtk=false,gtk+3" > > +PACKAGECONFIG[ssh_agent] = > "-Dssh_agent=true,-Dssh_agent=false,libsecret,openssh" > > +#'Use systemd socket activation for server programs' > > +PACKAGECONFIG[systemd] = "-Dsystemd=enabled,-Dsystemd=disabled,systemd" > > + > > +FILES:${PN} += " \ > > + ${datadir}/dbus-1 \ > > + ${datadir}/gcr-3 \ > > + ${systemd_user_unitdir}/gcr-ssh-agent.socket \ > > + ${systemd_user_unitdir}/gcr-ssh-agent.service \ > > +" > > + > > +# http://errors.yoctoproject.org/Errors/Details/20229/ > > +ARM_INSTRUCTION_SET:armv4 = "arm" > > +ARM_INSTRUCTION_SET:armv5 = "arm" > > +ARM_INSTRUCTION_SET:armv6 = "arm" > > + > > +EXTRA_OEMESON += "--cross-file ${WORKDIR}/meson-${PN}.cross" > > +do_write_config:append() { > > + cat >${WORKDIR}/meson-${PN}.cross <<EOF > > +[binaries] > > +gpg2 = '${bindir}/gpg2' > > +ssh-add = '${bindir}/ssh-add' > > +ssh-agent = '${bindir}/ssh-agent' > > +EOF > > +} > > diff --git a/meta-gnome/recipes-gnome/gnome-online-accounts/ > gnome-online-accounts_3.48.0.bb > b/meta-gnome/recipes-gnome/gnome-online-accounts/ > gnome-online-accounts_3.48.0.bb > > index ca78fa0119..cd14b48508 100644 > > --- a/meta-gnome/recipes-gnome/gnome-online-accounts/ > gnome-online-accounts_3.48.0.bb > > +++ b/meta-gnome/recipes-gnome/gnome-online-accounts/ > gnome-online-accounts_3.48.0.bb > > @@ -14,7 +14,7 @@ SRC_URI[archive.sha256sum] = > "418bb9fcffdbd72a98205ad365137617fc1e3551a54de74f6a > > PACKAGECONFIG ?= "goabackend kerberos owncloud lastfm google > windows_live" > > > > # goabackend requires webkitgtk to be built with gtk+3 and gcr3 > > -PACKAGECONFIG[goabackend] = "-Dgoabackend=true,-Dgoabackend=false,gtk+3 > gtk+3-native json-glib libxml2 libsoup rest libsecret webkitgtk" > > +PACKAGECONFIG[goabackend] = "-Dgoabackend=true,-Dgoabackend=false,gtk+3 > gtk+3-native json-glib libxml2 libsoup rest libsecret webkitgtk3" > > PACKAGECONFIG[kerberos] = "-Dkerberos=true, -Dkerberos=false,krb5 gcr3" > > PACKAGECONFIG[exchange] = "-Dexchange=true, -Dexchange=false" > > PACKAGECONFIG[google] = "-Dgoogle=true, -Dgoogle=false" > > diff --git a/meta-gnome/recipes-gnome/yelp/yelp_42.2.bb > b/meta-gnome/recipes-gnome/yelp/yelp_42.2.bb > > index 200ed0f709..51d51ee0ab 100644 > > --- a/meta-gnome/recipes-gnome/yelp/yelp_42.2.bb > > +++ b/meta-gnome/recipes-gnome/yelp/yelp_42.2.bb > > @@ -19,7 +19,7 @@ DEPENDS += " \ > > libxslt \ > > sqlite3 \ > > libhandy \ > > - webkitgtk \ > > + webkitgtk3 \ > > yelp-xsl \ > > " > > PACKAGECONFIG_SOUP ?= "soup3" > > diff --git a/meta-gnome/recipes-gnome/zenity/zenity_3.44.0.bb > b/meta-gnome/recipes-gnome/zenity/zenity_3.44.0.bb > > index 8ea24ca49b..3548cc5bbe 100644 > > --- a/meta-gnome/recipes-gnome/zenity/zenity_3.44.0.bb > > +++ b/meta-gnome/recipes-gnome/zenity/zenity_3.44.0.bb > > @@ -20,7 +20,7 @@ SRC_URI[archive.sha256sum] = > "c15582301ed90b9d42ce521dbccf99a989f22f12041bdd5279 > > SRC_URI += > "file://0001-Harcode-shebang-to-avoid-pointing-to-build-system-s-.patch" > > > > PACKAGECONFIG ?= "webkitgtk" > > -PACKAGECONFIG[webkitgtk] = > "-Dwebkitgtk=true,-Dwebkitgtk=false,webkitgtk" > > +PACKAGECONFIG[webkitgtk] = > "-Dwebkitgtk=true,-Dwebkitgtk=false,webkitgtk3" > > > > PACKAGES =+ "${PN}-gdialog" > > FILES:${PN}-gdialog = "${bindir}/gdialog" > > diff --git > a/meta-gnome/recipes-support/webkitgtk/webkitgtk3/0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch > b/meta-gnome/recipes-support/webkitgtk/webkitgtk3/0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch > > new file mode 100644 > > index 0000000000..8ae39f14e1 > > --- /dev/null > > +++ > b/meta-gnome/recipes-support/webkitgtk/webkitgtk3/0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch > > @@ -0,0 +1,29 @@ > > +From 10cfdcc905915d8814c609008a069102f2bc7e39 Mon Sep 17 00:00:00 2001 > > +From: Alexander Kanavin <alex.kana...@gmail.com> > > +Date: Tue, 27 Oct 2015 16:02:19 +0200 > > +Subject: [PATCH] FindGObjectIntrospection.cmake: prefix variables > obtained > > + from pkg-config with PKG_CONFIG_SYSROOT_DIR > > + > > +See discussion at https://bugs.webkit.org/show_bug.cgi?id=232933 for > > +reasons why this is not approproiate for upstream submission. > > + > > +Upstream-Status: Inappropriate [oe-core specific] > > +Signed-off-by: Alexander Kanavin <alex.kana...@gmail.com> > > +--- > > + Source/cmake/FindGI.cmake | 3 +++ > > + 1 file changed, 3 insertions(+) > > + > > +diff --git a/Source/cmake/FindGI.cmake b/Source/cmake/FindGI.cmake > > +index af039cbb..b3e810cd 100644 > > +--- a/Source/cmake/FindGI.cmake > > ++++ b/Source/cmake/FindGI.cmake > > +@@ -72,6 +72,9 @@ if (PKG_CONFIG_FOUND) > > + endif () > > + endif () > > + > > ++set(_GI_SCANNER_EXE "$ENV{PKG_CONFIG_SYSROOT_DIR}${_GI_SCANNER_EXE}") > > ++set(_GI_COMPILER_EXE "$ENV{PKG_CONFIG_SYSROOT_DIR}${_GI_COMPILER_EXE}") > > ++ > > + find_program(GI_SCANNER_EXE NAMES ${_GI_SCANNER_EXE} g-ir-scanner) > > + find_program(GI_COMPILER_EXE NAMES ${_GI_COMPILER_EXE} g-ir-compiler) > > + > > diff --git > a/meta-gnome/recipes-support/webkitgtk/webkitgtk3/0001-Source-JavaScriptCore-CMakeLists.txt-ensure-reproduc.patch > b/meta-gnome/recipes-support/webkitgtk/webkitgtk3/0001-Source-JavaScriptCore-CMakeLists.txt-ensure-reproduc.patch > > new file mode 100644 > > index 0000000000..bbe265059d > > --- /dev/null > > +++ > b/meta-gnome/recipes-support/webkitgtk/webkitgtk3/0001-Source-JavaScriptCore-CMakeLists.txt-ensure-reproduc.patch > > @@ -0,0 +1,28 @@ > > +From cd65e3d9256a4f6eb7906a9f10678c29a4ffef2f Mon Sep 17 00:00:00 2001 > > +From: Alexander Kanavin <a...@linutronix.de> > > +Date: Mon, 26 Jun 2023 14:30:02 +0200 > > +Subject: [PATCH] Source/JavaScriptCore/CMakeLists.txt: ensure > reproducibility > > + of __TIMESTAMP__ > > + > > +__TIMESTAMP__ refers to mtime of the file that contains it, which is > unstable > > +and breaks binary reproducibility when the file is generated at build > time. To ensure > > +this does not happen, mtime should be set from the original file. > > + > > +Upstream-Status: Submitted [https://github.com/WebKit/WebKit/pull/15293 > ] > > +Signed-off-by: Alexander Kanavin <a...@linutronix.de> > > +--- > > + Source/JavaScriptCore/CMakeLists.txt | 1 + > > + 1 file changed, 1 insertion(+) > > + > > +diff --git a/Source/JavaScriptCore/CMakeLists.txt > b/Source/JavaScriptCore/CMakeLists.txt > > +index 43dc22ff..c2e3b1cd 100644 > > +--- a/Source/JavaScriptCore/CMakeLists.txt > > ++++ b/Source/JavaScriptCore/CMakeLists.txt > > +@@ -159,6 +159,7 @@ add_custom_command( > > + OUTPUT > ${JavaScriptCore_DERIVED_SOURCES_DIR}/JSCBytecodeCacheVersion.cpp > > + MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/runtime/ > JSCBytecodeCacheVersion.cpp.in > > + COMMAND ${PERL_EXECUTABLE} -pe s/CACHED_TYPES_CKSUM/__TIMESTAMP__/ > ${JAVASCRIPTCORE_DIR}/runtime/JSCBytecodeCacheVersion.cpp.in > > ${JavaScriptCore_DERIVED_SOURCES_DIR}/JSCBytecodeCacheVersion.cpp > > ++ COMMAND touch -r ${JAVASCRIPTCORE_DIR}/runtime/ > JSCBytecodeCacheVersion.cpp.in > ${JavaScriptCore_DERIVED_SOURCES_DIR}/JSCBytecodeCacheVersion.cpp > > + VERBATIM > > + ) > > + > > diff --git > a/meta-gnome/recipes-support/webkitgtk/webkitgtk3/0d3344e17d258106617b0e6d783d073b188a2548.patch > b/meta-gnome/recipes-support/webkitgtk/webkitgtk3/0d3344e17d258106617b0e6d783d073b188a2548.patch > > new file mode 100644 > > index 0000000000..34e0ff9af3 > > --- /dev/null > > +++ > b/meta-gnome/recipes-support/webkitgtk/webkitgtk3/0d3344e17d258106617b0e6d783d073b188a2548.patch > > @@ -0,0 +1,310 @@ > > +From 647c93de99a0f71f478d76a4cc7714eba7ba1447 Mon Sep 17 00:00:00 2001 > > +From: Adrian Perez de Castro <ape...@igalia.com> > > +Date: Thu, 2 Jun 2022 11:19:06 +0300 > > +Subject: [PATCH] FELightningNEON.cpp fails to build, NEON fast path > seems > > + unused https://bugs.webkit.org/show_bug.cgi?id=241182 > > + > > +Reviewed by NOBODY (OOPS!). > > + > > +Move the NEON fast path for the SVG lighting filter effects into > > +FELightingSoftwareApplier, and arrange to actually use them by > > +forwarding calls to applyPlatformGeneric() into applyPlatformNeon(). > > + > > +Some changes were needed to adapt platformApplyNeon() to the current > > +state of filters after r286140. This was not detected because the code > > +bitrotted due to it being guarded with CPU(ARM_TRADITIONAL), which does > > +not get used much these days: CPU(ARM_THUMB2) is more common. It should > > +be possible to use the NEON fast paths also in Thumb mode, but that is > > +left for a follow-up fix. > > + > > +* Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.cpp: > > +(WebCore::FELightingSoftwareApplier::platformApplyNeonWorker): > > +(WebCore::FELightingSoftwareApplier::getPowerCoefficients): > > +(WebCore::FELighting::platformApplyNeonWorker): Deleted. > > +(WebCore::FELighting::getPowerCoefficients): Deleted. > > +* Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.h: > > +(WebCore::FELightingSoftwareApplier::applyPlatformNeon): > > +(WebCore::FELighting::platformApplyNeon): Deleted. > > +* Source/WebCore/platform/graphics/filters/DistantLightSource.h: > > +* Source/WebCore/platform/graphics/filters/FELighting.h: > > +* Source/WebCore/platform/graphics/filters/PointLightSource.h: > > +* Source/WebCore/platform/graphics/filters/SpotLightSource.h: > > +* > Source/WebCore/platform/graphics/filters/software/FELightingSoftwareApplier.h: > > + > > +Upstream-Status: Submitted [https://github.com/WebKit/WebKit/pull/1233] > > +Signed-off-by: Khem Raj <raj.k...@gmail.com> > > +--- > > + .../cpu/arm/filters/FELightingNEON.cpp | 4 +- > > + .../graphics/cpu/arm/filters/FELightingNEON.h | 52 +++++++++---------- > > + .../graphics/filters/DistantLightSource.h | 4 ++ > > + .../platform/graphics/filters/FELighting.h | 7 --- > > + .../graphics/filters/PointLightSource.h | 4 ++ > > + .../graphics/filters/SpotLightSource.h | 4 ++ > > + .../software/FELightingSoftwareApplier.h | 16 ++++++ > > + 7 files changed, 56 insertions(+), 35 deletions(-) > > + > > +diff --git > a/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.cpp > b/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.cpp > > +index f6ff8c20..42a97ffc 100644 > > +--- > a/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.cpp > > ++++ > b/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.cpp > > +@@ -49,7 +49,7 @@ short* feLightingConstantsForNeon() > > + return s_FELightingConstantsForNeon; > > + } > > + > > +-void > FELighting::platformApplyNeonWorker(FELightingPaintingDataForNeon* > parameters) > > ++void > FELightingSoftwareApplier::platformApplyNeonWorker(FELightingPaintingDataForNeon* > parameters) > > + { > > + neonDrawLighting(parameters); > > + } > > +@@ -464,7 +464,7 @@ TOSTRING(neonDrawLighting) ":" NL > > + "b .lightStrengthCalculated" NL > > + ); // NOLINT > > + > > +-int FELighting::getPowerCoefficients(float exponent) > > ++int FELightingSoftwareApplier::getPowerCoefficients(float exponent) > > + { > > + // Calling a powf function from the assembly code would require to > save > > + // and reload a lot of NEON registers. Since the base is in range > [0..1] > > +diff --git > a/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.h > b/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.h > > +index b17c603d..e4629cda 100644 > > +--- a/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.h > > ++++ b/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.h > > +@@ -24,14 +24,15 @@ > > + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. > > + */ > > + > > +-#ifndef FELightingNEON_h > > +-#define FELightingNEON_h > > ++#pragma once > > + > > + #if CPU(ARM_NEON) && CPU(ARM_TRADITIONAL) && COMPILER(GCC_COMPATIBLE) > > + > > +-#include "FELighting.h" > > ++#include "FELightingSoftwareApplier.h" > > ++#include "ImageBuffer.h" > > + #include "PointLightSource.h" > > + #include "SpotLightSource.h" > > ++#include <wtf/ObjectIdentifier.h> > > + #include <wtf/ParallelJobs.h> > > + > > + namespace WebCore { > > +@@ -93,14 +94,14 @@ extern "C" { > > + void neonDrawLighting(FELightingPaintingDataForNeon*); > > + } > > + > > +-inline void FELighting::platformApplyNeon(const LightingData& data, > const LightSource::PaintingData& paintingData) > > ++inline void FELightingSoftwareApplier::applyPlatformNeon(const > FELightingSoftwareApplier::LightingData& data, const > LightSource::PaintingData& paintingData) > > + { > > +- alignas(16) FELightingFloatArgumentsForNeon floatArguments; > > +- FELightingPaintingDataForNeon neonData = { > > ++ WebCore::FELightingFloatArgumentsForNeon alignas(16) > floatArguments; > > ++ WebCore::FELightingPaintingDataForNeon neonData = { > > + data.pixels->data(), > > + 1, > > +- data.widthDecreasedByOne - 1, > > +- data.heightDecreasedByOne - 1, > > ++ data.width - 2, > > ++ data.height - 2, > > + 0, > > + 0, > > + 0, > > +@@ -111,23 +112,23 @@ inline void FELighting::platformApplyNeon(const > LightingData& data, const LightS > > + // Set light source arguments. > > + floatArguments.constOne = 1; > > + > > +- auto color = > m_lightingColor.toColorTypeLossy<SRGBA<uint8_t>>().resolved(); > > ++ auto color = > data.lightingColor.toColorTypeLossy<SRGBA<uint8_t>>().resolved(); > > + > > + floatArguments.colorRed = color.red; > > + floatArguments.colorGreen = color.green; > > + floatArguments.colorBlue = color.blue; > > + floatArguments.padding4 = 0; > > + > > +- if (m_lightSource->type() == LS_POINT) { > > ++ if (data.lightSource->type() == LS_POINT) { > > + neonData.flags |= FLAG_POINT_LIGHT; > > +- PointLightSource& pointLightSource = > static_cast<PointLightSource&>(m_lightSource.get()); > > ++ const auto& pointLightSource = *static_cast<const > PointLightSource*>(data.lightSource); > > + floatArguments.lightX = pointLightSource.position().x(); > > + floatArguments.lightY = pointLightSource.position().y(); > > + floatArguments.lightZ = pointLightSource.position().z(); > > + floatArguments.padding2 = 0; > > +- } else if (m_lightSource->type() == LS_SPOT) { > > ++ } else if (data.lightSource->type() == LS_SPOT) { > > + neonData.flags |= FLAG_SPOT_LIGHT; > > +- SpotLightSource& spotLightSource = > static_cast<SpotLightSource&>(m_lightSource.get()); > > ++ const auto& spotLightSource = *static_cast<const > SpotLightSource*>(data.lightSource); > > + floatArguments.lightX = spotLightSource.position().x(); > > + floatArguments.lightY = spotLightSource.position().y(); > > + floatArguments.lightZ = spotLightSource.position().z(); > > +@@ -145,7 +146,7 @@ inline void FELighting::platformApplyNeon(const > LightingData& data, const LightS > > + if (spotLightSource.specularExponent() == 1) > > + neonData.flags |= FLAG_CONE_EXPONENT_IS_1; > > + } else { > > +- ASSERT(m_lightSource->type() == LS_DISTANT); > > ++ ASSERT(data.lightSource->type() == LS_DISTANT); > > + floatArguments.lightX = > paintingData.initialLightingData.lightVector.x(); > > + floatArguments.lightY = > paintingData.initialLightingData.lightVector.y(); > > + floatArguments.lightZ = > paintingData.initialLightingData.lightVector.z(); > > +@@ -155,38 +156,39 @@ inline void FELighting::platformApplyNeon(const > LightingData& data, const LightS > > + // Set lighting arguments. > > + floatArguments.surfaceScale = data.surfaceScale; > > + floatArguments.minusSurfaceScaleDividedByFour = -data.surfaceScale > / 4; > > +- if (m_lightingType == FELighting::DiffuseLighting) > > +- floatArguments.diffuseConstant = m_diffuseConstant; > > ++ if (data.filterType == FilterEffect::Type::FEDiffuseLighting) > > ++ floatArguments.diffuseConstant = data.diffuseConstant; > > + else { > > + neonData.flags |= FLAG_SPECULAR_LIGHT; > > +- floatArguments.diffuseConstant = m_specularConstant; > > +- neonData.specularExponent = > getPowerCoefficients(m_specularExponent); > > +- if (m_specularExponent == 1) > > ++ floatArguments.diffuseConstant = data.specularConstant; > > ++ neonData.specularExponent = > getPowerCoefficients(data.specularExponent); > > ++ if (data.specularExponent == 1) > > + neonData.flags |= FLAG_SPECULAR_EXPONENT_IS_1; > > + } > > + if (floatArguments.diffuseConstant == 1) > > + neonData.flags |= FLAG_DIFFUSE_CONST_IS_1; > > + > > +- int optimalThreadNumber = ((data.widthDecreasedByOne - 1) * > (data.heightDecreasedByOne - 1)) / s_minimalRectDimension; > > ++ static constexpr int minimalRectDimension = 100 * 100; // > Empirical data limit for parallel jobs > > ++ int optimalThreadNumber = ((data.width - 2) * (data.height - 2)) / > minimalRectDimension; > > + if (optimalThreadNumber > 1) { > > + // Initialize parallel jobs > > +- ParallelJobs<FELightingPaintingDataForNeon> > parallelJobs(&WebCore::FELighting::platformApplyNeonWorker, > optimalThreadNumber); > > ++ ParallelJobs<FELightingPaintingDataForNeon> > parallelJobs(&FELightingSoftwareApplier::platformApplyNeonWorker, > optimalThreadNumber); > > + > > + // Fill the parameter array > > + int job = parallelJobs.numberOfJobs(); > > + if (job > 1) { > > + int yStart = 1; > > +- int yStep = (data.heightDecreasedByOne - 1) / job; > > ++ int yStep = (data.height - 2) / job; > > + for (--job; job >= 0; --job) { > > + FELightingPaintingDataForNeon& params = > parallelJobs.parameter(job); > > + params = neonData; > > + params.yStart = yStart; > > +- params.pixels += (yStart - 1) * > (data.widthDecreasedByOne + 1) * 4; > > ++ params.pixels += (yStart - 1) * data.width * 4; > > + if (job > 0) { > > + params.absoluteHeight = yStep; > > + yStart += yStep; > > + } else > > +- params.absoluteHeight = data.heightDecreasedByOne > - yStart; > > ++ params.absoluteHeight = (data.height - 1) - yStart; > > + } > > + parallelJobs.execute(); > > + return; > > +@@ -199,5 +201,3 @@ inline void FELighting::platformApplyNeon(const > LightingData& data, const LightS > > + } // namespace WebCore > > + > > + #endif // CPU(ARM_NEON) && COMPILER(GCC_COMPATIBLE) > > +- > > +-#endif // FELightingNEON_h > > +diff --git > a/Source/WebCore/platform/graphics/filters/DistantLightSource.h > b/Source/WebCore/platform/graphics/filters/DistantLightSource.h > > +index 70c6512f..b032c82e 100644 > > +--- a/Source/WebCore/platform/graphics/filters/DistantLightSource.h > > ++++ b/Source/WebCore/platform/graphics/filters/DistantLightSource.h > > +@@ -26,6 +26,10 @@ > > + #include <wtf/ArgumentCoder.h> > > + #include <wtf/Ref.h> > > + > > ++namespace WTF { > > ++class TextStream; > > ++} // namespace WTF > > ++ > > + namespace WebCore { > > + > > + class DistantLightSource : public LightSource { > > +diff --git a/Source/WebCore/platform/graphics/filters/FELighting.h > b/Source/WebCore/platform/graphics/filters/FELighting.h > > +index 53beb596..e78a9354 100644 > > +--- a/Source/WebCore/platform/graphics/filters/FELighting.h > > ++++ b/Source/WebCore/platform/graphics/filters/FELighting.h > > +@@ -35,8 +35,6 @@ > > + > > + namespace WebCore { > > + > > +-struct FELightingPaintingDataForNeon; > > +- > > + class FELighting : public FilterEffect { > > + public: > > + const Color& lightingColor() const { return m_lightingColor; } > > +@@ -64,11 +62,6 @@ protected: > > + > > + std::unique_ptr<FilterEffectApplier> createSoftwareApplier() const > override; > > + > > +-#if CPU(ARM_NEON) && CPU(ARM_TRADITIONAL) && COMPILER(GCC_COMPATIBLE) > > +- static int getPowerCoefficients(float exponent); > > +- inline void platformApplyNeon(const LightingData&, const > LightSource::PaintingData&); > > +-#endif > > +- > > + Color m_lightingColor; > > + float m_surfaceScale; > > + float m_diffuseConstant; > > +diff --git > a/Source/WebCore/platform/graphics/filters/PointLightSource.h > b/Source/WebCore/platform/graphics/filters/PointLightSource.h > > +index 3a5723f0..675d63f5 100644 > > +--- a/Source/WebCore/platform/graphics/filters/PointLightSource.h > > ++++ b/Source/WebCore/platform/graphics/filters/PointLightSource.h > > +@@ -26,6 +26,10 @@ > > + #include "LightSource.h" > > + #include <wtf/Ref.h> > > + > > ++namespace WTF { > > ++class TextStream; > > ++} // namespace WTF > > ++ > > + namespace WebCore { > > + > > + class PointLightSource : public LightSource { > > +diff --git a/Source/WebCore/platform/graphics/filters/SpotLightSource.h > b/Source/WebCore/platform/graphics/filters/SpotLightSource.h > > +index 684626f7..dea58389 100644 > > +--- a/Source/WebCore/platform/graphics/filters/SpotLightSource.h > > ++++ b/Source/WebCore/platform/graphics/filters/SpotLightSource.h > > +@@ -26,6 +26,10 @@ > > + #include "LightSource.h" > > + #include <wtf/Ref.h> > > + > > ++namespace WTF { > > ++class TextStream; > > ++} // namespace WTF > > ++ > > + namespace WebCore { > > + > > + class SpotLightSource : public LightSource { > > +diff --git > a/Source/WebCore/platform/graphics/filters/software/FELightingSoftwareApplier.h > b/Source/WebCore/platform/graphics/filters/software/FELightingSoftwareApplier.h > > +index c974d921..e2896660 100644 > > +--- > a/Source/WebCore/platform/graphics/filters/software/FELightingSoftwareApplier.h > > ++++ > b/Source/WebCore/platform/graphics/filters/software/FELightingSoftwareApplier.h > > +@@ -36,6 +36,7 @@ > > + namespace WebCore { > > + > > + class FELighting; > > ++struct FELightingPaintingDataForNeon; > > + > > + class FELightingSoftwareApplier final : public > FilterEffectConcreteApplier<FELighting> { > > + WTF_MAKE_FAST_ALLOCATED; > > +@@ -132,8 +133,23 @@ private: > > + > > + static void applyPlatformGenericPaint(const LightingData&, const > LightSource::PaintingData&, int startY, int endY); > > + static void applyPlatformGenericWorker(ApplyParameters*); > > ++ > > ++#if CPU(ARM_NEON) && CPU(ARM_TRADITIONAL) && COMPILER(GCC_COMPATIBLE) > > ++ static int getPowerCoefficients(float exponent); > > ++ static void > platformApplyNeonWorker(FELightingPaintingDataForNeon*); > > ++ inline static void applyPlatformNeon(const LightingData&, const > LightSource::PaintingData&); > > ++ > > ++ inline static void applyPlatformGeneric(const LightingData& data, > const LightSource::PaintingData& paintingData) > > ++ { > > ++ applyPlatformNeon(data, paintingData); > > ++ } > > ++#else > > + static void applyPlatformGeneric(const LightingData&, const > LightSource::PaintingData&); > > ++#endif > > ++ > > + static void applyPlatform(const LightingData&); > > + }; > > + > > + } // namespace WebCore > > ++ > > ++#include "FELightingNEON.h" > > diff --git > a/meta-gnome/recipes-support/webkitgtk/webkitgtk3/4977290ab4ab35258a6da9b13795c9b0f7894bf4.patch > b/meta-gnome/recipes-support/webkitgtk/webkitgtk3/4977290ab4ab35258a6da9b13795c9b0f7894bf4.patch > > new file mode 100644 > > index 0000000000..79da855ff4 > > --- /dev/null > > +++ > b/meta-gnome/recipes-support/webkitgtk/webkitgtk3/4977290ab4ab35258a6da9b13795c9b0f7894bf4.patch > > @@ -0,0 +1,41 @@ > > +From 4977290ab4ab35258a6da9b13795c9b0f7894bf4 Mon Sep 17 00:00:00 2001 > > +From: Diego Pino Garcia <dp...@igalia.com> > > +Date: Mon, 22 May 2023 19:58:50 -0700 > > +Subject: [PATCH] [GLIB] Fix build error after 264196@main > > + https://bugs.webkit.org/show_bug.cgi?id=256917 > > + > > +Reviewed by Michael Catanzaro. > > + > > +Variable BWRAP_EXECUTABLE is only defined when BUBBLEWRAP_SANDBOX is > > +enabled. > > + > > +* Source/WTF/wtf/glib/Sandbox.cpp: > > +(WTF::isInsideUnsupportedContainer): > > + > > +Canonical link: https://commits.webkit.org/264395@main > > +Upstream-Status: Backport [ > https://github.com/WebKit/WebKit/commit/4977290ab4ab35258a6da9b13795c9b0f7894bf4 > ] > > +Signed-off-by: Alexander Kanavin <a...@linutronix.de> > > +--- > > + Source/WTF/wtf/glib/Sandbox.cpp | 2 ++ > > + 1 file changed, 2 insertions(+) > > + > > +diff --git a/Source/WTF/wtf/glib/Sandbox.cpp > b/Source/WTF/wtf/glib/Sandbox.cpp > > +index 7d84e830ab33e..9b07bb8cb5a9b 100644 > > +--- a/Source/WTF/wtf/glib/Sandbox.cpp > > ++++ b/Source/WTF/wtf/glib/Sandbox.cpp > > +@@ -36,6 +36,7 @@ bool isInsideFlatpak() > > + return returnValue; > > + } > > + > > ++#if ENABLE(BUBBLEWRAP_SANDBOX) > > + bool isInsideUnsupportedContainer() > > + { > > + static bool inContainer = g_file_test("/run/.containerenv", > G_FILE_TEST_EXISTS); > > +@@ -64,6 +65,7 @@ bool isInsideUnsupportedContainer() > > + > > + return inContainer && !supportedContainer; > > + } > > ++#endif > > + > > + bool isInsideSnap() > > + { > > diff --git > a/meta-gnome/recipes-support/webkitgtk/webkitgtk3/check-GST_GL_HAVE_PLATFORM_GLX.patch > b/meta-gnome/recipes-support/webkitgtk/webkitgtk3/check-GST_GL_HAVE_PLATFORM_GLX.patch > > new file mode 100644 > > index 0000000000..ae99810ced > > --- /dev/null > > +++ > b/meta-gnome/recipes-support/webkitgtk/webkitgtk3/check-GST_GL_HAVE_PLATFORM_GLX.patch > > @@ -0,0 +1,33 @@ > > +Add additional check on GST_GL_HAVE_PLATFORM_GLX before using > gst_gl_display_x11_new_with_display > > + > > +This ensures that there is a compile time check for glx support in > gstreamer as > > +runtime check is not enough because > gst_gl_display_x11_new_with_display() API comes from > > +gst/gl/x11/gstgldisplay_x11.h which is only included when > GST_GL_HAVE_PLATFORM_GLX is defined > > +therefore make this check consistent to fix build with some platforms > which use pvr gl drivers > > +where this problem appear at compile time. > > + > > + > > > +/mnt/b/yoe/master/build/tmp/work/riscv64-yoe-linux/webkitgtk/2.40.2-r0/webkitgtk-2.40.2/Source/WebCore/platform/graphics/gstreamer/PlatformDisplayGStreamer.cpp:68:31: > error: use of undeclared identifier 'gst_gl_display_x11_new_with_display'; > did you mean 'gst_gl_display_egl_new_with_egl_display'? > > + 68 | return > GST_GL_DISPLAY(gst_gl_display_x11_new_with_display(downcast<PlatformDisplayX11>(sharedDisplay).native())); > > + | > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > + | > gst_gl_display_egl_new_with_egl_display > > + > > +This issue is 2.40 specific since GLX support is removed [1] from trunk > upstream, therefore > > +this patch wont be needed when upgrading to 2.42+ > > + > > +[1] > https://github.com/WebKit/WebKit/commit/320560f9e53ddcd53954059bd005e0c75eb91abf > > + > > +Upstream-Status: Inappropriate [GLX support is gone in 2.41+] > > +Signed-off-by: Khem Raj <raj.k...@gmail.com> > > + > > +--- > a/Source/WebCore/platform/graphics/gstreamer/PlatformDisplayGStreamer.cpp > 2023-02-20 01:22:18.917743700 -0800 > > ++++ > b/Source/WebCore/platform/graphics/gstreamer/PlatformDisplayGStreamer.cpp > 2023-07-08 08:45:09.739177065 -0700 > > +@@ -63,7 +63,7 @@ > > + if (glPlatform == GST_GL_PLATFORM_EGL) > > + return > GST_GL_DISPLAY(gst_gl_display_egl_new_with_egl_display(sharedDisplay.eglDisplay())); > > + #endif > > +-#if USE(GLX) > > ++#if USE(GLX) && GST_GL_HAVE_PLATFORM_GLX > > + if (is<PlatformDisplayX11>(sharedDisplay) && glPlatform == > GST_GL_PLATFORM_GLX) > > + return > GST_GL_DISPLAY(gst_gl_display_x11_new_with_display(downcast<PlatformDisplayX11>(sharedDisplay).native())); > > + #endif > > diff --git > a/meta-gnome/recipes-support/webkitgtk/webkitgtk3/reproducibility.patch > b/meta-gnome/recipes-support/webkitgtk/webkitgtk3/reproducibility.patch > > new file mode 100644 > > index 0000000000..e866a1a193 > > --- /dev/null > > +++ > b/meta-gnome/recipes-support/webkitgtk/webkitgtk3/reproducibility.patch > > @@ -0,0 +1,22 @@ > > +Injection a year based on the current date isn't reproducible. Hack this > > +to a specific year for now for reproducibilty and to avoid autobuilder > failures. > > + > > +The correct fix would be to use SOURCE_DATE_EPOCH from the environment > and > > +then this could be submitted upstream, sadly my ruby isn't up to that. > > + > > +Upstream-Status: Pending [could be reworked] > > +Signed-off-by: Richard Purdie <richard.pur...@linuxfoundation.org> > > + > > +Index: webkitgtk-2.34.2/Source/JavaScriptCore/generator/GeneratedFile.rb > > +=================================================================== > > +--- > webkitgtk-2.34.2.orig/Source/JavaScriptCore/generator/GeneratedFile.rb > > ++++ webkitgtk-2.34.2/Source/JavaScriptCore/generator/GeneratedFile.rb > > +@@ -25,7 +25,7 @@ require 'date' > > + require 'digest' > > + > > + $LICENSE = <<-EOF > > +-Copyright (C) #{Date.today.year} Apple Inc. All rights reserved. > > ++Copyright (C) 2021 Apple Inc. All rights reserved. > > + > > + Redistribution and use in source and binary forms, with or without > > + modification, are permitted provided that the following conditions > > diff --git a/meta-gnome/recipes-support/webkitgtk/webkitgtk3_2.40.2.bb > b/meta-gnome/recipes-support/webkitgtk/webkitgtk3_2.40.2.bb > > new file mode 100644 > > index 0000000000..9bd0c4e198 > > --- /dev/null > > +++ b/meta-gnome/recipes-support/webkitgtk/webkitgtk3_2.40.2.bb > > @@ -0,0 +1,169 @@ > > +SUMMARY = "WebKit web rendering engine for the GTK+ platform" > > +HOMEPAGE = "https://www.webkitgtk.org/" > > +BUGTRACKER = "https://bugs.webkit.org/" > > + > > +LICENSE = "BSD-2-Clause & LGPL-2.0-or-later" > > +LIC_FILES_CHKSUM = > "file://Source/JavaScriptCore/COPYING.LIB;md5=d0c6d6397a5d84286dda758da57bd691 > \ > > + > file://Source/WebCore/LICENSE-APPLE;md5=4646f90082c40bcf298c285f8bab0b12 \ > > + > file://Source/WebCore/LICENSE-LGPL-2;md5=36357ffde2b64ae177b2494445b79d21 \ > > + > file://Source/WebCore/LICENSE-LGPL-2.1;md5=a778a33ef338abbaf8b8a7c36b6eec80 > \ > > + " > > + > > +SRC_URI = "https://www.webkitgtk.org/releases/webkitgtk-${PV}.tar.xz \ > > + > file://0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch \ > > + file://reproducibility.patch \ > > + file://0d3344e17d258106617b0e6d783d073b188a2548.patch \ > > + file://4977290ab4ab35258a6da9b13795c9b0f7894bf4.patch \ > > + > file://0001-Source-JavaScriptCore-CMakeLists.txt-ensure-reproduc.patch \ > > + file://check-GST_GL_HAVE_PLATFORM_GLX.patch \ > > + " > > +SRC_URI[sha256sum] = > "96898870d994da406ee7a632816dcde9a3bb395ee5f344fcb3f3b8cc8a77e000" > > + > > +inherit cmake pkgconfig gobject-introspection perlnative features_check > upstream-version-is-even gi-docgen > > + > > +S = "${WORKDIR}/webkitgtk-${PV}" > > + > > +ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" > > +REQUIRED_DISTRO_FEATURES = "${@bb.utils.contains('DISTRO_FEATURES', > 'wayland', 'opengl', '', d)}" > > + > > +CVE_PRODUCT = "webkitgtk webkitgtk\+" > > + > > +DEPENDS += " \ > > + ruby-native \ > > + gperf-native \ > > + unifdef-native \ > > + cairo \ > > + harfbuzz \ > > + jpeg \ > > + atk \ > > + libwebp \ > > + gtk+3 \ > > + libxslt \ > > + libtasn1 \ > > + libnotify \ > > + gstreamer1.0 \ > > + gstreamer1.0-plugins-base \ > > + glib-2.0-native \ > > + gettext-native \ > > + " > > + > > +PACKAGECONFIG_SOUP ?= "soup3" > > +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd > wayland x11', d)} \ > > + ${@bb.utils.contains('DISTRO_FEATURES', 'x11 > opengl', 'webgl opengl', '', d)} \ > > + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', > 'webgl gles2', d)} \ > > + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', > 'opengl-or-es', '', d)} \ > > + enchant \ > > + libsecret \ > > + ${PACKAGECONFIG_SOUP} \ > > + " > > + > > +PACKAGECONFIG[wayland] = > "-DENABLE_WAYLAND_TARGET=ON,-DENABLE_WAYLAND_TARGET=OFF,wayland libwpe > wpebackend-fdo wayland-native" > > +PACKAGECONFIG[angle] = "-DUSE_ANGLE_WEBGL=ON,-DUSE_ANGLE_WEBGL=OFF" > > +PACKAGECONFIG[x11] = > "-DENABLE_X11_TARGET=ON,-DENABLE_X11_TARGET=OFF,virtual/libx11 > libxcomposite libxdamage libxrender libxt" > > +PACKAGECONFIG[geoclue] = > "-DENABLE_GEOLOCATION=ON,-DENABLE_GEOLOCATION=OFF,geoclue" > > +PACKAGECONFIG[enchant] = > "-DENABLE_SPELLCHECK=ON,-DENABLE_SPELLCHECK=OFF,enchant2" > > +PACKAGECONFIG[gles2] = > "-DENABLE_GLES2=ON,-DENABLE_GLES2=OFF,virtual/libgles2" > > +PACKAGECONFIG[webgl] = > "-DENABLE_WEBGL=ON,-DENABLE_WEBGL=OFF,virtual/egl" > > +PACKAGECONFIG[opengl] = > "-DENABLE_GRAPHICS_CONTEXT_GL=ON,-DENABLE_GRAPHICS_CONTEXT_GL=OFF,virtual/egl" > > +PACKAGECONFIG[opengl-or-es] = > "-DUSE_OPENGL_OR_ES=ON,-DUSE_OPENGL_OR_ES=OFF" > > +PACKAGECONFIG[libsecret] = > "-DUSE_LIBSECRET=ON,-DUSE_LIBSECRET=OFF,libsecret" > > +PACKAGECONFIG[libhyphen] = > "-DUSE_LIBHYPHEN=ON,-DUSE_LIBHYPHEN=OFF,libhyphen" > > +PACKAGECONFIG[woff2] = "-DUSE_WOFF2=ON,-DUSE_WOFF2=OFF,woff2" > > +PACKAGECONFIG[openjpeg] = > "-DUSE_OPENJPEG=ON,-DUSE_OPENJPEG=OFF,openjpeg" > > +PACKAGECONFIG[systemd] = "-DUSE_SYSTEMD=ON,-DUSE_SYSTEMD=off,systemd" > > +PACKAGECONFIG[reduce-size] = > "-DCMAKE_BUILD_TYPE=MinSizeRel,-DCMAKE_BUILD_TYPE=Release,," > > +PACKAGECONFIG[lcms] = "-DUSE_LCMS=ON,-DUSE_LCMS=OFF,lcms" > > +PACKAGECONFIG[soup2] = > "-DUSE_SOUP2=ON,-DUSE_SOUP2=OFF,libsoup-2.4,,,soup3" > > +PACKAGECONFIG[soup3] = ",,libsoup,,,soup2" > > +PACKAGECONFIG[journald] = > "-DENABLE_JOURNALD_LOG=ON,-DENABLE_JOURNALD_LOG=OFF,systemd" > > +PACKAGECONFIG[avif] = "-DUSE_AVIF_LOG=ON,-DUSE_AVIF=OFF,libavif" > > +PACKAGECONFIG[media-recorder] = > "-DENABLE_MEDIA_RECORDER=ON,-DENABLE_MEDIA_RECORDER=OFF,gstreamer1.0-plugins-bad" > > +PACKAGECONFIG[gamepad] = > "-DENABLE_GAMEPAD=ON,-DENABLE_GAMEPAD=OFF,libmanette" > > +PACKAGECONFIG[webrtc] = "-DENABLE_WEB_RTC=ON,-DENABLE_WEB_RTC=OFF" > > +PACKAGECONFIG[bubblewrap] = "-DENABLE_BUBBLEWRAP_SANDBOX=ON > -DBWRAP_EXECUTABLE=${bindir}/bwrap > -DDBUS_PROXY_EXECUTABLE=${bindir}/xdg-dbus-proxy,-DENABLE_BUBBLEWRAP_SANDBOX=OFF,,bubblewrap > xdg-dbus-proxy" > > + > > +EXTRA_OECMAKE = " \ > > + -DPORT=GTK \ > > + ${@bb.utils.contains('GI_DATA_ENABLED', 'True', > '-DENABLE_INTROSPECTION=ON', '-DENABLE_INTROSPECTION=OFF', d)} \ > > + ${@bb.utils.contains('GIDOCGEN_ENABLED', 'True', > '-DENABLE_DOCUMENTATION=ON', '-DENABLE_DOCUMENTATION=OFF', d)} \ > > + -DENABLE_MINIBROWSER=ON \ > > + " > > + > > +# Javascript JIT is not supported on ARC > > +EXTRA_OECMAKE:append:arc = " -DENABLE_JIT=OFF " > > +# By default 25-bit "medium" calls are used on ARC > > +# which is not enough for binaries larger than 32 MiB > > +CFLAGS:append:arc = " -mlong-calls" > > +CXXFLAGS:append:arc = " -mlong-calls" > > + > > +# Needed for non-mesa graphics stacks when x11 is disabled > > +CXXFLAGS += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', > '-DEGL_NO_X11=1', d)}" > > + > > +# Javascript JIT is not supported on powerpc > > +EXTRA_OECMAKE:append:powerpc = " -DENABLE_JIT=OFF " > > +EXTRA_OECMAKE:append:powerpc64 = " -DENABLE_JIT=OFF " > > + > > +# ARM JIT code does not build on ARMv4/5/6 anymore > > +EXTRA_OECMAKE:append:armv5 = " -DENABLE_JIT=OFF " > > +EXTRA_OECMAKE:append:armv6 = " -DENABLE_JIT=OFF " > > +EXTRA_OECMAKE:append:armv4 = " -DENABLE_JIT=OFF " > > + > > +EXTRA_OECMAKE:append:mipsarch = " -DUSE_LD_GOLD=OFF " > > +EXTRA_OECMAKE:append:powerpc = " -DUSE_LD_GOLD=OFF " > > + > > +# JIT and gold linker does not work on RISCV > > +EXTRA_OECMAKE:append:riscv32 = " -DUSE_LD_GOLD=OFF -DENABLE_JIT=OFF" > > +EXTRA_OECMAKE:append:riscv64 = " -DUSE_LD_GOLD=OFF" > > + > > +# JIT not supported on MIPS either > > +EXTRA_OECMAKE:append:mipsarch = " -DENABLE_JIT=OFF -DENABLE_C_LOOP=ON " > > + > > +# JIT not supported on X32 > > +# An attempt was made to upstream JIT support for x32 in > > +# https://bugs.webkit.org/show_bug.cgi?id=100450, but this was closed > as > > +# unresolved due to limited X32 adoption. > > +EXTRA_OECMAKE:append:x86-x32 = " -DENABLE_JIT=OFF " > > + > > +SECURITY_CFLAGS:remove:aarch64 = "-fpie" > > +SECURITY_CFLAGS:append:aarch64 = " -fPIE" > > + > > +FILES:${PN} += > "${libdir}/webkit2gtk-4.*/injected-bundle/libwebkit2gtkinjectedbundle.so" > > + > > +RRECOMMENDS:${PN} += "ca-certificates shared-mime-info" > > + > > +# http://errors.yoctoproject.org/Errors/Details/20370/ > > +ARM_INSTRUCTION_SET:armv4 = "arm" > > +ARM_INSTRUCTION_SET:armv5 = "arm" > > +ARM_INSTRUCTION_SET:armv6 = "arm" > > + > > +# https://bugzilla.yoctoproject.org/show_bug.cgi?id=9474 > > +# https://bugs.webkit.org/show_bug.cgi?id=159880 > > +# JSC JIT can build on ARMv7 with -marm, but doesn't work on runtime. > > +# Upstream only tests regularly the JSC JIT on ARMv7 with Thumb2 > (-mthumb). > > +ARM_INSTRUCTION_SET:armv7a = "thumb" > > +ARM_INSTRUCTION_SET:armv7r = "thumb" > > +ARM_INSTRUCTION_SET:armv7ve = "thumb" > > + > > +# ANGLE requires SSE support as of webkit 2.40.x on 32 bit x86 > > +COMPATIBLE_HOST:x86 = "${@bb.utils.contains_any('TUNE_FEATURES', 'core2 > corei7', '.*', 'null', d)}" > > + > > +# introspection inside qemu-arm hangs forever on musl/arm builds > > +# therefore disable GI_DATA > > +GI_DATA_ENABLED:libc-musl:armv7a = "False" > > +GI_DATA_ENABLED:libc-musl:armv7ve = "False" > > + > > +do_install:append() { > > + mv ${D}${bindir}/WebKitWebDriver ${D}${bindir}/WebKitWebDriver3 > > +} > > + > > +PACKAGE_PREPROCESS_FUNCS += "src_package_preprocess" > > +src_package_preprocess () { > > + # Trim build paths from comments in generated sources to ensure > reproducibility > > + sed -i -e "s,${WORKDIR},,g" \ > > + ${B}/JavaScriptCore/DerivedSources/*.h \ > > + ${B}/JavaScriptCore/DerivedSources/yarr/*.h \ > > + ${B}/JavaScriptCore/PrivateHeaders/JavaScriptCore/*.h \ > > + ${B}/WebCore/DerivedSources/*.cpp \ > > + ${B}/WebKitGTK/DerivedSources/webkit/*.cpp > > +} > > + > > diff --git a/meta-oe/recipes-extended/wxwidgets/wxwidgets_3.2.1.bb > b/meta-oe/recipes-extended/wxwidgets/wxwidgets_3.2.1.bb > > index 39b6a2bc7c..91653e2852 100644 > > --- a/meta-oe/recipes-extended/wxwidgets/wxwidgets_3.2.1.bb > > +++ b/meta-oe/recipes-extended/wxwidgets/wxwidgets_3.2.1.bb > > @@ -74,7 +74,7 @@ PACKAGECONFIG[lzma] = > "-DwxUSE_LIBLZMA=ON,-DwxUSE_LIBLZMA=OFF,xz" > > PACKAGECONFIG[mspack] = > "-DwxUSE_LIBMSPACK=ON,-DwxUSE_LIBMSPACK=OFF,libmspack" > > PACKAGECONFIG[opengl] = "-DwxUSE_OPENGL=ON,-DwxUSE_OPENGL=OFF,libglu" > > PACKAGECONFIG[sdl_audio] = > "-DwxUSE_LIBSDL=ON,-DwxUSE_LIBSDL=OFF,libsdl2" > > -PACKAGECONFIG[webkit] = > "-DwxUSE_WEBVIEW_WEBKIT=ON,-DwxUSE_WEBVIEW_WEBKIT=OFF,webkitgtk,,,no_gui" > > +PACKAGECONFIG[webkit] = > "-DwxUSE_WEBVIEW_WEBKIT=ON,-DwxUSE_WEBVIEW_WEBKIT=OFF,webkitgtk3,,,no_gui" > > PACKAGECONFIG[curl] = > "-DwxUSE_WEBREQUEST_CURL=ON,-DwxUSE_WEBREQUEST_CURL=OFF,curl" > > > > # Support LFS unconditionally > > diff --git a/meta-oe/recipes-graphics/surf/surf_2.1.bb > b/meta-oe/recipes-graphics/surf/surf_2.1.bb > > index 7140a72845..4d9d4d3dd0 100644 > > --- a/meta-oe/recipes-graphics/surf/surf_2.1.bb > > +++ b/meta-oe/recipes-graphics/surf/surf_2.1.bb > > @@ -5,7 +5,7 @@ SECTION = "x11/graphics" > > LICENSE = "MIT" > > LIC_FILES_CHKSUM = > "file://LICENSE;md5=2a6f86d002ae9ae1eb1ccc466289f146" > > > > -DEPENDS = "webkitgtk gtk+3 glib-2.0 gcr3" > > +DEPENDS = "webkitgtk3 gtk+3 glib-2.0 gcr3" > > > > REQUIRED_DISTRO_FEATURES = "x11 opengl" > > > > > > > > > > > > >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#104054): https://lists.openembedded.org/g/openembedded-devel/message/104054 Mute This Topic: https://lists.openembedded.org/mt/100388556/21656 Group Owner: openembedded-devel+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-