git: e0430bdd8f61 - main - graphics/inkscape: Update to 1.4.4

From: Dag-Erling Smørgrav <des_at_FreeBSD.org>
Date: Sun, 12 Jul 2026 18:05:04 UTC
The branch main has been updated by des:

URL: https://cgit.FreeBSD.org/ports/commit/?id=e0430bdd8f6104d965f5ace9b389e9356408972a

commit e0430bdd8f6104d965f5ace9b389e9356408972a
Author:     Dag-Erling Smørgrav <des@FreeBSD.org>
AuthorDate: 2026-07-12 18:04:51 +0000
Commit:     Dag-Erling Smørgrav <des@FreeBSD.org>
CommitDate: 2026-07-12 18:04:51 +0000

    graphics/inkscape: Update to 1.4.4
    
    Reviewed by:    fluffy
    Differential Revision:  https://reviews.freebsd.org/D58148
---
 graphics/inkscape/Makefile                         |   7 +-
 graphics/inkscape/distinfo                         |   6 +-
 ...h-src_extension_internal_pdfinput_pdf-input.cpp |  10 --
 ...-src_extension_internal_pdfinput_pdf-parser.cpp | 170 ---------------------
 ...ch-src_extension_internal_pdfinput_pdf-parser.h |  16 --
 ...sion_internal_pdfinput_poppler-transition-api.h |  35 -----
 ...c_extension_internal_pdfinput_poppler-utils.cpp | 121 ---------------
 ...src_extension_internal_pdfinput_poppler-utils.h |  10 --
 ...src_extension_internal_pdfinput_svg-builder.cpp |  72 ---------
 graphics/inkscape/pkg-plist                        |   7 +-
 10 files changed, 12 insertions(+), 442 deletions(-)

diff --git a/graphics/inkscape/Makefile b/graphics/inkscape/Makefile
index fecb405396db..ef827121ad7a 100644
--- a/graphics/inkscape/Makefile
+++ b/graphics/inkscape/Makefile
@@ -1,6 +1,5 @@
 PORTNAME=	inkscape
-DISTVERSION=	1.4.3
-PORTREVISION=	5
+DISTVERSION=	1.4.4
 CATEGORIES=	graphics gnome
 MASTER_SITES=	https://media.inkscape.org/dl/resources/file/
 
@@ -53,7 +52,7 @@ USE_PYTHON=	cython
 USE_XORG=	sm ice x11 xext
 USE_LDCONFIG=	yes
 
-DATETAG=	2025-12-25_0d15f75042
+DATETAG=	2026-05-05_dcaf3e7d9e
 WRKSRC=		${WRKDIR}/${PORTNAME}-${DISTVERSION}_${DATETAG}
 
 BINARY_ALIAS=	python3=${PYTHON_CMD}
@@ -112,6 +111,8 @@ GSPELL_DESC=		Support for spell checking through gspell
 GSPELL_CMAKE_BOOL=	WITH_GSPELL
 GSPELL_LIB_DEPENDS=	libgspell-1.so:textproc/gspell
 
