Hi,
this fixes the build with poppler-25.02.0.
ok?
Ciao,
Kili
Index:
patches/patch-src_extension_internal_pdfinput_poppler-cairo-font-engine_cpp
===================================================================
RCS file:
/cvs/ports/graphics/inkscape/patches/patch-src_extension_internal_pdfinput_poppler-cairo-font-engine_cpp,v
diff -u -p -r1.1
patch-src_extension_internal_pdfinput_poppler-cairo-font-engine_cpp
--- patches/patch-src_extension_internal_pdfinput_poppler-cairo-font-engine_cpp
9 Dec 2024 18:31:39 -0000 1.1
+++ patches/patch-src_extension_internal_pdfinput_poppler-cairo-font-engine_cpp
17 Feb 2025 21:25:59 -0000
@@ -1,11 +1,36 @@
-Fix build with poppler-24.11.0.
+Fix build with poppler-24.11.0 and 25.02.0.
-From upstream commit 0399372ec240d23e0e70548237a541f2b5bf0f34.
+From upstream commits 0399372ec240d23e0e70548237a541f2b5bf0f34 and
+5c4c6d116dae5250d75d34a45f0d9220824d2e20.
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
-@@ -421,9 +421,9 @@ CairoFreeTypeFont *CairoFreeTypeFont::create(GfxFont *
+@@ -407,35 +407,48 @@ CairoFreeTypeFont *CairoFreeTypeFont::create(GfxFont *
+ break;
+ case fontCIDType2:
+ case fontCIDType2OT:
++#if POPPLER_CHECK_VERSION(25,2,0)
++ if (!gfxcid->getCIDToGID().empty()) {
++ const auto src = gfxcid->getCIDToGID();
++ codeToGID = std::move(src);
++ }
++#else
+ if (gfxcid->getCIDToGID()) {
+ n = gfxcid->getCIDToGIDLen();
+ if (n) {
+- const int *src = gfxcid->getCIDToGID();
++ const auto src = gfxcid->getCIDToGID();
+ codeToGID.reserve(n);
+ codeToGID.insert(codeToGID.begin(), src, src + n);
+ }
+- } else {
++ }
++#endif
++ else {
+ #if POPPLER_CHECK_VERSION(22, 1, 0)
+ std::unique_ptr<FoFiTrueType> ff;
+ #else
FoFiTrueType *ff;
#endif
if (!font_data.empty()) {
@@ -17,7 +42,26 @@ Index: src/extension/internal/pdfinput/p
}
if (!ff) {
goto err2;
-@@ -446,9 +446,9 @@ CairoFreeTypeFont *CairoFreeTypeFont::create(GfxFont *
+ }
+ #if POPPLER_CHECK_VERSION(22, 1, 0)
+- int *src = gfxcid->getCodeToGIDMap(ff.get(), &n);
++ auto src = gfxcid->_POPPLER_GET_CODE_TO_GID_MAP(ff.get(), &n);
+ #else
+- int *src = gfxcid->getCodeToGIDMap(ff, &n);
++ auto src = gfxcid->_POPPLER_GET_CODE_TO_GID_MAP(ff, &n);
+ #endif
++
++#if POPPLER_CHECK_VERSION(25,2,0)
++ codeToGID = std::move(src);
++#else
+ codeToGID.reserve(n);
+ codeToGID.insert(codeToGID.begin(), src, src + n);
+ gfree(src);
++#endif
+ }
+ /* Fall through */
+ case fontTrueType:
+@@ -446,9 +459,9 @@ CairoFreeTypeFont *CairoFreeTypeFont::create(GfxFont *
FoFiTrueType *ff;
#endif
if (!font_data.empty()) {
@@ -29,7 +73,66 @@ Index: src/extension/internal/pdfinput/p
}
if (!ff) {
error(errSyntaxError, -1, "failed to load truetype font\n");
-@@ -514,9 +514,9 @@ CairoFreeTypeFont *CairoFreeTypeFont::create(GfxFont *
+@@ -457,13 +470,17 @@ CairoFreeTypeFont *CairoFreeTypeFont::create(GfxFont *
+ /* This might be set already for the CIDType2 case */
+ if (fontType == fontTrueType || fontType == fontTrueTypeOT) {
+ #if POPPLER_CHECK_VERSION(22, 1, 0)
+- int *src = gfx8bit->getCodeToGIDMap(ff.get());
++ auto src = gfx8bit->getCodeToGIDMap(ff.get());
+ #else
+- int *src = gfx8bit->getCodeToGIDMap(ff);
++ auto src = gfx8bit->getCodeToGIDMap(ff);
+ #endif
++#if POPPLER_CHECK_VERSION(25,2,0)
++ codeToGID = std::move(src);
++#else
+ codeToGID.reserve(256);
+ codeToGID.insert(codeToGID.begin(), src, src + 256);
+ gfree(src);
++#endif
+ }
+ font_face = getFreeTypeFontFace(fontEngine, lib, fileName,
std::move(font_data));
+ if (!font_face) {
+@@ -481,10 +498,14 @@ CairoFreeTypeFont *CairoFreeTypeFont::create(GfxFont *
+ ff1c = FoFiType1C::load(fileName.c_str());
+ }
+ if (ff1c) {
+- int *src = ff1c->getCIDToGIDMap(&n);
++ auto src = ff1c->_POPPLER_GET_CID_TO_GID_MAP(&n);
++#if POPPLER_CHECK_VERSION(25,2,0)
++ codeToGID = std::move(src);
++#else
+ codeToGID.reserve(n);
+ codeToGID.insert(codeToGID.begin(), src, src + n);
+ gfree(src);
++#endif
+ delete ff1c;
+ }
+ }
+@@ -497,14 +518,21 @@ CairoFreeTypeFont *CairoFreeTypeFont::create(GfxFont *
+ break;
+
+ case fontCIDType0COT:
++#if POPPLER_CHECK_VERSION(25,2,0)
++ if (!gfxcid->getCIDToGID().empty()) {
++ const auto src = gfxcid->getCIDToGID();
++ codeToGID = std::move(src);
++ }
++#else
+ if (gfxcid->getCIDToGID()) {
+ n = gfxcid->getCIDToGIDLen();
+ if (n) {
+- const int *src = gfxcid->getCIDToGID();
++ const auto src = gfxcid->getCIDToGID();
+ codeToGID.reserve(n);
+ codeToGID.insert(codeToGID.begin(), src, src + n);
+ }
+ }
++#endif
+
+ if (codeToGID.empty()) {
+ if (!useCIDs) {
+@@ -514,16 +542,20 @@ CairoFreeTypeFont *CairoFreeTypeFont::create(GfxFont *
FoFiTrueType *ff;
#endif
if (!font_data.empty()) {
@@ -41,3 +144,15 @@ Index: src/extension/internal/pdfinput/p
}
if (ff) {
if (ff->isOpenTypeCFF()) {
+- int *src = ff->getCIDToGIDMap(&n);
++ auto src = ff1c->_POPPLER_GET_CID_TO_GID_MAP(&n);
++#if POPPLER_CHECK_VERSION(25,2,0)
++ codeToGID = std::move(src);
++#else
+ codeToGID.reserve(n);
+ codeToGID.insert(codeToGID.begin(), src, src + n);
+ gfree(src);
++#endif
+ }
+ }
+ }
Index: patches/patch-src_extension_internal_pdfinput_poppler-transition-api_h
===================================================================
RCS file:
/cvs/ports/graphics/inkscape/patches/patch-src_extension_internal_pdfinput_poppler-transition-api_h,v
diff -u -p -r1.3 patch-src_extension_internal_pdfinput_poppler-transition-api_h
--- patches/patch-src_extension_internal_pdfinput_poppler-transition-api_h
30 Oct 2024 08:35:35 -0000 1.3
+++ patches/patch-src_extension_internal_pdfinput_poppler-transition-api_h
17 Feb 2025 21:25:59 -0000
@@ -1,14 +1,23 @@
-Fix build with poppler-24.10.0.
+Fix build with poppler-24.10.0 and 25.02.0.
-From upstream commit 22304ae8034d067670a9f95022083a75fac92b4c.
+From upstream commits 22304ae8034d067670a9f95022083a75fac92b4c and
+5c4c6d116dae5250d75d34a45f0d9220824d2e20.
Index: src/extension/internal/pdfinput/poppler-transition-api.h
--- src/extension/internal/pdfinput/poppler-transition-api.h.orig
+++ src/extension/internal/pdfinput/poppler-transition-api.h
-@@ -15,6 +15,12 @@
+@@ -15,6 +15,20 @@
#include <glib/poppler-features.h>
#include <poppler/UTF.h>
++#if POPPLER_CHECK_VERSION(25,2,0)
++#define _POPPLER_GET_CODE_TO_GID_MAP(ff, len) getCodeToGIDMap(ff)
++#define _POPPLER_GET_CID_TO_GID_MAP(len) getCIDToGIDMap()
++#else
++#define _POPPLER_GET_CODE_TO_GID_MAP(ff, len) getCodeToGIDMap(ff, len)
++#define _POPPLER_GET_CID_TO_GID_MAP(len) getCIDToGIDMap(len)
++#endif
++
+#if POPPLER_CHECK_VERSION(24, 10, 0)
+#define _POPPLER_CONSUME_UNIQPTR_ARG(value) std::move(value)
+#else