commit:     b780bd09c85487f523fb692847b569ec84957424
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Tue Jul  8 16:00:02 2025 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Tue Jul  8 16:03:08 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b780bd09

media-gfx/inkscape: Fix build w/ >=app-text/poppler-25.07.0

Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 .../files/inkscape-1.4-poppler-25.07.0.patch       | 135 +++++++++++++++++++++
 media-gfx/inkscape/inkscape-1.4-r2.ebuild          |   7 +-
 2 files changed, 138 insertions(+), 4 deletions(-)

diff --git a/media-gfx/inkscape/files/inkscape-1.4-poppler-25.07.0.patch 
b/media-gfx/inkscape/files/inkscape-1.4-poppler-25.07.0.patch
new file mode 100644
index 000000000000..a4f9c38fa4b0
--- /dev/null
+++ b/media-gfx/inkscape/files/inkscape-1.4-poppler-25.07.0.patch
@@ -0,0 +1,135 @@
+https://gitlab.com/inkscape/inkscape/-/merge_requests/7321
+
+From 7f4f106b5438be1546052ebeebcfe3e8196d5884 Mon Sep 17 00:00:00 2001
+From: KrIr17 <[email protected]>
+Date: Sun, 6 Jul 2025 15:42:13 +0200
+Subject: [PATCH] Fix building with Poppler 25.07.0
+
+Fix building issues with
+
+1. 
[`GfxState::shift()`](https://gitlab.freedesktop.org/poppler/poppler/-/commit/71bf5552d448a6fdb666f2b61764b61ca197617d)
+
+2. [`FoFiTrueType::make` and `FoFiType1C::make`](FoFiTrueType::make)
+
+3. Fix typo from 5c4c6d116dae5250d75d34a45f0d9220824d2e20
+---
+ src/extension/internal/pdfinput/pdf-parser.cpp   |  4 ++--
+ .../pdfinput/poppler-cairo-font-engine.cpp       | 16 +++++++++++-----
+ .../internal/pdfinput/poppler-transition-api.h   | 14 ++++++++++++++
+ 3 files changed, 27 insertions(+), 7 deletions(-)
+
+diff --git a/src/extension/internal/pdfinput/pdf-parser.cpp 
b/src/extension/internal/pdfinput/pdf-parser.cpp
+index f46d12f72e5..4071e464a44 100644
+--- a/src/extension/internal/pdfinput/pdf-parser.cpp
++++ b/src/extension/internal/pdfinput/pdf-parser.cpp
+@@ -2322,11 +2322,11 @@ void PdfParser::doShowText(GooString *s) {
+         state->textTransformDelta(originX, originY, &tOriginX, &tOriginY);
+ 
+         // In Gfx.cc this is drawChar(...)
+-        builder->addChar(state, state->getCurX() + riseX, state->getCurY() + 
riseY,
++        builder->addChar(state, state->_POPPLER_GET_CUR_TEXT_X() + riseX, 
state->_POPPLER_GET_CUR_TEXT_Y() + riseY,
+                          dx, dy, tOriginX, tOriginY, code, n, u, uLen);
+ 
+         // Move onto next unicode character.
+-        state->shift(tdx, tdy);
++        state->_POPPLER_TEXT_SHIFT_WITH_USER_COORDS(tdx, tdy);
+         p += n;
+         len -= n;
+     }
+diff --git a/src/extension/internal/pdfinput/poppler-cairo-font-engine.cpp 
b/src/extension/internal/pdfinput/poppler-cairo-font-engine.cpp
+index bd1d4e49367..cfc6961f629 100644
+--- a/src/extension/internal/pdfinput/poppler-cairo-font-engine.cpp
++++ b/src/extension/internal/pdfinput/poppler-cairo-font-engine.cpp
+@@ -316,7 +316,11 @@ CairoFreeTypeFont *CairoFreeTypeFont::create(GfxFont 
*gfxFont, XRef *xref, FT_Li
+ #endif
+     char **enc;
+     const char *name;
++#if POPPLER_CHECK_VERSION(25, 7, 0)
++    std::unique_ptr<FoFiType1C> ff1c;
++#else
+     FoFiType1C *ff1c;
++#endif
+     std::optional<FreeTypeFontFace> font_face;
+     std::vector<int> codeToGID;
+     bool substitute = false;
+@@ -427,7 +431,7 @@ CairoFreeTypeFont *CairoFreeTypeFont::create(GfxFont 
*gfxFont, XRef *xref, FT_Li
+                 FoFiTrueType *ff;
+ #endif
+                 if (!font_data.empty()) {
+-                    ff = FoFiTrueType::make((fontchar)font_data.data(), 
font_data.size(), 0);
++                    ff = _POPPLER_FOFI_TRUETYPE_MAKE(font_data, 0);
+                 } else {
+                     ff = FoFiTrueType::load(fileName.c_str(), 0);
+                 }
+@@ -457,7 +461,7 @@ CairoFreeTypeFont *CairoFreeTypeFont::create(GfxFont 
*gfxFont, XRef *xref, FT_Li
+             FoFiTrueType *ff;
+ #endif
+             if (!font_data.empty()) {
+-                ff = FoFiTrueType::make((fontchar)font_data.data(), 
font_data.size(), 0);
++                ff = _POPPLER_FOFI_TRUETYPE_MAKE(font_data, 0);
+             } else {
+                 ff = FoFiTrueType::load(fileName.c_str(), 0);
+             }
+@@ -491,7 +495,7 @@ CairoFreeTypeFont *CairoFreeTypeFont::create(GfxFont 
*gfxFont, XRef *xref, FT_Li
+         case fontCIDType0C:
+             if (!useCIDs) {
+                 if (!font_data.empty()) {
+-                    ff1c = FoFiType1C::make((fontchar)font_data.data(), 
font_data.size());
++                    ff1c = _POPPLER_FOFI_TYPE1C_MAKE(font_data);
+                 } else {
+                     ff1c = FoFiType1C::load(fileName.c_str());
+                 }
+@@ -504,7 +508,9 @@ CairoFreeTypeFont *CairoFreeTypeFont::create(GfxFont 
*gfxFont, XRef *xref, FT_Li
+                     codeToGID.insert(codeToGID.begin(), src, src + n);
+                     gfree(src);
+ #endif
++#if !(POPPLER_CHECK_VERSION(25, 7, 0))
+                     delete ff1c;
++#endif
+                 }
+             }
+ 
+@@ -540,13 +546,13 @@ CairoFreeTypeFont *CairoFreeTypeFont::create(GfxFont 
*gfxFont, XRef *xref, FT_Li
+                     FoFiTrueType *ff;
+ #endif
+                     if (!font_data.empty()) {
+-                        ff = FoFiTrueType::make((fontchar)font_data.data(), 
font_data.size(), 0);
++                        ff = _POPPLER_FOFI_TRUETYPE_MAKE(font_data, 0);
+                     } else {
+                         ff = FoFiTrueType::load(fileName.c_str(), 0);
+                     }
+                     if (ff) {
+                         if (ff->isOpenTypeCFF()) {
+-                            auto src = ff1c->_POPPLER_GET_CID_TO_GID_MAP(&n);
++                            auto src = ff->_POPPLER_GET_CID_TO_GID_MAP(&n);
+ #if POPPLER_CHECK_VERSION(25,2,0)
+                             codeToGID = std::move(src);
+ #else
+diff --git a/src/extension/internal/pdfinput/poppler-transition-api.h 
b/src/extension/internal/pdfinput/poppler-transition-api.h
+index d04412757bc..866b630bb67 100644
+--- a/src/extension/internal/pdfinput/poppler-transition-api.h
++++ b/src/extension/internal/pdfinput/poppler-transition-api.h
+@@ -15,6 +15,20 @@
+ #include <glib/poppler-features.h>
+ #include <poppler/UTF.h>
+ 
++#if POPPLER_CHECK_VERSION(25, 7, 0)
++#define _POPPLER_TEXT_SHIFT_WITH_USER_COORDS(dx, dy) 
textShiftWithUserCoords(dx, dy)
++#define _POPPLER_FOFI_TRUETYPE_MAKE(font_data, faceIndex) 
FoFiTrueType::make(std::span(font_data), faceIndex)
++#define _POPPLER_FOFI_TYPE1C_MAKE(font_data) 
FoFiType1C::make(std::span(font_data))
++#define _POPPLER_GET_CUR_TEXT_X() getCurTextX()
++#define _POPPLER_GET_CUR_TEXT_Y() getCurTextY()
++#else
++#define _POPPLER_TEXT_SHIFT_WITH_USER_COORDS(dx, dy) shift(dx, dy)
++#define _POPPLER_FOFI_TRUETYPE_MAKE(font_data, faceIndex) 
FoFiTrueType::make((fontchar)font_data.data(), font_data.size(), faceIndex)
++#define _POPPLER_FOFI_TYPE1C_MAKE(font_data) 
FoFiType1C::make((fontchar)font_data.data(), font_data.size())
++#define _POPPLER_GET_CUR_TEXT_X() getCurX()
++#define _POPPLER_GET_CUR_TEXT_Y() getCurY()
++#endif
++
+ #if POPPLER_CHECK_VERSION(25, 6, 0)
+ #define _POPPLER_DECLARE_TRANSFER_FUNCTION_VECTOR(name) 
std::vector<std::unique_ptr<Function>> name(4)
+ #define _POPPLER_DELETE_TRANSFER_FUNCTION(name) name.reset()
+-- 
+GitLab
+

diff --git a/media-gfx/inkscape/inkscape-1.4-r2.ebuild 
b/media-gfx/inkscape/inkscape-1.4-r2.ebuild
index e851b5105a39..75fffc59b967 100644
--- a/media-gfx/inkscape/inkscape-1.4-r2.ebuild
+++ b/media-gfx/inkscape/inkscape-1.4-r2.ebuild
@@ -115,10 +115,9 @@ DEPEND="${COMMON_DEPEND}
 PATCHES=(
        "${FILESDIR}"/${PN}-1.4-gcc15.patch
        "${FILESDIR}"/${PN}-1.4-poppler-24.10-fix-backport.patch
-       "${FILESDIR}"/${P}-poppler-24.11.0.patch # bug 943499
-       "${FILESDIR}"/${P}-poppler-24.12.0.patch # bug 946597
-       "${FILESDIR}"/${P}-poppler-25.02.0.patch # bug 949531
-       "${FILESDIR}"/${P}-poppler-25.06.0.patch # bug 957137, pending for 1.4.3
+       "${FILESDIR}"/${P}-poppler-24.{11,12}.0.patch # bugs 943499, 946597
+       "${FILESDIR}"/${P}-poppler-25.{02,06}.0.patch # bugs 949531, 957137
+       "${FILESDIR}"/${P}-poppler-25.07.0.patch # pending for git master
        "${FILESDIR}"/${P}-cmake4.patch
 )
 

Reply via email to