public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Sam James" <sam@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: app-office/scribus/, app-office/scribus/files/
Date: Sun,  8 May 2022 18:01:02 +0000 (UTC)	[thread overview]
Message-ID: <1652032812.65615103763c15420ea24f0781626384dcbc83d7.sam@gentoo> (raw)

commit:     65615103763c15420ea24f0781626384dcbc83d7
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sun May  8 17:58:53 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun May  8 18:00:12 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=65615103

app-office/scribus: fix build with Poppler 22.04.0

Closes: https://bugs.gentoo.org/843287
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../files/scribus-1.5.8-poppler-22.04.0.patch      | 291 +++++++++++++++++++++
 ...scribus-9999.ebuild => scribus-1.5.8-r1.ebuild} |  18 +-
 app-office/scribus/scribus-9999.ebuild             |   2 +-
 3 files changed, 303 insertions(+), 8 deletions(-)

diff --git a/app-office/scribus/files/scribus-1.5.8-poppler-22.04.0.patch b/app-office/scribus/files/scribus-1.5.8-poppler-22.04.0.patch
new file mode 100644
index 000000000000..290484e7e872
--- /dev/null
+++ b/app-office/scribus/files/scribus-1.5.8-poppler-22.04.0.patch
@@ -0,0 +1,291 @@
+https://bugs.gentoo.org/843287
+https://github.com/scribusproject/scribus/commit/f2237b8f0b5cf7690e864a22ef7a63a6d769fa36.patch
+
+From f2237b8f0b5cf7690e864a22ef7a63a6d769fa36 Mon Sep 17 00:00:00 2001
+From: Jean Ghali <jghali@libertysurf.fr>
+Date: Fri, 1 Apr 2022 23:52:32 +0000
+Subject: [PATCH] Fix build with poppler 22.04.0
+
+git-svn-id: svn://scribus.net/trunk/Scribus@25074 11d20701-8431-0410-a711-e3c959e3b870
+---
+ scribus/plugins/import/pdf/slaoutput.cpp | 123 ++++++++++++++---------
+ 1 file changed, 78 insertions(+), 45 deletions(-)
+
+diff --git a/scribus/plugins/import/pdf/slaoutput.cpp b/scribus/plugins/import/pdf/slaoutput.cpp
+index e20a81f99e..5626fe3477 100644
+--- a/scribus/plugins/import/pdf/slaoutput.cpp
++++ b/scribus/plugins/import/pdf/slaoutput.cpp
+@@ -174,8 +174,13 @@ void AnoOutputDev::drawString(GfxState *state, POPPLER_CONST GooString *s)
+ 	int shade = 100;
+ 	currColorText = getColor(state->getFillColorSpace(), state->getFillColor(), &shade);
+ 	fontSize = state->getFontSize();
++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0)
++	if (state->getFont() && state->getFont()->getName())
++		fontName = new GooString(state->getFont()->getName().value());
++#else
+ 	if (state->getFont())
+ 		fontName = state->getFont()->getName()->copy();
++#endif
+ 	itemText = s->copy();
+ }
+ 
+@@ -357,7 +362,12 @@ std::unique_ptr<LinkAction> SlaOutputDev::SC_getAdditionalAction(const char *key
+ GBool SlaOutputDev::annotations_callback(Annot *annota, void *user_data)
+ {
+ 	SlaOutputDev *dev = (SlaOutputDev*)user_data;
++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0)
++	const PDFRectangle& annotRect = annota->getRect();;
++	const PDFRectangle* box = &annotRect;
++#else
+ 	PDFRectangle *box = annota->getRect();
++#endif
+ 	double xCoor = dev->m_doc->currentPage()->xOffset() + box->x1 - dev->cropOffsetX;
+ 	double yCoor = dev->m_doc->currentPage()->yOffset() + dev->m_doc->currentPage()->height() - box->y2 + dev->cropOffsetY;
+ 	double width = box->x2 - box->x1;
+@@ -684,7 +694,12 @@ bool SlaOutputDev::handleWidgetAnnot(Annot* annota, double xCoor, double yCoor,
+ 			if (apa || !achar)
+ 			{
+ 				AnoOutputDev *annotOutDev = new AnoOutputDev(m_doc, m_importedColors);
++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0)
++				const PDFRectangle& annotaRect = annota->getRect();
++				Gfx* gfx = new Gfx(pdfDoc, annotOutDev, pdfDoc->getPage(m_actPage)->getResourceDict(), &annotaRect, nullptr);
++#else
+ 				Gfx *gfx = new Gfx(pdfDoc, annotOutDev, pdfDoc->getPage(m_actPage)->getResourceDict(), annota->getRect(), nullptr);
++#endif
+ 				ano->draw(gfx, false);
+ 				if (!bgFound)
+ 					m_currColorFill = annotOutDev->currColorFill;
+@@ -2916,22 +2931,27 @@ void SlaOutputDev::markPoint(POPPLER_CONST char *name, Dict *properties)
+ 
+ void SlaOutputDev::updateFont(GfxState *state)
+ {
+-	GfxFont *gfxFont;
+-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0)
++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0)
++	std::optional<GfxFontLoc> fontLoc;
++	std::string fileName;
++	std::unique_ptr<FoFiTrueType> ff;
++	std::optional<std::vector<unsigned char>> tmpBuf;
++#elif POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0)
+ 	std::optional<GfxFontLoc> fontLoc;
+ 	const GooString * fileName = nullptr;
+ 	std::unique_ptr<FoFiTrueType> ff;
++	char* tmpBuf = nullptr;
+ #else
+ 	GfxFontLoc * fontLoc = nullptr;
+ 	GooString * fileName = nullptr;
+ 	FoFiTrueType * ff = nullptr;
++	char* tmpBuf = nullptr;
+ #endif
+ 	GfxFontType fontType;
+ 	SlaOutFontFileID *id;
+ 	SplashFontFile *fontFile;
+ 	SplashFontSrc *fontsrc = nullptr;
+ 	Object refObj, strObj;
+-	char *tmpBuf = nullptr;
+ 	int tmpBufLen = 0;
+ 	int *codeToGID = nullptr;
+ 	const double *textMat = nullptr;
+@@ -2943,7 +2963,11 @@ void SlaOutputDev::updateFont(GfxState *state)
+ 
+ 	m_font = nullptr;
+ 
+-	gfxFont = state->getFont();
++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0)
++	GfxFont* gfxFont = state->getFont().get();
++#else
++	GfxFont* gfxFont = state->getFont();
++#endif
+ 	if (!gfxFont)
+ 		goto err1;
+ 
+@@ -2968,15 +2992,23 @@ void SlaOutputDev::updateFont(GfxState *state)
+ 		if (fontLoc->locType == gfxFontLocEmbedded)
+ 		{
+ 			// if there is an embedded font, read it to memory
+-			tmpBuf = gfxFont->readEmbFontFile(xref, &tmpBufLen);
++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0)
++			tmpBuf = gfxFont->readEmbFontFile((xref) ? xref : pdfDoc->getXRef());
+ 			if (! tmpBuf)
+ 				goto err2;
++#else
++			tmpBuf = gfxFont->readEmbFontFile(xref, &tmpBufLen);
++			if (!tmpBuf)
++				goto err2;
++#endif
+ 
+ 			// external font
+ 		}
+ 		else
+ 		{ // gfxFontLocExternal
+-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0)
++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0)
++			fileName = fontLoc->path;
++#elif POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0)
+ 			fileName = fontLoc->pathAsGooString();
+ #else
+ 			fileName = fontLoc->path;
+@@ -2985,52 +3017,54 @@ void SlaOutputDev::updateFont(GfxState *state)
+ 		}
+ 
+ 		fontsrc = new SplashFontSrc;
++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0)
++		if (!fileName.empty())
++			fontsrc->setFile(fileName);
++		else
++			fontsrc->setBuf(std::move(tmpBuf.value()));
++#else
+ 		if (fileName)
+ 			fontsrc->setFile(fileName, gFalse);
+ 		else
+ 			fontsrc->setBuf(tmpBuf, tmpBufLen, gTrue);
++#endif
+ 
+ 		// load the font file
+ 		switch (fontType) {
+ 		case fontType1:
+-			if (!(fontFile = m_fontEngine->loadType1Font(
+-				id,
+-				fontsrc,
+-				(const char **)((Gfx8BitFont *) gfxFont)->getEncoding())))
++			if (!(fontFile = m_fontEngine->loadType1Font(id, fontsrc, (const char **)((Gfx8BitFont *) gfxFont)->getEncoding())))
+ 			{
+-				error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'",
+-				gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)");
++				error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)");
+ 				goto err2;
+ 			}
+ 			break;
+ 		case fontType1C:
+-			if (!(fontFile = m_fontEngine->loadType1CFont(
+-							id,
+-							fontsrc,
+-							(const char **)((Gfx8BitFont *) gfxFont)->getEncoding())))
++			if (!(fontFile = m_fontEngine->loadType1CFont(id, fontsrc, (const char **)((Gfx8BitFont *) gfxFont)->getEncoding())))
+ 			{
+-				error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'",
+-				gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)");
++				error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)");
+ 				goto err2;
+ 			}
+ 			break;
+ 		case fontType1COT:
+-			if (!(fontFile = m_fontEngine->loadOpenTypeT1CFont(
+-							id,
+-							fontsrc,
+-							(const char **)((Gfx8BitFont *) gfxFont)->getEncoding())))
++			if (!(fontFile = m_fontEngine->loadOpenTypeT1CFont(id, fontsrc, (const char **)((Gfx8BitFont *) gfxFont)->getEncoding())))
+ 			{
+-				error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'",
+-				gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)");
++				error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)");
+ 				goto err2;
+ 			}
+ 			break;
+ 		case fontTrueType:
+ 		case fontTrueTypeOT:
++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0)
++			if (!fileName.empty())
++				ff = FoFiTrueType::load(fileName.c_str());
++			else
++				ff = FoFiTrueType::make(fontsrc->buf.data(), fontsrc->buf.size());
++#else
+ 			if (fileName)
+ 				ff = FoFiTrueType::load(fileName->getCString());
+ 			else
+ 				ff = FoFiTrueType::make(tmpBuf, tmpBufLen);
++#endif
+ 			if (ff)
+ 			{
+ #if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0)
+@@ -3047,24 +3081,17 @@ void SlaOutputDev::updateFont(GfxState *state)
+ 				codeToGID = nullptr;
+ 				n = 0;
+ 			}
+-			if (!(fontFile = m_fontEngine->loadTrueTypeFont(
+-							id,
+-							fontsrc,
+-							codeToGID, n)))
++			if (!(fontFile = m_fontEngine->loadTrueTypeFont(id, fontsrc, codeToGID, n)))
+ 			{
+-				error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'",
+-				gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)");
++				error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)");
+ 				goto err2;
+ 			}
+ 			break;
+ 		case fontCIDType0:
+ 		case fontCIDType0C:
+-			if (!(fontFile = m_fontEngine->loadCIDFont(
+-							id,
+-							fontsrc)))
++			if (!(fontFile = m_fontEngine->loadCIDFont(id, fontsrc)))
+ 			{
+-				error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'",
+-				gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)");
++				error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)");
+ 				goto err2;
+ 			}
+ 			break;
+@@ -3080,10 +3107,7 @@ void SlaOutputDev::updateFont(GfxState *state)
+ 				codeToGID = nullptr;
+ 				n = 0;
+ 			}
+-			if (!(fontFile = m_fontEngine->loadOpenTypeCFFFont(
+-							id,
+-							fontsrc,
+-							codeToGID, n)))
++			if (!(fontFile = m_fontEngine->loadOpenTypeCFFFont(id, fontsrc, codeToGID, n)))
+ 			{
+ 				error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'",
+ 				gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)");
+@@ -3105,10 +3129,17 @@ void SlaOutputDev::updateFont(GfxState *state)
+ 			}
+ 			else
+ 			{
++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0)
++				if (!fileName.empty())
++					ff = FoFiTrueType::load(fileName.c_str());
++				else
++					ff = FoFiTrueType::make(fontsrc->buf.data(), fontsrc->buf.size());
++#else
+ 				if (fileName)
+ 					ff = FoFiTrueType::load(fileName->getCString());
+ 				else
+ 					ff = FoFiTrueType::make(tmpBuf, tmpBufLen);
++#endif
+ 				if (! ff)
+ 					goto err2;
+ #if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0)
+@@ -3119,13 +3150,9 @@ void SlaOutputDev::updateFont(GfxState *state)
+ 				delete ff;
+ #endif
+ 			}
+-			if (!(fontFile = m_fontEngine->loadTrueTypeFont(
+-							id,
+-							fontsrc,
+-							codeToGID, n, faceIndex)))
++			if (!(fontFile = m_fontEngine->loadTrueTypeFont(id, fontsrc, codeToGID, n, faceIndex)))
+ 			{
+-				error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'",
+-				gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)");
++				error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)");
+ 				goto err2;
+ 			}
+ 			break;
+@@ -3269,9 +3296,15 @@ void SlaOutputDev::drawChar(GfxState* state, double x, double y, double dx, doub
+ GBool SlaOutputDev::beginType3Char(GfxState *state, double x, double y, double dx, double dy, CharCode code, POPPLER_CONST_082 Unicode *u, int uLen)
+ {
+ //	qDebug() << "beginType3Char";
++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0)
+ 	GfxFont *gfxFont;
++	if (!(gfxFont = state->getFont().get()))
++		return gTrue;
++#else
++	GfxFont* gfxFont;
+ 	if (!(gfxFont = state->getFont()))
+ 		return gTrue;
++#endif
+ 	if (gfxFont->getType() != fontType3)
+ 		return gTrue;
+ 	F3Entry f3e;

diff --git a/app-office/scribus/scribus-9999.ebuild b/app-office/scribus/scribus-1.5.8-r1.ebuild
similarity index 89%
copy from app-office/scribus/scribus-9999.ebuild
copy to app-office/scribus/scribus-1.5.8-r1.ebuild
index b8abdb6f421f..d54fc9affaaa 100644
--- a/app-office/scribus/scribus-9999.ebuild
+++ b/app-office/scribus/scribus-1.5.8-r1.ebuild
@@ -1,21 +1,19 @@
 # Copyright 1999-2022 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
-EAPI=7
+EAPI=8
 
 PYTHON_COMPAT=( python3_{8..10} )
 PYTHON_REQ_USE="tk?"
-inherit cmake desktop flag-o-matic python-single-r1 subversion xdg
+inherit cmake desktop flag-o-matic python-single-r1 xdg
 
 DESCRIPTION="Desktop publishing (DTP) and layout program"
 HOMEPAGE="https://www.scribus.net/"
-SRC_URI=""
-ESVN_REPO_URI="svn://scribus.net/trunk/Scribus"
-ESVN_PROJECT=Scribus-1.5
+SRC_URI="mirror://sourceforge/project/${PN}/${PN}-devel/${PV}/${P}.tar.xz"
 
 LICENSE="GPL-2"
 SLOT="0"
-KEYWORDS=""
+KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
 IUSE="+boost debug examples graphicsmagick hunspell +minimal osg +pdf scripts +templates tk"
 
 REQUIRED_USE="${PYTHON_REQUIRED_USE}
@@ -44,6 +42,7 @@ DEPEND="${PYTHON_DEPS}
 	media-libs/lcms:2
 	media-libs/libcdr
 	media-libs/libfreehand
+	media-libs/libjpeg-turbo:=
 	media-libs/libpagemaker
 	media-libs/libpng:0=
 	media-libs/libvisio
@@ -51,7 +50,6 @@ DEPEND="${PYTHON_DEPS}
 	media-libs/tiff:0
 	net-print/cups
 	sys-libs/zlib[minizip]
-	virtual/jpeg:0=
 	x11-libs/cairo[X,svg]
 	boost? ( dev-libs/boost:= )
 	graphicsmagick? ( media-gfx/graphicsmagick:= )
@@ -78,10 +76,16 @@ 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
+	"${FILESDIR}"/${PN}-1.5.8-poppler-22.03.0.patch # bug 834537
+	"${FILESDIR}"/${PN}-1.5.8-poppler-22.04.0.patch # bug 843287
 )
 
 CMAKE_BUILD_TYPE="Release"
 
