Opened 11 months ago
Closed 11 months ago
#19794 closed defect (fixed)
Fix building Inkscape with poppler-24.05.0
Reported by: | Douglas R. Reno | Owned by: | blfs-book |
---|---|---|---|
Priority: | normal | Milestone: | 12.2 |
Component: | BOOK | Version: | git |
Severity: | normal | Keywords: | |
Cc: |
Description ¶
When building Inkscape, I got the following error:
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; | ^~~~~~~~~
Looking upstream, this seems to be due to poppler-24.05.0. I'm going to try applying https://gitlab.com/inkscape/inkscape/-/commit/bac106db943d1e8c7cfbcece28f7c613513f1c37
Change History (4)
comment:1 by , 11 months ago
comment:2 by , 11 months ago
Now I get the following error:
/usr/include/poppler/UTF.h: In function ‘bool hasUnicodeByteOrderMark(const std::string&)’:
/usr/include/poppler/UTF.h:57:14: error: ‘const std::string’ {aka ‘const class std::cxx11::basic_string<char>’} has no member named ‘starts_with’
57 | return s.starts_with(unicodeByteOrderMark);
|
/usr/include/poppler/UTF.h: In function ‘bool hasUnicodeByteOrderMarkLE(const std::string&)’: /usr/include/poppler/UTF.h:63:14: error: ‘const std::string’ {aka ‘const class std::cxx11::basic_string<char>’} has no member named ‘starts_with’
63 | return s.starts_with(unicodeByteOrderMarkLE);
|
This looks similar to the sed in poppler, so I'll try updating that next.
comment:3 by , 11 months ago
The correct approach here will be to apply https://gitlab.com/inkscape/inkscape/-/commit/1798e9c13b786f3d077ba0132592c4d5c1d1fb9b, which upgrades Inkscape to C++20.
comment:4 by , 11 months ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
This is a two-part problem. The first one is that I forgot the sed that's for C++20 in Poppler, but after that is fixed (oops!) I get:
Notably this includes
/sources/inkscape-1.3.2/inkscape-1.3.2_2023-11-25_091e20ef0f/src/extension/internal/pdfinput/poppler-utils.cpp:566:16: error: ‘const class GooString’ has no member named ‘hasUnicodeMarker’
/sources/inkscape-1.3.2/inkscape-1.3.2_2023-11-25_091e20ef0f/src/extension/internal/pdfinput/poppler-utils.cpp:569:23: error: ‘const class GooString’ has no member named ‘hasUnicodeMarkerLE’
Trying the patch now...