git » libreoffice-still.git » commit 8d084df

upgpkg: 7.5.8-2; poppler rebuild, use recent system libcmis; fix for libxml2 2.12.x

author Andreas Radke
2023-12-01 16:55:43 UTC
committer Andreas Radke
2023-12-01 16:55:43 UTC
parent b2c05234ed704ae3ccd26757679367a5f8dcfffc

upgpkg: 7.5.8-2; poppler rebuild, use recent system libcmis; fix for libxml2 2.12.x

.SRCINFO +7 -4
PKGBUILD +16 -8
fix-build-against-system-libxml-2.12.diff +303 -0
libreoffice-7.5.8.2-libcmis-0.6.patch +39 -0

diff --git a/.SRCINFO b/.SRCINFO
index e15b45e..e87c980 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,6 +1,6 @@
 pkgbase = libreoffice-still
 	pkgver = 7.5.8
-	pkgrel = 1
+	pkgrel = 2
 	url = https://www.libreoffice.org/
 	arch = x86_64
 	license = LGPL3
@@ -74,6 +74,7 @@ pkgbase = libreoffice-still
 	makedepends = liblangtag
 	makedepends = libexttextcat
 	makedepends = gobject-introspection
+	makedepends = libcmis
 	makedepends = libtommath
 	makedepends = libzmf
 	makedepends = xmlsec
@@ -105,7 +106,6 @@ pkgbase = libreoffice-still
 	noextract = lxml-4.1.1.tgz
 	noextract = Firebird-3.0.7.33374-0.tar.bz2
 	noextract = skia-m103-b301ff025004c9cd82816c86c547588e6c24b466.tar.xz
-	noextract = libcmis-0.5.2.tar.xz
 	noextract = dragonbox-1.1.3.tar.gz
 	noextract = liborcus-0.17.2.tar.bz2
 	noextract = mdds-2.0.3.tar.bz2
@@ -133,7 +133,6 @@ pkgbase = libreoffice-still
 	source = https://dev-www.libreoffice.org/src/lxml-4.1.1.tgz
 	source = https://dev-www.libreoffice.org/src/Firebird-3.0.7.33374-0.tar.bz2
 	source = https://dev-www.libreoffice.org/src/skia-m103-b301ff025004c9cd82816c86c547588e6c24b466.tar.xz
-	source = https://dev-www.libreoffice.org/src/libcmis-0.5.2.tar.xz
 	source = https://dev-www.libreoffice.org/src/dragonbox-1.1.3.tar.gz
 	source = https://dev-www.libreoffice.org/src/liborcus-0.17.2.tar.bz2
 	source = https://dev-www.libreoffice.org/src/mdds-2.0.3.tar.bz2
@@ -143,6 +142,8 @@ pkgbase = libreoffice-still
 	source = https://dev-www.libreoffice.org/extern/185d60944ea767075d27247c3162b3bc-unowinreg.dll
 	source = make-pyuno-work-with-system-wide-module-install.diff
 	source = 623ea5c.diff
+	source = fix-build-against-system-libxml-2.12.diff
+	source = libreoffice-7.5.8.2-libcmis-0.6.patch
 	source = soffice-template.desktop.in
 	source = libreoffice-still.sh
 	source = libreoffice-still.csh
@@ -166,7 +167,6 @@ pkgbase = libreoffice-still
 	sha256sums = 940caef1ec7c78e0c34b0f6b94fe42d0f2022915ffc78643d28538a5cfd0f40e
 	sha256sums = acb85cedafa10ce106b1823fb236b1b3e5d942a5741e8f8435cc8ccfec0afe76
 	sha256sums = c094a6247e44104beaaa0d00c825beb6baf1a8e532dc22214747495317a65bd9
-	sha256sums = d7b18d9602190e10d437f8a964a32e983afd57e2db316a07d87477a79f5000a2
 	sha256sums = 09d63b05e9c594ec423778ab59b7a5aa1d76fdd71d25c7048b0258c4ec9c3384
 	sha256sums = 2a86c405a5929f749b27637509596421d46805753364ab258b035fd01fbde143
 	sha256sums = 9771fe42e133443c13ca187253763e17c8bc96a1a02aec9e1e8893367ffa9ce5
@@ -176,6 +176,8 @@ pkgbase = libreoffice-still
 	sha256sums = eafde646a7dbe46d20c291685b0beac2382174d78d66ee990e229a1bf6e6cec6
 	sha256sums = c463654a73ecfbc242ff109726fb4faecdbfb3d91affafe919b24bea65afb563
 	sha256sums = 440c9af5f3d1213d8ed7177282380f25cbc981cabc8b590dcb777aaae84178e5
+	sha256sums = 793a52abff29b3db51a1db9686b561911b9b3de70bd6dd02bbc1d78fcd960648
+	sha256sums = 56ef3079ff8829dc4e4ddcca37a808f36a19adee0e017ab4c871c0f466712d6d
 	sha256sums = d0be8099cbee3c9dfda694a828149b881c345b204ab68826f317580aafb50879
 	sha256sums = b43ed267643fc5ced803dca010427b12b1f10db485173ccb19efb3395e60c82e
 	sha256sums = 66f2cb5d2ff9909ee9633aea73d5306fc8c4ff358fa526f45d9994210d3e23ff
