iigs
2023-12-09 43d58f425e2829b273217c202c889f45f0ae8943
libreoffice: update to 7.6.4.1

5 files added
4 files modified
4996 ■■■■■ changed files
components/desktop/libreoffice/Makefile 20 ●●●●● patch | view | raw | blame | history
components/desktop/libreoffice/patches/13-tdf158302-build-with-system-libxml2.12.patch 302 ●●●●● patch | view | raw | blame | history
components/desktop/libreoffice/patches/15-libgpg-error-update-to-1.47.patch 291 ●●●●● patch | view | raw | blame | history
components/desktop/libreoffice/patches/18-show-illumos-version-in-about.patch 9 ●●●● patch | view | raw | blame | history
components/desktop/libreoffice/patches/20-skia-illumos-no-malloc-usable-size.patch 10 ●●●● patch | view | raw | blame | history
components/desktop/libreoffice/patches/23-update-xmlsec.patch 106 ●●●●● patch | view | raw | blame | history
components/desktop/libreoffice/patches/24-xmlsec-with-libxml2-fixes.patch 167 ●●●●● patch | view | raw | blame | history
components/desktop/libreoffice/patches/25-libcmis-with-libxml2-fixes.patch 47 ●●●●● patch | view | raw | blame | history
components/desktop/libreoffice/test/results-all.master 4044 ●●●● patch | view | raw | blame | history
components/desktop/libreoffice/Makefile
@@ -26,8 +26,8 @@
# BUILD_FIX=1
COMPONENT_NAME=         libreoffice
COMPONENT_VERSION=      7.6.3
COMPONENT_RC_VERSION=    2
COMPONENT_VERSION=      7.6.4
COMPONENT_RC_VERSION=    1
ifndef BUILD_BETA
COMPONENT_FULL_VERSION=$(COMPONENT_VERSION).$(COMPONENT_RC_VERSION)
else
@@ -44,7 +44,6 @@
COMPONENT_ARCHIVE=      $(COMPONENT_SRC).tar.xz
COMPONENT_ARCHIVE_URL=  https://download.documentfoundation.org/libreoffice/src/$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE)
COMPONENT_SIG_URL= $(COMPONENT_ARCHIVE_URL).asc
COMPONENT_ARCHIVE_HASH= sha256:91e94b99a7270c450d8b1f31fa833397fc49cc71260267d8e044a6462ed7e15d
COMPONENT_FMRI=         desktop/office/libreoffice
COMPONENT_CLASSIFICATION= Applications/Office
COMPONENT_LICENSE=      MPL2.0
@@ -118,16 +117,16 @@
COMPONENT_ARCHIVE_HASH_17 = sha256:fcdf9fd69fde07ae4dca2351d84271a9de8093002f733b77c70f52f1630f6e4a
COMPONENT_ARCHIVE_URL_17 = https://dev-www.libreoffice.org/src/$(COMPONENT_ARCHIVE_17)
COMPONENT_ARCHIVE_18 = xmlsec1-1.2.37.tar.gz
COMPONENT_ARCHIVE_HASH_18 = sha256:5f8dfbcb6d1e56bddd0b5ec2e00a3d0ca5342a9f57c24dffde5c796b2be2871c
COMPONENT_ARCHIVE_18 = xmlsec1-1.3.2.tar.gz
COMPONENT_ARCHIVE_HASH_18 = sha256:4003c56b3d356d21b1db7775318540fad6bfedaf5f117e8f7c010811219be3cf
COMPONENT_ARCHIVE_URL_18 = https://dev-www.libreoffice.org/src/$(COMPONENT_ARCHIVE_18)
COMPONENT_ARCHIVE_19 = libreoffice-translations-$(COMPONENT_FULL_VERSION).tar.xz
COMPONENT_ARCHIVE_HASH_19 = sha256:76d72d9f1f9f3af20fdf6685606137060f8527b5e53eb0a8569e2250756778a2
COMPONENT_ARCHIVE_HASH_19 = sha256:3a5a0dbe40abdc55cdd9994895f6577d7e547d26a36b20641f32f3640a3b7679
COMPONENT_ARCHIVE_URL_19 = https://download.documentfoundation.org/libreoffice/src/$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE_19)
COMPONENT_ARCHIVE_20 = libreoffice-dictionaries-$(COMPONENT_FULL_VERSION).tar.xz
COMPONENT_ARCHIVE_HASH_20 = sha256:d3e3aa88faaa3806dd196e44ff82a3a5b992fdeac9626126d13a56a81561b88b
COMPONENT_ARCHIVE_HASH_20 = sha256:36c0526e4c12ab38dd1e1766cd878118dd5692578b80411b9b443e389e3712fa
COMPONENT_ARCHIVE_URL_20 = https://download.documentfoundation.org/libreoffice/src/$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE_20)
#COMPONENT_ARCHIVE_21 = boost_1_69_0.tar.bz2
@@ -167,8 +166,8 @@
COMPONENT_ARCHIVE_HASH_29 = sha256:e9fd27218d5394904e4e39788f9b1742711c3e6b41689a31aa3380bd5aa4f426
COMPONENT_ARCHIVE_URL_29 = https://dev-www.libreoffice.org/src/$(COMPONENT_ARCHIVE_29)
COMPONENT_ARCHIVE_30 = libgpg-error-1.43.tar.bz2
COMPONENT_ARCHIVE_HASH_30 = sha256:a9ab83ca7acc442a5bd846a75b920285ff79bdb4e3d34aa382be88ed2c3aebaf
COMPONENT_ARCHIVE_30 = libgpg-error-1.47.tar.bz2
COMPONENT_ARCHIVE_HASH_30 = sha256:9e3c670966b96ecc746c28c2c419541e3bcb787d1a73930f5e5f5e1bcbbb9bdb
COMPONENT_ARCHIVE_URL_30 = https://dev-www.libreoffice.org/src/$(COMPONENT_ARCHIVE_30)
COMPONENT_ARCHIVE_31 = frozen-1.1.1.tar.gz
@@ -329,6 +328,9 @@
    $(GSED) -i 's/env\ python3/python$(PYTHON_VERSION)/' \
        $(PROTO_DIR)$(LIBREOFFICE_SHARE_DIR)/extensions/dict-pt-BR/test_compile_rules.py ;
# Filter out test result lines with truncated $(BUILD_DIR) paths
COMPONENT_TEST_TRANSFORMS +=    "-e 's|$(COMPONENT_DIR)|\$$?GSED(COMPONENT_DIR)|g'"
# debug specific test
testtrace:
    @[ -n "$(SPECTEST)" ] || (echo "No SPECTEST specified."; exit 1;)
components/desktop/libreoffice/patches/13-tdf158302-build-with-system-libxml2.12.patch
New file
@@ -0,0 +1,302 @@
From c8f7408db73d2f2ccacb25a2b4fef8dfebdfc6cb Mon Sep 17 00:00:00 2001
From: Miklos Vajna <vmiklos@collabora.com>
Date: Mon, 27 Nov 2023 08:02:59 +0100
Subject: tdf#158302 fix build against system-libxml-2.12
Seen in a fedora:40 container, using --with-system-libcmis,
--with-system-liblangtag and --with-system-xmlsec.
Change-Id: I9d748d3dc0b70dbfdfcb6b99c9ce8440bda6f326
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159980
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
---
 drawinglayer/source/tools/primitive2dxmldump.cxx | 1 +
 filter/source/xsltfilter/LibXSLTTransformer.cxx  | 2 +-
 helpcompiler/source/HelpLinker.cxx               | 4 ++++
 include/xmloff/xmltoken.hxx                      | 2 +-
 sax/source/fastparser/fastparser.cxx             | 2 +-
 sc/source/core/tool/interpr7.cxx                 | 1 +
 sc/source/filter/xml/XMLExportDataPilot.cxx      | 2 +-
 sc/source/filter/xml/XMLExportDatabaseRanges.cxx | 2 +-
 sc/source/filter/xml/xmlfilti.cxx                | 6 +++---
 unoxml/source/dom/attr.cxx                       | 1 +
 unoxml/source/dom/document.cxx                   | 1 +
 unoxml/source/dom/documentbuilder.cxx            | 1 +
 unoxml/source/dom/entity.cxx                     | 1 +
 unoxml/source/xpath/xpathapi.cxx                 | 7 ++++++-
 xmloff/source/core/xmltoken.cxx                  | 2 +-
 xmloff/source/style/PageMasterStyleMap.cxx       | 2 +-
 xmlsecurity/inc/xmlsec-wrapper.h                 | 1 +
 xmlsecurity/inc/xmlsec/saxhelper.hxx             | 1 +
 18 files changed, 28 insertions(+), 11 deletions(-)
