summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiroslav Šulc <fordfrog@gentoo.org>2022-02-10 20:37:43 +0100
committerMiroslav Šulc <fordfrog@gentoo.org>2022-02-10 20:37:43 +0100
commita7e4e34c72ef8b2df011b995ba3c85fac10a5394 (patch)
tree521f390e276d8fc086f14ed5e24e4b9a97adeeec
parentx11-misc/xautolock: drop project desktop-misc (diff)
downloadgentoo-a7e4e34c72ef8b2df011b995ba3c85fac10a5394.tar.gz
gentoo-a7e4e34c72ef8b2df011b995ba3c85fac10a5394.tar.bz2
gentoo-a7e4e34c72ef8b2df011b995ba3c85fac10a5394.zip
app-office/scribus: added patches for poppler 2.22.0
Bug: https://bugs.gentoo.org/833086 Package-Manager: Portage-3.0.30, Repoman-3.0.3 Signed-off-by: Miroslav Šulc <fordfrog@gentoo.org>
-rw-r--r--app-office/scribus/files/scribus-1.5.8-poppler-22.2.0-1.patch129
-rw-r--r--app-office/scribus/files/scribus-1.5.8-poppler-22.2.0-2.patch28
-rw-r--r--app-office/scribus/scribus-1.5.8.ebuild2
3 files changed, 159 insertions, 0 deletions
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 <jghali@libertysurf.fr>
+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 <memory>
++#include <optional>
++#endif
++
+ #include <poppler/GlobalParams.h>
+ #include <poppler/poppler-config.h>
+ #include <poppler/FileSpec.h>
+@@ -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<GfxFontLoc> fontLoc;
++ const GooString * fileName = nullptr;
++ std::unique_ptr<FoFiTrueType> 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 <jghali@libertysurf.fr>
+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"