File 0001-Failure-to-build-with-poppler-25.09.0.patch of Package scribus
From a226fe1d0852c6945a3b44e8661e641339752685 Mon Sep 17 00:00:00 2001
From: Jean Ghali <jghali@libertysurf.fr>
Date: Wed, 3 Sep 2025 14:57:57 +0000
Subject: [PATCH] #17613: Failure to build with poppler 25.09.0
git-svn-id: svn://scribus.net/branches/Version16x/Scribus@27006 11d20701-8431-0410-a711-e3c959e3b870
---
scribus/plugins/import/pdf/slaoutput.cpp | 40 +++++++++++++++++++++---
scribus/plugins/import/pdf/slaoutput.h | 16 +++++++++-
2 files changed, 50 insertions(+), 6 deletions(-)
diff --git a/scribus/plugins/import/pdf/slaoutput.cpp b/scribus/plugins/import/pdf/slaoutput.cpp
index 3a8cb52..4a71f82 100644
--- a/scribus/plugins/import/pdf/slaoutput.cpp
+++ b/scribus/plugins/import/pdf/slaoutput.cpp
@@ -1480,14 +1480,22 @@ void SlaOutputDev::restoreState(GfxState *state)
m_graphicStack.restore();
}
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(25, 9, 0)
+void SlaOutputDev::beginTransparencyGroup(GfxState *state, const std::array<double, 4>& bbox, GfxColorSpace * /*blendingColorSpace*/, bool isolated, bool knockout, bool forSoftMask)
+#else
void SlaOutputDev::beginTransparencyGroup(GfxState *state, const double *bbox, GfxColorSpace * /*blendingColorSpace*/, bool isolated, bool knockout, bool forSoftMask)
+#endif
{
// qDebug() << "SlaOutputDev::beginTransparencyGroup isolated:" << isolated << "knockout:" << knockout << "forSoftMask:" << forSoftMask;
pushGroup("", forSoftMask);
m_groupStack.top().isolated = isolated;
}
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(25, 9, 0)
+void SlaOutputDev::paintTransparencyGroup(GfxState *state, const std::array<double, 4>& bbox)
+#else
void SlaOutputDev::paintTransparencyGroup(GfxState *state, const double *bbox)
+#endif
{
// qDebug() << "SlaOutputDev::paintTransparencyGroup";
if (m_groupStack.count() != 0)
@@ -1586,7 +1594,11 @@ void SlaOutputDev::endTransparencyGroup(GfxState *state)
m_tmpSel->clear();
}
-void SlaOutputDev::setSoftMask(GfxState * /*state*/, const double * bbox, bool alpha, Function *transferFunc, GfxColor * /*backdropColor*/)
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(25, 9, 0)
+void SlaOutputDev::setSoftMask(GfxState* /*state*/, const std::array<double, 4>& bbox, bool alpha, Function* transferFunc, GfxColor* /*backdropColor*/)
+#else
+void SlaOutputDev::setSoftMask(GfxState* /*state*/, const double* bbox, bool alpha, Function* transferFunc, GfxColor* /*backdropColor*/)
+#endif
{
if (m_groupStack.count() <= 0)
return;
@@ -2341,14 +2353,20 @@ bool SlaOutputDev::patchMeshShadedFill(GfxState *state, GfxPatchMeshShading *sha
return true;
}
-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(21, 3, 0)
-bool SlaOutputDev::tilingPatternFill(GfxState *state, Gfx * /*gfx*/, Catalog *cat, GfxTilingPattern *tPat, const double *mat, int x0, int y0, int x1, int y1, double xStep, double yStep)
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(25, 9, 0)
+bool SlaOutputDev::tilingPatternFill(GfxState *state, Gfx* /*gfx*/, Catalog *cat, GfxTilingPattern *tPat, const std::array<double, 6>& mat, int x0, int y0, int x1, int y1, double xStep, double yStep)
+#elif POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(21, 3, 0)
+bool SlaOutputDev::tilingPatternFill(GfxState *state, Gfx* /*gfx*/, Catalog *cat, GfxTilingPattern *tPat, const double *mat, int x0, int y0, int x1, int y1, double xStep, double yStep)
#else
-bool SlaOutputDev::tilingPatternFill(GfxState *state, Gfx * /*gfx*/, Catalog *cat, Object *str, const double *pmat, int /*paintType*/, int /*tilingType*/, Dict *resDict, const double *mat, const double *bbox, int x0, int y0, int x1, int y1, double xStep, double yStep)
+bool SlaOutputDev::tilingPatternFill(GfxState *state, Gfx* /*gfx*/, Catalog *cat, Object *str, const double *pmat, int /*paintType*/, int /*tilingType*/, Dict *resDict, const double *mat, const double *bbox, int x0, int y0, int x1, int y1, double xStep, double yStep)
#endif
{
// qDebug() << "SlaOutputDev::tilingPatternFill";
-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(21, 3, 0)
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(25, 9, 0)
+ const std::array<double, 4>& bbox = tPat->getBBox();
+ const std::array<double, 6>& pmat = tPat->getMatrix();
+ Dict *resDict = tPat->getResDict();
+#elif POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(21, 3, 0)
const double *bbox = tPat->getBBox();
const double *pmat = tPat->getMatrix();
Dict *resDict = tPat->getResDict();
@@ -3835,7 +3853,11 @@ QString SlaOutputDev::getAnnotationColor(const AnnotColor *color)
return CommonStrings::None;
if (color->getSpace() == AnnotColor::colorRGB)
{
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(25, 9, 0)
+ const std::array<double, 4>& color_data = color->getValues();
+#else
const double *color_data = color->getValues();
+#endif
double Rc = color_data[0];
double Gc = color_data[1];
double Bc = color_data[2];
@@ -3844,7 +3866,11 @@ QString SlaOutputDev::getAnnotationColor(const AnnotColor *color)
}
else if (color->getSpace() == AnnotColor::colorCMYK)
{
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(25, 9, 0)
+ const std::array<double, 4>& color_data = color->getValues();
+#else
const double *color_data = color->getValues();
+#endif
double Cc = color_data[0];
double Mc = color_data[1];
double Yc = color_data[2];
@@ -3854,7 +3880,11 @@ QString SlaOutputDev::getAnnotationColor(const AnnotColor *color)
}
else if (color->getSpace() == AnnotColor::colorGray)
{
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(25, 9, 0)
+ const std::array<double, 4>& color_data = color->getValues();
+#else
const double *color_data = color->getValues();
+#endif
double Kc = 1.0 - color_data[0];
tmp.setCmykColorF(0, 0, 0, Kc);
fNam = m_doc->PageColors.tryAddColor(namPrefix+tmp.name(), tmp);
diff --git a/scribus/plugins/import/pdf/slaoutput.h b/scribus/plugins/import/pdf/slaoutput.h
index 36125e2..73b5ac2 100644
--- a/scribus/plugins/import/pdf/slaoutput.h
+++ b/scribus/plugins/import/pdf/slaoutput.h
@@ -20,6 +20,7 @@ for which a new license (GPL+exception) is in place.
#include <QTextStream>
#include <QTransform>
+#include <array>
#include <memory>
#include "fpointarray.h"
@@ -199,7 +200,10 @@ public:
void stroke(GfxState *state) override;
void fill(GfxState *state) override;
void eoFill(GfxState *state) override;
-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(21, 3, 0)
+
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(25, 9, 0)
+ bool tilingPatternFill(GfxState *state, Gfx *gfx, Catalog *cat, GfxTilingPattern *tPat, const std::array<double, 6>& mat, int x0, int y0, int x1, int y1, double xStep, double yStep) override;
+#elif POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(21, 3, 0)
bool tilingPatternFill(GfxState *state, Gfx *gfx, Catalog *cat, GfxTilingPattern *tPat, const double *mat, int x0, int y0, int x1, int y1, double xStep, double yStep) override;
#else
bool tilingPatternFill(GfxState *state, Gfx *gfx, Catalog *cat, Object *str, const double *pmat, int paintType, int tilingType, Dict *resDict, const double *mat, const double *bbox, int x0, int y0, int x1, int y1, double xStep, double yStep) override;
@@ -262,10 +266,20 @@ public:
bool maskInvert, bool maskInterpolate) override;
//----- transparency groups and soft masks
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(25, 9, 0)
+ void beginTransparencyGroup(GfxState *state, const std::array<double, 4>& bbox, GfxColorSpace* /*blendingColorSpace*/, bool /*isolated*/, bool /*knockout*/, bool /*forSoftMask*/) override;
+ void paintTransparencyGroup(GfxState *state, const std::array<double, 4>& bbox) override;
+#else
void beginTransparencyGroup(GfxState *state, const double *bbox, GfxColorSpace * /*blendingColorSpace*/, bool /*isolated*/, bool /*knockout*/, bool /*forSoftMask*/) override;
void paintTransparencyGroup(GfxState *state, const double *bbox) override;
+#endif
void endTransparencyGroup(GfxState *state) override;
+
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(25, 9, 0)
+ void setSoftMask(GfxState * /*state*/, const std::array<double, 4> & /*bbox*/, bool /*alpha*/, Function * /*transferFunc*/, GfxColor * /*backdropColor*/) override;
+#else
void setSoftMask(GfxState * /*state*/, const double * /*bbox*/, bool /*alpha*/, Function * /*transferFunc*/, GfxColor * /*backdropColor*/) override;
+#endif
void clearSoftMask(GfxState * /*state*/) override;
void updateFillColor(GfxState *state) override;
--
2.51.0