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());

Reply via email to