From 42408740bdee4a748d99d26f13e5d0b9ca717e33 Mon Sep 17 00:00:00 2001 From: Andreas Sturmlechner Date: Mon, 6 Oct 2025 20:32:09 +0200 Subject: [PATCH] app-office/scribus: Fix build w/ IUSE doc Signed-off-by: Andreas Sturmlechner --- ...us-1.7.1_pre20250929-poppler-25.10.0.patch | 111 ++++++++++++++++++ .../scribus/scribus-1.7.1_pre20250929.ebuild | 1 + 2 files changed, 112 insertions(+) create mode 100644 app-office/scribus/files/scribus-1.7.1_pre20250929-poppler-25.10.0.patch diff --git a/app-office/scribus/files/scribus-1.7.1_pre20250929-poppler-25.10.0.patch b/app-office/scribus/files/scribus-1.7.1_pre20250929-poppler-25.10.0.patch new file mode 100644 index 0000000000000..8abe7b029ede5 --- /dev/null +++ b/app-office/scribus/files/scribus-1.7.1_pre20250929-poppler-25.10.0.patch @@ -0,0 +1,111 @@ +Index: Scribus/scribus/plugins/import/pdf/importpdf.cpp +=================================================================== +--- Scribus/scribus/plugins/import/pdf/importpdf.cpp (revision 27039) ++++ Scribus/scribus/plugins/import/pdf/importpdf.cpp (revision 27042) +@@ -874,6 +874,44 @@ + + QString PdfPlug::UnicodeParsedString(const GooString *s1) + { ++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(25, 10, 0) ++ if (!s1 || s1->size() == 0) ++ return QString(); ++ bool isUnicode; ++ int i; ++ Unicode u; ++ QString result; ++ if ((s1->getChar(0) & 0xff) == 0xfe && (s1->size() > 1 && (s1->getChar(1) & 0xff) == 0xff)) ++ { ++ isUnicode = true; ++ i = 2; ++ result.reserve((s1->size() - 2) / 2); ++ } ++ else ++ { ++ isUnicode = false; ++ i = 0; ++ result.reserve(s1->size()); ++ } ++ while (i < s1->size()) ++ { ++ if (isUnicode) ++ { ++ u = ((s1->getChar(i) & 0xff) << 8) | (s1->getChar(i + 1) & 0xff); ++ i += 2; ++ } ++ else ++ { ++ u = s1->getChar(i) & 0xff; ++ ++i; ++ } ++ // #15616: imagemagick may write unicode strings incorrectly in PDF ++ if (u == 0) ++ continue; ++ result += QChar(u); ++ } ++ return result; ++#else + if (!s1 || s1->getLength() == 0) + return QString(); + bool isUnicode; +@@ -910,6 +948,7 @@ + result += QChar( u ); + } + return result; ++#endif + } + + QString PdfPlug::UnicodeParsedString(const std::string& s1) +Index: Scribus/scribus/plugins/import/pdf/slaoutput.cpp +=================================================================== +--- Scribus/scribus/plugins/import/pdf/slaoutput.cpp (revision 27039) ++++ Scribus/scribus/plugins/import/pdf/slaoutput.cpp (revision 27042) +@@ -3883,6 +3883,41 @@ + + QString SlaOutputDev::UnicodeParsedString(const GooString *s1) const + { ++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(25, 10, 0) ++ if (!s1 || s1->size() == 0) ++ return QString(); ++ bool isUnicode; ++ int i; ++ Unicode u; ++ QString result; ++ if ((s1->getChar(0) & 0xff) == 0xfe && (s1->size() > 1 && (s1->getChar(1) & 0xff) == 0xff)) ++ { ++ isUnicode = true; ++ i = 2; ++ result.reserve((s1->size() - 2) / 2); ++ } ++ else ++ { ++ isUnicode = false; ++ i = 0; ++ result.reserve(s1->size()); ++ } ++ while (i < s1->size()) ++ { ++ if (isUnicode) ++ { ++ u = ((s1->getChar(i) & 0xff) << 8) | (s1->getChar(i + 1) & 0xff); ++ i += 2; ++ } ++ else ++ { ++ u = s1->getChar(i) & 0xff; ++ ++i; ++ } ++ result += QChar(u); ++ } ++ return result; ++#else + if (!s1 || s1->getLength() == 0) + return QString(); + bool isUnicode; +@@ -3916,6 +3951,7 @@ + result += QChar( u ); + } + return result; ++#endif + } + + QString SlaOutputDev::UnicodeParsedString(const std::string& s1) const diff --git a/app-office/scribus/scribus-1.7.1_pre20250929.ebuild b/app-office/scribus/scribus-1.7.1_pre20250929.ebuild index ab505d3c8bbf7..3b0c7ddf4325a 100644 --- a/app-office/scribus/scribus-1.7.1_pre20250929.ebuild +++ b/app-office/scribus/scribus-1.7.1_pre20250929.ebuild @@ -85,6 +85,7 @@ PATCHES=( "${FILESDIR}"/${PN}-1.7.0-findhyphen.patch "${FILESDIR}"/${PN}-1.7.0-dont-install-qtadvanceddocking.patch # bugs 961290, 960017 "${FILESDIR}"/${PN}-1.7.0-fix-icon-version.patch + "${FILESDIR}"/${P}-poppler-25.10.0.patch # from trunk ) src_prepare() {