Hi,
this fixes the build with poppler-25.02.1.
Ciao,
Kili
Index: patches/patch-scribus_plugins_import_pdf_importpdf_cpp
===================================================================
RCS file: patches/patch-scribus_plugins_import_pdf_importpdf_cpp
diff -N patches/patch-scribus_plugins_import_pdf_importpdf_cpp
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-scribus_plugins_import_pdf_importpdf_cpp 17 Feb 2025
21:24:13 -0000
@@ -0,0 +1,19 @@
+Fix build with poppler-25.02.0. From upstream commit 26666.
+
+Index: scribus/plugins/import/pdf/importpdf.cpp
+--- scribus/plugins/import/pdf/importpdf.cpp.orig
++++ scribus/plugins/import/pdf/importpdf.cpp
+@@ -462,11 +462,11 @@ bool PdfPlug::convert(const QString& fn)
+
+ if (dev->isOk())
+ {
+- OCGs* ocg = pdfDoc->getOptContentConfig();
++ POPPLER_CONST_25_02 OCGs* ocg =
pdfDoc->getOptContentConfig();
+ if (ocg && ocg->hasOCGs())
+ {
+ QStringList ocgNames;
+- Array *order = ocg->getOrderArray();
++ POPPLER_CONST_25_02 Array *order =
ocg->getOrderArray();
+ if (order)
+ {
+ for (int i = 0; i <
order->getLength (); ++i)
Index: patches/patch-scribus_plugins_import_pdf_importpdfconfig_h
===================================================================
RCS file: patches/patch-scribus_plugins_import_pdf_importpdfconfig_h
diff -N patches/patch-scribus_plugins_import_pdf_importpdfconfig_h
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-scribus_plugins_import_pdf_importpdfconfig_h 17 Feb 2025
21:24:13 -0000
@@ -0,0 +1,18 @@
+Fix build with poppler-25.02.0. From upstream commit 26666.
+
+Index: scribus/plugins/import/pdf/importpdfconfig.h
+--- scribus/plugins/import/pdf/importpdfconfig.h.orig
++++ scribus/plugins/import/pdf/importpdfconfig.h
+@@ -15,6 +15,12 @@ for which a new license (GPL+exception) is in place.
+ + ((micro) * 1))
+ #define POPPLER_ENCODED_VERSION POPPLER_VERSION_ENCODE(POPPLER_VERSION_MAJOR,
POPPLER_VERSION_MINOR, POPPLER_VERSION_MICRO)
+
++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(25, 2, 0)
++#define POPPLER_CONST_25_02 const
++#else
++#define POPPLER_CONST_25_02
++#endif
++
+ #if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 64, 0)
+ #define POPPLER_CONST const
+ #else
Index: patches/patch-scribus_plugins_import_pdf_slaoutput_cpp
===================================================================
RCS file:
/cvs/ports/print/scribus/patches/patch-scribus_plugins_import_pdf_slaoutput_cpp,v
diff -u -p -r1.13 patch-scribus_plugins_import_pdf_slaoutput_cpp
--- patches/patch-scribus_plugins_import_pdf_slaoutput_cpp 6 Jan 2025
22:15:49 -0000 1.13
+++ patches/patch-scribus_plugins_import_pdf_slaoutput_cpp 17 Feb 2025
21:24:13 -0000
@@ -1,6 +1,6 @@
-Fix build with poppler-24.10.0 and 25.01.0.
+Fix build with poppler-24.10.0, 25.01.0, 25.02.0.
-From upstream commits 26325, 26327, 26392 and 26394.
+From upstream commits 26325, 26327, 26392 26394 and 26666.
Index: scribus/plugins/import/pdf/slaoutput.cpp
--- scribus/plugins/import/pdf/slaoutput.cpp.orig
@@ -156,7 +156,16 @@ Index: scribus/plugins/import/pdf/slaout
int fl =
impo->getFlags();
if (fl == 0)
ite->annotation().setHTML(0);
-@@ -3049,13 +3063,14 @@ void SlaOutputDev::updateFont(GfxState *state)
+@@ -2908,7 +2922,7 @@ void SlaOutputDev::beginMarkedContent(POPPLER_CONST ch
+ {
+ if (dictRef->isNull())
+ return;
+- OCGs *contentConfig = m_catalog->getOptContentConfig();
++ POPPLER_CONST_25_02 OCGs *contentConfig =
m_catalog->getOptContentConfig();
+ OptionalContentGroup *oc;
+ if (dictRef->isRef())
+ {
+@@ -3049,14 +3063,19 @@ void SlaOutputDev::updateFont(GfxState *state)
char* tmpBuf = nullptr;
#endif
GfxFontType fontType;
@@ -171,10 +180,15 @@ Index: scribus/plugins/import/pdf/slaout
-#if POPPLER_ENCODED_VERSION < POPPLER_VERSION_ENCODE(22, 4, 0)
- int tmpBufLen = 0;
-#endif
++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(25, 2, 0)
++ std::vector<int> codeToGID;
++#else
int *codeToGID = nullptr;
++#endif
const double *textMat = nullptr;
double m11, m12, m21, m22, fontSize;
-@@ -3066,11 +3081,7 @@ void SlaOutputDev::updateFont(GfxState *state)
+ SplashCoord mat[4] = { 1.0, 0.0, 0.0, 1.0 };
+@@ -3066,11 +3085,7 @@ void SlaOutputDev::updateFont(GfxState *state)
m_font = nullptr;
@@ -186,7 +200,7 @@ Index: scribus/plugins/import/pdf/slaout
if (!gfxFont)
goto err1;
-@@ -3079,9 +3090,15 @@ void SlaOutputDev::updateFont(GfxState *state)
+@@ -3079,9 +3094,15 @@ void SlaOutputDev::updateFont(GfxState *state)
goto err1;
// check the font file cache
@@ -202,7 +216,7 @@ Index: scribus/plugins/import/pdf/slaout
else
{
fontLoc = gfxFont->locateFont(m_xref ? m_xref :
m_pdfDoc->getXRef(), nullptr);
-@@ -3135,30 +3152,59 @@ void SlaOutputDev::updateFont(GfxState *state)
+@@ -3135,30 +3156,59 @@ void SlaOutputDev::updateFont(GfxState *state)
// load the font file
switch (fontType) {
case fontType1:
@@ -263,11 +277,24 @@ Index: scribus/plugins/import/pdf/slaout
ff = FoFiTrueType::load(fileName.c_str());
else
ff = FoFiTrueType::make(fontsrc->buf.data(),
fontsrc->buf.size());
-@@ -3184,19 +3230,35 @@ void SlaOutputDev::updateFont(GfxState *state)
+@@ -3181,24 +3231,62 @@ void SlaOutputDev::updateFont(GfxState *state)
+ }
+ else
+ {
++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(25, 2, 0)
++ codeToGID.clear();
++#else
codeToGID = nullptr;
++#endif
n = 0;
}
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 11, 0)
++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(25, 2, 0)
++ if (!(fontFile =
m_fontEngine->loadTrueTypeFont(std::move(id), fontsrc, std::move(codeToGID),
fontLoc->fontNum)))
++ {
++ error(errSyntaxError, -1, "Couldn't create a
font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->c_str() :
"(unnamed)");
++ goto err2;
++ }
++#elif POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 11, 0)
+ if (!(fontFile =
m_fontEngine->loadTrueTypeFont(std::move(id), fontsrc, codeToGID, n,
fontLoc->fontNum)))
+ {
+ error(errSyntaxError, -1, "Couldn't create a
font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->c_str() :
"(unnamed)");
@@ -298,12 +325,34 @@ Index: scribus/plugins/import/pdf/slaout
+#endif
break;
case fontCIDType0COT:
++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(25, 2, 0)
++ if (((GfxCIDFont*) gfxFont)->getCIDToGIDLen() > 0)
++ {
++ codeToGID = ((GfxCIDFont*)
gfxFont)->getCIDToGID();
++ n = codeToGID.size();
++ }
++ else
++ {
++ codeToGID.clear();
++ n = 0;
++ }
++#else
if (((GfxCIDFont *) gfxFont)->getCIDToGID())
-@@ -3210,12 +3272,21 @@ void SlaOutputDev::updateFont(GfxState *state)
+ {
+ n = ((GfxCIDFont *) gfxFont)->getCIDToGIDLen();
+@@ -3210,15 +3298,41 @@ void SlaOutputDev::updateFont(GfxState *state)
codeToGID = nullptr;
n = 0;
}
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 11, 0)
++#endif
++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(25, 2, 0)
++ if (!(fontFile =
m_fontEngine->loadOpenTypeCFFFont(std::move(id), fontsrc, std::move(codeToGID),
fontLoc->fontNum)))
++ {
++ error(errSyntaxError, -1, "Couldn't create a
font for '{0:s}'",
++ gfxFont->getName() ?
gfxFont->getName()->c_str() : "(unnamed)");
++ goto err2;
++ }
++#elif POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 11, 0)
+ if (!(fontFile =
m_fontEngine->loadOpenTypeCFFFont(std::move(id), fontsrc, codeToGID, n,
fontLoc->fontNum)))
+ {
+ error(errSyntaxError, -1, "Couldn't create a
font for '{0:s}'",
@@ -321,8 +370,23 @@ Index: scribus/plugins/import/pdf/slaout
break;
case fontCIDType2:
case fontCIDType2OT:
-@@ -3232,8 +3303,13 @@ void SlaOutputDev::updateFont(GfxState *state)
++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(25, 2, 0)
++ codeToGID.clear();
++ n = 0;
++ if (((GfxCIDFont*) gfxFont)->getCIDToGIDLen() > 0)
++ {
++ codeToGID = ((GfxCIDFont*)
gfxFont)->getCIDToGID();
++ n = codeToGID.size();
++ }
++#else
+ codeToGID = nullptr;
+ n = 0;
+ if (((GfxCIDFont *) gfxFont)->getCIDToGID())
+@@ -3230,10 +3344,16 @@ void SlaOutputDev::updateFont(GfxState *state)
+ memcpy(codeToGID, ((GfxCIDFont
*)gfxFont)->getCIDToGID(), n * sizeof(*codeToGID));
+ }
}
++#endif
else
{
-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0)
@@ -336,11 +400,26 @@ Index: scribus/plugins/import/pdf/slaout
ff =
FoFiTrueType::load(fileName.c_str());
else
ff =
FoFiTrueType::make(fontsrc->buf.data(), fontsrc->buf.size());
-@@ -3253,11 +3329,19 @@ void SlaOutputDev::updateFont(GfxState *state)
- delete ff;
+@@ -3245,19 +3365,28 @@ void SlaOutputDev::updateFont(GfxState *state)
#endif
+ if (! ff)
+ goto err2;
+-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0)
+- codeToGID = ((GfxCIDFont*)
gfxFont)->getCodeToGIDMap(ff.get(), &n);
++ codeToGID = ((GfxCIDFont*)
gfxFont)->getCodeToGIDMap(ff.get());
+ ff.reset();
+-#else
+- codeToGID = ((GfxCIDFont
*)gfxFont)->getCodeToGIDMap(ff, &n);
+- delete ff;
+-#endif
}
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 11, 0)
++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(25, 2, 0)
++ if (!(fontFile =
m_fontEngine->loadTrueTypeFont(std::move(id), fontsrc, std::move(codeToGID),
fontLoc->fontNum)))
++ {
++ error(errSyntaxError, -1, "Couldn't create a
font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->c_str() :
"(unnamed)");
++ goto err2;
++ }
++#elif POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 11, 0)
+ if (!(fontFile =
m_fontEngine->loadTrueTypeFont(std::move(id), fontsrc, codeToGID, n,
fontLoc->fontNum)))
+ {
+ error(errSyntaxError, -1, "Couldn't create a
font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->c_str() :
"(unnamed)");
@@ -356,7 +435,7 @@ Index: scribus/plugins/import/pdf/slaout
break;
default:
// this shouldn't happen
-@@ -3292,7 +3376,11 @@ void SlaOutputDev::updateFont(GfxState *state)
+@@ -3292,7 +3421,11 @@ void SlaOutputDev::updateFont(GfxState *state)
return;
err2: