Rebased ref, commits from common ancestor:
commit cd6de67c3c9904b9eddb75693e3d094ec3a5c775
Author:     Thorsten Behrens <thorsten.behr...@allotropia.de>
AuthorDate: Fri May 17 15:08:38 2024 +0200
Commit:     Thorsten Behrens <thorsten.behr...@allotropia.de>
CommitDate: Sat May 18 00:55:31 2024 +0200

    Release 6.3.6.30
    
    Change-Id: Ibc748fa574e6e1c51cf831cb05bd74539a39f659

diff --git a/configure.ac b/configure.ac
index 60aeedba4c1b..4866a9848474 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],[6.3.6.29],[],[],[http://documentfoundation.org/])
+AC_INIT([LibreOffice],[6.3.6.30],[],[],[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 6583a93ad2a6e9ff7d64d119a4da8c5c12cfc61d
Author:     Caolán McNamara <caolan.mcnam...@collabora.com>
AuthorDate: Thu Jan 4 17:00:06 2024 +0000
Commit:     Thorsten Behrens <thorsten.behr...@allotropia.de>
CommitDate: Sat May 18 00:55:30 2024 +0200

    std::size/SAL_N_ELEMENTS also counts the null terminator
    
    which libxml2 2.12 will fail on with error:
    
    'Extra content at the end of the document'
    
    Change-Id: I9d5da9fdd826cce8462ede8c510eaea7281b760f
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161627
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolan.mcnam...@collabora.com>
    (cherry picked from commit cbb17a548b5cc6a99b6ed7735479bb4f2bc40f26)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161643
    Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org>

diff --git a/unoxml/qa/unit/domtest.cxx b/unoxml/qa/unit/domtest.cxx
index 15e337772314..0129c85cfe4b 100644
--- a/unoxml/qa/unit/domtest.cxx
+++ b/unoxml/qa/unit/domtest.cxx
@@ -207,9 +207,9 @@ struct BasicTest : public test::BootstrapFixture
         mxErrHandler.set( new ErrorHandler() );
         uno::Reference<XDocumentBuilder> xDB( 
getMultiServiceFactory()->createInstance("com.sun.star.xml.dom.DocumentBuilder"),
 uno::UNO_QUERY_THROW );
         mxDomBuilder.set( xDB );
-        mxValidInStream.set( new 
SequenceInputStream(css::uno::Sequence<sal_Int8>(reinterpret_cast<sal_Int8 
const *>(validTestFile), SAL_N_ELEMENTS(validTestFile))) );
-        mxWarningInStream.set( new 
SequenceInputStream(css::uno::Sequence<sal_Int8>(reinterpret_cast<sal_Int8 
const *>(warningTestFile), SAL_N_ELEMENTS(warningTestFile))) );
-        mxErrorInStream.set( new 
SequenceInputStream(css::uno::Sequence<sal_Int8>(reinterpret_cast<sal_Int8 
const *>(errorTestFile), SAL_N_ELEMENTS(errorTestFile))) );
+        mxValidInStream.set( new 
SequenceInputStream(css::uno::Sequence<sal_Int8>(reinterpret_cast<sal_Int8 
const *>(validTestFile), SAL_N_ELEMENTS(validTestFile)-1)) );
+        mxWarningInStream.set( new 
SequenceInputStream(css::uno::Sequence<sal_Int8>(reinterpret_cast<sal_Int8 
const *>(warningTestFile), SAL_N_ELEMENTS(warningTestFile)-1)) );
+        mxErrorInStream.set( new 
SequenceInputStream(css::uno::Sequence<sal_Int8>(reinterpret_cast<sal_Int8 
const *>(errorTestFile), SAL_N_ELEMENTS(errorTestFile)-1)) );
         mxDomBuilder->setErrorHandler(mxErrHandler.get());
     }
 
@@ -293,7 +293,7 @@ struct SerializerTest : public test::BootstrapFixture
         mxErrHandler.set( new ErrorHandler() );
         uno::Reference<XDocumentBuilder> xDB( 
getMultiServiceFactory()->createInstance("com.sun.star.xml.dom.DocumentBuilder"),
 uno::UNO_QUERY_THROW );
         mxDomBuilder.set( xDB );
-        mxInStream.set( new 
SequenceInputStream(css::uno::Sequence<sal_Int8>(reinterpret_cast<sal_Int8 
const *>(validTestFile), SAL_N_ELEMENTS(validTestFile))) );
+        mxInStream.set( new 
SequenceInputStream(css::uno::Sequence<sal_Int8>(reinterpret_cast<sal_Int8 
const *>(validTestFile), SAL_N_ELEMENTS(validTestFile)-1)) );
         mxDomBuilder->setErrorHandler(mxErrHandler.get());
         mxHandler.set( new DocumentHandler );
         mxTokHandler.set( new TokenHandler );
commit dd30c1add7b14c4da7b8fbea46aacf4ee2f50720
Author:     Michael Stahl <michael.st...@allotropia.de>
AuthorDate: Fri Mar 8 13:40:44 2024 +0100
Commit:     Thorsten Behrens <thorsten.behr...@allotropia.de>
CommitDate: Sat May 18 00:55:30 2024 +0200

    sal: the old MSVC doesn't know _Pragma, only __pragma
    
    Change-Id: I139922d9cfabb3772782589f097234fd33e41809

diff --git a/include/sal/types.h b/include/sal/types.h
index f702708cff9c..d9aef75c1df8 100644
--- a/include/sal/types.h
+++ b/include/sal/types.h
@@ -497,10 +497,10 @@ template< typename T1, typename T2 > inline T1 
static_int_cast(T2 n) {
     _Pragma(SAL_STRINGIFY_ARG(GCC diagnostic pop))
 #elif defined LIBO_INTERNAL_ONLY && defined _MSC_VER
 #define SAL_WNODEPRECATED_DECLARATIONS_PUSH \
-    _Pragma(SAL_STRINGIFY_ARG(warning(push))) \
-    _Pragma(SAL_STRINGIFY_ARG(warning(disable : 4996)))
+    __pragma(warning(push)) \
+    __pragma(warning(disable : 4996))
 #define SAL_WNODEPRECATED_DECLARATIONS_POP \
-    _Pragma(SAL_STRINGIFY_ARG(warning(pop)))
+    __pragma(warning(pop))
 #else
 #   define SAL_WNODEPRECATED_DECLARATIONS_PUSH
 #   define SAL_WNODEPRECATED_DECLARATIONS_POP
commit 7087d79c9ae9769eb0f3bee12dd8c52e31b8eff4
Author:     Mike Kaganski <mike.kagan...@collabora.com>
AuthorDate: Wed Feb 21 22:27:37 2024 +0600
Commit:     Thorsten Behrens <thorsten.behr...@allotropia.de>
CommitDate: Sat May 18 00:55:30 2024 +0200

    Implement SAL_WNODEPRECATED_DECLARATIONS_[PUSH/POP] on MSVC
    
    Required for --disable-nss build on Windows, which needs the same fix as in
    commit 71d4abc51b556e147ab53a9a52b15be36fc710a3 
(-Werror,-Wdeprecated-declarations
    (Emscripten), 2024-01-18).
    
    Change-Id: I4206cbc0cb80be7ddee1c3f21de50d853828300e
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163704
    Tested-by: Jenkins
    Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com>
    (cherry picked from commit 6329a56f601748f5a8dd6da9f0a90d3e57efcaf2)

diff --git a/include/sal/types.h b/include/sal/types.h
index e2442ea6c998..f702708cff9c 100644
--- a/include/sal/types.h
+++ b/include/sal/types.h
@@ -495,6 +495,12 @@ template< typename T1, typename T2 > inline T1 
static_int_cast(T2 n) {
     _Pragma(SAL_STRINGIFY_ARG(GCC diagnostic ignored 
"-Wdeprecated-declarations"))
 #define SAL_WNODEPRECATED_DECLARATIONS_POP \
     _Pragma(SAL_STRINGIFY_ARG(GCC diagnostic pop))
+#elif defined LIBO_INTERNAL_ONLY && defined _MSC_VER
+#define SAL_WNODEPRECATED_DECLARATIONS_PUSH \
+    _Pragma(SAL_STRINGIFY_ARG(warning(push))) \
+    _Pragma(SAL_STRINGIFY_ARG(warning(disable : 4996)))
+#define SAL_WNODEPRECATED_DECLARATIONS_POP \
+    _Pragma(SAL_STRINGIFY_ARG(warning(pop)))
 #else
 #   define SAL_WNODEPRECATED_DECLARATIONS_PUSH
 #   define SAL_WNODEPRECATED_DECLARATIONS_POP
commit 13208e6bb3b96762f8be8759dc4e234ba95a0642
Author:     Michael Stahl <michael.st...@allotropia.de>
AuthorDate: Mon Sep 25 14:22:40 2023 +0200
Commit:     Thorsten Behrens <thorsten.behr...@allotropia.de>
CommitDate: Sat May 18 00:55:30 2024 +0200

    libtommath: upgrade to release 1.2.1
    
    Fixes CVE-2023-36328.
    
    Change-Id: I1193f5df789c7dd10855e35936fc2697697c464e
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157246
    Tested-by: Jenkins
    Reviewed-by: Michael Stahl <michael.st...@allotropia.de>
    (cherry picked from commit 3daab618c759be2b93ad337061ef347c76229a22)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157249
    Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org>
    (cherry picked from commit 00839def1c1d28067653a738e04d586bb9778433)

diff --git a/download.lst b/download.lst
index 5774081e7285..cf3fcb3ec247 100644
--- a/download.lst
+++ b/download.lst
@@ -154,8 +154,8 @@ export LIBLANGTAG_SHA256SUM := 
5ed6bcd4ae3f3c05c912e62f216cd1a44123846147f729a49
 export LIBLANGTAG_TARBALL := liblangtag-0.6.7.tar.bz2
 export LIBNUMBERTEXT_SHA256SUM := 
e1c9086b4cecb6b25f180316f30740dfabe6a4dbaf70dddc34276fc839e4f4f7
 export LIBNUMBERTEXT_TARBALL := libnumbertext-1.0.5.tar.xz
-export LIBTOMMATH_SHA256SUM := 
b7c75eecf680219484055fcedd686064409254ae44bc31a96c5032843c0e18b1
-export LIBTOMMATH_TARBALL := ltm-1.2.0.tar.xz
+export LIBTOMMATH_SHA256SUM := 
986025d7b374276fee2e30e99f3649e4ac0db8a02257a37ee10eae72abed0d1f
+export LIBTOMMATH_TARBALL := ltm-1.2.1.tar.xz
 export XMLSEC_SHA256SUM := 
13eec4811ea30e3f0e16a734d1dbf7f9d246a71d540b48d143a07b489f6222d4
 export XMLSEC_TARBALL := xmlsec1-1.2.28.tar.gz
 export LIBXML_SHA256SUM := 
a972796696afd38073e0f59c283c3a2f5a560b5268b4babc391b286166526b21
commit 6af551fe4d4e9f71b27b52d41ce5ebcc4cf89200
Author:     Taichi Haradaguchi <20001...@ymail.ne.jp>
AuthorDate: Mon Jul 3 17:27:57 2023 +0900
Commit:     Thorsten Behrens <thorsten.behr...@allotropia.de>
CommitDate: Sat May 18 00:55:30 2024 +0200

    LibTomMath: upgrade to release 1.2.0
    
    * external/libtommath/clang-cl.patch: removed "typedef unsigned __int128    
mp_word" from tommmath.h
    * external/libtommath/libtommath-msvc.patch: fixed upstream
    
    Change-Id: I38fe730ff0e9649c6a0ad8d64b723a27e3434012
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153871
    Tested-by: Jenkins
    Reviewed-by: Taichi Haradaguchi <20001...@ymail.ne.jp>
    (cherry picked from commit 13bc0489d98b1f49a4f82fccb89d640439db4f4e)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157248
    Reviewed-by: Michael Stahl <michael.st...@allotropia.de>
    (cherry picked from commit c2f87ac01cad03e286ebb304a32b785f1dac7b60)

diff --git a/download.lst b/download.lst
index ced580087bab..5774081e7285 100644
--- a/download.lst
+++ b/download.lst
@@ -154,8 +154,8 @@ export LIBLANGTAG_SHA256SUM := 
5ed6bcd4ae3f3c05c912e62f216cd1a44123846147f729a49
 export LIBLANGTAG_TARBALL := liblangtag-0.6.7.tar.bz2
 export LIBNUMBERTEXT_SHA256SUM := 
e1c9086b4cecb6b25f180316f30740dfabe6a4dbaf70dddc34276fc839e4f4f7
 export LIBNUMBERTEXT_TARBALL := libnumbertext-1.0.5.tar.xz
-export LIBTOMMATH_SHA256SUM := 
083daa92d8ee6f4af96a6143b12d7fc8fe1a547e14f862304f7281f8f7347483
-export LIBTOMMATH_TARBALL := ltm-1.0.zip
+export LIBTOMMATH_SHA256SUM := 
b7c75eecf680219484055fcedd686064409254ae44bc31a96c5032843c0e18b1
+export LIBTOMMATH_TARBALL := ltm-1.2.0.tar.xz
 export XMLSEC_SHA256SUM := 
13eec4811ea30e3f0e16a734d1dbf7f9d246a71d540b48d143a07b489f6222d4
 export XMLSEC_TARBALL := xmlsec1-1.2.28.tar.gz
 export LIBXML_SHA256SUM := 
a972796696afd38073e0f59c283c3a2f5a560b5268b4babc391b286166526b21
diff --git a/external/libtommath/README b/external/libtommath/README
index 0da3128c5404..41f91970a71b 100644
--- a/external/libtommath/README
+++ b/external/libtommath/README
@@ -3,4 +3,4 @@ integer library written entirely in C.
 
 Used by embedded firebird (external/firebird).
 
-http://www.libtom.org/LibTomMath/
+From [https://www.libtom.net/LibTomMath/].
diff --git a/external/libtommath/UnpackedTarball_libtommath.mk 
b/external/libtommath/UnpackedTarball_libtommath.mk
index bb0b9e352930..8961a46162c5 100644
--- a/external/libtommath/UnpackedTarball_libtommath.mk
+++ b/external/libtommath/UnpackedTarball_libtommath.mk
@@ -14,8 +14,6 @@ $(eval $(call 
gb_UnpackedTarball_set_tarball,libtommath,$(LIBTOMMATH_TARBALL)))
 $(eval $(call gb_UnpackedTarball_set_patchlevel,libtommath,0))
 
 $(eval $(call gb_UnpackedTarball_add_patches,libtommath,\
-       external/libtommath/libtommath-msvc.patch \
-       external/libtommath/clang-cl.patch \
 ))
 
 # vim: set noet sw=4 ts=4:
diff --git a/external/libtommath/clang-cl.patch 
b/external/libtommath/clang-cl.patch
deleted file mode 100644
index 1cc92d380c62..000000000000
--- a/external/libtommath/clang-cl.patch
+++ /dev/null
@@ -1,16 +0,0 @@
---- tommath.h
-+++ tommath.h
-@@ -15,6 +15,13 @@
- #ifndef BN_H_
- #define BN_H_
- 
-+// Work around clang-cl issue when mp_word is a typedef for unsigned 
__int128, see
-+// <https://bugs.llvm.org/show_bug.cgi?id=25305> "Clang-cl generates a call 
to an undefined symbol
-+// _udivti3":
-+#if defined _WIN32 && defined __clang__
-+#define MP_8BIT
-+#endif
-+
- #include <stdio.h>
- #include <stdlib.h>
- #include <stdint.h>
diff --git a/external/libtommath/libtommath-msvc.patch 
b/external/libtommath/libtommath-msvc.patch
deleted file mode 100644
index 07884871aac9..000000000000
--- a/external/libtommath/libtommath-msvc.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- makefile.msvc      2016-02-05 23:25:32.000000000 +0100
-+++ makefile.msvc      2016-07-21 11:34:20.618390100 +0200
-@@ -38,3 +38,9 @@
- 
- library: $(OBJECTS)
-       lib /out:tommath.lib $(OBJECTS)
-+
-+.cc.obj:
-+      $(CC) /nologo $(CFLAGS) /c $<
-+
-+.c.obj:
-+      $(CC) /nologo $(CFLAGS) /c $<
commit fc6d80237c0b8472e0769701a6267088f785bf26
Author:     Mike Kaganski <mike.kagan...@collabora.com>
AuthorDate: Sun Feb 25 08:48:08 2024 +0600
Commit:     Thorsten Behrens <thorsten.behr...@allotropia.de>
CommitDate: Sat May 18 00:55:30 2024 +0200

    Use SAL_WNODEPRECATED_DECLARATIONS_(PUSH|POP)
    
    Change-Id: I2810d22e8f5e1c81647b9e9b15519de65939630a
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163895
    Tested-by: Jenkins
    Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com>

diff --git a/filter/source/xsltfilter/LibXSLTTransformer.cxx 
b/filter/source/xsltfilter/LibXSLTTransformer.cxx
index 2acc7dba07b5..14088a70ee2a 100644
--- a/filter/source/xsltfilter/LibXSLTTransformer.cxx
+++ b/filter/source/xsltfilter/LibXSLTTransformer.cxx
@@ -478,21 +478,9 @@ namespace XSLT
             params = args;
         }
 
-#ifdef __GNUC__
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
-#endif
-#if defined(_MSC_VER)
-#pragma warning(push)
-#pragma warning(disable:4996)
-#endif
+SAL_WNODEPRECATED_DECLARATIONS_PUSH
         xmlSubstituteEntitiesDefault(0);
-#if defined(_MSC_VER)
-#pragma warning(pop)
-#endif
-#ifdef __GNUC__
-#pragma GCC diagnostic pop
-#endif
+SAL_WNODEPRECATED_DECLARATIONS_POP
 
         m_parameters.clear();
         for (int i = 0; i < params.getLength(); i++)
diff --git a/helpcompiler/source/HelpCompiler.cxx 
b/helpcompiler/source/HelpCompiler.cxx
index 98fd7f6eb55d..9cd0425c2e05 100644
--- a/helpcompiler/source/HelpCompiler.cxx
+++ b/helpcompiler/source/HelpCompiler.cxx
@@ -44,21 +44,9 @@ HelpCompiler::HelpCompiler(StreamTable &in_streamTable, 
const fs::path &in_input
     src(in_src), zipdir(in_zipdir), module(in_module), lang(in_lang), 
resCompactStylesheet(in_resCompactStylesheet),
     resEmbStylesheet(in_resEmbStylesheet), bExtensionMode( in_bExtensionMode )
 {
-#ifdef __GNUC__
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
-#endif
-#if defined(_MSC_VER)
-#pragma warning(push)
-#pragma warning(disable:4996)
-#endif
+SAL_WNODEPRECATED_DECLARATIONS_PUSH
     xmlKeepBlanksDefaultValue = 0;
-#if defined(_MSC_VER)
-#pragma warning(pop)
-#endif
-#ifdef __GNUC__
-#pragma GCC diagnostic pop
-#endif
+SAL_WNODEPRECATED_DECLARATIONS_POP
     char* os = getenv("OS");
     if (os)
     {
diff --git a/vcl/unx/generic/printer/cupsmgr.cxx 
b/vcl/unx/generic/printer/cupsmgr.cxx
index 3c910f3b39df..6651f23bdf68 100644
--- a/vcl/unx/generic/printer/cupsmgr.cxx
+++ b/vcl/unx/generic/printer/cupsmgr.cxx
@@ -82,14 +82,9 @@ struct GetPPDAttribs
     {
         // This CUPS method is not at all thread-safe we need
         // to dup the pointer to a static buffer it returns ASAP
-#ifdef __GNUC__
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
-#endif
+SAL_WNODEPRECATED_DECLARATIONS_PUSH
         OString aResult = cupsGetPPD(m_aParameter.getStr());
-#ifdef __GNUC__
-#pragma GCC diagnostic pop
-#endif
+SAL_WNODEPRECATED_DECLARATIONS_POP
         MutexGuard aGuard( *m_pSyncMutex );
         m_aResult = aResult;
         m_aCondition.set();
@@ -222,10 +217,7 @@ void CUPSManager::runDests()
 
     // n#722902 - do a fast-failing check for cups working *at all* first
     http_t* p_http;
-#ifdef __GNUC__
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
-#endif
+SAL_WNODEPRECATED_DECLARATIONS_PUSH
     if( (p_http=httpConnectEncrypt(
              cupsServer(),
              ippPort(),
@@ -242,9 +234,7 @@ void CUPSManager::runDests()
 
         httpClose(p_http);
     }
-#ifdef __GNUC__
-#pragma GCC diagnostic pop
-#endif
+SAL_WNODEPRECATED_DECLARATIONS_POP
 }
 
 void CUPSManager::initialize()
@@ -454,14 +444,9 @@ const PPDParser* CUPSManager::createCUPSParser( const 
OUString& rPrinter )
                     rtl_TextEncoding aEncoding = osl_getThreadTextEncoding();
                     OUString aFileName( OStringToOUString( aPPDFile, aEncoding 
) );
                     // update the printer info with context information
-#ifdef __GNUC__
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
-#endif
+SAL_WNODEPRECATED_DECLARATIONS_PUSH
                     ppd_file_t* pPPD = ppdOpenFile( aPPDFile.getStr() );
-#ifdef __GNUC__
-#pragma GCC diagnostic pop
-#endif
+SAL_WNODEPRECATED_DECLARATIONS_POP
                     if( pPPD )
                     {
                         // create the new parser
@@ -469,14 +454,9 @@ const PPDParser* CUPSManager::createCUPSParser( const 
OUString& rPrinter )
                         pCUPSParser->m_aFile = rPrinter;
                         pNewParser = pCUPSParser;
 
-#ifdef __GNUC__
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
-#endif
+SAL_WNODEPRECATED_DECLARATIONS_PUSH
                         /*int nConflicts =*/ cupsMarkOptions( pPPD, 
pDest->num_options, pDest->options );
-#ifdef __GNUC__
-#pragma GCC diagnostic pop
-#endif
+SAL_WNODEPRECATED_DECLARATIONS_POP
                         SAL_INFO("vcl.unx.print", "processing the following 
options for printer " << pDest->name << " (instance " << (pDest->instance == 
nullptr ? "null" : pDest->instance) << "):");
                         for( int k = 0; k < pDest->num_options; k++ )
                             SAL_INFO("vcl.unx.print",
@@ -497,14 +477,9 @@ const PPDParser* CUPSManager::createCUPSParser( const 
OUString& rPrinter )
                         rInfo.m_aContext = rContext;
 
                         // clean up the mess
-#ifdef __GNUC__
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
-#endif
+SAL_WNODEPRECATED_DECLARATIONS_PUSH
                         ppdClose( pPPD );
-#ifdef __GNUC__
-#pragma GCC diagnostic pop
-#endif
+SAL_WNODEPRECATED_DECLARATIONS_POP
 
                     }
                     else
diff --git a/xmlsecurity/source/xmlsec/saxhelper.cxx 
b/xmlsecurity/source/xmlsec/saxhelper.cxx
index 8ae3622c24a4..4f50e4d5c665 100644
--- a/xmlsecurity/source/xmlsec/saxhelper.cxx
+++ b/xmlsecurity/source/xmlsec/saxhelper.cxx
@@ -118,24 +118,12 @@ SAXHelper::SAXHelper( )
      * compile error:
      * xmlLoadExtDtdDefaultValue = XML_DETECT_IDS | XML_COMPLETE_ATTRS ;
      */
-#ifdef __GNUC__
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
-#endif
-#if defined(_MSC_VER)
-#pragma warning(push)
-#pragma warning(disable:4996)
-#endif
+SAL_WNODEPRECATED_DECLARATIONS_PUSH
     xmlSubstituteEntitiesDefault(0) ;
 #ifndef XMLSEC_NO_XSLT
     xmlIndentTreeOutput = 1 ;
 #endif /* XMLSEC_NO_XSLT */
-#if defined(_MSC_VER)
-#pragma warning(pop)
-#endif
-#ifdef __GNUC__
-#pragma GCC diagnostic pop
-#endif
+SAL_WNODEPRECATED_DECLARATIONS_POP
 
     m_pParserCtxt = xmlNewParserCtxt() ;
 
commit 83f6a66f59ca08bea69a1776d80f112a4d53405d
Author:     Michael Stahl <michael.st...@allotropia.de>
AuthorDate: Tue Feb 27 11:01:29 2024 +0100
Commit:     Thorsten Behrens <thorsten.behr...@allotropia.de>
CommitDate: Sat May 18 00:55:30 2024 +0200

    helpcompiler: suppress deprecation warning
    
    Commit 77cb90532d14d5035990d078977fce7b407c4fad removed these 2 lines
    but i don't want to check if the "I can find no difference in our output
    help dir with these removed" is true also in this older branch so
    suppress the warning instead.
    
    Change-Id: I35865e3accd018462ef4d65c8c11fb914f53ac38

diff --git a/helpcompiler/source/HelpCompiler.cxx 
b/helpcompiler/source/HelpCompiler.cxx
index 0436d9efb461..98fd7f6eb55d 100644
--- a/helpcompiler/source/HelpCompiler.cxx
+++ b/helpcompiler/source/HelpCompiler.cxx
@@ -149,9 +149,15 @@ xmlDocPtr HelpCompiler::getSourceDocument(const fs::path 
&filePath)
         if (!cur)
         {
             static std::string fsroot('\'' + src.toUTF8() + '\'');
-
+#if defined(_MSC_VER)
+#pragma warning(push)
+#pragma warning(disable:4996)
+#endif
             xmlSubstituteEntitiesDefault(1);
             xmlLoadExtDtdDefaultValue = 1;
+#if defined(_MSC_VER)
+#pragma warning(pop)
+#endif
             cur = xsltParseStylesheetFile(reinterpret_cast<const xmlChar 
*>(resEmbStylesheet.native_file_string().c_str()));
 
             int nbparams = 0;
commit 38fad4999976b1d577e33d047fe9a82a8aff38d5
Author:     Tünde Tóth <tund...@gmail.com>
AuthorDate: Thu Aug 1 15:26:55 2019 +0200
Commit:     Thorsten Behrens <thorsten.behr...@allotropia.de>
CommitDate: Sat May 18 00:55:29 2024 +0200

    tdf#125041 fix hyperlinks to IDN websites
    
    Revert "tdf#86087 Open relative links in Writer"
    
    This reverts commit 4b9e237850efe36f7e35d65e14d6953f1e1f3a45.
    
    The reverted commit caused a regression in the handling of
    internationalized domain names: these non-ASCII URLs were converted
    to file URIs.
    
    Change-Id: Ia481aa1199d20083b72f9f8571992e40b3fc2e77
    Reviewed-on: https://gerrit.libreoffice.org/76804
    Reviewed-by: László Németh <nem...@numbertext.org>
    Tested-by: László Németh <nem...@numbertext.org>

diff --git a/sw/source/uibase/wrtsh/wrtsh2.cxx 
b/sw/source/uibase/wrtsh/wrtsh2.cxx
index a3d27216e490..255f3f451e7c 100644
--- a/sw/source/uibase/wrtsh/wrtsh2.cxx
+++ b/sw/source/uibase/wrtsh/wrtsh2.cxx
@@ -482,28 +482,11 @@ static void LoadURL(SwView& rView, const OUString& rURL, 
LoadUrlFlags nFilter,
     if (!SfxObjectShell::AllowedLinkProtocolFromDocument(rURL, pDShell, 
pViewFrame->GetWindow().GetFrameWeld()))
         return;
 
-    OUString sFileURL = rURL;
-    INetURLObject aURL( sFileURL );
-    if( aURL.GetProtocol() == INetProtocol::NotValid && 
!sFileURL.startsWith("#") )
-    {
-        // May be the relative link -> try to convert to absolute path
-        OUString sParentPath =
-            
rVSh.GetDoc()->GetDocShell()->GetMedium()->GetURLObject().GetPath();
-
-        bool bCorrectURL = true;
-        aURL = INetURLObject();
-        bCorrectURL &= aURL.setFSysPath( sParentPath, FSysStyle::Detect );
-        bCorrectURL &= aURL.insertName( sFileURL );
-
-        if( bCorrectURL )
-            sFileURL = aURL.GetMainURL( 
INetURLObject::DecodeMechanism::Unambiguous );
-    }
-
     // We are doing tiledRendering, let the client handles the URL loading,
     // unless we are jumping to a TOC mark.
     if (comphelper::LibreOfficeKit::isActive() && !rURL.startsWith("#"))
     {
-        
rVSh.GetSfxViewShell()->libreOfficeKitViewCallback(LOK_CALLBACK_HYPERLINK_CLICKED,
 sFileURL.toUtf8().getStr());
+        rView.libreOfficeKitViewCallback(LOK_CALLBACK_HYPERLINK_CLICKED, 
rURL.toUtf8().getStr());
         return;
     }
 
@@ -522,7 +505,7 @@ static void LoadURL(SwView& rView, const OUString& rURL, 
LoadUrlFlags nFilter,
     if( pDShell && pDShell->GetMedium() )
         sReferer = pDShell->GetMedium()->GetName();
     SfxFrameItem aView( SID_DOCFRAME, pViewFrame );
-    SfxStringItem aName( SID_FILE_NAME, sFileURL );
+    SfxStringItem aName( SID_FILE_NAME, rURL );
     SfxStringItem aTargetFrameName( SID_TARGETNAME, sTargetFrame );
     SfxStringItem aReferer( SID_REFERER, sReferer );
 
commit 9243b3bec32760fae3697cc087b4222512d02df5
Author:     Michael Stahl <michael.st...@allotropia.de>
AuthorDate: Thu Feb 15 18:51:27 2024 +0100
Commit:     Thorsten Behrens <thorsten.behr...@allotropia.de>
CommitDate: Sat May 18 00:55:29 2024 +0200

    tdf#159502 libxml2: apply Solaris ld patch only on Solaris
    
    Diverging from upstream by inventing a LIBXML2_GLOBAL_VARIABLES version
    should only be done if actually required.
    
    Change-Id: I1520ca5078dc24ffd83e927f9c857d625e71749b
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163455
    Tested-by: Jenkins
    Reviewed-by: Michael Stahl <michael.st...@allotropia.de>
    (cherry picked from commit eebdda4e221327cae5a9177893394819ca510d5f)

diff --git a/external/libxml2/UnpackedTarball_libxml2.mk 
b/external/libxml2/UnpackedTarball_libxml2.mk
index 3970cd26fb76..4b9fc5530a55 100644
--- a/external/libxml2/UnpackedTarball_libxml2.mk
+++ b/external/libxml2/UnpackedTarball_libxml2.mk
@@ -14,7 +14,7 @@ $(eval $(call 
gb_UnpackedTarball_set_tarball,libxml2,$(LIBXML_TARBALL),,libxml2)
 $(eval $(call gb_UnpackedTarball_update_autoconf_configs,libxml2))
 
 $(eval $(call gb_UnpackedTarball_add_patches,libxml2,\
-       external/libxml2/libxml2-global-symbols.patch \
+       $(if $(filter 
SOLARIS,$(OS)),external/libxml2/libxml2-global-symbols.patch) \
        external/libxml2/libxml2-vc10.patch \
        external/libxml2/libxml2-XMLCALL-redefine.patch.0 \
        $(if $(filter ANDROID,$(OS)),external/libxml2/libxml2-android.patch) \
commit d6be8f53d980dd24de5a2699ddf4c6f71e25fc0d
Author:     Miklos Vajna <vmik...@collabora.com>
AuthorDate: Mon Nov 27 08:02:59 2023 +0100
Commit:     Thorsten Behrens <thorsten.behr...@allotropia.de>
CommitDate: Sat May 18 00:55:29 2024 +0200

    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 <vmik...@collabora.com>
    (cherry picked from commit c8f7408db73d2f2ccacb25a2b4fef8dfebdfc6cb)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161661
    Reviewed-by: Caolán McNamara <caolan.mcnam...@collabora.com>
    (cherry picked from commit 764890a53cea2ccb6d2fb6d8c7edb5e1c91ecdc0)
    (cherry picked from commit 81cc1e539114cf826f82c3d3718fe0dfacf66a9a)

diff --git a/drawinglayer/source/tools/primitive2dxmldump.cxx 
b/drawinglayer/source/tools/primitive2dxmldump.cxx
index 65170ae096f2..4c12c32ae079 100644
--- a/drawinglayer/source/tools/primitive2dxmldump.cxx
+++ b/drawinglayer/source/tools/primitive2dxmldump.cxx
@@ -16,6 +16,8 @@
 #include <tools/XmlWriter.hxx>
 
 #include <memory>
+#include <libxml/parser.h>
+#include <sal/log.hxx>
 
 #include <drawinglayer/primitive2d/drawinglayer_primitivetypes2d.hxx>
 #include <drawinglayer/primitive2d/transformprimitive2d.hxx>
diff --git a/filter/source/xsltfilter/LibXSLTTransformer.cxx 
b/filter/source/xsltfilter/LibXSLTTransformer.cxx
index 6eae79675fd2..2acc7dba07b5 100644
--- a/filter/source/xsltfilter/LibXSLTTransformer.cxx
+++ b/filter/source/xsltfilter/LibXSLTTransformer.cxx
@@ -320,7 +320,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 fc5894b080ad..7389b50c32b9 100644
--- a/helpcompiler/source/HelpLinker.cxx
+++ b/helpcompiler/source/HelpLinker.cxx
@@ -809,7 +809,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 008004242742..edca38e50ac9 100644
--- a/include/xmloff/xmltoken.hxx
+++ b/include/xmloff/xmltoken.hxx
@@ -703,7 +703,7 @@ namespace xmloff { namespace 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 e37d7c0968e1..6a48ad85a4e8 100644
--- a/sax/source/fastparser/fastparser.cxx
+++ b/sax/source/fastparser/fastparser.cxx
@@ -550,7 +550,7 @@ Event& Entity::getEvent( CallbackType aType )
 OUString lclGetErrorMessage( xmlParserCtxtPtr ctxt, const OUString& sSystemId, 
sal_Int32 nLine )
 {
     const sal_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 7f573f6809a2..78e9528f2a66 100644
--- a/sc/source/core/tool/interpr7.cxx
+++ b/sc/source/core/tool/interpr7.cxx
@@ -34,6 +34,7 @@
 
 #include <cstring>
 #include <memory>
+#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 42cf6b501990..173a5c627a41 100644
--- a/sc/source/filter/xml/XMLExportDataPilot.cxx
+++ b/sc/source/filter/xml/XMLExportDataPilot.cxx
@@ -127,7 +127,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 5fc7ccb01585..7395a4e5290d 100644
--- a/sc/source/filter/xml/XMLExportDatabaseRanges.cxx
+++ b/sc/source/filter/xml/XMLExportDatabaseRanges.cxx
@@ -387,7 +387,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 47fea817123c..a84f12cdd47e 100644
--- a/sc/source/filter/xml/xmlfilti.cxx
+++ b/sc/source/filter/xml/xmlfilti.cxx
@@ -380,7 +380,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 == ">")
         rEntry.eOp = SC_GREATER;
@@ -759,7 +759,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 4ff411d3f62c..39889e114c99 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 94dce24255ac..5cefa208abdc 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 bbb412a32df0..b8f4ce36a212 100644
--- a/unoxml/source/dom/documentbuilder.cxx
+++ b/unoxml/source/dom/documentbuilder.cxx
@@ -25,6 +25,7 @@
 
 #include <libxml/xmlerror.h>
 #include <libxml/tree.h>
+#include <libxml/parser.h>
 
 #include <memory>
 
diff --git a/unoxml/source/dom/entity.cxx b/unoxml/source/dom/entity.cxx
index 74b1faaf7e75..0b8c384ddcc1 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 415f565d3ae0..d62aa48a1082 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 <rtl/ustrbuf.hxx>
 #include <sal/log.hxx>
@@ -243,7 +244,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) {
@@ -286,7 +287,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 5ca78919e3fb..5d941d76d781 100644
--- a/xmloff/source/core/xmltoken.cxx
+++ b/xmloff/source/core/xmltoken.cxx
@@ -704,7 +704,7 @@ namespace xmloff { namespace 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/draw/sdpropls.cxx b/xmloff/source/draw/sdpropls.cxx
index 3848ef8f68e7..1f440090510f 100644
--- a/xmloff/source/draw/sdpropls.cxx
+++ b/xmloff/source/draw/sdpropls.cxx
@@ -77,7 +77,7 @@ using namespace ::xmloff::token;
 #define DPMAP(name,prefix,token,type,context) 
MAP_(name,prefix,token,type|XML_TYPE_PROP_DRAWING_PAGE,context)
 #define TMAP(name,prefix,token,type,context) 
MAP_(name,prefix,token,type|XML_TYPE_PROP_TEXT,context)
 #define PMAP(name,prefix,token,type,context) 
MAP_(name,prefix,token,type|XML_TYPE_PROP_PARAGRAPH,context)
-#define MAP_END() { nullptr, 0, 0, XML_EMPTY, 0 ,0, 
SvtSaveOptions::ODFVER_010, false }
+#define MAP_END() { nullptr, 0, 0, XML_TOKEN_EMPTY, 0 ,0, 
SvtSaveOptions::ODFVER_010, false }
 
 // entry list for graphic properties
 
diff --git a/xmloff/source/style/PageMasterStyleMap.cxx 
b/xmloff/source/style/PageMasterStyleMap.cxx
index 50b90fe35e7b..03c35376486c 100644
--- a/xmloff/source/style/PageMasterStyleMap.cxx
+++ b/xmloff/source/style/PageMasterStyleMap.cxx
@@ -153,7 +153,7 @@ const XMLPropertyMapEntry aXMLPageMasterStyleMap[] =
     PLMAP( "FootnoteLineRelativeWidth", XML_NAMESPACE_STYLE,    XML__EMPTY,    
 XML_TYPE_PERCENT8|MID_FLAG_SPECIAL_ITEM,    CTF_PM_FTN_LINE_WIDTH ),
     PLMAP( "FootnoteLineTextDistance", XML_NAMESPACE_STYLE,    XML__EMPTY,     
XML_TYPE_MEASURE|MID_FLAG_SPECIAL_ITEM,    CTF_PM_FTN_LINE_DISTANCE ),
     PLMAP( "FootnoteLineWeight",        XML_NAMESPACE_STYLE,    
XML_FOOTNOTE_SEP,    XML_TYPE_MEASURE16|MID_FLAG_ELEMENT_ITEM,    
CTF_PM_FTN_LINE_WEIGHT ),
-    PLMAP( "FootnoteLineStyle",     XML_NAMESPACE_STYLE,    XML_EMPTY,  
XML_TYPE_STRING|MID_FLAG_ELEMENT_ITEM,  CTF_PM_FTN_LINE_STYLE ),
+    PLMAP( "FootnoteLineStyle",     XML_NAMESPACE_STYLE,    XML_TOKEN_EMPTY,  
XML_TYPE_STRING|MID_FLAG_ELEMENT_ITEM,  CTF_PM_FTN_LINE_STYLE ),
 
     //////////////////////////////////////////////////////////////////////////
     //Index 92: Section for 'header-style' own section, all members *have* to 
use CTF_PM_HEADERFLAG in the context entry (the 5th one)
@@ -267,7 +267,7 @@ const XMLPropertyMapEntry aXMLPageMasterStyleMap[] =
     HFMAP( "FooterFillBitmapOffsetX",             XML_NAMESPACE_DRAW,     
XML_TILE_REPEAT_OFFSET,     
XML_SW_TYPE_BITMAPREPOFFSETX|MID_FLAG_MULTI_PROPERTY,   
CTF_PM_FOOTERREPEAT_OFFSET_X ),
     HFMAP( "FooterFillBitmapOffsetY",             XML_NAMESPACE_DRAW,     
XML_TILE_REPEAT_OFFSET,     
XML_SW_TYPE_BITMAPREPOFFSETY|MID_FLAG_MULTI_PROPERTY,   
CTF_PM_FOOTERREPEAT_OFFSET_Y ),
 
-    { nullptr, 0, 0, XML_EMPTY, 0, 0, SvtSaveOptions::ODFVER_010, false } // 
index 190
+    { nullptr, 0, 0, XML_TOKEN_EMPTY, 0, 0, SvtSaveOptions::ODFVER_010, false 
} // index 190
 };
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/table/XMLTableExport.cxx 
b/xmloff/source/table/XMLTableExport.cxx
index 597cf2570a1b..207b1f74307f 100644
--- a/xmloff/source/table/XMLTableExport.cxx
+++ b/xmloff/source/table/XMLTableExport.cxx
@@ -67,7 +67,7 @@ using namespace ::com::sun::star::style;
 #define CMAP(name,prefix,token,type,context) 
MAP_(name,prefix,token,type|XML_TYPE_PROP_TABLE_COLUMN,context)
 #define RMAP(name,prefix,token,type,context) 
MAP_(name,prefix,token,type|XML_TYPE_PROP_TABLE_ROW,context)
 #define CELLMAP(name,prefix,token,type,context) 
MAP_(name,prefix,token,type|XML_TYPE_PROP_TABLE_CELL,context)
-#define MAP_END { nullptr, 0, 0, XML_EMPTY, 0, 0, SvtSaveOptions::ODFVER_010, 
false }
+#define MAP_END { nullptr, 0, 0, XML_TOKEN_EMPTY, 0, 0, 
SvtSaveOptions::ODFVER_010, false }
 
 const XMLPropertyMapEntry* getColumnPropertiesMap()
 {
diff --git a/xmlsecurity/inc/xmlsec-wrapper.h b/xmlsecurity/inc/xmlsec-wrapper.h
index 2d06dcfdd549..b5e142015f75 100644
--- a/xmlsecurity/inc/xmlsec-wrapper.h
+++ b/xmlsecurity/inc/xmlsec-wrapper.h
@@ -29,6 +29,7 @@
 #define XMLSEC_NO_SIZE_T
 #endif
 
+#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 e1eed377d6fa..5262b52c81e0 100644
--- a/xmlsecurity/inc/xmlsec/saxhelper.hxx
+++ b/xmlsecurity/inc/xmlsec/saxhelper.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_XMLSECURITY_INC_XMLSEC_SAXHELPER_HXX
 #define INCLUDED_XMLSECURITY_INC_XMLSEC_SAXHELPER_HXX
 
+#include <libxml/parser.h>
 #include <libxml/tree.h>
 
 #include <rtl/ustring.hxx>
commit d03262766e7afb771ae23ef17b91a01b5efb9594
Author:     Caolán McNamara <caolan.mcnam...@collabora.com>
AuthorDate: Wed Jan 3 20:45:14 2024 +0000
Commit:     Thorsten Behrens <thorsten.behr...@allotropia.de>
CommitDate: Sat May 18 00:55:26 2024 +0200

    upgrade libxml2, libxslt & liblangtag
    
    what I'm really after is some vexating not-reproducible oss-fuzz msan
    warnings when using libxml2 in the fodt2pdf fuzzer. So lets upgrade
    libxml2 to the latest, which requires bumping libxslt, and then requires
    a newer liblangtag because of no longer implicit includes that it
    depended on.
    
    xmlKeepBlanksDefaultValue and xmlSubstituteEntitiesDefault are
    deprecated, we should get around to updating those uses
    
    Change-Id: I8fda0dffda0a7ea65407d246a3121875cb8ad4a4
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161598
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolan.mcnam...@collabora.com>
    (cherry picked from commit 6875c975f80d8b813b1829a530162869a1e2d92e)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163751
    Reviewed-by: Michael Stahl <michael.st...@allotropia.de>
    (cherry picked from commit 050a2db3964d5f02e2dd149cb7f76342457a6719)

diff --git a/download.lst b/download.lst
index 592f547773d3..ced580087bab 100644
--- a/download.lst
+++ b/download.lst
@@ -150,19 +150,19 @@ export LIBFFI_SHA256SUM := 
72fba7922703ddfa7a028d513ac15a85c8d54c8d67f55fa5a4802
 export LIBFFI_TARBALL := libffi-3.3.tar.gz
 export LIBGPGERROR_SHA256SUM := 
4f93aac6fecb7da2b92871bb9ee33032be6a87b174f54abf8ddf0911a22d29d2
 export LIBGPGERROR_TARBALL := libgpg-error-1.27.tar.bz2
-export LIBLANGTAG_SHA256SUM := 
1f12a20a02ec3a8d22e54dedb8b683a43c9c160bda1ba337bf1060607ae733bd
-export LIBLANGTAG_TARBALL := liblangtag-0.6.3.tar.bz2
+export LIBLANGTAG_SHA256SUM := 
5ed6bcd4ae3f3c05c912e62f216cd1a44123846147f729a49fb5668da51e030e
+export LIBLANGTAG_TARBALL := liblangtag-0.6.7.tar.bz2
 export LIBNUMBERTEXT_SHA256SUM := 
e1c9086b4cecb6b25f180316f30740dfabe6a4dbaf70dddc34276fc839e4f4f7
 export LIBNUMBERTEXT_TARBALL := libnumbertext-1.0.5.tar.xz
 export LIBTOMMATH_SHA256SUM := 
083daa92d8ee6f4af96a6143b12d7fc8fe1a547e14f862304f7281f8f7347483
 export LIBTOMMATH_TARBALL := ltm-1.0.zip
 export XMLSEC_SHA256SUM := 
13eec4811ea30e3f0e16a734d1dbf7f9d246a71d540b48d143a07b489f6222d4
 export XMLSEC_TARBALL := xmlsec1-1.2.28.tar.gz
-export LIBXML_SHA256SUM := 
737e1d7f8ab3f139729ca13a2494fd17bf30ddb4b7a427cf336252cab57f57f7
-export LIBXML_VERSION_MICRO := 4
-export LIBXML_TARBALL := libxml2-2.11.$(LIBXML_VERSION_MICRO).tar.xz
-export LIBXSLT_SHA256SUM := 
1f32450425819a09acaff2ab7a5a7f8a2ec7956e505d7beeb45e843d0e1ecab1
-export LIBXSLT_VERSION_MICRO := 38
+export LIBXML_SHA256SUM := 
a972796696afd38073e0f59c283c3a2f5a560b5268b4babc391b286166526b21
+export LIBXML_VERSION_MICRO := 5
+export LIBXML_TARBALL := libxml2-2.12.$(LIBXML_VERSION_MICRO).tar.xz
+export LIBXSLT_SHA256SUM := 
2a20ad621148339b0759c4d4e96719362dee64c9a096dbba625ba053846349f0
+export LIBXSLT_VERSION_MICRO := 39
 export LIBXSLT_TARBALL := libxslt-1.1.$(LIBXSLT_VERSION_MICRO).tar.xz
 export LPSOLVE_SHA256SUM := 
171816288f14215c69e730f7a4f1c325739873e21f946ff83884b350574e6695
 export LPSOLVE_TARBALL := 26b3e95ddf3d9c077c480ea45874b3b8-lp_solve_5.5.tar.gz
diff --git a/external/libxml2/ExternalPackage_libxml2.mk 
b/external/libxml2/ExternalPackage_libxml2.mk
index 3c399970cd5b..799044575f9a 100644
--- a/external/libxml2/ExternalPackage_libxml2.mk
+++ b/external/libxml2/ExternalPackage_libxml2.mk
@@ -21,7 +21,7 @@ else # COM=MSC
 $(eval $(call 
gb_ExternalPackage_add_file,libxml2,$(LIBO_URE_LIB_FOLDER)/libxml2.dll,win32/bin.msvc/libxml2.dll))
 endif
 else # OS!=WNT
-$(eval $(call 
gb_ExternalPackage_add_file,libxml2,$(LIBO_URE_LIB_FOLDER)/libxml2.so.2,.libs/libxml2.so.2.11.$(LIBXML_VERSION_MICRO)))
+$(eval $(call 
gb_ExternalPackage_add_file,libxml2,$(LIBO_URE_LIB_FOLDER)/libxml2.so.2,.libs/libxml2.so.2.12.$(LIBXML_VERSION_MICRO)))
 endif
 endif # DISABLE_DYNLOADING
 
diff --git a/external/libxml2/libxml2-global-symbols.patch 
b/external/libxml2/libxml2-global-symbols.patch
index cbbe5a622284..32146da4b3d7 100644
--- a/external/libxml2/libxml2-global-symbols.patch
+++ b/external/libxml2/libxml2-global-symbols.patch
@@ -13,7 +13,7 @@
  } LIBXML2_2.6.28;
  
  LIBXML2_2.6.32 {
-@@ -2231,3 +2231,49 @@
+@@ -2231,3 +2231,55 @@
    xmlPopOutputCallbacks;
  } LIBXML2_2.9.8;
  
@@ -23,6 +23,12 @@
 +    xmlNewSAXParserCtxt;
 +} LIBXML2_2.9.11;
 +
++LIBXML2_2.12.3 {
++    global:
++    xmlCtxtSetMaxAmplification;
++    xmlTextReaderSetMaxAmplification;
++} LIBXML2_2.11.4;
++
 +# HACK: export global variable accessor functions (globals.h)
 +LIBXML2_GLOBAL_VARIABLES {
 +    global:
diff --git a/filter/source/xsltfilter/LibXSLTTransformer.cxx 
b/filter/source/xsltfilter/LibXSLTTransformer.cxx
index e4e31cdb351f..6eae79675fd2 100644
--- a/filter/source/xsltfilter/LibXSLTTransformer.cxx
+++ b/filter/source/xsltfilter/LibXSLTTransformer.cxx
@@ -477,7 +477,23 @@ namespace XSLT
         {   // backward compatibility for old clients using createInstance
             params = args;
         }
+
+#ifdef __GNUC__
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#endif
+#if defined(_MSC_VER)
+#pragma warning(push)
+#pragma warning(disable:4996)
+#endif
         xmlSubstituteEntitiesDefault(0);
+#if defined(_MSC_VER)
+#pragma warning(pop)
+#endif
+#ifdef __GNUC__
+#pragma GCC diagnostic pop
+#endif
+
         m_parameters.clear();
         for (int i = 0; i < params.getLength(); i++)
         {
diff --git a/helpcompiler/source/HelpCompiler.cxx 
b/helpcompiler/source/HelpCompiler.cxx
index 70159a2c65fd..0436d9efb461 100644
--- a/helpcompiler/source/HelpCompiler.cxx
+++ b/helpcompiler/source/HelpCompiler.cxx
@@ -44,7 +44,21 @@ HelpCompiler::HelpCompiler(StreamTable &in_streamTable, 
const fs::path &in_input
     src(in_src), zipdir(in_zipdir), module(in_module), lang(in_lang), 
resCompactStylesheet(in_resCompactStylesheet),
     resEmbStylesheet(in_resEmbStylesheet), bExtensionMode( in_bExtensionMode )
 {
+#ifdef __GNUC__
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#endif
+#if defined(_MSC_VER)
+#pragma warning(push)
+#pragma warning(disable:4996)
+#endif
     xmlKeepBlanksDefaultValue = 0;
+#if defined(_MSC_VER)
+#pragma warning(pop)
+#endif
+#ifdef __GNUC__
+#pragma GCC diagnostic pop
+#endif
     char* os = getenv("OS");
     if (os)
     {
diff --git a/xmlsecurity/source/xmlsec/saxhelper.cxx 
b/xmlsecurity/source/xmlsec/saxhelper.cxx
index 1410eb5b0874..8ae3622c24a4 100644
--- a/xmlsecurity/source/xmlsec/saxhelper.cxx
+++ b/xmlsecurity/source/xmlsec/saxhelper.cxx
@@ -118,11 +118,24 @@ SAXHelper::SAXHelper( )
      * compile error:
      * xmlLoadExtDtdDefaultValue = XML_DETECT_IDS | XML_COMPLETE_ATTRS ;
      */
+#ifdef __GNUC__
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#endif
+#if defined(_MSC_VER)
+#pragma warning(push)
+#pragma warning(disable:4996)
+#endif
     xmlSubstituteEntitiesDefault(0) ;
-
 #ifndef XMLSEC_NO_XSLT
     xmlIndentTreeOutput = 1 ;
 #endif /* XMLSEC_NO_XSLT */
+#if defined(_MSC_VER)
+#pragma warning(pop)
+#endif
+#ifdef __GNUC__
+#pragma GCC diagnostic pop
+#endif
 
     m_pParserCtxt = xmlNewParserCtxt() ;
 
commit edb94ab62d786c97a2966132c91a67d8f382e844
Author:     Stephan Bergmann <sberg...@redhat.com>
AuthorDate: Tue Jul 4 08:31:28 2023 +0200
Commit:     Thorsten Behrens <thorsten.behr...@allotropia.de>
CommitDate: Sat May 18 00:54:20 2024 +0200

    Fix Linux --without-system-libxml build
    
    ...after 362dfc50a28a918ec73609a00d2851eb3058375d "libxslt: upgrade to 
release
    1.1.38"
    
    Change-Id: Id0ebf5676f79c43bb4fab3a33a2a19e303881aef
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153942
    Tested-by: Jenkins
    Reviewed-by: Stephan Bergmann <sberg...@redhat.com>
    (cherry picked from commit d1fc1c326470461def5ab092a311afee31950880)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154000
    Reviewed-by: Taichi Haradaguchi <20001...@ymail.ne.jp>
    (cherry picked from commit 2808d5a6874d5956d99e02feb0fbf55a7343d63c)

diff --git a/external/libxslt/ExternalPackage_libxslt.mk 
b/external/libxslt/ExternalPackage_libxslt.mk
index c22a2e1b5dad..c1a8ee1217f1 100644
--- a/external/libxslt/ExternalPackage_libxslt.mk
+++ b/external/libxslt/ExternalPackage_libxslt.mk
@@ -25,7 +25,7 @@ $(eval $(call 
gb_ExternalPackage_add_file,libxslt,$(LIBO_LIB_FOLDER)/libexslt.dl
 endif
 else # OS!=WNT
 $(eval $(call 
gb_ExternalPackage_add_file,libxslt,$(LIBO_LIB_FOLDER)/libxslt.so.1,libxslt/.libs/libxslt.so.1.1.$(LIBXSLT_VERSION_MICRO)))
-$(eval $(call 
gb_ExternalPackage_add_file,libxslt,$(LIBO_LIB_FOLDER)/libexslt.so.0,libexslt/.libs/libexslt.so.0.8.20))
+$(eval $(call 
gb_ExternalPackage_add_file,libxslt,$(LIBO_LIB_FOLDER)/libexslt.so.0,libexslt/.libs/libexslt.so.0.8.21))
 endif
 endif # DISABLE_DYNLOADING
 
commit c0515822c2b244a6792ab8790d46d66a4a2e8530
Author:     Taichi Haradaguchi <20001...@ymail.ne.jp>
AuthorDate: Mon Jul 3 18:38:33 2023 +0900
Commit:     Thorsten Behrens <thorsten.behr...@allotropia.de>
CommitDate: Sat May 18 00:54:16 2024 +0200

    libxslt: upgrade to release 1.1.38
    
    Change-Id: I0534d7e02c9486b3d58f56e1a26fe6846b4a20b7
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153874
    Tested-by: Jenkins
    Reviewed-by: Taichi Haradaguchi <20001...@ymail.ne.jp>
    (cherry picked from commit 362dfc50a28a918ec73609a00d2851eb3058375d)

diff --git a/download.lst b/download.lst
index 617468301409..592f547773d3 100644
--- a/download.lst
+++ b/download.lst
@@ -161,8 +161,8 @@ export XMLSEC_TARBALL := xmlsec1-1.2.28.tar.gz
 export LIBXML_SHA256SUM := 
737e1d7f8ab3f139729ca13a2494fd17bf30ddb4b7a427cf336252cab57f57f7
 export LIBXML_VERSION_MICRO := 4
 export LIBXML_TARBALL := libxml2-2.11.$(LIBXML_VERSION_MICRO).tar.xz
-export LIBXSLT_SHA256SUM := 
8247f33e9a872c6ac859aa45018bc4c4d00b97e2feac9eebc10c93ce1f34dd79
-export LIBXSLT_VERSION_MICRO := 35
+export LIBXSLT_SHA256SUM := 
1f32450425819a09acaff2ab7a5a7f8a2ec7956e505d7beeb45e843d0e1ecab1
+export LIBXSLT_VERSION_MICRO := 38
 export LIBXSLT_TARBALL := libxslt-1.1.$(LIBXSLT_VERSION_MICRO).tar.xz
 export LPSOLVE_SHA256SUM := 
171816288f14215c69e730f7a4f1c325739873e21f946ff83884b350574e6695
 export LPSOLVE_TARBALL := 26b3e95ddf3d9c077c480ea45874b3b8-lp_solve_5.5.tar.gz
diff --git a/external/libxslt/README b/external/libxslt/README
index dd69a9d732c3..2eb71661b903 100644
--- a/external/libxslt/README
+++ b/external/libxslt/README
@@ -1 +1 @@
-Gnome xslt library written in C, from [http://xmlsoft.org/xslt/]
+libxslt is an XSLT processor based on libxml2, from 
[https://gitlab.gnome.org/GNOME/libxslt/]

Reply via email to