commit daa7f9183c70782e1a22df16baf55d48be32d62f Author: tigro <tigro@msvsphere-os.ru> Date: Sat Jan 11 19:42:56 2025 +0300 import webkit2gtk4.0-2.46.3-1.el10 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5889e87 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/webkitgtk-2.46.3.tar.xz diff --git a/.webkit2gtk4.0.metadata b/.webkit2gtk4.0.metadata new file mode 100644 index 0000000..128826f --- /dev/null +++ b/.webkit2gtk4.0.metadata @@ -0,0 +1 @@ +110e2c2ac964f207a8f2fecf6e2e61f0ed4bee00 SOURCES/webkitgtk-2.46.3.tar.xz diff --git a/SOURCES/llvm19.patch b/SOURCES/llvm19.patch new file mode 100644 index 0000000..86aef9c --- /dev/null +++ b/SOURCES/llvm19.patch @@ -0,0 +1,200 @@ +From 762e2cc7f1ff4e9e2834ecc7b7aaa4c933d06e5b Mon Sep 17 00:00:00 2001 +From: Michael Catanzaro <mcatanzaro@redhat.com> +Date: Tue, 1 Oct 2024 11:43:31 -0500 +Subject: [PATCH] Cherry-pick db9c6a9f5548. + https://bugs.webkit.org/show_bug.cgi?id=276633 + +Build broken with LLVM 19 +https://bugs.webkit.org/show_bug.cgi?id=280642 + +Reviewed by NOBODY (OOPS!). + +We need to replace several forward declarations with #include +statements to avoid "member access into incomplete type" errors. This +has revealed that many SVG headers are missing from the framework +headers and so are not available to derived sources. I don't attempt to +fix this comprehensively; this is just the minimum required to fix the +build. + +* Source/WebCore/CMakeLists.txt: +* Source/WebCore/Headers.cmake: +* Source/WebCore/Modules/webcodecs/WebCodecsVideoFrame.h: +--- + Source/WebCore/CMakeLists.txt | 2 + + Source/WebCore/Headers.cmake | 64 +++++++++++++++++++ + .../Modules/webcodecs/WebCodecsVideoFrame.h | 12 ++-- + 3 files changed, 72 insertions(+), 6 deletions(-) + +diff --git a/Source/WebCore/CMakeLists.txt b/Source/WebCore/CMakeLists.txt +index beca51b714ec..d3b6ff21c7ae 100644 +--- a/Source/WebCore/CMakeLists.txt ++++ b/Source/WebCore/CMakeLists.txt +@@ -2855,6 +2855,8 @@ WEBKIT_COMPUTE_SOURCES(WebCore) + target_precompile_headers(WebCore PRIVATE WebCorePrefix.h) + + list(APPEND WebCore_PRIVATE_FRAMEWORK_HEADERS ++ ${WebCore_DERIVED_SOURCES_DIR}/SVGNames.h ++ + Modules/WebGPU/InternalAPI/WebGPU.serialization.in + + Modules/indexeddb/IndexedDB.serialization.in +diff --git a/Source/WebCore/Headers.cmake b/Source/WebCore/Headers.cmake +index cfe691a05770..e6ddf2d9cff2 100644 +--- a/Source/WebCore/Headers.cmake ++++ b/Source/WebCore/Headers.cmake +@@ -846,6 +846,7 @@ set(WebCore_PRIVATE_FRAMEWORK_HEADERS + css/CSSFontPaletteValuesRule.h + css/CSSGridIntegerRepeatValue.h + css/CSSGroupingRule.h ++ css/CSSImageValue.h + css/CSSImportRule.h + css/CSSLineBoxContainValue.h + css/CSSMediaRule.h +@@ -873,6 +874,7 @@ set(WebCore_PRIVATE_FRAMEWORK_HEADERS + css/CSSVariableData.h + css/CSSVariableReferenceValue.h + css/Counter.h ++ css/DOMMatrix2DInit.h + css/DeprecatedCSSOMCounter.h + css/DeprecatedCSSOMPrimitiveValue.h + css/DeprecatedCSSOMRGBColor.h +@@ -925,6 +927,7 @@ set(WebCore_PRIVATE_FRAMEWORK_HEADERS + + css/typedom/CSSKeywordValue.h + css/typedom/CSSNumericValue.h ++ css/typedom/CSSStyleImageValue.h + css/typedom/CSSStyleValue.h + + css/typedom/numeric/CSSNumericBaseType.h +@@ -2539,17 +2542,41 @@ set(WebCore_PRIVATE_FRAMEWORK_HEADERS + style/StyleValidity.h + style/Styleable.h + ++ svg/SVGAngle.h ++ svg/SVGAngleValue.h + svg/SVGElement.h ++ svg/SVGGraphicsElement.h ++ svg/SVGImageElement.h ++ svg/SVGImageLoader.h ++ svg/SVGLength.h + svg/SVGLengthContext.h ++ svg/SVGLengthList.h + svg/SVGLengthValue.h ++ svg/SVGLocatable.h ++ svg/SVGMarkerTypes.h ++ svg/SVGMatrix.h ++ svg/SVGNumber.h ++ svg/SVGNumberList.h + svg/SVGParserUtilities.h + svg/SVGParsingError.h + svg/SVGPathByteStream.h + svg/SVGPathConsumer.h ++ svg/SVGPathSeg.h ++ svg/SVGPathSegList.h + svg/SVGPathUtilities.h ++ svg/SVGPoint.h ++ svg/SVGPointList.h ++ svg/SVGPreserveAspectRatio.h + svg/SVGPreserveAspectRatioValue.h ++ svg/SVGRect.h + svg/SVGStringList.h + svg/SVGTests.h ++ svg/SVGTransform.h ++ svg/SVGTransformDistance.h ++ svg/SVGTransformList.h ++ svg/SVGTransformValue.h ++ svg/SVGTransformable.h ++ svg/SVGURIReference.h + svg/SVGUnitTypes.h + + svg/graphics/SVGImageCache.h +@@ -2557,11 +2584,48 @@ set(WebCore_PRIVATE_FRAMEWORK_HEADERS + svg/graphics/filters/SVGFilter.h + svg/graphics/filters/SVGFilterExpression.h + ++ svg/properties/SVGAnimatedDecoratedProperty.h ++ svg/properties/SVGAnimatedPrimitiveProperty.h ++ svg/properties/SVGAnimatedProperty.h ++ svg/properties/SVGAnimatedPropertyAccessor.h ++ svg/properties/SVGAnimatedPropertyAccessorImpl.h ++ svg/properties/SVGAnimatedPropertyAnimator.h ++ svg/properties/SVGAnimatedPropertyAnimatorImpl.h ++ svg/properties/SVGAnimatedPropertyImpl.h ++ svg/properties/SVGAnimatedPropertyList.h ++ svg/properties/SVGAnimatedPropertyPairAccessor.h ++ svg/properties/SVGAnimatedPropertyPairAccessorImpl.h ++ svg/properties/SVGAnimatedPropertyPairAnimator.h ++ svg/properties/SVGAnimatedPropertyPairAnimatorImpl.h ++ svg/properties/SVGAnimatedString.h ++ svg/properties/SVGAnimatedValueProperty.h ++ svg/properties/SVGAnimationAdditiveFunction.h ++ svg/properties/SVGAnimationAdditiveListFunction.h ++ svg/properties/SVGAnimationAdditiveListFunctionImpl.h ++ svg/properties/SVGAnimationAdditiveValueFunction.h ++ svg/properties/SVGAnimationAdditiveValueFunctionImpl.h ++ svg/properties/SVGAnimationDiscreteFunction.h ++ svg/properties/SVGAnimationDiscreteFunctionImpl.h ++ svg/properties/SVGAnimationFunction.h ++ svg/properties/SVGAttributeAnimator.h ++ svg/properties/SVGDecoratedEnumeration.h ++ svg/properties/SVGDecoratedPrimitive.h ++ svg/properties/SVGDecoratedProperty.h + svg/properties/SVGList.h ++ svg/properties/SVGMemberAccessor.h ++ svg/properties/SVGPointerMemberAccessor.h + svg/properties/SVGPrimitiveList.h + svg/properties/SVGProperty.h ++ svg/properties/SVGPropertyAccessor.h ++ svg/properties/SVGPropertyAccessorImpl.h ++ svg/properties/SVGPropertyList.h + svg/properties/SVGPropertyOwner.h ++ svg/properties/SVGPropertyOwnerRegistry.h ++ svg/properties/SVGPropertyRegistry.h + svg/properties/SVGPropertyTraits.h ++ svg/properties/SVGSharedPrimitiveProperty.h ++ svg/properties/SVGValueProperty.h ++ svg/properties/SVGValuePropertyList.h + + testing/MockGamepad.h + testing/MockGamepadProvider.h +diff --git a/Source/WebCore/Modules/webcodecs/WebCodecsVideoFrame.h b/Source/WebCore/Modules/webcodecs/WebCodecsVideoFrame.h +index 286a2a32a0a3..03b5908976f8 100644 +--- a/Source/WebCore/Modules/webcodecs/WebCodecsVideoFrame.h ++++ b/Source/WebCore/Modules/webcodecs/WebCodecsVideoFrame.h +@@ -27,10 +27,16 @@ + + #if ENABLE(WEB_CODECS) + ++#include "CSSStyleImageValue.h" + #include "ContextDestructionObserver.h" + #include "DOMRectReadOnly.h" ++#include "HTMLCanvasElement.h" ++#include "HTMLImageElement.h" ++#include "HTMLVideoElement.h" + #include "JSDOMPromiseDeferredForward.h" ++#include "OffscreenCanvas.h" + #include "PlaneLayout.h" ++#include "SVGImageElement.h" + #include "VideoColorSpaceInit.h" + #include "WebCodecsAlphaOption.h" + #include "WebCodecsVideoFrameData.h" +@@ -38,16 +44,10 @@ + namespace WebCore { + + class BufferSource; +-class CSSStyleImageValue; + class DOMRectReadOnly; +-class HTMLCanvasElement; +-class HTMLImageElement; +-class HTMLVideoElement; + class ImageBitmap; + class ImageBuffer; + class NativeImage; +-class OffscreenCanvas; +-class SVGImageElement; + class VideoColorSpace; + + template<typename> class ExceptionOr; +-- +2.46.2 + diff --git a/SOURCES/webkitgtk-2.46.3.tar.xz.asc b/SOURCES/webkitgtk-2.46.3.tar.xz.asc new file mode 100644 index 0000000..b14c85f --- /dev/null +++ b/SOURCES/webkitgtk-2.46.3.tar.xz.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEEAToBJ6ycZbNP+mJSbBAJtpOXU5MFAmciLBQACgkQbBAJtpOX +U5MFsBAAqwUuPEkirbQXxESAu8nJKUG3RVa4y3c1NaTRETW19cy/32KeiBlxbWW5 +UKF2gKlu5B+mJn9f0hebYBUkqr6HdWO1JnBz3XNXZ7dNObTWlN9g4T6tlqsxAdsk +B04ddWFQKYQJ4pMLjlxVFkFXQ0vh9UywBwUyGXrqg9yo2OcSGpsqdujyZfdlWrHc +0kDLow9SYM5XhkzFoQxKlYsVg1vhzpTxDuv39JqVTGHlX8pEplpCsrMwpVQ+89aP +zv64u/xnPAEsN4wGeB0QyH6H0llukTmrgWUfoRqeDLHMGAeuHe1yONGyK5fWA1u+ +ABTsjVnh5nOQxUZaNc3dpMdUcrp+kVhjKDwMOhKNbfVoLWxchmU5VvrCoytRAX8i +4js2xOgnMk26cNB4dZsMg9cYH4Zr+nkfkjGljGXRSvexF8iBUc2Dv0scrtDh3ArI +aWk4eMyO5nRPIFWE6j5d+sAm1TF1hGMW33beYOTy5Iqm2l2inRoaxGdAz2ZFjF5S +xcjG7tT3+pG8WXPhJ0Tl41mPJKg79tY3F0uzSedtJ+J3q4uRKORFOdChtDbqHHT7 +mI0jT6rrGckXlncufvg19RiCnmP8vmZEyeuTZja6vBsV3pA7Uc/IWcWEXi9ip/om +grjX+68/ypghS571sFxrjQaNdqrO0fwMrJBZxhgelJKnykvoj2Y= +=wug0 +-----END PGP SIGNATURE----- diff --git a/SOURCES/webkitgtk-keys.gpg b/SOURCES/webkitgtk-keys.gpg new file mode 100644 index 0000000..1852062 Binary files /dev/null and b/SOURCES/webkitgtk-keys.gpg differ diff --git a/SPECS/webkit2gtk4.0.spec b/SPECS/webkit2gtk4.0.spec new file mode 100644 index 0000000..8e788de --- /dev/null +++ b/SPECS/webkit2gtk4.0.spec @@ -0,0 +1,427 @@ +## START: Set by rpmautospec +## (rpmautospec version 0.7.3) +## RPMAUTOSPEC: autorelease, autochangelog +%define autorelease(e:s:pb:n) %{?-p:0.}%{lua: + release_number = 1; + base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}")); + print(release_number + base_release_number - 1); +}%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}} +## END: Set by rpmautospec + +## NOTE: Lots of files in various subdirectories have the same name (such as +## "LICENSE") so this short macro allows us to distinguish them by using their +## directory names (from the source tree) as prefixes for the files. +%global add_to_license_files() \ + mkdir -p _license_files ; \ + cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g') + +# Build documentation by default (use `rpmbuild --without docs` to override it). +# This is used by Coverity. Coverity injects custom compiler warnings, but +# any warning during WebKit docs build is fatal! +%bcond_without docs + +# Clang is preferred: https://skia.org/docs/user/build/#supported-and-preferred-compilers +%global toolchain clang + +# We run out of memory if building with LTO enabled on i686. +%ifarch %{ix86} +%global _lto_cflags %{nil} +%endif + +Name: webkit2gtk4.0 +Version: 2.46.3 +Release: %autorelease +Summary: WebKitGTK for GTK 3 and libsoup 2 + +# Source/bmalloc/bmalloc/*.h is BSD-2-Clause +# Source/bmalloc/bmalloc/CryptoRandom.cpp is ISC +# Source/bmalloc/bmalloc/valgrind.h is is bzip2-1.0.6 +# Source/bmalloc/libpas/src/test/RedBlackTreeTests.cpp is BSD-3-Clause +# Source/JavaScriptCore/config.h is LGPL-2.0-or-later +# Source/JavaScriptCore/b3/B3ComputeDivisionMagic.h is NCSA +# Source/JavaScriptCore/disassembler/zydis/* is MIT +# Source/JavaScriptCore/runtime/JSDateMath.h is MPL 1.1/GPL 2.0/LGPL 2.1 +# Source/JavaScriptCore/runtime/MathCommon.cpp is SunPro +# Source/JavaScriptCore/ucd/CaseFolding.txt is Unicode-TOU +# Source/ThirdParty/ANGLE/include/CL/cl_d3d10.h is Apache-2.0 +# Source/ThirdParty/ANGLE/include/GLES/gl.h is MIT-Khronos (not on list see https://github.com/spdx/license-list-XML/issues/2017) +# Source/ThirdParty/ANGLE/src/compiler/preprocessor/preprocessor_tab_autogen.cpp is GPL-3.0-or-later WITH Bison-exception-2.2 +# Source/ThirdParty/ANGLE/tools/flex-bison/third_party/m4sugar/m4sugar.m4 is GPL-3.0-only WITH Autoconf-exception-3.0 +# Source/ThirdParty/pdfjs/web/images/annotation-paperclip.svg is MPL-2.0i +# Source/ThirdParty/pdfjs/web/standard_fonts/LICENSE_LIBERATION is OFL-1.1 +# Source/ThirdParty/xdgmime/ is AFL-2.0 GPL-2.0-or-later +# Source/WebCore/dom/PseudoElement.h is BSD-Source-Code +# Source/WebCore/dom/SecurityContext.cpp is BSD-2-Clause-Views +# Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp is LGPL-2.1-or-later +# Source/WTF/LICENSE-libc++.txt is NCSA OR MIT +# Source/WTF/LICENSE-LLVM.txt is Apache-2.0 WITH LLVM-exception +# Source/WTF/icu/LICENSE is ICU +# Source/WTF/wtf/Markable.h is BSL-1.0 +# The license tag and above comment is up to date as of WebKitGTK 2.42.2. +License: LGPL-2.1-only AND BSD-2-Clause AND BSD-3-Clause AND ISC AND bzip2-1.0.6 AND NCSA AND MIT AND GPL-2.0-only AND MPL-1.1 AND SunPro AND Unicode-TOU AND Apache-2.0 AND GPL-3.0-or-later WITH Bison-exception-2.2 AND GPL-3.0-only WITH Autoconf-exception-3.0 AND MPL-2.0 AND OFL-1.1 AND (AFL-2.0 GPL-2.0-or-later) AND BSD-Source-Code AND BSD-2-Clause-Views AND LGPL-2.1-or-later AND (NCSA OR MIT) AND Apache-2.0 WITH LLVM-exception AND ICU AND BSL-1.0 +URL: https://www.webkitgtk.org/ +Source0: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz +Source1: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz.asc +# Use the keys from https://webkitgtk.org/verifying.html +# $ gpg --import aperez.key carlosgc.key +# $ gpg --export --export-options export-minimal 013A0127AC9C65B34FFA62526C1009B693975393 5AA3BC334FD7E3369E7C77B291C559DBE4C9123B > webkitgtk-keys.gpg +Source2: webkitgtk-keys.gpg + +# https://bugs.webkit.org/show_bug.cgi?id=280642 +Patch: llvm19.patch + +BuildRequires: bison +BuildRequires: bubblewrap +BuildRequires: clang +BuildRequires: cmake +BuildRequires: flex +BuildRequires: gettext +BuildRequires: gi-docgen +BuildRequires: git +BuildRequires: gnupg2 +BuildRequires: gperf +BuildRequires: hyphen-devel +BuildRequires: libatomic +BuildRequires: ninja-build +BuildRequires: openssl-devel +BuildRequires: perl(English) +BuildRequires: perl(FindBin) +BuildRequires: perl(JSON::PP) +BuildRequires: perl(bigint) +BuildRequires: python3 +BuildRequires: ruby +BuildRequires: rubygems +BuildRequires: rubygem-json +BuildRequires: unifdef +BuildRequires: xdg-dbus-proxy + +BuildRequires: pkgconfig(atspi-2) +BuildRequires: pkgconfig(cairo) +BuildRequires: pkgconfig(egl) +BuildRequires: pkgconfig(enchant-2) +BuildRequires: pkgconfig(epoxy) +BuildRequires: pkgconfig(fontconfig) +BuildRequires: pkgconfig(freetype2) +BuildRequires: pkgconfig(gbm) +BuildRequires: pkgconfig(glib-2.0) +BuildRequires: pkgconfig(gobject-introspection-1.0) +BuildRequires: pkgconfig(gstreamer-1.0) +BuildRequires: pkgconfig(gstreamer-plugins-bad-1.0) +BuildRequires: pkgconfig(gstreamer-plugins-base-1.0) +BuildRequires: pkgconfig(gtk+-3.0) +BuildRequires: pkgconfig(gtk4) +BuildRequires: pkgconfig(harfbuzz) +BuildRequires: pkgconfig(icu-uc) +BuildRequires: pkgconfig(lcms2) +BuildRequires: pkgconfig(libavif) +BuildRequires: pkgconfig(libdrm) +BuildRequires: pkgconfig(libgcrypt) +BuildRequires: pkgconfig(libjpeg) +BuildRequires: pkgconfig(libjxl) +BuildRequires: pkgconfig(libnotify) +BuildRequires: pkgconfig(libpng) +BuildRequires: pkgconfig(libseccomp) +BuildRequires: pkgconfig(libsecret-1) +BuildRequires: pkgconfig(libsoup-2.4) +BuildRequires: pkgconfig(libsystemd) +BuildRequires: pkgconfig(libtasn1) +BuildRequires: pkgconfig(libwebp) +BuildRequires: pkgconfig(libwoff2dec) +BuildRequires: pkgconfig(libxslt) +BuildRequires: pkgconfig(manette-0.2) +BuildRequires: pkgconfig(sqlite3) +BuildRequires: pkgconfig(sysprof-capture-4) +BuildRequires: pkgconfig(upower-glib) +BuildRequires: pkgconfig(wayland-client) +BuildRequires: pkgconfig(wayland-egl) +BuildRequires: pkgconfig(wayland-protocols) +BuildRequires: pkgconfig(wayland-server) +BuildRequires: pkgconfig(xt) + +Requires: javascriptcoregtk4.0%{?_isa} = %{version}-%{release} +Requires: bubblewrap +Requires: libGLES +Requires: xdg-dbus-proxy +Recommends: geoclue2 +Recommends: gstreamer1-plugins-bad-free +Recommends: gstreamer1-plugins-good +Recommends: xdg-desktop-portal-gtk +Provides: bundled(angle) +Provides: bundled(pdfjs) +Provides: bundled(skia) +Provides: bundled(xdgmime) +Obsoletes: webkitgtk4 < %{version}-%{release} +Provides: webkitgtk4 = %{version}-%{release} +Obsoletes: webkit2gtk3 < %{version}-%{release} +Provides: webkit2gtk3 = %{version}-%{release} + +# Filter out provides for private libraries +%global __provides_exclude_from ^(%{_libdir}/webkit2gtk-4\\.0/.*\\.so)$ + +%description +WebKitGTK is the port of the WebKit web rendering engine to the +GTK platform. This package contains WebKitGTK for GTK 3 and libsoup 2. + +%package devel +Summary: Development files for webkit2gtk4.0 +Requires: webkit2gtk4.0%{?_isa} = %{version}-%{release} +Requires: javascriptcoregtk4.0%{?_isa} = %{version}-%{release} +Requires: javascriptcoregtk4.0-devel%{?_isa} = %{version}-%{release} +Obsoletes: webkitgtk4-devel < %{version}-%{release} +Provides: webkitgtk4-devel = %{version}-%{release} +Obsoletes: webkit2gtk3-devel < %{version}-%{release} +Provides: webkit2gtk3-devel = %{version}-%{release} + +%description devel +The webkit2gtk4.0-devel package contains libraries, build data, and header +files for developing applications that use webkit2gtk4.0. + +%if %{with docs} +%package doc +Summary: Documentation files for webkit2gtk4.0 +BuildArch: noarch +Requires: webkit2gtk4.0 = %{version}-%{release} +Obsoletes: webkitgtk4-doc < %{version}-%{release} +Provides: webkitgtk4-doc = %{version}-%{release} +Obsoletes: webkit2gtk3-doc < %{version}-%{release} +Provides: webkit2gtk3-doc = %{version}-%{release} +Recommends: gi-docgen-fonts + +# Documentation/jsc-glib-4.1/fzy.js is MIT +# Documentation/jsc-glib-4.1/*.js and *css is Apache-2.0 OR GPL-3.0-or-later +# Documentation/jsc-glib-4.1/*html is BSD, LGPL-2.1 +# Documentation/webkit2gtk-4.1/*html is BSD, LGPL-2.1 +# Documentation/webkit2gtk-web-extension-4.1/*html is BSD, LGPL-2.1 +# Documentation/webkit2gtk-web-extension-4.1/solarized* is MIT +# Documentation/webkit2gtk-web-extension-4.1/style.css is Apache-2.0 OR GPL-3.0-or-later +License: MIT AND LGPL-2.1-only AND BSD-3-Clause AND (Apache-2.0 OR GPL-3.0-or-later) + +%description doc +This package contains developer documentation for webkit2gtk4.0. +%endif + +%package -n javascriptcoregtk4.0 +Summary: JavaScript engine from webkit2gtk4.0 +Obsoletes: webkitgtk4-jsc < %{version}-%{release} +Provides: webkitgtk4-jsc = %{version}-%{release} +Obsoletes: webkit2gtk3-jsc < %{version}-%{release} +Provides: webkit2gtk3-jsc = %{version}-%{release} + +%description -n javascriptcoregtk4.0 +This package contains the JavaScript engine from webkit2gtk4.0. + +%package -n javascriptcoregtk4.0-devel +Summary: Development files for JavaScript engine from webkit2gtk4.0 +Requires: javascriptcoregtk4.0%{?_isa} = %{version}-%{release} +Obsoletes: webkitgtk4-jsc-devel < %{version}-%{release} +Provides: webkitgtk4-jsc-devel = %{version}-%{release} +Obsoletes: webkit2gtk3-jsc-devel < %{version}-%{release} +Provides: webkit2gtk3-jsc-devel = %{version}-%{release} + +%description -n javascriptcoregtk4.0-devel +The javascriptcoregtk4.0-devel package contains libraries, build data, and header +files for developing applications that use JavaScript engine from webkit2gtk-4.0. + +%prep +%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}' +%autosetup -p1 -n webkitgtk-%{version} + +%build +# Increase the DIE limit so our debuginfo packages can be size-optimized. +# This previously decreased the size for x86_64 from ~5G to ~1.1G, but as of +# 2022 it's more like 850 MB -> 675 MB. This requires lots of RAM on the +# builders, so only do this for x86_64 and aarch64 to avoid overwhelming +# builders with less RAM. +# https://bugzilla.redhat.com/show_bug.cgi?id=1456261 +%global _dwz_max_die_limit_x86_64 250000000 +%global _dwz_max_die_limit_aarch64 250000000 + +# Require 32 GB of RAM per vCPU for debuginfo processing. 16 GB is not enough. +%global _find_debuginfo_opts %limit_build -m 32768 + +# Reduce debuginfo verbosity 32-bit builds to reduce memory consumption even more. +# https://bugs.webkit.org/show_bug.cgi?id=140176 +# https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/I6IVNA52TXTBRQLKW45CJ5K4RA4WNGMI/ +%ifarch %{ix86} +%global optflags %(echo %{optflags} | sed 's/-g /-g1 /') +%endif + +# JIT is broken on ARM systems with new ARMv8.5 BTI extension at the moment +# Cf. https://bugzilla.redhat.com/show_bug.cgi?id=2130009 +# Cf. https://bugs.webkit.org/show_bug.cgi?id=245697 +# Disable BTI until this is fixed upstream. +%ifarch aarch64 +%global optflags %(echo %{optflags} | sed 's/-mbranch-protection=standard /-mbranch-protection=pac-ret /') +%endif + +%define _vpath_builddir %{_vendor}-%{_target_os}-build/webkit2gtk-4.0 +%cmake \ + -GNinja \ + -DPORT=GTK \ + -DCMAKE_BUILD_TYPE=Release \ + -DUSE_GTK4=OFF \ + -DUSE_LIBBACKTRACE=OFF \ + -DUSE_SOUP2=ON \ + -DENABLE_WEBDRIVER=OFF \ +%if %{without docs} + -DENABLE_DOCUMENTATION=OFF \ +%endif + %{nil} + +%define _vpath_builddir %{_vendor}-%{_target_os}-build/webkit2gtk-4.0 +export NINJA_STATUS="[%f/%t %es] " +%cmake_build %limit_build -m 3072 + +%install +%define _vpath_builddir %{_vendor}-%{_target_os}-build/webkit2gtk-4.0 +%cmake_install + +%find_lang WebKitGTK-4.0 + +# Finally, copy over and rename various files for %%license inclusion +%add_to_license_files Source/JavaScriptCore/COPYING.LIB +%add_to_license_files Source/ThirdParty/ANGLE/LICENSE +%add_to_license_files Source/ThirdParty/ANGLE/src/third_party/libXNVCtrl/LICENSE +%add_to_license_files Source/WebCore/LICENSE-APPLE +%add_to_license_files Source/WebCore/LICENSE-LGPL-2 +%add_to_license_files Source/WebCore/LICENSE-LGPL-2.1 +%add_to_license_files Source/WebInspectorUI/UserInterface/External/CodeMirror/LICENSE +%add_to_license_files Source/WebInspectorUI/UserInterface/External/Esprima/LICENSE +%add_to_license_files Source/WebInspectorUI/UserInterface/External/three.js/LICENSE +%add_to_license_files Source/WTF/icu/LICENSE +%add_to_license_files Source/WTF/wtf/dtoa/COPYING +%add_to_license_files Source/WTF/wtf/dtoa/LICENSE + +%files -f WebKitGTK-4.0.lang +%license _license_files/*ThirdParty* +%license _license_files/*WebCore* +%license _license_files/*WebInspectorUI* +%license _license_files/*WTF* +%{_libdir}/libwebkit2gtk-4.0.so.37* +%dir %{_libdir}/girepository-1.0 +%{_libdir}/girepository-1.0/WebKit2-4.0.typelib +%{_libdir}/girepository-1.0/WebKit2WebExtension-4.0.typelib +%{_libdir}/webkit2gtk-4.0/ +%{_libexecdir}/webkit2gtk-4.0/ +%exclude %{_libexecdir}/webkit2gtk-4.0/MiniBrowser +%exclude %{_libexecdir}/webkit2gtk-4.0/jsc + +%files devel +%{_libexecdir}/webkit2gtk-4.0/MiniBrowser +%{_includedir}/webkitgtk-4.0/ +%exclude %{_includedir}/webkitgtk-4.0/JavaScriptCore +%exclude %{_includedir}/webkitgtk-4.0/jsc +%{_libdir}/libwebkit2gtk-4.0.so +%{_libdir}/pkgconfig/webkit2gtk-4.0.pc +%{_libdir}/pkgconfig/webkit2gtk-web-extension-4.0.pc +%dir %{_datadir}/gir-1.0 +%{_datadir}/gir-1.0/WebKit2-4.0.gir +%{_datadir}/gir-1.0/WebKit2WebExtension-4.0.gir + +%files -n javascriptcoregtk4.0 +%license _license_files/*JavaScriptCore* +%{_libdir}/libjavascriptcoregtk-4.0.so.18* +%dir %{_libdir}/girepository-1.0 +%{_libdir}/girepository-1.0/JavaScriptCore-4.0.typelib + +%files -n javascriptcoregtk4.0-devel +%{_libexecdir}/webkit2gtk-4.0/jsc +%dir %{_includedir}/webkitgtk-4.0 +%{_includedir}/webkitgtk-4.0/JavaScriptCore/ +%{_includedir}/webkitgtk-4.0/jsc/ +%{_libdir}/libjavascriptcoregtk-4.0.so +%{_libdir}/pkgconfig/javascriptcoregtk-4.0.pc +%dir %{_datadir}/gir-1.0 +%{_datadir}/gir-1.0/JavaScriptCore-4.0.gir + +%if %{with docs} +%files doc +%dir %{_datadir}/doc +%{_datadir}/doc/javascriptcoregtk-4.0/ +%{_datadir}/doc/webkit2gtk-4.0/ +%{_datadir}/doc/webkit2gtk-web-extension-4.0/ +%endif + +%changelog +* Sat Jan 11 2025 Arkady L. Shane <tigro@msvsphere-os.ru> - 2.46.3-1 +- Rebuilt for MSVSphere 10 + +## START: Generated by rpmautospec +* Mon Nov 04 2024 Pete Walter <pwalter@fedoraproject.org> - 2.46.3-1 +- Update to 2.46.3 + +* Thu Oct 03 2024 Michael Catanzaro <mcatanzaro@redhat.com> - 2.46.1-2 +- Add patch to fix build with LLVM 19 + +* Tue Oct 01 2024 Pete Walter <pwalter@fedoraproject.org> - 2.46.1-1 +- Update to 2.46.1 + +* Tue Oct 01 2024 Pete Walter <pwalter@fedoraproject.org> - 2.46.0-2 +- Add missing sysprof-capture-4 BuildRequires + +* Wed Sep 18 2024 Pete Walter <pwalter@fedoraproject.org> - 2.46.0-1 +- Update to 2.46.0 + +* Fri Aug 16 2024 Michael Catanzaro <mcatanzaro@redhat.com> - 2.44.3-2 +- Add patch to fix WebAssembly + +* Wed Aug 14 2024 Pete Walter <pwalter@fedoraproject.org> - 2.44.3-1 +- Update to 2.44.3 + +* Sat Jul 20 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.44.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Tue Jun 18 2024 Michael Catanzaro <mcatanzaro@redhat.com> - 2.44.2-2 +- Add patch to fix excessive CPU usage + +* Tue Jun 18 2024 Pete Walter <pwalter@fedoraproject.org> - 2.44.2-1 +- Update to 2.44.2 + +* Sat May 25 2024 Fabio Valentini <decathorpe@gmail.com> - 2.44.1-2 +- Rebuild for gstreamer-plugins-bad 1.24 + +* Sat Apr 27 2024 Pete Walter <pwalter@fedoraproject.org> - 2.44.1-1 +- Update to 2.44.1 + +* Sat Apr 27 2024 Michael Catanzaro <mcatanzaro@redhat.com> - 2.42.5-5 +- Attempt to reenable LTO + +* Sat Apr 27 2024 Michael Catanzaro <mcatanzaro@redhat.com> - 2.42.5-4 +- Remove RHEL conditions from spec file + +* Wed Mar 13 2024 Sérgio M. Basto <sergio@serjux.com> - 2.42.5-3 +- Rebuild for jpegxl (libjxl) 0.10.2 + +* Wed Feb 14 2024 Sérgio M. Basto <sergio@serjux.com> - 2.42.5-2 +- Rebuild for jpegxl (libjxl) 0.9.2 with soname bump + +* Thu Feb 08 2024 Michael Catanzaro <mcatanzaro@redhat.com> - 2.42.5-1 +- Update to WebKitGTK 2.42.5 + +* Sat Jan 27 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.42.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Thu Dec 21 2023 Pete Walter <pwalter@fedoraproject.org> - 2.42.4-1 +- Update to 2.42.4 + +* Wed Dec 06 2023 Pete Walter <pwalter@fedoraproject.org> - 2.42.3-1 +- Update to 2.42.3 + +* Sat Nov 11 2023 Pete Walter <pwalter@fedoraproject.org> - 2.42.2-1 +- Update to 2.42.2 + +* Sat Nov 11 2023 Miroslav Suchý <msuchy@redhat.com> - 2.42.0-3 +- license analysis + +* Sat Nov 11 2023 Pete Walter <pwalter@fedoraproject.org> - 2.42.0-2 +- Fix GL dependencies + +* Sat Sep 16 2023 Pete Walter <pwalter@fedoraproject.org> - 2.42.0-1 +- Update to 2.42.0 + +* Fri Sep 08 2023 Pete Walter <pwalter@fedoraproject.org> - 2.41.92-1 +- Update to 2.41.92 + +* Mon Aug 21 2023 Pete Walter <pwalter@fedoraproject.org> - 2.41.91-1 +- Initial import +## END: Generated by rpmautospec