Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package inkscape for openSUSE:Factory 
checked in at 2026-02-19 14:19:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/inkscape (Old)
 and      /work/SRC/openSUSE:Factory/.inkscape.new.1977 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "inkscape"

Thu Feb 19 14:19:30 2026 rev:153 rq:1333672 version:1.4.3+git2.fcd0343856

Changes:
--------
--- /work/SRC/openSUSE:Factory/inkscape/inkscape.changes        2026-01-29 
17:42:07.182206667 +0100
+++ /work/SRC/openSUSE:Factory/.inkscape.new.1977/inkscape.changes      
2026-02-19 14:19:38.985465321 +0100
@@ -1,0 +2,6 @@
+Tue Feb 17 19:49:57 UTC 2026 - Stefan Brüns <[email protected]>
+
+- Fix build with Poppler 26.02.0, add
+  Fix_Poppler_26_02_0_compat.patch
+
+-------------------------------------------------------------------

New:
----
  Fix_Poppler_26_02_0_compat.patch

----------(New B)----------
  New:- Fix build with Poppler 26.02.0, add
  Fix_Poppler_26_02_0_compat.patch
----------(New E)----------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ inkscape.spec ++++++
--- /var/tmp/diff_new_pack.J1kZ1K/_old  2026-02-19 14:19:41.337561838 +0100
+++ /var/tmp/diff_new_pack.J1kZ1K/_new  2026-02-19 14:19:41.341562002 +0100
@@ -29,6 +29,8 @@
 Source2:        inkscape-split-extensions-extra.py
 # PATCH-FIX-UPSTREAM -- rebased 
https://gitlab.com/inkscape/inkscape/-/commit/3a528728ebe3
 Patch0:         Fix_Poppler_26_01_00_compat.patch
+# PATCH-FIX-UPSTREAM -- rebased 
https://gitlab.com/inkscape/inkscape/-/commit/47e20c0503ab
+Patch1:         Fix_Poppler_26_02_0_compat.patch
 
 BuildRequires:  cmake
 BuildRequires:  double-conversion-devel

++++++ Fix_Poppler_26_02_0_compat.patch ++++++
>From 47e20c0503ab1464d528f2cc7dd5e6a6a85b70dc Mon Sep 17 00:00:00 2001
From: KrIr17 <[email protected]>
Date: Thu, 12 Feb 2026 20:58:50 +0100
Subject: [PATCH] Fix building with Poppler 0.26.02
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Adapted from [1] with changes to make it backwards-compatible with older
versions of Poppler.

[1] 
github.com/OpenMandrivaAssociation/inkscape/blob/master/inkscape-poppler-26.02.patch#L29

Credits: Bernhard Rosenkränzer <[email protected]>

Fixes https://gitlab.com/inkscape/inkscape/-/issues/6054
---
 .../internal/pdfinput/pdf-parser.cpp          | 39 +++++++++++++++++--
 .../pdfinput/poppler-transition-api.h         | 10 +++++
 .../internal/pdfinput/svg-builder.cpp         | 10 ++---
 3 files changed, 50 insertions(+), 9 deletions(-)

diff --git a/src/extension/internal/pdfinput/pdf-parser.cpp 
b/src/extension/internal/pdfinput/pdf-parser.cpp
index 96e475786c..1a7a470c21 100644
--- a/src/extension/internal/pdfinput/pdf-parser.cpp
+++ b/src/extension/internal/pdfinput/pdf-parser.cpp
@@ -657,7 +657,11 @@ void PdfParser::opSetFlat(Object args[], int /*numArgs*/)
 void PdfParser::opSetLineJoin(Object args[], int /*numArgs*/)
 {
   builder->beforeStateChange(state);
+#if POPPLER_CHECK_VERSION(26,2,0)
+  state->setLineJoin((GfxState::LineJoinStyle) args[0].getInt());
+#else
   state->setLineJoin(args[0].getInt());
+#endif
   builder->updateStyle(state);
 }
 
