mirror of
git://git.openembedded.org/meta-openembedded
synced 2026-10-01 07:47:05 +00:00
webkitgtk3: add recipe
- Change the meta-gnome recipes to use the gtk3 variant of webkitgtk - 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_l_k@t-online.de> Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
parent
54d25dc202
commit
213a15cb90
@ -26,7 +26,7 @@ DEPENDS = " \
|
|||||||
libstemmer \
|
libstemmer \
|
||||||
libxml2 \
|
libxml2 \
|
||||||
sqlite3 \
|
sqlite3 \
|
||||||
webkitgtk \
|
webkitgtk3 \
|
||||||
"
|
"
|
||||||
|
|
||||||
RDEPENDS:${PN} = "gnome-keyring"
|
RDEPENDS:${PN} = "gnome-keyring"
|
||||||
|
|||||||
@ -37,7 +37,7 @@ EXTRA_OECMAKE:append:class-target = " -DG_IR_SCANNER=${STAGING_BINDIR}/g-ir-scan
|
|||||||
PACKAGECONFIG ?= "oauth"
|
PACKAGECONFIG ?= "oauth"
|
||||||
|
|
||||||
PACKAGECONFIG[canberra] = "-DENABLE_CANBERRA=ON,-DENABLE_CANBERRA=OFF,libcanberra"
|
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[goa] = "-DENABLE_GOA=ON,-DENABLE_GOA=OFF,gnome-online-accounts"
|
||||||
PACKAGECONFIG[kerberos] = "-DWITH_KRB5=ON,-DWITH_KRB5=OFF,krb5"
|
PACKAGECONFIG[kerberos] = "-DWITH_KRB5=ON,-DWITH_KRB5=OFF,krb5"
|
||||||
# BROKEN: due missing pkg-config in openldap eds' cmake finds host-libs when
|
# BROKEN: due missing pkg-config in openldap eds' cmake finds host-libs when
|
||||||
|
|||||||
@ -14,7 +14,7 @@ SRC_URI[archive.sha256sum] = "418bb9fcffdbd72a98205ad365137617fc1e3551a54de74f6a
|
|||||||
PACKAGECONFIG ?= "goabackend kerberos owncloud lastfm google windows_live"
|
PACKAGECONFIG ?= "goabackend kerberos owncloud lastfm google windows_live"
|
||||||
|
|
||||||
# goabackend requires webkitgtk to be built with gtk+3 and gcr3
|
# 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[kerberos] = "-Dkerberos=true, -Dkerberos=false,krb5 gcr3"
|
||||||
PACKAGECONFIG[exchange] = "-Dexchange=true, -Dexchange=false"
|
PACKAGECONFIG[exchange] = "-Dexchange=true, -Dexchange=false"
|
||||||
PACKAGECONFIG[google] = "-Dgoogle=true, -Dgoogle=false"
|
PACKAGECONFIG[google] = "-Dgoogle=true, -Dgoogle=false"
|
||||||
|
|||||||
@ -19,7 +19,7 @@ DEPENDS += " \
|
|||||||
libxslt \
|
libxslt \
|
||||||
sqlite3 \
|
sqlite3 \
|
||||||
libhandy \
|
libhandy \
|
||||||
webkitgtk \
|
webkitgtk3 \
|
||||||
yelp-xsl \
|
yelp-xsl \
|
||||||
"
|
"
|
||||||
PACKAGECONFIG_SOUP ?= "soup3"
|
PACKAGECONFIG_SOUP ?= "soup3"
|
||||||
|
|||||||
@ -20,7 +20,7 @@ SRC_URI[archive.sha256sum] = "c15582301ed90b9d42ce521dbccf99a989f22f12041bdd5279
|
|||||||
SRC_URI += "file://0001-Harcode-shebang-to-avoid-pointing-to-build-system-s-.patch"
|
SRC_URI += "file://0001-Harcode-shebang-to-avoid-pointing-to-build-system-s-.patch"
|
||||||
|
|
||||||
PACKAGECONFIG ?= "webkitgtk"
|
PACKAGECONFIG ?= "webkitgtk"
|
||||||
PACKAGECONFIG[webkitgtk] = "-Dwebkitgtk=true,-Dwebkitgtk=false,webkitgtk"
|
PACKAGECONFIG[webkitgtk] = "-Dwebkitgtk=true,-Dwebkitgtk=false,webkitgtk3"
|
||||||
|
|
||||||
PACKAGES =+ "${PN}-gdialog"
|
PACKAGES =+ "${PN}-gdialog"
|
||||||
FILES:${PN}-gdialog = "${bindir}/gdialog"
|
FILES:${PN}-gdialog = "${bindir}/gdialog"
|
||||||
|
|||||||
@ -74,7 +74,7 @@ PACKAGECONFIG[lzma] = "-DwxUSE_LIBLZMA=ON,-DwxUSE_LIBLZMA=OFF,xz"
|
|||||||
PACKAGECONFIG[mspack] = "-DwxUSE_LIBMSPACK=ON,-DwxUSE_LIBMSPACK=OFF,libmspack"
|
PACKAGECONFIG[mspack] = "-DwxUSE_LIBMSPACK=ON,-DwxUSE_LIBMSPACK=OFF,libmspack"
|
||||||
PACKAGECONFIG[opengl] = "-DwxUSE_OPENGL=ON,-DwxUSE_OPENGL=OFF,libglu"
|
PACKAGECONFIG[opengl] = "-DwxUSE_OPENGL=ON,-DwxUSE_OPENGL=OFF,libglu"
|
||||||
PACKAGECONFIG[sdl_audio] = "-DwxUSE_LIBSDL=ON,-DwxUSE_LIBSDL=OFF,libsdl2"
|
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"
|
PACKAGECONFIG[curl] = "-DwxUSE_WEBREQUEST_CURL=ON,-DwxUSE_WEBREQUEST_CURL=OFF,curl"
|
||||||
|
|
||||||
# Support LFS unconditionally
|
# Support LFS unconditionally
|
||||||
|
|||||||
@ -0,0 +1,36 @@
|
|||||||
|
From 9b67bb18d8409e0e693cc6000507acbd73a30eab Mon Sep 17 00:00:00 2001
|
||||||
|
From: Alexander Kanavin <alex@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 <alex@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
|
||||||
|
|
||||||
59
meta-oe/recipes-gnome/gcr/gcr3_3.41.1.bb
Normal file
59
meta-oe/recipes-gnome/gcr/gcr3_3.41.1.bb
Normal file
@ -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
|
||||||
|
}
|
||||||
@ -5,7 +5,7 @@ SECTION = "x11/graphics"
|
|||||||
LICENSE = "MIT"
|
LICENSE = "MIT"
|
||||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=2a6f86d002ae9ae1eb1ccc466289f146"
|
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"
|
REQUIRED_DISTRO_FEATURES = "x11 opengl"
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,29 @@
|
|||||||
|
From 10cfdcc905915d8814c609008a069102f2bc7e39 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Alexander Kanavin <alex.kanavin@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.kanavin@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)
|
||||||
|
|
||||||
@ -0,0 +1,28 @@
|
|||||||
|
From cd65e3d9256a4f6eb7906a9f10678c29a4ffef2f Mon Sep 17 00:00:00 2001
|
||||||
|
From: Alexander Kanavin <alex@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 <alex@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
|
||||||
|
)
|
||||||
|
|
||||||
@ -0,0 +1,310 @@
|
|||||||
|
From 647c93de99a0f71f478d76a4cc7714eba7ba1447 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Adrian Perez de Castro <aperez@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.khem@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"
|
||||||
@ -0,0 +1,41 @@
|
|||||||
|
From 4977290ab4ab35258a6da9b13795c9b0f7894bf4 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Diego Pino Garcia <dpino@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 <alex@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()
|
||||||
|
{
|
||||||
@ -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.khem@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
|
||||||
@ -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.purdie@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
|
||||||
169
meta-oe/recipes-support/webkitgtk/webkitgtk3_2.40.2.bb
Normal file
169
meta-oe/recipes-support/webkitgtk/webkitgtk3_2.40.2.bb
Normal file
@ -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
|
||||||
|
}
|
||||||
|
|
||||||
Loading…
x
Reference in New Issue
Block a user