3.0.24: build fails with poppler 24.05.0
Cross-platform DICOM implementation
Brought to you by:
malat
Looks like build fails with poppler 24.05.0
[ 94%] Building CXX object Applications/Cxx/CMakeFiles/gdcminfo.dir/gdcminfo.cxx.o
cd /home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/x86_64-redhat-linux-gnu/Applications/Cxx && /usr/bin/g++ -I/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/x86_64-redhat-linux-gnu/Source/Common -I/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Source/Common -I/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Source/DataStructureAndEncodingDefinition -I/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Source/MediaStorageAndFileFormat -I/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Source/InformationObjectDefinition -I/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Source/MessageExchangeDefinition -I/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Source/DataDictionary -I/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Utilities -I/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Utilities/socketxx -I/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Utilities/socketxx/socket++ -I/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/x86_64-redhat-linux-gnu/Utilities/socketxx/socket++ -I/usr/include/poppler -I/usr/include/libxml2 -I/usr/include/openjpeg-2.5 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -g -grecord-gcc-switches -pipe -mtls-dialect=gnu2 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fdata-sections -ffunction-sections -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -flto=auto -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -Wall -Werror=format-security -O2 -g -DNDEBUG -DLIBPOPPLER_UNICODEMAP_HAS_CONSTMAPUNICODE -MD -MT Applications/Cxx/CMakeFiles/gdcminfo.dir/gdcminfo.cxx.o -MF CMakeFiles/gdcminfo.dir/gdcminfo.cxx.o.d -o CMakeFiles/gdcminfo.dir/gdcminfo.cxx.o -c /home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Applications/Cxx/gdcminfo.cxx
In file included from /usr/include/poppler/Object.h:44,
from /usr/include/poppler/XRef.h:44,
from /usr/include/poppler/PDFDoc.h:60,
from /home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Applications/Cxx/gdcminfo.cxx:39:
/usr/include/poppler/goo/GooString.h:241:24: error: ‘starts_with’ has not been declared in ‘std::string’
241 | using std::string::starts_with;
| ^~~~~~~~~~~
/usr/include/poppler/goo/GooString.h:244:24: error: ‘ends_with’ has not been declared in ‘std::string’
244 | using std::string::ends_with;
| ^~~~~~~~~
/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Applications/Cxx/gdcminfo.cxx: In function ‘std::string getInfoDate(Dict*, const char*)’:
/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Applications/Cxx/gdcminfo.cxx:201:36: error: invalid conversion from ‘Object*’ to ‘int’ [-fpermissive]
201 | if (infoDict->lookup((char*)key, &obj)->isString())
| ^~~~
| |
| Object*
In file included from /usr/include/poppler/Object.h:619:
/usr/include/poppler/Dict.h:81:40: note: initializing argument 2 of ‘Object Dict::lookup(const char*, int) const’
81 | Object lookup(const char *key, int recursion = 0) const;
| ~~~~^~~~~~~~~~~~~
/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Applications/Cxx/gdcminfo.cxx:201:41: error: base operand of ‘->’ has non-pointer type ‘Object’
201 | if (infoDict->lookup((char*)key, &obj)->isString())
| ^~
/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Applications/Cxx/gdcminfo.cxx:259:11: error: ‘void Object::free()’ is private within this context
259 | obj.free();
| ~~~~~~~~^~
/usr/include/poppler/Object.h:562:10: note: declared private here
562 | void free();
| ^~~~
/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Applications/Cxx/gdcminfo.cxx: In function ‘std::string getInfoString(Dict*, const char*, const UnicodeMap*)’:
/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Applications/Cxx/gdcminfo.cxx:285:36: error: invalid conversion from ‘Object*’ to ‘int’ [-fpermissive]
285 | if (infoDict->lookup((char*)key, &obj)->isString())
| ^~~~
| |
| Object*
/usr/include/poppler/Dict.h:81:40: note: initializing argument 2 of ‘Object Dict::lookup(const char*, int) const’
81 | Object lookup(const char *key, int recursion = 0) const;
| ~~~~^~~~~~~~~~~~~
/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Applications/Cxx/gdcminfo.cxx:285:41: error: base operand of ‘->’ has non-pointer type ‘Object’
285 | if (infoDict->lookup((char*)key, &obj)->isString())
| ^~
/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Applications/Cxx/gdcminfo.cxx:288:23: error: invalid conversion from ‘const GooString*’ to ‘GooString*’ [-fpermissive]
288 | s1 = obj.getString();
| ~~~~~~~~~~~~~^~
| |
| const GooString*
/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Applications/Cxx/gdcminfo.cxx:319:11: error: ‘void Object::free()’ is private within this context
319 | obj.free();
| ~~~~~~~~^~
/usr/include/poppler/Object.h:562:10: note: declared private here
562 | void free();
| ^~~~
/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Applications/Cxx/gdcminfo.cxx: In function ‘int ProcessOneFile(const std::string&, const gdcm::Defs&)’:
/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Applications/Cxx/gdcminfo.cxx:502:35: error: use of deleted function ‘Object::Object(T) [with T = Object*]’
502 | bv->GetLength(), &appearDict);
| ^
/usr/include/poppler/Object.h:283:5: note: declared here
283 | Object(T) = delete;
| ^~~~~~
/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Applications/Cxx/gdcminfo.cxx:502:35: note: use ‘-fdiagnostics-all-candidates’ to display considered candidates
502 | bv->GetLength(), &appearDict);
| ^
/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Applications/Cxx/gdcminfo.cxx:513:51: error: no matching function for call to ‘PDFDoc::PDFDoc(MemStream*&, GooString*&, GooString*&)’
513 | doc = new PDFDoc(appearStream, ownerPW, userPW);
| ^
/usr/include/poppler/PDFDoc.h:378:5: note: candidate: ‘PDFDoc::PDFDoc()’
378 | PDFDoc();
| ^~~~~~
/usr/include/poppler/PDFDoc.h:378:5: note: candidate expects 0 arguments, 3 provided
/usr/include/poppler/PDFDoc.h:141:14: note: candidate: ‘PDFDoc::PDFDoc(BaseStream*, const std::optional<GooString>&, const std::optional<GooString>&, void*, const std::function<void()>&)’
141 | explicit PDFDoc(BaseStream *strA, const std::optional<GooString> &ownerPassword = {}, const std::optional<GooString> &userPassword = {}, void *guiDataA = nullptr, const std::function<void()> &xrefReconstructedCallback = {});
| ^~~~~~
/usr/include/poppler/PDFDoc.h:141:71: note: no known conversion for argument 2 from ‘GooString*’ to ‘const std::optional<GooString>&’
141 | explicit PDFDoc(BaseStream *strA, const std::optional<GooString> &ownerPassword = {}, const std::optional<GooString> &userPassword = {}, void *guiDataA = nullptr, const std::function<void()> &xrefReconstructedCallback = {});
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
/usr/include/poppler/PDFDoc.h:134:14: note: candidate: ‘PDFDoc::PDFDoc(std::unique_ptr<GooString>&&, const std::optional<GooString>&, const std::optional<GooString>&, void*, const std::function<void()>&)’
134 | explicit PDFDoc(std::unique_ptr<GooString> &&fileNameA, const std::optional<GooString> &ownerPassword = {}, const std::optional<GooString> &userPassword = {}, void *guiDataA = nullptr,
| ^~~~~~
/usr/include/poppler/PDFDoc.h:134:50: note: no known conversion for argument 1 from ‘MemStream*’ to ‘std::unique_ptr<GooString>&&’
134 | explicit PDFDoc(std::unique_ptr<GooString> &&fileNameA, const std::optional<GooString> &ownerPassword = {}, const std::optional<GooString> &userPassword = {}, void *guiDataA = nullptr,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Applications/Cxx/gdcminfo.cxx:535:37: error: no match for ‘operator=’ (operand types are ‘std::unique_ptr<GlobalParams>’ and ‘GlobalParams*’)
535 | globalParams = new GlobalParams();
| ^
In file included from /usr/include/c++/14/memory:78,
from /usr/include/poppler/goo/GooString.h:45:
/usr/include/c++/14/bits/unique_ptr.h:424:9: note: candidate: ‘template<class _Up, class _Ep> typename std::enable_if<std::__and_<std::__and_<std::is_convertible<typename std::unique_ptr<_Up, _Ep>::pointer, typename std::__uniq_ptr_impl<_Tp, _Dp>::pointer>, std::__not_<std::is_array<_Up> > >, std::is_assignable<_T2&, _U2&&> >::value, std::unique_ptr<_Tp, _Dp>&>::type std::unique_ptr<_Tp, _Dp>::operator=(std::unique_ptr<_Up, _Ep>&&) [with _Ep = _Up; _Tp = GlobalParams; _Dp = std::default_delete<GlobalParams>]’
424 | operator=(unique_ptr<_Up, _Ep>&& __u) noexcept
| ^~~~~~~~
/usr/include/c++/14/bits/unique_ptr.h:424:9: note: template argument deduction/substitution failed:
/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Applications/Cxx/gdcminfo.cxx:535:37: note: mismatched types ‘std::unique_ptr<_Tp, _Dp>’ and ‘GlobalParams*’
535 | globalParams = new GlobalParams();
| ^
/usr/include/c++/14/bits/unique_ptr.h:408:19: note: candidate: ‘std::unique_ptr<_Tp, _Dp>& std::unique_ptr<_Tp, _Dp>::operator=(std::unique_ptr<_Tp, _Dp>&&) [with _Tp = GlobalParams; _Dp = std::default_delete<GlobalParams>]’
408 | unique_ptr& operator=(unique_ptr&&) = default;
| ^~~~~~~~
/usr/include/c++/14/bits/unique_ptr.h:408:29: note: no known conversion for argument 1 from ‘GlobalParams*’ to ‘std::unique_ptr<GlobalParams>&&’
408 | unique_ptr& operator=(unique_ptr&&) = default;
| ^~~~~~~~~~~~
/usr/include/c++/14/bits/unique_ptr.h:434:7: note: candidate: ‘std::unique_ptr<_Tp, _Dp>& std::unique_ptr<_Tp, _Dp>::operator=(std::nullptr_t) [with _Tp = GlobalParams; _Dp = std::default_delete<GlobalParams>; std::nullptr_t = std::nullptr_t]’
434 | operator=(nullptr_t) noexcept
| ^~~~~~~~
/usr/include/c++/14/bits/unique_ptr.h:434:17: note: no known conversion for argument 1 from ‘GlobalParams*’ to ‘std::nullptr_t’
434 | operator=(nullptr_t) noexcept
| ^~~~~~~~~
/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Applications/Cxx/gdcminfo.cxx:546:22: error: no matching function for call to ‘PDFDoc::getDocInfo(Object*)’
546 | doc->getDocInfo(&info);
| ~~~~~~~~~~~~~~~^~~~~~~
/usr/include/poppler/PDFDoc.h:250:12: note: candidate: ‘Object PDFDoc::getDocInfo()’
250 | Object getDocInfo() { return xref->getDocInfo(); }
| ^~~~~~~~~~
/usr/include/poppler/PDFDoc.h:250:12: note: candidate expects 0 arguments, 1 provided
/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Applications/Cxx/gdcminfo.cxx:559:18: error: ‘void Object::free()’ is private within this context
559 | info.free();
| ~~~~~~~~~^~
/usr/include/poppler/Object.h:562:10: note: declared private here
562 | void free();
| ^~~~
/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Applications/Cxx/gdcminfo.cxx:565:52: error: invalid use of incomplete type ‘const class StructTreeRoot’
565 | const char *tagged = doc->getStructTreeRoot()->isDict() ? "yes" : "no";
| ^~
In file included from /usr/include/poppler/PDFDoc.h:61:
/usr/include/poppler/Catalog.h:64:7: note: forward declaration of ‘class StructTreeRoot’
64 | class StructTreeRoot;
| ^~~~~~~~~~~~~~
make[2]: *** [Applications/Cxx/CMakeFiles/gdcminfo.dir/build.make:79: Applications/Cxx/CMakeFiles/gdcminfo.dir/gdcminfo.cxx.o] Error 1
make[2]: Target 'Applications/Cxx/CMakeFiles/gdcminfo.dir/build' not remade because of errors.
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/x86_64-redhat-linux-gnu'
make[1]: *** [CMakeFiles/Makefile2:2473: Applications/Cxx/CMakeFiles/gdcminfo.dir/all] Error 2
make -f Applications/Cxx/CMakeFiles/gdcmscu.dir/build.make Applications/Cxx/CMakeFiles/gdcmscu.dir/depend
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/x86_64-redhat-linux-gnu'
cd /home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/x86_64-redhat-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24 /home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Applications/Cxx /home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/x86_64-redhat-linux-gnu /home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/x86_64-redhat-linux-gnu/Applications/Cxx /home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/x86_64-redhat-linux-gnu/Applications/Cxx/CMakeFiles/gdcmscu.dir/DependInfo.cmake "--color="
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/x86_64-redhat-linux-gnu'
make -f Applications/Cxx/CMakeFiles/gdcmscu.dir/build.make Applications/Cxx/CMakeFiles/gdcmscu.dir/build
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/x86_64-redhat-linux-gnu'
make[2]: Nothing to be done for 'Applications/Cxx/CMakeFiles/gdcmscu.dir/build'.
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/x86_64-redhat-linux-gnu'
[ 95%] Built target gdcmscu
make -f Applications/Cxx/CMakeFiles/gdcmxml.dir/build.make Applications/Cxx/CMakeFiles/gdcmxml.dir/depend
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/x86_64-redhat-linux-gnu'
cd /home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/x86_64-redhat-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24 /home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Applications/Cxx /home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/x86_64-redhat-linux-gnu /home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/x86_64-redhat-linux-gnu/Applications/Cxx /home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/x86_64-redhat-linux-gnu/Applications/Cxx/CMakeFiles/gdcmxml.dir/DependInfo.cmake "--color="
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/x86_64-redhat-linux-gnu'
make -f Applications/Cxx/CMakeFiles/gdcmxml.dir/build.make Applications/Cxx/CMakeFiles/gdcmxml.dir/build
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/x86_64-redhat-linux-gnu'
make[2]: Nothing to be done for 'Applications/Cxx/CMakeFiles/gdcmxml.dir/build'.
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/x86_64-redhat-linux-gnu'
[ 96%] Built target gdcmxml
make -f Applications/Cxx/CMakeFiles/gdcmpap3.dir/build.make Applications/Cxx/CMakeFiles/gdcmpap3.dir/depend
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/x86_64-redhat-linux-gnu'
cd /home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/x86_64-redhat-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24 /home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Applications/Cxx /home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/x86_64-redhat-linux-gnu /home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/x86_64-redhat-linux-gnu/Applications/Cxx /home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/x86_64-redhat-linux-gnu/Applications/Cxx/CMakeFiles/gdcmpap3.dir/DependInfo.cmake "--color="
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/x86_64-redhat-linux-gnu'
make -f Applications/Cxx/CMakeFiles/gdcmpap3.dir/build.make Applications/Cxx/CMakeFiles/gdcmpap3.dir/build
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/x86_64-redhat-linux-gnu'
make[2]: Nothing to be done for 'Applications/Cxx/CMakeFiles/gdcmpap3.dir/build'.
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/x86_64-redhat-linux-gnu'
[ 97%] Built target gdcmpap3
make -f Applications/Cxx/CMakeFiles/gdcmpdf.dir/build.make Applications/Cxx/CMakeFiles/gdcmpdf.dir/depend
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/x86_64-redhat-linux-gnu'
cd /home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/x86_64-redhat-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24 /home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Applications/Cxx /home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/x86_64-redhat-linux-gnu /home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/x86_64-redhat-linux-gnu/Applications/Cxx /home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/x86_64-redhat-linux-gnu/Applications/Cxx/CMakeFiles/gdcmpdf.dir/DependInfo.cmake "--color="
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/x86_64-redhat-linux-gnu'
make -f Applications/Cxx/CMakeFiles/gdcmpdf.dir/build.make Applications/Cxx/CMakeFiles/gdcmpdf.dir/build
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/x86_64-redhat-linux-gnu'
[ 97%] Building CXX object Applications/Cxx/CMakeFiles/gdcmpdf.dir/gdcmpdf.cxx.o
cd /home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/x86_64-redhat-linux-gnu/Applications/Cxx && /usr/bin/g++ -I/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/x86_64-redhat-linux-gnu/Source/Common -I/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Source/Common -I/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Source/DataStructureAndEncodingDefinition -I/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Source/MediaStorageAndFileFormat -I/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Source/InformationObjectDefinition -I/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Source/MessageExchangeDefinition -I/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Source/DataDictionary -I/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Utilities -I/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Utilities/socketxx -I/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Utilities/socketxx/socket++ -I/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/x86_64-redhat-linux-gnu/Utilities/socketxx/socket++ -I/usr/include/poppler -I/usr/include/libxml2 -I/usr/include/openjpeg-2.5 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -g -grecord-gcc-switches -pipe -mtls-dialect=gnu2 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fdata-sections -ffunction-sections -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -flto=auto -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -Wall -Werror=format-security -O2 -g -DNDEBUG -DLIBPOPPLER_UNICODEMAP_HAS_CONSTMAPUNICODE -MD -MT Applications/Cxx/CMakeFiles/gdcmpdf.dir/gdcmpdf.cxx.o -MF CMakeFiles/gdcmpdf.dir/gdcmpdf.cxx.o.d -o CMakeFiles/gdcmpdf.dir/gdcmpdf.cxx.o -c /home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Applications/Cxx/gdcmpdf.cxx
In file included from /usr/include/poppler/Object.h:44,
from /usr/include/poppler/XRef.h:44,
from /usr/include/poppler/PDFDoc.h:60,
from /home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Applications/Cxx/gdcmpdf.cxx:24:
/usr/include/poppler/goo/GooString.h:241:24: error: ‘starts_with’ has not been declared in ‘std::string’
241 | using std::string::starts_with;
| ^~~~~~~~~~~
/usr/include/poppler/goo/GooString.h:244:24: error: ‘ends_with’ has not been declared in ‘std::string’
244 | using std::string::ends_with;
| ^~~~~~~~~
/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Applications/Cxx/gdcmpdf.cxx: In function ‘std::string getInfoDate(Dict*, const char*)’:
/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Applications/Cxx/gdcmpdf.cxx:52:36: error: invalid conversion from ‘Object*’ to ‘int’ [-fpermissive]
52 | if (infoDict->lookup((char*)key, &obj)->isString())
| ^~~~
| |
| Object*
In file included from /usr/include/poppler/Object.h:619:
/usr/include/poppler/Dict.h:81:40: note: initializing argument 2 of ‘Object Dict::lookup(const char*, int) const’
81 | Object lookup(const char *key, int recursion = 0) const;
| ~~~~^~~~~~~~~~~~~
/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Applications/Cxx/gdcmpdf.cxx:52:41: error: base operand of ‘->’ has non-pointer type ‘Object’
52 | if (infoDict->lookup((char*)key, &obj)->isString())
| ^~
/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Applications/Cxx/gdcmpdf.cxx:110:11: error: ‘void Object::free()’ is private within this context
110 | obj.free();
| ~~~~~~~~^~
/usr/include/poppler/Object.h:562:10: note: declared private here
562 | void free();
| ^~~~
/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Applications/Cxx/gdcmpdf.cxx: In function ‘std::string getInfoString(Dict*, const char*, const UnicodeMap*, bool&)’:
/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Applications/Cxx/gdcmpdf.cxx:136:36: error: invalid conversion from ‘Object*’ to ‘int’ [-fpermissive]
136 | if (infoDict->lookup((char*)key, &obj)->isString())
| ^~~~
| |
| Object*
/usr/include/poppler/Dict.h:81:40: note: initializing argument 2 of ‘Object Dict::lookup(const char*, int) const’
81 | Object lookup(const char *key, int recursion = 0) const;
| ~~~~^~~~~~~~~~~~~
/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Applications/Cxx/gdcmpdf.cxx:136:41: error: base operand of ‘->’ has non-pointer type ‘Object’
136 | if (infoDict->lookup((char*)key, &obj)->isString())
| ^~
/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Applications/Cxx/gdcmpdf.cxx:139:23: error: invalid conversion from ‘const GooString*’ to ‘GooString*’ [-fpermissive]
139 | s1 = obj.getString();
| ~~~~~~~~~~~~~^~
| |
| const GooString*
/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Applications/Cxx/gdcmpdf.cxx:170:11: error: ‘void Object::free()’ is private within this context
170 | obj.free();
| ~~~~~~~~^~
/usr/include/poppler/Object.h:562:10: note: declared private here
562 | void free();
| ^~~~
/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Applications/Cxx/gdcmpdf.cxx: In function ‘int main(int, char**)’:
/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Applications/Cxx/gdcmpdf.cxx:369:35: error: no match for ‘operator=’ (operand types are ‘std::unique_ptr<GlobalParams>’ and ‘GlobalParams*’)
369 | globalParams = new GlobalParams();
| ^
In file included from /usr/include/c++/14/memory:78,
from /usr/include/poppler/goo/GooString.h:45:
/usr/include/c++/14/bits/unique_ptr.h:424:9: note: candidate: ‘template<class _Up, class _Ep> typename std::enable_if<std::__and_<std::__and_<std::is_convertible<typename std::unique_ptr<_Up, _Ep>::pointer, typename std::__uniq_ptr_impl<_Tp, _Dp>::pointer>, std::__not_<std::is_array<_Up> > >, std::is_assignable<_T2&, _U2&&> >::value, std::unique_ptr<_Tp, _Dp>&>::type std::unique_ptr<_Tp, _Dp>::operator=(std::unique_ptr<_Up, _Ep>&&) [with _Ep = _Up; _Tp = GlobalParams; _Dp = std::default_delete<GlobalParams>]’
424 | operator=(unique_ptr<_Up, _Ep>&& __u) noexcept
| ^~~~~~~~
/usr/include/c++/14/bits/unique_ptr.h:424:9: note: template argument deduction/substitution failed:
/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Applications/Cxx/gdcmpdf.cxx:369:35: note: mismatched types ‘std::unique_ptr<_Tp, _Dp>’ and ‘GlobalParams*’
369 | globalParams = new GlobalParams();
| ^
/usr/include/c++/14/bits/unique_ptr.h:408:19: note: candidate: ‘std::unique_ptr<_Tp, _Dp>& std::unique_ptr<_Tp, _Dp>::operator=(std::unique_ptr<_Tp, _Dp>&&) [with _Tp = GlobalParams; _Dp = std::default_delete<GlobalParams>]’
408 | unique_ptr& operator=(unique_ptr&&) = default;
| ^~~~~~~~
/usr/include/c++/14/bits/unique_ptr.h:408:29: note: no known conversion for argument 1 from ‘GlobalParams*’ to ‘std::unique_ptr<GlobalParams>&&’
408 | unique_ptr& operator=(unique_ptr&&) = default;
| ^~~~~~~~~~~~
/usr/include/c++/14/bits/unique_ptr.h:434:7: note: candidate: ‘std::unique_ptr<_Tp, _Dp>& std::unique_ptr<_Tp, _Dp>::operator=(std::nullptr_t) [with _Tp = GlobalParams; _Dp = std::default_delete<GlobalParams>; std::nullptr_t = std::nullptr_t]’
434 | operator=(nullptr_t) noexcept
| ^~~~~~~~
/usr/include/c++/14/bits/unique_ptr.h:434:17: note: no known conversion for argument 1 from ‘GlobalParams*’ to ‘std::nullptr_t’
434 | operator=(nullptr_t) noexcept
| ^~~~~~~~~
/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Applications/Cxx/gdcmpdf.cxx:393:7: error: ‘class Object’ has no member named ‘initNull’; did you mean ‘isNull’?
393 | obj.initNull();
| ^~~~~~~~
| isNull
/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Applications/Cxx/gdcmpdf.cxx:398:45: error: no matching function for call to ‘PDFDoc::PDFDoc(GooString*&, GooString*&, GooString*&)’
398 | doc = new PDFDoc(fileName, ownerPW, userPW);
| ^
/usr/include/poppler/PDFDoc.h:378:5: note: candidate: ‘PDFDoc::PDFDoc()’
378 | PDFDoc();
| ^~~~~~
/usr/include/poppler/PDFDoc.h:378:5: note: candidate expects 0 arguments, 3 provided
/usr/include/poppler/PDFDoc.h:141:14: note: candidate: ‘PDFDoc::PDFDoc(BaseStream*, const std::optional<GooString>&, const std::optional<GooString>&, void*, const std::function<void()>&)’
141 | explicit PDFDoc(BaseStream *strA, const std::optional<GooString> &ownerPassword = {}, const std::optional<GooString> &userPassword = {}, void *guiDataA = nullptr, const std::function<void()> &xrefReconstructedCallback = {});
| ^~~~~~
/usr/include/poppler/PDFDoc.h:141:33: note: no known conversion for argument 1 from ‘GooString*’ to ‘BaseStream*’
141 | explicit PDFDoc(BaseStream *strA, const std::optional<GooString> &ownerPassword = {}, const std::optional<GooString> &userPassword = {}, void *guiDataA = nullptr, const std::function<void()> &xrefReconstructedCallback = {});
| ~~~~~~~~~~~~^~~~
/usr/include/poppler/PDFDoc.h:134:14: note: candidate: ‘PDFDoc::PDFDoc(std::unique_ptr<GooString>&&, const std::optional<GooString>&, const std::optional<GooString>&, void*, const std::function<void()>&)’
134 | explicit PDFDoc(std::unique_ptr<GooString> &&fileNameA, const std::optional<GooString> &ownerPassword = {}, const std::optional<GooString> &userPassword = {}, void *guiDataA = nullptr,
| ^~~~~~
/usr/include/poppler/PDFDoc.h:134:50: note: no known conversion for argument 1 from ‘GooString*’ to ‘std::unique_ptr<GooString>&&’
134 | explicit PDFDoc(std::unique_ptr<GooString> &&fileNameA, const std::optional<GooString> &ownerPassword = {}, const std::optional<GooString> &userPassword = {}, void *guiDataA = nullptr,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Applications/Cxx/gdcmpdf.cxx:433:47: error: no matching function for call to ‘PDFDoc::PDFDoc(GooString*&, GooString*&, GooString*&)’
433 | doc = new PDFDoc(fileName, ownerPW, userPW);
| ^
/usr/include/poppler/PDFDoc.h:378:5: note: candidate: ‘PDFDoc::PDFDoc()’
378 | PDFDoc();
| ^~~~~~
/usr/include/poppler/PDFDoc.h:378:5: note: candidate expects 0 arguments, 3 provided
/usr/include/poppler/PDFDoc.h:141:14: note: candidate: ‘PDFDoc::PDFDoc(BaseStream*, const std::optional<GooString>&, const std::optional<GooString>&, void*, const std::function<void()>&)’
141 | explicit PDFDoc(BaseStream *strA, const std::optional<GooString> &ownerPassword = {}, const std::optional<GooString> &userPassword = {}, void *guiDataA = nullptr, const std::function<void()> &xrefReconstructedCallback = {});
| ^~~~~~
/usr/include/poppler/PDFDoc.h:141:33: note: no known conversion for argument 1 from ‘GooString*’ to ‘BaseStream*’
141 | explicit PDFDoc(BaseStream *strA, const std::optional<GooString> &ownerPassword = {}, const std::optional<GooString> &userPassword = {}, void *guiDataA = nullptr, const std::function<void()> &xrefReconstructedCallback = {});
| ~~~~~~~~~~~~^~~~
/usr/include/poppler/PDFDoc.h:134:14: note: candidate: ‘PDFDoc::PDFDoc(std::unique_ptr<GooString>&&, const std::optional<GooString>&, const std::optional<GooString>&, void*, const std::function<void()>&)’
134 | explicit PDFDoc(std::unique_ptr<GooString> &&fileNameA, const std::optional<GooString> &ownerPassword = {}, const std::optional<GooString> &userPassword = {}, void *guiDataA = nullptr,
| ^~~~~~
/usr/include/poppler/PDFDoc.h:134:50: note: no known conversion for argument 1 from ‘GooString*’ to ‘std::unique_ptr<GooString>&&’
134 | explicit PDFDoc(std::unique_ptr<GooString> &&fileNameA, const std::optional<GooString> &ownerPassword = {}, const std::optional<GooString> &userPassword = {}, void *guiDataA = nullptr,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Applications/Cxx/gdcmpdf.cxx:452:20: error: no matching function for call to ‘PDFDoc::getDocInfo(Object*)’
452 | doc->getDocInfo(&info);
| ~~~~~~~~~~~~~~~^~~~~~~
/usr/include/poppler/PDFDoc.h:250:12: note: candidate: ‘Object PDFDoc::getDocInfo()’
250 | Object getDocInfo() { return xref->getDocInfo(); }
| ^~~~~~~~~~
/usr/include/poppler/PDFDoc.h:250:12: note: candidate expects 0 arguments, 1 provided
/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Applications/Cxx/gdcmpdf.cxx:465:16: error: ‘void Object::free()’ is private within this context
465 | info.free();
| ~~~~~~~~~^~
/usr/include/poppler/Object.h:562:10: note: declared private here
562 | void free();
| ^~~~
make[2]: *** [Applications/Cxx/CMakeFiles/gdcmpdf.dir/build.make:79: Applications/Cxx/CMakeFiles/gdcmpdf.dir/gdcmpdf.cxx.o] Error 1
make[2]: Target 'Applications/Cxx/CMakeFiles/gdcmpdf.dir/build' not remade because of errors.
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/x86_64-redhat-linux-gnu'
make[1]: *** [CMakeFiles/Makefile2:2595: Applications/Cxx/CMakeFiles/gdcmpdf.dir/all] Error 2
make -f Utilities/doxygen/CMakeFiles/DOCBOOK_MANPAGES.dir/build.make Utilities/doxygen/CMakeFiles/DOCBOOK_MANPAGES.dir/depend
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/x86_64-redhat-linux-gnu'
cd /home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/x86_64-redhat-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24 /home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/Utilities/doxygen /home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/x86_64-redhat-linux-gnu /home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/x86_64-redhat-linux-gnu/Utilities/doxygen /home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/x86_64-redhat-linux-gnu/Utilities/doxygen/CMakeFiles/DOCBOOK_MANPAGES.dir/DependInfo.cmake "--color="
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/x86_64-redhat-linux-gnu'
make -f Utilities/doxygen/CMakeFiles/DOCBOOK_MANPAGES.dir/build.make Utilities/doxygen/CMakeFiles/DOCBOOK_MANPAGES.dir/build
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/x86_64-redhat-linux-gnu'
[ 97%] docbook manpages
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/x86_64-redhat-linux-gnu'
[ 99%] Built target DOCBOOK_MANPAGES
make[1]: Target 'all' not remade because of errors.
make[1]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/GDCM-3.0.24/x86_64-redhat-linux-gnu'
make: *** [Makefile:169: all] Error 2
make: Target 'default_target' not remade because of errors.
BTW: is it possible to move issue tracker to github? 🤔
Same here, gentoo updated to app-text/poppler-24.05.0 today.
Building with -DCMAKE_CXX_STANDARD=20 fixed it for me. That's due to poppler's change in https://gitlab.freedesktop.org/poppler/poppler/-/commit/d8ae3ba#9a2aa4db38d3115ed60da621e012c0efc0172aae
Here is a patch: