From a7e4e34c72ef8b2df011b995ba3c85fac10a5394 Mon Sep 17 00:00:00 2001 From: Miroslav Šulc Date: Thu, 10 Feb 2022 20:37:43 +0100 Subject: app-office/scribus: added patches for poppler 2.22.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bug: https://bugs.gentoo.org/833086 Package-Manager: Portage-3.0.30, Repoman-3.0.3 Signed-off-by: Miroslav Šulc --- .../files/scribus-1.5.8-poppler-22.2.0-1.patch | 129 +++++++++++++++++++++ .../files/scribus-1.5.8-poppler-22.2.0-2.patch | 28 +++++ app-office/scribus/scribus-1.5.8.ebuild | 2 + 3 files changed, 159 insertions(+) create mode 100644 app-office/scribus/files/scribus-1.5.8-poppler-22.2.0-1.patch create mode 100644 app-office/scribus/files/scribus-1.5.8-poppler-22.2.0-2.patch (limited to 'app-office/scribus') diff --git a/app-office/scribus/files/scribus-1.5.8-poppler-22.2.0-1.patch b/app-office/scribus/files/scribus-1.5.8-poppler-22.2.0-1.patch new file mode 100644 index 000000000000..4e0f607c6a07 --- /dev/null +++ b/app-office/scribus/files/scribus-1.5.8-poppler-22.2.0-1.patch @@ -0,0 +1,129 @@ +From 85c0dff3422fa3c26fbc2e8d8561f597ec24bd92 Mon Sep 17 00:00:00 2001 +From: Jean Ghali +Date: Wed, 2 Feb 2022 23:12:52 +0000 +Subject: [PATCH] #16734: Build break with poppler 22.2.0 + +git-svn-id: svn://scribus.net/trunk/Scribus@24884 11d20701-8431-0410-a711-e3c959e3b870 +--- + scribus/plugins/import/pdf/slaoutput.cpp | 47 +++++++++++++++++++----- + 1 file changed, 37 insertions(+), 10 deletions(-) + +diff --git a/scribus/plugins/import/pdf/slaoutput.cpp b/scribus/plugins/import/pdf/slaoutput.cpp +index 5894bf2ad6..3650c96f52 100644 +--- a/scribus/plugins/import/pdf/slaoutput.cpp ++++ b/scribus/plugins/import/pdf/slaoutput.cpp +@@ -7,6 +7,11 @@ for which a new license (GPL+exception) is in place. + + #include "slaoutput.h" + ++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0) ++#include ++#include ++#endif ++ + #include + #include + #include +@@ -3027,18 +3032,24 @@ void SlaOutputDev::markPoint(POPPLER_CONST char *name, Dict *properties) + void SlaOutputDev::updateFont(GfxState *state) + { + GfxFont *gfxFont; +- GfxFontLoc *fontLoc; ++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0) ++ std::optional fontLoc; ++ const GooString * fileName = nullptr; ++ std::unique_ptr ff; ++#else ++ GfxFontLoc * fontLoc = nullptr; ++ GooString * fileName = nullptr; ++ FoFiTrueType * ff = nullptr; ++#endif + GfxFontType fontType; + SlaOutFontFileID *id; + SplashFontFile *fontFile; + SplashFontSrc *fontsrc = nullptr; +- FoFiTrueType *ff; + Object refObj, strObj; +- GooString *fileName; +- char *tmpBuf; ++ char *tmpBuf = nullptr; + int tmpBufLen = 0; +- int *codeToGID; +- const double *textMat; ++ int *codeToGID = nullptr; ++ const double *textMat = nullptr; + double m11, m12, m21, m22, fontSize; + SplashCoord mat[4]; + int n = 0; +@@ -3046,9 +3057,6 @@ void SlaOutputDev::updateFont(GfxState *state) + SplashCoord matrix[6]; + + m_font = nullptr; +- fileName = nullptr; +- tmpBuf = nullptr; +- fontLoc = nullptr; + + gfxFont = state->getFont(); + if (!gfxFont) +@@ -3083,7 +3091,11 @@ void SlaOutputDev::updateFont(GfxState *state) + } + else + { // gfxFontLocExternal ++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0) ++ fileName = fontLoc->pathAsGooString(); ++#else + fileName = fontLoc->path; ++#endif + fontType = fontLoc->fontType; + } + +@@ -3136,9 +3148,14 @@ void SlaOutputDev::updateFont(GfxState *state) + ff = FoFiTrueType::make(tmpBuf, tmpBufLen); + if (ff) + { ++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0) ++ codeToGID = ((Gfx8BitFont*) gfxFont)->getCodeToGIDMap(ff.get()); ++ ff.reset(); ++#else + codeToGID = ((Gfx8BitFont *)gfxFont)->getCodeToGIDMap(ff); +- n = 256; + delete ff; ++#endif ++ n = 256; + } + else + { +@@ -3209,8 +3226,13 @@ void SlaOutputDev::updateFont(GfxState *state) + ff = FoFiTrueType::make(tmpBuf, tmpBufLen); + if (! ff) + goto err2; ++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0) ++ codeToGID = ((GfxCIDFont*) gfxFont)->getCodeToGIDMap(ff.get(), &n); ++ ff.reset(); ++#else + codeToGID = ((GfxCIDFont *)gfxFont)->getCodeToGIDMap(ff, &n); + delete ff; ++#endif + } + if (!(fontFile = m_fontEngine->loadTrueTypeFont( + id, +@@ -3247,14 +3269,19 @@ void SlaOutputDev::updateFont(GfxState *state) + mat[3] = -m22; + m_font = m_fontEngine->getFont(fontFile, mat, matrix); + ++#if POPPLER_ENCODED_VERSION < POPPLER_VERSION_ENCODE(22, 2, 0) + delete fontLoc; ++#endif + if (fontsrc && !fontsrc->isFile) + fontsrc->unref(); + return; + + err2: + delete id; ++#if POPPLER_ENCODED_VERSION < POPPLER_VERSION_ENCODE(22, 2, 0) + delete fontLoc; ++#endif ++ + err1: + if (fontsrc && !fontsrc->isFile) + fontsrc->unref(); diff --git a/app-office/scribus/files/scribus-1.5.8-poppler-22.2.0-2.patch b/app-office/scribus/files/scribus-1.5.8-poppler-22.2.0-2.patch new file mode 100644 index 000000000000..73beac2d70d0 --- /dev/null +++ b/app-office/scribus/files/scribus-1.5.8-poppler-22.2.0-2.patch @@ -0,0 +1,28 @@ +From f75c1613db67f4067643d0218a2db3235e42ec9f Mon Sep 17 00:00:00 2001 +From: Jean Ghali +Date: Thu, 3 Feb 2022 19:46:13 +0000 +Subject: [PATCH] Small update vs latest code in poppler + +git-svn-id: svn://scribus.net/trunk/Scribus@24885 11d20701-8431-0410-a711-e3c959e3b870 +--- + scribus/plugins/import/pdf/slaoutput.cpp | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/scribus/plugins/import/pdf/slaoutput.cpp b/scribus/plugins/import/pdf/slaoutput.cpp +index 3650c96f52..a6f4e00fa9 100644 +--- a/scribus/plugins/import/pdf/slaoutput.cpp ++++ b/scribus/plugins/import/pdf/slaoutput.cpp +@@ -3072,10 +3072,10 @@ void SlaOutputDev::updateFont(GfxState *state) + delete id; + else + { +- if (!(fontLoc = gfxFont->locateFont(xref, nullptr))) ++ fontLoc = gfxFont->locateFont((xref) ? xref : pdfDoc->getXRef(), nullptr); ++ if (!fontLoc) + { +- error(errSyntaxError, -1, "Couldn't find a font for '{0:s}'", +- gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)"); ++ error(errSyntaxError, -1, "Couldn't find a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)"); + goto err2; + } + diff --git a/app-office/scribus/scribus-1.5.8.ebuild b/app-office/scribus/scribus-1.5.8.ebuild index 472e6c130552..506619d80133 100644 --- a/app-office/scribus/scribus-1.5.8.ebuild +++ b/app-office/scribus/scribus-1.5.8.ebuild @@ -76,6 +76,8 @@ PATCHES=( "${FILESDIR}"/${PN}-1.5.6-docdir.patch "${FILESDIR}"/${PN}-1.5.8-findhyphen-1.patch "${FILESDIR}"/${PN}-1.5.6-findhyphen.patch + "${FILESDIR}"/${PN}-1.5.8-poppler-22.2.0-1.patch + "${FILESDIR}"/${PN}-1.5.8-poppler-22.2.0-2.patch ) CMAKE_BUILD_TYPE="Release" -- cgit v1.2.3-65-gdbad