Bug 168756 - LibreOffice 25.8.1.1 FTBFS with Poppler 25.10.0
Summary: LibreOffice 25.8.1.1 FTBFS with Poppler 25.10.0
Status: RESOLVED MOVED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: LibreOffice (show other bugs)
Version:
(earliest affected)
25.8.1.1 release
Hardware: x86-64 (AMD64) Linux (All)
: medium normal
Assignee: Not Assigned
URL:
Whiteboard:
Keywords:
: 168795 (view as bug list)
Depends on:
Blocks:
 
Reported: 2025-10-08 17:38 UTC by Chase Knowlden
Modified: 2025-10-10 16:56 UTC (History)
2 users (show)

See Also:
Crash report or crash signature:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Chase Knowlden 2025-10-08 17:38:15 UTC
Libreoffice 25.8.1.1 does not build with Poppler 25.10.0 because of errors.

/sources/BLFS/libreoffice-25.8.1.1/sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx: In function ‘int main(int, char**)’:
/sources/BLFS/libreoffice-25.8.1.1/sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx:220:78: error: no matching function for call to ‘std::optional<GooString>::optional(GooString*&)’
  220 |                                    std::optional<GooString>(pOwnerPasswordStr),
      |                                                                              ^
/sources/BLFS/libreoffice-25.8.1.1/sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx:220:78: note: there are 8 candidates
In file included from /usr/include/poppler/Stream.h:52,
                 from /usr/include/poppler/Object.h:614,
                 from /usr/include/poppler/GfxState.h:45,
                 from /sources/BLFS/libreoffice-25.8.1.1/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx:36,
                 from /sources/BLFS/libreoffice-25.8.1.1/sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx:20:
/usr/include/c++/15.2.0/optional:913:9: note: candidate 1: ‘template<class _Up, class ... _Args>  requires  is_constructible_v<_Tp, std::initializer_list<_Up>&, _Args ...> constexpr std::optional<_Tp>::optional(std::in_place_t, std::initializer_list<_Up>, _Args&& ...) [with _Args = _Up; _Tp = GooString]’
  913 |         optional(in_place_t, initializer_list<_Up> __il, _Args&&... __args)
      |         ^~~~~~~~
/usr/include/c++/15.2.0/optional:913:9: note: candidate expects at least 2 arguments, 1 provided
/usr/include/c++/15.2.0/optional:905:9: note: candidate 2: ‘template<class ... _Args>  requires  is_constructible_v<_Tp, _Args ...> constexpr std::optional<_Tp>::optional(std::in_place_t, _Args&& ...) [with _Args = {_Args ...}; _Tp = GooString]’
  905 |         optional(in_place_t, _Args&&... __args)
      |         ^~~~~~~~
/usr/include/c++/15.2.0/optional:905:9: note: template argument deduction/substitution failed:
/sources/BLFS/libreoffice-25.8.1.1/sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx:220:61: note:   cannot convert ‘pOwnerPasswordStr’ (type ‘GooString*’) to type ‘std::in_place_t’
  220 |                                    std::optional<GooString>(pOwnerPasswordStr),
      |                                                             ^~~~~~~~~~~~~~~~~
