download.lst | 4 - external/skia/Library_skia.mk | 68 +++++++++++++------------- external/skia/fix-pch.patch.1 | 10 +-- external/skia/fontconfig-get-typeface.patch.1 | 7 +- external/skia/inc/pch/precompiled_skia.hxx | 55 ++++++++++----------- external/skia/ubsan-missing-typeinfo.patch.1 | 6 +- vcl/skia/x11/textrender.cxx | 4 + 7 files changed, 79 insertions(+), 75 deletions(-)
New commits: commit 9d656704c791e8301d04b2e2caa6be13b564ce98 Author: Xisco Fauli <[email protected]> AuthorDate: Tue Sep 30 12:42:36 2025 +0200 Commit: Xisco Fauli <[email protected]> CommitDate: Tue Sep 30 14:10:38 2025 +0200 skia: upgrade to m140 Done following the steps in external/skia/README Change-Id: I05fb1340f912609f6a568509db8b02a0be55cf58 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191659 Tested-by: Jenkins Reviewed-by: Xisco Fauli <[email protected]> diff --git a/download.lst b/download.lst index d06683e7435b..84a041c94ef7 100644 --- a/download.lst +++ b/download.lst @@ -642,8 +642,8 @@ RHINO_TARBALL := rhino-1.7.15.zip # three static lines # so that git cherry-pick # will not run into conflicts -SKIA_SHA256SUM := bb5211fe006cbeb6c7e88e7a8586ec11fff09dca03331fa495495f51e7f6d409 -SKIA_TARBALL := skia-m139-4abe0638e35d34b6fdb70f1f5ce0f0e1879a021e.tar.xz +SKIA_SHA256SUM := 1808fba8891ebac4ae50007bd2b7bdf4dee27fb5a345fc720cb4891d1b859136 +SKIA_TARBALL := skia-m140-f3ff281f2330f2948888a9cc0ba921bbdc107da8.tar.xz # three static lines # so that git cherry-pick # will not run into conflicts diff --git a/external/skia/Library_skia.mk b/external/skia/Library_skia.mk index c79fb9957abe..4f69221d6f8d 100644 --- a/external/skia/Library_skia.mk +++ b/external/skia/Library_skia.mk @@ -163,7 +163,6 @@ endif ifneq ($(filter-out WNT MACOSX,$(OS)),) $(eval $(call gb_Library_add_generated_exception_objects,skia,\ UnpackedTarball/skia/src/ports/SkFontMgr_fontconfig \ - UnpackedTarball/skia/src/ports/SkFontMgr_fontconfig_freetype \ )) endif @@ -486,6 +485,9 @@ $(eval $(call gb_Library_add_generated_exception_objects,skia,\ UnpackedTarball/skia/src/core/SkPathBuilder \ UnpackedTarball/skia/src/core/SkPathEffect \ UnpackedTarball/skia/src/core/SkPathMeasure \ + UnpackedTarball/skia/src/core/SkPathPriv \ + UnpackedTarball/skia/src/core/SkPathRaw \ + UnpackedTarball/skia/src/core/SkPathRawShapes \ UnpackedTarball/skia/src/core/SkPathRef \ UnpackedTarball/skia/src/core/SkPathUtils \ UnpackedTarball/skia/src/core/SkPath_serial \ @@ -591,38 +593,38 @@ $(eval $(call gb_Library_add_generated_exception_objects,skia,\ # from file skia/gn/core.gni:667, target "skia_pathops_sources" # $(eval $(call gb_Library_add_generated_exception_objects,skia,\ - UnpackedTarball/skia/modules/pathops/src/SkAddIntersections \ - UnpackedTarball/skia/modules/pathops/src/SkDConicLineIntersection \ - UnpackedTarball/skia/modules/pathops/src/SkDCubicLineIntersection \ - UnpackedTarball/skia/modules/pathops/src/SkDCubicToQuads \ - UnpackedTarball/skia/modules/pathops/src/SkDLineIntersection \ - UnpackedTarball/skia/modules/pathops/src/SkDQuadLineIntersection \ - UnpackedTarball/skia/modules/pathops/src/SkIntersections \ - UnpackedTarball/skia/modules/pathops/src/SkOpAngle \ - UnpackedTarball/skia/modules/pathops/src/SkOpBuilder \ - UnpackedTarball/skia/modules/pathops/src/SkOpCoincidence \ - UnpackedTarball/skia/modules/pathops/src/SkOpContour \ - UnpackedTarball/skia/modules/pathops/src/SkOpCubicHull \ - UnpackedTarball/skia/modules/pathops/src/SkOpEdgeBuilder \ - UnpackedTarball/skia/modules/pathops/src/SkOpSegment \ - UnpackedTarball/skia/modules/pathops/src/SkOpSpan \ - UnpackedTarball/skia/modules/pathops/src/SkPathOpsAsWinding \ - UnpackedTarball/skia/modules/pathops/src/SkPathOpsCommon \ - UnpackedTarball/skia/modules/pathops/src/SkPathOpsConic \ - UnpackedTarball/skia/modules/pathops/src/SkPathOpsCubic \ - UnpackedTarball/skia/modules/pathops/src/SkPathOpsCurve \ - UnpackedTarball/skia/modules/pathops/src/SkPathOpsDebug \ - UnpackedTarball/skia/modules/pathops/src/SkPathOpsLine \ - UnpackedTarball/skia/modules/pathops/src/SkPathOpsOp \ - UnpackedTarball/skia/modules/pathops/src/SkPathOpsQuad \ - UnpackedTarball/skia/modules/pathops/src/SkPathOpsRect \ - UnpackedTarball/skia/modules/pathops/src/SkPathOpsSimplify \ - UnpackedTarball/skia/modules/pathops/src/SkPathOpsTSect \ - UnpackedTarball/skia/modules/pathops/src/SkPathOpsTightBounds \ - UnpackedTarball/skia/modules/pathops/src/SkPathOpsTypes \ - UnpackedTarball/skia/modules/pathops/src/SkPathOpsWinding \ - UnpackedTarball/skia/modules/pathops/src/SkPathWriter \ - UnpackedTarball/skia/modules/pathops/src/SkReduceOrder \ + UnpackedTarball/skia/src/pathops/SkAddIntersections \ + UnpackedTarball/skia/src/pathops/SkDConicLineIntersection \ + UnpackedTarball/skia/src/pathops/SkDCubicLineIntersection \ + UnpackedTarball/skia/src/pathops/SkDCubicToQuads \ + UnpackedTarball/skia/src/pathops/SkDLineIntersection \ + UnpackedTarball/skia/src/pathops/SkDQuadLineIntersection \ + UnpackedTarball/skia/src/pathops/SkIntersections \ + UnpackedTarball/skia/src/pathops/SkOpAngle \ + UnpackedTarball/skia/src/pathops/SkOpBuilder \ + UnpackedTarball/skia/src/pathops/SkOpCoincidence \ + UnpackedTarball/skia/src/pathops/SkOpContour \ + UnpackedTarball/skia/src/pathops/SkOpCubicHull \ + UnpackedTarball/skia/src/pathops/SkOpEdgeBuilder \ + UnpackedTarball/skia/src/pathops/SkOpSegment \ + UnpackedTarball/skia/src/pathops/SkOpSpan \ + UnpackedTarball/skia/src/pathops/SkPathOpsAsWinding \ + UnpackedTarball/skia/src/pathops/SkPathOpsCommon \ + UnpackedTarball/skia/src/pathops/SkPathOpsConic \ + UnpackedTarball/skia/src/pathops/SkPathOpsCubic \ + UnpackedTarball/skia/src/pathops/SkPathOpsCurve \ + UnpackedTarball/skia/src/pathops/SkPathOpsDebug \ + UnpackedTarball/skia/src/pathops/SkPathOpsLine \ + UnpackedTarball/skia/src/pathops/SkPathOpsOp \ + UnpackedTarball/skia/src/pathops/SkPathOpsQuad \ + UnpackedTarball/skia/src/pathops/SkPathOpsRect \ + UnpackedTarball/skia/src/pathops/SkPathOpsSimplify \ + UnpackedTarball/skia/src/pathops/SkPathOpsTSect \ + UnpackedTarball/skia/src/pathops/SkPathOpsTightBounds \ + UnpackedTarball/skia/src/pathops/SkPathOpsTypes \ + UnpackedTarball/skia/src/pathops/SkPathOpsWinding \ + UnpackedTarball/skia/src/pathops/SkPathWriter \ + UnpackedTarball/skia/src/pathops/SkReduceOrder \ )) # from file skia/gn/core.gni:736, target "skia_skpicture_sources" diff --git a/external/skia/fix-pch.patch.1 b/external/skia/fix-pch.patch.1 index a922a961a533..efb0c9d4a40f 100644 --- a/external/skia/fix-pch.patch.1 +++ b/external/skia/fix-pch.patch.1 @@ -34,12 +34,12 @@ diff -ur skia.org/src/gpu/ganesh/vk/GrVkSemaphore.cpp skia/src/gpu/ganesh/vk/GrV diff -ur skia.org/src/utils/win/SkDWriteGeometrySink.h skia/src/utils/win/SkDWriteGeometrySink.h --- skia.org/src/utils/win/SkDWriteGeometrySink.h 2024-10-10 13:25:03.683133691 +0200 +++ skia/src/utils/win/SkDWriteGeometrySink.h 2024-10-10 13:25:12.144187524 +0200 -@@ -13,6 +13,8 @@ - - class SkPath; +@@ -8,6 +8,8 @@ + #ifndef SkDWriteToPath_DEFINED + #define SkDWriteToPath_DEFINED +#define CONST const + - #include <dwrite.h> - #include <d2d1.h> + #include "include/core/SkPathBuilder.h" + #include "src/utils/win/SkObjBase.h" diff --git a/external/skia/fontconfig-get-typeface.patch.1 b/external/skia/fontconfig-get-typeface.patch.1 index 47c857d57405..3cbe9d06493e 100644 --- a/external/skia/fontconfig-get-typeface.patch.1 +++ b/external/skia/fontconfig-get-typeface.patch.1 @@ -1,7 +1,7 @@ diff -ur skia.org/include/ports/SkFontMgr_fontconfig.h skia/include/ports/SkFontMgr_fontconfig.h --- skia.org/include/ports/SkFontMgr_fontconfig.h 2024-10-09 10:25:16.421928663 +0200 +++ skia/include/ports/SkFontMgr_fontconfig.h 2024-10-09 10:27:17.914640682 +0200 -@@ -21,6 +21,11 @@ +@@ -21,4 +21,9 @@ class SkFontScanner; SK_API sk_sp<SkFontMgr> SkFontMgr_New_FontConfig(FcConfig* fc, std::unique_ptr<SkFontScanner> scanner); @@ -10,9 +10,8 @@ diff -ur skia.org/include/ports/SkFontMgr_fontconfig.h skia/include/ports/SkFont +class SkTypeface; +SK_API sk_sp<SkTypeface> SkFontMgr_createTypefaceFromFcPattern(const sk_sp<SkFontMgr>& mgr, FcPattern* pattern); + - #if !defined(SK_DISABLE_LEGACY_FONTCONFIG_FACTORY) - SK_API sk_sp<SkFontMgr> SkFontMgr_New_FontConfig(FcConfig* fc); - #endif + #endif // #ifndef SkFontMgr_fontconfig_DEFINED + diff -ur skia.org/src/ports/SkFontMgr_fontconfig.cpp skia/src/ports/SkFontMgr_fontconfig.cpp --- skia.org/src/ports/SkFontMgr_fontconfig.cpp 2024-10-09 10:25:16.460928891 +0200 +++ skia/src/ports/SkFontMgr_fontconfig.cpp 2024-10-09 10:27:30.405714112 +0200 diff --git a/external/skia/inc/pch/precompiled_skia.hxx b/external/skia/inc/pch/precompiled_skia.hxx index 95cb8dc55c3e..88a4a7035db5 100644 --- a/external/skia/inc/pch/precompiled_skia.hxx +++ b/external/skia/inc/pch/precompiled_skia.hxx @@ -13,7 +13,7 @@ manual changes will be rewritten by the next run of update_pch.sh (which presumably also fixes all possible problems, so it's usually better to use it). - Generated on 2025-07-04 22:59:10 using: + Generated on 2025-09-30 11:36:30 using: ./bin/update_pch external/skia skia --cutoff=1 --exclude:system --include:module --include:local If after updating build fails, use the following command to locate conflicting headers: @@ -197,6 +197,7 @@ #include <include/encode/SkICC.h> #include <include/encode/SkPngEncoder.h> #include <include/gpu/ganesh/GrDirectContext.h> +#include <include/pathops/SkPathOps.h> #include <include/private/SkEncodedInfo.h> #include <include/private/SkExif.h> #include <include/private/SkGainmapInfo.h> @@ -249,32 +250,6 @@ #include <include/utils/SkShadowUtils.h> #include <include/utils/SkTextUtils.h> #include <include/utils/SkTraceEventPhase.h> -#include <modules/pathops/include/SkPathOps.h> -#include <modules/pathops/src/SkAddIntersections.h> -#include <modules/pathops/src/SkIntersectionHelper.h> -#include <modules/pathops/src/SkIntersections.h> -#include <modules/pathops/src/SkLineParameters.h> -#include <modules/pathops/src/SkOpAngle.h> -#include <modules/pathops/src/SkOpCoincidence.h> -#include <modules/pathops/src/SkOpContour.h> -#include <modules/pathops/src/SkOpEdgeBuilder.h> -#include <modules/pathops/src/SkOpSegment.h> -#include <modules/pathops/src/SkOpSpan.h> -#include <modules/pathops/src/SkPathOpsBounds.h> -#include <modules/pathops/src/SkPathOpsCommon.h> -#include <modules/pathops/src/SkPathOpsConic.h> -#include <modules/pathops/src/SkPathOpsCubic.h> -#include <modules/pathops/src/SkPathOpsCurve.h> -#include <modules/pathops/src/SkPathOpsDebug.h> -#include <modules/pathops/src/SkPathOpsLine.h> -#include <modules/pathops/src/SkPathOpsPoint.h> -#include <modules/pathops/src/SkPathOpsQuad.h> -#include <modules/pathops/src/SkPathOpsRect.h> -#include <modules/pathops/src/SkPathOpsTCurve.h> -#include <modules/pathops/src/SkPathOpsTSect.h> -#include <modules/pathops/src/SkPathOpsTypes.h> -#include <modules/pathops/src/SkPathWriter.h> -#include <modules/pathops/src/SkReduceOrder.h> #include <modules/skcms/skcms.h> #include <src/base/SkArenaAlloc.h> #include <src/base/SkAutoMalloc.h> @@ -429,6 +404,7 @@ #include <src/core/SkPathMakers.h> #include <src/core/SkPathMeasurePriv.h> #include <src/core/SkPathPriv.h> +#include <src/core/SkPathRawShapes.h> #include <src/core/SkPictureData.h> #include <src/core/SkPictureFlat.h> #include <src/core/SkPicturePlayback.h> @@ -526,6 +502,31 @@ #include <src/image/SkSurface_Base.h> #include <src/image/SkSurface_Raster.h> #include <src/lazy/SkDiscardableMemoryPool.h> +#include <src/pathops/SkAddIntersections.h> +#include <src/pathops/SkIntersectionHelper.h> +#include <src/pathops/SkIntersections.h> +#include <src/pathops/SkLineParameters.h> +#include <src/pathops/SkOpAngle.h> +#include <src/pathops/SkOpCoincidence.h> +#include <src/pathops/SkOpContour.h> +#include <src/pathops/SkOpEdgeBuilder.h> +#include <src/pathops/SkOpSegment.h> +#include <src/pathops/SkOpSpan.h> +#include <src/pathops/SkPathOpsBounds.h> +#include <src/pathops/SkPathOpsCommon.h> +#include <src/pathops/SkPathOpsConic.h> +#include <src/pathops/SkPathOpsCubic.h> +#include <src/pathops/SkPathOpsCurve.h> +#include <src/pathops/SkPathOpsDebug.h> +#include <src/pathops/SkPathOpsLine.h> +#include <src/pathops/SkPathOpsPoint.h> +#include <src/pathops/SkPathOpsQuad.h> +#include <src/pathops/SkPathOpsRect.h> +#include <src/pathops/SkPathOpsTCurve.h> +#include <src/pathops/SkPathOpsTSect.h> +#include <src/pathops/SkPathOpsTypes.h> +#include <src/pathops/SkPathWriter.h> +#include <src/pathops/SkReduceOrder.h> #include <src/ports/SkTypeface_proxy.h> #include <src/sfnt/SkOTTableTypes.h> #include <src/sfnt/SkOTTable_OS_2.h> diff --git a/external/skia/ubsan-missing-typeinfo.patch.1 b/external/skia/ubsan-missing-typeinfo.patch.1 index ff1a670a3e05..8c834f4d1895 100644 --- a/external/skia/ubsan-missing-typeinfo.patch.1 +++ b/external/skia/ubsan-missing-typeinfo.patch.1 @@ -1,9 +1,9 @@ diff -ur skia.org/src/image/SkImage_Base.h skia/src/image/SkImage_Base.h --- skia.org/src/image/SkImage_Base.h 2023-07-12 10:59:47.006358109 +0200 +++ skia/src/image/SkImage_Base.h 2023-07-12 11:15:00.028292134 +0200 -@@ -44,7 +44,7 @@ - class Recorder; - } +@@ -34,7 +34,7 @@ + kNeedNewImageUniqueID = 0 + }; -class SkImage_Base : public SkImage { +class SK_API SkImage_Base : public SkImage { diff --git a/vcl/skia/x11/textrender.cxx b/vcl/skia/x11/textrender.cxx index ba94b44d7b0d..4899dff28379 100644 --- a/vcl/skia/x11/textrender.cxx +++ b/vcl/skia/x11/textrender.cxx @@ -39,6 +39,7 @@ #include <SkFont.h> #include <SkFontMgr_fontconfig.h> #include <SkFontTypes.h> +#include <SkFontScanner_FreeType.h> #if defined __GNUC__ && !defined __clang__ #pragma GCC diagnostic pop @@ -60,7 +61,8 @@ void SkiaTextRender::DrawTextLayout(const GenericSalLayout& rLayout, const SalGr if (!fontManager) { // Get the global FcConfig that our VCL fontconfig code uses, and refcount it. - fontManager = SkFontMgr_New_FontConfig(FcConfigReference(nullptr)); + fontManager + = SkFontMgr_New_FontConfig(FcConfigReference(nullptr), SkFontScanner_Make_FreeType()); } sk_sp<SkTypeface> typeface = SkFontMgr_createTypefaceFromFcPattern(fontManager, rFont.GetFontOptions()->GetPattern());