@@ -665,7 +669,11 @@ void PdfParser::opSetLineJoin(Object args[], int 
/*numArgs*/)
 void PdfParser::opSetLineCap(Object args[], int /*numArgs*/)
 {
   builder->beforeStateChange(state);
+#if POPPLER_CHECK_VERSION(26,2,0)
+  state->setLineCap((GfxState::LineCapStyle) args[0].getInt());
+#else
   state->setLineCap(args[0].getInt());
+#endif
   builder->updateStyle(state);
 }
 
@@ -1537,7 +1545,13 @@ void 
PdfParser::doShadingPatternFillFallback(GfxShadingPattern *sPat,
 
   // restore graphics state
   restoreState();
+#if POPPLER_CHECK_VERSION(26, 2, 0)
+  state->clearPath();
+  GfxPath *currPath = const_cast<GfxPath*>(state->getPath());
+  currPath->append(savedPath);
+#else
   state->setPath(savedPath);
+#endif
 }
 
 // TODO not good that numArgs is ignored but args[] is used:
@@ -1600,7 +1614,13 @@ void PdfParser::opShFill(Object args[], int /*numArgs*/)
   // restore graphics state
   if (savedState) {
     restoreState();
+#if POPPLER_CHECK_VERSION(26, 2, 0)
+    state->clearPath();
+    GfxPath *currPath = const_cast<GfxPath*>(state->getPath());
+    currPath->append(savedPath);
+#else
     state->setPath(savedPath);
+#endif
   }
 }
 
