commit: 42408740bdee4a748d99d26f13e5d0b9ca717e33
Author: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Mon Oct 6 18:32:09 2025 +0000
Commit: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Mon Oct 6 18:36:33 2025 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=42408740
app-office/scribus: Fix build w/ IUSE doc
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>
...scribus-1.7.1_pre20250929-poppler-25.10.0.patch | 111 +++++++++++++++++++++
.../scribus/scribus-1.7.1_pre20250929.ebuild | 1 +
2 files changed, 112 insertions(+)
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 000000000000..8abe7b029ede
--- /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 ab505d3c8bbf..3b0c7ddf4325 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() {