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

Reply via email to