guix_mirror_bot pushed a commit to branch master
in repository guix.
commit 35ec0b0c72c5ad216b079b92f9e3b7d0fef9d072
Author: Rodion Goritskov <[email protected]>
AuthorDate: Thu Aug 27 22:23:01 2026 +0200
gnu: kitinerary: Fix building with poppler 26.07.
* gnu/packages/kde-pim.scm (kitinerary)[source]<patches>: Add Poppler
compatibility patches.
* gnu/packages/patches/kitinerary-add-missing-include.patch: Add file.
* gnu/packages/patches/kitinerary-poppler-26.06.patch: Add file.
* gnu/packages/patches/kitinerary-poppler-26.08.patch: Add file.
* gnu/local.mk (dist_patch_DATA): Register patch files.
Relates-to: guix/guix!10917
Signed-off-by: Sharlatan Hellseher <[email protected]>
---
gnu/local.mk | 3 +
gnu/packages/kde-pim.scm | 5 +-
.../patches/kitinerary-add-missing-include.patch | 21 ++++
.../patches/kitinerary-poppler-26.06.patch | 88 ++++++++++++++++
.../patches/kitinerary-poppler-26.08.patch | 114 +++++++++++++++++++++
5 files changed, 230 insertions(+), 1 deletion(-)
diff --git a/gnu/local.mk b/gnu/local.mk
index 529ccd3eb7b..62cf9a08290 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1772,6 +1772,9 @@ dist_patch_DATA =
\
%D%/packages/patches/kio-search-smbd-on-PATH.patch \
%D%/packages/patches/kismet-unbundle-boost.patch \
%D%/packages/patches/kissfft-tflite-micro.patch \
+ %D%/packages/patches/kitinerary-add-missing-include.patch \
+ %D%/packages/patches/kitinerary-poppler-26.06.patch \
+ %D%/packages/patches/kitinerary-poppler-26.08.patch \
%D%/packages/patches/kmod-module-directory.patch \
%D%/packages/patches/kmscon-8-runtime-keymap-switch.patch \
%D%/packages/patches/knot-remove-runtime-deps.patch \
diff --git a/gnu/packages/kde-pim.scm b/gnu/packages/kde-pim.scm
index 2a8bfb27d0a..85deb54d7eb 100644
--- a/gnu/packages/kde-pim.scm
+++ b/gnu/packages/kde-pim.scm
@@ -1450,7 +1450,10 @@ easier to do so.")
version "/src/kitinerary-" version
".tar.xz"))
(sha256
(base32
- "1bajnx3h487s48gsgbkm23j89bw3xj5vq87f62bkcgc1vrkdq6jx"))))
+ "1bajnx3h487s48gsgbkm23j89bw3xj5vq87f62bkcgc1vrkdq6jx"))
+ (patches (search-patches "kitinerary-poppler-26.06.patch"
+ "kitinerary-poppler-26.08.patch"
+
"kitinerary-add-missing-include.patch"))))
(build-system qt-build-system)
(arguments
(list #:qtbase qtbase
diff --git a/gnu/packages/patches/kitinerary-add-missing-include.patch
b/gnu/packages/patches/kitinerary-add-missing-include.patch
new file mode 100644
index 00000000000..9778bfd7758
--- /dev/null
+++ b/gnu/packages/patches/kitinerary-add-missing-include.patch
@@ -0,0 +1,21 @@
+From cec1c4393edfcae59aba009d219629dce2c28cbb Mon Sep 17 00:00:00 2001
+From: Nicolas Fella <[email protected]>
+Date: Thu, 25 Jun 2026 13:07:13 +0200
+Subject: [PATCH] Add missing poppler include
+
+---
+ src/lib/pdf/pdfextractoroutputdevice.cpp | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/lib/pdf/pdfextractoroutputdevice.cpp
b/src/lib/pdf/pdfextractoroutputdevice.cpp
+index 2ad933cd..345238b0 100644
+--- a/src/lib/pdf/pdfextractoroutputdevice.cpp
++++ b/src/lib/pdf/pdfextractoroutputdevice.cpp
+@@ -13,6 +13,7 @@
+ #include <Annot.h>
+ #include <Link.h>
+ #include <Page.h>
++#include <Stream.h>
+
+ #include <QDebug>
+
diff --git a/gnu/packages/patches/kitinerary-poppler-26.06.patch
b/gnu/packages/patches/kitinerary-poppler-26.06.patch
new file mode 100644
index 00000000000..7ae684f5a98
--- /dev/null
+++ b/gnu/packages/patches/kitinerary-poppler-26.06.patch
@@ -0,0 +1,88 @@
+From 2c71a8b3d3ed1eb682f5f1a49348a9c88183d4e6 Mon Sep 17 00:00:00 2001
+From: Volker Krause <[email protected]>
+Date: Wed, 27 May 2026 17:37:31 +0200
+Subject: [PATCH] Adapt to Poppler 26.06 API changes
+
+---
+ src/lib/pdf/pdfdocument.cpp | 30 ++++++++++++++++++++++++++++--
+ 1 file changed, 28 insertions(+), 2 deletions(-)
+
+diff --git a/src/lib/pdf/pdfdocument.cpp b/src/lib/pdf/pdfdocument.cpp
+index 6f63f8ce..dd37122a 100644
+--- a/src/lib/pdf/pdfdocument.cpp
++++ b/src/lib/pdf/pdfdocument.cpp
+@@ -44,12 +44,15 @@ void PdfPagePrivate::load()
+ #if KPOPPLER_VERSION < QT_VERSION_CHECK(25, 1, 0)
+ std::unique_ptr<GooString> s(device.getText(pageRect->x1, pageRect->y1,
pageRect->x2, pageRect->y2));
+ m_text = QString::fromUtf8(s->c_str());
+-#elif KPOPPLER_VERSION <QT_VERSION_CHECK(25, 12, 90)
++#elif KPOPPLER_VERSION < QT_VERSION_CHECK(25, 12, 90)
+ const auto s = device.getText(pageRect->x1, pageRect->y1, pageRect->x2,
pageRect->y2);
+ m_text = QString::fromUtf8(s.c_str());
+-#else
++#elif KPOPPLER_VERSION < QT_VERSION_CHECK(26, 5, 90)
+ const auto s = device.getText(PDFRectangle(pageRect->x1, pageRect->y1,
pageRect->x2, pageRect->y2));
+ m_text = QString::fromUtf8(s.c_str());
++#else
++ const auto s = device.getText(pageRect);
++ m_text = QString::fromUtf8(s.c_str());
+ #endif
+
+ m_images = std::move(device.m_images);
+@@ -59,7 +62,11 @@ void PdfPagePrivate::load()
+
+ m_links = std::move(device.m_links);
+ for (auto &link : m_links) {
++#if KPOPPLER_VERSION < QT_VERSION_CHECK(26, 5, 90)
+ link.convertToPageRect(pageRect);
++#else
++ link.convertToPageRect(&pageRect);
++#endif
+ }
+
+ m_loaded = true;
+@@ -98,16 +105,30 @@ QString PdfPage::textInRect(double left, double top,
double right, double bottom
+ double b;
+ switch (page->getRotate()) {
+ case 0:
++#if KPOPPLER_VERSION < QT_VERSION_CHECK(26, 5, 90)
+ l = ratio(pageRect->x1, pageRect->x2, left);
+ t = ratio(pageRect->y1, pageRect->y2, top);
+ r = ratio(pageRect->x1, pageRect->x2, right);
+ b = ratio(pageRect->y1, pageRect->y2, bottom);
++#else
++ l = ratio(pageRect.x1, pageRect.x2, left);
++ t = ratio(pageRect.y1, pageRect.y2, top);
++ r = ratio(pageRect.x1, pageRect.x2, right);
++ b = ratio(pageRect.y1, pageRect.y2, bottom);
++#endif
+ break;
+ case 90:
++#if KPOPPLER_VERSION < QT_VERSION_CHECK(26, 5, 90)
+ l = ratio(pageRect->y1, pageRect->y2, left);
+ t = ratio(pageRect->x1, pageRect->x2, top);
+ r = ratio(pageRect->y1, pageRect->y2, right);
+ b = ratio(pageRect->x1, pageRect->x2, bottom);
++#else
++ l = ratio(pageRect.y1, pageRect.y2, left);
++ t = ratio(pageRect.x1, pageRect.x2, top);
++ r = ratio(pageRect.y1, pageRect.y2, right);
++ b = ratio(pageRect.x1, pageRect.x2, bottom);
++#endif
+ break;
+ default:
+ qCWarning(Log) << "Unsupported page rotation!" <<
page->getRotate();
+@@ -158,8 +179,13 @@ QVariantList PdfPage::imagesInRect(double left, double
top, double right, double
+ const auto pageRect = d->m_doc->m_popplerDoc->getPage(d->m_pageNum +
1)->getCropBox();
+
+ for (const auto &img : d->m_images) {
++#if KPOPPLER_VERSION < QT_VERSION_CHECK(26, 5, 90)
+ if ((img.d->m_transform.dx() >= ratio(pageRect->x1, pageRect->x2,
left) && img.d->m_transform.dx() <= ratio(pageRect->x1, pageRect->x2, right)) &&
+ (img.d->m_transform.dy() >= ratio(pageRect->y1, pageRect->y2,
top) && img.d->m_transform.dy() <= ratio(pageRect->y1, pageRect->y2, bottom)))
++#else
++ if ((img.d->m_transform.dx() >= ratio(pageRect.x1, pageRect.x2, left)
&& img.d->m_transform.dx() <= ratio(pageRect.x1, pageRect.x2, right)) &&
++ (img.d->m_transform.dy() >= ratio(pageRect.y1, pageRect.y2, top)
&& img.d->m_transform.dy() <= ratio(pageRect.y1, pageRect.y2, bottom)))
++#endif
+ {
+ l.push_back(QVariant::fromValue(img));
+ }
diff --git a/gnu/packages/patches/kitinerary-poppler-26.08.patch
b/gnu/packages/patches/kitinerary-poppler-26.08.patch
new file mode 100644
index 00000000000..5a45323bfaa
--- /dev/null
+++ b/gnu/packages/patches/kitinerary-poppler-26.08.patch
@@ -0,0 +1,114 @@
+From 4b045ba2c8b2bda899a7ef77a3a68666d62a8423 Mon Sep 17 00:00:00 2001
+From: Volker Krause <[email protected]>
+Date: Fri, 3 Jul 2026 20:52:27 +0200
+Subject: [PATCH] Adapt to Poppler 26.08 API changes
+
+---
+ src/lib/pdf/pdfdocument.cpp | 48 +++++++++++++++++++++++++++----------
+ 1 file changed, 35 insertions(+), 13 deletions(-)
+
+diff --git a/src/lib/pdf/pdfdocument.cpp b/src/lib/pdf/pdfdocument.cpp
+index dd37122a..59fa46f2 100644
+--- a/src/lib/pdf/pdfdocument.cpp
++++ b/src/lib/pdf/pdfdocument.cpp
+@@ -300,12 +300,9 @@ int PdfDocument::fileSize() const
+ return d->m_pdfData.size();
+ }
+
+-[[nodiscard]] static QDateTime parsePdfDateTime(const GooString *str)
++template <typename StrT>
++[[nodiscard]] static QDateTime parsePdfDateTime(const StrT &str)
+ {
+- if (!str) {
+- return {};
+- }
+-
+ int year;
+ int month;
+ int day;
+@@ -316,7 +313,7 @@ int PdfDocument::fileSize() const
+ int tzMins;
+ char tz;
+
+-#if KPOPPLER_VERSION < QT_VERSION_CHECK(26, 3, 90)
++#if KPOPPLER_VERSION < QT_VERSION_CHECK(26, 3, 90) || KPOPPLER_VERSION >=
QT_VERSION_CHECK(26, 7, 90)
+ if (!parseDateString(str, &year, &month, &day, &hour, &min, &sec, &tz,
&tzHours, &tzMins)) {
+ #else
+ if (!parseDateString(str->toStr(), &year, &month, &day, &hour, &min,
&sec, &tz, &tzHours, &tzMins)) {
+@@ -341,18 +338,42 @@ int PdfDocument::fileSize() const
+
+ QDateTime PdfDocument::creationTime() const
+ {
++#if KPOPPLER_VERSION < QT_VERSION_CHECK(26, 7, 90)
+ std::unique_ptr<GooString> dt(d->m_popplerDoc->getDocInfoCreatDate());
+- return parsePdfDateTime(dt.get());
++ return dt ? parsePdfDateTime(dt.get()) : QDateTime();
++#else
++ const auto dt = d->m_popplerDoc->getDocInfoCreatDate();
++ return dt ? parsePdfDateTime(*dt) : QDateTime();
++#endif
+ }
+
+ QDateTime PdfDocument::modificationTime() const
+ {
++#if KPOPPLER_VERSION < QT_VERSION_CHECK(26, 7, 90)
+ std::unique_ptr<GooString> dt(d->m_popplerDoc->getDocInfoModDate());
+- return parsePdfDateTime(dt.get());
++ return dt ? parsePdfDateTime(dt.get()) : QDateTime();
++#else
++ const auto dt = d->m_popplerDoc->getDocInfoModDate();
++ return dt ? parsePdfDateTime(*dt) : QDateTime();
++#endif
+ }
+
++#if KPOPPLER_VERSION >= QT_VERSION_CHECK(26, 7, 90)
++[[nodiscard]] static QString fromPdfString(const std::string &s)
++{
++ if (hasUnicodeByteOrderMark(s) || hasUnicodeByteOrderMarkLE(s)) {
++ return QString::fromUtf16(reinterpret_cast<const
char16_t*>(s.c_str()), (qsizetype)s.size() / 2);
++ }
++ const auto utf16Data = pdfDocEncodingToUTF16(s);
++ return QString::fromUtf16(reinterpret_cast<const char16_t
*>(utf16Data.c_str()), (qsizetype)utf16Data.size() / 2);
++}
+
+-QString gooStringToUnicode(const std::unique_ptr<GooString> &s)
++[[nodiscard]] static QString fromPdfString(const std::optional<std::string>
&s)
++{
++ return s ? fromPdfString(*s) : QString();
++}
++#else
++[[nodiscard]] static QString fromPdfString(const std::unique_ptr<GooString>
&s)
+ {
+ if (!s) {
+ return {};
+@@ -377,25 +398,26 @@ QString gooStringToUnicode(const
std::unique_ptr<GooString> &s)
+
+ return QString::fromUtf8(s->c_str());
+ }
++#endif
+
+ QString PdfDocument::title() const
+ {
+- return gooStringToUnicode(d->m_popplerDoc->getDocInfoTitle());
++ return fromPdfString(d->m_popplerDoc->getDocInfoTitle());
+ }
+
+ QString PdfDocument::producer() const
+ {
+- return gooStringToUnicode(d->m_popplerDoc->getDocInfoProducer());
++ return fromPdfString(d->m_popplerDoc->getDocInfoProducer());
+ }
+
+ QString PdfDocument::creator() const
+ {
+- return gooStringToUnicode(d->m_popplerDoc->getDocInfoCreator());
++ return fromPdfString(d->m_popplerDoc->getDocInfoCreator());
+ }
+
+ QString PdfDocument::author() const
+ {
+- return gooStringToUnicode(d->m_popplerDoc->getDocInfoAuthor());
++ return fromPdfString(d->m_popplerDoc->getDocInfoAuthor());
+ }
+
+ QVariantList PdfDocument::pagesVariant() const