configure.ac                                              |    4 
 download.lst                                              |  846 +++++++++-----
 external/boost/include/boost/convert.hpp                  |   28 
 external/boost/include/boost/convert/stream.hpp           |   28 
 external/nss/UnpackedTarball_nss.mk                       |    1 
 external/nss/Wincompatible-function-pointer-types.patch.0 |  234 +++
 external/openldap/ExternalProject_openldap.mk             |   13 
 external/openldap/UnpackedTarball_openldap.mk             |    2 
 external/openldap/Wint-conversion.patch                   |   11 
 external/openldap/configure-c99.patch                     |   11 
 external/openldap/openldap-2.4.44.patch.1                 |   12 
 external/poppler/README                                   |    2 
 external/poppler/StaticLibrary_poppler.mk                 |   55 
 external/poppler/UnpackedTarball_poppler.mk               |    8 
 external/poppler/clang-std-ranges.patch.1                 |  394 ++++++
 external/poppler/disable-freetype.patch.1                 |   25 
 external/poppler/gcc7-EntityInfo.patch.1                  |   51 
 external/poppler/gcc7-GfxFont.patch.1                     |   94 +
 external/poppler/poppler-config.patch.1                   |   48 
 external/poppler/std_charconv.patch.1                     |   30 
 external/poppler/std_numbers.patch.1                      |   30 
 external/poppler/std_span.patch.1                         |   50 
 external/poppler/std_string.patch.1                       |  110 +
 external/redland/UnpackedTarball_raptor.mk                |    1 
 external/redland/raptor/Wint-conversion.patch             |   22 
 include/o3tl/span.hxx                                     |   16 
 package/source/zipapi/XUnbufferedStream.cxx               |    4 
 sal/osl/unx/thread.cxx                                    |    2 
 sal/rtl/hash.cxx                                          |    2 
 sc/source/filter/xml/sheetdata.cxx                        |    2 
 sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx     |    5 
 solenv/gbuild/partial_build.mk                            |    2 
 store/source/storbase.hxx                                 |    1 
 sw/qa/extras/htmlexport/htmlexport.cxx                    |   10 
 34 files changed, 1809 insertions(+), 345 deletions(-)

New commits:
commit 8b61031d81f82f4adecf0cb5140501b1d3515f02
Author:     Xisco Fauli <xiscofa...@libreoffice.org>
AuthorDate: Wed Feb 19 10:56:10 2025 +0100
Commit:     Michael Stahl <michael.st...@allotropia.de>
CommitDate: Tue Mar 11 11:53:27 2025 +0100

    libxml2: upgrade to 2.12.10
    
    Downloaded from 
https://download.gnome.org/sources/libxml2/2.12/libxml2-2.12.10.tar.xz
    
    Change-Id: If12c5f81feaff5c938a1a308660009fe4504b3d7
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181877
    Tested-by: Jenkins
    Reviewed-by: Michael Stahl <michael.st...@allotropia.de>
    (cherry picked from commit cbf28a9456eaa6c8573f8c5e479d6665fded2a97)

diff --git a/download.lst b/download.lst
index 637e1e2accb5..654d1793505d 100644
--- a/download.lst
+++ b/download.lst
@@ -356,8 +356,8 @@ XMLSEC_TARBALL := xmlsec1-1.2.28.tar.gz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-LIBXML_SHA256SUM := 
59912db536ab56a3996489ea0299768c7bcffe57169f0235e7f962a91f483590
-LIBXML_VERSION_MICRO := 9
+LIBXML_SHA256SUM := 
c3d8c0c34aa39098f66576fe51969db12a5100b956233dc56506f7a8679be995
+LIBXML_VERSION_MICRO := 10
 LIBXML_TARBALL := libxml2-2.12.$(LIBXML_VERSION_MICRO).tar.xz
 # three static lines
 # so that git cherry-pick
commit 009d3c74f4ef04d84d9d539b0237403139f7cc47
Author:     Michael Stahl <michael.st...@allotropia.de>
AuthorDate: Tue Jan 7 18:45:34 2025 +0100
Commit:     Michael Stahl <michael.st...@allotropia.de>
CommitDate: Tue Mar 11 11:53:27 2025 +0100

    poppler: upgrade to release 25.01
    
    Fixes CVE-2024-56378
    
    - remove disable-nss-and-gpgmepp.patch.1 and instead build
      CryptoSignBackend.cc which appears to have working ifdefs now
    - run the update_pch script
    - add clang-std-rotate.patch.1 because jenkins failed
    
    Change-Id: I7fcdd10766287e83dc666041644f129378584d91
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/179903
    Tested-by: Jenkins
    Reviewed-by: Michael Stahl <michael.st...@allotropia.de>
    (cherry picked from commit e28c5a2c93477d167eb449f08eca220cb3b26b31)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/179958
    Tested-by: Michael Stahl <michael.st...@allotropia.de>
    (cherry picked from commit 3bb689dfbac211696029c767250e841f67711088)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180040
    Tested-by: allotropia jenkins <jenk...@allotropia.de>
    (cherry picked from commit be6774fd28da7aab58647c9f0f869c92ce4425ef)

diff --git a/download.lst b/download.lst
index 128e7a6935b6..637e1e2accb5 100644
--- a/download.lst
+++ b/download.lst
@@ -475,8 +475,8 @@ LIBPNG_TARBALL := libpng-1.6.37.tar.xz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-POPPLER_SHA256SUM := 
97453fbddf0c9a9eafa0ea45ac710d3d49bcf23a62e864585385d3c0b4403174
-POPPLER_TARBALL := poppler-24.08.0.tar.xz
+POPPLER_SHA256SUM := 
7eefc122207bbbd72a303c5e0743f4941e8ae861e24dcf0501e18ce1d1414112
+POPPLER_TARBALL := poppler-25.01.0.tar.xz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
diff --git a/external/poppler/StaticLibrary_poppler.mk 
b/external/poppler/StaticLibrary_poppler.mk
index 20cb4001d196..d8e722fb9c3d 100644
--- a/external/poppler/StaticLibrary_poppler.mk
+++ b/external/poppler/StaticLibrary_poppler.mk
@@ -19,6 +19,7 @@ $(eval $(call gb_StaticLibrary_use_externals,poppler,\
 
 $(eval $(call gb_StaticLibrary_set_warnings_disabled,poppler))
 
+# note: the "fofi" and "goo" subdirs are required for the PCH
 $(eval $(call gb_StaticLibrary_set_include,poppler,\
        -I$(WORKDIR)/UnpackedTarball/poppler \
        -I$(WORKDIR)/UnpackedTarball/poppler/fofi \
@@ -86,6 +87,7 @@ $(eval $(call 
gb_StaticLibrary_add_generated_exception_objects,poppler,\
        UnpackedTarball/poppler/poppler/CertificateInfo \
        UnpackedTarball/poppler/poppler/CharCodeToUnicode \
        UnpackedTarball/poppler/poppler/CMap \
+       UnpackedTarball/poppler/poppler/CryptoSignBackend \
        UnpackedTarball/poppler/poppler/DCTStream \
        UnpackedTarball/poppler/poppler/DateInfo \
        UnpackedTarball/poppler/poppler/Decrypt \
diff --git a/external/poppler/UnpackedTarball_poppler.mk 
b/external/poppler/UnpackedTarball_poppler.mk
index 382e2e0f1d5f..4b92ef93be26 100644
--- a/external/poppler/UnpackedTarball_poppler.mk
+++ b/external/poppler/UnpackedTarball_poppler.mk
@@ -13,12 +13,13 @@ $(eval $(call 
gb_UnpackedTarball_set_tarball,poppler,$(POPPLER_TARBALL),,poppler
 
 $(eval $(call gb_UnpackedTarball_add_patches,poppler,\
        external/poppler/disable-freetype.patch.1 \
-       external/poppler/disable-nss-and-gpgmepp.patch.1 \
        external/poppler/gcc7-EntityInfo.patch.1 \
        external/poppler/gcc7-GfxFont.patch.1 \
        external/poppler/std_charconv.patch.1 \
        external/poppler/std_string.patch.1 \
        external/poppler/std_span.patch.1 \
+       external/poppler/std_numbers.patch.1 \
+       external/poppler/clang-std-ranges.patch.1 \
        external/poppler/poppler-config.patch.1 \
 ))
 
diff --git a/external/poppler/clang-std-ranges.patch.1 
b/external/poppler/clang-std-ranges.patch.1
new file mode 100644
index 000000000000..d7736089e9a8
--- /dev/null
+++ b/external/poppler/clang-std-ranges.patch.1
@@ -0,0 +1,394 @@
+clang jenkins bot fails with:
+
+In file included from 
/home/tdf/lode/jenkins/workspace/lo_gerrit/Config/linux_clang_dbgutil_64/workdir/UnpackedTarball/poppler/splash/SplashFontEngine.cc:38:
+In file included from 
/opt/rh/gcc-toolset-12/root/usr/lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/algorithm:60:
+In file included from 
/opt/rh/gcc-toolset-12/root/usr/lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algobase.h:65:
+In file included from 
/opt/rh/gcc-toolset-12/root/usr/lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_iterator_base_types.h:71:
+/opt/rh/gcc-toolset-12/root/usr/lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/iterator_concepts.h:982:13:
 error: no matching function for call to '__begin'
+        = decltype(ranges::__cust_access::__begin(std::declval<_Tp&>()));
+                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+/opt/rh/gcc-toolset-12/root/usr/lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/ranges_base.h:595:5:
 note: in instantiation of template type alias '__range_iter_t' requested here
+    using iterator_t = std::__detail::__range_iter_t<_Tp>;
+    ^
+/opt/rh/gcc-toolset-12/root/usr/lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/ranges_util.h:121:36:
 note: in instantiation of template type alias 'iterator_t' requested here
+      requires contiguous_iterator<iterator_t<_Derived>>
+                                   ^
+/opt/rh/gcc-toolset-12/root/usr/lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/ranges_util.h:228:29:
 note: in instantiation of template class 
'std::ranges::view_interface<std::ranges::subrange<SplashFont **, SplashFont 
**, std::ranges::subrange_kind::sized>>' requested here
+    class subrange : public view_interface<subrange<_It, _Sent, _Kind>>
+                            ^
+/opt/rh/gcc-toolset-12/root/usr/lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/ranges_algo.h:1499:7:
 note: in instantiation of template class 'std::ranges::subrange<SplashFont **, 
SplashFont **, std::ranges::subrange_kind::sized>' requested here
+      operator()(_Range&& __r, iterator_t<_Range> __middle) const
+      ^
+/home/tdf/lode/jenkins/workspace/lo_gerrit/Config/linux_clang_dbgutil_64/workdir/UnpackedTarball/poppler/splash/SplashFontEngine.cc:246:24:
 note: in instantiation of function template specialization 
'std::ranges::__rotate_fn::operator()<std::array<SplashFont *, 16> &>' 
requested here
+    std::ranges::rotate(fontCache, fontCache.end() - 1);
+                       ^
+/opt/rh/gcc-toolset-12/root/usr/lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/iterator_concepts.h:966:7:
 note: candidate template ignored: constraints not satisfied [with _Tp = 
std::ranges::subrange<SplashFont **, SplashFont **, 
std::ranges::subrange_kind::sized>]
+      __begin(_Tp& __t)
+      ^
+/opt/rh/gcc-toolset-12/root/usr/lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/iterator_concepts.h:964:16:
 note: because 'is_array_v<std::ranges::subrange<SplashFont **, SplashFont **, 
std::ranges::subrange_kind::sized> >' evaluated to false
+      requires is_array_v<_Tp> || __member_begin<_Tp&> || __adl_begin<_Tp&>
+               ^
+/opt/rh/gcc-toolset-12/root/usr/lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/iterator_concepts.h:964:35:
 note: and 'std::ranges::subrange<SplashFont **, SplashFont **, 
std::ranges::subrange_kind::sized> &' does not satisfy '__member_begin'
+      requires is_array_v<_Tp> || __member_begin<_Tp&> || __adl_begin<_Tp&>
+                                  ^
+/opt/rh/gcc-toolset-12/root/usr/lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/iterator_concepts.h:947:23:
 note: because '__decay_copy(__t.begin())' would be invalid: no member named 
'begin' in 'std::ranges::subrange<SplashFont **, SplashFont **, 
std::ranges::subrange_kind::sized>'
+          { __decay_copy(__t.begin()) } -> input_or_output_iterator;
+                             ^
+/opt/rh/gcc-toolset-12/root/usr/lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/iterator_concepts.h:964:59:
 note: and 'std::ranges::subrange<SplashFont **, SplashFont **, 
std::ranges::subrange_kind::sized> &' does not satisfy '__adl_begin'
+      requires is_array_v<_Tp> || __member_begin<_Tp&> || __adl_begin<_Tp&>
+                                                          ^
+/opt/rh/gcc-toolset-12/root/usr/lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/iterator_concepts.h:958:19:
 note: because '__decay_copy(begin(__t))' would be invalid: call to deleted 
function 'begin'
+          { __decay_copy(begin(__t)) } -> input_or_output_iterator;
+                         ^
+
+--- poppler/splash/SplashFontEngine.cc.orig2   2025-01-08 10:58:44.891336796 
+0100
++++ poppler/splash/SplashFontEngine.cc 2025-01-08 11:02:24.548166442 +0100
+@@ -243,7 +243,11 @@
+     if (fontCache.back()) {
+         delete fontCache.back();
+     }
++#if 0//ndef __clang__
+     std::ranges::rotate(fontCache, fontCache.end() - 1);
++#else
++    std::rotate(fontCache.begin(), fontCache.end() - 1, fontCache.end());
++#endif
+ 
+     fontCache[0] = newFont;
+     return fontCache[0];
+--- poppler/fofi/FoFiTrueType.cc.orig  2025-01-08 12:26:45.256494256 +0100
++++ poppler/fofi/FoFiTrueType.cc       2025-01-08 12:22:26.462723118 +0100
+@@ -1160,12 +1160,20 @@
+             locaTable[i].origOffset = glyfTableLen;
+         }
+     }
++#if 0//ndef __clang__
+     std::ranges::sort(locaTable, cmpTrueTypeLocaOffsetFunctor());
++#else
++    std::sort(locaTable.begin(), locaTable.end(), 
cmpTrueTypeLocaOffsetFunctor());
++#endif
+     for (i = 0; i < nGlyphs; ++i) {
+         locaTable[i].len = locaTable[i + 1].origOffset - 
locaTable[i].origOffset;
+     }
+     locaTable[nGlyphs].len = 0;
++#if 0//ndef __clang__
+     std::ranges::sort(locaTable, cmpTrueTypeLocaIdxFunctor());
++#else
++    std::sort(locaTable.begin(), locaTable.end(), 
cmpTrueTypeLocaIdxFunctor());
++#endif
+     pos = 0;
+     for (i = 0; i <= nGlyphs; ++i) {
+         locaTable[i].newOffset = pos;
+--- poppler/poppler/CIDFontsWidthsBuilder.h.orig       2025-01-08 
12:34:25.458714665 +0100
++++ poppler/poppler/CIDFontsWidthsBuilder.h    2025-01-08 12:35:05.809036940 
+0100
+@@ -89,7 +89,11 @@
+         // How many elements at the end has this
+         int uniqueElementsFromEnd(int value)
+         {
++#if 0//ndef __clang__
+             auto lastDifferent = 
std::ranges::find_if(std::ranges::reverse_view(m_values), [value](auto 
&&element) { return element != value; });
++#else
++            auto lastDifferent = std::find_if(m_values.rbegin(), 
m_values.rend(), [value](auto &&element) { return element != value; });
++#endif
+             return std::distance(m_values.rbegin(), lastDifferent);
+         }
+ 
+--- poppler/poppler/Dict.cc.orig       2025-01-08 12:17:07.701541557 +0100
++++ poppler/poppler/Dict.cc    2025-01-08 12:29:29.609619053 +0100
+@@ -125,7 +125,11 @@
+             return &*pos;
+         }
+     } else {
++#if 0//ndef __clang__
+         const auto pos = 
std::ranges::find_if(std::ranges::reverse_view(entries), [key](const DictEntry 
&entry) { return entry.first == key; });
++#else
++        const auto pos = std::find_if(entries.rbegin(), entries.rend(), 
[key](const DictEntry &entry) { return entry.first == key; });
++#endif
+         if (pos != entries.rend()) {
+             return &*pos;
+         }
+--- poppler/poppler/CIDFontsWidthsBuilder.h.orig2      2025-01-08 
13:26:29.167797754 +0100
++++ poppler/poppler/CIDFontsWidthsBuilder.h    2025-01-08 13:27:03.165988989 
+0100
+@@ -152,7 +152,11 @@
+             if (differentValues || m_values.size() < 4) {
+                 std::vector<int> savedValues;
+                 if (m_values.size() >= 4) {
++#if 0//ndef __clang__
+                     auto lastDifferent = 
std::ranges::find_if(std::ranges::reverse_view(m_values), [value = 
m_values.back()](auto &&element) { return element != value; });
++#else
++                    auto lastDifferent = std::find_if(m_values.rbegin(), 
m_values.rend(), [value = m_values.back()](auto &&element) { return element != 
value; });
++#endif
+                     if (std::distance(m_values.rbegin(), lastDifferent) >= 3) 
{
+                         savedValues.push_back(m_values.back());
+                         m_values.pop_back();
+--- poppler/poppler/Dict.cc.orig       2025-01-09 17:07:59.770799229 +0100
++++ poppler/poppler/Dict.cc    2025-01-09 17:04:28.369931616 +0100
+@@ -113,14 +113,22 @@
+             if (!sorted) {
+                 Dict *that = const_cast<Dict *>(this);
+ 
++#if 0//ndef __clang__
+                 std::ranges::sort(that->entries, CmpDictEntry {});
++#else
++                std::sort(that->entries.begin(), that->entries.end(), 
CmpDictEntry {});
++#endif
+                 that->sorted = true;
+             }
+         }
+     }
+ 
+     if (sorted) {
++#if 0//ndef __clang__
+         const auto pos = std::ranges::lower_bound(entries, key, std::less<> 
{}, &DictEntry::first);
++#else
++        const auto pos = std::lower_bound(entries.begin(), entries.end(), 
key, CmpDictEntry {});
++#endif
+         if (pos != entries.end() && pos->first == key) {
+             return &*pos;
+         }
+--- poppler/poppler/GlobalParams.cc.orig       2025-01-02 01:28:08.000000000 
+0100
++++ poppler/poppler/GlobalParams.cc    2025-01-09 17:13:51.367905376 +0100
+@@ -366,7 +366,11 @@
+     for (const SysFontInfo *f : fonts) {
+         fi = f;
+         if (fi->match(name2, bold, italic, oblique, fixedWidth)) {
++#if 0//ndef __clang__
+             if (std::ranges::find(filesToIgnore, fi->path->toStr()) == 
filesToIgnore.end()) {
++#else
++            if (std::find(filesToIgnore.begin(), filesToIgnore.end(), 
fi->path->toStr()) == filesToIgnore.end()) {
++#endif
+                 break;
+             }
+         }
+@@ -377,7 +381,11 @@
+         for (const SysFontInfo *f : fonts) {
+             fi = f;
+             if (fi->match(name2, false, italic)) {
++#if 0//ndef __clang__
+                 if (std::ranges::find(filesToIgnore, fi->path->toStr()) == 
filesToIgnore.end()) {
++#else
++                if (std::find(filesToIgnore.begin(), filesToIgnore.end(), 
fi->path->toStr()) == filesToIgnore.end()) {
++#endif
+                     break;
+                 }
+             }
+@@ -389,7 +397,11 @@
+         for (const SysFontInfo *f : fonts) {
+             fi = f;
+             if (fi->match(name2, false, false)) {
++#if 0//ndef __clang__
+                 if (std::ranges::find(filesToIgnore, fi->path->toStr()) == 
filesToIgnore.end()) {
++#else
++                if (std::find(filesToIgnore.begin(), filesToIgnore.end(), 
fi->path->toStr()) == filesToIgnore.end()) {
++#endif
+                     break;
+                 }
+             }
+@@ -737,7 +749,11 @@
+ 
+     // remove the - from the names, for some reason, Fontconfig does not
+     // understand "MS-Mincho" but does with "MS Mincho"
++#if 0//ndef __clang__
+     std::ranges::replace(fontName, '-', ' ');
++#else
++    std::replace(fontName.begin(), fontName.end(), '-', ' ');
++#endif
+ 
+     size_t start = std::string::npos;
+     findModifier(fontName, modStart, "Regular", start);
+@@ -1120,7 +1136,11 @@
+                     FcPatternGetInteger(fontSet->fonts[i], FC_INDEX, 0, 
&faceIndex);
+ 
+                     const std::string sFilePath = reinterpret_cast<char 
*>(fcFilePath);
++#if 0//ndef __clang__
+                     if (std::ranges::find(filesToIgnore, sFilePath) == 
filesToIgnore.end()) {
++#else
++                    if (std::find(filesToIgnore.begin(), filesToIgnore.end(), 
sFilePath) == filesToIgnore.end()) {
++#endif
+                         return FamilyStyleFontSearchResult(sFilePath, 
faceIndex);
+                     }
+                 }
+--- poppler/poppler/Catalog.cc.orig    2025-01-09 17:19:48.592089218 +0100
++++ poppler/poppler/Catalog.cc 2025-01-09 17:19:36.361030948 +0100
+@@ -705,7 +705,11 @@
+     RefRecursionChecker seen;
+     parse(tree, seen);
+     if (!entries.empty()) {
++#if 0//ndef __clang__
+         std::ranges::sort(entries, [](const auto &first, const auto &second) 
{ return first->name.cmp(&second->name) < 0; });
++#else
++        std::sort(entries.begin(), entries.end(), [](const auto &first, const 
auto &second) { return first->name.cmp(&second->name) < 0; });
++#endif
+     }
+ }
+ 
+@@ -754,7 +758,11 @@
+ 
+ Object NameTree::lookup(const GooString *name)
+ {
++#if 0//ndef __clang__
+     auto entry = std::ranges::lower_bound(entries, name, 
EntryGooStringComparer {});
++#else
++    auto entry = std::lower_bound(entries.begin(), entries.end(), name, 
[](const auto &element, const GooString *n) { return element->name.cmp(n) < 0; 
});
++#endif
+ 
+     if (entry != entries.end() && (*entry)->name.cmp(name) == 0) {
+         return (*entry)->value.fetch(xref);
+--- poppler/poppler/GfxFont.cc.orig2   2025-01-09 17:26:15.227421640 +0100
++++ poppler/poppler/GfxFont.cc 2025-01-09 17:27:06.930929833 +0100
+@@ -1868,7 +1868,11 @@
+                 ++i;
+             }
+         }
++#if 0//ndef __clang__
+         std::ranges::sort(widths.exceps, cmpWidthExcepFunctor());
++#else
++        std::sort(widths.exceps.begin(), widths.exceps.end(), 
cmpWidthExcepFunctor());
++#endif
+     }
+ 
+     // default metrics for vertical font
+@@ -1916,7 +1920,11 @@
+                 ++i;
+             }
+         }
++#if 0//ndef __clang__
+         std::ranges::sort(widths.excepsV, cmpWidthExcepVFunctor());
++#else
++        std::sort(widths.excepsV.begin(), widths.excepsV.end(), 
cmpWidthExcepVFunctor());
++#endif
+     }
+ 
+     ok = true;
+--- poppler/poppler/Gfx.cc.orig        2025-01-09 17:31:05.423273919 +0100
++++ poppler/poppler/Gfx.cc     2025-01-09 17:31:07.340292763 +0100
+@@ -2545,7 +2545,11 @@
+         bboxIntersections[1] = ((xMin - x0) * dx + (yMax - y0) * dy) * mul;
+         bboxIntersections[2] = ((xMax - x0) * dx + (yMin - y0) * dy) * mul;
+         bboxIntersections[3] = ((xMax - x0) * dx + (yMax - y0) * dy) * mul;
++#if 0//ndef __clang__
+         std::ranges::sort(bboxIntersections);
++#else
++        std::sort(std::begin(bboxIntersections), std::end(bboxIntersections));
++#endif
+         tMin = bboxIntersections[0];
+         tMax = bboxIntersections[3];
+         if (tMin < 0 && !shading->getExtend0()) {
+@@ -2646,7 +2650,11 @@
+         s[1] = (yMax - ty) / dx;
+         s[2] = (xMin - tx) / -dy;
+         s[3] = (xMax - tx) / -dy;
++#if 0//ndef __clang__
+         std::ranges::sort(s);
++#else
++        std::sort(std::begin(s), std::end(s));
++#endif
+         sMin = s[1];
+         sMax = s[2];
+     }
+@@ -2787,7 +2795,11 @@
+             s[1] = (yMax - ty) / dx;
+             s[2] = (xMin - tx) / -dy;
+             s[3] = (xMax - tx) / -dy;
++#if 0//ndef __clang__
+             std::ranges::sort(s);
++#else
++            std::sort(std::begin(s), std::end(s));
++#endif
+             sMin = s[1];
+             sMax = s[2];
+         }
+--- poppler/poppler/TextOutputDev.cc.orig      2025-01-09 17:37:28.163110149 
+0100
++++ poppler/poppler/TextOutputDev.cc   2025-01-09 17:36:48.827864411 +0100
+@@ -4574,7 +4574,11 @@
+     if (!words.empty()) {
+         // Reverse word order for RTL text. Fixes #53 for glib backend 
(Evince)
+         if (!page->primaryLR) {
++#if 0//ndef __clang__
+             std::ranges::reverse(words);
++#else
++            std::reverse(words.begin(), words.end());
++#endif
+         }
+ 
+         lines.push_back(std::move(words));
+@@ -5456,7 +5460,11 @@
+         for (word = rawWords; word; word = word->next) {
+             s.clear();
+             uText.resize(word->len());
++#if 0//ndef __clang__
+             std::ranges::transform(word->chars, uText.begin(), [](auto &c) { 
return c.text; });
++#else
++            std::transform(word->chars.begin(), word->chars.end(), 
uText.begin(), [](auto &c) { return c.text; });
++#endif
+             dumpFragment(uText.data(), uText.size(), uMap, &s);
+             (*outputFunc)(outputStream, s.c_str(), s.getLength());
+ 
+--- poppler/poppler/PDFDoc.cc.orig     2025-01-09 17:38:49.498598893 +0100
++++ poppler/poppler/PDFDoc.cc  2025-01-09 17:38:22.459449316 +0100
+@@ -596,7 +596,11 @@
+                 if (fw->getType() == formSignature) {
+                     assert(fw->getField()->getType() == formSignature);
+                     FormFieldSignature *ffs = static_cast<FormFieldSignature 
*>(fw->getField());
++#if 0//ndef __clang__
+                     if (std::ranges::find(res, ffs) == res.end()) {
++#else
++                    if (std::find(res.begin(), res.end(), ffs) == res.end()) {
++#endif
+                         res.push_back(ffs);
+                     }
+                 }
+--- poppler/poppler/Annot.cc.orig      2025-01-09 17:40:31.125125064 +0100
++++ poppler/poppler/Annot.cc   2025-01-09 17:40:14.021036519 +0100
+@@ -7499,7 +7499,11 @@
+ 
+ bool Annots::removeAnnot(Annot *annot)
+ {
++#if 0//ndef __clang__
+     auto idx = std::ranges::find(annots, annot);
++#else
++    auto idx = std::find(annots.begin(), annots.end(), annot);
++#endif
+ 
+     if (idx == annots.end()) {
+         return false;
+--- poppler/poppler/Dict.cc.orig       2025-01-09 18:35:56.796874707 +0100
++++ poppler/poppler/Dict.cc    2025-01-09 18:36:22.159050403 +0100
+@@ -32,7 +32,9 @@
+ #include <config.h>
+ 
+ #include <algorithm>
++#if 0//ndef __clang__
+ #include <ranges>
++#endif
+ 
+ #include "XRef.h"
+ #include "Dict.h"
+--- poppler/poppler/CIDFontsWidthsBuilder.h.orig       2025-01-09 
18:37:58.541718087 +0100
++++ poppler/poppler/CIDFontsWidthsBuilder.h    2025-01-09 18:38:02.766747356 
+0100
+@@ -15,7 +15,9 @@
+ #include <vector>
+ #include <variant>
+ #include <algorithm>
++#if 0//ndef __clang__
+ #include <ranges>
++#endif
+ #include <cassert>
+ 
+ /** Class to help build the widths array as defined in
+--- poppler/poppler/Catalog.cc.orig    2025-01-10 09:09:33.713016092 +0100
++++ poppler/poppler/Catalog.cc 2025-01-10 09:10:36.719237223 +0100
+@@ -749,12 +749,14 @@
+     }
+ }
+ 
++#if 0//ndef __clang__
+ struct EntryGooStringComparer
+ {
+     static constexpr const GooString *get(const GooString *string) { return 
string; };
+     static constexpr const GooString *get(const auto &entry) { return 
&entry->name; }
+     auto operator()(const auto &lhs, const auto &rhs) { return 
get(lhs)->cmp(get(rhs)) < 0; }
+ };
++#endif
+ 
+ Object NameTree::lookup(const GooString *name)
+ {
diff --git a/external/poppler/disable-freetype.patch.1 
b/external/poppler/disable-freetype.patch.1
index 5d7426242c35..211214eebb3e 100644
--- a/external/poppler/disable-freetype.patch.1
+++ b/external/poppler/disable-freetype.patch.1
@@ -8,16 +8,17 @@ disable freetype dependent code
  #include <cctype>
 -#include "goo/ft_utils.h"
 +//#include "goo/ft_utils.h"
- #include "goo/gmem.h"
  #include "goo/gfile.h"
  #include "goo/GooString.h"
-@@ -78,8 +78,8 @@
+ #include "Error.h"
+@@ -78,9 +78,9 @@
  #include "fofi/FoFiTrueType.h"
  #include "fofi/FoFiIdentifier.h"
  
 -#include <ft2build.h>
--#include FT_FREETYPE_H
 +//#include <ft2build.h>
+ #include <variant>
+-#include FT_FREETYPE_H
 +//#include FT_FREETYPE_H
  #include <unordered_set>
  
diff --git a/external/poppler/disable-nss-and-gpgmepp.patch.1 
b/external/poppler/disable-nss-and-gpgmepp.patch.1
deleted file mode 100644
index 1fc9ede6035c..000000000000
--- a/external/poppler/disable-nss-and-gpgmepp.patch.1
+++ /dev/null
@@ -1,103 +0,0 @@
-disable NSS/GPGMEPP dependent code.
-
---- poppler/poppler/Form.cc.orig       2023-06-05 19:29:14.000000000 +0900
-+++ poppler/poppler/Form.cc    2023-06-17 16:51:27.873431500 +0900
-@@ -64,7 +64,7 @@
- #include "Form.h"
- #include "PDFDoc.h"
- #include "DateInfo.h"
--#include "CryptoSignBackend.h"
-+/*#include "CryptoSignBackend.h"*/
- #include "SignatureInfo.h"
- #include "CertificateInfo.h"
- #include "XRef.h"
-@@ -584,7 +584,7 @@
- {
-     return static_cast<FormFieldSignature 
*>(field)->validateSignatureResult();
- }
--
-+#if 0
- // update hash with the specified range of data from the file
- static bool hashFileRange(FILE *f, CryptoSign::SigningInterface *handler, 
Goffset start, Goffset end)
- {
-@@ -608,10 +608,12 @@
-     delete[] buf;
-     return true;
- }
-+#endif
-
- bool FormWidgetSignature::signDocument(const std::string &saveFilename, const 
std::string &certNickname, const std::string &password, const GooString 
*reason, const GooString *location, const std::optional<GooString> 
&ownerPassword,
-                                        const std::optional<GooString> 
&userPassword)
- {
-+#if 0
-     auto backend = CryptoSign::Factory::createActive();
-     if (!backend) {
-         return false;
-@@ -697,8 +699,8 @@
-     signatureField->setSignature(*signature);
-
-     fclose(file);
--
--    return true;
-+#endif
-+    return false;
- }
-
- static std::tuple<double, double> calculateDxDy(int rot, const PDFRectangle 
*rect)
-@@ -2355,6 +2357,7 @@
-
- void 
FormFieldSignature::hashSignedDataBlock(CryptoSign::VerificationInterface 
*handler, Goffset block_len)
- {
-+#if 0
-     if (!handler) {
-         return;
-     }
-@@ -2374,6 +2377,7 @@
-             i += BLOCK_SIZE;
-         }
-     }
-+#endif
- }
-
- FormSignatureType FormWidgetSignature::signatureType() const
-@@ -2395,6 +2399,7 @@
- 
- SignatureInfo *FormFieldSignature::validateSignatureAsync(bool doVerifyCert, 
bool forceRevalidation, time_t validationTime, bool ocspRevocationCheck, bool 
enableAIA, const std::function<void()> &doneCallback)
- {
-+#if 0
-     auto backend = CryptoSign::Factory::createActive();
-     if (!backend) {
-         if (doneCallback) {
-@@ -2497,6 +2502,7 @@
- 
-     
signature_handler->validateCertificateAsync(std::chrono::system_clock::from_time_t(validationTime),
 ocspRevocationCheck, enableAIA, doneCallback);
- 
-+#endif
-     return signature_info;
- }
-
-@@ -2508,10 +2508,13 @@
- 
- CertificateValidationStatus FormFieldSignature::validateSignatureResult()
- {
-+#if 0
-     if (!signature_handler) {
-         return CERTIFICATE_GENERIC_ERROR;
-     }
-     return signature_handler->validateCertificateResult();
-+#endif
-+    return CERTIFICATE_GENERIC_ERROR;
- }
- 
- std::vector<Goffset> FormFieldSignature::getSignedRangeBounds() const
-
---- poppler/poppler/Form.h     2024-05-13 10:18:04.303912457 +0200
-+++ poppler/poppler/Form.h     2024-05-13 11:41:51.547002511 +0200
-@@ -669,7 +669,6 @@
-     double customAppearanceLeftFontSize = 20;
-     Ref imageResource = Ref::INVALID();
-     std::unique_ptr<X509CertificateInfo> certificate_info;
--    std::unique_ptr<CryptoSign::VerificationInterface> signature_handler;
- 
-     void print(int indent) override;
- };
diff --git a/external/poppler/gcc7-EntityInfo.patch.1 
b/external/poppler/gcc7-EntityInfo.patch.1
index 1dd7c83ad475..3bf3894937a6 100644
--- a/external/poppler/gcc7-EntityInfo.patch.1
+++ b/external/poppler/gcc7-EntityInfo.patch.1
@@ -40,8 +40,8 @@ 
workdir/UnpackedTarball/poppler/poppler/CertificateInfo.h:58:24: note: ‘X509Ce
 -GfxFontLoc &GfxFontLoc::operator=(GfxFontLoc &&other) noexcept = default;
 +GfxFontLoc &GfxFontLoc::operator=(GfxFontLoc &&other) /*noexcept*/ = default;
  
- void GfxFontLoc::setPath(GooString *pathA)
- {
+ //------------------------------------------------------------------------
+ // GfxFont
 --- poppler/poppler/GfxFont.h.orig     2022-09-14 20:24:30.784608340 +0200
 +++ poppler/poppler/GfxFont.h  2022-09-14 20:25:08.850586861 +0200
 @@ -124,7 +124,7 @@
@@ -51,5 +51,5 @@ 
workdir/UnpackedTarball/poppler/poppler/CertificateInfo.h:58:24: note: ‘X509Ce
 -    GfxFontLoc &operator=(GfxFontLoc &&other) noexcept;
 +    GfxFontLoc &operator=(GfxFontLoc &&other) /*noexcept*/;
  
-     // Set the 'path' string from a GooString on the heap.
-     // Ownership of the object is taken.
+     GfxFontLocType locType;
+     GfxFontType fontType;
diff --git a/external/poppler/gcc7-GfxFont.patch.1 
b/external/poppler/gcc7-GfxFont.patch.1
index e73dbeb201c1..0d0d3e0ae3c1 100644
--- a/external/poppler/gcc7-GfxFont.patch.1
+++ b/external/poppler/gcc7-GfxFont.patch.1
@@ -58,7 +58,7 @@ index cc2ce038..b0d0d610 100644
      //----- external font file (fontFile, fontDir)
 @@ -708,7 +708,7 @@ std::optional<GfxFontLoc> GfxFont::locateFont(XRef *xref, 
PSOutputDev *ps)
                  fontLoc.fontType = fontCIDType2;
-                 fontLoc.setPath(path);
+                 fontLoc.path = *path;
                  fontLoc.fontNum = fontNum;
 -                return fontLoc;
 +                return std::move(fontLoc); // std::move only required to 
please g++-7
@@ -72,8 +72,8 @@ index cc2ce038..b0d0d610 100644
 -            return fontLoc;
 +            return std::move(fontLoc); // std::move only required to please 
g++-7
          }
-         delete path;
      }
+ 
 @@ -749,7 +749,7 @@ std::optional<GfxFontLoc> GfxFont::locateFont(XRef *xref, 
PSOutputDev *ps)
              fontLoc.fontType = fontType1;
              fontLoc.path = substName;
@@ -86,7 +86,7 @@ index cc2ce038..b0d0d610 100644
 @@ -811,7 +811,7 @@ std::optional<GfxFontLoc> 
GfxFont::getExternalFont(GooString *path, bool cid)
      fontLoc.locType = gfxFontLocExternal;
      fontLoc.fontType = fontType;
-     fontLoc.setPath(path);
+     fontLoc.path = path;
 -    return fontLoc;
 +    return std::move(fontLoc); // std::move only required to please g++-7
  }
diff --git a/external/poppler/poppler-config.patch.1 
b/external/poppler/poppler-config.patch.1
index e2163319fd43..a12fb0107098 100644
--- a/external/poppler/poppler-config.patch.1
+++ b/external/poppler/poppler-config.patch.1
@@ -29,7 +29,7 @@ index 0fbd336a..451213f8 100644
 +/* #undef ENABLE_LIBOPENJPEG */
 +
 +/* Build against libtiff. */
-+/* #define ENABLE_LIBTIFF 1 */
++/* #undef ENABLE_LIBTIFF */
 +
 +/* Build against libpng. */
 +/* #define ENABLE_LIBPNG 1 */
@@ -41,16 +41,16 @@ index 0fbd336a..451213f8 100644
 +/* #undef ENABLE_ZLIB_UNCOMPRESS */
 +
 +/* Build against libnss3 for digital signature validation */
-+/* #define ENABLE_NSS3 1 */
++/* #undef ENABLE_NSS3 */
 +
 +/* Build against libgpgme for digital signature validation */
 +/* #undef ENABLE_GPGME */
 +
 +/* Signatures enabled */
-+/* #define ENABLE_SIGNATURES 1 */
++/* #undef ENABLE_SIGNATURES */
 +
 +/* Default signature backend */
-+/* #define DEFAULT_SIGNATURE_BACKEND "NSS" */
++#define DEFAULT_SIGNATURE_BACKEND "None"
 +
 +/* Use cairo for rendering. */
 +/* #define HAVE_CAIRO 1 */
@@ -179,7 +179,7 @@ index 0fbd336a..451213f8 100644
 +#define PACKAGE_NAME "poppler"
 +
 +/* Define to the full name and version of this package. */
-+#define PACKAGE_STRING "poppler 24.06.0"
++#define PACKAGE_STRING "poppler 25.01.0"
 +
 +/* Define to the one symbol short name of this package. */
 +#define PACKAGE_TARNAME "poppler"
@@ -188,7 +188,7 @@ index 0fbd336a..451213f8 100644
 +#define PACKAGE_URL ""
 +
 +/* Define to the version of this package. */
-+#define PACKAGE_VERSION "24.06.0"
++#define PACKAGE_VERSION "25.01.0"
 +
 +/* Poppler data dir */
 +#define POPPLER_DATADIR "/usr/local/share/poppler"
@@ -206,7 +206,7 @@ index 0fbd336a..451213f8 100644
 +/* #undef USE_FLOAT */
 +
 +/* Version number of package */
-+#define VERSION "24.06.0"
++#define VERSION "25.01.0"
 +
 +#if defined(__APPLE__)
 +#elif defined (_WIN32)
@@ -290,7 +290,7 @@ index 0fbd336a..451213f8 100644
 +
 +/* Defines the poppler version. */
 +#ifndef POPPLER_VERSION
-+#define POPPLER_VERSION "24.06.0"
++#define POPPLER_VERSION "25.01.0"
 +#endif
 +
 +/* Use single precision arithmetic in the Splash backend */
@@ -320,7 +320,7 @@ index 0fbd336a..451213f8 100644
 +
 +/* Build against libtiff. */
 +#ifndef ENABLE_LIBTIFF
-+/* #define ENABLE_LIBTIFF 1 */
++/* #undef ENABLE_LIBTIFF */
 +#endif
 +
 +/* Build against libpng. */
@@ -377,7 +377,7 @@ index 0fbd336a..451213f8 100644
 +//------------------------------------------------------------------------
 +
 +// copyright notice
-+#define popplerCopyright "Copyright 2005-2023 The Poppler Developers - 
http://poppler.freedesktop.org";
++#define popplerCopyright "Copyright 2005-2025 The Poppler Developers - 
http://poppler.freedesktop.org";
 +#define xpdfCopyright "Copyright 1996-2011, 2022 Glyph & Cog, LLC"
 +
 +//------------------------------------------------------------------------
@@ -437,9 +437,9 @@ index 0fbd336a..451213f8 100644
 +
 +#include "poppler-global.h"
 +
-+#define POPPLER_VERSION "24.06.0"
-+#define POPPLER_VERSION_MAJOR 24
-+#define POPPLER_VERSION_MINOR 6
++#define POPPLER_VERSION "25.01.0"
++#define POPPLER_VERSION_MAJOR 25
++#define POPPLER_VERSION_MINOR 1
 +#define POPPLER_VERSION_MICRO 0
 +
 +namespace poppler
diff --git a/external/poppler/std_numbers.patch.1 
b/external/poppler/std_numbers.patch.1
new file mode 100644
index 000000000000..38a23b7a6dc0
--- /dev/null
+++ b/external/poppler/std_numbers.patch.1
@@ -0,0 +1,30 @@
+remove C++20 std::numbers
+
+--- poppler/poppler/Annot.cc.orig      2025-01-09 17:42:27.108725610 +0100
++++ poppler/poppler/Annot.cc   2025-01-09 17:44:32.213373330 +0100
+@@ -70,7 +70,6 @@
+ #include <cstdlib>
+ #include <cmath>
+ #include <cassert>
+-#include <numbers>
+ #include "goo/gmem.h"
+ #include "goo/gstrtod.h"
+ #include "Error.h"
+@@ -1762,7 +1762,7 @@
+ {
+     double r2;
+ 
+-    r2 = r / std::numbers::sqrt2;
++    r2 = r / sqrt(2.0);
+     appearBuf->appendf("{0:.2f} {1:.2f} m
", cx + r2, cy + r2);
+     appearBuf->appendf("{0:.2f} {1:.2f} {2:.2f} {3:.2f} {4:.2f} {5:.2f} c
", cx + (1 - bezierCircle) * r2, cy + (1 + bezierCircle) * r2, cx - (1 - 
bezierCircle) * r2, cy + (1 + bezierCircle) * r2, cx - r2, cy + r2);
+     appearBuf->appendf("{0:.2f} {1:.2f} {2:.2f} {3:.2f} {4:.2f} {5:.2f} c
", cx - (1 + bezierCircle) * r2, cy + (1 - bezierCircle) * r2, cx - (1 + 
bezierCircle) * r2, cy - (1 - bezierCircle) * r2, cx - r2, cy - r2);
+@@ -1775,7 +1775,7 @@
+ {
+     double r2;
+ 
+-    r2 = r / std::numbers::sqrt2;
++    r2 = r / sqrt(2.0);
+     appearBuf->appendf("{0:.2f} {1:.2f} m
", cx - r2, cy - r2);
+     appearBuf->appendf("{0:.2f} {1:.2f} {2:.2f} {3:.2f} {4:.2f} {5:.2f} c
", cx - (1 - bezierCircle) * r2, cy - (1 + bezierCircle) * r2, cx + (1 - 
bezierCircle) * r2, cy - (1 + bezierCircle) * r2, cx + r2, cy - r2);
+     appearBuf->appendf("{0:.2f} {1:.2f} {2:.2f} {3:.2f} {4:.2f} {5:.2f} c
", cx + (1 + bezierCircle) * r2, cy - (1 - bezierCircle) * r2, cx + (1 + 
bezierCircle) * r2, cy + (1 - bezierCircle) * r2, cx + r2, cy + r2);
diff --git a/external/poppler/std_span.patch.1 
b/external/poppler/std_span.patch.1
index 37516afd5f03..c61f1269a876 100644
--- a/external/poppler/std_span.patch.1
+++ b/external/poppler/std_span.patch.1
@@ -36,3 +36,15 @@ replace C++20 std::span with o3tl::span
  #include "FoFiBase.h"
  #include "poppler_private_export.h"
  
+--- poppler/poppler/UnicodeMap.h.orig  2025-01-09 15:49:23.405887878 +0100
++++ poppler/poppler/UnicodeMap.h       2025-01-09 15:49:15.094853934 +0100
+@@ -38,7 +38,8 @@
+ #include <string>
+ #include <vector>
+ #include <variant>
+-#include <span>
++#include <o3tl/span.hxx>
++namespace std { using o3tl::span; }
+ 
+ //------------------------------------------------------------------------
+ 
diff --git a/external/poppler/std_string.patch.1 
b/external/poppler/std_string.patch.1
index 02a7940b8e40..3c3ef6dcf564 100644
--- a/external/poppler/std_string.patch.1
+++ b/external/poppler/std_string.patch.1
@@ -53,17 +53,6 @@ remove C++20 starts_with
          // for now we only support ttf, ttc, otf fonts
          return false;
      }
---- poppler/poppler/GfxFont.cc.orig    2025-01-09 11:26:07.863484064 +0100
-+++ poppler/poppler/GfxFont.cc 2025-01-09 11:31:47.164550059 +0100
-@@ -1252,7 +1252,7 @@
- 
-     // pass 1: use the name-to-Unicode mapping table
-     missing = hex = false;
--    bool isZapfDingbats = name && name->ends_with("ZapfDingbats");
-+    bool isZapfDingbats = name && GooString::endsWith(*name, "ZapfDingbats");
-     for (int code = 0; code < 256; ++code) {
-         if ((charName = enc[code])) {
-             if (isZapfDingbats) {
 --- poppler/poppler/Form.cc.orig2      2025-01-09 11:33:42.284911742 +0100
 +++ poppler/poppler/Form.cc    2025-01-09 11:34:46.013111945 +0100
 @@ -2818,7 +2818,7 @@
@@ -86,3 +75,36 @@ remove C++20 starts_with
          i = 3;
          step = 2;
      } else {
+--- poppler/poppler/GfxFont.cc.orig2   2025-01-09 15:28:44.912394819 +0100
++++ poppler/poppler/GfxFont.cc 2025-01-09 15:29:01.903477753 +0100
+@@ -1085,7 +1085,7 @@
+     baseEnc = nullptr;
+     baseEncFromFontFile = false;
+     obj1 = fontDict->lookup("Encoding");
+-    bool isZapfDingbats = name && name->ends_with("ZapfDingbats");
++    bool isZapfDingbats = name && GooString::endsWith(*name, "ZapfDingbats");
+     if (isZapfDingbats) {
+         baseEnc = zapfDingbatsEncoding;
+         hasEncoding = true;
+--- poppler/poppler/UTF.h.orig2        2025-01-09 15:46:59.275299177 +0100
++++ poppler/poppler/UTF.h      2025-01-09 15:47:32.502434901 +0100
+@@ -74,7 +74,7 @@
+ // check whether string starts with Big-Endian byte order mark and string 
length is even
+ inline bool hasUnicodeByteOrderMarkAndLengthIsEven(const std::string &s)
+ {
+-    return s.starts_with(unicodeByteOrderMark) && s.length() % 2 == 0;
++    return hasUnicodeByteOrderMark(s) && s.length() % 2 == 0;
+ }
+ 
+ // is a unicode whitespace character
+--- poppler/poppler/GlobalParamsWin.cc.orig    2025-01-10 09:54:56.256775789 
+0100
++++ poppler/poppler/GlobalParamsWin.cc 2025-01-10 09:55:02.001792823 +0100
+@@ -488,7 +488,7 @@
+             path = fontFile->second;
+             if (substituteFontName)
+                 substituteFontName->Set(path.c_str());
+-            if (path.ends_with(".ttc")) {
++            if (GooString::endsWith(path, ".ttc")) {
+                 *type = sysFontTTC;
+             } else {
+                 *type = sysFontTTF;
commit c02c3effa5689ff47fed0db58807cdf77cff4138
Author:     Michael Stahl <michael.st...@allotropia.de>
AuthorDate: Tue Jan 7 18:42:29 2025 +0100
Commit:     Michael Stahl <michael.st...@allotropia.de>
CommitDate: Tue Mar 11 11:53:26 2025 +0100

    sdext: adapt xpdfwrapper to poppler 24.12
    
    Change-Id: Ia47edf2ac821e3ef5c40f7582253f894eac74060
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/179902
    Tested-by: Jenkins
    Reviewed-by: Michael Stahl <michael.st...@allotropia.de>
    (cherry picked from commit aa94faf493945e854a888e809a9c5cc8d6d0b978)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/179957
    Tested-by: Michael Stahl <michael.st...@allotropia.de>
    (cherry picked from commit 052c9859e2bd5dfeb54d834a3d7910140d5a8535)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180039
    Tested-by: allotropia jenkins <jenk...@allotropia.de>
    (cherry picked from commit 3c1ac1bd77689863797732b3736fd53f0e553cdb)

diff --git a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx 
b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx
index 922bf064f571..ca97a9330e2f 100644
--- a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx
+++ b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx
@@ -1020,7 +1020,12 @@ void PDFOutDev::drawImageMask(GfxState* pState, Object*, 
Stream* str,
 
     int bitsPerComponent = 1;
     StreamColorSpaceMode csMode = streamCSNone;
+#if POPPLER_CHECK_VERSION(24, 12, 0)
+    bool hasAlpha;
+    str->getImageParams( &bitsPerComponent, &csMode, &hasAlpha );
+#else
     str->getImageParams( &bitsPerComponent, &csMode );
+#endif
     if( bitsPerComponent == 1 && (csMode == streamCSNone || csMode == 
streamCSDeviceGray) )
     {
         GfxRGB oneColor = { dblToCol( 1.0 ), dblToCol( 1.0 ), dblToCol( 1.0 ) 
};
commit ff40d530dbb174f4e025852609a3c841b438a463
Author:     Taichi Haradaguchi <20001...@ymail.ne.jp>
AuthorDate: Fri Aug 9 05:50:39 2024 +0200
Commit:     Michael Stahl <michael.st...@allotropia.de>
CommitDate: Tue Mar 11 11:53:26 2025 +0100

    poppler: upgrade to release 24.08.0
    
    Fixes CVE-2024-6239
    
    Downloaded from https://poppler.freedesktop.org/poppler-24.08.0.tar.xz
    
    Change-Id: I70373c367cc3da87d9847c00b02a17f514b52ae8
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171667
    Tested-by: Jenkins
    Reviewed-by: Taichi Haradaguchi <20001...@ymail.ne.jp>
    (cherry picked from commit e266da95e0522fd9896f92f1c2ca3235e0e6fd66)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172951
    Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org>
    Signed-off-by: Xisco Fauli <xiscofa...@libreoffice.org>
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173040
    (cherry picked from commit e79a53b37d7157b7991eb27b3f440028ca06feea)
    (cherry picked from commit 8b4687eb81e8413469f4a968be2d4b2a279d5195)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180030
    Tested-by: allotropia jenkins <jenk...@allotropia.de>
    Reviewed-by: Michael Stahl <michael.st...@allotropia.de>
    (cherry picked from commit 58d93d6e4334b750723767b751705e00b9dd510c)

diff --git a/download.lst b/download.lst
index bce8f82dded3..128e7a6935b6 100644
--- a/download.lst
+++ b/download.lst
@@ -475,8 +475,8 @@ LIBPNG_TARBALL := libpng-1.6.37.tar.xz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-POPPLER_SHA256SUM := 
0cdabd495cada11f6ee9e75c793f80daf46367b66c25a63ee8c26d0f9ec40c76
-POPPLER_TARBALL := poppler-24.06.0.tar.xz
+POPPLER_SHA256SUM := 
97453fbddf0c9a9eafa0ea45ac710d3d49bcf23a62e864585385d3c0b4403174
+POPPLER_TARBALL := poppler-24.08.0.tar.xz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
diff --git a/external/poppler/gcc7-GfxFont.patch.1 
b/external/poppler/gcc7-GfxFont.patch.1
index a240b1b8bad2..e73dbeb201c1 100644
--- a/external/poppler/gcc7-GfxFont.patch.1
+++ b/external/poppler/gcc7-GfxFont.patch.1
@@ -41,7 +41,7 @@ index cc2ce038..b0d0d610 100644
 @@ -668,7 +668,7 @@ std::optional<GfxFontLoc> GfxFont::locateFont(XRef *xref, 
PSOutputDev *ps)
          fontLoc.locType = gfxFontLocResident;
          fontLoc.fontType = fontType1;
-         fontLoc.path = *name;
+         fontLoc.path = name.value_or(std::string());
 -        return fontLoc;
 +        return std::move(fontLoc); // std::move only required to please g++-7
      }
diff --git a/external/poppler/std_span.patch.1 
b/external/poppler/std_span.patch.1
index 1ed550daa3a4..37516afd5f03 100644
--- a/external/poppler/std_span.patch.1
+++ b/external/poppler/std_span.patch.1
@@ -24,3 +24,15 @@ replace C++20 std::span with o3tl::span
  
  #include "CharTypes.h"
  #include "poppler_private_export.h"
+--- poppler/fofi/FoFiTrueType.h.orig   2025-01-09 14:58:33.689388042 +0100
++++ poppler/fofi/FoFiTrueType.h        2025-01-09 14:58:35.674394746 +0100
+@@ -35,7 +35,8 @@
+ #include <vector>
+ #include <unordered_map>
+ #include <string>
+-#include <span>
++#include <o3tl/span.hxx>
++namespace std { using o3tl::span; }
+ #include "FoFiBase.h"
+ #include "poppler_private_export.h"
+ 
diff --git a/include/o3tl/span.hxx b/include/o3tl/span.hxx
index 55bc5c7e2a9d..7be5bda39ca3 100644
--- a/include/o3tl/span.hxx
+++ b/include/o3tl/span.hxx
@@ -24,6 +24,7 @@ namespace o3tl { using std::span; }
 
 #include <cassert>
 #include <cstddef>
+#include <array>
 #include <iterator>
 #include <type_traits>
 #include <vector>
@@ -60,6 +61,10 @@ public:
         assert(a != nullptr || len == 0);
     }
 
+    template<typename T2, std::size_t Size>
+    constexpr span(const std::array<T2, Size>& arr)
+        : data_(const_cast<T*>(arr.data())), size_(arr.size()) {}
+
     template<typename T2>
     constexpr span(const std::vector<T2>& vec)
         : data_(const_cast<T*>(vec.data())), size_(vec.size()) {}
commit eb7b35158648a1f096bce461f23a6773389ffc12
Author:     Xisco Fauli <xiscofa...@libreoffice.org>
AuthorDate: Mon Jun 10 16:49:29 2024 +0200
Commit:     Michael Stahl <michael.st...@allotropia.de>
CommitDate: Tue Mar 11 11:53:26 2025 +0100

    poppler: Upgrade to 24.06.0
    
    Downloaded from https://poppler.freedesktop.org/poppler-24.06.0.tar.xz
    
    Change-Id: I6b679ae014edd7a9897eed39a6e91c63251cc016
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168642
    Tested-by: Jenkins
    Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org>
    Signed-off-by: Xisco Fauli <xiscofa...@libreoffice.org>
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173039
    Reviewed-by: Taichi Haradaguchi <20001...@ymail.ne.jp>
    (cherry picked from commit cec9dd0f6f961f39072795c27ec90994587c5369)
    (cherry picked from commit 2728df128681088e579f38792248eb932b74f8b8)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180011
    Tested-by: Michael Stahl <michael.st...@allotropia.de>
    Reviewed-by: Michael Stahl <michael.st...@allotropia.de>
    (cherry picked from commit 2452c7182a839e793b6a6d99b2a0ae4b73429dde)

diff --git a/download.lst b/download.lst
index cadbe638f67c..bce8f82dded3 100644
--- a/download.lst
+++ b/download.lst
@@ -475,8 +475,8 @@ LIBPNG_TARBALL := libpng-1.6.37.tar.xz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-POPPLER_SHA256SUM := 
d8c5eb30b50285ad9f0af8c6335cc2d3b9597fca475cbc2598a5479fa379f779
-POPPLER_TARBALL := poppler-24.05.0.tar.xz
+POPPLER_SHA256SUM := 
0cdabd495cada11f6ee9e75c793f80daf46367b66c25a63ee8c26d0f9ec40c76
+POPPLER_TARBALL := poppler-24.06.0.tar.xz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
diff --git a/external/poppler/UnpackedTarball_poppler.mk 
b/external/poppler/UnpackedTarball_poppler.mk
index a3f493bb204f..382e2e0f1d5f 100644
--- a/external/poppler/UnpackedTarball_poppler.mk
+++ b/external/poppler/UnpackedTarball_poppler.mk
@@ -18,6 +18,7 @@ $(eval $(call gb_UnpackedTarball_add_patches,poppler,\
        external/poppler/gcc7-GfxFont.patch.1 \
        external/poppler/std_charconv.patch.1 \
        external/poppler/std_string.patch.1 \
+       external/poppler/std_span.patch.1 \
        external/poppler/poppler-config.patch.1 \
 ))
 
diff --git a/external/poppler/poppler-config.patch.1 
b/external/poppler/poppler-config.patch.1
index 8f71e987b2b9..e2163319fd43 100644
--- a/external/poppler/poppler-config.patch.1
+++ b/external/poppler/poppler-config.patch.1
@@ -179,7 +179,7 @@ index 0fbd336a..451213f8 100644
 +#define PACKAGE_NAME "poppler"
 +
 +/* Define to the full name and version of this package. */
-+#define PACKAGE_STRING "poppler 23.09.0"
++#define PACKAGE_STRING "poppler 24.06.0"
 +
 +/* Define to the one symbol short name of this package. */
 +#define PACKAGE_TARNAME "poppler"
@@ -188,7 +188,7 @@ index 0fbd336a..451213f8 100644
 +#define PACKAGE_URL ""
 +
 +/* Define to the version of this package. */
-+#define PACKAGE_VERSION "23.09.0"
++#define PACKAGE_VERSION "24.06.0"
 +
 +/* Poppler data dir */
 +#define POPPLER_DATADIR "/usr/local/share/poppler"
@@ -206,7 +206,7 @@ index 0fbd336a..451213f8 100644
 +/* #undef USE_FLOAT */
 +
 +/* Version number of package */
-+#define VERSION "23.09.0"
++#define VERSION "24.06.0"
 +
 +#if defined(__APPLE__)
 +#elif defined (_WIN32)
@@ -290,7 +290,7 @@ index 0fbd336a..451213f8 100644
 +
 +/* Defines the poppler version. */
 +#ifndef POPPLER_VERSION
-+#define POPPLER_VERSION "23.09.0"
++#define POPPLER_VERSION "24.06.0"
 +#endif
 +
 +/* Use single precision arithmetic in the Splash backend */
@@ -437,9 +437,9 @@ index 0fbd336a..451213f8 100644
 +
 +#include "poppler-global.h"
 +
-+#define POPPLER_VERSION "23.09.0"
-+#define POPPLER_VERSION_MAJOR 23
-+#define POPPLER_VERSION_MINOR 9
++#define POPPLER_VERSION "24.06.0"
++#define POPPLER_VERSION_MAJOR 24
++#define POPPLER_VERSION_MINOR 6
 +#define POPPLER_VERSION_MICRO 0
 +
 +namespace poppler
diff --git a/external/poppler/std_span.patch.1 
b/external/poppler/std_span.patch.1
new file mode 100644
index 000000000000..1ed550daa3a4
--- /dev/null
+++ b/external/poppler/std_span.patch.1
@@ -0,0 +1,26 @@
+replace C++20 std::span with o3tl::span
+
+--- poppler/poppler/Stream.h.orig      2025-01-09 11:50:21.095027459 +0100
++++ poppler/poppler/Stream.h   2025-01-09 11:53:05.933540760 +0100
+@@ -47,7 +47,8 @@
+ #include <atomic>
+ #include <cstdio>
+ #include <vector>
+-#include <span>
++#include <o3tl/span.hxx>
++namespace std { using o3tl::span; }
+ 
+ #include "poppler-config.h"
+ #include "poppler_private_export.h"
+--- poppler/poppler/UTF.h.orig2        2025-01-09 11:48:18.197644776 +0100
++++ poppler/poppler/UTF.h      2025-01-09 11:53:11.688558686 +0100
+@@ -23,7 +23,8 @@
+ #include <climits>
+ #include <string>
+ #include <vector>
+-#include <span>
++#include <o3tl/span.hxx>
++namespace std { using o3tl::span; }
+ 
+ #include "CharTypes.h"
+ #include "poppler_private_export.h"
diff --git a/external/poppler/std_string.patch.1 
b/external/poppler/std_string.patch.1
index 6c5ce136ca47..02a7940b8e40 100644
--- a/external/poppler/std_string.patch.1
+++ b/external/poppler/std_string.patch.1
@@ -75,3 +75,14 @@ remove C++20 starts_with
              const Object fontObj = fontDict->getVal(i);
              if (fontObj.isDict() && fontObj.dictIs("Font")) {
                  const Object fontBaseFontObj = fontObj.dictLookup("BaseFont");
+--- poppler/poppler/PSOutputDev.cc.orig        2025-01-09 12:21:50.100540341 
+0100
++++ poppler/poppler/PSOutputDev.cc     2025-01-09 12:21:52.004545519 +0100
+@@ -7482,7 +7482,7 @@
+     //   for the keyword, which was emitted by the caller)
+     // - lines that start with a left paren are treated as <text>
+     //   instead of <textline>, so we escape a leading paren
+-    if (s.starts_with(unicodeByteOrderMark)) {
++    if (GooString::startsWith(s, unicodeByteOrderMark)) {
+         i = 3;
+         step = 2;
+     } else {
diff --git a/include/o3tl/span.hxx b/include/o3tl/span.hxx
index 18d60ca7d6c0..55bc5c7e2a9d 100644
--- a/include/o3tl/span.hxx
+++ b/include/o3tl/span.hxx
@@ -35,6 +35,7 @@ namespace o3tl {
 template<typename T>
 class span {
 public:
+    using element_type = T;
     using value_type = T;
     using pointer = value_type *;
     using const_pointer = value_type const *;
@@ -61,7 +62,7 @@ public:
 
     template<typename T2>
     constexpr span(const std::vector<T2>& vec)
-        : data_(vec.data()), size_(vec.size()) {}
+        : data_(const_cast<T*>(vec.data())), size_(vec.size()) {}
 
     /** for assigning from span<T> to span<const T> */
     constexpr span (const span<typename std::remove_const<T>::type>& other) 
noexcept
commit de28217e1330fef5ff53efe981eb1cd81cf157ea
Author:     Luboš Luňák <l.lu...@collabora.com>
AuthorDate: Sun Oct 31 11:23:11 2021 +0100
Commit:     Michael Stahl <michael.st...@allotropia.de>
CommitDate: Tue Mar 11 11:53:26 2025 +0100

    add o3tl::span ctor from std::vector
    
    Makes code simpler, and std::span can be constructed from std::vector
    too.
    
    [note: backport only contains o3tl::span changes]
    
    Change-Id: Iae26b53c52148c19d9068a63126a7393d098d654
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124507
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>
    Reviewed-by: Luboš Luňák <l.lu...@collabora.com>
    Tested-by: Jenkins
    (cherry picked from commit b5e701d36ec16776e01597fd250dbde2e73fad3a)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180010
    Reviewed-by: Michael Stahl <michael.st...@allotropia.de>
    Tested-by: Michael Stahl <michael.st...@allotropia.de>
    (cherry picked from commit a1959833b95c00afc8c16b2a4cffaf79c4890f0e)

diff --git a/include/o3tl/span.hxx b/include/o3tl/span.hxx
index cc4184634ce7..18d60ca7d6c0 100644
--- a/include/o3tl/span.hxx
+++ b/include/o3tl/span.hxx
@@ -26,6 +26,7 @@ namespace o3tl { using std::span; }
 #include <cstddef>
 #include <iterator>
 #include <type_traits>
+#include <vector>
 
 namespace o3tl {
 
@@ -58,6 +59,10 @@ public:
         assert(a != nullptr || len == 0);
     }
 
+    template<typename T2>
+    constexpr span(const std::vector<T2>& vec)
+        : data_(vec.data()), size_(vec.size()) {}
+
     /** for assigning from span<T> to span<const T> */
     constexpr span (const span<typename std::remove_const<T>::type>& other) 
noexcept
         : data_(other.data()), size_(other.size()) {}
commit ba385820c3cfea169a2eb8cde36271da7c6ed48a
Author:     Noel Grandin <noel.gran...@collabora.co.uk>
AuthorDate: Thu Oct 28 09:27:29 2021 +0200
Commit:     Michael Stahl <michael.st...@allotropia.de>
CommitDate: Tue Mar 11 11:53:26 2025 +0100

    pass DX array around using o3tl::span instead of pointer
    
    so we get bounds checking in debug mode
    
    Note that I cannot just pass around the std::vectors
    involved because there is a place in editeng which
    calls with a subset of a vector.
    
    [note: backport only contains the o3tl::span changes]
    
    Change-Id: I5088a139593c27bf9cbe5d843ab4b0048ac6d508
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124330
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>
    (cherry picked from commit 894b4911ffb96ff667fdeb3aec7922316ab7230a)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180009
    Tested-by: allotropia jenkins <jenk...@allotropia.de>
    Reviewed-by: Michael Stahl <michael.st...@allotropia.de>
    (cherry picked from commit f144f028f108e2f7a025f2befb3519ed43a04bc6)

diff --git a/include/o3tl/span.hxx b/include/o3tl/span.hxx
index b19d2d847ac7..cc4184634ce7 100644
--- a/include/o3tl/span.hxx
+++ b/include/o3tl/span.hxx
@@ -25,6 +25,7 @@ namespace o3tl { using std::span; }
 #include <cassert>
 #include <cstddef>
 #include <iterator>
+#include <type_traits>
 
 namespace o3tl {
 
@@ -57,6 +58,10 @@ public:
         assert(a != nullptr || len == 0);
     }
 
+    /** for assigning from span<T> to span<const T> */
+    constexpr span (const span<typename std::remove_const<T>::type>& other) 
noexcept
+        : data_(other.data()), size_(other.size()) {}
+
     constexpr bool empty() const noexcept { return size_ == 0; }
 
     constexpr iterator begin() const noexcept { return data_; }
commit 05f38833c44f6227dc3c9c49a6eccae3aff551d7
Author:     Xisco Fauli <xiscofa...@libreoffice.org>
AuthorDate: Mon May 13 11:14:06 2024 +0200
Commit:     Michael Stahl <michael.st...@allotropia.de>
CommitDate: Tue Mar 11 11:53:26 2025 +0100

    poppler: Upgrade 24.05.0
    
    * external/poppler/char_traits.patch is no longer neeeded
    after 
https://cgit.freedesktop.org/poppler/poppler/commit/cpp/poppler-global.h?id=b4ac7d9af7cb5edfcfcbda035ed8b8c218ba8564
    
    * Adapt external/poppler/disable-nss-and-gpgmepp.patch.1
    after 
https://cgit.freedesktop.org/poppler/poppler/commit/?id=d40bb7e308c9e3299e50d3e2880229cd6272587e
    
    Downloaded from https://poppler.freedesktop.org/poppler-24.05.0.tar.xz
    
    Change-Id: I87ed833f92e504f0a39b5f64c1db42d579050a37
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167582
    Tested-by: Jenkins
    Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org>
    Signed-off-by: Xisco Fauli <xiscofa...@libreoffice.org>
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173038
    Reviewed-by: Taichi Haradaguchi <20001...@ymail.ne.jp>
    (cherry picked from commit e70a307eab620e8a6572676398781c35f4925727)
    (cherry picked from commit 93c1e8f80b84445a6918b3f8a56016bbb8675757)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180008
    Tested-by: allotropia jenkins <jenk...@allotropia.de>
    Reviewed-by: Michael Stahl <michael.st...@allotropia.de>
    (cherry picked from commit d72c4a5aedfe632b695aa419cf8e8ecb77d2b478)

diff --git a/download.lst b/download.lst
index 6764ec0cff44..cadbe638f67c 100644
--- a/download.lst
+++ b/download.lst
@@ -475,8 +475,8 @@ LIBPNG_TARBALL := libpng-1.6.37.tar.xz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-POPPLER_SHA256SUM := 
bafbf0db5713dec25b5d16eb2cd87e4a62351cdc40f050c3937cd8dd6882d446
-POPPLER_TARBALL := poppler-24.03.0.tar.xz
+POPPLER_SHA256SUM := 
d8c5eb30b50285ad9f0af8c6335cc2d3b9597fca475cbc2598a5479fa379f779
+POPPLER_TARBALL := poppler-24.05.0.tar.xz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
diff --git a/external/poppler/UnpackedTarball_poppler.mk 
b/external/poppler/UnpackedTarball_poppler.mk
index a8f9af27fe60..a3f493bb204f 100644
--- a/external/poppler/UnpackedTarball_poppler.mk
+++ b/external/poppler/UnpackedTarball_poppler.mk
@@ -17,6 +17,7 @@ $(eval $(call gb_UnpackedTarball_add_patches,poppler,\
        external/poppler/gcc7-EntityInfo.patch.1 \
        external/poppler/gcc7-GfxFont.patch.1 \
        external/poppler/std_charconv.patch.1 \
+       external/poppler/std_string.patch.1 \
        external/poppler/poppler-config.patch.1 \
 ))
 
diff --git a/external/poppler/disable-freetype.patch.1 
b/external/poppler/disable-freetype.patch.1
index 3c4d1d0f7a8a..5d7426242c35 100644
--- a/external/poppler/disable-freetype.patch.1
+++ b/external/poppler/disable-freetype.patch.1
@@ -22,13 +22,13 @@ disable freetype dependent code
  #include <unordered_set>
  
  // helper for using std::visit to get a dependent false for static_asserts
-@@ -2760,6 +2760,8 @@
+@@ -2840,6 +2840,8 @@
  
  Form::AddFontResult Form::addFontToDefaultResources(const std::string 
&filepath, int faceIndex, const std::string &fontFamily, const std::string 
&fontStyle, bool forceName)
  {
 +    return {};
 +#if 0
-     if (!GooString::endsWith(filepath, ".ttf") && 
!GooString::endsWith(filepath, ".ttc") && !GooString::endsWith(filepath, 
".otf")) {
+     if (!filepath.ends_with(".ttf") && !filepath.ends_with(".ttc") && 
!filepath.ends_with(".otf")) {
          error(errIO, -1, "We only support embedding ttf/ttc/otf fonts for 
now. The font file for {0:s} {1:s} was {2:s}", fontFamily.c_str(), 
fontStyle.c_str(), filepath.c_str());
          return {};
 @@ -2994,6 +2996,7 @@
diff --git a/external/poppler/disable-nss-and-gpgmepp.patch.1 
b/external/poppler/disable-nss-and-gpgmepp.patch.1
index 1d7f7f933433..1fc9ede6035c 100644
--- a/external/poppler/disable-nss-and-gpgmepp.patch.1
+++ b/external/poppler/disable-nss-and-gpgmepp.patch.1
@@ -11,9 +11,9 @@ disable NSS/GPGMEPP dependent code.
  #include "SignatureInfo.h"
  #include "CertificateInfo.h"
  #include "XRef.h"
-@@ -578,7 +578,7 @@
+@@ -584,7 +584,7 @@
  {
-     return static_cast<FormFieldSignature 
*>(field)->validateSignature(doVerifyCert, forceRevalidation, validationTime, 
ocspRevocationCheck, enableAIA);
+     return static_cast<FormFieldSignature 
*>(field)->validateSignatureResult();
  }
 -
 +#if 0
@@ -60,19 +60,44 @@ disable NSS/GPGMEPP dependent code.
  }
 
  FormSignatureType FormWidgetSignature::signatureType() const
-@@ -2388,6 +2392,7 @@
-
- SignatureInfo *FormFieldSignature::validateSignature(bool doVerifyCert, bool 
forceRevalidation, time_t validationTime, bool ocspRevocationCheck, bool 
enableAIA)
+@@ -2395,6 +2399,7 @@
+ 
+ SignatureInfo *FormFieldSignature::validateSignatureAsync(bool doVerifyCert, 
bool forceRevalidation, time_t validationTime, bool ocspRevocationCheck, bool 
enableAIA, const std::function<void()> &doneCallback)
  {
 +#if 0
      auto backend = CryptoSign::Factory::createActive();
      if (!backend) {
-         return signature_info;
-@@ -2464,6 +2469,7 @@
-     const CertificateValidationStatus cert_val_state = 
signature_handler->validateCertificate(std::chrono::system_clock::from_time_t(validationTime),
 ocspRevocationCheck, enableAIA);
-     signature_info->setCertificateValStatus(cert_val_state);
-
+         if (doneCallback) {
+@@ -2497,6 +2502,7 @@
+ 
+     
signature_handler->validateCertificateAsync(std::chrono::system_clock::from_time_t(validationTime),
 ocspRevocationCheck, enableAIA, doneCallback);
+ 
 +#endif
      return signature_info;
  }
 
+@@ -2508,10 +2508,13 @@
+ 
+ CertificateValidationStatus FormFieldSignature::validateSignatureResult()
+ {
++#if 0
+     if (!signature_handler) {
+         return CERTIFICATE_GENERIC_ERROR;
+     }
+     return signature_handler->validateCertificateResult();
++#endif
++    return CERTIFICATE_GENERIC_ERROR;
+ }
+ 
+ std::vector<Goffset> FormFieldSignature::getSignedRangeBounds() const
+
+--- poppler/poppler/Form.h     2024-05-13 10:18:04.303912457 +0200
++++ poppler/poppler/Form.h     2024-05-13 11:41:51.547002511 +0200
+@@ -669,7 +669,6 @@
+     double customAppearanceLeftFontSize = 20;
+     Ref imageResource = Ref::INVALID();
+     std::unique_ptr<X509CertificateInfo> certificate_info;
+-    std::unique_ptr<CryptoSign::VerificationInterface> signature_handler;
+ 
+     void print(int indent) override;
+ };
diff --git a/external/poppler/std_string.patch.1 
b/external/poppler/std_string.patch.1
new file mode 100644
index 000000000000..6c5ce136ca47
--- /dev/null
+++ b/external/poppler/std_string.patch.1
@@ -0,0 +1,77 @@
+remove C++20 starts_with
+
+--- poppler/goo/GooString.h.orig       2025-01-09 11:15:13.174300578 +0100
++++ poppler/goo/GooString.h    2025-01-09 11:17:39.568825610 +0100
+@@ -237,11 +237,16 @@
+     int cmp(const char *sA) const { return compare(sA); }
+     int cmpN(const char *sA, int n) const { return compare(0, n, sA); }
+ 
+-    // Return true if strings starts with prefix
+-    using std::string::starts_with;
+-
+-    // Return true if string ends with suffix
+-    using std::string::ends_with;
++    bool starts_with(const char *prefix) const
++    {
++        return startsWith(toStr(), prefix);
++    }
++    bool ends_with(const char *suffix) const
++    {
++        return endsWith(toStr(), suffix);
++    }
++    static bool startsWith(std::string_view str, std::string_view prefix) { 
return str.size() >= prefix.size() && 0 == str.compare(0, prefix.size(), 
prefix); }
++    static bool endsWith(std::string_view str, std::string_view suffix) { 
return str.size() >= suffix.size() && 0 == str.compare(str.size() - 
suffix.size(), suffix.size(), suffix); }
+ };
+ 
+ #endif
+--- poppler/poppler/UTF.h.orig 2025-01-09 11:25:36.593385806 +0100
++++ poppler/poppler/UTF.h      2025-01-09 11:25:30.852367770 +0100
+@@ -54,13 +54,13 @@
+ // check whether string starts with Big-Endian byte order mark
+ inline bool hasUnicodeByteOrderMark(const std::string &s)
+ {
+-    return s.starts_with(unicodeByteOrderMark);
++    return s.size() >= unicodeByteOrderMark.size() && 0 == s.compare(0, 
unicodeByteOrderMark.size(), unicodeByteOrderMark);
+ }
+ 
+ // check whether string starts with Little-Endian byte order mark
+ inline bool hasUnicodeByteOrderMarkLE(const std::string &s)
+ {
+-    return s.starts_with(unicodeByteOrderMarkLE);
++    return s.size() >= unicodeByteOrderMarkLE.size() && 0 == s.compare(0, 
unicodeByteOrderMarkLE.size(), unicodeByteOrderMarkLE);
+ }
+ 
+ // put big-endian unicode byte order mark at the beginning of a string
+--- poppler/poppler/GlobalParams.cc.orig       2025-01-09 11:26:46.850606552 
+0100
++++ poppler/poppler/GlobalParams.cc    2025-01-09 11:29:28.030112935 +0100
+@@ -903,7 +903,7 @@
+ 
+ static bool supportedFontForEmbedding(Unicode uChar, const char *filepath, 
int faceIndex)
+ {
+-    if (!std::string_view(filepath).ends_with(".ttf") && 
!std::string_view(filepath).ends_with(".ttc") && 
!std::string_view(filepath).ends_with(".otf")) {
++    if (!GooString::endsWith(std::string_view(filepath), ".ttf") && 
!GooString::endsWith(std::string_view(filepath), ".ttc") && 
!GooString::endsWith(std::string_view(filepath), ".otf")) {
+         // for now we only support ttf, ttc, otf fonts
+         return false;
+     }
+--- poppler/poppler/GfxFont.cc.orig    2025-01-09 11:26:07.863484064 +0100
++++ poppler/poppler/GfxFont.cc 2025-01-09 11:31:47.164550059 +0100
+@@ -1252,7 +1252,7 @@
+ 
+     // pass 1: use the name-to-Unicode mapping table
+     missing = hex = false;
+-    bool isZapfDingbats = name && name->ends_with("ZapfDingbats");
++    bool isZapfDingbats = name && GooString::endsWith(*name, "ZapfDingbats");
+     for (int code = 0; code < 256; ++code) {
+         if ((charName = enc[code])) {
+             if (isZapfDingbats) {
+--- poppler/poppler/Form.cc.orig2      2025-01-09 11:33:42.284911742 +0100
++++ poppler/poppler/Form.cc    2025-01-09 11:34:46.013111945 +0100
+@@ -2818,7 +2818,7 @@
+     const Dict *fontDict = fontDictObj.getDict();
+     for (int i = 0; i < fontDict->getLength(); ++i) {
+         const char *key = fontDict->getKey(i);
+-        if (std::string_view(key).starts_with(kOurDictFontNamePrefix)) {
++        if (GooString::startsWith(std::string_view(key), 
kOurDictFontNamePrefix)) {
+             const Object fontObj = fontDict->getVal(i);
+             if (fontObj.isDict() && fontObj.dictIs("Font")) {
+                 const Object fontBaseFontObj = fontObj.dictLookup("BaseFont");
commit 386c3d06ef5d4bd4764966decafb142778166d6d
Author:     Xisco Fauli <xiscofa...@libreoffice.org>
AuthorDate: Mon Mar 25 20:59:08 2024 +0100
Commit:     Michael Stahl <michael.st...@allotropia.de>
CommitDate: Tue Mar 11 11:53:26 2025 +0100

    poppler: upgrade to release 24.03.0
    
    Change-Id: Icd063dcc9a034e88283ddf16be64091a32f3453f
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165292
    Tested-by: Jenkins
    Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org>
    Signed-off-by: Xisco Fauli <xiscofa...@libreoffice.org>
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173037
    Reviewed-by: Caolán McNamara <caolan.mcnam...@collabora.com>
    (cherry picked from commit 00b2beb5427f53d90efcadefe50c1320c0501535)
    (cherry picked from commit 3d282731feae4056f3158a3650a1e1406a4dba22)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180007
    Tested-by: Michael Stahl <michael.st...@allotropia.de>
    Reviewed-by: Michael Stahl <michael.st...@allotropia.de>
    (cherry picked from commit 878aefc916e04cb96cbba2bc4304573d818b0d9c)

diff --git a/download.lst b/download.lst
index 76d7f0f2f699..6764ec0cff44 100644
--- a/download.lst
+++ b/download.lst
@@ -475,8 +475,8 @@ LIBPNG_TARBALL := libpng-1.6.37.tar.xz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-POPPLER_SHA256SUM := 
80d1d44dd8bdf4ac1a47d56c5065075eb9991790974b1ed7d14b972acde88e55
-POPPLER_TARBALL := poppler-23.09.0.tar.xz
+POPPLER_SHA256SUM := 
bafbf0db5713dec25b5d16eb2cd87e4a62351cdc40f050c3937cd8dd6882d446
+POPPLER_TARBALL := poppler-24.03.0.tar.xz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
diff --git a/external/boost/include/boost/convert.hpp 
b/external/boost/include/boost/convert.hpp
new file mode 100644
index 000000000000..537ae130b53d
--- /dev/null
+++ b/external/boost/include/boost/convert.hpp
@@ -0,0 +1,28 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wpragmas"  /* first! for GCC */
+#pragma GCC diagnostic ignored "-Wunknown-warning-option" // second! for Clang 
5
+#pragma GCC diagnostic ignored "-Wdelete-non-virtual-dtor"
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wdeprecated-copy"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wmicrosoft-unqualified-friend"
+#pragma GCC diagnostic ignored "-Wnon-virtual-dtor"
+#pragma GCC diagnostic ignored "-Wparentheses"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/convert.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/convert/stream.hpp 
b/external/boost/include/boost/convert/stream.hpp
new file mode 100644
index 000000000000..cf5a709fc45b
--- /dev/null
+++ b/external/boost/include/boost/convert/stream.hpp
@@ -0,0 +1,28 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wpragmas"  /* first! for GCC */
+#pragma GCC diagnostic ignored "-Wunknown-warning-option" // second! for Clang 
5
+#pragma GCC diagnostic ignored "-Wdelete-non-virtual-dtor"
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wdeprecated-copy"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wmicrosoft-unqualified-friend"
+#pragma GCC diagnostic ignored "-Wnon-virtual-dtor"
+#pragma GCC diagnostic ignored "-Wparentheses"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/convert/stream.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/poppler/StaticLibrary_poppler.mk 
b/external/poppler/StaticLibrary_poppler.mk
index 62877a0f0059..20cb4001d196 100644
--- a/external/poppler/StaticLibrary_poppler.mk
+++ b/external/poppler/StaticLibrary_poppler.mk
@@ -12,6 +12,7 @@ $(eval $(call gb_StaticLibrary_StaticLibrary,poppler))
 $(eval $(call gb_StaticLibrary_use_unpacked,poppler,poppler))
 
 $(eval $(call gb_StaticLibrary_use_externals,poppler,\
+       boost_headers \
        libjpeg \
        zlib \
 ))
diff --git a/external/poppler/UnpackedTarball_poppler.mk 
b/external/poppler/UnpackedTarball_poppler.mk
index cc4f67754a03..a8f9af27fe60 100644
--- a/external/poppler/UnpackedTarball_poppler.mk
+++ b/external/poppler/UnpackedTarball_poppler.mk
@@ -16,6 +16,7 @@ $(eval $(call gb_UnpackedTarball_add_patches,poppler,\
        external/poppler/disable-nss-and-gpgmepp.patch.1 \
        external/poppler/gcc7-EntityInfo.patch.1 \
        external/poppler/gcc7-GfxFont.patch.1 \
+       external/poppler/std_charconv.patch.1 \
        external/poppler/poppler-config.patch.1 \
 ))
 
diff --git a/external/poppler/disable-nss-and-gpgmepp.patch.1 
b/external/poppler/disable-nss-and-gpgmepp.patch.1
index 01b442f53a1c..1d7f7f933433 100644
--- a/external/poppler/disable-nss-and-gpgmepp.patch.1
+++ b/external/poppler/disable-nss-and-gpgmepp.patch.1
@@ -11,7 +11,7 @@ disable NSS/GPGMEPP dependent code.
  #include "SignatureInfo.h"
  #include "CertificateInfo.h"
  #include "XRef.h"
-@@ -577,7 +577,7 @@
+@@ -578,7 +578,7 @@
  {
      return static_cast<FormFieldSignature 
*>(field)->validateSignature(doVerifyCert, forceRevalidation, validationTime, 
ocspRevocationCheck, enableAIA);
  }
@@ -20,12 +20,12 @@ disable NSS/GPGMEPP dependent code.
  // update hash with the specified range of data from the file
  static bool hashFileRange(FILE *f, CryptoSign::SigningInterface *handler, 
Goffset start, Goffset end)
  {
-@@ -607,10 +607,12 @@
+@@ -608,10 +608,12 @@
      delete[] buf;
      return true;
  }
 +#endif
- 
+
  bool FormWidgetSignature::signDocument(const std::string &saveFilename, const 
std::string &certNickname, const std::string &password, const GooString 
*reason, const GooString *location, const std::optional<GooString> 
&ownerPassword,
                                         const std::optional<GooString> 
&userPassword)
  {
@@ -33,44 +33,46 @@ disable NSS/GPGMEPP dependent code.
      auto backend = CryptoSign::Factory::createActive();
      if (!backend) {
          return false;
-@@ -698,6 +700,8 @@
+@@ -697,8 +699,8 @@
+     signatureField->setSignature(*signature);
+
      fclose(file);
- 
-     return true;
+-
+-    return true;
 +#endif
 +    return false;
  }
- 
- bool FormWidgetSignature::signDocumentWithAppearance(const std::string 
&saveFilename, const std::string &certNickname, const std::string &password, 
const GooString *reason, const GooString *location,
-@@ -2316,6 +2320,7 @@
- 
+
+ static std::tuple<double, double> calculateDxDy(int rot, const PDFRectangle 
*rect)
+@@ -2355,6 +2357,7 @@
+
  void 
FormFieldSignature::hashSignedDataBlock(CryptoSign::VerificationInterface 
*handler, Goffset block_len)
  {
 +#if 0
      if (!handler) {
          return;
      }
-@@ -2335,6 +2340,7 @@
+@@ -2374,6 +2377,7 @@
              i += BLOCK_SIZE;
          }
      }
 +#endif
  }
- 
+
  FormSignatureType FormWidgetSignature::signatureType() const
-@@ -2349,6 +2355,7 @@
- 
+@@ -2388,6 +2392,7 @@
+
  SignatureInfo *FormFieldSignature::validateSignature(bool doVerifyCert, bool 
forceRevalidation, time_t validationTime, bool ocspRevocationCheck, bool 
enableAIA)
  {
 +#if 0
      auto backend = CryptoSign::Factory::createActive();
      if (!backend) {
          return signature_info;
-@@ -2425,6 +2432,7 @@
+@@ -2464,6 +2469,7 @@
      const CertificateValidationStatus cert_val_state = 
signature_handler->validateCertificate(std::chrono::system_clock::from_time_t(validationTime),
 ocspRevocationCheck, enableAIA);
      signature_info->setCertificateValStatus(cert_val_state);
- 
+
 +#endif
      return signature_info;
  }
- 
+
diff --git a/external/poppler/std_charconv.patch.1 
b/external/poppler/std_charconv.patch.1
new file mode 100644
index 000000000000..c1377fec013d
--- /dev/null
+++ b/external/poppler/std_charconv.patch.1
@@ -0,0 +1,30 @@
+no <charconv> in baseline GCC 7
+
+--- poppler/fofi/FoFiType1.cc.orig     2025-01-09 14:07:47.367442683 +0100
++++ poppler/fofi/FoFiType1.cc  2025-01-09 14:15:26.553919121 +0100
+@@ -28,7 +28,8 @@
+ 
+ #include <config.h>
+ 
+-#include <charconv>
++#include <boost/convert.hpp>
++#include <boost/convert/stream.hpp>
+ #include <optional>
+ 
+ #include <cstdlib>
+@@ -281,9 +282,13 @@
+ 
+                         int code = 0;
+                         if (codeToken->length() > 2 && codeToken->at(0) == 
'8' && codeToken->at(1) == '#') {
+-                            std::from_chars(codeToken->data() + 2, 
codeToken->data() + codeToken->length(), code, 8);
++                            boost::cnv::cstream ccnv;
++                            std::string_view temp(codeToken->data() + 2, 
codeToken->length() - 2);
++                            code = boost::convert<int>(temp, 
ccnv(std::oct)).value_or(-1);
+                         } else {
+-                            std::from_chars(codeToken->data(), 
codeToken->data() + codeToken->length(), code);
++                            boost::cnv::cstream ccnv;
++                            std::string_view temp(codeToken->data(), 
codeToken->length());
++                            code = boost::convert<int>(temp, 
ccnv(std::dec)).value_or(-1);
+                         }
+ 
+                         if (code >= 0 && code < 256 && nameToken->length() > 
1) {
commit 5435765d563507bd2fa0b621bfb7a8c4996cb0ab
Author:     Michael Stahl <michael.st...@allotropia.de>
AuthorDate: Mon Sep 25 15:50:43 2023 +0200
Commit:     Michael Stahl <michael.st...@allotropia.de>
CommitDate: Tue Mar 11 11:53:26 2025 +0100

    poppler: upgrade to release 23.09.0
    
    Fixes CVE-2023-34872
    
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157247
    Tested-by: Jenkins
    Reviewed-by: Michael Stahl <michael.st...@allotropia.de>
    (cherry picked from commit 3d31dfa9b99d0df5e400c1a6d7e8df6c46129b3c)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157253
    Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org>
    (cherry picked from commit 6d1c0e802eaefa1c42051c1456be61cef2dc2e86)
    
    Change-Id: I289b3016695a01aff7d393cb09d66cd726d9b592
    (cherry picked from commit 9b1fdad86d0e652f134a5d78dc6f9aefd35bf739)

diff --git a/download.lst b/download.lst
index 2b9486e6257c..76d7f0f2f699 100644
--- a/download.lst
+++ b/download.lst
@@ -475,8 +475,8 @@ LIBPNG_TARBALL := libpng-1.6.37.tar.xz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-POPPLER_SHA256SUM := 
d38c6b2f31c8f6f3727fb60a011a0e6c567ebf56ef1ccad36263ca9ed6448a65
-POPPLER_TARBALL := poppler-23.06.0.tar.xz
+POPPLER_SHA256SUM := 
80d1d44dd8bdf4ac1a47d56c5065075eb9991790974b1ed7d14b972acde88e55
+POPPLER_TARBALL := poppler-23.09.0.tar.xz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
diff --git a/external/poppler/StaticLibrary_poppler.mk 
b/external/poppler/StaticLibrary_poppler.mk
index 4915c5e81fff..62877a0f0059 100644
--- a/external/poppler/StaticLibrary_poppler.mk
+++ b/external/poppler/StaticLibrary_poppler.mk
@@ -11,7 +11,10 @@ $(eval $(call gb_StaticLibrary_StaticLibrary,poppler))
 
 $(eval $(call gb_StaticLibrary_use_unpacked,poppler,poppler))
 
-$(eval $(call gb_StaticLibrary_use_external,poppler,libjpeg))
+$(eval $(call gb_StaticLibrary_use_externals,poppler,\
+       libjpeg \
+       zlib \
+))
 
 $(eval $(call gb_StaticLibrary_set_warnings_disabled,poppler))
 
@@ -90,6 +93,7 @@ $(eval $(call 
gb_StaticLibrary_add_generated_exception_objects,poppler,\
        UnpackedTarball/poppler/poppler/FDPDFDocBuilder \
        UnpackedTarball/poppler/poppler/FILECacheLoader \
        UnpackedTarball/poppler/poppler/FileSpec \
+       UnpackedTarball/poppler/poppler/FlateEncoder \
        UnpackedTarball/poppler/poppler/FontEncodingTables \
        UnpackedTarball/poppler/poppler/FontInfo \
        UnpackedTarball/poppler/poppler/Form \
diff --git a/external/poppler/disable-freetype.patch.1 
b/external/poppler/disable-freetype.patch.1
index 77c643de40f5..3c4d1d0f7a8a 100644
--- a/external/poppler/disable-freetype.patch.1
+++ b/external/poppler/disable-freetype.patch.1
@@ -19,9 +19,9 @@ disable freetype dependent code
 -#include FT_FREETYPE_H
 +//#include <ft2build.h>
 +//#include FT_FREETYPE_H
+ #include <unordered_set>
  
  // helper for using std::visit to get a dependent false for static_asserts
- // to help get compile errors if one ever extends variants
 @@ -2760,6 +2760,8 @@
  
  Form::AddFontResult Form::addFontToDefaultResources(const std::string 
&filepath, int faceIndex, const std::string &fontFamily, const std::string 
&fontStyle, bool forceName)
diff --git a/external/poppler/poppler-config.patch.1 
b/external/poppler/poppler-config.patch.1
index be8fc98556a7..8f71e987b2b9 100644
--- a/external/poppler/poppler-config.patch.1
+++ b/external/poppler/poppler-config.patch.1
@@ -2,7 +2,7 @@
 
 note: to get the 3rd one, use -DENABLE_CPP=on
 
-mkdir build && cd build && cmake .. -DENABLE_DCTDECODER=libjpeg 
-DHAVE_CAIRO=off -DENABLE_LIBOPENJPEG=none -DENABLE_CMS=none 
-DENABLE_LIBCURL=off -DENABLE_ZLIB=off -DENABLE_ZLIB_UNCOMPRESS=off 
-DENABLE_GPGME=off -DENABLE_NSS3=off -DENABLE_LIBPNG=off -DENABLE_LIBTIFF=off 
-DENABLE_SPLASH=off -DENABLE_UTILS=off -DENABLE_CPP=off -DENABLE_GLIB=off 
-DENABLE_GOBJECT_INTROSPECTION=off -DENABLE_GTK_DOC=off -DENABLE_QT5=off 
-DENABLE_QT6
+mkdir build && cd build && cmake .. -DENABLE_DCTDECODER=libjpeg 
-DHAVE_CAIRO=off -DENABLE_LIBOPENJPEG=none -DENABLE_CMS=none 
-DENABLE_LIBCURL=off -DENABLE_ZLIB_UNCOMPRESS=off -DENABLE_GPGME=off 
-DENABLE_NSS3=off -DENABLE_LIBPNG=off -DENABLE_LIBTIFF=off -DENABLE_SPLASH=off 
-DENABLE_UTILS=off -DENABLE_CPP=off -DENABLE_GLIB=off 
-DENABLE_GOBJECT_INTROSPECTION=off -DENABLE_GTK_DOC=off -DENABLE_QT5=off 
-DENABLE_QT6=off
 
 manually disabled these because cmake failed to do it:
 HAVE_CAIRO
@@ -37,9 +37,6 @@ index 0fbd336a..451213f8 100644
 +/* Do not hardcode the library location */
 +/* #undef ENABLE_RELOCATABLE */
 +
-+/* Build against zlib. */
-+/* #undef ENABLE_ZLIB */
-+
 +/* Use zlib instead of builtin zlib decoder to uncompress flate streams. */
 +/* #undef ENABLE_ZLIB_UNCOMPRESS */
 +
@@ -182,7 +179,7 @@ index 0fbd336a..451213f8 100644
 +#define PACKAGE_NAME "poppler"
 +
 +/* Define to the full name and version of this package. */
-+#define PACKAGE_STRING "poppler 23.06.0"
++#define PACKAGE_STRING "poppler 23.09.0"
 +
 +/* Define to the one symbol short name of this package. */
 +#define PACKAGE_TARNAME "poppler"
@@ -191,7 +188,7 @@ index 0fbd336a..451213f8 100644
 +#define PACKAGE_URL ""
 +
 +/* Define to the version of this package. */
-+#define PACKAGE_VERSION "23.06.0"
++#define PACKAGE_VERSION "23.09.0"
 +
 +/* Poppler data dir */
 +#define POPPLER_DATADIR "/usr/local/share/poppler"
@@ -209,12 +206,15 @@ index 0fbd336a..451213f8 100644
 +/* #undef USE_FLOAT */
 +
 +/* Version number of package */
-+#define VERSION "23.06.0"
++#define VERSION "23.09.0"
 +
 +#if defined(__APPLE__)
 +#elif defined (_WIN32)
 +/* Use win32 font configuration backend */
 +#define WITH_FONTCONFIGURATION_WIN32 1
++#elif defined (__ANDROID__)
++/* Use android font configuration backend */
++#define WITH_FONTCONFIGURATION_ANDROID 1
 +#else
 +/* Use fontconfig font configuration backend */
 +#define WITH_FONTCONFIGURATION_FONTCONFIG 1
@@ -251,7 +251,7 @@ new file mode 100644
 index 0fbd336a..451213f8 100644
 --- /dev/null
 +++ b/poppler/poppler-config.h
-@@ -0,0 +1,161 @@
+@@ -0,0 +1,156 @@
 +//================================================= -*- mode: c++ -*- ====
 +//
 +// poppler-config.h
@@ -290,7 +290,7 @@ index 0fbd336a..451213f8 100644
 +
 +/* Defines the poppler version. */
 +#ifndef POPPLER_VERSION
-+#define POPPLER_VERSION "23.06.0"
++#define POPPLER_VERSION "23.09.0"
 +#endif
 +
 +/* Use single precision arithmetic in the Splash backend */
@@ -328,11 +328,6 @@ index 0fbd336a..451213f8 100644
 +/* #define ENABLE_LIBPNG 1 */
 +#endif
 +
-+/* Use zlib instead of builtin zlib decoder. */
-+#ifndef ENABLE_ZLIB
-+/* #undef ENABLE_ZLIB */
-+#endif
-+
 +/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
 +   */
 +#ifndef HAVE_DIRENT_H
@@ -442,9 +437,9 @@ index 0fbd336a..451213f8 100644
 +
 +#include "poppler-global.h"
 +
-+#define POPPLER_VERSION "23.06.0"
++#define POPPLER_VERSION "23.09.0"
 +#define POPPLER_VERSION_MAJOR 23
-+#define POPPLER_VERSION_MINOR 06
++#define POPPLER_VERSION_MINOR 9
 +#define POPPLER_VERSION_MICRO 0
 +
 +namespace poppler
commit 47506aac3f5a754e7fa8dbd8adeb52c410962eae
Author:     Taichi Haradaguchi <20001...@ymail.ne.jp>
AuthorDate: Wed Jun 14 09:58:15 2023 +0900
Commit:     Michael Stahl <michael.st...@allotropia.de>
CommitDate: Tue Mar 11 11:53:26 2025 +0100

    poppler: upgrade to release 23.06.0
    
    Add external/poppler/disable-nss-and-gpgmepp.patch.1 to get rid of
    some code that requires NSS or GPGMEPP.
    
    Update external/poppler/inc/pch/precompiled_poppler.hxx.
    
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153097
    Tested-by: Jenkins
    Reviewed-by: Taichi Haradaguchi <20001...@ymail.ne.jp>
    (cherry picked from commit 27e1c198a504deb4634f5f6673a77b5944c9f8cc)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157252
    Reviewed-by: Michael Stahl <michael.st...@allotropia.de>
    (cherry picked from commit 038bd4f5bd878bedda8cfee9cad2c28dba482d79)
    
    Change-Id: I5e61371776c64962452022516446b5079c3840e2
    (cherry picked from commit 24190bd4f8d28f4b67b644457741d184964bcfc7)

diff --git a/download.lst b/download.lst
index 08144e0449f6..2b9486e6257c 100644
--- a/download.lst
+++ b/download.lst
@@ -475,8 +475,8 @@ LIBPNG_TARBALL := libpng-1.6.37.tar.xz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-POPPLER_SHA256SUM := 
b04148bf849c1965ada7eff6be4685130e3a18a84e0cce73bf9bc472ec32f2b4
-POPPLER_TARBALL := poppler-23.03.0.tar.xz
+POPPLER_SHA256SUM := 
d38c6b2f31c8f6f3727fb60a011a0e6c567ebf56ef1ccad36263ca9ed6448a65
+POPPLER_TARBALL := poppler-23.06.0.tar.xz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
diff --git a/external/poppler/README b/external/poppler/README
index 35a640264618..08d3612c3542 100644
--- a/external/poppler/README
+++ b/external/poppler/README
@@ -1 +1 @@
-From [http://poppler.freedesktop.org/]. Not modified.  PDF rendering library 
based on the xpdf-3.0 code base. 
+From [https://poppler.freedesktop.org/]. Not modified.  PDF rendering library 
based on the xpdf-3.0 code base.
diff --git a/external/poppler/UnpackedTarball_poppler.mk 
b/external/poppler/UnpackedTarball_poppler.mk
index aded0978fad9..cc4f67754a03 100644
--- a/external/poppler/UnpackedTarball_poppler.mk
+++ b/external/poppler/UnpackedTarball_poppler.mk
@@ -13,6 +13,7 @@ $(eval $(call 
gb_UnpackedTarball_set_tarball,poppler,$(POPPLER_TARBALL),,poppler
 
 $(eval $(call gb_UnpackedTarball_add_patches,poppler,\
        external/poppler/disable-freetype.patch.1 \
+       external/poppler/disable-nss-and-gpgmepp.patch.1 \
        external/poppler/gcc7-EntityInfo.patch.1 \
        external/poppler/gcc7-GfxFont.patch.1 \
        external/poppler/poppler-config.patch.1 \
diff --git a/external/poppler/disable-freetype.patch.1 
b/external/poppler/disable-freetype.patch.1
index 710742206925..77c643de40f5 100644
--- a/external/poppler/disable-freetype.patch.1
+++ b/external/poppler/disable-freetype.patch.1
@@ -1,8 +1,8 @@
 disable freetype dependent code
 
---- poppler/poppler/Form.cc.orig       2022-09-14 15:46:48.588316681 +0200
-+++ poppler/poppler/Form.cc    2022-09-14 15:48:01.468274551 +0200
-@@ -46,7 +46,7 @@
+--- poppler/poppler/Form.cc.orig       2023-06-05 19:29:14.000000000 +0900
++++ poppler/poppler/Form.cc    2023-06-14 18:50:22.232312300 +0900
+@@ -48,7 +48,7 @@
  #include <cstdlib>
  #include <cstring>
  #include <cctype>
@@ -11,7 +11,7 @@ disable freetype dependent code
  #include "goo/gmem.h"
  #include "goo/gfile.h"
  #include "goo/GooString.h"
-@@ -77,8 +77,8 @@
+@@ -78,8 +78,8 @@
  #include "fofi/FoFiTrueType.h"
  #include "fofi/FoFiIdentifier.h"
  
@@ -20,18 +20,18 @@ disable freetype dependent code
 +//#include <ft2build.h>
 +//#include FT_FREETYPE_H
  
- // return a newly allocated char* containing an UTF16BE string of size length
- char *pdfDocEncodingToUTF16(const std::string &orig, int *length)
-@@ -2743,6 +2743,8 @@
+ // helper for using std::visit to get a dependent false for static_asserts
+ // to help get compile errors if one ever extends variants
+@@ -2760,6 +2760,8 @@
  
- Form::AddFontResult Form::addFontToDefaultResources(const std::string 
&filepath, int faceIndex, const std::string &fontFamily, const std::string 
&fontStyle)
+ Form::AddFontResult Form::addFontToDefaultResources(const std::string 
&filepath, int faceIndex, const std::string &fontFamily, const std::string 
&fontStyle, bool forceName)
  {
 +    return {};
 +#if 0
      if (!GooString::endsWith(filepath, ".ttf") && 
!GooString::endsWith(filepath, ".ttc") && !GooString::endsWith(filepath, 
".otf")) {
          error(errIO, -1, "We only support embedding ttf/ttc/otf fonts for 
now. The font file for {0:s} {1:s} was {2:s}", fontFamily.c_str(), 
fontStyle.c_str(), filepath.c_str());
          return {};
-@@ -2951,6 +2953,7 @@
+@@ -2994,6 +2996,7 @@
      }
  
      return { dictFontName, fontDictRef };
diff --git a/external/poppler/disable-nss-and-gpgmepp.patch.1 
b/external/poppler/disable-nss-and-gpgmepp.patch.1
new file mode 100644
index 000000000000..01b442f53a1c
--- /dev/null
+++ b/external/poppler/disable-nss-and-gpgmepp.patch.1
@@ -0,0 +1,76 @@
+disable NSS/GPGMEPP dependent code.
+
+--- poppler/poppler/Form.cc.orig       2023-06-05 19:29:14.000000000 +0900
++++ poppler/poppler/Form.cc    2023-06-17 16:51:27.873431500 +0900
+@@ -64,7 +64,7 @@
+ #include "Form.h"
+ #include "PDFDoc.h"
+ #include "DateInfo.h"
+-#include "CryptoSignBackend.h"
++/*#include "CryptoSignBackend.h"*/
+ #include "SignatureInfo.h"
+ #include "CertificateInfo.h"
+ #include "XRef.h"
+@@ -577,7 +577,7 @@
+ {
+     return static_cast<FormFieldSignature 
*>(field)->validateSignature(doVerifyCert, forceRevalidation, validationTime, 
ocspRevocationCheck, enableAIA);
+ }
+-
++#if 0
+ // update hash with the specified range of data from the file
+ static bool hashFileRange(FILE *f, CryptoSign::SigningInterface *handler, 
Goffset start, Goffset end)
+ {
+@@ -607,10 +607,12 @@
+     delete[] buf;
+     return true;
+ }
++#endif
+ 
+ bool FormWidgetSignature::signDocument(const std::string &saveFilename, const 
std::string &certNickname, const std::string &password, const GooString 
*reason, const GooString *location, const std::optional<GooString> 
&ownerPassword,
+                                        const std::optional<GooString> 
&userPassword)
+ {
++#if 0
+     auto backend = CryptoSign::Factory::createActive();
+     if (!backend) {
+         return false;
+@@ -698,6 +700,8 @@
+     fclose(file);
+ 
+     return true;
++#endif
++    return false;
+ }
+ 
+ bool FormWidgetSignature::signDocumentWithAppearance(const std::string 
&saveFilename, const std::string &certNickname, const std::string &password, 
const GooString *reason, const GooString *location,
+@@ -2316,6 +2320,7 @@
+ 
+ void 
FormFieldSignature::hashSignedDataBlock(CryptoSign::VerificationInterface 
*handler, Goffset block_len)
+ {
++#if 0
+     if (!handler) {
+         return;
+     }
+@@ -2335,6 +2340,7 @@
+             i += BLOCK_SIZE;
+         }
+     }
++#endif
+ }
+ 
+ FormSignatureType FormWidgetSignature::signatureType() const
+@@ -2349,6 +2355,7 @@
+ 
+ SignatureInfo *FormFieldSignature::validateSignature(bool doVerifyCert, bool 
forceRevalidation, time_t validationTime, bool ocspRevocationCheck, bool 
enableAIA)
+ {
++#if 0
+     auto backend = CryptoSign::Factory::createActive();
+     if (!backend) {
+         return signature_info;
+@@ -2425,6 +2432,7 @@
+     const CertificateValidationStatus cert_val_state = 
signature_handler->validateCertificate(std::chrono::system_clock::from_time_t(validationTime),
 ocspRevocationCheck, enableAIA);
+     signature_info->setCertificateValStatus(cert_val_state);
+ 
++#endif
+     return signature_info;
+ }
+ 
diff --git a/external/poppler/gcc7-EntityInfo.patch.1 
b/external/poppler/gcc7-EntityInfo.patch.1
index b450bff93af9..1dd7c83ad475 100644
--- a/external/poppler/gcc7-EntityInfo.patch.1
+++ b/external/poppler/gcc7-EntityInfo.patch.1
@@ -2,28 +2,35 @@ gcc 7.3.1 says:
 
 workdir/UnpackedTarball/poppler/poppler/CertificateInfo.cc:42:34: error: 
function ‘X509CertificateInfo::EntityInfo& 
X509CertificateInfo::EntityInfo::operator=(X509CertificateInfo::EntityInfo&&)’ 
defaulted on its redeclaration with an exception-specification that differs 
from the implicit exception-specification ‘’
 
---- poppler/poppler/CertificateInfo.h.orig     2022-09-14 19:32:12.426351385 
+0200
-+++ poppler/poppler/CertificateInfo.h  2022-09-14 19:32:18.947347812 +0200
-@@ -70,7 +70,7 @@
-         ~EntityInfo();
- 
-         EntityInfo(EntityInfo &&) noexcept;
--        EntityInfo &operator=(EntityInfo &&) noexcept;
-+        EntityInfo &operator=(EntityInfo &&) /*noexcept*/;
- 
-         EntityInfo(const EntityInfo &) = delete;
-         EntityInfo &operator=(const EntityInfo &) = delete;
---- poppler/poppler/CertificateInfo.cc.orig    2022-09-14 19:31:10.225385467 
+0200
-+++ poppler/poppler/CertificateInfo.cc 2022-09-14 19:31:12.572384182 +0200
-@@ -39,7 +39,7 @@
+workdir/UnpackedTarball/poppler/poppler/CertificateInfo.cc: In member function 
‘void 
X509CertificateInfo::setPublicKeyInfo(X509CertificateInfo::PublicKeyInfo&&)’:
+workdir/UnpackedTarball/poppler/poppler/CertificateInfo.cc:106:39: error: use 
of deleted function ‘X509CertificateInfo::PublicKeyInfo& 
X509CertificateInfo::PublicKeyInfo::operator=(X509CertificateInfo::PublicKeyInfo&&)’
+     public_key_info = std::move(pkInfo);
+                                       ^
+In file included from 
workdir/UnpackedTarball/poppler/poppler/CertificateInfo.cc:15:0:
+workdir/UnpackedTarball/poppler/poppler/CertificateInfo.h:58:24: note: 
‘X509CertificateInfo::PublicKeyInfo& 
X509CertificateInfo::PublicKeyInfo::operator=(X509CertificateInfo::PublicKeyInfo&&)
 noexcept’ is implicitly deleted because its exception-specification does not 
match the implicit exception-specification ‘’
+         PublicKeyInfo &operator=(PublicKeyInfo &&) noexcept = default;
+                        ^~~~~~~~
+
+--- poppler/poppler/CertificateInfo.h.orig     2023-06-05 19:29:14.000000000 
+0900
++++ poppler/poppler/CertificateInfo.h  2023-06-19 18:10:55.760031700 +0900
+@@ -55,7 +55,7 @@
+         PublicKeyInfo() = default;
  
- X509CertificateInfo::EntityInfo::EntityInfo(X509CertificateInfo::EntityInfo 
&&other) noexcept = default;
+         PublicKeyInfo(PublicKeyInfo &&) noexcept = default;
+-        PublicKeyInfo &operator=(PublicKeyInfo &&) noexcept = default;
++        PublicKeyInfo &operator=(PublicKeyInfo &&) /*noexcept*/ = default;
  
--X509CertificateInfo::EntityInfo 
&X509CertificateInfo::EntityInfo::operator=(X509CertificateInfo::EntityInfo 
&&other) noexcept = default;
-+X509CertificateInfo::EntityInfo 
&X509CertificateInfo::EntityInfo::operator=(X509CertificateInfo::EntityInfo 
&&other) /*noexcept*/ = default;
+         PublicKeyInfo(const PublicKeyInfo &) = delete;
+         PublicKeyInfo &operator=(const PublicKeyInfo &) = delete;
+@@ -71,7 +71,7 @@
+         ~EntityInfo() = default;
  
- X509CertificateInfo::X509CertificateInfo() : ku_extensions(KU_NONE), 
cert_version(-1), is_self_signed(false) { }
+         EntityInfo(EntityInfo &&) noexcept = default;
+-        EntityInfo &operator=(EntityInfo &&) noexcept = default;
++        EntityInfo &operator=(EntityInfo &&) /*noexcept*/ = default;
  
+         EntityInfo(const EntityInfo &) = delete;
+         EntityInfo &operator=(const EntityInfo &) = delete;
 --- poppler/poppler/GfxFont.cc.orig    2022-09-14 20:24:32.569607333 +0200
 +++ poppler/poppler/GfxFont.cc 2022-09-14 20:24:52.323596186 +0200
 @@ -180,7 +180,7 @@
diff --git a/external/poppler/poppler-config.patch.1 
b/external/poppler/poppler-config.patch.1
index 503cf1c0ae46..be8fc98556a7 100644
--- a/external/poppler/poppler-config.patch.1
+++ b/external/poppler/poppler-config.patch.1
@@ -2,7 +2,7 @@
 
 note: to get the 3rd one, use -DENABLE_CPP=on
 
-mkdir build && cd build && cmake .. -DENABLE_DCTDECODER=libjpeg 
-DHAVE_CAIRO=off -DENABLE_LIBOPENJPEG=none -DENABLE_CMS=none 
-DENABLE_LIBCURL=off -DENABLE_ZLIB=off -DENABLE_ZLIB_UNCOMPRESS=off 
-DENABLE_NSS3=off -DENABLE_LIBPNG=off -DENABLE_LIBTIFF=off -DENABLE_SPLASH=off 
-DENABLE_UTILS=off -DENABLE_CPP=off -DENABLE_GLIB=off 
-DENABLE_GOBJECT_INTROSPECTION=off -DENABLE_GTK_DOC=off -DENABLE_QT5=off
+mkdir build && cd build && cmake .. -DENABLE_DCTDECODER=libjpeg 
-DHAVE_CAIRO=off -DENABLE_LIBOPENJPEG=none -DENABLE_CMS=none 
-DENABLE_LIBCURL=off -DENABLE_ZLIB=off -DENABLE_ZLIB_UNCOMPRESS=off 
-DENABLE_GPGME=off -DENABLE_NSS3=off -DENABLE_LIBPNG=off -DENABLE_LIBTIFF=off 
-DENABLE_SPLASH=off -DENABLE_UTILS=off -DENABLE_CPP=off -DENABLE_GLIB=off 
-DENABLE_GOBJECT_INTROSPECTION=off -DENABLE_GTK_DOC=off -DENABLE_QT5=off 
-DENABLE_QT6
 
 manually disabled these because cmake failed to do it:
 HAVE_CAIRO
@@ -16,7 +16,7 @@ new file mode 100644
 index 0fbd336a..451213f8 100644
 --- /dev/null
 +++ b/config.h
-@@ -0,0 +1,220 @@
+@@ -0,0 +1,229 @@
 +/* config.h.  Generated from config.h.cmake by cmake.  */
 +
 +/* Build against libcurl. */
@@ -46,6 +46,15 @@ index 0fbd336a..451213f8 100644
 +/* Build against libnss3 for digital signature validation */
 +/* #define ENABLE_NSS3 1 */
 +
++/* Build against libgpgme for digital signature validation */
++/* #undef ENABLE_GPGME */
++
++/* Signatures enabled */
++/* #define ENABLE_SIGNATURES 1 */
++
++/* Default signature backend */
++/* #define DEFAULT_SIGNATURE_BACKEND "NSS" */
++
 +/* Use cairo for rendering. */
 +/* #define HAVE_CAIRO 1 */
 +
@@ -173,7 +182,7 @@ index 0fbd336a..451213f8 100644
 +#define PACKAGE_NAME "poppler"
 +
 +/* Define to the full name and version of this package. */
-+#define PACKAGE_STRING "poppler 23.03.0"
++#define PACKAGE_STRING "poppler 23.06.0"
 +
 +/* Define to the one symbol short name of this package. */
 +#define PACKAGE_TARNAME "poppler"
@@ -182,7 +191,7 @@ index 0fbd336a..451213f8 100644
 +#define PACKAGE_URL ""
 +
 +/* Define to the version of this package. */
-+#define PACKAGE_VERSION "23.03.0"
++#define PACKAGE_VERSION "23.06.0"
 +
 +/* Poppler data dir */
 +#define POPPLER_DATADIR "/usr/local/share/poppler"
@@ -200,7 +209,7 @@ index 0fbd336a..451213f8 100644
 +/* #undef USE_FLOAT */
 +
 +/* Version number of package */
-+#define VERSION "23.03.0"
++#define VERSION "23.06.0"
 +
 +#if defined(__APPLE__)
 +#elif defined (_WIN32)
@@ -281,7 +290,7 @@ index 0fbd336a..451213f8 100644
 +
 +/* Defines the poppler version. */
 +#ifndef POPPLER_VERSION
-+#define POPPLER_VERSION "23.03.0"
++#define POPPLER_VERSION "23.06.0"
 +#endif
 +
 +/* Use single precision arithmetic in the Splash backend */
@@ -373,7 +382,7 @@ index 0fbd336a..451213f8 100644
 +//------------------------------------------------------------------------
 +
 +// copyright notice
-+#define popplerCopyright "Copyright 2005-2022 The Poppler Developers - 
http://poppler.freedesktop.org";
++#define popplerCopyright "Copyright 2005-2023 The Poppler Developers - 
http://poppler.freedesktop.org";
 +#define xpdfCopyright "Copyright 1996-2011, 2022 Glyph & Cog, LLC"
 +
 +//------------------------------------------------------------------------
@@ -433,9 +442,9 @@ index 0fbd336a..451213f8 100644
 +
 +#include "poppler-global.h"
 +
-+#define POPPLER_VERSION "23.03.0"
++#define POPPLER_VERSION "23.06.0"
 +#define POPPLER_VERSION_MAJOR 23
-+#define POPPLER_VERSION_MINOR 03
++#define POPPLER_VERSION_MINOR 06
 +#define POPPLER_VERSION_MICRO 0
 +
 +namespace poppler
commit 4faec2df0ba676eb010bf52100dfb80b2131ee80
Author:     Taichi Haradaguchi <20001...@ymail.ne.jp>
AuthorDate: Tue Mar 14 19:01:26 2023 +0900
Commit:     Michael Stahl <michael.st...@allotropia.de>
CommitDate: Tue Mar 11 11:53:26 2025 +0100

    poppler: upgrade to release 23.03.0
    
    * Upgrade poppler-data to 0.4.12
    * Update poppler-config.patch.1
    
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148842
    Tested-by: Jenkins
    Reviewed-by: Michael Stahl <michael.st...@allotropia.de>
    (cherry picked from commit 79e60bb93f69370f23010adb078b5a5de5a1e7b2)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157251
    (cherry picked from commit 8aa3645801c48f0db4a7fe4f126c4e4e7691cb08)
    
    Change-Id: Ic2a3e8d4f801d52d1568210d0df064cacb51290f
    (cherry picked from commit 64bb35f0cee0a07984a686dd790b202b7e6afcae)

diff --git a/download.lst b/download.lst
index b31a71627211..08144e0449f6 100644
--- a/download.lst
+++ b/download.lst
@@ -475,8 +475,8 @@ LIBPNG_TARBALL := libpng-1.6.37.tar.xz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-POPPLER_SHA256SUM := 
d9aa9cacdfbd0f8e98fc2b3bb008e645597ed480685757c3e7bc74b4278d15c0
-POPPLER_TARBALL := poppler-22.12.0.tar.xz
+POPPLER_SHA256SUM := 
b04148bf849c1965ada7eff6be4685130e3a18a84e0cce73bf9bc472ec32f2b4
+POPPLER_TARBALL := poppler-23.03.0.tar.xz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
diff --git a/external/poppler/StaticLibrary_poppler.mk 
b/external/poppler/StaticLibrary_poppler.mk
index 1f1adba6ee34..4915c5e81fff 100644
-e 
... etc. - the rest is truncated

Reply via email to