@@ -2232,7 +2252,7 @@ void PdfParser::opShowSpaceText(Object args[], int 
/*numArgs*/)
 {
   Array *a = nullptr;
   Object obj;
-  int wMode = 0; // Writing mode (horizontal/vertical).
+  _POPPLER_WMODE wMode = _POPPLER_WMODE_HORIZONTAL; // Writing mode 
(horizontal/vertical).
 
   if (!state->getFont()) {
     error(errSyntaxError, getPos(), "No font in show/space");
@@ -2246,7 +2266,7 @@ void PdfParser::opShowSpaceText(Object args[], int 
/*numArgs*/)
     if (obj.isNum()) {
       // this uses the absolute value of the font size to match
       // Acrobat's behavior
-      if (wMode) {
+      if (wMode != _POPPLER_WMODE_HORIZONTAL) {
        state->textShift(0, -obj.getNum() * 0.001 *
                            fabs(state->getFontSize()));
       } else {
@@ -2273,7 +2293,7 @@ void PdfParser::doShowText(const GooString *s) {
 void PdfParser::doShowText(GooString *s) {
 #endif
     auto font = state->getFont();
-    int wMode = font->getWMode(); // Vertical/Horizontal/Invalid
+    _POPPLER_WMODE wMode = font->getWMode(); // Vertical/Horizontal/Invalid
 
     builder->beginString(state, get_goostring_length(*s));
 
@@ -2308,7 +2328,7 @@ void PdfParser::doShowText(GooString *s) {
         auto ax = dx;
         auto ay = dy;
 
-        if (wMode != 0) {
+        if (wMode != _POPPLER_WMODE_HORIZONTAL) {
             // Vertical text (or invalid value).
             dy += state->getCharSpace();
             if (n == 1 && *p == ' ') {
@@ -2975,7 +2995,11 @@ Stream *PdfParser::buildImageStream() {
   // make stream
 #if defined(POPPLER_NEW_OBJECT_API)
   str = new EmbedStream(parser->getStream(), dict.copy(), gFalse, 0);
+#if POPPLER_CHECK_VERSION(26, 2, 0)
+  str = str->addFilters(std::unique_ptr<Stream>(str), 
dict.getDict()).release();
+#else
   str = str->addFilters(dict.getDict());
+#endif
 #else
   str = new EmbedStream(parser->getStream(), &dict, gFalse, 0);
   str = str->addFilters(&dict);
@@ -3158,10 +3182,17 @@ void PdfParser::loadOptionalContentLayers(Dict 
*resources)
             auto visible = true;
             // Normally we'd use poppler optContentIsVisible, but these dict
             // objects don't retain their references so can't be used directly.
+#if POPPLER_CHECK_VERSION(26, 2, 0)
+            for (auto &[ref, ocg] : ocgs->getOCGs()) {
+                if (ocg->getName()->toStr() == label)
+                    visible = ocg->getState() == OptionalContentGroup::On;
+            }
+#else
             for (auto &[ref, ocg] : ocgs->getOCGs()) {
                 if (ocg->getName()->cmp(label) == 0)
                     visible = ocg->getState() == OptionalContentGroup::On;
             }
+#endif
             builder->addOptionalGroup(dict->getKey(j), label, visible);
         }
     }
diff --git a/src/extension/internal/pdfinput/poppler-transition-api.h 
b/src/extension/internal/pdfinput/poppler-transition-api.h
index 6f2b97c509..5dfac7594f 100644
--- a/src/extension/internal/pdfinput/poppler-transition-api.h
+++ b/src/extension/internal/pdfinput/poppler-transition-api.h
@@ -15,6 +15,16 @@
 #include <glib/poppler-features.h>
 #include <poppler/UTF.h>
 
+#if POPPLER_CHECK_VERSION(26, 2, 0)
+#define _POPPLER_WMODE GfxFont::WritingMode
+#define _POPPLER_WMODE_HORIZONTAL GfxFont::WritingMode::Horizontal
+#define _POPPLER_WMODE_VERTICAL GfxFont::WritingMode::Vertical
+#else
+#define _POPPLER_WMODE int
+#define _POPPLER_WMODE_HORIZONTAL 0
+#define _POPPLER_WMODE_VERTICAL 1
+#endif
+
 #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)
diff --git a/src/extension/internal/pdfinput/svg-builder.cpp 
b/src/extension/internal/pdfinput/svg-builder.cpp
index a8a73b08bb..add36d904e 100644
--- a/src/extension/internal/pdfinput/svg-builder.cpp
+++ b/src/extension/internal/pdfinput/svg-builder.cpp
@@ -1434,7 +1434,7 @@ void SvgBuilder::updateFont(GfxState *state, 
std::shared_ptr<CairoFont> cairo_fo
     sp_repr_css_set_property(_css_font, "font-variant", "normal");
 
     // Writing mode
-    if ( font->getWMode() == 0 ) {
+    if ( font->getWMode() == _POPPLER_WMODE_HORIZONTAL ) {
         sp_repr_css_set_property(_css_font, "writing-mode", "lr");
     } else {
         sp_repr_css_set_property(_css_font, "writing-mode", "tb");
@@ -1446,7 +1446,7 @@ void SvgBuilder::updateFont(GfxState *state, 
std::shared_ptr<CairoFont> cairo_fo
  */
 void SvgBuilder::updateTextShift(GfxState *state, double shift) {
     double shift_value = -shift * 0.001 * fabs(state->getFontSize());
-    if (state->getFont()->getWMode()) {
+    if (state->getFont()->getWMode() != _POPPLER_WMODE_HORIZONTAL) {
         _text_position[1] += shift_value;
     } else {
         _text_position[0] += shift_value;
@@ -1500,7 +1500,7 @@ Inkscape::XML::Node* SvgBuilder::_flushTextText(GfxState 
*state, double text_sca
 
     // Text direction is a property of the <text> element.
     auto font = state->getFont();
-    if (font->getWMode() == 1) {
+    if (font->getWMode() == _POPPLER_WMODE_VERTICAL) {
         // Only set if vertical.
         auto css_text = sp_repr_css_attr_new();
         sp_repr_css_set_property(css_text, "writing-mode", "tb");
@@ -1594,8 +1594,8 @@ Inkscape::XML::Node* SvgBuilder::_flushTextText(GfxState 
*state, double text_sca
         bool output_tspan =
             next_it == _glyphs.end() ||
             next_it->style_changed   ||
-            (writing_mode == 0 && std::abs(glyph.text_position[1] - 
next_it->text_position[1]) > 0.1) ||
-            (writing_mode == 1 && std::abs(glyph.text_position[0] - 
next_it->text_position[0]) > 0.1);
+            (writing_mode == _POPPLER_WMODE_HORIZONTAL && 
std::abs(glyph.text_position[1] - next_it->text_position[1]) > 0.1) ||
+            (writing_mode == _POPPLER_WMODE_VERTICAL   && 
std::abs(glyph.text_position[0] - next_it->text_position[0]) > 0.1);
 
         if (output_tspan) {
 
-- 
GitLab

Reply via email to