+S="${WORKDIR}/${P}"
+
 src_prepare() {
 	cmake_src_prepare
 

diff --git a/app-office/scribus/scribus-9999.ebuild b/app-office/scribus/scribus-9999.ebuild
index b8abdb6f421f..dc6748192f39 100644
--- a/app-office/scribus/scribus-9999.ebuild
+++ b/app-office/scribus/scribus-9999.ebuild
@@ -44,6 +44,7 @@ DEPEND="${PYTHON_DEPS}
 	media-libs/lcms:2
 	media-libs/libcdr
 	media-libs/libfreehand
+	media-libs/libjpeg-turbo:=
 	media-libs/libpagemaker
 	media-libs/libpng:0=
 	media-libs/libvisio
@@ -51,7 +52,6 @@ DEPEND="${PYTHON_DEPS}
 	media-libs/tiff:0
 	net-print/cups
 	sys-libs/zlib[minizip]
-	virtual/jpeg:0=
 	x11-libs/cairo[X,svg]
 	boost? ( dev-libs/boost:= )
 	graphicsmagick? ( media-gfx/graphicsmagick:= )


             reply	other threads:[~2022-05-08 18:01 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-08 18:01 Sam James [this message]
  -- strict thread matches above, loose matches on Subject: below --
2025-03-07 13:16 [gentoo-commits] repo/gentoo:master commit in: app-office/scribus/, app-office/scribus/files/ Andreas Sturmlechner
2025-02-10 20:11 Andreas Sturmlechner
2024-11-13 22:45 Andreas Sturmlechner
2024-07-18  8:44 Miroslav Šulc
2024-06-04 10:35 Miroslav Šulc
2024-03-04 10:29 Miroslav Šulc
2024-01-14  9:30 Miroslav Šulc
2023-09-24  8:02 Miroslav Šulc
2022-09-02  4:38 Sam James
2022-03-12 15:53 Andreas Sturmlechner
2022-01-14  4:48 Ionen Wolkens
2021-08-25 10:54 Miroslav Šulc
2021-04-06 12:30 Miroslav Šulc
2020-01-02 20:26 Andreas Sturmlechner
2019-12-07  9:47 Andreas Sturmlechner
2019-11-01 18:39 Andreas Sturmlechner
2019-01-25  0:00 Andreas Sturmlechner
2019-01-14 23:34 Andreas Sturmlechner
2018-03-19 23:56 Andreas Sturmlechner
2017-12-26  1:02 Andreas Sturmlechner
2017-06-04 11:54 Justin Lecher
2017-06-04 11:49 Justin Lecher
2016-12-06  9:32 Miroslav Šulc

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1652032812.65615103763c15420ea24f0781626384dcbc83d7.sam@gentoo \
    --to=sam@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox