From: Matthias Kilian Subject: fix graphics/inkscape with poppler-25.0.7 To: rsadowski@openbsd.org Cc: ports@openbsd.org Date: Mon, 7 Jul 2025 22:54:16 +0200 Hi, this fixes inkscape with the new poppler. ok? Ciao, Kili Index: patches/patch-src_extension_internal_pdfinput_pdf-parser_cpp =================================================================== RCS file: /cvs/ports/graphics/inkscape/patches/patch-src_extension_internal_pdfinput_pdf-parser_cpp,v diff -u -p -r1.24 patch-src_extension_internal_pdfinput_pdf-parser_cpp --- patches/patch-src_extension_internal_pdfinput_pdf-parser_cpp 19 Jun 2025 20:16:35 -0000 1.24 +++ patches/patch-src_extension_internal_pdfinput_pdf-parser_cpp 7 Jul 2025 20:47:50 -0000 @@ -1,6 +1,6 @@ -Fix build with poppler-25.06. +Fix build with poppler-25.06 and 25.07. -From upstream commit 1fdfb889bba9ee146c8b826e97bc58a88cb1e529. +Partially from upstream commit 1fdfb889bba9ee146c8b826e97bc58a88cb1e529. Index: src/extension/internal/pdfinput/pdf-parser.cpp --- src/extension/internal/pdfinput/pdf-parser.cpp.orig @@ -79,3 +79,12 @@ Index: src/extension/internal/pdfinput/p } } else { error(errSyntaxError, getPos(), "Invalid soft mask in ExtGState - missing group"); +@@ -2316,7 +2319,7 @@ void PdfParser::doShowText(GooString *s) { + dx, dy, ax, ay, tOriginX, tOriginY, code, n, u, uLen); + + // Move onto next unicode character. +- state->shift(tdx, tdy); ++ state->textShiftWithUserCoords(tdx, tdy); + p += n; + len -= n; + } Index: patches/patch-src_extension_internal_pdfinput_poppler-cairo-font-engine_cpp =================================================================== RCS file: patches/patch-src_extension_internal_pdfinput_poppler-cairo-font-engine_cpp diff -N patches/patch-src_extension_internal_pdfinput_poppler-cairo-font-engine_cpp --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-src_extension_internal_pdfinput_poppler-cairo-font-engine_cpp 7 Jul 2025 20:47:50 -0000 @@ -0,0 +1,58 @@ +Fix build with poppler-25.07. + +Index: src/extension/internal/pdfinput/poppler-cairo-font-engine.cpp +--- src/extension/internal/pdfinput/poppler-cairo-font-engine.cpp.orig ++++ src/extension/internal/pdfinput/poppler-cairo-font-engine.cpp +@@ -318,7 +318,7 @@ CairoFreeTypeFont *CairoFreeTypeFont::create(GfxFont * + #endif + char **enc; + const char *name; +- FoFiType1C *ff1c; ++ std::unique_ptr ff1c; + std::optional font_face; + std::vector codeToGID; + bool substitute = false; +@@ -429,7 +429,7 @@ CairoFreeTypeFont *CairoFreeTypeFont::create(GfxFont * + FoFiTrueType *ff; + #endif + if (!font_data.empty()) { +- ff = FoFiTrueType::make((fontchar)font_data.data(), font_data.size(), 0); ++ ff = FoFiTrueType::make(std::span(font_data), 0); + } else { + ff = FoFiTrueType::load(fileName.c_str(), 0); + } +@@ -459,7 +459,7 @@ CairoFreeTypeFont *CairoFreeTypeFont::create(GfxFont * + FoFiTrueType *ff; + #endif + if (!font_data.empty()) { +- ff = FoFiTrueType::make((fontchar)font_data.data(), font_data.size(), 0); ++ ff = FoFiTrueType::make(std::span(font_data), 0); + } else { + ff = FoFiTrueType::load(fileName.c_str(), 0); + } +@@ -493,7 +493,7 @@ CairoFreeTypeFont *CairoFreeTypeFont::create(GfxFont * + case fontCIDType0C: + if (!useCIDs) { + if (!font_data.empty()) { +- ff1c = FoFiType1C::make((fontchar)font_data.data(), font_data.size()); ++ ff1c = FoFiType1C::make(std::span(font_data)); + } else { + ff1c = FoFiType1C::load(fileName.c_str()); + } +@@ -506,7 +506,6 @@ CairoFreeTypeFont *CairoFreeTypeFont::create(GfxFont * + codeToGID.insert(codeToGID.begin(), src, src + n); + gfree(src); + #endif +- delete ff1c; + } + } + +@@ -542,7 +541,7 @@ CairoFreeTypeFont *CairoFreeTypeFont::create(GfxFont * + FoFiTrueType *ff; + #endif + if (!font_data.empty()) { +- ff = FoFiTrueType::make((fontchar)font_data.data(), font_data.size(), 0); ++ ff = FoFiTrueType::make(std::span(font_data), 0); + } else { + ff = FoFiTrueType::load(fileName.c_str(), 0); + }