download.lst | 4 external/poppler/StaticLibrary_poppler.mk | 2 external/poppler/UnpackedTarball_poppler.mk | 2 external/poppler/clang-std-ranges.patch.1 | 122 +++++++++++++++++++++++ external/poppler/disable-freetype.patch.1 | 45 +++----- external/poppler/disable-nss-and-gpgmepp.patch.1 | 103 ------------------- external/poppler/inc/pch/precompiled_poppler.hxx | 9 + external/poppler/poppler-config.patch.1 | 26 ++-- 8 files changed, 167 insertions(+), 146 deletions(-)
New commits: commit e28c5a2c93477d167eb449f08eca220cb3b26b31 Author: Michael Stahl <michael.st...@allotropia.de> AuthorDate: Tue Jan 7 18:45:34 2025 +0100 Commit: Michael Stahl <michael.st...@allotropia.de> CommitDate: Wed Jan 8 15:00:00 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> diff --git a/download.lst b/download.lst index c27d803cee53..c9e848a7e52e 100644 --- a/download.lst +++ b/download.lst @@ -578,8 +578,8 @@ LIBTIFF_TARBALL := tiff-4.7.0.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 POPPLER_DATA_SHA256SUM := c835b640a40ce357e1b83666aabd95edffa24ddddd49b8daff63adb851cdab74 POPPLER_DATA_TARBALL := poppler-data-0.4.12.tar.gz # three static lines diff --git a/external/poppler/StaticLibrary_poppler.mk b/external/poppler/StaticLibrary_poppler.mk index 726663d983a4..3a64d02a37fc 100644 --- a/external/poppler/StaticLibrary_poppler.mk +++ b/external/poppler/StaticLibrary_poppler.mk @@ -20,6 +20,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 \ @@ -87,6 +88,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 784fc768e2a7..3ebb9bb9492c 100644 --- a/external/poppler/UnpackedTarball_poppler.mk +++ b/external/poppler/UnpackedTarball_poppler.mk @@ -15,7 +15,7 @@ $(eval $(call gb_UnpackedTarball_set_patchlevel,poppler,0)) $(eval $(call gb_UnpackedTarball_add_patches,poppler,\ external/poppler/disable-freetype.patch.1 \ - external/poppler/disable-nss-and-gpgmepp.patch.1 \ + external/poppler/clang-std-ranges.patch.1 \ external/poppler/poppler-config.patch.1 \ external/poppler/pch.patch.0 \ )) diff --git a/external/poppler/clang-std-ranges.patch.1 b/external/poppler/clang-std-ranges.patch.1 new file mode 100644 index 000000000000..3fae66b25fcf --- /dev/null +++ b/external/poppler/clang-std-ranges.patch.1 @@ -0,0 +1,122 @@ +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(); + } ++#ifndef __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; + } + } ++#ifndef __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; ++#ifndef __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) + { ++#ifndef __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 { ++#ifndef __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) { ++#ifndef __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(); diff --git a/external/poppler/disable-freetype.patch.1 b/external/poppler/disable-freetype.patch.1 index 2d4ce2f69c9c..a4014f2e5fb1 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> @@ -41,19 +42,15 @@ disable freetype dependent code std::string Form::getFallbackFontForChar(Unicode uChar, const GfxFont &fontToEmulate) const --- poppler/splash/SplashFontEngine.cc.orig 2024-02-21 01:28:10.479645185 +0000 +++ popller/splash/SplashFontEngine.cc 2023-09-05 22:15:14.000000000 +0100 -@@ -66,9 +66,9 @@ +@@ -66,7 +66,7 @@ delete font; } -- if (ftEngine) { -- delete ftEngine; -- } -+ //if (ftEngine) { -+ // delete ftEngine; -+ //} +- delete ftEngine; ++ //delete ftEngine; } - SplashFontFile *SplashFontEngine::getFontFile(SplashFontFileID *id) + SplashFontFile *SplashFontEngine::getFontFile(const SplashFontFileID &id) --- poppler/splash/SplashFTFontEngine.h.orig 2023-09-05 22:15:14.000000000 +0100 +++ poppler/splash/SplashFTFontEngine.h 2024-02-21 13:53:29.715423742 +0000 @@ -26,8 +26,8 @@ @@ -64,9 +61,9 @@ disable freetype dependent code -#include FT_FREETYPE_H +//#include <ft2build.h> +//#include FT_FREETYPE_H + #include <memory> class SplashFontFile; - class SplashFontFileID; @@ -40,7 +40,7 @@ class SplashFTFontEngine { @@ -80,18 +77,18 @@ disable freetype dependent code SplashFTFontEngine &operator=(const SplashFTFontEngine &) = delete; // Load fonts. -- SplashFontFile *loadType1Font(SplashFontFileID *idA, SplashFontSrc *src, const char **enc); -- SplashFontFile *loadType1CFont(SplashFontFileID *idA, SplashFontSrc *src, const char **enc); -- SplashFontFile *loadOpenTypeT1CFont(SplashFontFileID *idA, SplashFontSrc *src, const char **enc); -- SplashFontFile *loadCIDFont(SplashFontFileID *idA, SplashFontSrc *src); -- SplashFontFile *loadOpenTypeCFFFont(SplashFontFileID *idA, SplashFontSrc *src, int *codeToGID, int codeToGIDLen); -- SplashFontFile *loadTrueTypeFont(SplashFontFileID *idA, SplashFontSrc *src, int *codeToGID, int codeToGIDLen, int faceIndex = 0); -+ SplashFontFile *loadType1Font(SplashFontFileID *idA, SplashFontSrc *src, const char **enc) { return nullptr; }; -+ SplashFontFile *loadType1CFont(SplashFontFileID *idA, SplashFontSrc *src, const char **enc) { return nullptr; }; -+ SplashFontFile *loadOpenTypeT1CFont(SplashFontFileID *idA, SplashFontSrc *src, const char **enc) { return nullptr; }; -+ SplashFontFile *loadCIDFont(SplashFontFileID *idA, SplashFontSrc *src) { return nullptr; }; -+ SplashFontFile *loadOpenTypeCFFFont(SplashFontFileID *idA, SplashFontSrc *src, int *codeToGID, int codeToGIDLen) { return nullptr; }; -+ SplashFontFile *loadTrueTypeFont(SplashFontFileID *idA, SplashFontSrc *src, int *codeToGID, int codeToGIDLen, int faceIndex = 0) { return nullptr; }; +- SplashFontFile *loadType1Font(std::unique_ptr<SplashFontFileID> idA, SplashFontSrc *src, const char **enc, int faceIndex); +- SplashFontFile *loadType1CFont(std::unique_ptr<SplashFontFileID> idA, SplashFontSrc *src, const char **enc, int faceIndex); +- SplashFontFile *loadOpenTypeT1CFont(std::unique_ptr<SplashFontFileID> idA, SplashFontSrc *src, const char **enc, int faceIndex); +- SplashFontFile *loadCIDFont(std::unique_ptr<SplashFontFileID> idA, SplashFontSrc *src, int faceIndex); +- SplashFontFile *loadOpenTypeCFFFont(std::unique_ptr<SplashFontFileID> idA, SplashFontSrc *src, int *codeToGID, int codeToGIDLen, int faceIndex); +- SplashFontFile *loadTrueTypeFont(std::unique_ptr<SplashFontFileID> idA, SplashFontSrc *src, int *codeToGID, int codeToGIDLen, int faceIndex); ++ SplashFontFile *loadType1Font(std::unique_ptr<SplashFontFileID> idA, SplashFontSrc *src, const char **enc, int faceIndex) { return nullptr; }; ++ SplashFontFile *loadType1CFont(std::unique_ptr<SplashFontFileID> idA, SplashFontSrc *src, const char **enc, int faceIndex) { return nullptr; }; ++ SplashFontFile *loadOpenTypeT1CFont(std::unique_ptr<SplashFontFileID> idA, SplashFontSrc *src, const char **enc, int faceIndex) { return nullptr; }; ++ SplashFontFile *loadCIDFont(std::unique_ptr<SplashFontFileID> idA, SplashFontSrc *src, int faceIndex) { return nullptr; }; ++ SplashFontFile *loadOpenTypeCFFFont(std::unique_ptr<SplashFontFileID> idA, SplashFontSrc *src, int *codeToGID, int codeToGIDLen, int faceIndex) { return nullptr; }; ++ SplashFontFile *loadTrueTypeFont(std::unique_ptr<SplashFontFileID> idA, SplashFontSrc *src, int *codeToGID, int codeToGIDLen, int faceIndex) { return nullptr; }; bool getAA() { return aa; } void setAA(bool aaA) { aa = aaA; } 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/inc/pch/precompiled_poppler.hxx b/external/poppler/inc/pch/precompiled_poppler.hxx index 0a3c0a98353c..9351ca348282 100644 --- a/external/poppler/inc/pch/precompiled_poppler.hxx +++ b/external/poppler/inc/pch/precompiled_poppler.hxx @@ -13,11 +13,11 @@ manual changes will be rewritten by the next run of update_pch.sh (which presumably also fixes all possible problems, so it's usually better to use it). - Generated on 2024-06-10 17:25:06 using: - ./bin/update_pch external/poppler poppler --cutoff=1 --exclude:system --include:module --include:local + Generated on 2025-01-08 10:27:46 using: + ../master/bin/update_pch ../master/external/poppler poppler --cutoff=1 --exclude:system --include:module --include:local If after updating build fails, use the following command to locate conflicting headers: - ./bin/update_pch_bisect ./external/poppler/inc/pch/precompiled_poppler.hxx "make external/poppler.build" --find-conflicts + ./bin/update_pch_bisect ./../master/external/poppler/inc/pch/precompiled_poppler.hxx "make ../master/external/poppler.build" --find-conflicts */ #include <sal/config.h> @@ -69,13 +69,16 @@ #include <iostream> #include <limits> #include <memory> +#include <numbers> #include <optional> #include <poppler-config.h> #include <random> +#include <ranges> #include <regex> #include <set> #include <sstream> #include <unordered_set> +#include <variant> #include <vector> #endif // PCH_LEVEL >= 1 #if PCH_LEVEL >= 2 diff --git a/external/poppler/poppler-config.patch.1 b/external/poppler/poppler-config.patch.1 index 5d8678b860c1..ff1af699add4 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