diff --git a/drawinglayer/source/tools/primitive2dxmldump.cxx b/drawinglayer/source/tools/primitive2dxmldump.cxx
index 76aefec902ea..f3b9ef1bc919 100644
--- a/drawinglayer/source/tools/primitive2dxmldump.cxx
+++ b/drawinglayer/source/tools/primitive2dxmldump.cxx
@@ -15,6 +15,7 @@
 #include <math.h>
 #include <memory>
+#include <libxml/parser.h>
 #include <sal/log.hxx>
 #include <drawinglayer/primitive2d/bitmapprimitive2d.hxx>
diff --git a/filter/source/xsltfilter/LibXSLTTransformer.cxx b/filter/source/xsltfilter/LibXSLTTransformer.cxx
index 1a7c34805f1b..5e9a7c4bcd35 100644
--- a/filter/source/xsltfilter/LibXSLTTransformer.cxx
+++ b/filter/source/xsltfilter/LibXSLTTransformer.cxx
@@ -333,7 +333,7 @@ namespace XSLT
         }
         else
         {
-            xmlErrorPtr lastErr = xmlGetLastError();
+            const xmlError* lastErr = xmlGetLastError();
             OUString msg;
             if (lastErr)
                 msg = OStringToOUString(lastErr->message, RTL_TEXTENCODING_UTF8);
diff --git a/helpcompiler/source/HelpLinker.cxx b/helpcompiler/source/HelpLinker.cxx
index 3d52834dbe6b..898a8b26392a 100644
--- a/helpcompiler/source/HelpLinker.cxx
+++ b/helpcompiler/source/HelpLinker.cxx
@@ -815,7 +815,11 @@ static const HelpProcessingException* GpXMLParsingException = nullptr;
 extern "C" {
+#if LIBXML_VERSION >= 21200
+static void StructuredXMLErrorFunction(SAL_UNUSED_PARAMETER void *, const xmlError* error)
+#else
 static void StructuredXMLErrorFunction(SAL_UNUSED_PARAMETER void *, xmlErrorPtr error)
+#endif
 {
     std::string aErrorMsg = error->message;
     std::string aXMLParsingFile;
diff --git a/include/xmloff/xmltoken.hxx b/include/xmloff/xmltoken.hxx
index 4e6441841774..ba42fae4d035 100644
--- a/include/xmloff/xmltoken.hxx
+++ b/include/xmloff/xmltoken.hxx
@@ -744,7 +744,7 @@ namespace xmloff::token {
         XML_EMBEDDED_VISIBLE_AREA,
         XML_EMBOSSED,
         XML_EMISSIVE_COLOR,
-        XML_EMPTY,
+        XML_TOKEN_EMPTY,
         XML_EMPTY_LINE_REFRESH,
         XML_ENABLE_NUMBERING,
         XML_ENABLED,
diff --git a/sax/source/fastparser/fastparser.cxx b/sax/source/fastparser/fastparser.cxx
index ec8065016a12..e0338e053cf0 100644
--- a/sax/source/fastparser/fastparser.cxx
+++ b/sax/source/fastparser/fastparser.cxx
@@ -578,7 +578,7 @@ Event& Entity::getEvent( CallbackType aType )
 OUString lclGetErrorMessage( xmlParserCtxtPtr ctxt, std::u16string_view sSystemId, sal_Int32 nLine )
 {
     const char* pMessage;
-    xmlErrorPtr error = xmlCtxtGetLastError( ctxt );
+    const xmlError* error = xmlCtxtGetLastError( ctxt );
     if( error && error->message )
         pMessage = error->message;
     else
diff --git a/sc/source/core/tool/interpr7.cxx b/sc/source/core/tool/interpr7.cxx
index 352c7cf70e45..ecb4ea346396 100644
--- a/sc/source/core/tool/interpr7.cxx
+++ b/sc/source/core/tool/interpr7.cxx
@@ -31,6 +31,7 @@
 #include <cstring>
 #include <memory>
 #include <string_view>
+#include <libxml/parser.h>
 using namespace com::sun::star;
diff --git a/sc/source/filter/xml/XMLExportDataPilot.cxx b/sc/source/filter/xml/XMLExportDataPilot.cxx
index da65bec0dab7..bd5f16d828ff 100644
--- a/sc/source/filter/xml/XMLExportDataPilot.cxx
+++ b/sc/source/filter/xml/XMLExportDataPilot.cxx
@@ -123,7 +123,7 @@ void ScXMLExportDataPilot::WriteDPCondition(const ScQueryEntry& aQueryEntry, boo
     if (aQueryEntry.IsQueryByEmpty())
     {
-        rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_OPERATOR, GetXMLToken(XML_EMPTY));
+        rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_OPERATOR, GetXMLToken(XML_TOKEN_EMPTY));
     }
     else if (aQueryEntry.IsQueryByNonEmpty())
     {
diff --git a/sc/source/filter/xml/XMLExportDatabaseRanges.cxx b/sc/source/filter/xml/XMLExportDatabaseRanges.cxx
index 6905e02d651b..e4307065bd92 100644
--- a/sc/source/filter/xml/XMLExportDatabaseRanges.cxx
+++ b/sc/source/filter/xml/XMLExportDatabaseRanges.cxx
@@ -376,7 +376,7 @@ private:
             case SC_EQUAL:
             {
                 if (rEntry.IsQueryByEmpty())
-                    return GetXMLToken(XML_EMPTY);
+                    return GetXMLToken(XML_TOKEN_EMPTY);
                 else if (rEntry.IsQueryByNonEmpty())
                     return GetXMLToken(XML_NOEMPTY);
diff --git a/sc/source/filter/xml/xmlfilti.cxx b/sc/source/filter/xml/xmlfilti.cxx
index 7585ce0c50fa..61f7cfe4a349 100644
--- a/sc/source/filter/xml/xmlfilti.cxx
+++ b/sc/source/filter/xml/xmlfilti.cxx
@@ -370,7 +370,7 @@ void ScXMLConditionContext::GetOperator(
         rEntry.eOp = SC_BOTPERC;
     else if (IsXMLToken(aOpStr, XML_BOTTOM_VALUES))
         rEntry.eOp = SC_BOTVAL;
-    else if (IsXMLToken(aOpStr, XML_EMPTY))
+    else if (IsXMLToken(aOpStr, XML_TOKEN_EMPTY))
         rEntry.SetQueryByEmpty();
     else if (aOpStr == u">")
         rEntry.eOp = SC_GREATER;
@@ -422,7 +422,7 @@ void SAL_CALL ScXMLConditionContext::endFastElement( sal_Int32 /*nElement*/ )
     if (maQueryItems.empty())
     {
         ScQueryEntry::Item& rItem = rEntry.GetQueryItem();
-        if (IsXMLToken(sOperator, XML_EMPTY))
+        if (IsXMLToken(sOperator, XML_TOKEN_EMPTY))
             return;
         if (IsXMLToken(sDataType, XML_NUMBER))
         {
@@ -753,7 +753,7 @@ void SAL_CALL ScXMLDPConditionContext::endFastElement( sal_Int32 /*nElement*/ )
     else
         aFilterField.eConnect = SC_AND;
     pFilterContext->SetIsCaseSensitive(bIsCaseSensitive);
-    if (IsXMLToken(sOperator, XML_EMPTY))
+    if (IsXMLToken(sOperator, XML_TOKEN_EMPTY))
         aFilterField.SetQueryByEmpty();
     else if (IsXMLToken(sOperator, XML_NOEMPTY))
         aFilterField.SetQueryByNonEmpty();
diff --git a/unoxml/source/dom/attr.cxx b/unoxml/source/dom/attr.cxx
index dd974d910edb..d8d873cdf055 100644
--- a/unoxml/source/dom/attr.cxx
+++ b/unoxml/source/dom/attr.cxx
@@ -22,6 +22,7 @@
 #include <string.h>
 #include <memory>
+#include <libxml/entities.h>
 #include <osl/diagnose.h>
 #include <sal/log.hxx>
diff --git a/unoxml/source/dom/document.cxx b/unoxml/source/dom/document.cxx
index cb48bd1635f8..0825fc2cd7ed 100644
--- a/unoxml/source/dom/document.cxx
+++ b/unoxml/source/dom/document.cxx
@@ -41,6 +41,7 @@
 #include <eventdispatcher.hxx>
 #include <string.h>
+#include <libxml/xmlIO.h>
 #include <osl/diagnose.h>
diff --git a/unoxml/source/dom/documentbuilder.cxx b/unoxml/source/dom/documentbuilder.cxx
index c3cd7663d2fc..3898d58e4be4 100644
--- a/unoxml/source/dom/documentbuilder.cxx
+++ b/unoxml/source/dom/documentbuilder.cxx
@@ -22,6 +22,7 @@
 #include <string.h>
 #include <libxml/xmlerror.h>
+#include <libxml/parser.h>
 #include <memory>
diff --git a/unoxml/source/dom/entity.cxx b/unoxml/source/dom/entity.cxx
index ccc8a0872499..98909dfe8f12 100644
--- a/unoxml/source/dom/entity.cxx
+++ b/unoxml/source/dom/entity.cxx
@@ -22,6 +22,7 @@
 #include <osl/diagnose.h>
 #include <string.h>
+#include <libxml/entities.h>
 using namespace css::uno;
 using namespace css::xml::dom;
diff --git a/unoxml/source/xpath/xpathapi.cxx b/unoxml/source/xpath/xpathapi.cxx
index a60083983882..c2b753783176 100644
--- a/unoxml/source/xpath/xpathapi.cxx
+++ b/unoxml/source/xpath/xpathapi.cxx
@@ -26,6 +26,7 @@
 #include <libxml/xmlerror.h>
 #include <libxml/xpath.h>
 #include <libxml/xpathInternals.h>
+#include <libxml/xmlIO.h>
 #include <com/sun/star/xml/xpath/XPathException.hpp>
@@ -217,7 +218,7 @@ namespace XPath
         return selectSingleNode(contextNode, expr);
     }
-    static OUString make_error_message(xmlErrorPtr pError)
+    static OUString make_error_message(const xmlError* pError)
     {
         OUStringBuffer buf;
         if (pError) {
@@ -259,7 +260,11 @@ namespace XPath
             SAL_WARN("unoxml", "libxml2 error: " << str);
         }
+#if LIBXML_VERSION >= 21200
+        static void structured_error_func(void *, const xmlError* error)
+#else
         static void structured_error_func(void *, xmlErrorPtr error)
+#endif
         {
             SAL_WARN("unoxml", "libxml2 error: " << make_error_message(error));
         }
diff --git a/xmloff/source/core/xmltoken.cxx b/xmloff/source/core/xmltoken.cxx
index 6879f37db295..e11dc0d16111 100644
--- a/xmloff/source/core/xmltoken.cxx
+++ b/xmloff/source/core/xmltoken.cxx
@@ -756,7 +756,7 @@ namespace xmloff::token {
         TOKEN( "embedded-visible-area",           XML_EMBEDDED_VISIBLE_AREA ),
         TOKEN( "embossed",                        XML_EMBOSSED ),
         TOKEN( "emissive-color",                  XML_EMISSIVE_COLOR ),
-        TOKEN( "empty",                           XML_EMPTY ),
+        TOKEN( "empty",                           XML_TOKEN_EMPTY ),
         TOKEN( "empty-line-refresh",              XML_EMPTY_LINE_REFRESH ),
         TOKEN( "enable-numbering",                XML_ENABLE_NUMBERING ),
         TOKEN( "enabled",                         XML_ENABLED ),
diff --git a/xmloff/source/style/PageMasterStyleMap.cxx b/xmloff/source/style/PageMasterStyleMap.cxx
index 7b2cab4751aa..6f631289672b 100644
--- a/xmloff/source/style/PageMasterStyleMap.cxx
+++ b/xmloff/source/style/PageMasterStyleMap.cxx
@@ -157,7 +157,7 @@ const XMLPropertyMapEntry aXMLPageMasterStyleMap[] =
     PLMAP( PROP_FootnoteLineRelativeWidth, XML_NAMESPACE_STYLE,    XML__EMPTY,     XML_TYPE_PERCENT8|MID_FLAG_SPECIAL_ITEM,    CTF_PM_FTN_LINE_WIDTH ),
     PLMAP( PROP_FootnoteLineTextDistance, XML_NAMESPACE_STYLE,    XML__EMPTY,     XML_TYPE_MEASURE|MID_FLAG_SPECIAL_ITEM,    CTF_PM_FTN_LINE_DISTANCE ),
     PLMAP( PROP_FootnoteLineWeight,        XML_NAMESPACE_STYLE,    XML_FOOTNOTE_SEP,    XML_TYPE_MEASURE16|MID_FLAG_ELEMENT_ITEM,    CTF_PM_FTN_LINE_WEIGHT ),
-    PLMAP( PROP_FootnoteLineStyle,     XML_NAMESPACE_STYLE,    XML_EMPTY,  XML_TYPE_STRING|MID_FLAG_ELEMENT_ITEM,  CTF_PM_FTN_LINE_STYLE ),
+    PLMAP( PROP_FootnoteLineStyle,     XML_NAMESPACE_STYLE,    XML_TOKEN_EMPTY,  XML_TYPE_STRING|MID_FLAG_ELEMENT_ITEM,  CTF_PM_FTN_LINE_STYLE ),
     PLMAP_EXT(PROP_GutterMargin, XML_NAMESPACE_LO_EXT, XML_MARGIN_GUTTER, XML_TYPE_MEASURE, CTF_PM_MARGINGUTTER),
     //////////////////////////////////////////////////////////////////////////
diff --git a/xmlsecurity/inc/xmlsec-wrapper.h b/xmlsecurity/inc/xmlsec-wrapper.h
index 7c6d267e8b73..3ad705400c52 100644
--- a/xmlsecurity/inc/xmlsec-wrapper.h
+++ b/xmlsecurity/inc/xmlsec-wrapper.h
@@ -23,6 +23,7 @@
 #include <sal/types.h>
+#include <libxml/parser.h>
 #include <xmlsec/base64.h>
 #include <xmlsec/bn.h>
 #include <xmlsec/errors.h>
diff --git a/xmlsecurity/inc/xmlsec/saxhelper.hxx b/xmlsecurity/inc/xmlsec/saxhelper.hxx
index a49ccef1894c..a5863ffd0e2a 100644
--- a/xmlsecurity/inc/xmlsec/saxhelper.hxx
+++ b/xmlsecurity/inc/xmlsec/saxhelper.hxx
@@ -23,6 +23,7 @@
 #include <string_view>
+#include <libxml/parser.h>
 #include <libxml/tree.h>
 #include <rtl/ustring.hxx>
--
cgit v1.2.1
components/desktop/libreoffice/patches/15-libgpg-error-update-to-1.47.patch
New file
@@ -0,0 +1,291 @@
diff -Nau libreoffice-7.6.4.1/external/libgpg-error/ExternalPackage_libgpg-error.mk ../libreoffice-24.2/libreoffice-24.2.0.0.alpha1/external/libgpg-error/ExternalPackage_libgpg-error.mk
--- libreoffice-7.6.4.1/external/libgpg-error/ExternalPackage_libgpg-error.mk    2023-12-07 16:55:09.200203974 -0500
+++ ../libreoffice-24.2/libreoffice-24.2.0.0.alpha1/external/libgpg-error/ExternalPackage_libgpg-error.mk    2023-12-04 18:55:45.550703416 -0500
@@ -15,7 +15,7 @@
 ifneq (,$(filter LINUX SOLARIS,$(OS)))
-$(eval $(call gb_ExternalPackage_add_file,libgpg-error,$(LIBO_LIB_FOLDER)/libgpg-error-lo.so.0,src/.libs/libgpg-error-lo.so.0.32.1))
+$(eval $(call gb_ExternalPackage_add_file,libgpg-error,$(LIBO_LIB_FOLDER)/libgpg-error-lo.so.0,src/.libs/libgpg-error-lo.so.0.34.0))
 else ifeq ($(OS),MACOSX)
diff -Nau libreoffice-7.6.4.1/external/libgpg-error/ExternalProject_libgpg-error.mk ../libreoffice-24.2/libreoffice-24.2.0.0.alpha1/external/libgpg-error/ExternalProject_libgpg-error.mk
--- libreoffice-7.6.4.1/external/libgpg-error/ExternalProject_libgpg-error.mk    2023-11-30 08:04:41.000000000 -0500
+++ ../libreoffice-24.2/libreoffice-24.2.0.0.alpha1/external/libgpg-error/ExternalProject_libgpg-error.mk    2023-11-23 07:14:48.000000000 -0500
@@ -39,9 +39,8 @@
             --disable-rpath \
             --disable-languages \
             --disable-doc \
-            CFLAGS=" $(CFLAGS) $(call gb_ExternalProject_get_build_flags,libgpg-error)" \
-            CPPFLAGS=" $(SOLARINC)" \
-            $(if $(filter MSC,$(COM)),--force_use_syscfg=true) \
+            CFLAGS="$(CFLAGS) $(call gb_ExternalProject_get_build_flags,libgpg-error)" \
+            CPPFLAGS="$(SOLARINC)" \
             $(gb_CONFIGURE_PLATFORMS) \
             $(if $(filter MACOSX,$(OS)),--prefix=/@.__________________________________________________OOO) \
                     $(if $(filter TRUE,$(DISABLE_DYNLOADING)),--disable-shared,--disable-static) \
diff -Nau libreoffice-7.6.4.1/external/libgpg-error/UnpackedTarball_libgpg-error.mk ../libreoffice-24.2/libreoffice-24.2.0.0.alpha1/external/libgpg-error/UnpackedTarball_libgpg-error.mk
--- libreoffice-7.6.4.1/external/libgpg-error/UnpackedTarball_libgpg-error.mk    2023-12-07 16:55:09.207028595 -0500
+++ ../libreoffice-24.2/libreoffice-24.2.0.0.alpha1/external/libgpg-error/UnpackedTarball_libgpg-error.mk    2023-12-04 18:55:45.558237511 -0500
@@ -16,7 +16,6 @@
 $(eval $(call gb_UnpackedTarball_add_patches,libgpg-error, \
     $(if $(filter MSC,$(COM)),external/libgpg-error/w32-build-fixes.patch) \
     $(if $(filter MSC,$(COM)),external/libgpg-error/w32-build-fixes-2.patch.1) \
-    $(if $(filter MSC,$(COM)),external/libgpg-error/w32-build-fixes-3.patch.1) \
     $(if $(filter MSC,$(COM)),external/libgpg-error/w32-disable-dllinit.patch.1) \
     external/libgpg-error/w32-build-fixes-4.patch \
     $(if $(filter MSC,$(COM)),external/libgpg-error/w32-build-fixes-5.patch) \
diff -Nau libreoffice-7.6.4.1/external/libgpg-error/w32-build-fixes-2.patch.1 ../libreoffice-24.2/libreoffice-24.2.0.0.alpha1/external/libgpg-error/w32-build-fixes-2.patch.1
--- libreoffice-7.6.4.1/external/libgpg-error/w32-build-fixes-2.patch.1    2023-11-30 08:04:41.000000000 -0500
+++ ../libreoffice-24.2/libreoffice-24.2.0.0.alpha1/external/libgpg-error/w32-build-fixes-2.patch.1    2023-11-23 07:14:48.000000000 -0500
@@ -1,17 +1,7 @@
 diff -ru libgpg-error.orig/src/Makefile.in libgpg-error/src/Makefile.in
---- libgpg-error.orig/src/Makefile.in    2017-09-12 08:18:29.376536700 +0200
-+++ libgpg-error/src/Makefile.in    2017-09-12 08:57:11.648083800 +0200
-@@ -512,8 +512,7 @@
- @HAVE_W32_SYSTEM_TRUE@arch_sources = w32-gettext.c w32-lock.c w32-lock-obj.h w32-thread.c \
- @HAVE_W32_SYSTEM_TRUE@           w32-iconv.c w32-estream.c w32-reg.c spawn-w32.c
-
--@HAVE_W32_SYSTEM_TRUE@RCCOMPILE = $(RC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
--@HAVE_W32_SYSTEM_TRUE@            -DLOCALEDIR=\"$(localedir)\" $(AM_CPPFLAGS) $(CPPFLAGS)
-+@HAVE_W32_SYSTEM_TRUE@RCCOMPILE = $(RC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) -DLOCALEDIR=$(localedir) $(AM_CPPFLAGS)
-
- @HAVE_W32_SYSTEM_TRUE@LTRCCOMPILE = $(LIBTOOL) --mode=compile --tag=RC $(RCCOMPILE)
- @HAVE_W32_SYSTEM_TRUE@SUFFIXES = .rc .lo
-@@ -1242,7 +1241,7 @@
+--- libgpg-error.orig/src/Makefile.in    2023-04-06 17:30:13.000000000 +0900
++++ libgpg-error/src/Makefile.in    2023-08-30 14:44:01.102310369 +0900
+@@ -1619,7 +1618,7 @@
  @HAVE_W32_SYSTEM_TRUE@.rc.lo:
@@ -20,12 +10,12 @@
  @HAVE_W32_SYSTEM_TRUE@versioninfo.lo : gpg-error.w32-manifest
-@@ -1283,7 +1282,7 @@
+@@ -1660,7 +1659,7 @@
  # It is correct to use $(CPP).  We want the host's idea of the error codes.
- mkerrcodes.h: Makefile mkerrcodes.awk $(gpg_extra_headers)
+ mkerrcodes.h: Makefile mkerrcodes.awk
      $(AWK) -f $(srcdir)/mkerrcodes1.awk $(srcdir)/errnos.in >_$@
--    $(CPP) $(CPPFLAGS) $(extra_cppflags) -P _$@ | grep GPG_ERR_ | \
-+    $(CPP) $(CPPFLAGS) $(extra_cppflags) _$@ | grep GPG_ERR_ | \
+-    $(CPP) $(CPPFLAGS) -P _$@ | grep GPG_ERR_ | \
++    $(CPP) $(CPPFLAGS) _$@ | grep GPG_ERR_ | \
                 $(AWK) -f $(srcdir)/mkerrcodes.awk >$@
      -rm _$@
diff -Nau libreoffice-7.6.4.1/external/libgpg-error/w32-build-fixes-3.patch.1 ../libreoffice-24.2/libreoffice-24.2.0.0.alpha1/external/libgpg-error/w32-build-fixes-3.patch.1
--- libreoffice-7.6.4.1/external/libgpg-error/w32-build-fixes-3.patch.1    2023-11-30 08:04:41.000000000 -0500
+++ ../libreoffice-24.2/libreoffice-24.2.0.0.alpha1/external/libgpg-error/w32-build-fixes-3.patch.1    1969-12-31 19:00:00.000000000 -0500
@@ -1,57 +0,0 @@
-diff -ru libgpg-error.orig/src/gpg-error.c libgpg-error/src/gpg-error.c
---- libgpg-error.orig/src/gpg-error.c    2016-12-02 22:55:32.000000000 +0100
-+++ libgpg-error/src/gpg-error.c    2017-09-13 22:25:10.040113800 +0200
-@@ -206,7 +206,7 @@
-   static const char src_prefix[] = "GPG_ERR_SOURCE_";
-   static const char code_prefix[] = "GPG_ERR_";
-
--  if (!strncasecmp (src_prefix, str, sizeof (src_prefix) - 1))
-+  if (!_strnicmp (src_prefix, str, sizeof (src_prefix) - 1))
-     {
-       gpg_err_source_t src;
-
-@@ -220,14 +220,14 @@
-       const char *src_sym;
-
-       src_sym = gpg_strsource_sym (src << GPG_ERR_SOURCE_SHIFT);
--      if (src_sym && !strcasecmp (str, src_sym + sizeof (src_prefix) - 1))
-+      if (src_sym && !_stricmp (str, src_sym + sizeof (src_prefix) - 1))
-         {
-           *err |= src << GPG_ERR_SOURCE_SHIFT;
-           return 1;
-         }
-     }
-     }
--  else if (!strncasecmp (code_prefix, str, sizeof (code_prefix) - 1))
-+  else if (!_strnicmp (code_prefix, str, sizeof (code_prefix) - 1))
-     {
-       gpg_err_code_t code;
-
-@@ -240,7 +240,7 @@
-     {
-       const char *code_sym = gpg_strerror_sym (code);
-       if (code_sym
--          && !strcasecmp (str, code_sym + sizeof (code_prefix) - 1))
-+          && !_stricmp (str, code_sym + sizeof (code_prefix) - 1))
-         {
-           *err |= code;
-           return 1;
-@@ -296,7 +296,7 @@
-   for (src = 0; src < GPG_ERR_SOURCE_DIM; src++)
-     {
-       const char *src_str = gpg_strsource (src << GPG_ERR_SOURCE_SHIFT);
--      if (src_str && !strcasecmp (str, src_str))
-+      if (src_str && !_stricmp (str, src_str))
-     {
-       if (*have_source)
-         return 0;
-@@ -310,7 +310,7 @@
-   for (code = 0; code < GPG_ERR_CODE_DIM; code++)
-     {
-       const char *code_str = gpg_strerror (code);
--      if (code_str && !strcasecmp (str, code_str))
-+      if (code_str && !_stricmp (str, code_str))
-     {
-       if (*have_code)
-         return 0;
-Nur in libgpg-error/src: gpg-error.c~.
diff -Nau libreoffice-7.6.4.1/external/libgpg-error/w32-build-fixes-5.patch ../libreoffice-24.2/libreoffice-24.2.0.0.alpha1/external/libgpg-error/w32-build-fixes-5.patch
--- libreoffice-7.6.4.1/external/libgpg-error/w32-build-fixes-5.patch    2023-11-30 08:04:41.000000000 -0500
+++ ../libreoffice-24.2/libreoffice-24.2.0.0.alpha1/external/libgpg-error/w32-build-fixes-5.patch    2023-11-23 07:14:48.000000000 -0500
@@ -14,8 +14,8 @@
  #include "gpgrt-int.h"
---- src/gpg-error.c    2020-06-06 00:18:40.199791000 +0200
-+++ src/gpg-error.c~    2020-06-05 18:44:14.223182300 +0200
+--- src/gpg-error.c    2022-03-04 20:25:28.000000000 +0900
++++ src/gpg-error.c~    2023-08-30 15:10:24.521856169 +0900
 @@ -61,6 +61,11 @@
  #define drop_locale_dir(dir)
  #endif
@@ -28,36 +28,35 @@
  static void
  i18n_init (void)
  {
-
---- src/spawn-w32.c~  2022-01-03 16:33:24.000000000 +0100
-+++ src/spawn-w32.c      2022-01-03 16:46:57.173841200 +0100
+--- src/spawn-w32.c    2023-08-30 15:24:46.861855840 +0900
++++ src/spawn-w32.c~    2023-08-30 15:26:04.581855810 +0900
 @@ -56,7 +56,7 @@
   * Previous versions interpreted X_OK as F_OK anyway, so we'll just
   * use F_OK directly. */
  #undef X_OK
-+#define X_OK 0
 -#define X_OK F_OK
++#define X_OK 0
  /* For HANDLE and the internal file descriptor (fd) of this module:
   * HANDLE can be represented by an intptr_t which should be true for
---- src/logging.c    2020-06-05 18:58:59.254413200 +0200
-+++ src/logging.c~    2019-12-12 15:23:37.000000000 +0100
+--- src/logging.c    2023-03-21 18:33:56.000000000 +0900
++++ src/logging.c~    2023-08-30 15:37:20.661855553 +0900
 @@ -44,7 +44,12 @@
  # include <netinet/in.h>
  # include <arpa/inet.h>
  #endif /*!HAVE_W32_SYSTEM*/
+-#include <unistd.h>
 +#ifdef _WIN32
 +# include <io.h>
 +# include <process.h>
 +#else
 +# include <unistd.h>
 +#endif
--#include <unistd.h>
  #include <fcntl.h>
  /* #include <execinfo.h> */
-@@ -57,6 +53,15 @@
+@@ -53,6 +58,15 @@
  #ifdef HAVE_W32_SYSTEM
@@ -73,40 +72,45 @@
  # ifndef S_IRWXG
  #  define S_IRGRP S_IRUSR
  #  define S_IWGRP S_IWUSR
---- src/Makefile.am    2020-06-06 01:01:31.931459300 +0200
-+++ src/Makefile.am~    2020-02-06 18:39:06.000000000 +0100
-@@ -213,7 +213,7 @@
- # without the extra_cppflags because they may include am -idirafter
- # which is not supported by the RC compiler.
- libgpg_error_la_CPPFLAGS = -DLOCALEDIR=\"$(localedir)\" $(extra_cppflags)
-+libgpg_error_la_LIBADD = $(gpg_error_res) $(intllibs) $(socklibs) -ladvapi32 $(LIBTHREAD)
+--- src/Makefile.am    2022-08-19 17:39:54.000000000 +0900
++++ src/Makefile.am~    2023-08-30 15:41:10.371855465 +0900
+@@ -208,8 +208,8 @@
+ # libgpg_error_la_DEPENDENCIES = \
+ #        $(srcdir)/gpg-error.vers
+
+-libgpg_error_la_CPPFLAGS = -DLOCALEDIR=\"$(localedir)\"
 -libgpg_error_la_LIBADD = $(gpg_error_res) $(intllibs) $(socklibs) $(LIBTHREAD)
++libgpg_error_la_CPPFLAGS = -DLOCALEDIR=$(localelidir)
++libgpg_error_la_LIBADD = $(gpg_error_res) $(intllibs) $(socklibs) -ladvapi32 $(LIBTHREAD)
  gpg_error_SOURCES = strsource-sym.c strerror-sym.c gpg-error.c
  gpg_error_CPPFLAGS = -DPKGDATADIR=\"$(pkgdatadir)\" \
---- src/Makefile.in    2020-06-06 01:01:31.931459300 +0200
-+++ src/Makefile.in~    2020-02-06 18:39:06.000000000 +0100
-@@ -659,7 +659,7 @@
- # without the extra_cppflags because they may include am -idirafter
- # which is not supported by the RC compiler.
- libgpg_error_la_CPPFLAGS = -DLOCALEDIR=\"$(localedir)\" $(extra_cppflags)
-+libgpg_error_la_LIBADD = $(gpg_error_res) $(intllibs) $(socklibs) -ladvapi32 $(LIBTHREAD)
+--- src/Makefile.in    2023-08-30 14:44:01.102310369 +0900
++++ src/Makefile.in~    2023-08-30 15:54:38.371855157 +0900
+@@ -662,8 +662,8 @@
+
+ # libgpg_error_la_DEPENDENCIES = \
+ #        $(srcdir)/gpg-error.vers
+-libgpg_error_la_CPPFLAGS = -DLOCALEDIR=\"$(localedir)\"
 -libgpg_error_la_LIBADD = $(gpg_error_res) $(intllibs) $(socklibs) $(LIBTHREAD)
++libgpg_error_la_CPPFLAGS = -DLOCALEDIR=$(localedir)
++libgpg_error_la_LIBADD = $(gpg_error_res) $(intllibs) $(socklibs) -ladvapi32 $(LIBTHREAD)
  gpg_error_SOURCES = strsource-sym.c strerror-sym.c gpg-error.c
  gpg_error_CPPFLAGS = -DPKGDATADIR=\"$(pkgdatadir)\" \
-                      -DLOCALEDIR=\"$(localedir)\" $(extra_cppflags)
---- src/sysutils.c    2020-06-06 00:23:52.457265500 +0200
-+++ src/sysutils.c~    2019-12-12 15:23:37.000000000 +0100
-@@ -22,7 +22,11 @@
+                      -DLOCALEDIR=\"$(localedir)\"
+--- src/sysutils.c    2023-03-21 18:33:56.000000000 +0900
++++ src/sysutils.c~    2023-08-30 15:57:34.401855090 +0900
+@@ -22,7 +22,12 @@
  #include <stdlib.h>
  #include <stdint.h>
  #include <string.h>
+-#include <unistd.h>
 +#ifdef _WIN32
 +# include <io.h>
++# define W_OK 02
 +#else
 +# include <unistd.h>
 +#endif
--#include <unistd.h>
  #include <errno.h>
  #ifdef HAVE_W32_SYSTEM
  # include <windows.h>
@@ -132,10 +136,10 @@
                                    const char *name);
 +
 +wchar_t *utf8_to_wchar (const char *string, size_t length, size_t *retlen);
---- src/w32-gettext.c    2020-06-06 00:33:24.680341900 +0200
-+++ src/w32-gettext.c~    2020-06-05 18:44:14.254481700 +0200
-@@ -1355,7 +1355,7 @@
-    is not defined.  If LENGTH is zero and RETLEN NULL the fucntion
+--- src/w32-gettext.c    2022-03-04 21:44:26.000000000 +0900
++++ src/w32-gettext.c~    2023-08-30 16:01:12.861855006 +0900
+@@ -1325,7 +1325,7 @@
+    is not defined.  If LENGTH is zero and RETLEN NULL the function
     assumes that STRING is a nul-terminated string and returns a
     (wchar_t)0-terminated string.  */
 +wchar_t *
--- libreoffice-7.6.4.1/download.lst    2023-11-30 08:04:41.000000000 -0500
+++ /tmp/download.lst    2023-12-07 21:42:49.523945510 -0500
@@ -314,8 +314,8 @@
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-LIBGPGERROR_SHA256SUM := a9ab83ca7acc442a5bd846a75b920285ff79bdb4e3d34aa382be88ed2c3aebaf
-LIBGPGERROR_TARBALL := libgpg-error-1.43.tar.bz2
+LIBGPGERROR_SHA256SUM := 9e3c670966b96ecc746c28c2c419541e3bcb787d1a73930f5e5f5e1bcbbb9bdb
+LIBGPGERROR_TARBALL := libgpg-error-1.47.tar.bz2
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
components/desktop/libreoffice/patches/18-show-illumos-version-in-about.patch
@@ -1,16 +1,11 @@
--- core-92e5898fa9ffa4dd8742f5f26e790563feef286e/vcl/unx/generic/app/geninst.cxx.~1~    2023-11-14 18:32:13.000000000 -0500
+++ core-92e5898fa9ffa4dd8742f5f26e790563feef286e/vcl/unx/generic/app/geninst.cxx    2023-11-15 11:52:00.367591187 -0500
@@ -22,7 +22,12 @@
@@ -22,7 +22,7 @@
 #if defined(LINUX)
 #  include <stdio.h>
 #endif
-#if defined(__FreeBSD__)
+#if defined(__FreeBSD__) || defined(__sun)
+#  if defined(__sun)
+#    ifndef __EXTENSIONS__
+#      define __EXTENSIONS__
+#    endif
+#  endif
 #  include <sys/utsname.h>
 #endif
 
@@ -22,7 +17,7 @@
+    struct utsname stName;
+    uname( &stName );
+
+    aKernelVer = OUString::createFromAscii(stName.sysname) + " " + OUString::createFromAscii( stName.release );
+    aKernelVer = OUString::createFromAscii( stName.sysname ) + " " + OUString::createFromAscii( stName.release )+ " " + OUString::createFromAscii( stName.version );
 #elif defined(EMSCRIPTEN)
 #define str(s) #s
 #define xstr(s) str(s)
components/desktop/libreoffice/patches/20-skia-illumos-no-malloc-usable-size.patch
@@ -13,13 +13,13 @@
+         completeSize = malloc_usable_size(ptr);
+         SkASSERT(completeSize >= size);
+     #elif defined(SK_BUILD_FOR_WIN)
diff -Naur libreoffice-7.6.0.0.beta1/external/skia.old/UnpackedTarball_skia.mk libreoffice-7.6.0.0.beta1/external/skia/UnpackedTarball_skia.mk
--- libreoffice-7.6.0.0.beta1/external/skia.old/UnpackedTarball_skia.mk    2023-06-07 13:06:20.000000000 -0400
+++ libreoffice-7.6.0.0.beta1/external/skia/UnpackedTarball_skia.mk    2023-06-21 16:46:15.910783165 -0400
@@ -39,6 +39,7 @@
     tdf147342.patch.0 \
diff -Naur core-e19e193f88cd6c0525a17fb7a176ed8e6a3e2aa1/external/skia/UnpackedTarball_skia.mk.old core-e19e193f88cd6c0525a17fb7a176ed8e6a3e2aa1/external/skia/UnpackedTarball_skia.mk
--- core-e19e193f88cd6c0525a17fb7a176ed8e6a3e2aa1/external/skia/UnpackedTarball_skia.mk.old    2023-12-02 09:55:43.216743100 -0500
+++ core-e19e193f88cd6c0525a17fb7a176ed8e6a3e2aa1/external/skia/UnpackedTarball_skia.mk    2023-12-02 09:56:03.764496725 -0500
@@ -40,6 +40,7 @@
     redefinition-of-op.patch.0 \
     0001-Added-missing-include-cstdio.patch \
     0001-AvoidCombiningExtrememelyLargeMeshes.patch.1 \
+    illumos-no-malloc-usable-size.patch \
 
 $(eval $(call gb_UnpackedTarball_set_patchlevel,skia,1))
components/desktop/libreoffice/patches/23-update-xmlsec.patch
New file
@@ -0,0 +1,106 @@
diff -Nau libreoffice-7.6.4.1/external/xmlsec/ExternalProject_xmlsec.mk ../libreoffice-24.2/libreoffice-24.2.0.0.alpha1/external/xmlsec/ExternalProject_xmlsec.mk
--- libreoffice-7.6.4.1/external/xmlsec/ExternalProject_xmlsec.mk    2023-11-30 08:04:41.000000000 -0500
+++ ../libreoffice-24.2/libreoffice-24.2.0.0.alpha1/external/xmlsec/ExternalProject_xmlsec.mk    2023-11-23 07:14:48.000000000 -0500
@@ -50,6 +50,7 @@
         && $(gb_RUN_CONFIGURE) ./configure \
             --with-pic --disable-shared --disable-crypto-dl --without-libxslt --without-gnutls --without-gcrypt --disable-apps --disable-docs --disable-pedantic \
             $(if $(verbose),--disable-silent-rules,--enable-silent-rules) \
+            $(if $(filter -fsanitize=undefined,$(CC)),CC='$(CC) -fno-sanitize=function') \
             CFLAGS="$(CFLAGS) $(call gb_ExternalProject_get_build_flags,xmlsec) $(gb_VISIBILITY_FLAGS)" \
             $(if $(filter MACOSX,$(OS)),--prefix=/@.__________________________________________________OOO) \
             $(if $(ENABLE_NSS), \
diff -Nau libreoffice-7.6.4.1/external/xmlsec/old-nss.patch.1 ../libreoffice-24.2/libreoffice-24.2.0.0.alpha1/external/xmlsec/old-nss.patch.1
--- libreoffice-7.6.4.1/external/xmlsec/old-nss.patch.1    1969-12-31 19:00:00.000000000 -0500
+++ ../libreoffice-24.2/libreoffice-24.2.0.0.alpha1/external/xmlsec/old-nss.patch.1    2023-11-23 07:14:48.000000000 -0500
@@ -0,0 +1,66 @@
+diff --git a/include/xmlsec/nss/crypto.h b/include/xmlsec/nss/crypto.h
+index bb64c5f2..fe9904be 100644
+--- a/include/xmlsec/nss/crypto.h
++++ b/include/xmlsec/nss/crypto.h
+@@ -105,6 +105,7 @@ XMLSEC_CRYPTO_EXPORT xmlSecTransformId  xmlSecNssTransformAes192CbcGetKlass(void
+ XMLSEC_CRYPTO_EXPORT xmlSecTransformId  xmlSecNssTransformAes256CbcGetKlass(void);
+
+
++#if 0
+ /**
+  * xmlSecNssTransformAes128GcmId:
+  *
+@@ -131,6 +132,7 @@ XMLSEC_CRYPTO_EXPORT xmlSecTransformId  xmlSecNssTransformAes192GcmGetKlass(void
+ #define xmlSecNssTransformAes256GcmId \
+         xmlSecNssTransformAes256GcmGetKlass()
+ XMLSEC_CRYPTO_EXPORT xmlSecTransformId  xmlSecNssTransformAes256GcmGetKlass(void);
++#endif
+
+
+ /**
+diff --git a/src/nss/ciphers_gcm.c b/src/nss/ciphers_gcm.c
+index 5763a756..7b50e5fd 100644
+--- a/src/nss/ciphers_gcm.c
++++ b/src/nss/ciphers_gcm.c
+@@ -31,6 +31,7 @@
+ #include "../cast_helpers.h"
+ #include "../kw_aes_des.h"
+
++#if 0
+ /* https://www.w3.org/TR/xmlenc-core1/#sec-AES-GCM
+  *
+  * For the purposes of this specification, AES-GCM shall be used with
+@@ -591,3 +592,4 @@ xmlSecNssTransformAes256GcmGetKlass(void) {
+ }
+
+ #endif /* XMLSEC_NO_AES */
++#endif
+diff --git a/src/nss/crypto.c b/src/nss/crypto.c
+index 429d209f..e0296bda 100644
+--- a/src/nss/crypto.c
++++ b/src/nss/crypto.c
+@@ -131,9 +131,11 @@ xmlSecCryptoGetFunctions_nss(void) {
+     gXmlSecNssFunctions->transformAes192CbcGetKlass     = xmlSecNssTransformAes192CbcGetKlass;
+     gXmlSecNssFunctions->transformAes256CbcGetKlass     = xmlSecNssTransformAes256CbcGetKlass;
+
++#if 0
+     gXmlSecNssFunctions->transformAes128GcmGetKlass     = xmlSecNssTransformAes128GcmGetKlass;
+     gXmlSecNssFunctions->transformAes192GcmGetKlass     = xmlSecNssTransformAes192GcmGetKlass;
+     gXmlSecNssFunctions->transformAes256GcmGetKlass     = xmlSecNssTransformAes256GcmGetKlass;
++#endif
+
+     gXmlSecNssFunctions->transformKWAes128GetKlass      = xmlSecNssTransformKWAes128GetKlass;
+     gXmlSecNssFunctions->transformKWAes192GetKlass      = xmlSecNssTransformKWAes192GetKlass;
+diff --git a/include/xmlsec/nss/crypto.h b/include/xmlsec/nss/crypto.h
+index bb64c5f2..4c3dc4d3 100644
+--- a/include/xmlsec/nss/crypto.h
++++ b/include/xmlsec/nss/crypto.h
+@@ -26,7 +26,7 @@
+  * RSA OAEP requires https://bugzilla.mozilla.org/show_bug.cgi?id=1666891
+  * which was fixed in NSS 3.59 (https://firefox-source-docs.mozilla.org/security/nss/legacy/nss_releases/nss_3.59_release_notes/index.html)
+  */
+-#if (NSS_VMAJOR < 3) || ((NSS_VMAJOR == 3) && (NSS_VMINOR < 59))
++#if 1
+ #define XMLSEC_NO_RSA_OAEP 1
+ #else  /* (NSS_VMAJOR < 3) || ((NSS_VMAJOR == 3) && (NSS_VMINOR < 59)) */
+ #define XMLSEC_NO_MD5 1
diff -Nau libreoffice-7.6.4.1/external/xmlsec/UnpackedTarball_xmlsec.mk ../libreoffice-24.2/libreoffice-24.2.0.0.alpha1/external/xmlsec/UnpackedTarball_xmlsec.mk
--- libreoffice-7.6.4.1/external/xmlsec/UnpackedTarball_xmlsec.mk    2023-11-30 08:04:41.000000000 -0500
+++ ../libreoffice-24.2/libreoffice-24.2.0.0.alpha1/external/xmlsec/UnpackedTarball_xmlsec.mk    2023-11-23 07:14:48.000000000 -0500
@@ -8,6 +8,8 @@
 #
 xmlsec_patches :=
+# Remove this when Ubuntu 20.04 is EOL in 2025.
+xmlsec_patches += old-nss.patch.1
 $(eval $(call gb_UnpackedTarball_UnpackedTarball,xmlsec))
--- libreoffice-7.6.4.1/download.lst    2023-12-07 22:00:42.858310396 -0500
+++ /tmp/download.lst    2023-12-07 22:57:43.056892097 -0500
@@ -339,8 +339,8 @@
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-XMLSEC_SHA256SUM := 5f8dfbcb6d1e56bddd0b5ec2e00a3d0ca5342a9f57c24dffde5c796b2be2871c
-XMLSEC_TARBALL := xmlsec1-1.2.37.tar.gz
+XMLSEC_SHA256SUM := 4003c56b3d356d21b1db7775318540fad6bfedaf5f117e8f7c010811219be3cf
+XMLSEC_TARBALL := xmlsec1-1.3.2.tar.gz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
components/desktop/libreoffice/patches/24-xmlsec-with-libxml2-fixes.patch
New file
@@ -0,0 +1,167 @@
diff -Naur libreoffice-7.6.4.1/external/xmlsec.old/libxml2.12.patch libreoffice-7.6.4.1/external/xmlsec/libxml2.12.patch
--- libreoffice-7.6.4.1/external/xmlsec.old/libxml2.12.patch.1    1969-12-31 19:00:00.000000000 -0500
+++ libreoffice-7.6.4.1/external/xmlsec/libxml2.12.patch.1    2023-12-08 00:03:45.535040810 -0500
@@ -0,0 +1,150 @@
+From 098a4d0219d3ed672bf8e5934ca7482dc739b103 Mon Sep 17 00:00:00 2001
+From: Aleksey Sanin <aleksey@aleksey.com>
+Date: Mon, 20 Nov 2023 09:27:33 -0500
+Subject: [PATCH 1/3] Fix libxml2 includes
+
+---
+ include/xmlsec/xmlsec.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/include/xmlsec/xmlsec.h b/include/xmlsec/xmlsec.h
+index 5757fc57..6f910122 100644
+--- a/include/xmlsec/xmlsec.h
++++ b/include/xmlsec/xmlsec.h
+@@ -12,6 +12,7 @@
+ #define __XMLSEC_H__
+
+ #include <libxml/tree.h>
++#include <libxml/parser.h>
+
+ #include <xmlsec/version.h>
+ #include <xmlsec/exports.h>
+
+From bd909345a8dcf093ac7acb0bc2f415717dad77b4 Mon Sep 17 00:00:00 2001
+From: Aleksey Sanin <aleksey@aleksey.com>
+Date: Mon, 20 Nov 2023 09:36:38 -0500
+Subject: [PATCH 2/3] Fix libxml2 includes
+
+---
+ apps/xmlsec.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/apps/xmlsec.c b/apps/xmlsec.c
+index 7655c1db..4bedb16a 100644
+--- a/apps/xmlsec.c
++++ b/apps/xmlsec.c
+@@ -22,6 +22,7 @@
+ #include <libxml/xmlmemory.h>
+ #include <libxml/parser.h>
+ #include <libxml/xpath.h>
++#include <libxml/xmlsave.h>
+ #include <libxml/xpathInternals.h>
+
+ #ifndef XMLSEC_NO_XSLT
+@@ -3030,7 +3031,7 @@ xmlSecAppInit(void) {
+     /* Init libxml */
+     xmlInitParser();
+     LIBXML_TEST_VERSION
+-    xmlTreeIndentString = "\t";
++    xmlThrDefTreeIndentString("\t");
+ #ifndef XMLSEC_NO_XSLT
+     xmlIndentTreeOutput = 1;
+ #endif /* XMLSEC_NO_XSLT */
+
+From c29133fbeea739640ad4aace67cb4242b16f7757 Mon Sep 17 00:00:00 2001
+From: Aleksey Sanin <aleksey@aleksey.com>
+Date: Mon, 20 Nov 2023 09:43:23 -0500
+Subject: [PATCH 3/3] Fix all warnings
+
+---
+ apps/crypto.c             |  1 +
+ src/errors_helpers.h      | 10 +++++-----
+ src/mscrypto/certkeys.c   |  1 +
+ src/mscrypto/signatures.c |  1 +
+ 4 files changed, 8 insertions(+), 5 deletions(-)
+
+diff --git a/apps/crypto.c b/apps/crypto.c
+index 8561dd65..4411233d 100644
+--- a/apps/crypto.c
++++ b/apps/crypto.c
+@@ -12,6 +12,7 @@
+ #endif
+
+ #include <string.h>
++#include <stdlib.h>
+
+ #include <xmlsec/xmlsec.h>
+ #include <xmlsec/keys.h>
+diff --git a/src/errors_helpers.h b/src/errors_helpers.h
+index 1a4f4183..470fdde6 100644
+--- a/src/errors_helpers.h
++++ b/src/errors_helpers.h
+@@ -136,7 +136,7 @@ extern "C" {
+  */
+ #define xmlSecXmlError(errorFunction, errorObject) \
+     {                                                 \
+-        xmlErrorPtr error = xmlGetLastError();        \
++        const xmlError * error = xmlGetLastError();        \
+         int code = (error != NULL) ? error->code : 0; \
+         const char* message = (error != NULL) ? error->message : NULL; \
+         xmlSecError(XMLSEC_ERRORS_HERE,               \
+@@ -159,7 +159,7 @@ extern "C" {
+  */
+ #define xmlSecXmlError2(errorFunction, errorObject, msg, param) \
+     {                                                 \
+-        xmlErrorPtr error = xmlGetLastError();        \
++        const xmlError * error = xmlGetLastError();        \
+         int code = (error != NULL) ? error->code : 0; \
+         const char* message = (error != NULL) ? error->message : NULL; \
+         xmlSecError(XMLSEC_ERRORS_HERE,               \
+@@ -181,7 +181,7 @@ extern "C" {
+  */
+ #define xmlSecXmlParserError(errorFunction, ctxt, errorObject) \
+     {                                                 \
+-        xmlErrorPtr error = xmlCtxtGetLastError(ctxt);\
++        const xmlError * error = xmlCtxtGetLastError(ctxt);\
+         int code = (error != NULL) ? error->code : 0; \
+         const char* message = (error != NULL) ? error->message : NULL; \
+         xmlSecError(XMLSEC_ERRORS_HERE,               \
+@@ -205,7 +205,7 @@ extern "C" {
+  */
+ #define xmlSecXmlParserError2(errorFunction, ctxt, errorObject, msg, param) \
+     {                                                 \
+-        xmlErrorPtr error = xmlCtxtGetLastError(ctxt);\
++        const xmlError * error = xmlCtxtGetLastError(ctxt);\
+         int code = (error != NULL) ? error->code : 0; \
+         const char* message = (error != NULL) ? error->message : NULL; \
+         xmlSecError(XMLSEC_ERRORS_HERE,               \
+@@ -227,7 +227,7 @@ extern "C" {
+  */
+ #define xmlSecXsltError(errorFunction, ctxt, errorObject) \
+     {                                                 \
+-        xmlErrorPtr error = xmlGetLastError();        \
++        const xmlError * error = xmlGetLastError();        \
+         int code = (error != NULL) ? error->code : 0; \
+         const char* message = (error != NULL) ? error->message : NULL; \
+         xmlSecError(XMLSEC_ERRORS_HERE,               \
+diff --git a/src/mscrypto/certkeys.c b/src/mscrypto/certkeys.c
+index db74517a..7e02a199 100644
+--- a/src/mscrypto/certkeys.c
++++ b/src/mscrypto/certkeys.c
+@@ -18,6 +18,7 @@
+ #include "globals.h"
+
+ #include <string.h>
++#include <stdlib.h>
+
+ #ifndef XMLSEC_NO_GOST
+ #include "csp_oid.h"
+diff --git a/src/mscrypto/signatures.c b/src/mscrypto/signatures.c
+index 61b95407..c5c62ced 100644
+--- a/src/mscrypto/signatures.c
++++ b/src/mscrypto/signatures.c
+@@ -17,6 +17,7 @@
+ #include "globals.h"
+
+ #include <string.h>
++#include <stdlib.h>
+
+ #ifndef XMLSEC_NO_GOST
+ #include "csp_calg.h"
diff -Naur libreoffice-7.6.4.1/external/xmlsec.old/UnpackedTarball_xmlsec.mk libreoffice-7.6.4.1/external/xmlsec/UnpackedTarball_xmlsec.mk
--- libreoffice-7.6.4.1/external/xmlsec.old/UnpackedTarball_xmlsec.mk    2023-12-08 00:07:27.100169778 -0500
+++ libreoffice-7.6.4.1/external/xmlsec/UnpackedTarball_xmlsec.mk    2023-12-08 00:08:42.771589023 -0500
@@ -9,7 +9,8 @@
 xmlsec_patches :=
 # Remove this when Ubuntu 20.04 is EOL in 2025.
-xmlsec_patches += old-nss.patch.1
+xmlsec_patches += old-nss.patch.1 \
+                  libxml2.12.patch.1
 $(eval $(call gb_UnpackedTarball_UnpackedTarball,xmlsec))
components/desktop/libreoffice/patches/25-libcmis-with-libxml2-fixes.patch
New file
@@ -0,0 +1,47 @@
diff -Naur libreoffice-7.6.4.1/external/libcmis.old/libxml2.12.patch.1 libreoffice-7.6.4.1/external/libcmis/libxml2.12.patch.1
--- libreoffice-7.6.4.1/external/libcmis.old/libxml2.12.patch.1    1969-12-31 19:00:00.000000000 -0500
+++ libreoffice-7.6.4.1/external/libcmis/libxml2.12.patch.1    2023-12-08 01:05:47.749409990 -0500
@@ -0,0 +1,23 @@
+From 72618e63433c7243e4d9e79a638f19a09402eecc Mon Sep 17 00:00:00 2001
+From: Andreas Sturmlechner <asturm@gentoo.org>
+Date: Tue, 21 Nov 2023 23:10:07 +0100
+Subject: [PATCH] Fix build with libxml2-2.12 (missing include)
+
+See also: https://github.com/tdf/libcmis/issues/51
+Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
+---
+ inc/libcmis/xml-utils.hxx | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/inc/libcmis/xml-utils.hxx b/inc/libcmis/xml-utils.hxx
+index 929385e1..9bd99aed 100644
+--- a/inc/libcmis/xml-utils.hxx
++++ b/inc/libcmis/xml-utils.hxx
+@@ -34,6 +34,7 @@
+ #include <string>
+
+ #include <boost/date_time.hpp>
++#include <libxml/parser.h>
+ #include <libxml/tree.h>
+ #include <libxml/xpathInternals.h>
+ #include <libxml/xmlwriter.h>
diff -Naur libreoffice-7.6.4.1/external/libcmis.old/UnpackedTarball_libcmis.mk libreoffice-7.6.4.1/external/libcmis/UnpackedTarball_libcmis.mk
--- libreoffice-7.6.4.1/external/libcmis.old/UnpackedTarball_libcmis.mk    2023-11-30 08:04:41.000000000 -0500
+++ libreoffice-7.6.4.1/external/libcmis/UnpackedTarball_libcmis.mk    2023-12-08 01:07:50.368597480 -0500
@@ -7,6 +7,8 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 #
+libcmis_patches := libxml2.12.patch.1
+
 $(eval $(call gb_UnpackedTarball_UnpackedTarball,libcmis))
 $(eval $(call gb_UnpackedTarball_set_tarball,libcmis,$(LIBCMIS_TARBALL)))
@@ -14,6 +16,7 @@
 $(eval $(call gb_UnpackedTarball_set_patchlevel,libcmis,1))
 $(eval $(call gb_UnpackedTarball_add_patches,libcmis,\
+        $(foreach patch,$(libcmis_patches),external/libcmis/$(patch)) \
 ))
 # vim: set noet sw=4 ts=4:
components/desktop/libreoffice/test/results-all.master
Diff too large