mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-01-12 03:24:08 +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:
@@ -26,7 +26,7 @@ DEPENDS = " \
|
||||
libstemmer \
|
||||
libxml2 \
|
||||
sqlite3 \
|
||||
webkitgtk \
|
||||
webkitgtk3 \
|
||||
"
|
||||
|
||||
RDEPENDS:${PN} = "gnome-keyring"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -19,7 +19,7 @@ DEPENDS += " \
|
||||
libxslt \
|
||||
sqlite3 \
|
||||
libhandy \
|
||||
webkitgtk \
|
||||
webkitgtk3 \
|
||||
yelp-xsl \
|
||||
"
|
||||
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"
|
||||
|
||||
PACKAGECONFIG ?= "webkitgtk"
|
||||
PACKAGECONFIG[webkitgtk] = "-Dwebkitgtk=true,-Dwebkitgtk=false,webkitgtk"
|
||||
PACKAGECONFIG[webkitgtk] = "-Dwebkitgtk=true,-Dwebkitgtk=false,webkitgtk3"
|
||||
|
||||
PACKAGES =+ "${PN}-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[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
|
||||
|
||||
@@ -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"
|
||||
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"
|
||||
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user