diff --git a/0001-Fix-build-error-with-poppler-25.02.0.patch b/0001-Fix-build-error-with-poppler-25.02.0.patch new file mode 100644 index 0000000..76b753f --- /dev/null +++ b/0001-Fix-build-error-with-poppler-25.02.0.patch @@ -0,0 +1,201 @@ +From 1a22e78bc589ea0bdabf5ff2c4dea4d7d6f31402 Mon Sep 17 00:00:00 2001 +From: Jean Ghali +Date: Tue, 4 Feb 2025 21:41:03 +0000 +Subject: [PATCH] #17405: Fix build error with poppler 25.02.0 + +git-svn-id: svn://scribus.net/branches/Version16x/Scribus@26668 11d20701-8431-0410-a711-e3c959e3b870 +--- + scribus/plugins/import/pdf/importpdf.cpp | 4 +- + scribus/plugins/import/pdf/importpdfconfig.h | 6 ++ + scribus/plugins/import/pdf/slaoutput.cpp | 67 ++++++++++++++++++-- + 3 files changed, 68 insertions(+), 9 deletions(-) + +diff --git a/scribus/plugins/import/pdf/importpdf.cpp b/scribus/plugins/import/pdf/importpdf.cpp +index f87275c..a0a5cdf 100644 +--- a/scribus/plugins/import/pdf/importpdf.cpp ++++ b/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) +diff --git a/scribus/plugins/import/pdf/importpdfconfig.h b/scribus/plugins/import/pdf/importpdfconfig.h +index fd57f25..46ecc58 100644 +--- a/scribus/plugins/import/pdf/importpdfconfig.h ++++ b/scribus/plugins/import/pdf/importpdfconfig.h +@@ -27,4 +27,10 @@ for which a new license (GPL+exception) is in place. + #define POPPLER_CONST_083 + #endif + ++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(25, 2, 0) ++#define POPPLER_CONST_25_02 const ++#else ++#define POPPLER_CONST_25_02 ++#endif ++ + #endif +diff --git a/scribus/plugins/import/pdf/slaoutput.cpp b/scribus/plugins/import/pdf/slaoutput.cpp +index 2b8cf94..6f6bf5f 100644 +--- a/scribus/plugins/import/pdf/slaoutput.cpp ++++ b/scribus/plugins/import/pdf/slaoutput.cpp +@@ -1685,7 +1685,7 @@ void SlaOutputDev::stroke(GfxState *state) + + auto& graphicState = m_graphicStack.top(); + graphicState.strokeColor = getColor(state->getStrokeColorSpace(), state->getStrokeColor(), &graphicState.strokeShade); +- ++ + QString output = convertPath(state->getPath()); + if ((m_Elements->count() != 0) && (output == m_coords)) // Path is the same as in last fill + { +@@ -2393,8 +2393,9 @@ bool SlaOutputDev::tilingPatternFill(GfxState *state, Gfx * /*gfx*/, Catalog *ca + #endif + m_graphicStack.top().clipPath = savedClip; + m_inPattern--; +- gElements = m_groupStack.pop(); + m_doc->m_Selection->clear(); ++ ++ gElements = m_groupStack.pop(); + if (gElements.Items.count() > 0) + { + for (int dre = 0; dre < gElements.Items.count(); ++dre) +@@ -2932,7 +2933,7 @@ void SlaOutputDev::beginMarkedContent(const char *name, Object *dictRef) + { + if (dictRef->isNull()) + return; +- OCGs *contentConfig = m_catalog->getOptContentConfig(); ++ POPPLER_CONST_25_02 OCGs *contentConfig = m_catalog->getOptContentConfig(); + OptionalContentGroup *oc; + if (dictRef->isRef()) + { +@@ -3084,7 +3085,11 @@ void SlaOutputDev::updateFont(GfxState *state) + #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 codeToGID; ++#else + int *codeToGID = nullptr; ++#endif + const double *textMat = nullptr; + double m11, m12, m21, m22, fontSize; + SplashCoord mat[4] = { 1.0, 0.0, 0.0, 1.0 }; +@@ -3244,10 +3249,20 @@ 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)"); +@@ -3278,6 +3293,18 @@ void SlaOutputDev::updateFont(GfxState *state) + #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()) + { + n = ((GfxCIDFont *) gfxFont)->getCIDToGIDLen(); +@@ -3289,7 +3316,15 @@ 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}'", +@@ -3307,6 +3342,15 @@ void SlaOutputDev::updateFont(GfxState *state) + break; + case fontCIDType2: + case fontCIDType2OT: ++#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()) +@@ -3318,6 +3362,7 @@ void SlaOutputDev::updateFont(GfxState *state) + memcpy(codeToGID, ((GfxCIDFont *)gfxFont)->getCIDToGID(), n * sizeof(*codeToGID)); + } + } ++#endif + else + { + #if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 11, 0) +@@ -3338,7 +3383,9 @@ void SlaOutputDev::updateFont(GfxState *state) + #endif + if (! ff) + goto err2; +-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0) ++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(25, 2, 0) ++ codeToGID = ((GfxCIDFont*) gfxFont)->getCodeToGIDMap(ff.get()); ++#elif POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0) + codeToGID = ((GfxCIDFont*) gfxFont)->getCodeToGIDMap(ff.get(), &n); + ff.reset(); + #else +@@ -3346,7 +3393,13 @@ void SlaOutputDev::updateFont(GfxState *state) + 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)"); +-- +2.48.1 + diff --git a/scribus.changes b/scribus.changes index d63a90b..e66bca8 100644 --- a/scribus.changes +++ b/scribus.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Sun Feb 16 09:05:59 UTC 2025 - Bjørn Lie + +- Add 0001-Fix-build-error-with-poppler-25.02.0.patch: Fix build + with poppler 25.02.0. + ------------------------------------------------------------------- Thu Jan 9 18:00:48 UTC 2025 - Christophe Marin diff --git a/scribus.spec b/scribus.spec index f4ec846..fc17307 100644 --- a/scribus.spec +++ b/scribus.spec @@ -41,6 +41,8 @@ Source2: scribus.keyring %endif # PATCH-FIX-OPENSUSE Patch0: 0001-Make-sure-information-displayed-on-the-about-window-.patch +# PATCH-FIX-UPSTREAM +Patch1: 0001-Fix-build-error-with-poppler-25.02.0.patch BuildRequires: cmake >= 3.14.0 BuildRequires: cups-devel BuildRequires: dos2unix