diff options
author | Miroslav Šulc <fordfrog@gentoo.org> | 2022-02-10 20:37:43 +0100 |
---|---|---|
committer | Miroslav Šulc <fordfrog@gentoo.org> | 2022-02-10 20:37:43 +0100 |
commit | a7e4e34c72ef8b2df011b995ba3c85fac10a5394 (patch) | |
tree | 521f390e276d8fc086f14ed5e24e4b9a97adeeec | |
parent | x11-misc/xautolock: drop project desktop-misc (diff) | |
download | gentoo-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.patch | 129 | ||||
-rw-r--r-- | app-office/scribus/files/scribus-1.5.8-poppler-22.2.0-2.patch | 28 | ||||
-rw-r--r-- | app-office/scribus/scribus-1.5.8.ebuild | 2 |
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" |