/usr/include/c++/15.2.0/optional:895:9: note: candidate 3: ‘template<class _Up>  requires !(is_same_v<_Tp, _Up>) && (is_constructible_v<_Tp, _Up>) && (__construct_from_contained_value<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<_Tp>::optional(std::optional<_From>&&) [with _Tp = GooString]’
  895 |         optional(optional<_Up>&& __t)
      |         ^~~~~~~~
/usr/include/c++/15.2.0/optional:895:9: note: template argument deduction/substitution failed:
/sources/BLFS/libreoffice-25.8.1.1/sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx:220:78: note:   mismatched types ‘std::optional<_Tp>’ and ‘GooString*’
  220 |                                    std::optional<GooString>(pOwnerPasswordStr),
      |                                                                              ^
/usr/include/c++/15.2.0/optional:883:9: note: candidate 4: ‘template<class _Up>  requires !(is_same_v<_Tp, _Up>) && (is_constructible_v<_Tp, const _Up&>) && (__construct_from_contained_value<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<_Tp>::optional(const std::optional<_From>&) [with _Tp = GooString]’
  883 |         optional(const optional<_Up>& __t)
      |         ^~~~~~~~
/usr/include/c++/15.2.0/optional:883:9: note: template argument deduction/substitution failed:
/sources/BLFS/libreoffice-25.8.1.1/sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx:220:78: note:   mismatched types ‘const std::optional<_Tp>’ and ‘GooString*’
  220 |                                    std::optional<GooString>(pOwnerPasswordStr),
      |                                                                              ^
/usr/include/c++/15.2.0/optional:874:9: note: candidate 5: ‘template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<_Tp>::optional(_Up&&) [with _Tp = GooString]’
  874 |         optional(_Up&& __t)
      |         ^~~~~~~~
/usr/include/c++/15.2.0/optional:874:9: note: template argument deduction/substitution failed:
/usr/include/c++/15.2.0/optional:874:9: note: constraints not satisfied
/usr/include/c++/15.2.0/optional: In substitution of ‘template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<GooString>::optional(_Up&&) [with _Up = GooString*&]’:
/sources/BLFS/libreoffice-25.8.1.1/sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx:220:78:   required from here
  220 |                                    std::optional<GooString>(pOwnerPasswordStr),
      |                                                                              ^
/usr/include/c++/15.2.0/optional:874:2:   required by the constraints of ‘template<class _Tp> template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<_Tp>::optional(_Up&&)’
/usr/include/c++/15.2.0/optional:871:14: note: the expression ‘is_constructible_v<_Tp, _Up> [with _Tp = GooString; _Up = GooString*&]’ evaluated to ‘false’
  871 |           && is_constructible_v<_Tp, _Up>
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/15.2.0/optional:864:17: note: candidate 6: ‘constexpr std::optional<_Tp>::optional(std::nullopt_t) [with _Tp = GooString]’
  864 |       constexpr optional(nullopt_t) noexcept { }
      |                 ^~~~~~~~
/usr/include/c++/15.2.0/optional:864:26: note: no known conversion for argument 1 from ‘GooString*’ to ‘std::nullopt_t’
  864 |       constexpr optional(nullopt_t) noexcept { }
      |                          ^~~~~~~~~
/usr/include/c++/15.2.0/optional:862:17: note: candidate 7: ‘constexpr std::optional<_Tp>::optional() [with _Tp = GooString]’
  862 |       constexpr optional() noexcept { }
      |                 ^~~~~~~~
/usr/include/c++/15.2.0/optional:862:17: note: candidate expects 0 arguments, 1 provided
/usr/include/c++/15.2.0/optional:778:11: note: candidate 8: ‘constexpr std::optional<GooString>::optional(std::optional<GooString>&&)’
  778 |     class optional
      |           ^~~~~~~~
/usr/include/c++/15.2.0/optional:778:11: note: no known conversion for argument 1 from ‘GooString*’ to ‘std::optional<GooString>&&’
/sources/BLFS/libreoffice-25.8.1.1/sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx:221:77: error: no matching function for call to ‘std::optional<GooString>::optional(GooString*&)’
  221 |                                    std::optional<GooString>(pUserPasswordStr)));
      |                                                                             ^
/sources/BLFS/libreoffice-25.8.1.1/sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx:221:77: note: there are 8 candidates
/usr/include/c++/15.2.0/optional:913:9: note: candidate 1: ‘template<class _Up, class ... _Args>  requires  is_constructible_v<_Tp, std::initializer_list<_Up>&, _Args ...> constexpr std::optional<_Tp>::optional(std::in_place_t, std::initializer_list<_Up>, _Args&& ...) [with _Args = _Up; _Tp = GooString]’
  913 |         optional(in_place_t, initializer_list<_Up> __il, _Args&&... __args)
      |         ^~~~~~~~
/usr/include/c++/15.2.0/optional:913:9: note: candidate expects at least 2 arguments, 1 provided
/usr/include/c++/15.2.0/optional:905:9: note: candidate 2: ‘template<class ... _Args>  requires  is_constructible_v<_Tp, _Args ...> constexpr std::optional<_Tp>::optional(std::in_place_t, _Args&& ...) [with _Args = {_Args ...}; _Tp = GooString]’
  905 |         optional(in_place_t, _Args&&... __args)
      |         ^~~~~~~~
/usr/include/c++/15.2.0/optional:905:9: note: template argument deduction/substitution failed:
/sources/BLFS/libreoffice-25.8.1.1/sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx:221:61: note:   cannot convert ‘pUserPasswordStr’ (type ‘GooString*’) to type ‘std::in_place_t’
  221 |                                    std::optional<GooString>(pUserPasswordStr)));
      |                                                             ^~~~~~~~~~~~~~~~