@@ -235,6 +237,7 @@ pkgname = libreoffice-still
 	depends = liblangtag
 	depends = libexttextcat
 	depends = libwebp
+	depends = libcmis
 	depends = libtommath
 	depends = libzmf
 	depends = libatomic_ops
diff --git a/PKGBUILD b/PKGBUILD
index 59edade..fa40169 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -12,7 +12,7 @@ pkgbase=libreoffice-still
 pkgname=('libreoffice-still-sdk' 'libreoffice-still')
 _LOver=7.5.8.2
 pkgver=7.5.8
-pkgrel=1
+pkgrel=2
 arch=('x86_64')
 license=('LGPL3')
 url="https://www.libreoffice.org/"
@@ -26,8 +26,8 @@ makedepends=('curl>=7.20.0' 'hunspell>=1.2.8' 'python' 'libwpd>=0.9.2' 'libwps'
 	'junit' 'libmythes' 'libwpg'  'java-environment=11' 'postgresql-libs' 'mariadb-libs' 'libgl'
 	'bluez-libs' 'gdb' 'doxygen'  'libatomic_ops'  #'mdds'
 	'ttf-liberation' 'ttf-dejavu' 'ttf-carlito' 'libxinerama' 'libpagemaker' 'glm'
-	'libabw' 'libmwaw' 'libe-book' 'coin-or-mp' 'liblangtag' #'liborcus' 
-	'libexttextcat' 'gobject-introspection' # 'libfbclient' 'libcmis' 
+	'libabw' 'libmwaw' 'libe-book' 'coin-or-mp' 'liblangtag' # 'liborcus' 
+	'libexttextcat' 'gobject-introspection' 'libcmis' # 'libfbclient'
 	'libtommath' 'libzmf' 'xmlsec' 'rxvt-unicode' 'gpgme' 'libwebp'
 	'libepubgen' 'libfreehand' 'libqxp' 'libstaroffice'  'boost' 'libnumbertext'
 	'abseil-cpp' 'clang' 'zxing-cpp'
@@ -52,7 +52,6 @@ source=(${_mirror}/libreoffice{,-help,-translations}-${_LOver}.tar.xz{,.asc}
 	${_additional_source_url}/lxml-4.1.1.tgz
 	${_additional_source_url}/Firebird-3.0.7.33374-0.tar.bz2
 	${_additional_source_url}/skia-m103-b301ff025004c9cd82816c86c547588e6c24b466.tar.xz
-	${_additional_source_url}/libcmis-0.5.2.tar.xz
         ${_additional_source_url}/dragonbox-1.1.3.tar.gz
         ${_additional_source_url}/liborcus-0.17.2.tar.bz2
         ${_additional_source_url}/mdds-2.0.3.tar.bz2
@@ -62,6 +61,8 @@ source=(${_mirror}/libreoffice{,-help,-translations}-${_LOver}.tar.xz{,.asc}
 	${_additional_source_url2}/185d60944ea767075d27247c3162b3bc-unowinreg.dll
 	make-pyuno-work-with-system-wide-module-install.diff
         623ea5c.diff
+        fix-build-against-system-libxml-2.12.diff
+        libreoffice-7.5.8.2-libcmis-0.6.patch
 	soffice-template.desktop.in 
 	libreoffice-still.sh libreoffice-still.csh)
 noextract=(35c94d2df8893241173de1d16b6034c0-swingExSrc.zip
@@ -77,7 +78,6 @@ noextract=(35c94d2df8893241173de1d16b6034c0-swingExSrc.zip
            lxml-4.1.1.tgz
            Firebird-3.0.7.33374-0.tar.bz2
            skia-m103-b301ff025004c9cd82816c86c547588e6c24b466.tar.xz
-           libcmis-0.5.2.tar.xz
            dragonbox-1.1.3.tar.gz
            liborcus-0.17.2.tar.bz2
            mdds-2.0.3.tar.bz2
@@ -106,7 +106,6 @@ sha256sums=('b4ea75bba0860d030dd5ac011210e960c8bb579fdfca57df77c9ba99cda1223f'
             '940caef1ec7c78e0c34b0f6b94fe42d0f2022915ffc78643d28538a5cfd0f40e'
             'acb85cedafa10ce106b1823fb236b1b3e5d942a5741e8f8435cc8ccfec0afe76'
             'c094a6247e44104beaaa0d00c825beb6baf1a8e532dc22214747495317a65bd9'
-            'd7b18d9602190e10d437f8a964a32e983afd57e2db316a07d87477a79f5000a2'
             '09d63b05e9c594ec423778ab59b7a5aa1d76fdd71d25c7048b0258c4ec9c3384'
             '2a86c405a5929f749b27637509596421d46805753364ab258b035fd01fbde143'
             '9771fe42e133443c13ca187253763e17c8bc96a1a02aec9e1e8893367ffa9ce5'
@@ -116,6 +115,8 @@ sha256sums=('b4ea75bba0860d030dd5ac011210e960c8bb579fdfca57df77c9ba99cda1223f'
             'eafde646a7dbe46d20c291685b0beac2382174d78d66ee990e229a1bf6e6cec6'
             'c463654a73ecfbc242ff109726fb4faecdbfb3d91affafe919b24bea65afb563'
             '440c9af5f3d1213d8ed7177282380f25cbc981cabc8b590dcb777aaae84178e5'
+            '793a52abff29b3db51a1db9686b561911b9b3de70bd6dd02bbc1d78fcd960648'
+            '56ef3079ff8829dc4e4ddcca37a808f36a19adee0e017ab4c871c0f466712d6d'
             'd0be8099cbee3c9dfda694a828149b881c345b204ab68826f317580aafb50879'
             'b43ed267643fc5ced803dca010427b12b1f10db485173ccb19efb3395e60c82e'
             '66f2cb5d2ff9909ee9633aea73d5306fc8c4ff358fa526f45d9994210d3e23ff')
@@ -142,6 +143,12 @@ prepare() {
         # fix build - https://gerrit.libreoffice.org/c/core/+/145421
         patch -Np1 -i "${srcdir}"/623ea5c.diff
 
+	# fix build with libcmis 0.6.x
+        patch -Np1 -i "${srcdir}"/libreoffice-7.5.8.2-libcmis-0.6.patch
+
+        # fix build with libxml2 2.12
+        patch -Np1 -i "${srcdir}"/fix-build-against-system-libxml-2.12.diff
+
 	#use the CFLAGS but remove the LibO overridden ones
 	for i in $CFLAGS; do
 		case "$i" in
@@ -200,11 +207,12 @@ build() {
 		--enable-ext-wiki-publisher \
 		--enable-ext-nlpsolver \
 		--without-fonts\
+                --with-system-libxml \
 		--with-system-libcdr \
 		--without-system-mdds\
 		--without-myspell-dicts \
 		--with-system-libvisio \
-		--without-system-libcmis \
+		--with-system-libcmis \
 		--with-system-libmspub \
 		--with-system-libexttextcat \
 		--without-system-orcus \
@@ -300,7 +308,7 @@ package_libreoffice-still() {
 		'libmspub' 'harfbuzz-icu' 'nss' 'clucene' 'hicolor-icon-theme'
 		'desktop-file-utils' 'shared-mime-info' 'libpagemaker'
 		'libxinerama' 'libabw' 'libmwaw' 'libe-book' 'libcups'
-		'liblangtag' 'libexttextcat' 'libwebp' # 'libfbclient' 'libcmis' 'liborcus'
+		'liblangtag' 'libexttextcat' 'libwebp' 'libcmis' # 'libfbclient' 'liborcus'
 		'libtommath' 'libzmf' 'libatomic_ops' 'xmlsec' 'libnumbertext' 'gpgme' 
 		'libfreehand' 'libstaroffice' 'libepubgen' 'libqxp' 'libepoxy' 'box2d'
 		'zxing-cpp' 'xdg-utils'
diff --git a/fix-build-against-system-libxml-2.12.diff b/fix-build-against-system-libxml-2.12.diff
new file mode 100644
index 0000000..bc7ae2a
--- /dev/null
+++ b/fix-build-against-system-libxml-2.12.diff
@@ -0,0 +1,303 @@
+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
+
diff --git a/libreoffice-7.5.8.2-libcmis-0.6.patch b/libreoffice-7.5.8.2-libcmis-0.6.patch
new file mode 100644
index 0000000..ae029a3
--- /dev/null
+++ b/libreoffice-7.5.8.2-libcmis-0.6.patch
@@ -0,0 +1,39 @@
+From e9320e567d6bca32783d0f716f386761d03a875a Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolan.mcnamara@collabora.com>
+Date: Mon, 13 Nov 2023 10:13:50 +0000
+Subject: upgrade libcmis
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Change-Id: Ie2d5f3f8208f9952db5be10905b5905cd03b91de
+Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159366
+Tested-by: Jenkins
+Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
+(cherry picked from commit 3368447e826d4204086e4d8bfe59af4412c16233)
+Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159454
+Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
+(cherry picked from commit 25b159729f1202ca2a42de5e76f22718d68400c8)
+Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159589
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+(limited to 'configure.ac')
+
+diff --git a/configure.ac b/configure.ac
+index a88c81646c40..bdd08abeeeb5 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -7532,7 +7532,7 @@ AC_SUBST(GPERF)
+ dnl ===================================================================
+ dnl Check for system libcmis
+ dnl ===================================================================
+-libo_CHECK_SYSTEM_MODULE([libcmis],[LIBCMIS],[libcmis-0.5 >= 0.5.2],enabled)
++libo_CHECK_SYSTEM_MODULE([libcmis],[LIBCMIS],[libcmis-0.6 >= 0.6.1],enabled)
+ 
+ dnl ===================================================================
+ dnl C++11
+-- 
+cgit v1.2.1
+