+PLIST_SUB=		DISTVERSION=${DISTVERSION}
+
 post-patch:
 	@${REINPLACE_CMD} -e 's|COMMAND python3|COMMAND ${PYTHON_VERSION}|g' \
 		${WRKSRC}/share/*/CMakeLists.txt
diff --git a/graphics/inkscape/distinfo b/graphics/inkscape/distinfo
index 8a133f27bc19..3bbcdf9ec77f 100644
--- a/graphics/inkscape/distinfo
+++ b/graphics/inkscape/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1769250053
-SHA256 (inkscape-1.4.3.tar.xz) = e83a2c3db570b6c5a1ff0fccfe7098837b3f6bd74b133567937c8a91710ed1d1
-SIZE (inkscape-1.4.3.tar.xz) = 53907460
+TIMESTAMP = 1783600722
+SHA256 (inkscape-1.4.4.tar.xz) = bbce5753a1e08b871a5cf16c665eb060700aaab9a6a379dc63f4c4d9b3b8856e
+SIZE (inkscape-1.4.4.tar.xz) = 53861940
diff --git a/graphics/inkscape/files/patch-src_extension_internal_pdfinput_pdf-input.cpp b/graphics/inkscape/files/patch-src_extension_internal_pdfinput_pdf-input.cpp
deleted file mode 100644
index abd25bfe474c..000000000000
--- a/graphics/inkscape/files/patch-src_extension_internal_pdfinput_pdf-input.cpp
+++ /dev/null
@@ -1,10 +0,0 @@
---- src/extension/internal/pdfinput/pdf-input.cpp.orig	2025-12-26 00:35:50 UTC
-+++ src/extension/internal/pdfinput/pdf-input.cpp
-@@ -33,6 +33,7 @@
- #include <poppler/glib/poppler.h>
- #include <poppler/glib/poppler-document.h>
- #include <poppler/glib/poppler-page.h>
-+#include <poppler/goo/gmem.h>
- #endif
- 
- #include <gdkmm/general.h>
diff --git a/graphics/inkscape/files/patch-src_extension_internal_pdfinput_pdf-parser.cpp b/graphics/inkscape/files/patch-src_extension_internal_pdfinput_pdf-parser.cpp
deleted file mode 100644
index 9ca254e2e456..000000000000
--- a/graphics/inkscape/files/patch-src_extension_internal_pdfinput_pdf-parser.cpp
+++ /dev/null
@@ -1,170 +0,0 @@
---- src/extension/internal/pdfinput/pdf-parser.cpp.orig	2025-12-26 00:35:50 UTC
-+++ src/extension/internal/pdfinput/pdf-parser.cpp
-@@ -653,7 +653,11 @@ void PdfParser::opSetLineJoin(Object args[], int /*num
- 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);
- }
- 
-@@ -661,7 +665,11 @@ void PdfParser::opSetLineCap(Object args[], int /*numA
- 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);
- }
- 
-@@ -1565,7 +1573,13 @@ void PdfParser::doShadingPatternFillFallback(GfxShadin
- 
-   // 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:
-@@ -1626,7 +1640,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
-   }
- }
- 
-@@ -2213,7 +2233,7 @@ void PdfParser::opShowSpaceText(Object args[], int /*n
- {
-   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");
-@@ -2227,7 +2247,7 @@ void PdfParser::opShowSpaceText(Object args[], int /*n
-     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 {
-@@ -2248,15 +2268,11 @@ void PdfParser::opShowSpaceText(Object args[], int /*n
-  * This adds a string from a PDF file that is contained in one command ('Tj', ''', '"')
-  * or is one string in ShowSpacetext ('TJ').
-  */
--#if POPPLER_CHECK_VERSION(0,64,0)
--void PdfParser::doShowText(const GooString *s) {
--#else
--void PdfParser::doShowText(GooString *s) {
--#endif
-+void PdfParser::doShowText(const std::string &s) {
-     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));
-+    builder->beginString(state, s.size());
- 
-     // handle a Type 3 char
-     if (font->getType() == fontType3) {
-@@ -2266,8 +2282,8 @@ void PdfParser::doShowText(GooString *s) {
-     double riseX, riseY;
-     state->textTransformDelta(0, state->getRise(), &riseX, &riseY);
- 
--    auto p = s->getCString(); // char* or const char*
--    int len = get_goostring_length(*s);
-+    auto p = s.c_str(); // char* or const char*
-+    int len = s.size();
- 
-     while (len > 0) {
- 
-@@ -2289,7 +2305,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 == ' ') {
-@@ -2324,7 +2340,16 @@ void PdfParser::doShowText(GooString *s) {
-     builder->endString(state);
- }
- 
-+#if POPPLER_CHECK_VERSION(0,64,0)
-+void PdfParser::doShowText(const GooString *s) {
-+#else
-+void PdfParser::doShowText(GooString *s) {
-+#endif
-+    const std::string str = s->toStr();
-+    doShowText(str);
-+}
- 
-+
- //------------------------------------------------------------------------
- // XObject operators
- //------------------------------------------------------------------------
-@@ -2931,7 +2956,11 @@ Stream *PdfParser::buildImageStream() {
- 
-   // build dictionary
- #if defined(POPPLER_NEW_OBJECT_API)
-+#if POPPLER_CHECK_VERSION(26, 3, 0)
-+  dict = Object(std::make_unique<Dict>(xref));
-+#else
-   dict = Object(new Dict(xref));
-+#endif
- #else
-   dict.initDict(xref);
- #endif
-@@ -2964,7 +2993,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);
-@@ -3137,10 +3170,17 @@ void PdfParser::loadOptionalContentLayers(Dict *resour
-             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/graphics/inkscape/files/patch-src_extension_internal_pdfinput_pdf-parser.h b/graphics/inkscape/files/patch-src_extension_internal_pdfinput_pdf-parser.h
deleted file mode 100644
index ac804328a447..000000000000
--- a/graphics/inkscape/files/patch-src_extension_internal_pdfinput_pdf-parser.h
+++ /dev/null
@@ -1,16 +0,0 @@
---- src/extension/internal/pdfinput/pdf-parser.h.orig	2025-12-26 00:35:50 UTC
-+++ src/extension/internal/pdfinput/pdf-parser.h
-@@ -283,10 +283,11 @@ class PdfParser { (private)
-     void opMoveShowText(Object args[], int numArgs);
-     void opMoveSetShowText(Object args[], int numArgs);
-     void opShowSpaceText(Object args[], int numArgs);
-+    void doShowText(const std::string &s);
- #if POPPLER_CHECK_VERSION(0,64,0)
--  void doShowText(const GooString *s);
-+    void doShowText(const GooString *s);
- #else
--  void doShowText(GooString *s);
-+    void doShowText(GooString *s);
- #endif
-   
- 
diff --git a/graphics/inkscape/files/patch-src_extension_internal_pdfinput_poppler-transition-api.h b/graphics/inkscape/files/patch-src_extension_internal_pdfinput_poppler-transition-api.h
deleted file mode 100644
index 3fa68e14a4de..000000000000
--- a/graphics/inkscape/files/patch-src_extension_internal_pdfinput_poppler-transition-api.h
+++ /dev/null
@@ -1,35 +0,0 @@
---- src/extension/internal/pdfinput/poppler-transition-api.h.orig	2025-07-25 10:14:52 UTC
-+++ 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)
-@@ -62,11 +72,11 @@
- #endif
- 
- #if POPPLER_CHECK_VERSION(24, 5, 0)
--#define _POPPLER_HAS_UNICODE_BOM(value) (hasUnicodeByteOrderMark(value->toStr()))
--#define _POPPLER_HAS_UNICODE_BOMLE(value) (hasUnicodeByteOrderMarkLE(value->toStr()))
-+#define _POPPLER_HAS_UNICODE_BOM(value) (hasUnicodeByteOrderMark(value))
-+#define _POPPLER_HAS_UNICODE_BOMLE(value) (hasUnicodeByteOrderMarkLE(value))
- #else
--#define _POPPLER_HAS_UNICODE_BOM(value) (value->hasUnicodeMarker())
--#define _POPPLER_HAS_UNICODE_BOMLE(value) (value->hasUnicodeMarkerLE())
-+#define _POPPLER_HAS_UNICODE_BOM(value) (GooString(value).hasUnicodeMarker())
-+#define _POPPLER_HAS_UNICODE_BOMLE(value) (GooString(value).hasUnicodeMarkerLE())
- #endif
- 
- #if POPPLER_CHECK_VERSION(24, 3, 0)
diff --git a/graphics/inkscape/files/patch-src_extension_internal_pdfinput_poppler-utils.cpp b/graphics/inkscape/files/patch-src_extension_internal_pdfinput_poppler-utils.cpp
deleted file mode 100644
index c977dd750b4b..000000000000
--- a/graphics/inkscape/files/patch-src_extension_internal_pdfinput_poppler-utils.cpp
+++ /dev/null
@@ -1,121 +0,0 @@
---- src/extension/internal/pdfinput/poppler-utils.cpp.orig	2025-12-26 00:35:50 UTC
-+++ src/extension/internal/pdfinput/poppler-utils.cpp
-@@ -16,6 +16,7 @@
- #include <poppler/GfxFont.h>
- #include <poppler/GfxState.h>
- #include <poppler/PDFDoc.h>
-+#include <poppler/PDFDocEncoding.h>
- #include <poppler/UTF.h>
- 
- #include "libnrtype/font-factory.h"
-@@ -88,7 +89,11 @@ InkFontDict::InkFontDict(XRef *xref, Ref *fontDictRef,
-                 r.num = hashFontObject(&obj2);
-             }
-             // Newer poppler will require some reworking as it gives a shared ptr.
-+#if POPPLER_CHECK_VERSION(26,3,0)
-+            fonts[i] = GfxFont::makeFont(xref, fontDict->getKey(i), r, *obj2.getDict());
-+#else
-             fonts[i] = GfxFont::makeFont(xref, fontDict->getKey(i), r, obj2.getDict());
-+#endif
-             if (fonts[i] && !fonts[i]->isOk()) {
-                 fonts[i] = nullptr;
-             }
-@@ -145,7 +150,6 @@ void InkFontDict::hashFontObject1(const Object *obj, F
- 
- void InkFontDict::hashFontObject1(const Object *obj, FNVHash *h)
- {
--    const GooString *s;
-     const char *p;
-     double r;
-     int n, i;
-@@ -165,11 +169,16 @@ void InkFontDict::hashFontObject1(const Object *obj, F
-             r = obj->getReal();
-             h->hash((char *)&r, sizeof(double));
-             break;
--        case objString:
-+        case objString: {
-             h->hash('s');
--            s = obj->getString();
-+#if POPPLER_CHECK_VERSION(26, 4, 0)
-+            const auto &s = obj->getString();
-+            h->hash(s.c_str(), s.size());
-+#else
-+            const GooString* s = obj->getString();
-             h->hash(s->c_str(), get_goostring_length(*s));
--            break;
-+#endif
-+            } break;
-         case objName:
-             h->hash('n');
-             p = obj->getName();
-@@ -586,20 +595,52 @@ std::string getDictString(Dict *dict, const char *key)
-     return getString(obj.getString());
- }
- 
-+std::string getString(const std::unique_ptr<GooString> &value)
-+{
-+    return getString(value.get());
-+}
-+
-+std::string getString(const GooString *value)
-+{
-+    if (value) {
-+        return getString(value->toStr());
-+    }
-+    return "";
-+}
-+
- /**
-  * Convert PDF strings, which can be formatted as UTF8, UTF16BE or UTF16LE into
-  * a predictable UTF8 string consistant with svg requirements.
-  */
--std::string getString(const GooString *value)
-+std::string getString(const std::string &value)
- {
-+    char *str = nullptr;
-+    int stringLength;
-+
-     if (_POPPLER_HAS_UNICODE_BOM(value)) {
--        return g_convert(value->getCString () + 2, get_goostring_length(*value) - 2,
--                         "UTF-8", "UTF-16BE", NULL, NULL, NULL);
-+        str = g_convert(value.c_str() + 2, value.size() - 2,
-+                        "UTF-8", "UTF-16BE", NULL, NULL, NULL);
-     } else if (_POPPLER_HAS_UNICODE_BOMLE(value)) {
--        return g_convert(value->getCString () + 2, get_goostring_length(*value) - 2,
--                         "UTF-8", "UTF-16LE", NULL, NULL, NULL);
-+        str = g_convert(value.c_str() + 2, value.size() - 2,
-+                        "UTF-8", "UTF-16LE", NULL, NULL, NULL);
-     }
--    return value->toStr();
-+#if POPPLER_CHECK_VERSION(25,02,0)
-+    else if (auto utf16 = pdfDocEncodingToUTF16(value); !utf16.empty())  {
-+        str = g_convert(utf16.c_str(), utf16.length(), "UTF-8", "UTF-16", NULL, NULL, NULL);
-+    }
-+#else
-+    else if (auto utf16 = pdfDocEncodingToUTF16(value, &stringLength))  {
-+        str = g_convert(utf16, stringLength, "UTF-8", "UTF-16", NULL, NULL, NULL);
-+        delete[] utf16;
-+    }
-+#endif
-+    if (str) {
-+        std::string copy = str;
-+        g_free(str);
-+        return copy;
-+    }
-+    g_warning("Couldn't parse text in PDF from UTF16.");
-+    return "";
- }
- 
- void pdf_debug_array(const Array *array, int depth, XRef *xref)
-@@ -656,7 +697,11 @@ void pdf_debug_object(const Object *obj, int depth, XR
-     } else if (obj->isArray()) {
-         pdf_debug_array(obj->getArray(), depth, xref);
-     } else if (obj->isString()) {
-+#if POPPLER_CHECK_VERSION(26, 4, 0)
-+        std::cout << " STR '" << obj->getString().c_str() << "'";
-+#else
-         std::cout << " STR '" << obj->getString()->getCString() << "'";
-+#endif
-     } else if (obj->isName()) {
-         std::cout << " NAME '" << obj->getName() << "'";
-     } else if (obj->isBool()) {
diff --git a/graphics/inkscape/files/patch-src_extension_internal_pdfinput_poppler-utils.h b/graphics/inkscape/files/patch-src_extension_internal_pdfinput_poppler-utils.h
deleted file mode 100644
index 4891598339b7..000000000000
--- a/graphics/inkscape/files/patch-src_extension_internal_pdfinput_poppler-utils.h
+++ /dev/null
@@ -1,10 +0,0 @@
---- src/extension/internal/pdfinput/poppler-utils.h.orig	2025-12-26 00:35:50 UTC
-+++ src/extension/internal/pdfinput/poppler-utils.h
-@@ -83,6 +83,7 @@ std::string getDictString(Dict *dict, const char *key)
- FontList getPdfFonts(std::shared_ptr<PDFDoc> pdf_doc);
- std::string getNameWithoutSubsetTag(std::string name);
- std::string getDictString(Dict *dict, const char *key);
-+std::string getString(const std::string &value);
- std::string getString(const GooString *value);
- std::string validateString(std::string const &in);
- 
diff --git a/graphics/inkscape/files/patch-src_extension_internal_pdfinput_svg-builder.cpp b/graphics/inkscape/files/patch-src_extension_internal_pdfinput_svg-builder.cpp
deleted file mode 100644
index 424efbc134d9..000000000000
--- a/graphics/inkscape/files/patch-src_extension_internal_pdfinput_svg-builder.cpp
+++ /dev/null
@@ -1,72 +0,0 @@
---- src/extension/internal/pdfinput/svg-builder.cpp.orig	2025-12-26 00:35:50 UTC
-+++ src/extension/internal/pdfinput/svg-builder.cpp
-@@ -32,6 +32,7 @@
- #include <poppler/GfxState.h>
- #include <poppler/Page.h>
- #include <poppler/Stream.h>
-+#include <poppler/goo/gmem.h>
- 
- #include "color.h"
- #include "color/cms-util.h"
-@@ -1385,7 +1386,7 @@ void SvgBuilder::updateFont(GfxState *state, std::shar
-     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");
-@@ -1397,7 +1398,7 @@ void SvgBuilder::updateTextShift(GfxState *state, doub
-  */
- 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;
-@@ -1451,7 +1452,7 @@ Inkscape::XML::Node* SvgBuilder::_flushTextText(GfxSta
- 
-     // 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");
-@@ -1545,8 +1546,8 @@ Inkscape::XML::Node* SvgBuilder::_flushTextText(GfxSta
-         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) {
- 
-@@ -2093,7 +2094,11 @@ Inkscape::XML::Node *SvgBuilder::_createImage(Stream *
-         } else {
-             image_stream = new ImageStream(str, width, 1, 1);
-         }
-+#if POPPLER_CHECK_VERSION(26, 0, 0)
-+        image_stream->rewind();
-+#else
-         image_stream->reset();
-+#endif
- 
-         // Convert grayscale values
-         unsigned char *buffer = new unsigned char[width];
-@@ -2119,7 +2124,11 @@ Inkscape::XML::Node *SvgBuilder::_createImage(Stream *
-         image_stream = new ImageStream(str, width,
-                                        color_map->getNumPixelComps(),
-                                        color_map->getBits());
-+#if POPPLER_CHECK_VERSION(26, 0, 0)
-+        image_stream->rewind();
-+#else
-         image_stream->reset();
-+#endif
- 
-         // Convert RGB values
-         unsigned int *buffer = new unsigned int[width];
diff --git a/graphics/inkscape/pkg-plist b/graphics/inkscape/pkg-plist
index 2eb9f09f03c2..7808e905f6e5 100644
--- a/graphics/inkscape/pkg-plist
+++ b/graphics/inkscape/pkg-plist
@@ -1,7 +1,7 @@
 bin/inkscape
 bin/inkview
 lib/inkscape/libinkscape_base.so
-lib/inkscape/libinkscape_base.so.1.4.3.0
+lib/inkscape/libinkscape_base.so.%%DISTVERSION%%.0
 share/applications/org.inkscape.Inkscape.desktop
 share/bash-completion/completions/inkscape
 share/icons/hicolor/16x16/apps/org.inkscape.Inkscape.png
@@ -4042,6 +4042,7 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
 %%DATADIR%%/palettes/Topographic.gpl
 %%DATADIR%%/palettes/Ubuntu.gpl
 %%DATADIR%%/palettes/echo-palette.gpl
+%%DATADIR%%/palettes/elementary.gpl
 %%DATADIR%%/palettes/inkscape.gpl
 %%DATADIR%%/palettes/svg.gpl
 %%DATADIR%%/palettes/webhex.gpl
@@ -4562,6 +4563,7 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
 %%DATADIR%%/tutorials/tutorial-tracing-pixelart.sr.svg
 %%DATADIR%%/tutorials/tutorial-tracing-pixelart.sv.svg
 %%DATADIR%%/tutorials/tutorial-tracing-pixelart.svg
+%%DATADIR%%/tutorials/tutorial-tracing-pixelart.tr.svg
 %%DATADIR%%/tutorials/tutorial-tracing-pixelart.uk.svg
 %%DATADIR%%/tutorials/tutorial-tracing-pixelart.zh_CN.svg
 %%DATADIR%%/tutorials/tutorial-tracing-pixelart.zh_TW.svg
@@ -4588,6 +4590,7 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
 %%DATADIR%%/tutorials/tutorial-tracing.sr.svg
 %%DATADIR%%/tutorials/tutorial-tracing.sv.svg
 %%DATADIR%%/tutorials/tutorial-tracing.svg
+%%DATADIR%%/tutorials/tutorial-tracing.tr.svg
 %%DATADIR%%/tutorials/tutorial-tracing.uk.svg
 %%DATADIR%%/tutorials/tutorial-tracing.vi.svg
 %%DATADIR%%/tutorials/tutorial-tracing.zh_CN.svg
@@ -4783,6 +4786,7 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
 %%NLS%%share/locale/zh_TW/LC_MESSAGES/inkscape.mo
 share/man/de/man1/inkscape.1.gz
 share/man/de/man1/inkview.1.gz
+share/man/es/man1/inkscape.1.gz
 share/man/es/man1/inkview.1.gz
 share/man/fr/man1/inkscape.1.gz
 share/man/fr/man1/inkview.1.gz
@@ -4801,4 +4805,3 @@ share/man/sv/man1/inkview.1.gz
 share/man/zh_TW/man1/inkscape.1.gz
 share/man/zh_TW/man1/inkview.1.gz
 share/metainfo/org.inkscape.Inkscape.appdata.xml
-@dir %%DATADIR%%/extensions/inkex/colors/spaces