/usr/include/c++/15.2.0/optional:895:9: note: candidate 3: ‘template<class _Up>  requires !(is_same_v<_Tp, _Up>) && (is_constructible_v<_Tp, _Up>) && (__construct_from_contained_value<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<_Tp>::optional(std::optional<_From>&&) [with _Tp = GooString]’
  895 |         optional(optional<_Up>&& __t)
      |         ^~~~~~~~
/usr/include/c++/15.2.0/optional:895:9: note: template argument deduction/substitution failed:
/sources/BLFS/libreoffice-25.8.1.1/sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx:221:77: note:   mismatched types ‘std::optional<_Tp>’ and ‘GooString*’
  221 |                                    std::optional<GooString>(pUserPasswordStr)));
      |                                                                             ^
/usr/include/c++/15.2.0/optional:883:9: note: candidate 4: ‘template<class _Up>  requires !(is_same_v<_Tp, _Up>) && (is_constructible_v<_Tp, const _Up&>) && (__construct_from_contained_value<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<_Tp>::optional(const std::optional<_From>&) [with _Tp = GooString]’
  883 |         optional(const optional<_Up>& __t)
      |         ^~~~~~~~
/usr/include/c++/15.2.0/optional:883:9: note: template argument deduction/substitution failed:
/sources/BLFS/libreoffice-25.8.1.1/sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx:221:77: note:   mismatched types ‘const std::optional<_Tp>’ and ‘GooString*’
  221 |                                    std::optional<GooString>(pUserPasswordStr)));
      |                                                                             ^
/usr/include/c++/15.2.0/optional:874:9: note: candidate 5: ‘template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<_Tp>::optional(_Up&&) [with _Tp = GooString]’
  874 |         optional(_Up&& __t)
      |         ^~~~~~~~
/usr/include/c++/15.2.0/optional:874:9: note: template argument deduction/substitution failed:
/usr/include/c++/15.2.0/optional:874:9: note: constraints not satisfied
/usr/include/c++/15.2.0/optional: In substitution of ‘template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<GooString>::optional(_Up&&) [with _Up = GooString*&]’:
/sources/BLFS/libreoffice-25.8.1.1/sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx:221:77:   required from here
  221 |                                    std::optional<GooString>(pUserPasswordStr)));
      |                                                                             ^
/usr/include/c++/15.2.0/optional:874:2:   required by the constraints of ‘template<class _Tp> template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<_Tp>::optional(_Up&&)’
/usr/include/c++/15.2.0/optional:871:14: note: the expression ‘is_constructible_v<_Tp, _Up> [with _Tp = GooString; _Up = GooString*&]’ evaluated to ‘false’
  871 |           && is_constructible_v<_Tp, _Up>
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/15.2.0/optional:864:17: note: candidate 6: ‘constexpr std::optional<_Tp>::optional(std::nullopt_t) [with _Tp = GooString]’
  864 |       constexpr optional(nullopt_t) noexcept { }
      |                 ^~~~~~~~
/usr/include/c++/15.2.0/optional:864:26: note: no known conversion for argument 1 from ‘GooString*’ to ‘std::nullopt_t’
  864 |       constexpr optional(nullopt_t) noexcept { }
      |                          ^~~~~~~~~
/usr/include/c++/15.2.0/optional:862:17: note: candidate 7: ‘constexpr std::optional<_Tp>::optional() [with _Tp = GooString]’
  862 |       constexpr optional() noexcept { }
      |                 ^~~~~~~~
/usr/include/c++/15.2.0/optional:862:17: note: candidate expects 0 arguments, 1 provided
/usr/include/c++/15.2.0/optional:778:11: note: candidate 8: ‘constexpr std::optional<GooString>::optional(std::optional<GooString>&&)’
  778 |     class optional
      |           ^~~~~~~~
/usr/include/c++/15.2.0/optional:778:11: note: no known conversion for argument 1 from ‘GooString*’ to ‘std::optional<GooString>&&’
In file included from /usr/include/c++/15.2.0/memory:80,
                 from /usr/include/poppler/goo/GooString.h:46,
                 from /usr/include/poppler/Object.h:45:
/usr/include/c++/15.2.0/bits/unique_ptr.h: In instantiation of ‘std::__detail::__unique_ptr_t<_Tp> std::make_unique(_Args&& ...) [with _Tp = GooString; _Args = {GooString*&}; __detail::__unique_ptr_t<_Tp> = __detail::__unique_ptr_t<GooString>]’:
/sources/BLFS/libreoffice-25.8.1.1/sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx:219:63:   required from here
  219 |                         new PDFDoc(std::make_unique<GooString>(pFileName),
      |                                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
/usr/include/c++/15.2.0/bits/unique_ptr.h:1085:30: error: no matching function for call to ‘GooString::GooString(GooString*&)’
 1085 |     { return unique_ptr<_Tp>(new _Tp(std::forward<_Args>(__args)...)); }
      |                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/15.2.0/bits/unique_ptr.h:1085:30: note: there are 8 candidates
/usr/include/poppler/goo/GooString.h:92:5: note: candidate 1: ‘GooString::GooString(const std::string&, int, size_t)’
   92 |     GooString(const std::string &str, int idx, size_t lengthA) : std::string(str, idx, lengthA) { }
      |     ^~~~~~~~~
/usr/include/poppler/goo/GooString.h:92:5: note: candidate expects 3 arguments, 1 provided
/usr/include/poppler/goo/GooString.h:91:5: note: candidate 2: ‘GooString::GooString(const GooString*, int, size_t)’
   91 |     GooString(const GooString *str, int idx, size_t lengthA) : std::string(*str, idx, lengthA) { }
      |     ^~~~~~~~~
/usr/include/poppler/goo/GooString.h:91:5: note: candidate expects 3 arguments, 1 provided
/usr/include/poppler/goo/GooString.h:88:5: note: candidate 3: ‘GooString::GooString(const char*, size_t)’
   88 |     GooString(const char *sA, size_t lengthA) : std::string(sA ? sA : "", sA ? lengthA : 0) { }
      |     ^~~~~~~~~
/usr/include/poppler/goo/GooString.h:88:5: note: candidate expects 2 arguments, 1 provided
/usr/include/poppler/goo/GooString.h:81:14: note: candidate 4: ‘GooString::GooString(std::string&&)’
   81 |     explicit GooString(std::string &&str) : std::string(std::move(str)) { }
      |              ^~~~~~~~~
/usr/include/poppler/goo/GooString.h:81:38: note: no known conversion for argument 1 from ‘GooString*’ to ‘std::string&&’ {aka ‘std::__cxx11::basic_string<char>&&’}
   81 |     explicit GooString(std::string &&str) : std::string(std::move(str)) { }
      |                        ~~~~~~~~~~~~~~^~~
/usr/include/poppler/goo/GooString.h:80:14: note: candidate 5: ‘GooString::GooString(const std::string&)’
   80 |     explicit GooString(const std::string &str) : std::string(str) { }
      |              ^~~~~~~~~
/usr/include/poppler/goo/GooString.h:80:43: note: no known conversion for argument 1 from ‘GooString*’ to ‘const std::string&’ {aka ‘const std::__cxx11::basic_string<char>&’}
   80 |     explicit GooString(const std::string &str) : std::string(str) { }
      |                        ~~~~~~~~~~~~~~~~~~~^~~
/usr/include/poppler/goo/GooString.h:71:14: note: candidate 6: ‘GooString::GooString(const char*)’
   71 |     explicit GooString(const char *sA) : std::string(sA ? sA : "") { }
      |              ^~~~~~~~~
/usr/include/poppler/goo/GooString.h:71:36: note: no known conversion for argument 1 from ‘GooString*’ to ‘const char*’
   71 |     explicit GooString(const char *sA) : std::string(sA ? sA : "") { }
      |                        ~~~~~~~~~~~~^~
/usr/include/poppler/goo/GooString.h:64:5: note: candidate 7: ‘constexpr GooString::GooString(GooString&&)’
   64 |     GooString(GooString &&other) = default;
      |     ^~~~~~~~~
/usr/include/poppler/goo/GooString.h:64:27: note: no known conversion for argument 1 from ‘GooString*’ to ‘GooString&&’
   64 |     GooString(GooString &&other) = default;
      |               ~~~~~~~~~~~~^~~~~
/usr/include/poppler/goo/GooString.h:59:5: note: candidate 8: ‘constexpr GooString::GooString()’
   59 |     GooString() = default;
      |     ^~~~~~~~~
/usr/include/poppler/goo/GooString.h:59:5: note: candidate expects 0 arguments, 1 provided
Comment 1 Buovjaga 2025-10-08 18:13:02 UTC
Please send an email about this to the developer list: https://wiki.documentfoundation.org/QA/BugReport#Not_all_issues_go_to_Bugzilla

Mention all relevant details, autogen options, compiler version used etc. I assume you are doing this under Linux From Scratch.
Comment 2 Buovjaga 2025-10-10 16:56:58 UTC
*** Bug 168795 has been marked as a duplicate of this bug. ***