[arch-commits] Commit in scribus/trunk (PKGBUILD poppler-22.2.0.patch)

Evangelos Foutras foutrelis at gemini.archlinux.org
Wed Feb 2 10:32:44 UTC 2022


    Date: Wednesday, February 2, 2022 @ 10:32:44
  Author: foutrelis
Revision: 1122409

Fix build with poppler 22.2.0

Added:
  scribus/trunk/poppler-22.2.0.patch
Modified:
  scribus/trunk/PKGBUILD

----------------------+
 PKGBUILD             |   12 +++-
 poppler-22.2.0.patch |  131 +++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 141 insertions(+), 2 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2022-02-02 09:52:26 UTC (rev 1122408)
+++ PKGBUILD	2022-02-02 10:32:44 UTC (rev 1122409)
@@ -21,13 +21,21 @@
 optdepends=('tk: scripts based on tkinter'
             'hyphen-lang: hyphenation patterns for desired languages')
 options=(!lto)
-source=("https://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.xz"{,.asc})
+source=("https://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.xz"{,.asc}
+        poppler-22.2.0.patch)
 sha256sums=('47816e8fcf6d05788ff16aa4499f97ff22431c777a7789149b0a88b451e16b74'
-            'SKIP')
+            'SKIP'
+            '016ae42c6b33b78d579c62e19bee22c442c49baf452032f9fb62580327ca24e5')
 validpgpkeys=(5086B8D68E70FDDF4C40045AEF7B95E7F60166DA  # Peter Linnell <plinnell at scribus.net>
               757F5E9B13DD648887AD50092D47C099E782504E  # The Scribus Team (www.scribus.net) <the_scribus_team at scribus.net>
               6558BE84D27273A438A151198BEA48118AEBEE64) # Craig Bradney <cbradney at zipworld.com.au>
 
+prepare() {
+  cd ${pkgname}-${pkgver}
+  # https://bugs.scribus.net/view.php?id=16734
+  patch -Np1 -i ../poppler-22.2.0.patch
+}
+
 build() {
   cmake -B build -S ${pkgname}-${pkgver} \
     -DCMAKE_INSTALL_PREFIX=/usr \

Added: poppler-22.2.0.patch
===================================================================
--- poppler-22.2.0.patch	                        (rev 0)
+++ poppler-22.2.0.patch	2022-02-02 10:32:44 UTC (rev 1122409)
@@ -0,0 +1,131 @@
+diff -upr scribus-1.5.8.orig/scribus/plugins/import/pdf/slaoutput.cpp scribus-1.5.8/scribus/plugins/import/pdf/slaoutput.cpp
+--- scribus-1.5.8.orig/scribus/plugins/import/pdf/slaoutput.cpp	2022-01-23 18:16:01.000000000 +0200
++++ scribus-1.5.8/scribus/plugins/import/pdf/slaoutput.cpp	2022-02-02 12:21:07.441133975 +0200
+@@ -7,6 +7,8 @@ for which a new license (GPL+exception)
+ 
+ #include "slaoutput.h"
+ 
++#include <memory>
++#include <optional>
+ #include <poppler/GlobalParams.h>
+ #include <poppler/poppler-config.h>
+ #include <poppler/FileSpec.h>
+@@ -3027,14 +3029,19 @@ void SlaOutputDev::markPoint(POPPLER_CON
+ 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;
++#else
++	GfxFontLoc *fontLoc = nullptr;
++	GooString *fileName = nullptr;
++	FoFiTrueType *ff;
++#endif
+ 	GfxFontType fontType;
+ 	SlaOutFontFileID *id;
+ 	SplashFontFile *fontFile;
+ 	SplashFontSrc *fontsrc = nullptr;
+-	FoFiTrueType *ff;
+ 	Object refObj, strObj;
+-	GooString *fileName;
+ 	char *tmpBuf;
+ 	int tmpBufLen = 0;
+ 	int *codeToGID;
+@@ -3046,9 +3053,7 @@ void SlaOutputDev::updateFont(GfxState *
+ 	SplashCoord matrix[6];
+ 
+ 	m_font = nullptr;
+-	fileName = nullptr;
+ 	tmpBuf = nullptr;
+-	fontLoc = nullptr;
+ 
+ 	gfxFont = state->getFont();
+ 	if (!gfxFont)
+@@ -3083,7 +3088,11 @@ void SlaOutputDev::updateFont(GfxState *
+ 		}
+ 		else
+ 		{ // gfxFontLocExternal
++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0)
++			fileName = fontLoc->pathAsGooString();
++#else
+ 			fileName = fontLoc->path;
++#endif
+ 			fontType = fontLoc->fontType;
+ 		}
+ 
+@@ -3130,15 +3139,23 @@ void SlaOutputDev::updateFont(GfxState *
+ 			break;
+ 		case fontTrueType:
+ 		case fontTrueTypeOT:
++			{
++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0)
++			std::unique_ptr<FoFiTrueType> ff;
++#endif
+ 			if (fileName)
+ 				ff = FoFiTrueType::load(fileName->getCString());
+ 			else
+ 				ff = FoFiTrueType::make(tmpBuf, tmpBufLen);
+ 			if (ff)
+ 			{
++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0)
++				codeToGID = ((Gfx8BitFont *)gfxFont)->getCodeToGIDMap(ff.get());
++#else
+ 				codeToGID = ((Gfx8BitFont *)gfxFont)->getCodeToGIDMap(ff);
+-				n = 256;
+ 				delete ff;
++#endif
++				n = 256;
+ 			}
+ 			else
+ 			{
+@@ -3154,6 +3171,7 @@ void SlaOutputDev::updateFont(GfxState *
+ 				gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)");
+ 				goto err2;
+ 			}
++			}
+ 			break;
+ 		case fontCIDType0:
+ 		case fontCIDType0C:
+@@ -3203,14 +3221,21 @@ void SlaOutputDev::updateFont(GfxState *
+ 			}
+ 			else
+ 			{
++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0)
++				std::unique_ptr<FoFiTrueType> ff;
++#endif
+ 				if (fileName)
+ 					ff = FoFiTrueType::load(fileName->getCString());
+ 				else
+ 					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);
++#else
+ 				codeToGID = ((GfxCIDFont *)gfxFont)->getCodeToGIDMap(ff, &n);
+ 				delete ff;
++#endif
+ 			}
+ 			if (!(fontFile = m_fontEngine->loadTrueTypeFont(
+ 							id,
+@@ -3247,14 +3272,18 @@ void SlaOutputDev::updateFont(GfxState *
+ 	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();



More information about the arch-commits mailing list