comphelper/source/misc/hash.cxx | 16 configure.ac | 4 download.lst | 28 external/nss/ExternalProject_nss.mk | 4 external/nss/UnpackedTarball_nss.mk | 4 external/nss/Wincompatible-function-pointer-types.patch.0 | 419 ++++++-------- external/nss/clang-cl.patch.0 | 11 external/nss/macos-dlopen.patch.0 | 18 external/nss/nspr-win95-target.patch | 11 external/nss/nss-android.patch.1 | 18 external/nss/nss-ios.patch | 36 - external/nss/nss.cygwin64.in32bit.patch | 14 external/nss/nss.getrandom.patch | 23 external/nss/nss.patch | 16 external/nss/nss_macosx.patch | 10 external/nss/winnt.patch.0 | 10 external/openssl/0001-const-up-ERR_str_libraries.patch.1 | 26 external/openssl/UnpackedTarball_openssl.mk | 4 external/pdfium/Library_pdfium.mk | 17 external/pdfium/build.patch.1 | 126 ---- external/pdfium/inc/pch/precompiled_pdfium.hxx | 1 external/skia/Library_skia.mk | 18 external/skia/fix-warnings.patch.1 | 4 external/skia/fontconfig-get-typeface.patch.1 | 14 external/skia/make-api-visible.patch.1 | 70 +- external/skia/share-grcontext.patch.1 | 102 ++- external/skia/swap-buffers-rect.patch.1 | 8 external/skia/windows-raster-surface-no-copies.patch.1 | 4 external/zlib/StaticLibrary_zlib.mk | 1 include/comphelper/hash.hxx | 2 vcl/qa/cppunit/pdfexport/pdfexport.cxx | 4 vcl/qa/cppunit/pdfexport/pdfexport2.cxx | 8 vcl/skia/SkiaHelper.cxx | 2 vcl/skia/gdiimpl.cxx | 2 vcl/skia/osx/gdiimpl.cxx | 10 vcl/skia/win/gdiimpl.cxx | 14 vcl/skia/x11/gdiimpl.cxx | 18 vcl/source/gdi/pdfwriter_impl.cxx | 5 38 files changed, 551 insertions(+), 551 deletions(-)
New commits: commit 12a3c9b7b4cb8e28001b2633c15ce360a197c0ae Author: Andras Timar <[email protected]> AuthorDate: Fri Jan 30 10:39:39 2026 +0100 Commit: Andras Timar <[email protected]> CommitDate: Fri Jan 30 10:39:39 2026 +0100 Bump version to 25.2.7.5 Change-Id: I9278da1c6d0b8c1e24552270202b7b90fcf7957f diff --git a/configure.ac b/configure.ac index d4cff85d9716..235ec3c9f124 100644 --- a/configure.ac +++ b/configure.ac @@ -9,7 +9,7 @@ dnl in order to create a configure script. # several non-alphanumeric characters, those are split off and used only for the # ABOUTBOXPRODUCTVERSIONSUFFIX in openoffice.lst. Why that is necessary, no idea. -AC_INIT([LibreOffice],[25.2.7.4],[],[],[http://documentfoundation.org/]) +AC_INIT([LibreOffice],[25.2.7.5],[],[],[http://documentfoundation.org/]) dnl libnumbertext needs autoconf 2.68, but that can pick up autoconf268 just fine if it is installed dnl whereas aclocal (as run by autogen.sh) insists on using autoconf and fails hard commit ee0a92aa6ddda54117a48a6480e085dc9a9ecbd9 Author: Xisco Fauli <[email protected]> AuthorDate: Tue Sep 23 16:06:12 2025 +0200 Commit: Andras Timar <[email protected]> CommitDate: Fri Jan 30 10:37:55 2026 +0100 libvisio: upgrade to 0.1.10 Generated with: ./autogen.sh ./configure make dist-xz Change-Id: Ida45f447bdd49bf4ee600e0f24a7bf4eb5cb0bca Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191403 Reviewed-by: Xisco Fauli <[email protected]> Tested-by: Jenkins (cherry picked from commit 63887d9aaa252ee1b1b066831b28b53867a8c67f) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191413 Tested-by: Jenkins CollaboraOffice <[email protected]> Reviewed-by: Andras Timar <[email protected]> diff --git a/download.lst b/download.lst index 89ea4d6c884b..7dd884933617 100644 --- a/download.lst +++ b/download.lst @@ -642,8 +642,8 @@ TWAIN_DSM_TARBALL := twaindsm_2.4.1.orig.tar.gz # three static lines # so that git cherry-pick # will not run into conflicts -VISIO_SHA256SUM := 4a61d086daa3f5c9db8a3fd1b6dbfc29ba756057aa6b3cc23878fd4854362af9 -VISIO_TARBALL := libvisio-0.1.9.tar.xz +VISIO_SHA256SUM := 9e9eff75112d4d92d92262ad7fc2599c21e26f8fc5ba54900efdc83c0501e472 +VISIO_TARBALL := libvisio-0.1.10.tar.xz # three static lines # so that git cherry-pick # will not run into conflicts commit c14979b5ee7c92a70b2a56296c3d456a27b906f1 Author: Xisco Fauli <[email protected]> AuthorDate: Mon Sep 22 11:16:40 2025 +0200 Commit: Andras Timar <[email protected]> CommitDate: Fri Jan 30 10:37:55 2026 +0100 libvisio: upgrade to 0.1.9 Generated with: ./autogen.sh ./configure make dist-xz Change-Id: I7b588ca176024055486f41ddcec1394f5971f97e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191320 Tested-by: Jenkins Reviewed-by: Xisco Fauli <[email protected]> (cherry picked from commit 1ac9e00df08f52c884a858180a0b1c14788ad4b3) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191393 Tested-by: Jenkins CollaboraOffice <[email protected]> Reviewed-by: Andras Timar <[email protected]> diff --git a/download.lst b/download.lst index 7657a9065d70..89ea4d6c884b 100644 --- a/download.lst +++ b/download.lst @@ -642,8 +642,8 @@ TWAIN_DSM_TARBALL := twaindsm_2.4.1.orig.tar.gz # three static lines # so that git cherry-pick # will not run into conflicts -VISIO_SHA256SUM := b4098ffbf4dcb9e71213fa0acddbd928f27bed30db2d80234813b15d53d0405b -VISIO_TARBALL := libvisio-0.1.8.tar.xz +VISIO_SHA256SUM := 4a61d086daa3f5c9db8a3fd1b6dbfc29ba756057aa6b3cc23878fd4854362af9 +VISIO_TARBALL := libvisio-0.1.9.tar.xz # three static lines # so that git cherry-pick # will not run into conflicts commit 66bb1ad7274b13a3f2be02b1961abd48101b4bd3 Author: Noel Grandin <[email protected]> AuthorDate: Tue Mar 11 15:06:56 2025 +0200 Commit: Andras Timar <[email protected]> CommitDate: Fri Jan 30 10:37:23 2026 +0100 update to skia m133 update to skia m133 Change-Id: Id12146bfd28003acc146fc45fdea4d9e4323539e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182778 Tested-by: Jenkins Reviewed-by: Noel Grandin <[email protected]> (cherry picked from commit 0ce35e70da08cccb20302f1acc36521dc1b1bec2) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/192894 Tested-by: Jenkins CollaboraOffice <[email protected]> Reviewed-by: Michael Stahl <[email protected]> diff --git a/download.lst b/download.lst index 5e830feb9948..7657a9065d70 100644 --- a/download.lst +++ b/download.lst @@ -626,8 +626,8 @@ RHINO_TARBALL := rhino-1.7.15.zip # three static lines # so that git cherry-pick # will not run into conflicts -SKIA_SHA256SUM := 103f63a8414a506c887cfe788f7653c130df1278b2cc1d1ae6827b2b90e59377 -SKIA_TARBALL := skia-m132-ee9db7d1348f76780fd0184b9b0243d653e36411.tar.xz +SKIA_SHA256SUM := af3676facdf12d59a9ad5a0f63c60e6bb47f7d6bb243acdd0c6abc8c9b0b3c59 +SKIA_TARBALL := skia-m133-ecebe831881cdf52c65df518777210071f7970dd.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 dd99e6f271ab..0eb71722ea67 100644 --- a/external/skia/Library_skia.mk +++ b/external/skia/Library_skia.mk @@ -317,6 +317,7 @@ $(eval $(call gb_Library_add_generated_exception_objects,skia,\ UnpackedTarball/skia/src/codec/SkCodecImageGenerator \ UnpackedTarball/skia/src/codec/SkColorPalette \ UnpackedTarball/skia/src/codec/SkExif \ + UnpackedTarball/skia/src/codec/SkGainmapInfo \ UnpackedTarball/skia/src/codec/SkImageGenerator_FromEncoded \ UnpackedTarball/skia/src/codec/SkMaskSwizzler \ UnpackedTarball/skia/src/codec/SkPixmapUtils \ @@ -341,6 +342,7 @@ $(eval $(call gb_Library_add_generated_exception_objects,skia,\ $(eval $(call gb_Library_add_generated_exception_objects,skia,\ UnpackedTarball/skia/src/codec/SkPngCodec \ UnpackedTarball/skia/src/codec/SkPngCodecBase \ + UnpackedTarball/skia/src/codec/SkPngCompositeChunkReader \ )) @@ -362,7 +364,6 @@ $(eval $(call gb_Library_add_generated_exception_objects,skia,\ UnpackedTarball/skia/src/base/SkQuads \ UnpackedTarball/skia/src/base/SkSafeMath \ UnpackedTarball/skia/src/base/SkSemaphore \ - UnpackedTarball/skia/src/base/SkSharedMutex \ UnpackedTarball/skia/src/base/SkSpinlock \ UnpackedTarball/skia/src/base/SkTDArray \ UnpackedTarball/skia/src/base/SkTSearch \ @@ -639,7 +640,13 @@ $(eval $(call gb_Library_add_generated_exception_objects,skia,\ UnpackedTarball/skia/src/encode/SkICC \ )) -# from file skia/gn/core.gni:792, target "skia_encode_png_srcs" +# from file skia/gn/core.gni:792, target "skia_encode_png_base" +# +$(eval $(call gb_Library_add_generated_exception_objects,skia,\ + UnpackedTarball/skia/src/encode/SkPngEncoderBase \ +)) + +# from file skia/gn/core.gni:800, target "skia_encode_png_srcs" # $(eval $(call gb_Library_add_generated_exception_objects,skia,\ UnpackedTarball/skia/src/encode/SkPngEncoderImpl \ @@ -710,6 +717,12 @@ $(eval $(call gb_Library_add_generated_exception_objects,skia,\ UnpackedTarball/skia/src/effects/imagefilters/SkShaderImageFilter \ )) +# from file skia/gn/ports.gni:130, target "skia_ports_typeface_proxy_sources" +# +$(eval $(call gb_Library_add_generated_exception_objects,skia,\ + UnpackedTarball/skia/src/ports/SkTypeface_proxy \ +)) + # from file skia/gn/sksl.gni:42, target "skia_sksl_sources" # $(eval $(call gb_Library_add_generated_exception_objects,skia,\ @@ -846,7 +859,6 @@ $(eval $(call gb_Library_add_generated_exception_objects,skia,\ UnpackedTarball/skia/src/utils/SkEventTracer \ UnpackedTarball/skia/src/utils/SkFloatToDecimal \ UnpackedTarball/skia/src/sksl/SkSLModuleDataDefault \ - UnpackedTarball/skia/src/utils/SkJSON \ UnpackedTarball/skia/src/utils/SkJSONWriter \ UnpackedTarball/skia/src/utils/SkMatrix22 \ UnpackedTarball/skia/src/utils/SkMultiPictureDocument \ diff --git a/external/skia/fix-warnings.patch.1 b/external/skia/fix-warnings.patch.1 index cc1a6fba0a41..735f6f11aa6b 100644 --- a/external/skia/fix-warnings.patch.1 +++ b/external/skia/fix-warnings.patch.1 @@ -24,8 +24,8 @@ index f143dab013..be3cde0f4f 100644 - virtual void activate(bool isActive) {} + virtual void activate(bool /*isActive*/) {} - const DisplayParams& getDisplayParams() { return fDisplayParams; } - virtual void setDisplayParams(const DisplayParams& params) = 0; + const DisplayParams* getDisplayParams() { return fDisplayParams.get(); } + virtual void setDisplayParams(std::unique_ptr<const DisplayParams>) = 0; --- skia/include/core/SkSamplingOptions.h.orig 2022-05-22 12:25:06.112544528 +0200 +++ skia/include/core/SkSamplingOptions.h 2022-05-22 12:25:09.207636134 +0200 @@ -97,7 +97,7 @@ diff --git a/external/skia/make-api-visible.patch.1 b/external/skia/make-api-visible.patch.1 index 776f987a60f6..6285b4f8f9b5 100644 --- a/external/skia/make-api-visible.patch.1 +++ b/external/skia/make-api-visible.patch.1 @@ -8,7 +8,7 @@ diff -ur skia.org/tools/window/WindowContext.h skia/tools/window/WindowContext.h -class WindowContext { +class SK_API WindowContext { public: - WindowContext(const DisplayParams&); + WindowContext(std::unique_ptr<const DisplayParams>); diff -ur skia.org/tools/window/mac/GaneshMetalWindowContext_mac.h skia/tools/window/mac/GaneshMetalWindowContext_mac.h --- skia.org/tools/window/mac/GaneshMetalWindowContext_mac.h 2024-10-12 15:57:21 @@ -21,12 +21,14 @@ diff -ur skia.org/tools/window/mac/GaneshMetalWindowContext_mac.h skia/tools/win #include <memory> namespace skwindow { -@@ -15,7 +16,7 @@ - struct DisplayParams; +@@ -15,8 +16,8 @@ + class DisplayParams; struct MacWindowInfo; --std::unique_ptr<WindowContext> MakeGaneshMetalForMac(const MacWindowInfo&, const DisplayParams&); -+SK_API std::unique_ptr<WindowContext> MakeGaneshMetalForMac(const MacWindowInfo&, const DisplayParams&); +-std::unique_ptr<WindowContext> MakeGaneshMetalForMac(const MacWindowInfo&, +- std::unique_ptr<const DisplayParams>); ++SK_API std::unique_ptr<WindowContext> MakeGaneshMetalForMac(const MacWindowInfo&, ++ std::unique_ptr<const DisplayParams>); } // namespace skwindow #endif @@ -41,12 +43,14 @@ diff -ur skia.org/tools/window/unix/GaneshGLWindowContext_unix.h skia/tools/wind #include <memory> namespace skwindow { -@@ -15,7 +16,7 @@ - struct DisplayParams; +@@ -15,8 +16,8 @@ + class DisplayParams; struct XlibWindowInfo; --std::unique_ptr<WindowContext> MakeGaneshGLForXlib(const XlibWindowInfo&, const DisplayParams&); -+SK_API std::unique_ptr<WindowContext> MakeGaneshGLForXlib(const XlibWindowInfo&, const DisplayParams&); +-std::unique_ptr<WindowContext> MakeGaneshGLForXlib(const XlibWindowInfo&, +- std::unique_ptr<const DisplayParams>); ++SK_API std::unique_ptr<WindowContext> MakeGaneshGLForXlib(const XlibWindowInfo&, ++ std::unique_ptr<const DisplayParams>); } // namespace skwindow #endif @@ -61,12 +65,14 @@ diff -ur skia.org/tools/window/unix/GaneshVulkanWindowContext_unix.h skia/tools/ #include <memory> namespace skwindow { -@@ -15,7 +16,7 @@ - struct DisplayParams; +@@ -15,8 +16,8 @@ + class DisplayParams; struct XlibWindowInfo; --std::unique_ptr<WindowContext> MakeGaneshVulkanForXlib(const XlibWindowInfo&, const DisplayParams&); -+SK_API std::unique_ptr<WindowContext> MakeGaneshVulkanForXlib(const XlibWindowInfo&, const DisplayParams&); +-std::unique_ptr<WindowContext> MakeGaneshVulkanForXlib(const XlibWindowInfo&, +- std::unique_ptr<const DisplayParams>); ++SK_API std::unique_ptr<WindowContext> MakeGaneshVulkanForXlib(const XlibWindowInfo&, ++ std::unique_ptr<const DisplayParams>); } // namespace skwindow #endif @@ -82,12 +88,12 @@ diff -ur skia.org/tools/window/unix/GraphiteDawnVulkanWindowContext_unix.h skia/ namespace skwindow { @@ -15,7 +16,7 @@ - struct DisplayParams; + class DisplayParams; struct XlibWindowInfo; -std::unique_ptr<WindowContext> MakeGraphiteDawnVulkanForXlib(const XlibWindowInfo&, +SK_API std::unique_ptr<WindowContext> MakeGraphiteDawnVulkanForXlib(const XlibWindowInfo&, - const DisplayParams&); + std::unique_ptr<const DisplayParams>); } // namespace skwindow diff -ur skia.org/tools/window/unix/RasterWindowContext_unix.h skia/tools/window/unix/RasterWindowContext_unix.h @@ -101,12 +107,14 @@ diff -ur skia.org/tools/window/unix/RasterWindowContext_unix.h skia/tools/window #include <memory> namespace skwindow { -@@ -15,7 +16,7 @@ - struct DisplayParams; +@@ -15,8 +16,8 @@ + class DisplayParams; struct XlibWindowInfo; --std::unique_ptr<WindowContext> MakeRasterForXlib(const XlibWindowInfo&, const DisplayParams&); -+SK_API std::unique_ptr<WindowContext> MakeRasterForXlib(const XlibWindowInfo&, const DisplayParams&); +-std::unique_ptr<WindowContext> MakeRasterForXlib(const XlibWindowInfo&, +- std::unique_ptr<const DisplayParams>); ++SK_API std::unique_ptr<WindowContext> MakeRasterForXlib(const XlibWindowInfo&, ++ std::unique_ptr<const DisplayParams>); } // namespace skwindow #endif @@ -123,29 +131,29 @@ diff -ur skia.org/tools/window/win/WindowContextFactory_win.h skia/tools/window/ namespace skwindow { class WindowContext; - struct DisplayParams; + class DisplayParams; #ifdef SK_VULKAN --std::unique_ptr<WindowContext> MakeVulkanForWin(HWND, const DisplayParams&); -+SK_API std::unique_ptr<WindowContext> MakeVulkanForWin(HWND, const DisplayParams&); +-std::unique_ptr<WindowContext> MakeVulkanForWin(HWND, std::unique_ptr<const DisplayParams>); ++SK_API std::unique_ptr<WindowContext> MakeVulkanForWin(HWND, std::unique_ptr<const DisplayParams>); #if defined(SK_GRAPHITE) - std::unique_ptr<WindowContext> MakeGraphiteVulkanForWin(HWND, const DisplayParams&); + std::unique_ptr<WindowContext> MakeGraphiteVulkanForWin(HWND, std::unique_ptr<const DisplayParams>); #endif #endif #ifdef SK_GL --std::unique_ptr<WindowContext> MakeGLForWin(HWND, const DisplayParams&); -+SK_API std::unique_ptr<WindowContext> MakeGLForWin(HWND, const DisplayParams&); +-std::unique_ptr<WindowContext> MakeGLForWin(HWND, std::unique_ptr<const DisplayParams>); ++SK_API std::unique_ptr<WindowContext> MakeGLForWin(HWND, std::unique_ptr<const DisplayParams>); #endif #ifdef SK_ANGLE --std::unique_ptr<WindowContext> MakeANGLEForWin(HWND, const DisplayParams&); -+SK_API std::unique_ptr<WindowContext> MakeANGLEForWin(HWND, const DisplayParams&); +-std::unique_ptr<WindowContext> MakeANGLEForWin(HWND, std::unique_ptr<const DisplayParams>); ++SK_API std::unique_ptr<WindowContext> MakeANGLEForWin(HWND, std::unique_ptr<const DisplayParams>); #endif #ifdef SK_DIRECT3D --std::unique_ptr<WindowContext> MakeD3D12ForWin(HWND, const DisplayParams&); -+SK_API std::unique_ptr<WindowContext> MakeD3D12ForWin(HWND, const DisplayParams&); +-std::unique_ptr<WindowContext> MakeD3D12ForWin(HWND, std::unique_ptr<const DisplayParams>); ++SK_API std::unique_ptr<WindowContext> MakeD3D12ForWin(HWND, std::unique_ptr<const DisplayParams>); #endif #ifdef SK_DAWN @@ -153,8 +161,8 @@ diff -ur skia.org/tools/window/win/WindowContextFactory_win.h skia/tools/window/ #endif #endif --std::unique_ptr<WindowContext> MakeRasterForWin(HWND, const DisplayParams&); -+SK_API std::unique_ptr<WindowContext> MakeRasterForWin(HWND, const DisplayParams&); +-std::unique_ptr<WindowContext> MakeRasterForWin(HWND, std::unique_ptr<const DisplayParams>); ++SK_API std::unique_ptr<WindowContext> MakeRasterForWin(HWND, std::unique_ptr<const DisplayParams>); } // namespace skwindow diff --git a/external/skia/share-grcontext.patch.1 b/external/skia/share-grcontext.patch.1 index 20e0db4b863d..40c6bdf9a680 100644 --- a/external/skia/share-grcontext.patch.1 +++ b/external/skia/share-grcontext.patch.1 @@ -74,8 +74,8 @@ diff -ur skia.org/tools/window/MetalWindowContext.h skia/tools/window/MetalWindo diff -ur skia.org/tools/window/MetalWindowContext.mm skia/tools/window/MetalWindowContext.mm --- skia.org/tools/window/MetalWindowContext.mm 2024-10-10 14:11:32.362258108 +0200 +++ skia/tools/window/MetalWindowContext.mm 2024-10-10 14:11:44.341323063 +0200 -@@ -35,50 +35,84 @@ - } +@@ -33,54 +33,88 @@ + , fDrawableHandle(nil) {} void MetalWindowContext::initializeContext() { + fShared = fGlobalShared; @@ -93,10 +93,10 @@ diff -ur skia.org/tools/window/MetalWindowContext.mm skia/tools/window/MetalWind + d->fDevice.reset(MTLCreateSystemDefaultDevice()); + d->fQueue.reset([*d->fDevice newCommandQueue]); - if (fDisplayParams.fMSAASampleCount > 1) { + if (fDisplayParams->msaaSampleCount() > 1) { if (@available(macOS 10.11, iOS 9.0, tvOS 9.0, *)) { -- if (![*fDevice supportsTextureSampleCount:fDisplayParams.fMSAASampleCount]) { -+ if (![*d->fDevice supportsTextureSampleCount:fDisplayParams.fMSAASampleCount]) { +- if (![*fDevice supportsTextureSampleCount:fDisplayParams->msaaSampleCount()]) { ++ if (![*d->fDevice supportsTextureSampleCount:fDisplayParams->msaaSampleCount()]) { + fGlobalShared.reset(); return; } @@ -105,7 +105,7 @@ diff -ur skia.org/tools/window/MetalWindowContext.mm skia/tools/window/MetalWind return; } } -- fSampleCount = fDisplayParams.fMSAASampleCount; +- fSampleCount = fDisplayParams->msaaSampleCount(); - fStencilBits = 8; - - fValid = this->onInitializeContext(); @@ -113,13 +113,17 @@ diff -ur skia.org/tools/window/MetalWindowContext.mm skia/tools/window/MetalWind GrMtlBackendContext backendContext = {}; - backendContext.fDevice.retain((GrMTLHandle)fDevice.get()); - backendContext.fQueue.retain((GrMTLHandle)fQueue.get()); -- fContext = GrDirectContexts::MakeMetal(backendContext, fDisplayParams.fGrContextOptions); -- if (!fContext && fDisplayParams.fMSAASampleCount > 1) { +- fContext = GrDirectContexts::MakeMetal(backendContext, fDisplayParams->grContextOptions()); +- if (!fContext && fDisplayParams->msaaSampleCount() > 1) { + backendContext.fDevice.retain((GrMTLHandle)d->fDevice.get()); + backendContext.fQueue.retain((GrMTLHandle)d->fQueue.get()); -+ d->fContext = GrDirectContexts::MakeMetal(backendContext, fDisplayParams.fGrContextOptions); -+ if (!d->fContext && fDisplayParams.fMSAASampleCount > 1) { - fDisplayParams.fMSAASampleCount /= 2; ++ d->fContext = GrDirectContexts::MakeMetal(backendContext, fDisplayParams->grContextOptions()); ++ if (!d->fContext && fDisplayParams->msaaSampleCount() > 1) { + auto newParams = DisplayParamsBuilder(fDisplayParams.get()); + newParams.msaaSampleCount(fDisplayParams->msaaSampleCount() / 2); + // Don't call this->setDisplayParams because that also calls + // destroyContext() and initializeContext(). + fDisplayParams = newParams.build(); + fGlobalShared.reset(); this->initializeContext(); return; @@ -130,7 +134,7 @@ diff -ur skia.org/tools/window/MetalWindowContext.mm skia/tools/window/MetalWind + + fContext = fShared->fContext; + -+ fSampleCount = fDisplayParams.fMSAASampleCount; ++ fSampleCount = fDisplayParams->msaaSampleCount(); + fStencilBits = 8; + + fValid = this->onInitializeContext(); @@ -199,6 +203,37 @@ diff -ur skia.org/tools/window/MetalWindowContext.mm skia/tools/window/MetalWind +} + } //namespace skwindow::internal +diff -ur skia.org/tools/window/unix/GaneshVulkanWindowContext_unix.cpp.orig skia/tools/window/unix/GaneshVulkanWindowContext_unix.cpp +--- skia.org/tools/window/unix/GaneshVulkanWindowContext_unix.cpp.orig 2025-01-17 09:32:18.346355282 -0700 ++++ skia/tools/window/unix/GaneshVulkanWindowContext_unix.cpp 2025-01-17 09:34:12.368151987 -0700 +@@ -23,7 +23,7 @@ + return nullptr; + } + +- auto createVkSurface = [&info, instProc](VkInstance instance) -> VkSurfaceKHR { ++ internal::VulkanWindowContext::CreateVkSurfaceFn createVkSurface = [&info, instProc](VkInstance instance) -> VkSurfaceKHR { + static PFN_vkCreateXcbSurfaceKHR createXcbSurfaceKHR = nullptr; + if (!createXcbSurfaceKHR) { + createXcbSurfaceKHR = +@@ -47,6 +47,9 @@ + + return surface; + }; ++ // Allow creating just the shared context, without an associated window. ++ if(info.fWindow == 0) ++ createVkSurface = nullptr; + + auto canPresent = [&info, instProc](VkInstance instance, + VkPhysicalDevice physDev, +@@ -68,7 +71,7 @@ + }; + std::unique_ptr<WindowContext> ctx(new internal::VulkanWindowContext( + std::move(displayParams), createVkSurface, canPresent, instProc)); +- if (!ctx->isValid()) { ++ if (!ctx->isValid() && createVkSurface != nullptr) { + return nullptr; + } + return ctx; diff -ur skia.org/tools/window/VulkanWindowContext.cpp skia/tools/window/VulkanWindowContext.cpp --- skia.org/tools/window/VulkanWindowContext.cpp 2024-10-10 14:11:32.362258108 +0200 +++ skia/tools/window/VulkanWindowContext.cpp 2024-10-10 14:15:27.179546520 +0200 @@ -218,7 +253,7 @@ diff -ur skia.org/tools/window/VulkanWindowContext.cpp skia/tools/window/VulkanW namespace skwindow::internal { -@@ -55,32 +59,43 @@ +@@ -55,36 +59,47 @@ } void VulkanWindowContext::initializeContext() { @@ -238,11 +273,17 @@ diff -ur skia.org/tools/window/VulkanWindowContext.cpp skia/tools/window/VulkanW + skgpu::VulkanBackendContext& backendContext = fGlobalShared->backendContext; skgpu::VulkanExtensions extensions; VkPhysicalDeviceFeatures2 features; - if (!sk_gpu_test::CreateVkBackendContext(getInstanceProc, &backendContext, &extensions, -- &features, &fDebugCallback, &fPresentQueueIndex, -+ &d->features, &d->fDebugCallback, &d->fPresentQueueIndex, + if (!sk_gpu_test::CreateVkBackendContext(getInstanceProc, + &backendContext, + &extensions, +- &features, +- &fDebugCallback, +- &fPresentQueueIndex, ++ &d->features, ++ &d->fDebugCallback, ++ &d->fPresentQueueIndex, fCanPresentFn, - fDisplayParams.fCreateProtectedNativeBackend)) { + fDisplayParams->createProtectedNativeBackend())) { + sk_gpu_test::FreeVulkanFeaturesStructs(&d->features); + fGlobalShared.reset(); sk_gpu_test::FreeVulkanFeaturesStructs(&features); @@ -299,7 +340,7 @@ diff -ur skia.org/tools/window/VulkanWindowContext.cpp skia/tools/window/VulkanW - GET_PROC(DestroyInstance); - if (fDebugCallback != VK_NULL_HANDLE) { - GET_PROC(DestroyDebugReportCallbackEXT); -+ d->fContext = GrDirectContexts::MakeVulkan(backendContext, fDisplayParams.fGrContextOptions); ++ d->fContext = GrDirectContexts::MakeVulkan(backendContext, fDisplayParams->grContextOptions()); + + GET_PROC_GLOBAL(DestroyInstance); + GET_DEV_PROC_GLOBAL(DestroyDevice); @@ -333,7 +374,7 @@ diff -ur skia.org/tools/window/VulkanWindowContext.cpp skia/tools/window/VulkanW GET_DEV_PROC(CreateSwapchainKHR); GET_DEV_PROC(DestroySwapchainKHR); GET_DEV_PROC(GetSwapchainImagesKHR); -@@ -121,56 +154,44 @@ +@@ -121,55 +154,43 @@ GET_DEV_PROC(QueuePresentKHR); GET_DEV_PROC(GetDeviceQueue); @@ -347,7 +388,7 @@ diff -ur skia.org/tools/window/VulkanWindowContext.cpp skia/tools/window/VulkanW - skgpu::ThreadSafe::kNo, - /*blockSize=*/std::nullopt); - -- fContext = GrDirectContexts::MakeVulkan(backendContext, fDisplayParams.fGrContextOptions); +- fContext = GrDirectContexts::MakeVulkan(backendContext, fDisplayParams->grContextOptions()); + // No actual window, used just to create the shared GrContext. + if(fCreateVkSurfaceFn == nullptr) + return; @@ -373,7 +414,7 @@ diff -ur skia.org/tools/window/VulkanWindowContext.cpp skia/tools/window/VulkanW return; } - if (!this->createSwapchain(-1, -1, fDisplayParams)) { + if (!this->createSwapchain(-1, -1)) { this->destroyContext(); - sk_gpu_test::FreeVulkanFeaturesStructs(&features); return; @@ -384,8 +425,7 @@ diff -ur skia.org/tools/window/VulkanWindowContext.cpp skia/tools/window/VulkanW - sk_gpu_test::FreeVulkanFeaturesStructs(&features); } - bool VulkanWindowContext::createSwapchain(int width, int height, - const DisplayParams& params) { + bool VulkanWindowContext::createSwapchain(int width, int height) { // check for capabilities VkSurfaceCapabilitiesKHR caps; - VkResult res = fGetPhysicalDeviceSurfaceCapabilitiesKHR(fPhysicalDevice, fSurface, &caps); @@ -489,7 +529,7 @@ diff -ur skia.org/tools/window/VulkanWindowContext.cpp skia/tools/window/VulkanW info.fLevelCount = 1; - info.fCurrentQueueFamily = fPresentQueueIndex; + info.fCurrentQueueFamily = fShared->fPresentQueueIndex; - info.fProtected = skgpu::Protected(fDisplayParams.fCreateProtectedNativeBackend); + info.fProtected = skgpu::Protected(fDisplayParams->createProtectedNativeBackend()); info.fSharingMode = sharingMode; @@ -418,8 +438,8 @@ @@ -611,7 +651,7 @@ diff -ur skia.org/tools/window/VulkanWindowContext.cpp skia/tools/window/VulkanW } if (VK_ERROR_OUT_OF_DATE_KHR == res) { // tear swapchain down and try again - if (!this->createSwapchain(-1, -1, fDisplayParams)) { + if (!this->createSwapchain(-1, -1)) { - GR_VK_CALL(fInterface, DestroySemaphore(fDevice, semaphore, nullptr)); + GR_VK_CALL(fShared->fInterface, DestroySemaphore(fShared->fDevice, semaphore, nullptr)); return nullptr; @@ -673,10 +713,10 @@ diff -ur skia.org/tools/window/VulkanWindowContext.h skia/tools/window/VulkanWin - bool isValid() override { return fDevice != VK_NULL_HANDLE; } + bool isValid() override { return fSurface != VK_NULL_HANDLE; } - void resize(int w, int h) override { - this->createSwapchain(w, h, fDisplayParams); + void resize(int w, int h) override { this->createSwapchain(w, h); } + @@ -45,9 +49,15 @@ - VulkanWindowContext(const DisplayParams&, CreateVkSurfaceFn, CanPresentFn, + CanPresentFn, PFN_vkGetInstanceProcAddr); + static const VkPhysicalDeviceProperties& getPhysDeviceProperties() { @@ -779,8 +819,8 @@ diff -ur skia.org/tools/window/win/VulkanWindowContext_win.cpp skia/tools/window uint32_t queueFamilyIndex) { @@ -66,7 +69,7 @@ - std::unique_ptr<WindowContext> ctx( - new internal::VulkanWindowContext(params, createVkSurface, canPresent, instProc)); + std::unique_ptr<WindowContext> ctx(new internal::VulkanWindowContext( + std::move(params), createVkSurface, canPresent, instProc)); - if (!ctx->isValid()) { + if (!ctx->isValid() && createVkSurface != nullptr) { return nullptr; diff --git a/external/skia/swap-buffers-rect.patch.1 b/external/skia/swap-buffers-rect.patch.1 index 0b02be761a50..292adc70836b 100644 --- a/external/skia/swap-buffers-rect.patch.1 +++ b/external/skia/swap-buffers-rect.patch.1 @@ -26,7 +26,7 @@ diff -ur skia.org/tools/window/unix/RasterWindowContext_unix.cpp skia/tools/wind --- skia.org/tools/window/unix/RasterWindowContext_unix.cpp 2024-10-05 18:16:04.521814026 +0200 +++ skia/tools/window/unix/RasterWindowContext_unix.cpp 2024-10-05 18:18:49.554847490 +0200 @@ -24,7 +24,7 @@ - void setDisplayParams(const DisplayParams& params) override; + void setDisplayParams(std::unique_ptr<const DisplayParams> params) override; protected: - void onSwapBuffers() override; @@ -70,7 +70,7 @@ diff -ur skia.org/tools/window/VulkanWindowContext.h skia/tools/window/VulkanWin --- skia.org/tools/window/VulkanWindowContext.h 2024-10-05 18:16:04.521814026 +0200 +++ skia/tools/window/VulkanWindowContext.h 2024-10-05 18:19:54.713202674 +0200 @@ -70,7 +70,7 @@ - bool createSwapchain(int width, int height, const DisplayParams& params); + bool createSwapchain(int width, int height); bool createBuffers(VkFormat format, VkImageUsageFlags, SkColorType colorType, VkSharingMode); void destroyBuffers(); - void onSwapBuffers() override; @@ -83,7 +83,7 @@ diff -ur skia.org/tools/window/win/RasterWindowContext_win.cpp skia/tools/window --- skia.org/tools/window/win/RasterWindowContext_win.cpp 2024-10-05 18:16:04.521814026 +0200 +++ skia/tools/window/win/RasterWindowContext_win.cpp 2024-10-05 18:20:58.138561375 +0200 @@ -27,7 +27,7 @@ - void setDisplayParams(const DisplayParams& params) override; + void setDisplayParams(std::unique_ptr<const DisplayParams> params) override; protected: - void onSwapBuffers() override; @@ -125,7 +125,7 @@ diff -ur skia.org/tools/window/WindowContext.cpp skia/tools/window/WindowContext + this->onSwapBuffers(rect); } - #if defined(SK_GRAPHITE) + bool WindowContext::supportsGpuTimer() const { diff -ur skia.org/tools/window/WindowContext.h skia/tools/window/WindowContext.h --- skia.org/tools/window/WindowContext.h 2024-10-05 18:16:04.521814026 +0200 +++ skia/tools/window/WindowContext.h 2024-10-05 18:22:12.945998819 +0200 diff --git a/external/skia/windows-raster-surface-no-copies.patch.1 b/external/skia/windows-raster-surface-no-copies.patch.1 index 9c59c252c1f6..1aaf43a2537c 100644 --- a/external/skia/windows-raster-surface-no-copies.patch.1 +++ b/external/skia/windows-raster-surface-no-copies.patch.1 @@ -18,8 +18,8 @@ diff -ur skia.org/tools/window/win/RasterWindowContext_win.cpp skia/tools/window + // Do not use a packed DIB bitmap, SkSurface_Raster::onNewImageSnapshot() does + // a deep copy if it does not own the pixels. - SkImageInfo info = SkImageInfo::Make(w, h, fDisplayParams.fColorType, kPremul_SkAlphaType, - fDisplayParams.fColorSpace); + SkImageInfo info = SkImageInfo::Make( + w, h, fDisplayParams->colorType(), kPremul_SkAlphaType, fDisplayParams->colorSpace()); - fBackbufferSurface = SkSurfaces::WrapPixels(info, pixels, sizeof(uint32_t) * w); + fBackbufferSurface = SkSurfaces::Raster(info); } diff --git a/vcl/skia/osx/gdiimpl.cxx b/vcl/skia/osx/gdiimpl.cxx index 7fa95e8d9fab..8043fb2e2b72 100644 --- a/vcl/skia/osx/gdiimpl.cxx +++ b/vcl/skia/osx/gdiimpl.cxx @@ -72,8 +72,8 @@ void AquaSkiaSalGraphicsImpl::createWindowSurfaceInternal(bool forceRaster) assert(!mWindowContext); assert(!mSurface); SkiaZone zone; - skwindow::DisplayParams displayParams; - displayParams.fColorType = kN32_SkColorType; + skwindow::DisplayParamsBuilder displayParams; + displayParams.colorType(kN32_SkColorType); skwindow::MacWindowInfo macWindow; macWindow.fMainView = mrShared.mpFrame->mpNSView; mScaling = getWindowScaling(); @@ -86,7 +86,7 @@ void AquaSkiaSalGraphicsImpl::createWindowSurfaceInternal(bool forceRaster) mSurface = createSkSurface(GetWidth() * mScaling, GetHeight() * mScaling); break; case RenderMetal: - mWindowContext = skwindow::MakeGaneshMetalForMac(macWindow, displayParams); + mWindowContext = skwindow::MakeGaneshMetalForMac(macWindow, displayParams.build()); // Like with other GPU contexts, create a proxy offscreen surface (see // flushSurfaceToWindowContext()). Here it's additionally needed because // it appears that Metal surfaces cannot be read from, which would break things @@ -411,10 +411,10 @@ namespace { std::unique_ptr<skwindow::WindowContext> createMetalWindowContext(bool /*temporary*/) { - skwindow::DisplayParams displayParams; + skwindow::DisplayParamsBuilder displayParams; skwindow::MacWindowInfo macWindow; macWindow.fMainView = nullptr; - return skwindow::MakeGaneshMetalForMac(macWindow, displayParams); + return skwindow::MakeGaneshMetalForMac(macWindow, displayParams.build()); } } diff --git a/vcl/skia/win/gdiimpl.cxx b/vcl/skia/win/gdiimpl.cxx index 93b4ed75980a..367cfa51af7b 100644 --- a/vcl/skia/win/gdiimpl.cxx +++ b/vcl/skia/win/gdiimpl.cxx @@ -257,18 +257,20 @@ void WinSkiaSalGraphicsImpl::createWindowSurfaceInternal(bool forceRaster) assert(!mWindowContext); assert(!mSurface); SkiaZone zone; - skwindow::DisplayParams displayParams; assert(GetWidth() > 0 && GetHeight() > 0); - displayParams.fSurfaceProps = *surfaceProps(); + skwindow::DisplayParamsBuilder aDispParamBuilder; + aDispParamBuilder.surfaceProps(*surfaceProps()); switch (forceRaster ? RenderRaster : renderMethodToUse()) { case RenderRaster: - mWindowContext = skwindow::MakeRasterForWin(mWinParent.gethWnd(), displayParams); + mWindowContext + = skwindow::MakeRasterForWin(mWinParent.gethWnd(), aDispParamBuilder.build()); if (mWindowContext) mSurface = mWindowContext->getBackbufferSurface(); break; case RenderVulkan: - mWindowContext = skwindow::MakeVulkanForWin(mWinParent.gethWnd(), displayParams); + mWindowContext + = skwindow::MakeVulkanForWin(mWinParent.gethWnd(), aDispParamBuilder.build()); // See flushSurfaceToWindowContext(). if (mWindowContext) mSurface = createSkSurface(GetWidth(), GetHeight()); @@ -567,8 +569,8 @@ namespace std::unique_ptr<skwindow::WindowContext> createVulkanWindowContext(bool /*temporary*/) { SkiaZone zone; - skwindow::DisplayParams displayParams; - return skwindow::MakeVulkanForWin(nullptr, displayParams); + skwindow::DisplayParamsBuilder displayParams; + return skwindow::MakeVulkanForWin(nullptr, displayParams.build()); } } diff --git a/vcl/skia/x11/gdiimpl.cxx b/vcl/skia/x11/gdiimpl.cxx index 34df45fa7d09..103aa7329c6a 100644 --- a/vcl/skia/x11/gdiimpl.cxx +++ b/vcl/skia/x11/gdiimpl.cxx @@ -67,14 +67,14 @@ X11SkiaSalGraphicsImpl::createWindowContext(Display* display, Drawable drawable, RenderMethod renderMethod, bool temporary) { SkiaZone zone; - skwindow::DisplayParams displayParams; - displayParams.fColorType = kN32_SkColorType; + skwindow::DisplayParamsBuilder displayParamsBuilder; + displayParamsBuilder.colorType(kN32_SkColorType); #if defined LINUX // WORKAROUND: VSync causes freezes that can even temporarily freeze the entire desktop. // This happens even with the latest 450.66 drivers despite them claiming a fix for vsync. // https://forums.developer.nvidia.com/t/hangs-freezes-when-vulkan-v-sync-vk-present-mode-fifo-khr-is-enabled/67751 if (getVendor() == DriverBlocklist::VendorNVIDIA) - displayParams.fDisableVsync = true; + displayParamsBuilder.disableVsync(true); #endif skwindow::XlibWindowInfo winInfo; assert(display); @@ -103,17 +103,19 @@ X11SkiaSalGraphicsImpl::createWindowContext(Display* display, Drawable drawable, switch (renderMethod) { case RenderRaster: + { // Make sure we ask for color type that matches the X11 visual. If red mask // is larger value than blue mask, then on little endian this means blue is first. // This should also preferably match SK_R32_SHIFT set in config_skia.h, as that // improves performance, the common setup seems to be BGRA (possibly because of // choosing OpenGL-capable visual). - displayParams.fColorType - = (visual->red_mask > visual->blue_mask ? kBGRA_8888_SkColorType - : kRGBA_8888_SkColorType); - return skwindow::MakeRasterForXlib(winInfo, displayParams); + displayParamsBuilder.colorType(visual->red_mask > visual->blue_mask + ? kBGRA_8888_SkColorType + : kRGBA_8888_SkColorType); + return skwindow::MakeRasterForXlib(winInfo, displayParamsBuilder.build()); + } case RenderVulkan: - return skwindow::MakeGaneshVulkanForXlib(winInfo, displayParams); + return skwindow::MakeGaneshVulkanForXlib(winInfo, displayParamsBuilder.build()); case RenderMetal: abort(); break; commit 6c41e302bd5ae21c2c58cdd54253d9c2075ef01e Author: Noel Grandin <[email protected]> AuthorDate: Tue Mar 11 13:13:31 2025 +0200 Commit: Andras Timar <[email protected]> CommitDate: Fri Jan 30 10:37:23 2026 +0100 update to skia m132 dropping patch that is already upstream Change-Id: I7f0dc4b964499eb1ea6db0b32846ed9328f22ced Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182768 Tested-by: Jenkins Reviewed-by: Noel Grandin <[email protected]> (cherry picked from commit 5284fbe7b4358426f4236157009dfb9e6c69a2f7) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/192893 Tested-by: Jenkins CollaboraOffice <[email protected]> Reviewed-by: Michael Stahl <[email protected]> diff --git a/download.lst b/download.lst index e79578742c16..5e830feb9948 100644 --- a/download.lst +++ b/download.lst @@ -626,8 +626,8 @@ RHINO_TARBALL := rhino-1.7.15.zip # three static lines # so that git cherry-pick # will not run into conflicts -SKIA_SHA256SUM := 17fe9e70ba51a2873b805e2ad7617046d4b8449cde5a4d29cba353c2c1921325 -SKIA_TARBALL := skia-m131-47af57460e62268bdee4ada42e9c37999411da80.tar.xz +SKIA_SHA256SUM := 103f63a8414a506c887cfe788f7653c130df1278b2cc1d1ae6827b2b90e59377 +SKIA_TARBALL := skia-m132-ee9db7d1348f76780fd0184b9b0243d653e36411.tar.xz # three static lines # so that git cherry-pick # will not run into conflicts diff --git a/external/skia/fontconfig-get-typeface.patch.1 b/external/skia/fontconfig-get-typeface.patch.1 index e4f07d6c5bd6..6653b50255b5 100644 --- a/external/skia/fontconfig-get-typeface.patch.1 +++ b/external/skia/fontconfig-get-typeface.patch.1 @@ -1,10 +1,10 @@ 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 -@@ -19,4 +19,9 @@ - */ +@@ -21,4 +21,9 @@ + class SkFontScanner; + SK_API sk_sp<SkFontMgr> SkFontMgr_New_FontConfig(FcConfig* fc, std::unique_ptr<SkFontScanner> scanner); SK_API sk_sp<SkFontMgr> SkFontMgr_New_FontConfig(FcConfig* fc); - +struct _FcPattern; +typedef struct _FcPattern FcPattern; +class SkTypeface; @@ -22,13 +22,13 @@ diff -ur skia.org/src/ports/SkFontMgr_fontconfig.cpp skia/src/ports/SkFontMgr_fo sk_sp<SkTypeface> createTypefaceFromFcPattern(SkAutoFcPattern pattern) const { if (!pattern) { return nullptr; -@@ -966,6 +967,16 @@ - } - }; +@@ -1043,6 +1044,16 @@ + return sk_make_sp<SkFontMgr_fontconfig>(fc, std::move(scanner)); + } -sk_sp<SkFontMgr> SkFontMgr_New_FontConfig(FcConfig* fc) { +SK_API sk_sp<SkFontMgr> SkFontMgr_New_FontConfig(FcConfig* fc) { - return sk_make_sp<SkFontMgr_fontconfig>(fc); + return sk_make_sp<SkFontMgr_fontconfig>(fc, SkFontScanner_Make_FreeType()); } + +SK_API sk_sp<SkTypeface> SkFontMgr_createTypefaceFromFcPattern(const sk_sp<SkFontMgr>& mgr, FcPattern* pattern) commit c8431cc8391347924df793c1d7bbbf3195137d0f Author: Noel Grandin <[email protected]> AuthorDate: Mon Mar 10 15:48:39 2025 +0200 Commit: Andras Timar <[email protected]> CommitDate: Fri Jan 30 10:37:23 2026 +0100 update to skia m131 Change-Id: If300d83a61389d19371d153a399eea10c2d87dd8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182739 Tested-by: Jenkins Reviewed-by: Noel Grandin <[email protected]> (cherry picked from commit 8c74df27aad015eec75c24306904c8c73f3ab4f5) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/192892 Reviewed-by: Michael Stahl <[email protected]> Tested-by: Jenkins CollaboraOffice <[email protected]> diff --git a/download.lst b/download.lst index 9ea907f7438e..e79578742c16 100644 --- a/download.lst +++ b/download.lst @@ -626,8 +626,8 @@ RHINO_TARBALL := rhino-1.7.15.zip # three static lines # so that git cherry-pick # will not run into conflicts -SKIA_SHA256SUM := 53f55303821158b6de9e6b90f1cc3a548611a7e430c1a0883ff159a8db89677d -SKIA_TARBALL := skia-m130-3c64459d5df2fa9794b277f0959ed8a92552bf4c.tar.xz +SKIA_SHA256SUM := 17fe9e70ba51a2873b805e2ad7617046d4b8449cde5a4d29cba353c2c1921325 +SKIA_TARBALL := skia-m131-47af57460e62268bdee4ada42e9c37999411da80.tar.xz # three static lines # so that git cherry-pick # will not run into conflicts diff --git a/external/skia/share-grcontext.patch.1 b/external/skia/share-grcontext.patch.1 index 20f410b48bc9..20e0db4b863d 100644 --- a/external/skia/share-grcontext.patch.1 +++ b/external/skia/share-grcontext.patch.1 @@ -793,7 +793,7 @@ diff -ur skia.org/tools/window/WindowContext.h skia/tools/window/WindowContext.h #include "include/core/SkRefCnt.h" #include "include/core/SkSurfaceProps.h" #include "include/gpu/ganesh/GrTypes.h" -+#include "include/gpu/GrDirectContext.h" ++#include "include/gpu/ganesh/GrDirectContext.h" #include "tools/window/DisplayParams.h" -class GrDirectContext; diff --git a/vcl/skia/SkiaHelper.cxx b/vcl/skia/SkiaHelper.cxx index b8e9f7a89373..fdff5e464380 100644 --- a/vcl/skia/SkiaHelper.cxx +++ b/vcl/skia/SkiaHelper.cxx @@ -51,7 +51,7 @@ bool isAlphaMaskBlendingEnabled() { return false; } #include <SkPaint.h> #include <SkSurface.h> #include <SkGraphics.h> -#include <GrDirectContext.h> +#include <ganesh/GrDirectContext.h> #include <SkRuntimeEffect.h> #include <SkStream.h> #include <SkTileMode.h> diff --git a/vcl/skia/gdiimpl.cxx b/vcl/skia/gdiimpl.cxx index f8a0ed1bf693..de46b67ef073 100644 --- a/vcl/skia/gdiimpl.cxx +++ b/vcl/skia/gdiimpl.cxx @@ -37,7 +37,7 @@ #include <SkRegion.h> #include <SkPathEffect.h> #include <SkDashPathEffect.h> -#include <GrBackendSurface.h> +#include <ganesh/GrBackendSurface.h> #include <SkTextBlob.h> #include <SkRSXform.h> commit dfe2db3ac0678e4d21e1fdebaf0ab7eed0e44c1b Author: Xisco Fauli <[email protected]> AuthorDate: Mon Mar 31 10:29:29 2025 +0200 Commit: Andras Timar <[email protected]> CommitDate: Fri Jan 30 10:36:39 2026 +0100 postgresql: upgrade to 15.15 According to https://www.postgresql.org/support/versioning/ the last release of branch 14 is on November 12, 2026 Upgrade master branch to branch 15 to avoid reaching the EOL Downloaded from https://ftp.postgresql.org/pub/source/v15.15/postgresql-15.15.tar.bz2 Change-Id: Iff451dcc6f1f4dfaa763869056e610eee4a946d7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193978 Tested-by: Jenkins Reviewed-by: Xisco Fauli <[email protected]> (cherry picked from commit 1b89a45baa7214977350ea6558b2c2f3af6c4a1a) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196908 Tested-by: Jenkins CollaboraOffice <[email protected]> Reviewed-by: Michael Stahl <[email protected]> diff --git a/download.lst b/download.lst index ca01683ca173..9ea907f7438e 100644 --- a/download.lst +++ b/download.lst @@ -585,8 +585,8 @@ POPPLER_DATA_TARBALL := poppler-data-0.4.12.tar.gz # three static lines # so that git cherry-pick # will not run into conflicts -POSTGRESQL_SHA256SUM := 727e9e334bc1a31940df808259f69fe47a59f6d42174b22ae62d67fe7a01ad80 -POSTGRESQL_TARBALL := postgresql-14.19.tar.bz2 +POSTGRESQL_SHA256SUM := 5753aaeb8b09cbf61016f78aa69bf5cbdf01b43263f010cbf168c82896213aaa +POSTGRESQL_TARBALL := postgresql-15.15.tar.bz2 # three static lines # so that git cherry-pick # will not run into conflicts commit 4f4021a0de8f1820ad0e4f7911e08183bcd2c758 Author: Michael Stahl <[email protected]> AuthorDate: Tue Jan 13 11:07:32 2026 +0100 Commit: Andras Timar <[email protected]> CommitDate: Fri Jan 30 10:36:09 2026 +0100 libpng: upgrade to release 1.6.54 Fixes CVE-2026-22695 CVE-2026-22801 Change-Id: Id7c4c4d2ffa583ca1eeec23720a4ce74b819305f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/197183 Reviewed-by: Stephan Bergmann <[email protected]> Tested-by: Jenkins CollaboraOffice <[email protected]> diff --git a/download.lst b/download.lst index d4ca78118c39..ca01683ca173 100644 --- a/download.lst +++ b/download.lst @@ -568,8 +568,8 @@ PIXMAN_TARBALL := pixman-0.42.2.tar.gz # three static lines # so that git cherry-pick # will not run into conflicts -LIBPNG_SHA256SUM := 1d3fb8ccc2932d04aa3663e22ef5ef490244370f4e568d7850165068778d98d4 -LIBPNG_TARBALL := libpng-1.6.53.tar.xz +LIBPNG_SHA256SUM := 01c9d8a303c941ec2c511c14312a3b1d36cedb41e2f5168ccdaa85d53b887805 +LIBPNG_TARBALL := libpng-1.6.54.tar.xz # three static lines # so that git cherry-pick # will not run into conflicts commit 7c10988e0122a64524a59974bc81e4b86c6aee97 Author: Xisco Fauli <[email protected]> AuthorDate: Tue Dec 9 00:20:52 2025 +0100 Commit: Andras Timar <[email protected]> CommitDate: Fri Jan 30 10:36:08 2026 +0100 libpng: upgrade to 1.6.53 Downloaded from http://prdownloads.sourceforge.net/libpng/libpng-1.6.53.tar.xz?download Change-Id: I09a817614658880cf1d4e0a162597b2d675bc4e0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195245 Tested-by: Jenkins Reviewed-by: Xisco Fauli <[email protected]> (cherry picked from commit 50b39ceb42dda3234e63eebf8d3baedac58ca0f6) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/197182 Tested-by: Jenkins CollaboraOffice <[email protected]> Reviewed-by: Michael Stahl <[email protected]> diff --git a/download.lst b/download.lst index bba61ea6e0ec..d4ca78118c39 100644 --- a/download.lst +++ b/download.lst @@ -568,8 +568,8 @@ PIXMAN_TARBALL := pixman-0.42.2.tar.gz # three static lines # so that git cherry-pick # will not run into conflicts -LIBPNG_SHA256SUM := 36bd726228ec93a3b6c22fdb49e94a67b16f2fe9b39b78b7cb65772966661ccc -LIBPNG_TARBALL := libpng-1.6.52.tar.xz +LIBPNG_SHA256SUM := 1d3fb8ccc2932d04aa3663e22ef5ef490244370f4e568d7850165068778d98d4 +LIBPNG_TARBALL := libpng-1.6.53.tar.xz # three static lines # so that git cherry-pick # will not run into conflicts commit 424846d0c01238ac7fa44e962bcc12a34f35c0cc Author: Michael Stahl <[email protected]> AuthorDate: Thu Dec 4 10:25:37 2025 +0100 Commit: Andras Timar <[email protected]> CommitDate: Fri Jan 30 10:36:08 2026 +0100 libpng: upgrade to release 1.6.52 Fixes CVE-2025-66293 Change-Id: I1f0aefccf2b80d14e70b423381c121a97e510045 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194979 Reviewed-by: Stephan Bergmann <[email protected]> Tested-by: Jenkins CollaboraOffice <[email protected]> diff --git a/download.lst b/download.lst index 197f27c189f6..bba61ea6e0ec 100644 --- a/download.lst +++ b/download.lst @@ -568,8 +568,8 @@ PIXMAN_TARBALL := pixman-0.42.2.tar.gz # three static lines # so that git cherry-pick # will not run into conflicts -LIBPNG_SHA256SUM := a050a892d3b4a7bb010c3a95c7301e49656d72a64f1fc709a90b8aded192bed2 -LIBPNG_TARBALL := libpng-1.6.51.tar.xz +LIBPNG_SHA256SUM := 36bd726228ec93a3b6c22fdb49e94a67b16f2fe9b39b78b7cb65772966661ccc +LIBPNG_TARBALL := libpng-1.6.52.tar.xz # three static lines # so that git cherry-pick # will not run into conflicts commit c7c7f8316412ce6248ef3cc0307d12373ef938ee Author: Michael Stahl <[email protected]> AuthorDate: Mon Nov 24 10:07:38 2025 +0100 Commit: Andras Timar <[email protected]> CommitDate: Fri Jan 30 10:36:08 2026 +0100 libpng: upgrade to release 1.6.51 Fixes CVE-2025-64505, CVE-2025-64506, CVE-2025-64720, CVE-2025-65018 Change-Id: Id58827859de899aea020f43835f2b37bf262ed33 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194421 Reviewed-by: Stephan Bergmann <[email protected]> Tested-by: Jenkins CollaboraOffice <[email protected]> diff --git a/download.lst b/download.lst index a2d578d6256a..197f27c189f6 100644 --- a/download.lst +++ b/download.lst @@ -568,8 +568,8 @@ PIXMAN_TARBALL := pixman-0.42.2.tar.gz # three static lines # so that git cherry-pick # will not run into conflicts -LIBPNG_SHA256SUM := 4df396518620a7aa3651443e87d1b2862e4e88cad135a8b93423e01706232307 -LIBPNG_TARBALL := libpng-1.6.50.tar.xz +LIBPNG_SHA256SUM := a050a892d3b4a7bb010c3a95c7301e49656d72a64f1fc709a90b8aded192bed2 +LIBPNG_TARBALL := libpng-1.6.51.tar.xz # three static lines # so that git cherry-pick # will not run into conflicts commit 5d22b7de5a727973258d6689354d8591950ea8aa Author: Miklos Vajna <[email protected]> AuthorDate: Fri Feb 14 13:46:09 2025 +0100 Commit: Andras Timar <[email protected]> CommitDate: Fri Jan 30 10:35:28 2026 +0100 configure: fix --disable-skia build of pdfium A problem since commit 6007fbef5c2e4a0b80a4c0031ff36117aa41e63f (Update pdfium to 7012, 2025-02-13), it's one thing that pdfium needs to be built with clang-cl on Windows (similar to Skia), but our configure didn't configure clang-cl when skia was off. So do it when either skia or pdfium is enabled. Reported at <https://lists.freedesktop.org/archives/libreoffice/2025-February/093003.html>. (cherry picked from commit 1f725b2c2afae70d7886b89a2936ab9ced53b599) Change-Id: I261b98511b664182d46a4a11ecbb40ad91663c41 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182918 Reviewed-by: Miklos Vajna <[email protected]> Tested-by: Jenkins CollaboraOffice <[email protected]> diff --git a/configure.ac b/configure.ac index 44f5fbf6721c..d4cff85d9716 100644 --- a/configure.ac +++ b/configure.ac @@ -12847,7 +12847,7 @@ LO_CLANG_CXXFLAGS_INTRINSICS_FMA= LO_CLANG_VERSION= HAVE_LO_CLANG_DLLEXPORTINLINES= -if test "$ENABLE_SKIA" = TRUE -a "$COM_IS_CLANG" != TRUE; then +if test \( "$ENABLE_SKIA" = TRUE -o "$ENABLE_PDFIUM" = TRUE \) -a "$COM_IS_CLANG" != TRUE; then if test -n "$LO_CLANG_CC" -a -n "$LO_CLANG_CXX"; then AC_MSG_CHECKING([for Clang]) AC_MSG_RESULT([$LO_CLANG_CC / $LO_CLANG_CXX]) commit 7e4b418bb7ff9a2d0db56335df121cc31383d66d Author: Miklos Vajna <[email protected]> AuthorDate: Thu Feb 13 13:45:38 2025 +0100 Commit: Andras Timar <[email protected]> CommitDate: Fri Jan 30 10:35:28 2026 +0100 Update pdfium to 7012 Windows has to switch to clang-cl, see <https://groups.google.com/g/pdfium/c/d7KZi_wePHs/m/7eZyhYhVDAAJ> "Does anyone still use MSVC?", similar to what skia does already. This also allows reverting the CppunitTest_vcl_pdfexport and CppunitTest_vcl_pdfexport2 test tweaks from commit 59c5a7d5c7502770896491a59c73de3c627afcc5 (Update pdfium to 6764, 2024-10-14). (cherry picked from commit 6007fbef5c2e4a0b80a4c0031ff36117aa41e63f) Change-Id: I14052c74c551c4412a13a77eac6284455365d888 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182915 Tested-by: Jenkins CollaboraOffice <[email protected]> Reviewed-by: Miklos Vajna <[email protected]> diff --git a/download.lst b/download.lst index 4c20f36c48a5..a2d578d6256a 100644 --- a/download.lst +++ b/download.lst @@ -558,8 +558,8 @@ PAGEMAKER_TARBALL := libpagemaker-0.0.4.tar.xz # three static lines # so that git cherry-pick # will not run into conflicts -PDFIUM_SHA256SUM := 03aabafd8bed319f87aa96871264dc599879e482a0923450070dac987c8a671e -PDFIUM_TARBALL := pdfium-6887.tar.bz2 +PDFIUM_SHA256SUM := e647ca4fcc2c91d9dca717452e1b1be1ab6155ac4977dca716041652c7b10bdd +PDFIUM_TARBALL := pdfium-7012.tar.bz2 # three static lines # so that git cherry-pick # will not run into conflicts diff --git a/external/pdfium/Library_pdfium.mk b/external/pdfium/Library_pdfium.mk index 326575ac46c2..748f6df053d9 100644 --- a/external/pdfium/Library_pdfium.mk +++ b/external/pdfium/Library_pdfium.mk @@ -13,7 +13,17 @@ $(eval $(call gb_Library_use_unpacked,pdfium,pdfium)) $(eval $(call gb_Library_set_warnings_disabled,pdfium)) -$(eval $(call gb_Library_set_precompiled_header,pdfium,external/pdfium/inc/pch/precompiled_pdfium)) +$(eval $(call gb_Library_use_clang,pdfium)) +#This currently results in all sorts of compile complaints +#$(eval $(call gb_Library_set_precompiled_header,pdfium,external/pdfium/inc/pch/precompiled_pdfium)) +# The clang-cl provided with at least VS 2019 16.11.28 is known-broken with -std:c++20: +ifneq ($(filter -std:c++20,$(CXXFLAGS_CXX11)),) +ifeq ($(LO_CLANG_VERSION),120000) +$(eval $(call gb_Library_add_cxxflags,pdfium, \ + -std:c++17 \ +)) +endif +endif $(eval $(call gb_Library_set_include,pdfium,\ -I$(gb_UnpackedTarball_workdir)/pdfium \ diff --git a/external/pdfium/build.patch.1 b/external/pdfium/build.patch.1 index 6fe32f6b76ca..144d1748eae9 100644 --- a/external/pdfium/build.patch.1 +++ b/external/pdfium/build.patch.1 @@ -77,3 +77,15 @@ index 8026a75d5..34c20d62f 100644 static_assert(kModeKeyForMode.size() == FPDF_ANNOT_APPEARANCEMODE_COUNT, "length of kModeKeyForMode should be equal to " "FPDF_ANNOT_APPEARANCEMODE_COUNT"); +--- a/core/fxcrt/fx_memory_wrappers.h 2025-02-13 13:38:35.761778900 +0100 ++++ b/core/fxcrt/fx_memory_wrappers.h 2025-02-13 13:38:48.136654800 +0100 +@@ -33,9 +33,6 @@ + template <class T, void* Alloc(size_t, size_t), void Free(void*)> + struct FxPartitionAllocAllocator { + public: +- static_assert(std::is_arithmetic<T>::value || std::is_enum<T>::value || +- IsFXDataPartitionException<T>::value, +- "Only numeric types allowed in this partition"); + + using value_type = T; + using pointer = T*; diff --git a/vcl/qa/cppunit/pdfexport/pdfexport.cxx b/vcl/qa/cppunit/pdfexport/pdfexport.cxx index 58232d8fbc65..975b3ae743f4 100644 --- a/vcl/qa/cppunit/pdfexport/pdfexport.cxx +++ b/vcl/qa/cppunit/pdfexport/pdfexport.cxx @@ -1414,7 +1414,7 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest, testTdf154549) int nChars = pPdfTextPage->countChars(); - CPPUNIT_ASSERT_EQUAL(1, nChars); + CPPUNIT_ASSERT_EQUAL(3, nChars); std::vector<sal_uInt32> aChars(nChars); for (int i = 0; i < nChars; i++) @@ -1424,7 +1424,7 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest, testTdf154549) // Without the fix in place, this test would have failed with // - Expected: ִبي // - Actual : بִي - CPPUNIT_ASSERT_EQUAL(u"\u064a"_ustr, aActualText); + CPPUNIT_ASSERT_EQUAL(u"\u05B4\u0628\u064A"_ustr, aActualText); #endif } diff --git a/vcl/qa/cppunit/pdfexport/pdfexport2.cxx b/vcl/qa/cppunit/pdfexport/pdfexport2.cxx index fa07b33e549b..875721c87234 100644 --- a/vcl/qa/cppunit/pdfexport/pdfexport2.cxx +++ b/vcl/qa/cppunit/pdfexport/pdfexport2.cxx @@ -5217,17 +5217,17 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf71956) CPPUNIT_ASSERT_EQUAL(12, nTextObjectCount); CPPUNIT_ASSERT_EQUAL(u"ه"_ustr, aText[0].trim()); - CPPUNIT_ASSERT_EQUAL(u"\u0670\u0020\u0644\u0644"_ustr, aText[1].trim()); + CPPUNIT_ASSERT_EQUAL(u"\u064e\u0651\u0670ل"_ustr, aText[1].trim()); CPPUNIT_ASSERT_EQUAL(u""_ustr, aText[2].trim()); CPPUNIT_ASSERT_EQUAL(u""_ustr, aText[3].trim()); CPPUNIT_ASSERT_EQUAL(u""_ustr, aText[4].trim()); CPPUNIT_ASSERT_EQUAL(u"ل"_ustr, aText[5].trim()); - CPPUNIT_ASSERT_EQUAL(u""_ustr, aText[6].trim()); - CPPUNIT_ASSERT_EQUAL(u"\u0647"_ustr, aText[7].trim()); + CPPUNIT_ASSERT_EQUAL(u"ل"_ustr, aText[6].trim()); + CPPUNIT_ASSERT_EQUAL(u"\u064e\u0651\u0670ل"_ustr, aText[7].trim()); CPPUNIT_ASSERT_EQUAL(u""_ustr, aText[8].trim()); CPPUNIT_ASSERT_EQUAL(u""_ustr, aText[9].trim()); CPPUNIT_ASSERT_EQUAL(u""_ustr, aText[10].trim()); - CPPUNIT_ASSERT_EQUAL(u""_ustr, aText[11].trim()); + CPPUNIT_ASSERT_EQUAL(u"ه"_ustr, aText[11].trim()); // Verify that the corresponding text segments are positioned roughly equally auto fnEqualPos commit 6f415526e36340a182bca7de85e16b325edf371d Author: Miklos Vajna <[email protected]> AuthorDate: Wed Dec 11 11:11:05 2024 +0100 Commit: Andras Timar <[email protected]> CommitDate: Fri Jan 30 10:35:28 2026 +0100 Update pdfium to 6887 CPWL_Dash-switch-to-universal-init.patch.1 is upstreamed, remove it. (cherry picked from commit 39f35f2ed2277931da36b6e3d2516c2355296fc9) Conflicts: external/pdfium/UnpackedTarball_pdfium.mk Change-Id: I4ff68f15d58b853896626b0458d3817f64fbc32f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182907 Tested-by: Jenkins CollaboraOffice <[email protected]> Reviewed-by: Miklos Vajna <[email protected]> diff --git a/download.lst b/download.lst index 5b066e626fd9..4c20f36c48a5 100644 --- a/download.lst +++ b/download.lst @@ -558,8 +558,8 @@ PAGEMAKER_TARBALL := libpagemaker-0.0.4.tar.xz # three static lines # so that git cherry-pick # will not run into conflicts -PDFIUM_SHA256SUM := 59d5df3b38312b069d96a8de9d4f8d7f44a29835c9dc82bd792ea02be86c4e49 -PDFIUM_TARBALL := pdfium-6764.tar.bz2 +PDFIUM_SHA256SUM := 03aabafd8bed319f87aa96871264dc599879e482a0923450070dac987c8a671e +PDFIUM_TARBALL := pdfium-6887.tar.bz2 # three static lines # so that git cherry-pick # will not run into conflicts diff --git a/external/pdfium/CPWL_Dash-switch-to-universal-init.patch.1 b/external/pdfium/CPWL_Dash-switch-to-universal-init.patch.1 deleted file mode 100644 index 9a82052c5013..000000000000 --- a/external/pdfium/CPWL_Dash-switch-to-universal-init.patch.1 +++ /dev/null @@ -1,150 +0,0 @@ -From 4467963f67102181c41a1579e627a9748b954d74 Mon Sep 17 00:00:00 2001 -From: Miklos Vajna <[email protected]> -Date: Fri, 18 Oct 2024 22:08:25 +0000 -Subject: [PATCH] CPWL_Dash: switch to universal init - -E.g. clang-15 in -std=c++20 mode fails without this with the following -error message: - -pdfium/fpdfsdk/pwl/cpwl_wnd.cpp:43:7: error: no matching constructor for initialization of 'CPWL_Dash' - sDash(3, 0, 0) {} - ^ ~~~~~~~ -pdfium/fpdfsdk/pwl/cpwl_wnd.h:61:8: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 3 were provided -struct CPWL_Dash { - ^ -pdfium/fpdfsdk/pwl/cpwl_wnd.h:61:8: note: candidate constructor (the implicit move constructor) not viable: requires 1 argument, but 3 were provided -pdfium/fpdfsdk/pwl/cpwl_wnd.h:61:8: note: candidate constructor (the implicit default constructor) not viable: requires 0 arguments, but 3 were provided -1 error generated. - -Switching to universal init restores the ability to build with this -compiler, as it was working in the past. - -Change-Id: I48b2079b87cce9bc4e2ec7b813e21ea5bcb786d3 -Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/125170 -Reviewed-by: Tom Sepez <[email protected]> -Commit-Queue: Tom Sepez <[email protected]> -Reviewed-by: Lei Zhang <[email protected]> -Reviewed-by: Tom Sepez <[email protected]> ---- - fpdfsdk/cpdfsdk_appstream.cpp | 20 ++++++++++---------- - fpdfsdk/formfiller/cffl_formfield.cpp | 2 +- - fpdfsdk/pwl/cpwl_wnd.cpp | 2 +- - 3 files changed, 12 insertions(+), 12 deletions(-) - -diff --git a/fpdfsdk/cpdfsdk_appstream.cpp b/fpdfsdk/cpdfsdk_appstream.cpp -index 3a9bfabef..b7b06cae8 100644 ---- a/fpdfsdk/cpdfsdk_appstream.cpp -+++ b/fpdfsdk/cpdfsdk_appstream.cpp -@@ -1055,7 +1055,7 @@ ByteString GetDropButtonAppStream(const CFX_FloatRect& rcBBox) { - rcBBox, 2, CFX_Color(CFX_Color::Type::kGray, 0), - CFX_Color(CFX_Color::Type::kGray, 1), - CFX_Color(CFX_Color::Type::kGray, 0.5), BorderStyle::kBeveled, -- CPWL_Dash(3, 0, 0)); -+ CPWL_Dash{3, 0, 0}); - } - - CFX_PointF ptCenter = CFX_PointF((rcBBox.left + rcBBox.right) / 2, -@@ -1162,14 +1162,14 @@ void CPDFSDK_AppStream::SetAsPushButton() { - CFX_Color crBorder = pControl->GetOriginalBorderColor(); - - float fBorderWidth = static_cast<float>(widget_->GetBorderWidth()); -- CPWL_Dash dsBorder(3, 0, 0); -+ CPWL_Dash dsBorder{3, 0, 0}; - CFX_Color crLeftTop; - CFX_Color crRightBottom; - - BorderStyle nBorderStyle = widget_->GetBorderStyle(); - switch (nBorderStyle) { - case BorderStyle::kDash: -- dsBorder = CPWL_Dash(3, 3, 0); -+ dsBorder = CPWL_Dash{3, 3, 0}; - break; - case BorderStyle::kBeveled: - fBorderWidth *= 2; -@@ -1313,14 +1313,14 @@ void CPDFSDK_AppStream::SetAsCheckBox() { - CFX_Color crBackground = pControl->GetOriginalBackgroundColor(); - CFX_Color crBorder = pControl->GetOriginalBorderColor(); - float fBorderWidth = static_cast<float>(widget_->GetBorderWidth()); -- CPWL_Dash dsBorder(3, 0, 0); -+ CPWL_Dash dsBorder{3, 0, 0}; - CFX_Color crLeftTop; - CFX_Color crRightBottom; - - BorderStyle nBorderStyle = widget_->GetBorderStyle(); - switch (nBorderStyle) { - case BorderStyle::kDash: -- dsBorder = CPWL_Dash(3, 3, 0); -+ dsBorder = CPWL_Dash{3, 3, 0}; - break; - case BorderStyle::kBeveled: - fBorderWidth *= 2; -@@ -1392,14 +1392,14 @@ void CPDFSDK_AppStream::SetAsRadioButton() { - CFX_Color crBackground = pControl->GetOriginalBackgroundColor(); - CFX_Color crBorder = pControl->GetOriginalBorderColor(); - float fBorderWidth = static_cast<float>(widget_->GetBorderWidth()); -- CPWL_Dash dsBorder(3, 0, 0); -+ CPWL_Dash dsBorder{3, 0, 0}; - CFX_Color crLeftTop; - CFX_Color crRightBottom; - - BorderStyle nBorderStyle = widget_->GetBorderStyle(); - switch (nBorderStyle) { - case BorderStyle::kDash: -- dsBorder = CPWL_Dash(3, 3, 0); -+ dsBorder = CPWL_Dash{3, 3, 0}; - break; - case BorderStyle::kBeveled: - fBorderWidth *= 2; -@@ -1769,7 +1769,7 @@ void CPDFSDK_AppStream::SetAsTextField(std::optional<WideString> sValue) { - ByteString sColor = - GetStrokeColorAppStream(widget_->GetBorderPWLColor()); - if (sColor.GetLength() > 0) { -- CPWL_Dash dsBorder = CPWL_Dash(3, 3, 0); -+ CPWL_Dash dsBorder = CPWL_Dash{3, 3, 0}; - AutoClosedQCommand q(&sLines); - sLines << widget_->GetBorderWidth() << " " << kSetLineWidthOperator - << " " -@@ -1876,12 +1876,12 @@ ByteString CPDFSDK_AppStream::GetBorderAppStream() const { - CFX_Color crRightBottom; - - float fBorderWidth = static_cast<float>(widget_->GetBorderWidth()); -- CPWL_Dash dsBorder(3, 0, 0); -+ CPWL_Dash dsBorder{3, 0, 0}; - - BorderStyle nBorderStyle = widget_->GetBorderStyle(); - switch (nBorderStyle) { - case BorderStyle::kDash: -- dsBorder = CPWL_Dash(3, 3, 0); -+ dsBorder = CPWL_Dash{3, 3, 0}; - break; - case BorderStyle::kBeveled: - fBorderWidth *= 2; -diff --git a/fpdfsdk/formfiller/cffl_formfield.cpp b/fpdfsdk/formfiller/cffl_formfield.cpp -index 49edfdaed..bba78eda6 100644 ---- a/fpdfsdk/formfiller/cffl_formfield.cpp -+++ b/fpdfsdk/formfiller/cffl_formfield.cpp -@@ -336,7 +336,7 @@ CPWL_Wnd::CreateParams CFFL_FormField::GetCreateParam() { - cp.nBorderStyle = m_pWidget->GetBorderStyle(); - switch (cp.nBorderStyle) { - case BorderStyle::kDash: -- cp.sDash = CPWL_Dash(3, 3, 0); -+ cp.sDash = CPWL_Dash{3, 3, 0}; - break; - case BorderStyle::kBeveled: - case BorderStyle::kInset: -diff --git a/fpdfsdk/pwl/cpwl_wnd.cpp b/fpdfsdk/pwl/cpwl_wnd.cpp -index 502568709..88b0cf03e 100644 ---- a/fpdfsdk/pwl/cpwl_wnd.cpp -+++ b/fpdfsdk/pwl/cpwl_wnd.cpp -@@ -40,7 +40,7 @@ CPWL_Wnd::CreateParams::CreateParams(CFX_Timer::HandlerIface* timer_handler, - pFillerNotify(filler_notify), - pProvider(provider), - fFontSize(kDefaultFontSize), -- sDash(3, 0, 0) {} -+ sDash{3, 0, 0} {} - - CPWL_Wnd::CreateParams::CreateParams(const CreateParams& other) = default; - --- -2.43.0 - diff --git a/external/pdfium/Library_pdfium.mk b/external/pdfium/Library_pdfium.mk index 0f88cb6b3abc..326575ac46c2 100644 --- a/external/pdfium/Library_pdfium.mk +++ b/external/pdfium/Library_pdfium.mk @@ -379,10 +379,13 @@ $(eval $(call gb_Library_add_generated_exception_objects,pdfium,\ UnpackedTarball/pdfium/core/fxcodec/flate/flatemodule \ UnpackedTarball/pdfium/core/fxcodec/icc/icc_transform \ UnpackedTarball/pdfium/core/fxcodec/jbig2/jbig2_decoder \ - UnpackedTarball/pdfium/core/fxcodec/jpeg/jpeg_common \ UnpackedTarball/pdfium/core/fxcodec/data_and_bytes_consumed \ )) +$(eval $(call gb_Library_add_generated_cobjects,pdfium,\ + UnpackedTarball/pdfium/core/fxcodec/jpeg/jpeg_common \ +)) + # fxcrt $(eval $(call gb_Library_add_generated_exception_objects,pdfium,\ UnpackedTarball/pdfium/core/fxcrt/cfx_memorystream \ diff --git a/external/pdfium/UnpackedTarball_pdfium.mk b/external/pdfium/UnpackedTarball_pdfium.mk index 4137fff52a72..6c5bce9b2e29 100644 --- a/external/pdfium/UnpackedTarball_pdfium.mk +++ b/external/pdfium/UnpackedTarball_pdfium.mk @@ -12,8 +12,6 @@ pdfium_patches := pdfium_patches += build.patch.1 # Avoids Windows 8 build dependency. pdfium_patches += windows7.patch.1 -# https://pdfium-review.googlesource.com/c/pdfium/+/125170 -pdfium_patches += CPWL_Dash-switch-to-universal-init.patch.1 pdfium_patches += c++20-comparison.patch pdfium_patches += constexpr-template.patch diff --git a/external/pdfium/inc/pch/precompiled_pdfium.hxx b/external/pdfium/inc/pch/precompiled_pdfium.hxx index b03d216545af..be581129aa12 100644 --- a/external/pdfium/inc/pch/precompiled_pdfium.hxx +++ b/external/pdfium/inc/pch/precompiled_pdfium.hxx @@ -51,7 +51,6 @@ #include <ostream> #include <queue> #include <set> -#include <setjmp.h> #include <sstream> #include <stack> #include <stddef.h> commit 99a8a860f7b6e421a622325ae380d6ea690d55a6 Author: Miklos Vajna <[email protected]> AuthorDate: Tue Dec 10 15:23:17 2024 +0100 Commit: Andras Timar <[email protected]> CommitDate: Fri Jan 30 10:35:28 2026 +0100 pdfium: mark part of build.patch.1 as upstreamed So it'll be easier to drop it the next time pdfium is updated. (cherry picked from commit 904b956622b1581517c938ed8dacac70f7c6242c) Conflicts: external/pdfium/UnpackedTarball_pdfium.mk Change-Id: Iebeb892f62ee8002460142adf28f75666c92c2e4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182866 Reviewed-by: Miklos Vajna <[email protected]> Tested-by: Jenkins CollaboraOffice <[email protected]> diff --git a/external/pdfium/CPWL_Dash-switch-to-universal-init.patch.1 b/external/pdfium/CPWL_Dash-switch-to-universal-init.patch.1 new file mode 100644 index 000000000000..9a82052c5013 --- /dev/null +++ b/external/pdfium/CPWL_Dash-switch-to-universal-init.patch.1 @@ -0,0 +1,150 @@ +From 4467963f67102181c41a1579e627a9748b954d74 Mon Sep 17 00:00:00 2001 +From: Miklos Vajna <[email protected]> +Date: Fri, 18 Oct 2024 22:08:25 +0000 +Subject: [PATCH] CPWL_Dash: switch to universal init + +E.g. clang-15 in -std=c++20 mode fails without this with the following +error message: + +pdfium/fpdfsdk/pwl/cpwl_wnd.cpp:43:7: error: no matching constructor for initialization of 'CPWL_Dash' + sDash(3, 0, 0) {} + ^ ~~~~~~~ +pdfium/fpdfsdk/pwl/cpwl_wnd.h:61:8: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 3 were provided +struct CPWL_Dash { + ^ +pdfium/fpdfsdk/pwl/cpwl_wnd.h:61:8: note: candidate constructor (the implicit move constructor) not viable: requires 1 argument, but 3 were provided +pdfium/fpdfsdk/pwl/cpwl_wnd.h:61:8: note: candidate constructor (the implicit default constructor) not viable: requires 0 arguments, but 3 were provided +1 error generated. + +Switching to universal init restores the ability to build with this +compiler, as it was working in the past. + +Change-Id: I48b2079b87cce9bc4e2ec7b813e21ea5bcb786d3 +Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/125170 +Reviewed-by: Tom Sepez <[email protected]> +Commit-Queue: Tom Sepez <[email protected]> +Reviewed-by: Lei Zhang <[email protected]> +Reviewed-by: Tom Sepez <[email protected]> +--- + fpdfsdk/cpdfsdk_appstream.cpp | 20 ++++++++++---------- + fpdfsdk/formfiller/cffl_formfield.cpp | 2 +- + fpdfsdk/pwl/cpwl_wnd.cpp | 2 +- + 3 files changed, 12 insertions(+), 12 deletions(-) + +diff --git a/fpdfsdk/cpdfsdk_appstream.cpp b/fpdfsdk/cpdfsdk_appstream.cpp +index 3a9bfabef..b7b06cae8 100644 +--- a/fpdfsdk/cpdfsdk_appstream.cpp ++++ b/fpdfsdk/cpdfsdk_appstream.cpp +@@ -1055,7 +1055,7 @@ ByteString GetDropButtonAppStream(const CFX_FloatRect& rcBBox) { + rcBBox, 2, CFX_Color(CFX_Color::Type::kGray, 0), + CFX_Color(CFX_Color::Type::kGray, 1), + CFX_Color(CFX_Color::Type::kGray, 0.5), BorderStyle::kBeveled, +- CPWL_Dash(3, 0, 0)); ++ CPWL_Dash{3, 0, 0}); + } + + CFX_PointF ptCenter = CFX_PointF((rcBBox.left + rcBBox.right) / 2, +@@ -1162,14 +1162,14 @@ void CPDFSDK_AppStream::SetAsPushButton() { + CFX_Color crBorder = pControl->GetOriginalBorderColor(); + + float fBorderWidth = static_cast<float>(widget_->GetBorderWidth()); +- CPWL_Dash dsBorder(3, 0, 0); ++ CPWL_Dash dsBorder{3, 0, 0}; + CFX_Color crLeftTop; + CFX_Color crRightBottom; + + BorderStyle nBorderStyle = widget_->GetBorderStyle(); + switch (nBorderStyle) { + case BorderStyle::kDash: +- dsBorder = CPWL_Dash(3, 3, 0); ++ dsBorder = CPWL_Dash{3, 3, 0}; + break; + case BorderStyle::kBeveled: + fBorderWidth *= 2; +@@ -1313,14 +1313,14 @@ void CPDFSDK_AppStream::SetAsCheckBox() { + CFX_Color crBackground = pControl->GetOriginalBackgroundColor(); + CFX_Color crBorder = pControl->GetOriginalBorderColor(); + float fBorderWidth = static_cast<float>(widget_->GetBorderWidth()); +- CPWL_Dash dsBorder(3, 0, 0); ++ CPWL_Dash dsBorder{3, 0, 0}; + CFX_Color crLeftTop; + CFX_Color crRightBottom; + + BorderStyle nBorderStyle = widget_->GetBorderStyle(); + switch (nBorderStyle) { + case BorderStyle::kDash: +- dsBorder = CPWL_Dash(3, 3, 0); ++ dsBorder = CPWL_Dash{3, 3, 0}; + break; + case BorderStyle::kBeveled: + fBorderWidth *= 2; +@@ -1392,14 +1392,14 @@ void CPDFSDK_AppStream::SetAsRadioButton() { + CFX_Color crBackground = pControl->GetOriginalBackgroundColor(); + CFX_Color crBorder = pControl->GetOriginalBorderColor(); + float fBorderWidth = static_cast<float>(widget_->GetBorderWidth()); +- CPWL_Dash dsBorder(3, 0, 0); ++ CPWL_Dash dsBorder{3, 0, 0}; + CFX_Color crLeftTop; + CFX_Color crRightBottom; + + BorderStyle nBorderStyle = widget_->GetBorderStyle(); + switch (nBorderStyle) { + case BorderStyle::kDash: +- dsBorder = CPWL_Dash(3, 3, 0); ++ dsBorder = CPWL_Dash{3, 3, 0}; + break; + case BorderStyle::kBeveled: + fBorderWidth *= 2; +@@ -1769,7 +1769,7 @@ void CPDFSDK_AppStream::SetAsTextField(std::optional<WideString> sValue) { + ByteString sColor = + GetStrokeColorAppStream(widget_->GetBorderPWLColor()); + if (sColor.GetLength() > 0) { +- CPWL_Dash dsBorder = CPWL_Dash(3, 3, 0); ++ CPWL_Dash dsBorder = CPWL_Dash{3, 3, 0}; + AutoClosedQCommand q(&sLines); + sLines << widget_->GetBorderWidth() << " " << kSetLineWidthOperator + << " " +@@ -1876,12 +1876,12 @@ ByteString CPDFSDK_AppStream::GetBorderAppStream() const { + CFX_Color crRightBottom; + + float fBorderWidth = static_cast<float>(widget_->GetBorderWidth()); +- CPWL_Dash dsBorder(3, 0, 0); ++ CPWL_Dash dsBorder{3, 0, 0}; + + BorderStyle nBorderStyle = widget_->GetBorderStyle(); + switch (nBorderStyle) { + case BorderStyle::kDash: +- dsBorder = CPWL_Dash(3, 3, 0); ++ dsBorder = CPWL_Dash{3, 3, 0}; + break; + case BorderStyle::kBeveled: + fBorderWidth *= 2; +diff --git a/fpdfsdk/formfiller/cffl_formfield.cpp b/fpdfsdk/formfiller/cffl_formfield.cpp +index 49edfdaed..bba78eda6 100644 +--- a/fpdfsdk/formfiller/cffl_formfield.cpp ++++ b/fpdfsdk/formfiller/cffl_formfield.cpp +@@ -336,7 +336,7 @@ CPWL_Wnd::CreateParams CFFL_FormField::GetCreateParam() { + cp.nBorderStyle = m_pWidget->GetBorderStyle(); + switch (cp.nBorderStyle) { + case BorderStyle::kDash: +- cp.sDash = CPWL_Dash(3, 3, 0); ++ cp.sDash = CPWL_Dash{3, 3, 0}; + break; + case BorderStyle::kBeveled: + case BorderStyle::kInset: +diff --git a/fpdfsdk/pwl/cpwl_wnd.cpp b/fpdfsdk/pwl/cpwl_wnd.cpp +index 502568709..88b0cf03e 100644 +--- a/fpdfsdk/pwl/cpwl_wnd.cpp ++++ b/fpdfsdk/pwl/cpwl_wnd.cpp +@@ -40,7 +40,7 @@ CPWL_Wnd::CreateParams::CreateParams(CFX_Timer::HandlerIface* timer_handler, + pFillerNotify(filler_notify), + pProvider(provider), + fFontSize(kDefaultFontSize), +- sDash(3, 0, 0) {} ++ sDash{3, 0, 0} {} + + CPWL_Wnd::CreateParams::CreateParams(const CreateParams& other) = default; + +-- +2.43.0 + diff --git a/external/pdfium/UnpackedTarball_pdfium.mk b/external/pdfium/UnpackedTarball_pdfium.mk index 6c5bce9b2e29..4137fff52a72 100644 --- a/external/pdfium/UnpackedTarball_pdfium.mk +++ b/external/pdfium/UnpackedTarball_pdfium.mk @@ -12,6 +12,8 @@ pdfium_patches := pdfium_patches += build.patch.1 # Avoids Windows 8 build dependency. pdfium_patches += windows7.patch.1 +# https://pdfium-review.googlesource.com/c/pdfium/+/125170 +pdfium_patches += CPWL_Dash-switch-to-universal-init.patch.1 pdfium_patches += c++20-comparison.patch pdfium_patches += constexpr-template.patch diff --git a/external/pdfium/build.patch.1 b/external/pdfium/build.patch.1 index 80e136d096d1..6fe32f6b76ca 100644 --- a/external/pdfium/build.patch.1 +++ b/external/pdfium/build.patch.1 @@ -77,117 +77,3 @@ index 8026a75d5..34c20d62f 100644 static_assert(kModeKeyForMode.size() == FPDF_ANNOT_APPEARANCEMODE_COUNT, "length of kModeKeyForMode should be equal to " "FPDF_ANNOT_APPEARANCEMODE_COUNT"); -diff --git a/fpdfsdk/cpdfsdk_appstream.cpp b/fpdfsdk/cpdfsdk_appstream.cpp -index 3a9bfabef..b7b06cae8 100644 ---- a/fpdfsdk/cpdfsdk_appstream.cpp -+++ b/fpdfsdk/cpdfsdk_appstream.cpp -@@ -1055,7 +1055,7 @@ ByteString GetDropButtonAppStream(const CFX_FloatRect& rcBBox) { - rcBBox, 2, CFX_Color(CFX_Color::Type::kGray, 0), - CFX_Color(CFX_Color::Type::kGray, 1), - CFX_Color(CFX_Color::Type::kGray, 0.5), BorderStyle::kBeveled, -- CPWL_Dash(3, 0, 0)); -+ CPWL_Dash{3, 0, 0}); - } - - CFX_PointF ptCenter = CFX_PointF((rcBBox.left + rcBBox.right) / 2, -@@ -1162,14 +1162,14 @@ void CPDFSDK_AppStream::SetAsPushButton() { - CFX_Color crBorder = pControl->GetOriginalBorderColor(); - - float fBorderWidth = static_cast<float>(widget_->GetBorderWidth()); -- CPWL_Dash dsBorder(3, 0, 0); -+ CPWL_Dash dsBorder{3, 0, 0}; - CFX_Color crLeftTop; - CFX_Color crRightBottom; - - BorderStyle nBorderStyle = widget_->GetBorderStyle(); - switch (nBorderStyle) { - case BorderStyle::kDash: -- dsBorder = CPWL_Dash(3, 3, 0); -+ dsBorder = CPWL_Dash{3, 3, 0}; - break; - case BorderStyle::kBeveled: - fBorderWidth *= 2; -@@ -1313,14 +1313,14 @@ void CPDFSDK_AppStream::SetAsCheckBox() { - CFX_Color crBackground = pControl->GetOriginalBackgroundColor(); - CFX_Color crBorder = pControl->GetOriginalBorderColor(); - float fBorderWidth = static_cast<float>(widget_->GetBorderWidth()); -- CPWL_Dash dsBorder(3, 0, 0); -+ CPWL_Dash dsBorder{3, 0, 0}; - CFX_Color crLeftTop; - CFX_Color crRightBottom; - - BorderStyle nBorderStyle = widget_->GetBorderStyle(); - switch (nBorderStyle) { - case BorderStyle::kDash: -- dsBorder = CPWL_Dash(3, 3, 0); -+ dsBorder = CPWL_Dash{3, 3, 0}; - break; - case BorderStyle::kBeveled: - fBorderWidth *= 2; -@@ -1392,14 +1392,14 @@ void CPDFSDK_AppStream::SetAsRadioButton() { - CFX_Color crBackground = pControl->GetOriginalBackgroundColor(); - CFX_Color crBorder = pControl->GetOriginalBorderColor(); - float fBorderWidth = static_cast<float>(widget_->GetBorderWidth()); -- CPWL_Dash dsBorder(3, 0, 0); -+ CPWL_Dash dsBorder{3, 0, 0}; - CFX_Color crLeftTop; - CFX_Color crRightBottom; - - BorderStyle nBorderStyle = widget_->GetBorderStyle(); - switch (nBorderStyle) { - case BorderStyle::kDash: -- dsBorder = CPWL_Dash(3, 3, 0); -+ dsBorder = CPWL_Dash{3, 3, 0}; - break; - case BorderStyle::kBeveled: - fBorderWidth *= 2; -@@ -1769,7 +1769,7 @@ void CPDFSDK_AppStream::SetAsTextField(std::optional<WideString> sValue) { - ByteString sColor = - GetStrokeColorAppStream(widget_->GetBorderPWLColor()); - if (sColor.GetLength() > 0) { -- CPWL_Dash dsBorder = CPWL_Dash(3, 3, 0); -+ CPWL_Dash dsBorder = CPWL_Dash{3, 3, 0}; - AutoClosedQCommand q(&sLines); - sLines << widget_->GetBorderWidth() << " " << kSetLineWidthOperator - << " " -@@ -1876,12 +1876,12 @@ ByteString CPDFSDK_AppStream::GetBorderAppStream() const { - CFX_Color crRightBottom; - - float fBorderWidth = static_cast<float>(widget_->GetBorderWidth()); -- CPWL_Dash dsBorder(3, 0, 0); -+ CPWL_Dash dsBorder{3, 0, 0}; - - BorderStyle nBorderStyle = widget_->GetBorderStyle(); - switch (nBorderStyle) { - case BorderStyle::kDash: -- dsBorder = CPWL_Dash(3, 3, 0); -+ dsBorder = CPWL_Dash{3, 3, 0}; - break; - case BorderStyle::kBeveled: - fBorderWidth *= 2; -diff --git a/fpdfsdk/formfiller/cffl_formfield.cpp b/fpdfsdk/formfiller/cffl_formfield.cpp -index 49edfdaed..bba78eda6 100644 ---- a/fpdfsdk/formfiller/cffl_formfield.cpp -+++ b/fpdfsdk/formfiller/cffl_formfield.cpp -@@ -336,7 +336,7 @@ CPWL_Wnd::CreateParams CFFL_FormField::GetCreateParam() { - cp.nBorderStyle = m_pWidget->GetBorderStyle(); - switch (cp.nBorderStyle) { - case BorderStyle::kDash: -- cp.sDash = CPWL_Dash(3, 3, 0); -+ cp.sDash = CPWL_Dash{3, 3, 0}; - break; - case BorderStyle::kBeveled: - case BorderStyle::kInset: -diff --git a/fpdfsdk/pwl/cpwl_wnd.cpp b/fpdfsdk/pwl/cpwl_wnd.cpp -index 502568709..88b0cf03e 100644 ---- a/fpdfsdk/pwl/cpwl_wnd.cpp -+++ b/fpdfsdk/pwl/cpwl_wnd.cpp -@@ -40,7 +40,7 @@ CPWL_Wnd::CreateParams::CreateParams(CFX_Timer::HandlerIface* timer_handler, - pFillerNotify(filler_notify), - pProvider(provider), - fFontSize(kDefaultFontSize), -- sDash(3, 0, 0) {} -+ sDash{3, 0, 0} {} - - CPWL_Wnd::CreateParams::CreateParams(const CreateParams& other) = default; - commit 4500ef7bd658f88c54671bfc1db2fc5d64853f83 Author: Xisco Fauli <[email protected]> AuthorDate: Thu Jul 31 17:13:05 2025 +0200 Commit: Andras Timar <[email protected]> CommitDate: Fri Jan 30 10:33:45 2026 +0100 nss: upgrade to 3.114 Downloaded from https://ftp.mozilla.org/pub/security/nss/releases/NSS_3_114_RTM/src/nss-3.114-with-nspr-4.37.tar.gz Change-Id: Id3c3d002790d92ca8f17c676ce447dae8c26e16b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188688 Tested-by: Jenkins Reviewed-by: Xisco Fauli <[email protected]> (cherry picked from commit 6cda2dbfbf5d855e6194cd530a6f66099279bd90) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193493 Tested-by: Jenkins CollaboraOffice <[email protected]> Reviewed-by: Michael Stahl <[email protected]> diff --git a/download.lst b/download.lst index 5bcd98e13793..5b066e626fd9 100644 --- a/download.lst +++ b/download.lst @@ -512,8 +512,8 @@ MYTHES_TARBALL := mythes-1.2.5.tar.xz # three static lines # so that git cherry-pick # will not run into conflicts -NSS_SHA256SUM := ae99a9a473f8117f542dfb33daa26a584db21776ef053b48cd24fa7b9d802dc7 -NSS_TARBALL := nss-3.113.1-with-nspr-4.36.tar.gz +NSS_SHA256SUM := aa927a8610354483b52fdb3c9445f3e2f4a231cc03754ed47e96d2697c2e2329 +NSS_TARBALL := nss-3.114-with-nspr-4.37.tar.gz # three static lines # so that git cherry-pick # will not run into conflicts commit dfc9be61bc0b5f83d6e3f8e4010f1953b6e5e1c2 Author: Xisco Fauli <[email protected]> AuthorDate: Wed Jul 2 09:59:50 2025 +0200 Commit: Andras Timar <[email protected]> CommitDate: Fri Jan 30 10:33:45 2026 +0100 nss: upgrade to 3.113.1 Downloaded from https://ftp.mozilla.org/pub/security/nss/releases/NSS_3_113_1_RTM/src/nss-3.113.1-with-nspr-4.36.tar.gz Change-Id: Ib5aed4732e2e4b98d6a3514a25b63a5eb32d8bf1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/187265 Tested-by: Jenkins Reviewed-by: Xisco Fauli <[email protected]> (cherry picked from commit 7ff0fd67cfe5514094249f2f5580ea38a8619357) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193492 Tested-by: Jenkins CollaboraOffice <[email protected]> Reviewed-by: Michael Stahl <[email protected]> diff --git a/download.lst b/download.lst index cbdd467b1108..5bcd98e13793 100644 --- a/download.lst +++ b/download.lst @@ -512,8 +512,8 @@ MYTHES_TARBALL := mythes-1.2.5.tar.xz # three static lines # so that git cherry-pick # will not run into conflicts -NSS_SHA256SUM := b62d51d900b59502eea34be33e3089537fb73977ea6b76cea8d8e6a80e1d95df -NSS_TARBALL := nss-3.113-with-nspr-4.36.tar.gz +NSS_SHA256SUM := ae99a9a473f8117f542dfb33daa26a584db21776ef053b48cd24fa7b9d802dc7 +NSS_TARBALL := nss-3.113.1-with-nspr-4.36.tar.gz # three static lines # so that git cherry-pick # will not run into conflicts commit 5f8c37c473cc97474c7540222355fedada4a76c4 Author: Xisco Fauli <[email protected]> AuthorDate: Fri Jun 20 09:13:51 2025 +0200 Commit: Andras Timar <[email protected]> CommitDate: Fri Jan 30 10:33:45 2026 +0100 nss: upgrade to 3.113 Downloaded from https://ftp.mozilla.org/pub/security/nss/releases/NSS_3_113_RTM/src/nss-3.113-with-nspr-4.36.tar.gz Change-Id: I9327a325fc2bdc1159c9dda1c8e54963b410e8e3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/186735 Tested-by: Jenkins Reviewed-by: Xisco Fauli <[email protected]> (cherry picked from commit d6efc1cd776393fc70a8dc0e2e1d6dc26df38035) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193491 Tested-by: Jenkins CollaboraOffice <[email protected]> Reviewed-by: Michael Stahl <[email protected]> diff --git a/download.lst b/download.lst index 66b1e56097c8..cbdd467b1108 100644 --- a/download.lst +++ b/download.lst @@ -512,8 +512,8 @@ MYTHES_TARBALL := mythes-1.2.5.tar.xz # three static lines # so that git cherry-pick # will not run into conflicts -NSS_SHA256SUM := a8ee2b4485c4d841b1f974a13037183071ac12520512e6ec6b7d38ff36e8a125 -NSS_TARBALL := nss-3.112-with-nspr-4.36.tar.gz +NSS_SHA256SUM := b62d51d900b59502eea34be33e3089537fb73977ea6b76cea8d8e6a80e1d95df +NSS_TARBALL := nss-3.113-with-nspr-4.36.tar.gz # three static lines # so that git cherry-pick # will not run into conflicts diff --git a/external/nss/clang-cl.patch.0 b/external/nss/clang-cl.patch.0 index e20aab3b9ff1..dc5f8e0a884e 100644 --- a/external/nss/clang-cl.patch.0 +++ b/external/nss/clang-cl.patch.0 @@ -72,17 +72,6 @@ /* make GCC warn when we use these #defines */ typedef int __BLAPI_DEPRECATED __attribute__((deprecated)); #define DSA_SUBPRIME_LEN ((__BLAPI_DEPRECATED)DSA1_SUBPRIME_LEN) ---- nss/lib/util/pkcs11n.h -+++ nss/lib/util/pkcs11n.h -@@ -563,7 +563,7 @@ - /* keep the old value for compatibility reasons*/ - #define CKT_NSS_MUST_VERIFY ((__CKT_NSS_MUST_VERIFY)(CKT_NSS + 4)) - #else --#ifdef _WIN32 -+#if defined _WIN32 && !defined __clang__ - /* This magic gets the windows compiler to give us a deprecation - * warning */ - #pragma deprecated(CKT_NSS_UNTRUSTED, CKT_NSS_MUST_VERIFY, CKT_NSS_VALID) # While MSVC uses # #pragma warning(disable : 4103) commit 0e93e05d2b77eabfd79d76bdf8a0968873a6b0a1 Author: Xisco Fauli <[email protected]> AuthorDate: Tue May 27 18:25:02 2025 +0200 Commit: Andras Timar <[email protected]> CommitDate: Fri Jan 30 10:33:45 2026 +0100 nss: upgrade to 3.112 Downloaded https://ftp.mozilla.org/pub/security/nss/releases/NSS_3_112_RTM/src/nss-3.112-with-nspr-4.36.tar.gz Change-Id: I755d5e89868870237ba3f7d04a9ec23e11fbba04 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185928 Tested-by: Jenkins Reviewed-by: Xisco Fauli <[email protected]> (cherry picked from commit 95b9691da797bc5bef17ce67dcfe69766ccf95ba) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193490 Tested-by: Jenkins CollaboraOffice <[email protected]> Reviewed-by: Michael Stahl <[email protected]> diff --git a/download.lst b/download.lst index 7cd36e100d5a..66b1e56097c8 100644 --- a/download.lst +++ b/download.lst @@ -512,8 +512,8 @@ MYTHES_TARBALL := mythes-1.2.5.tar.xz # three static lines # so that git cherry-pick # will not run into conflicts -NSS_SHA256SUM := 672f0af6cc9b577bee4906e2071b250d940b23e29ce516a721dc9561c421bbce -NSS_TARBALL := nss-3.111-with-nspr-4.36.tar.gz +NSS_SHA256SUM := a8ee2b4485c4d841b1f974a13037183071ac12520512e6ec6b7d38ff36e8a125 +NSS_TARBALL := nss-3.112-with-nspr-4.36.tar.gz # three static lines # so that git cherry-pick # will not run into conflicts commit 3efeb7f777c0a3f8fc5c13dc174dea82c8ae52c2 Author: Xisco Fauli <[email protected]> AuthorDate: Mon May 5 12:18:01 2025 +0200 Commit: Andras Timar <[email protected]> CommitDate: Fri Jan 30 10:33:45 2026 +0100 nss: upgrade to 3.111 Downloaded https://ftp.mozilla.org/pub/security/nss/releases/NSS_3_111_RTM/src/nss-3.111-with-nspr-4.36.tar.gz Change-Id: If08f3f13f590a8e17a64f97990a4aced9900dd62 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184959 Tested-by: Jenkins Reviewed-by: Xisco Fauli <[email protected]> (cherry picked from commit fe2af71719fa335ad232902451ffb8e6e666c7f7) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193489 Reviewed-by: Michael Stahl <[email protected]> Tested-by: Jenkins CollaboraOffice <[email protected]> diff --git a/download.lst b/download.lst index 9db66ca7bac8..7cd36e100d5a 100644 --- a/download.lst +++ b/download.lst @@ -512,8 +512,8 @@ MYTHES_TARBALL := mythes-1.2.5.tar.xz # three static lines # so that git cherry-pick # will not run into conflicts -NSS_SHA256SUM := 96114bef9e9692dda6e7793da26fedef0dc0449c3644ebe1122464e599a39dc0 -NSS_TARBALL := nss-3.110-with-nspr-4.36.tar.gz +NSS_SHA256SUM := 672f0af6cc9b577bee4906e2071b250d940b23e29ce516a721dc9561c421bbce +NSS_TARBALL := nss-3.111-with-nspr-4.36.tar.gz # three static lines # so that git cherry-pick # will not run into conflicts commit d2a9b793bb0a9ae5d81ebbcea01a73b6218734b7 Author: Xisco Fauli <[email protected]> AuthorDate: Mon Mar 31 10:18:11 2025 +0200 Commit: Andras Timar <[email protected]> CommitDate: Fri Jan 30 10:33:45 2026 +0100 nss: upgrade to 3.110 Downloaded from https://ftp.mozilla.org/pub/security/nss/releases/NSS_3_110_RTM/src/nss-3.110-with-nspr-4.36.tar.gz Change-Id: I4301e093661bbac3aae9f59d7ae366a0b2e2ef9b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183526 Tested-by: Jenkins Reviewed-by: Xisco Fauli <[email protected]> (cherry picked from commit 969d6815b802893b5dd765afc17ad230af0fe456) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193488 Reviewed-by: Michael Stahl <[email protected]> Tested-by: Jenkins CollaboraOffice <[email protected]> diff --git a/download.lst b/download.lst index 6bf566fb69a3..9db66ca7bac8 100644 --- a/download.lst +++ b/download.lst @@ -512,8 +512,8 @@ MYTHES_TARBALL := mythes-1.2.5.tar.xz # three static lines # so that git cherry-pick # will not run into conflicts -NSS_SHA256SUM := 25be414ff9c207dd67355f19e9e71001db45957b6bb74adf5b094c92e05116b4 -NSS_TARBALL := nss-3.109-with-nspr-4.36.tar.gz +NSS_SHA256SUM := 96114bef9e9692dda6e7793da26fedef0dc0449c3644ebe1122464e599a39dc0 +NSS_TARBALL := nss-3.110-with-nspr-4.36.tar.gz # three static lines # so that git cherry-pick # will not run into conflicts commit ce21a28b599bd947604d41a50e82c4a336ac3e23 Author: Xisco Fauli <[email protected]> AuthorDate: Mon Feb 17 12:06:37 2025 +0100 Commit: Andras Timar <[email protected]> CommitDate: Fri Jan 30 10:33:45 2026 +0100 nss: upgrade to 3.109 Downloaded from https://ftp.mozilla.org/pub/security/nss/releases/NSS_3_109_RTM/src/nss-3.109-with-nspr-4.36.tar.gz Change-Id: I2210c384f629ccc9a671c2bb3260b822a302dd1d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181773 Tested-by: Jenkins Reviewed-by: Xisco Fauli <[email protected]> (cherry picked from commit e39a1baeb4441e1736022a7fd07668bd5db2cb6e) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193487 Tested-by: Jenkins CollaboraOffice <[email protected]> Reviewed-by: Michael Stahl <[email protected]> diff --git a/download.lst b/download.lst index 94ea135cae0a..6bf566fb69a3 100644 --- a/download.lst +++ b/download.lst @@ -512,8 +512,8 @@ MYTHES_TARBALL := mythes-1.2.5.tar.xz # three static lines # so that git cherry-pick # will not run into conflicts -NSS_SHA256SUM := 0ea8bab27345e4e0fc0ec0587d01bb54ba7eb46cb5b369c9ed59ee42baa78fa9 -NSS_TARBALL := nss-3.104-with-nspr-4.35.tar.gz +NSS_SHA256SUM := 25be414ff9c207dd67355f19e9e71001db45957b6bb74adf5b094c92e05116b4 +NSS_TARBALL := nss-3.109-with-nspr-4.36.tar.gz # three static lines # so that git cherry-pick # will not run into conflicts diff --git a/external/nss/Wincompatible-function-pointer-types.patch.0 b/external/nss/Wincompatible-function-pointer-types.patch.0 index 1e9b7550e1da..dde8c21348cf 100644 --- a/external/nss/Wincompatible-function-pointer-types.patch.0 +++ b/external/nss/Wincompatible-function-pointer-types.patch.0 @@ -1,234 +1,215 @@ --- nspr/pr/tests/testfile.c +++ nspr/pr/tests/testfile.c -@@ -86,7 +86,7 @@ +@@ -72,7 +72,7 @@ #endif - #define TMPDIR_LEN 64 + #define TMPDIR_LEN 64 char testdir[TMPDIR_LEN]; --static PRInt32 PR_CALLBACK DirTest(void *argunused); -+static void PR_CALLBACK DirTest(void *argunused); +-static PRInt32 PR_CALLBACK DirTest(void* argunused); ++static void PR_CALLBACK DirTest(void* argunused); PRInt32 dirtest_failed = 0; - PRThread* create_new_thread(PRThreadType type, -@@ -123,7 +123,7 @@ - if (native_thread) { #if defined(_PR_PTHREADS) - pthread_t tid; -- if (!pthread_create(&tid, NULL, start, arg)) { -+ if (!pthread_create(&tid, NULL, (void *(*)(void *))start, arg)) { - return((PRThread *) tid); - } - else { -@@ -594,7 +594,7 @@ - return 0; +@@ -134,7 +134,7 @@ + if (native_thread) { + # if defined(_PR_PTHREADS) + pthread_t tid; +- if (!pthread_create(&tid, NULL, nativeStart, arg)) { ++ if (!pthread_create(&tid, NULL, (void *(*)(void *))nativeStart, arg)) { + return ((PRThread*)tid); + } else { + return (NULL); +@@ -595,7 +595,7 @@ + return 0; } --static PRInt32 PR_CALLBACK DirTest(void *arg) -+static void PR_CALLBACK DirTest(void *arg) - { - struct dirtest_arg *tinfo = (struct dirtest_arg *) arg; - PRFileDesc *fd_file; -@@ -618,14 +618,14 @@ - printf( - "testfile failed to create dir %s [%d, %d] ", - TEST_DIR, PR_GetError(), PR_GetOSError()); -- return -1; -+ return; - } - fd_dir = PR_OpenDir(TEST_DIR); - if (fd_dir == NULL) { - printf( - "testfile failed to open dirctory %s [%d, %d] ", - TEST_DIR, PR_GetError(), PR_GetOSError()); -- return -1; -+ return; - } - - strcpy(pathname, TEST_DIR); -@@ -645,7 +645,7 @@ - printf( - "testfile failed to create/open file %s [%d, %d] ", - pathname, PR_GetError(), PR_GetOSError()); -- return -1; -+ return; - } - PR_Close(fd_file); - } -@@ -664,7 +664,7 @@ - printf( - "testfile failed to create/open hidden file %s [%d, %d] ", - pathname, PR_GetError(), PR_GetOSError()); -- return -1; -+ return; - } - - PR_Close(fd_file); -@@ -681,7 +681,7 @@ - if (hfile == INVALID_HANDLE_VALUE) { - printf("testfile failed to create/open hidden file %s [0, %d] ", - pathname, GetLastError()); -- return -1; -+ return; - } - CloseHandle(hfile); - -@@ -696,7 +696,7 @@ - if (hfile == INVALID_HANDLE_VALUE) { - printf("testfile failed to create/open hidden file %s [0, %d] ", - pathname, GetLastError()); -- return -1; -+ return; - } - CloseHandle(hfile); - -@@ -707,7 +707,7 @@ +-static PRInt32 PR_CALLBACK DirTest(void* arg) { ++static void PR_CALLBACK DirTest(void* arg) { + struct dirtest_arg* tinfo = (struct dirtest_arg*)arg; + PRFileDesc* fd_file; + PRDir* fd_dir; +@@ -617,13 +617,13 @@ + if ((PR_MkDir(TEST_DIR, 0777)) < 0) { + printf("testfile failed to create dir %s [%d, %d] ", TEST_DIR, + PR_GetError(), PR_GetOSError()); +- return -1; ++ return; + } + fd_dir = PR_OpenDir(TEST_DIR); + if (fd_dir == NULL) { + printf("testfile failed to open dirctory %s [%d, %d] ", TEST_DIR, + PR_GetError(), PR_GetOSError()); +- return -1; ++ return; + } + + strcpy(pathname, TEST_DIR); +@@ -641,7 +641,7 @@ if (fd_file == NULL) { - printf("testfile failed to create/open hidden file %s [%d, %d] ", - pathname, PR_GetError(), PR_GetOSError()); -- return -1; -+ return; + printf("testfile failed to create/open file %s [%d, %d] ", pathname, + PR_GetError(), PR_GetOSError()); +- return -1; ++ return; } PR_Close(fd_file); - #endif /* XP_UNIX */ -@@ -720,14 +720,14 @@ - printf( - "testfile failed to close dirctory %s [%d, %d] ", - TEST_DIR, PR_GetError(), PR_GetOSError()); -- return -1; -+ return; - } - fd_dir = PR_OpenDir(TEST_DIR); - if (fd_dir == NULL) { - printf( - "testfile failed to reopen dirctory %s [%d, %d] ", - TEST_DIR, PR_GetError(), PR_GetOSError()); -- return -1; -+ return; - } - - /* -@@ -750,14 +750,14 @@ - printf( - "testfile failed to GetFileInfo file %s [%d, %d] ", - pathname, PR_GetError(), PR_GetOSError()); -- return -1; -+ return; - } - - if (info.type != PR_FILE_FILE) { - printf( - "testfile incorrect fileinfo for file %s [%d, %d] ", - pathname, PR_GetError(), PR_GetOSError()); -- return -1; -+ return; - } - } - if (num_files != 0) -@@ -765,7 +765,7 @@ - printf( - "testfile failed to find all files in directory %s [%d, %d] ", - TEST_DIR, PR_GetError(), PR_GetOSError()); -- return -1; -+ return; - } - - PR_CloseDir(fd_dir); -@@ -781,7 +781,7 @@ - printf( - "testfile failed to reopen dirctory %s [%d, %d] ", - TEST_DIR, PR_GetError(), PR_GetOSError()); -- return -1; -+ return; - } - - DPRINTF(("Listing non-hidden files in directory %s ",TEST_DIR)); -@@ -789,7 +789,7 @@ - DPRINTF((" %s ",dirEntry->name)); - if (!strcmp(HIDDEN_FILE_NAME, dirEntry->name)) { - printf("testfile found hidden file %s ", pathname); -- return -1; -+ return; - } - - } -@@ -803,7 +803,7 @@ - printf( - "testfile failed to delete hidden file %s [%d, %d] ", - pathname, PR_GetError(), PR_GetOSError()); -- return -1; -+ return; - } - - PR_CloseDir(fd_dir); -@@ -815,41 +815,41 @@ - printf( - "testfile failed to rename directory %s [%d, %d] ", - TEST_DIR, PR_GetError(), PR_GetOSError()); -- return -1; -+ return; - } - - if (PR_FAILURE == PR_MkDir(TEST_DIR, 0777)) { - printf( - "testfile failed to recreate dir %s [%d, %d] ", - TEST_DIR, PR_GetError(), PR_GetOSError()); -- return -1; -+ return; - } - if (PR_SUCCESS == PR_Rename(renamename, TEST_DIR)) { - printf( - "testfile renamed directory to existing name %s ", - renamename); -- return -1; -+ return; - } - - if (PR_FAILURE == PR_RmDir(TEST_DIR)) { - printf( - "testfile failed to rmdir %s [%d, %d] ", - TEST_DIR, PR_GetError(), PR_GetOSError()); -- return -1; -+ return; - } - - if (PR_FAILURE == PR_Rename(renamename, TEST_DIR)) { - printf( - "testfile failed to rename directory %s [%d, %d] ", - renamename, PR_GetError(), PR_GetOSError()); -- return -1; -+ return; - } - fd_dir = PR_OpenDir(TEST_DIR); - if (fd_dir == NULL) { - printf( - "testfile failed to reopen directory %s [%d, %d] ", - TEST_DIR, PR_GetError(), PR_GetOSError()); -- return -1; -+ return; - } - - strcpy(pathname, TEST_DIR); -@@ -865,7 +865,7 @@ - printf( - "testfile failed to delete file %s [%d, %d] ", - pathname, PR_GetError(), PR_GetOSError()); -- return -1; -+ return; - } - } - -@@ -875,14 +875,13 @@ - printf( - "testfile failed to rmdir %s [%d, %d] ", - TEST_DIR, PR_GetError(), PR_GetOSError()); -- return -1; -+ return; - } - PR_EnterMonitor(tinfo->mon); -e ... etc. - the rest is truncated
