From f3c43cd2f5f6e53c822f8961e3c34d04f08d92b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= Date: Sun, 5 Jul 2026 11:48:30 +0700 Subject: [PATCH 01/13] poppler: update to 26.07.0. --- common/shlibs | 2 +- srcpkgs/poppler/template | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/common/shlibs b/common/shlibs index 588535641b2ec1..269d0d8e3aa962 100644 --- a/common/shlibs +++ b/common/shlibs @@ -358,7 +358,7 @@ libMagickCore-7.Q16HDRI.so.10 libmagick-7.1.0.10_1 libMagickWand-7.Q16HDRI.so.10 libmagick-7.1.0.10_1 libMagick++-7.Q16HDRI.so.5 libmagick-7.0.11.1_1 libltdl.so.7 libltdl-2.2.6_1 -libpoppler.so.161 libpoppler-26.06.0_1 +libpoppler.so.162 libpoppler-26.07.0_1 libpoppler-glib.so.8 poppler-glib-0.18.2_1 libpoppler-cpp.so.3 poppler-cpp-26.04.0_1 libpoppler-qt5.so.1 poppler-qt5-0.31.0_1 diff --git a/srcpkgs/poppler/template b/srcpkgs/poppler/template index f44949728f6ef0..17c86fe08273c4 100644 --- a/srcpkgs/poppler/template +++ b/srcpkgs/poppler/template @@ -2,7 +2,7 @@ # # THIS PKG MUST BE SYNCHRONIZED WITH "srcpkgs/poppler-qt5". pkgname=poppler -version=26.06.0 +version=26.07.0 revision=1 _testVersion=f0068e9c530017ad811d1f28b95f9b7f59264e37 build_style=cmake @@ -24,7 +24,7 @@ homepage="https://poppler.freedesktop.org" changelog="https://gitlab.freedesktop.org/poppler/poppler/-/raw/master/NEWS" distfiles="https://poppler.freedesktop.org/poppler-${version}.tar.xz https://gitlab.freedesktop.org/poppler/test/-/archive/${_testVersion}/test-${_testVersion}.tar.gz" -checksum="4cb4e5a3dc8cb5eec751c8a23c8ba19f61f96dedc0cd07d2aee6b0c8e2cf6ba4 +checksum="304832f48f8a47fdca90c6b6d1f684e68f37c10c9a0726f345f4ca9df4ca01e2 aad943a9848723920773ec46e79e74f3c410a1b7194231e38b5ebd18dc6588a6" skip_extraction="test-${_testVersion}.tar.gz" From 9b289220a60a60420b1e2eb39f4cd43ebae55fa3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= Date: Sun, 5 Jul 2026 11:48:34 +0700 Subject: [PATCH 02/13] poppler-qt5: update to 26.07.0. --- srcpkgs/poppler-qt5/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/poppler-qt5/template b/srcpkgs/poppler-qt5/template index 5822c6937ebfd5..97ce3537800946 100644 --- a/srcpkgs/poppler-qt5/template +++ b/srcpkgs/poppler-qt5/template @@ -4,7 +4,7 @@ # IT IS SPLIT TO AVOID A CYCLIC DEPENDENCY: qt5 -> cups -> poppler -> qt5. # pkgname=poppler-qt5 -version=26.06.0 +version=26.07.0 revision=1 build_style=cmake configure_args="-DENABLE_UNSTABLE_API_ABI_HEADERS=ON -DENABLE_GLIB=OFF @@ -21,7 +21,7 @@ license="GPL-2.0-or-later, GPL-3.0-or-later" homepage="https://poppler.freedesktop.org" changelog="https://gitlab.freedesktop.org/poppler/poppler/-/raw/master/NEWS" distfiles="https://poppler.freedesktop.org/poppler-${version}.tar.xz" -checksum=4cb4e5a3dc8cb5eec751c8a23c8ba19f61f96dedc0cd07d2aee6b0c8e2cf6ba4 +checksum=304832f48f8a47fdca90c6b6d1f684e68f37c10c9a0726f345f4ca9df4ca01e2 # fails to find a bunch of files make_check=no From 73f55a448faf318ce744a442b519db669555036c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= Date: Sun, 5 Jul 2026 11:53:38 +0700 Subject: [PATCH 03/13] calligra: rebuild for poppler-26.07.0 --- srcpkgs/calligra/template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/srcpkgs/calligra/template b/srcpkgs/calligra/template index 07a15398bb6f5d..a523ea122da832 100644 --- a/srcpkgs/calligra/template +++ b/srcpkgs/calligra/template @@ -1,7 +1,7 @@ # Template file for 'calligra' pkgname=calligra version=26.04.1 -revision=2 +revision=3 build_style=cmake configure_args="-DCALLIGRA_SHOULD_BUILD_UNMAINTAINED=ON -DKDE_INSTALL_QTPLUGINDIR=lib/qt6/plugins From 5fceb8d695f36c8e192a6a310dd2190fd7984b0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= Date: Sun, 5 Jul 2026 11:53:38 +0700 Subject: [PATCH 04/13] fim: rebuild for poppler-26.07.0 --- srcpkgs/fim/template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/srcpkgs/fim/template b/srcpkgs/fim/template index a761d170eac452..3dfbd6fe2729a9 100644 --- a/srcpkgs/fim/template +++ b/srcpkgs/fim/template @@ -1,7 +1,7 @@ # Template file for 'fim' pkgname=fim version=0.7.1 -revision=8 +revision=9 build_style=gnu-configure configure_args="--enable-poppler" make_check_args="-j1" From 2b1e107ab4917cf10381d390f91814ca5c4263f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= Date: Sun, 5 Jul 2026 11:53:38 +0700 Subject: [PATCH 05/13] inkscape: rebuild for poppler-26.07.0 --- .../patches/musl-ext-translations.patch | 7 +- .../inkscape/patches/poppler_26.00.0.patch | 104 ++++++ .../inkscape/patches/poppler_26.02.0.patch | 205 ++++++++++ .../inkscape/patches/poppler_26.03.0.patch | 47 +++ .../inkscape/patches/poppler_26.04.0.patch | 353 ------------------ .../inkscape/patches/poppler_26.06.0.patch | 143 ++++++- .../inkscape/patches/poppler_26.07.0.patch | 318 ++++++++++++++++ srcpkgs/inkscape/template | 2 +- 8 files changed, 804 insertions(+), 375 deletions(-) create mode 100644 srcpkgs/inkscape/patches/poppler_26.00.0.patch create mode 100644 srcpkgs/inkscape/patches/poppler_26.02.0.patch create mode 100644 srcpkgs/inkscape/patches/poppler_26.03.0.patch create mode 100644 srcpkgs/inkscape/patches/poppler_26.07.0.patch diff --git a/srcpkgs/inkscape/patches/musl-ext-translations.patch b/srcpkgs/inkscape/patches/musl-ext-translations.patch index fb09d4bb25c8bd..772300d9387721 100644 --- a/srcpkgs/inkscape/patches/musl-ext-translations.patch +++ b/srcpkgs/inkscape/patches/musl-ext-translations.patch @@ -12,11 +12,9 @@ Fixes https://gitlab.com/inkscape/inkscape/-/work_items/6126 src/extension/extension.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/src/extension/extension.cpp b/src/extension/extension.cpp -index 47f3eca72f..b6ce3778e2 100644 --- a/src/extension/extension.cpp +++ b/src/extension/extension.cpp -@@ -468,7 +468,7 @@ void Extension::lookup_translation_catalog() { +@@ -468,7 +468,7 @@ void Extension::lookup_translation_catal // register catalog with gettext if found, disable translation for this extension otherwise if (!_gettext_catalog_dir.empty()) { char const *current_dir = bindtextdomain(_translationdomain, nullptr); @@ -25,6 +23,3 @@ index 47f3eca72f..b6ce3778e2 100644 g_info("Binding textdomain '%s' to '%s'.", _translationdomain, _gettext_catalog_dir.c_str()); bindtextdomain(_translationdomain, _gettext_catalog_dir.c_str()); bind_textdomain_codeset(_translationdomain, "UTF-8"); --- -GitLab - diff --git a/srcpkgs/inkscape/patches/poppler_26.00.0.patch b/srcpkgs/inkscape/patches/poppler_26.00.0.patch new file mode 100644 index 00000000000000..fa6f2de197ac6f --- /dev/null +++ b/srcpkgs/inkscape/patches/poppler_26.00.0.patch @@ -0,0 +1,104 @@ +diff --git a/src/extension/internal/pdfinput/pdf-input.cpp b/src/extension/internal/pdfinput/pdf-input.cpp +index 7b5e0ecb1db7aaa062fe0c9c2b0ee5476ada1329..45df931f00ea462c70ec78e1236ed4c383172eab 100644 +--- a/src/extension/internal/pdfinput/pdf-input.cpp ++++ b/src/extension/internal/pdfinput/pdf-input.cpp +@@ -33,6 +33,7 @@ + #include + #include + #include ++#include + #endif + + #include +diff --git a/src/extension/internal/pdfinput/svg-builder.cpp b/src/extension/internal/pdfinput/svg-builder.cpp +index 6c78247dfbd21e3680dcac1396cfdda470d7995e..8b2e6f3d54341273eac5630ad95bc927d3519b7b 100644 +--- a/src/extension/internal/pdfinput/svg-builder.cpp ++++ b/src/extension/internal/pdfinput/svg-builder.cpp +@@ -32,6 +32,7 @@ + #include + #include + #include ++#include + + #include "color.h" + #include "color/cms-util.h" +@@ -2093,7 +2094,11 @@ Inkscape::XML::Node *SvgBuilder::_createImage(Stream *str, int width, int height + } 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 *str, int width, int height + 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]; + + From 7e74f51fc097d725dde29fadff5440cc69658172 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ji=C5=99=C3=AD=20Faist?= +Date: Mon, 2 Feb 2026 17:39:08 +0100 +Subject: [PATCH] Fix warning with poppler 26.x.x + +--- + .../internal/pdfinput/svg-builder.cpp | 24 +++++++++++++++++-- + 1 file changed, 22 insertions(+), 2 deletions(-) + +diff --git a/src/extension/internal/pdfinput/svg-builder.cpp b/src/extension/internal/pdfinput/svg-builder.cpp +index 8b2e6f3d54..94d4342dc4 100644 +--- a/src/extension/internal/pdfinput/svg-builder.cpp ++++ b/src/extension/internal/pdfinput/svg-builder.cpp +@@ -2095,7 +2095,17 @@ Inkscape::XML::Node *SvgBuilder::_createImage(Stream *str, int width, int height + image_stream = new ImageStream(str, width, 1, 1); + } + #if POPPLER_CHECK_VERSION(26, 0, 0) +- image_stream->rewind(); ++ if(!image_stream->rewind()) ++ { ++ g_warning("ImageStream: Failed to rewind image stream"); ++ png_destroy_write_struct(&png_ptr, &info_ptr); ++ if (!_embed_images) { ++ fclose(fp); ++ g_free(file_name); ++ } ++ delete image_stream; ++ return nullptr; ++ } + #else + image_stream->reset(); + #endif +@@ -2125,7 +2135,17 @@ Inkscape::XML::Node *SvgBuilder::_createImage(Stream *str, int width, int height + color_map->getNumPixelComps(), + color_map->getBits()); + #if POPPLER_CHECK_VERSION(26, 0, 0) +- image_stream->rewind(); ++ if(!image_stream->rewind()) ++ { ++ g_warning("ImageStream: Failed to rewind image stream"); ++ png_destroy_write_struct(&png_ptr, &info_ptr); ++ if (!_embed_images) { ++ fclose(fp); ++ g_free(file_name); ++ } ++ delete image_stream; ++ return nullptr; ++ } + #else + image_stream->reset(); + #endif +-- +GitLab + + diff --git a/srcpkgs/inkscape/patches/poppler_26.02.0.patch b/srcpkgs/inkscape/patches/poppler_26.02.0.patch new file mode 100644 index 00000000000000..c769cf7b278233 --- /dev/null +++ b/srcpkgs/inkscape/patches/poppler_26.02.0.patch @@ -0,0 +1,205 @@ +From cbea002d86f70ddbb525ac7633dfceedb73ff652 Mon Sep 17 00:00:00 2001 +From: KrIr17 +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 + +Fixes https://gitlab.com/inkscape/inkscape/-/issues/6054 +--- + .../internal/pdfinput/pdf-parser.cpp | 36 ++++++++++++++++--- + .../pdfinput/poppler-transition-api.h | 10 ++++++ + .../internal/pdfinput/svg-builder.cpp | 10 +++--- + 3 files changed, 47 insertions(+), 9 deletions(-) + +diff --git a/src/extension/internal/pdfinput/pdf-parser.cpp b/src/extension/internal/pdfinput/pdf-parser.cpp +index ba6c448513..c44bef277f 100644 +--- a/src/extension/internal/pdfinput/pdf-parser.cpp ++++ b/src/extension/internal/pdfinput/pdf-parser.cpp +@@ -653,7 +653,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); + } + +@@ -661,7 +665,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); + } + +@@ -1565,7 +1573,13 @@ void PdfParser::doShadingPatternFillFallback(GfxShadingPattern *sPat, + + // restore graphics state + restoreState(); ++#if POPPLER_CHECK_VERSION(26, 2, 0) ++ state->clearPath(); ++ GfxPath *currPath = const_cast(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(state->getPath()); ++ currPath->append(savedPath); ++#else + state->setPath(savedPath); ++#endif + } + } + +@@ -2213,7 +2233,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"); +@@ -2227,7 +2247,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 { +@@ -2254,7 +2274,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)); + +@@ -2289,7 +2309,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 == ' ') { +@@ -2964,7 +2984,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(str), dict.getDict()).release(); ++#else + str = str->addFilters(dict.getDict()); ++#endif + #else + str = new EmbedStream(parser->getStream(), &dict, gFalse, 0); + str = str->addFilters(&dict); +@@ -3138,7 +3162,11 @@ void PdfParser::loadOptionalContentLayers(Dict *resources) + // Normally we'd use poppler optContentIsVisible, but these dict + // objects don't retain their references so can't be used directly. + for (auto &[ref, ocg] : ocgs->getOCGs()) { ++#if POPPLER_CHECK_VERSION(26, 2, 0) ++ if (ocg->getName()->toStr() == label) ++#else + if (ocg->getName()->cmp(label) == 0) ++#endif + visible = ocg->getState() == OptionalContentGroup::On; + } + 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 866b630bb6..65788128b7 100644 +--- a/src/extension/internal/pdfinput/poppler-transition-api.h ++++ b/src/extension/internal/pdfinput/poppler-transition-api.h +@@ -15,6 +15,16 @@ + #include + #include + ++#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 94d4342dc4..d854ed8a2e 100644 +--- a/src/extension/internal/pdfinput/svg-builder.cpp ++++ b/src/extension/internal/pdfinput/svg-builder.cpp +@@ -1386,7 +1386,7 @@ void SvgBuilder::updateFont(GfxState *state, std::shared_ptr 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"); +@@ -1398,7 +1398,7 @@ void SvgBuilder::updateFont(GfxState *state, std::shared_ptr 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; +@@ -1452,7 +1452,7 @@ Inkscape::XML::Node* SvgBuilder::_flushTextText(GfxState *state, double text_sca + + // Text direction is a property of the 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"); +@@ -1546,8 +1546,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 + + diff --git a/srcpkgs/inkscape/patches/poppler_26.03.0.patch b/srcpkgs/inkscape/patches/poppler_26.03.0.patch new file mode 100644 index 00000000000000..0dbdcca1505d58 --- /dev/null +++ b/srcpkgs/inkscape/patches/poppler_26.03.0.patch @@ -0,0 +1,47 @@ +From 244771b2dc3e565cb02ad3d46812d0c4add3b7c0 Mon Sep 17 00:00:00 2001 +From: Matthias Kilian +Date: Wed, 11 Mar 2026 23:17:00 +0100 +Subject: [PATCH] Fix build with poppler-26.03.0. + +(cherry picked from commit 754a866b878623554ade26d53496eeb8687c4685) +--- + src/extension/internal/pdfinput/pdf-parser.cpp | 4 ++++ + src/extension/internal/pdfinput/poppler-utils.cpp | 4 ++++ + 2 files changed, 8 insertions(+) + +diff --git a/src/extension/internal/pdfinput/pdf-parser.cpp b/src/extension/internal/pdfinput/pdf-parser.cpp +index c44bef277f..9f9fcea40a 100644 +--- a/src/extension/internal/pdfinput/pdf-parser.cpp ++++ b/src/extension/internal/pdfinput/pdf-parser.cpp +@@ -2951,7 +2951,11 @@ Stream *PdfParser::buildImageStream() { + + // build dictionary + #if defined(POPPLER_NEW_OBJECT_API) ++#if POPPLER_CHECK_VERSION(26, 3, 0) ++ dict = Object(std::make_unique(xref)); ++#else + dict = Object(new Dict(xref)); ++#endif + #else + dict.initDict(xref); + #endif +diff --git a/src/extension/internal/pdfinput/poppler-utils.cpp b/src/extension/internal/pdfinput/poppler-utils.cpp +index fac42152eb..b85963e65e 100644 +--- a/src/extension/internal/pdfinput/poppler-utils.cpp ++++ b/src/extension/internal/pdfinput/poppler-utils.cpp +@@ -88,7 +88,11 @@ InkFontDict::InkFontDict(XRef *xref, Ref *fontDictRef, Dict *fontDict) + 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; + } +-- +GitLab + + diff --git a/srcpkgs/inkscape/patches/poppler_26.04.0.patch b/srcpkgs/inkscape/patches/poppler_26.04.0.patch index a397e720633b26..e8d79478632fe6 100644 --- a/srcpkgs/inkscape/patches/poppler_26.04.0.patch +++ b/srcpkgs/inkscape/patches/poppler_26.04.0.patch @@ -1,356 +1,3 @@ -diff --git a/src/extension/internal/pdfinput/pdf-input.cpp b/src/extension/internal/pdfinput/pdf-input.cpp -index 7b5e0ecb1db7aaa062fe0c9c2b0ee5476ada1329..45df931f00ea462c70ec78e1236ed4c383172eab 100644 ---- a/src/extension/internal/pdfinput/pdf-input.cpp -+++ b/src/extension/internal/pdfinput/pdf-input.cpp -@@ -33,6 +33,7 @@ - #include - #include - #include -+#include - #endif - - #include -diff --git a/src/extension/internal/pdfinput/svg-builder.cpp b/src/extension/internal/pdfinput/svg-builder.cpp -index 6c78247dfbd21e3680dcac1396cfdda470d7995e..8b2e6f3d54341273eac5630ad95bc927d3519b7b 100644 ---- a/src/extension/internal/pdfinput/svg-builder.cpp -+++ b/src/extension/internal/pdfinput/svg-builder.cpp -@@ -32,6 +32,7 @@ - #include - #include - #include -+#include - - #include "color.h" - #include "color/cms-util.h" -@@ -2093,7 +2094,11 @@ Inkscape::XML::Node *SvgBuilder::_createImage(Stream *str, int width, int height - } 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 *str, int width, int height - 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]; - - From 7e74f51fc097d725dde29fadff5440cc69658172 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Ji=C5=99=C3=AD=20Faist?= -Date: Mon, 2 Feb 2026 17:39:08 +0100 -Subject: [PATCH] Fix warning with poppler 26.x.x - ---- - .../internal/pdfinput/svg-builder.cpp | 24 +++++++++++++++++-- - 1 file changed, 22 insertions(+), 2 deletions(-) - -diff --git a/src/extension/internal/pdfinput/svg-builder.cpp b/src/extension/internal/pdfinput/svg-builder.cpp -index 8b2e6f3d54..94d4342dc4 100644 ---- a/src/extension/internal/pdfinput/svg-builder.cpp -+++ b/src/extension/internal/pdfinput/svg-builder.cpp -@@ -2095,7 +2095,17 @@ Inkscape::XML::Node *SvgBuilder::_createImage(Stream *str, int width, int height - image_stream = new ImageStream(str, width, 1, 1); - } - #if POPPLER_CHECK_VERSION(26, 0, 0) -- image_stream->rewind(); -+ if(!image_stream->rewind()) -+ { -+ g_warning("ImageStream: Failed to rewind image stream"); -+ png_destroy_write_struct(&png_ptr, &info_ptr); -+ if (!_embed_images) { -+ fclose(fp); -+ g_free(file_name); -+ } -+ delete image_stream; -+ return nullptr; -+ } - #else - image_stream->reset(); - #endif -@@ -2125,7 +2135,17 @@ Inkscape::XML::Node *SvgBuilder::_createImage(Stream *str, int width, int height - color_map->getNumPixelComps(), - color_map->getBits()); - #if POPPLER_CHECK_VERSION(26, 0, 0) -- image_stream->rewind(); -+ if(!image_stream->rewind()) -+ { -+ g_warning("ImageStream: Failed to rewind image stream"); -+ png_destroy_write_struct(&png_ptr, &info_ptr); -+ if (!_embed_images) { -+ fclose(fp); -+ g_free(file_name); -+ } -+ delete image_stream; -+ return nullptr; -+ } - #else - image_stream->reset(); - #endif --- -GitLab - -From cbea002d86f70ddbb525ac7633dfceedb73ff652 Mon Sep 17 00:00:00 2001 -From: KrIr17 -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 - -Fixes https://gitlab.com/inkscape/inkscape/-/issues/6054 ---- - .../internal/pdfinput/pdf-parser.cpp | 36 ++++++++++++++++--- - .../pdfinput/poppler-transition-api.h | 10 ++++++ - .../internal/pdfinput/svg-builder.cpp | 10 +++--- - 3 files changed, 47 insertions(+), 9 deletions(-) - -diff --git a/src/extension/internal/pdfinput/pdf-parser.cpp b/src/extension/internal/pdfinput/pdf-parser.cpp -index ba6c448513..c44bef277f 100644 ---- a/src/extension/internal/pdfinput/pdf-parser.cpp -+++ b/src/extension/internal/pdfinput/pdf-parser.cpp -@@ -653,7 +653,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); - } - -@@ -661,7 +665,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); - } - -@@ -1565,7 +1573,13 @@ void PdfParser::doShadingPatternFillFallback(GfxShadingPattern *sPat, - - // restore graphics state - restoreState(); -+#if POPPLER_CHECK_VERSION(26, 2, 0) -+ state->clearPath(); -+ GfxPath *currPath = const_cast(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(state->getPath()); -+ currPath->append(savedPath); -+#else - state->setPath(savedPath); -+#endif - } - } - -@@ -2213,7 +2233,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"); -@@ -2227,7 +2247,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 { -@@ -2254,7 +2274,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)); - -@@ -2289,7 +2309,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 == ' ') { -@@ -2964,7 +2984,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(str), dict.getDict()).release(); -+#else - str = str->addFilters(dict.getDict()); -+#endif - #else - str = new EmbedStream(parser->getStream(), &dict, gFalse, 0); - str = str->addFilters(&dict); -@@ -3138,7 +3162,11 @@ void PdfParser::loadOptionalContentLayers(Dict *resources) - // Normally we'd use poppler optContentIsVisible, but these dict - // objects don't retain their references so can't be used directly. - for (auto &[ref, ocg] : ocgs->getOCGs()) { -+#if POPPLER_CHECK_VERSION(26, 2, 0) -+ if (ocg->getName()->toStr() == label) -+#else - if (ocg->getName()->cmp(label) == 0) -+#endif - visible = ocg->getState() == OptionalContentGroup::On; - } - 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 866b630bb6..65788128b7 100644 ---- a/src/extension/internal/pdfinput/poppler-transition-api.h -+++ b/src/extension/internal/pdfinput/poppler-transition-api.h -@@ -15,6 +15,16 @@ - #include - #include - -+#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 94d4342dc4..d854ed8a2e 100644 ---- a/src/extension/internal/pdfinput/svg-builder.cpp -+++ b/src/extension/internal/pdfinput/svg-builder.cpp -@@ -1386,7 +1386,7 @@ void SvgBuilder::updateFont(GfxState *state, std::shared_ptr 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"); -@@ -1398,7 +1398,7 @@ void SvgBuilder::updateFont(GfxState *state, std::shared_ptr 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; -@@ -1452,7 +1452,7 @@ Inkscape::XML::Node* SvgBuilder::_flushTextText(GfxState *state, double text_sca - - // Text direction is a property of the 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"); -@@ -1546,8 +1546,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 - -From 244771b2dc3e565cb02ad3d46812d0c4add3b7c0 Mon Sep 17 00:00:00 2001 -From: Matthias Kilian -Date: Wed, 11 Mar 2026 23:17:00 +0100 -Subject: [PATCH] Fix build with poppler-26.03.0. - -(cherry picked from commit 754a866b878623554ade26d53496eeb8687c4685) ---- - src/extension/internal/pdfinput/pdf-parser.cpp | 4 ++++ - src/extension/internal/pdfinput/poppler-utils.cpp | 4 ++++ - 2 files changed, 8 insertions(+) - -diff --git a/src/extension/internal/pdfinput/pdf-parser.cpp b/src/extension/internal/pdfinput/pdf-parser.cpp -index c44bef277f..9f9fcea40a 100644 ---- a/src/extension/internal/pdfinput/pdf-parser.cpp -+++ b/src/extension/internal/pdfinput/pdf-parser.cpp -@@ -2951,7 +2951,11 @@ Stream *PdfParser::buildImageStream() { - - // build dictionary - #if defined(POPPLER_NEW_OBJECT_API) -+#if POPPLER_CHECK_VERSION(26, 3, 0) -+ dict = Object(std::make_unique(xref)); -+#else - dict = Object(new Dict(xref)); -+#endif - #else - dict.initDict(xref); - #endif -diff --git a/src/extension/internal/pdfinput/poppler-utils.cpp b/src/extension/internal/pdfinput/poppler-utils.cpp -index fac42152eb..b85963e65e 100644 ---- a/src/extension/internal/pdfinput/poppler-utils.cpp -+++ b/src/extension/internal/pdfinput/poppler-utils.cpp -@@ -88,7 +88,11 @@ InkFontDict::InkFontDict(XRef *xref, Ref *fontDictRef, Dict *fontDict) - 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; - } --- -GitLab - From f7a93dd8e28a08bb039d929df8415a838ba5642e Mon Sep 17 00:00:00 2001 From: KrIr17 Date: Thu, 9 Apr 2026 12:45:19 +0200 diff --git a/srcpkgs/inkscape/patches/poppler_26.06.0.patch b/srcpkgs/inkscape/patches/poppler_26.06.0.patch index 1f8b7f277d733a..257fb1a1237155 100644 --- a/srcpkgs/inkscape/patches/poppler_26.06.0.patch +++ b/srcpkgs/inkscape/patches/poppler_26.06.0.patch @@ -1,4 +1,50 @@ -Heavily modified patch in https://gitlab.com/inkscape/inkscape/-/merge_requests/7968 +From 1ad89c941bad5e42a3378cd8644a4c4cd3b6ea71 Mon Sep 17 00:00:00 2001 +From: KrIr17 +Date: Mon, 8 Jun 2026 20:16:32 +0200 +Subject: [PATCH] Fix Building with Poppler 26.06.0 + +- pdfparser: Some `const PDFRectangle *` to `const PDFRectangle &` [1] +- pdfparser: Some `const GfxColor *` to `const GfxColor &` [2] +- pdf-utils: Add a `getRect(const PDFRectangle &)` alongside `getRect(const + PDFRectangle *)` +- poppler-cairo-font-engine: `getKey()` now returns std::string and not + char[], so change `strcmp` to `std::string(...).compare(...)` [3] +- poppler-utils: `obj->dictGetKey()` etc. were removed; use + `obj->dict()->getKey()` instead (these have also existed in poppler + since the beginning, so shouldn't break any old poppler) [4,5] +- svg-builder: `convertGfxColor` now takes `const GfxColor &` as input. + A convenience function taking `const GfxColor *` (for older poppler) + now calls the new one after confirming `color` is a valid pointer +- svg-builder: `_addStopToGradient` now takes `const GfxColor &` as + input. This was used only in `convertGfxColor` and therefore doesn't + need a helper function for compatibility +- testfiles pdf-utils-test: `` to `<*.h>` (see e3eb1210) +- testfiles pdf-utils-test: Some `const PDFRectangle *` + to `const PDFRectangle &` [1] + +Fixes https://gitlab.com/inkscape/inkscape/-/work_items/6210 + +Upstream Commits: + +[1] https://gitlab.freedesktop.org/poppler/poppler/-/commit/d50a4510 +[2] https://gitlab.freedesktop.org/poppler/poppler/-/commit/0f94f530 +[3] https://gitlab.freedesktop.org/poppler/poppler/-/commit/a3de7f8a +[4] https://gitlab.freedesktop.org/poppler/poppler/-/commit/bb13b0f5 +[5] https://gitlab.freedesktop.org/poppler/poppler/-/commit/8ae0f8e7 +--- + src/extension/internal/pdfinput/pdf-input.cpp | 14 +++++- + .../internal/pdfinput/pdf-parser.cpp | 45 ++++++++++--------- + src/extension/internal/pdfinput/pdf-parser.h | 4 +- + src/extension/internal/pdfinput/pdf-utils.cpp | 7 ++- + src/extension/internal/pdfinput/pdf-utils.h | 1 + + .../pdfinput/poppler-cairo-font-engine.cpp | 2 +- + .../pdfinput/poppler-transition-api.h | 16 +++++++ + .../internal/pdfinput/poppler-utils.cpp | 20 +++++---- + .../internal/pdfinput/svg-builder.cpp | 36 +++++++++------ + src/extension/internal/pdfinput/svg-builder.h | 3 +- + testfiles/src/pdf-utils-test.cpp | 7 +-- + 11 files changed, 101 insertions(+), 54 deletions(-) + --- a/src/extension/internal/pdfinput/pdf-input.cpp +++ b/src/extension/internal/pdfinput/pdf-input.cpp @@ -808,7 +808,11 @@ PdfInput::add_builder_page(std::shared_p @@ -242,7 +288,7 @@ Heavily modified patch in https://gitlab.com/inkscape/inkscape/-/merge_requests/ return Geom::Rect(box->x1, box->y1, box->x2, box->y2); } -+Geom::Rect getRect(const PDFRectangle& box) ++Geom::Rect getRect(_POPPLER_CONST PDFRectangle &box) +{ + return Geom::Rect(box.x1, box.y1, box.x2, box.y2); +} @@ -256,7 +302,7 @@ Heavily modified patch in https://gitlab.com/inkscape/inkscape/-/merge_requests/ }; Geom::Rect getRect(_POPPLER_CONST PDFRectangle *box); -+Geom::Rect getRect(const PDFRectangle& box); ++Geom::Rect getRect(_POPPLER_CONST PDFRectangle &box); Geom::PathVector getPathV(GfxPath *gPath); #endif /* PDF_UTILS_H */ @@ -327,38 +373,105 @@ Heavily modified patch in https://gitlab.com/inkscape/inkscape/-/merge_requests/ case objStream: --- a/src/extension/internal/pdfinput/svg-builder.cpp +++ b/src/extension/internal/pdfinput/svg-builder.cpp -@@ -392,6 +392,11 @@ static std::string svgConvertGfxRGB(GfxR - return svgConvertRGBToText(r, g, b); - } +@@ -394,6 +394,14 @@ static std::string svgConvertGfxRGB(GfxR -+std::string SvgBuilder::convertGfxColor(const GfxColor& color, GfxColorSpace *space) -+{ -+ return convertGfxColor(&color, space); -+} -+ std::string SvgBuilder::convertGfxColor(const GfxColor *color, GfxColorSpace *space) { ++ if (!color) { ++ return ""; ++ } ++ return convertGfxColor(*color, space); ++} ++ ++std::string SvgBuilder::convertGfxColor(const GfxColor &color, GfxColorSpace *space) ++{ std::string icc = ""; -@@ -412,7 +417,7 @@ std::string SvgBuilder::convertGfxColor( + switch (space->getMode()) { + case csDeviceGray: +@@ -412,14 +420,14 @@ std::string SvgBuilder::convertGfxColor( } GfxRGB rgb; - space->getRGB(color, &rgb); -+ space->_POPPLER_GET_RGB(*color, &rgb); ++ space->_POPPLER_GET_RGB(color, &rgb); auto rgb_color = svgConvertGfxRGB(&rgb); if (!icc.empty()) { -@@ -1214,7 +1219,7 @@ void SvgBuilder::_addStopToGradient(Inks + Inkscape::CSSOStringStream icc_color; + icc_color << rgb_color << " icc-color(" << icc; + for (int i = 0; i < space->getNComps(); ++i) { +- icc_color << ", " << colToDbl((*color).c[i]); ++ icc_color << ", " << colToDbl((color).c[i]); + } + icc_color << ");"; + return icc_color.str(); +@@ -1204,7 +1212,7 @@ gchar *SvgBuilder::_createGradient(GfxSh + /** + * \brief Adds a stop with the given properties to the gradient's representation + */ +-void SvgBuilder::_addStopToGradient(Inkscape::XML::Node *gradient, double offset, GfxColor *color, GfxColorSpace *space, ++void SvgBuilder::_addStopToGradient(Inkscape::XML::Node *gradient, double offset, GfxColor &color, GfxColorSpace *space, + double opacity) + { + Inkscape::XML::Node *stop = _xml_doc->createElement("svg:stop"); +@@ -1214,7 +1222,7 @@ void SvgBuilder::_addStopToGradient(Inks if (space->getMode() == csDeviceGray) { // This is a transparency mask. GfxRGB rgb; - space->getRGB(color, &rgb); -+ space->_POPPLER_GET_RGB(*color, &rgb); ++ space->_POPPLER_GET_RGB(color, &rgb); double gray = (double)rgb.r / 65535.0; gray = CLAMP(gray, 0.0, 1.0); os_opacity << gray; +@@ -1255,8 +1263,8 @@ bool SvgBuilder::_addGradientStops(Inksc + if (!svgGetShadingColor(shading, 0.0, &stop1) || !svgGetShadingColor(shading, 1.0, &stop2)) { + return false; + } else { +- _addStopToGradient(gradient, 0.0, &stop1, space, 1.0); +- _addStopToGradient(gradient, 1.0, &stop2, space, 1.0); ++ _addStopToGradient(gradient, 0.0, stop1, space, 1.0); ++ _addStopToGradient(gradient, 1.0, stop2, space, 1.0); + } + } else if (type == _POPPLER_FUNCTION_TYPE_STITCHING) { + auto stitchingFunc = static_cast<_POPPLER_CONST StitchingFunction*>(func); +@@ -1269,7 +1277,7 @@ bool SvgBuilder::_addGradientStops(Inksc + // Add stops from all the stitched functions + GfxColor prev_color, color; + svgGetShadingColor(shading, bounds[0], &prev_color); +- _addStopToGradient(gradient, bounds[0], &prev_color, space, 1.0); ++ _addStopToGradient(gradient, bounds[0], prev_color, space, 1.0); + for ( int i = 0 ; i < num_funcs ; i++ ) { + svgGetShadingColor(shading, bounds[i + 1], &color); + // Add stops +@@ -1279,14 +1287,14 @@ bool SvgBuilder::_addGradientStops(Inksc + expE = (bounds[i + 1] - bounds[i])/expE; // approximate exponential as a single straight line at x=1 + if (encode[2*i] == 0) { // normal sequence + auto offset = (bounds[i + 1] - expE) / max_bound; +- _addStopToGradient(gradient, offset, &prev_color, space, 1.0); ++ _addStopToGradient(gradient, offset, prev_color, space, 1.0); + } else { // reflected sequence + auto offset = (bounds[i] + expE) / max_bound; +- _addStopToGradient(gradient, offset, &color, space, 1.0); ++ _addStopToGradient(gradient, offset, color, space, 1.0); + } + } + } +- _addStopToGradient(gradient, bounds[i + 1] / max_bound, &color, space, 1.0); ++ _addStopToGradient(gradient, bounds[i + 1] / max_bound, color, space, 1.0); + prev_color = color; + } + } else { // Unsupported function type --- a/src/extension/internal/pdfinput/svg-builder.h +++ b/src/extension/internal/pdfinput/svg-builder.h +@@ -186,7 +186,7 @@ private: + // Pattern creation + gchar *_createPattern(GfxPattern *pattern, GfxState *state, bool is_stroke=false); + gchar *_createGradient(GfxShading *shading, const Geom::Affine pat_matrix, bool for_shading = false); +- void _addStopToGradient(Inkscape::XML::Node *gradient, double offset, GfxColor *color, GfxColorSpace *space, ++ void _addStopToGradient(Inkscape::XML::Node *gradient, double offset, GfxColor &color, GfxColorSpace *space, + double opacity); + bool _addGradientStops(Inkscape::XML::Node *gradient, GfxShading *shading, + _POPPLER_CONST Function *func); @@ -240,6 +240,7 @@ private: // Colors diff --git a/srcpkgs/inkscape/patches/poppler_26.07.0.patch b/srcpkgs/inkscape/patches/poppler_26.07.0.patch new file mode 100644 index 00000000000000..9c1ff8f0d4a3c1 --- /dev/null +++ b/srcpkgs/inkscape/patches/poppler_26.07.0.patch @@ -0,0 +1,318 @@ +From fc52525f8d8d7d3e772c5bfa1bdfe9b33c7f9709 Mon Sep 17 00:00:00 2001 +From: KrIr17 +Date: Sat, 4 Jul 2026 14:07:44 +0200 +Subject: [PATCH] Fix building with Poppler 26.07.0 + +1. `arrayGetfoo()` to `getArray()->getFoo()` [1] +2. `streamGetFoo()` to `getStream()->getFoo()` [2] +3. indextolabel now requires an `std::string *` and not `GooString *` + introduced _POPPLER_STRING_26_7 that changes accordingly. + +Relevant poppler commits: + +[1] [Remove Object::arrayGetNF](https://gitlab.freedesktop.org/poppler/poppler/-/commit/d9ffc4c29d1975a5c81d6bac9d8a1b6dc5aa1f50): Technically only arrayGetNF was removed, but perusing the commit shows that all `arrayGetFoo` are being changed. I assume they are slated for removal in future releases. + +[2] [Remove Object::streamGetDict](gitlab.freedesktop.org/poppler/poppler/-/commit/87edb5a5c40e67e782e54a14a2251547b4acdfb5) + +[3] [Use std::string instead of GooString for label](https://gitlab.freedesktop.org/poppler/poppler/-/commit/9e34004aae04064f1b798b5e711e13d0dddacf9e) +--- + src/extension/internal/pdfinput/pdf-input.cpp | 5 +- + .../internal/pdfinput/pdf-parser.cpp | 54 +++++++++---------- + .../pdfinput/poppler-transition-api.h | 6 +++ + .../internal/pdfinput/poppler-utils.cpp | 29 +++++----- + .../internal/pdfinput/poppler-utils.h | 1 + + 5 files changed, 54 insertions(+), 41 deletions(-) + +--- a/src/extension/internal/pdfinput/pdf-input.cpp ++++ b/src/extension/internal/pdfinput/pdf-input.cpp +@@ -855,9 +855,10 @@ PdfInput::add_builder_page(std::shared_p + + // Parse the annotations + if (auto annots = page->getAnnotsObject(); annots.isArray()) { +- auto const size = annots.arrayGetLength(); ++ auto* annotsArray = annots.getArray(); ++ auto const size = annotsArray->getLength(); + for (int i = 0; i < size; i++) { +- pdf_parser.build_annots(annots.arrayGet(i), page_num); ++ pdf_parser.build_annots(annotsArray->get(i), page_num); + } + } + } +--- a/src/extension/internal/pdfinput/pdf-parser.cpp ++++ b/src/extension/internal/pdfinput/pdf-parser.cpp +@@ -293,8 +293,8 @@ PdfParser::PdfParser(std::shared_ptrgetCatalog(); +- GooString *label = new GooString(""); +- catalog->indexToLabel(page->getNum() - 1, label); ++ _POPPLER_STRING_26_7 label; ++ catalog->indexToLabel(page->getNum() - 1, &label); + builder->pushPage(getString(label), state); + } + +@@ -370,8 +370,8 @@ void PdfParser::parse(Object *obj, GBool + Object obj2; + + if (obj->isArray()) { +- for (int i = 0; i < obj->arrayGetLength(); ++i) { +- _POPPLER_CALL_ARGS(obj2, obj->arrayGet, i); ++ for (int i = 0; i < obj->getArray()->getLength(); ++i) { ++ _POPPLER_CALL_ARGS(obj2, obj->getArray()->get, i); + if (!obj2.isStream()) { + error(errInternal, -1, "Weird page contents"); + _POPPLER_FREE(obj2); +@@ -808,8 +808,8 @@ void PdfParser::opSetExtGState(Object ar + for (int &i : backdropColor.c) { + i = 0; + } +- for (int i = 0; i < obj3.arrayGetLength() && i < gfxColorMaxComps; ++i) { +- _POPPLER_CALL_ARGS(obj4, obj3.arrayGet, i); ++ for (int i = 0; i < obj3.getArray()->getLength() && i < gfxColorMaxComps; ++i) { ++ _POPPLER_CALL_ARGS(obj4, obj3.getArray()->get, i); + if (obj4.isNum()) { + backdropColor.c[i] = dblToCol(obj4.getNum()); + } +@@ -818,7 +818,7 @@ void PdfParser::opSetExtGState(Object ar + } + _POPPLER_FREE(obj3); + if (_POPPLER_CALL_ARGS_DEREF(obj3, obj2.dictLookup, "G").isStream()) { +- if (_POPPLER_CALL_ARGS_DEREF(obj4, obj3.streamGetDict()->lookup, "Group").isDict()) { ++ if (_POPPLER_CALL_ARGS_DEREF(obj4, obj3.getStream()->getDict()->lookup, "Group").isDict()) { + std::unique_ptr blendingColorSpace; + GBool isolated = gFalse; + GBool knockout = gFalse; +@@ -881,7 +881,7 @@ void PdfParser::doSoftMask(Object *str, + } + + // get stream dict +- dict = str->streamGetDict(); ++ dict = str->getStream()->getDict(); + + // check form type + _POPPLER_CALL_ARGS(obj1, dict->lookup, "FormType"); +@@ -898,7 +898,7 @@ void PdfParser::doSoftMask(Object *str, + return; + } + for (i = 0; i < 4; ++i) { +- _POPPLER_CALL_ARGS(obj2, obj1.arrayGet, i); ++ _POPPLER_CALL_ARGS(obj2, obj1.getArray()->get, i); + bbox[i] = obj2.getNum(); + _POPPLER_FREE(obj2); + } +@@ -908,7 +908,7 @@ void PdfParser::doSoftMask(Object *str, + _POPPLER_CALL_ARGS(obj1, dict->lookup, "Matrix"); + if (obj1.isArray()) { + for (i = 0; i < 6; ++i) { +- _POPPLER_CALL_ARGS(obj2, obj1.arrayGet, i); ++ _POPPLER_CALL_ARGS(obj2, obj1.getArray()->get, i); + m[i] = obj2.getNum(); + _POPPLER_FREE(obj2); + } +@@ -2378,7 +2378,7 @@ void PdfParser::opXObject(Object args[], + } + + //add layer at root if xObject has type OCG +- _POPPLER_CALL_ARGS(obj2, obj1.streamGetDict()->lookup, "OC"); ++ _POPPLER_CALL_ARGS(obj2, obj1.getStream()->getDict()->lookup, "OC"); + if(obj2.isDict()){ + auto type_dict = obj2.getDict(); + if (type_dict->lookup("Type").isName("OCG")) { +@@ -2396,7 +2396,7 @@ void PdfParser::opXObject(Object args[], + } + } + +- _POPPLER_CALL_ARGS(obj2, obj1.streamGetDict()->lookup, "Subtype"); ++ _POPPLER_CALL_ARGS(obj2, obj1.getStream()->getDict()->lookup, "Subtype"); + if (obj2.isName(const_cast("Image"))) { + _POPPLER_CALL_ARGS(refObj, res->lookupXObjectNF, name); + doImage(&refObj, obj1.getStream(), gFalse); +@@ -2404,7 +2404,7 @@ void PdfParser::opXObject(Object args[], + } else if (obj2.isName(const_cast("Form"))) { + doForm(&obj1); + } else if (obj2.isName(const_cast("PS"))) { +- _POPPLER_CALL_ARGS(obj3, obj1.streamGetDict()->lookup, "Level1"); ++ _POPPLER_CALL_ARGS(obj3, obj1.getStream()->getDict()->lookup, "Level1"); + } else if (obj2.isName()) { + error(errSyntaxError, getPos(), "Unknown XObject subtype '{0:s}'", obj2.getName()); + } else { +@@ -2535,7 +2535,7 @@ void PdfParser::doImage(Object * /*ref*/ + _POPPLER_CALL_ARGS(obj1, dict->lookup, "D"); + } + if (obj1.isArray()) { +- _POPPLER_CALL_ARGS(obj2, obj1.arrayGet, 0); ++ _POPPLER_CALL_ARGS(obj2, obj1.getArray()->get, 0); + if (obj2.isInt() && obj2.getInt() == 1) { + invert = gTrue; + } +@@ -2597,7 +2597,7 @@ void PdfParser::doImage(Object * /*ref*/ + goto err1; + } + maskStr = smaskObj.getStream(); +- maskDict = smaskObj.streamGetDict(); ++ maskDict = smaskObj.getStream()->getDict(); + _POPPLER_CALL_ARGS(obj1, maskDict->lookup, "Width"); + if (obj1.isNull()) { + _POPPLER_FREE(obj1); +@@ -2663,8 +2663,8 @@ void PdfParser::doImage(Object * /*ref*/ + } else if (maskObj.isArray()) { + // color key mask + int i; +- for (i = 0; i < maskObj.arrayGetLength() && i < 2*gfxColorMaxComps; ++i) { +- _POPPLER_CALL_ARGS(obj1, maskObj.arrayGet, i); ++ for (i = 0; i < maskObj.getArray()->getLength() && i < 2*gfxColorMaxComps; ++i) { ++ _POPPLER_CALL_ARGS(obj1, maskObj.getArray()->get, i); + maskColors[i] = obj1.getInt(); + _POPPLER_FREE(obj1); + } +@@ -2675,7 +2675,7 @@ void PdfParser::doImage(Object * /*ref*/ + goto err1; + } + maskStr = maskObj.getStream(); +- maskDict = maskObj.streamGetDict(); ++ maskDict = maskObj.getStream()->getDict(); + _POPPLER_CALL_ARGS(obj1, maskDict->lookup, "Width"); + if (obj1.isNull()) { + _POPPLER_FREE(obj1); +@@ -2722,7 +2722,7 @@ void PdfParser::doImage(Object * /*ref*/ + _POPPLER_CALL_ARGS(obj1, maskDict->lookup, "D"); + } + if (obj1.isArray()) { +- _POPPLER_CALL_ARGS(obj2, obj1.arrayGet, 0); ++ _POPPLER_CALL_ARGS(obj2, obj1.getArray()->get, 0); + if (obj2.isInt() && obj2.getInt() == 1) { + maskInvert = gTrue; + } +@@ -2775,7 +2775,7 @@ void PdfParser::doForm(Object *str, doub + } + + // get stream dict +- dict = str->streamGetDict(); ++ dict = str->getStream()->getDict(); + + // check form type + _POPPLER_CALL_ARGS(obj1, dict->lookup, "FormType"); +@@ -2792,7 +2792,7 @@ void PdfParser::doForm(Object *str, doub + return; + } + for (i = 0; i < 4; ++i) { +- _POPPLER_CALL_ARGS(obj1, bboxObj.arrayGet, i); ++ _POPPLER_CALL_ARGS(obj1, bboxObj.getArray()->get, i); + bbox[i] = obj1.getNum(); + _POPPLER_FREE(obj1); + } +@@ -2802,7 +2802,7 @@ void PdfParser::doForm(Object *str, doub + _POPPLER_CALL_ARGS(matrixObj, dict->lookup, "Matrix"); + if (matrixObj.isArray()) { + for (i = 0; i < 6; ++i) { +- _POPPLER_CALL_ARGS(obj1, matrixObj.arrayGet, i); ++ _POPPLER_CALL_ARGS(obj1, matrixObj.getArray()->get, i); + m[i] = obj1.getNum(); + _POPPLER_FREE(obj1); + } +@@ -3194,10 +3194,10 @@ void PdfParser::loadColorProfile() + return; + + Object outputIntents = catDict.dictLookup("OutputIntents"); +- if (!outputIntents.isArray() || outputIntents.arrayGetLength() != 1) ++ if (!outputIntents.isArray() || outputIntents.getArray()->getLength() != 1) + return; + +- Object firstElement = outputIntents.arrayGet(0); ++ Object firstElement = outputIntents.getArray()->get(0); + if (!firstElement.isDict()) + return; + +@@ -3245,7 +3245,7 @@ void PdfParser::build_annots(const Objec + _POPPLER_CALL_ARGS(Rect_obj, annot_dict->lookup, "Rect"); + if (Rect_obj.isArray()) { + for (int i = 0; i < 2; i++) { +- _POPPLER_CALL_ARGS(xy_obj, Rect_obj.arrayGet, i); ++ _POPPLER_CALL_ARGS(xy_obj, Rect_obj.getArray()->get, i); + offset[i] = xy_obj.getNum(); + } + doForm(&first_state_obj, offset); +--- a/src/extension/internal/pdfinput/poppler-transition-api.h ++++ b/src/extension/internal/pdfinput/poppler-transition-api.h +@@ -15,6 +15,12 @@ + #include + #include + ++#if POPPLER_CHECK_VERSION(26, 7, 0) ++#define _POPPLER_STRING_26_7 std::string ++#else ++#define _POPPLER_STRING_26_7 GooString ++#endif ++ + #if POPPLER_CHECK_VERSION(26, 6, 0) + #define _POPPLER_GET_GRAY(color, gray) getGray(color, gray) + #define _POPPLER_GET_RGB(color, rgb) getRGB(color, rgb) +--- a/src/extension/internal/pdfinput/poppler-utils.cpp ++++ b/src/extension/internal/pdfinput/poppler-utils.cpp +@@ -186,15 +186,16 @@ void InkFontDict::hashFontObject1(const + case objNull: + h->hash('z'); + break; +- case objArray: +- h->hash('a'); +- n = obj->arrayGetLength(); +- h->hash((char *)&n, sizeof(int)); +- for (i = 0; i < n; ++i) { +- const Object &obj2 = obj->arrayGetNF(i); +- hashFontObject1(&obj2, h); +- } +- break; ++ case objArray: { ++ h->hash('a'); ++ Array * objArray = obj->getArray(); ++ n = objArray->getLength(); ++ h->hash((char *)&n, sizeof(int)); ++ for (i = 0; i < n; ++i) { ++ const Object &obj2 = objArray->getNF(i); ++ hashFontObject1(&obj2, h); ++ } ++ } break; + case objDict: { + h->hash('d'); + auto objdict = obj->getDict(); +@@ -206,8 +207,7 @@ void InkFontDict::hashFontObject1(const + const Object &obj2 = objdict->getValNF(i); + hashFontObject1(&obj2, h); + } +- } +- break; ++ } break; + case objStream: + // this should never happen - streams must be indirect refs + break; +@@ -545,7 +545,7 @@ void _getFontsRecursive(std::shared_ptr< + continue; + + Ref resourcesRef; +- const Object resObj = obj2.streamGetDict()->lookup("Resources", &resourcesRef); ++ const Object resObj = obj2.getStream()->getDict()->lookup("Resources", &resourcesRef); + if (resourcesRef != Ref::INVALID() && !visitedObjects.insert(resourcesRef.num).second) + continue; + +@@ -610,6 +610,11 @@ std::string getString(const GooString *v + return ""; + } + ++std::string getString(const GooString &value) ++{ ++ return getString(value.toStr()); ++} ++ + /** + * Convert PDF strings, which can be formatted as UTF8, UTF16BE or UTF16LE into + * a predictable UTF8 string consistant with svg requirements. +--- a/src/extension/internal/pdfinput/poppler-utils.h ++++ b/src/extension/internal/pdfinput/poppler-utils.h +@@ -86,6 +86,7 @@ std::string getDictString(Dict *dict, co + std::string getString(const std::string &value); + std::string getString(const std::unique_ptr &value); + std::string getString(const GooString *value); ++std::string getString(const GooString &value); + std::string validateString(std::string const &in); + + // Replacate poppler FontDict diff --git a/srcpkgs/inkscape/template b/srcpkgs/inkscape/template index 6f3e68009650a4..295bffa3d465e4 100644 --- a/srcpkgs/inkscape/template +++ b/srcpkgs/inkscape/template @@ -1,7 +1,7 @@ # Template file for 'inkscape' pkgname=inkscape version=1.4.3 -revision=4 +revision=5 build_style=cmake make_check_target="check" hostmakedepends="automake gettext glib-devel intltool libgraphicsmagick-devel From 5c192f3595fe9f20e860bcd12c9c8214f7c98de8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= Date: Sun, 5 Jul 2026 11:53:38 +0700 Subject: [PATCH 06/13] kitinerary: rebuild for poppler-26.07.0 + zxing-cpp-3 --- .../kitinerary/patches/poppler-26.07.patch | 21 +++++++++++++++++++ srcpkgs/kitinerary/template | 2 +- 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 srcpkgs/kitinerary/patches/poppler-26.07.patch diff --git a/srcpkgs/kitinerary/patches/poppler-26.07.patch b/srcpkgs/kitinerary/patches/poppler-26.07.patch new file mode 100644 index 00000000000000..9778bfd77582b2 --- /dev/null +++ b/srcpkgs/kitinerary/patches/poppler-26.07.patch @@ -0,0 +1,21 @@ +From cec1c4393edfcae59aba009d219629dce2c28cbb Mon Sep 17 00:00:00 2001 +From: Nicolas Fella +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 + #include + #include ++#include + + #include + diff --git a/srcpkgs/kitinerary/template b/srcpkgs/kitinerary/template index b1a7f064b58853..3bb4b4483df586 100644 --- a/srcpkgs/kitinerary/template +++ b/srcpkgs/kitinerary/template @@ -1,7 +1,7 @@ # Template file for 'kitinerary' pkgname=kitinerary version=26.04.1 -revision=2 +revision=3 build_style=cmake configure_args="-DBUILD_TESTING=OFF -DKF6_HOST_TOOLING=/usr/lib/cmake -DKDE_INSTALL_QTPLUGINDIR=lib/qt6/plugins From 18b79a211abf2ca12064cfa0ebb43dc029d64d51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= Date: Sun, 5 Jul 2026 11:53:39 +0700 Subject: [PATCH 07/13] pdf2djvu: rebuild for poppler-26.07.0 --- srcpkgs/pdf2djvu/patches/poppler-26.07.0.patch | 17 +++++++++++++++++ srcpkgs/pdf2djvu/template | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 srcpkgs/pdf2djvu/patches/poppler-26.07.0.patch diff --git a/srcpkgs/pdf2djvu/patches/poppler-26.07.0.patch b/srcpkgs/pdf2djvu/patches/poppler-26.07.0.patch new file mode 100644 index 00000000000000..06d14140ea2197 --- /dev/null +++ b/srcpkgs/pdf2djvu/patches/poppler-26.07.0.patch @@ -0,0 +1,17 @@ +--- a/pdf-document-map.cc ++++ b/pdf-document-map.cc +@@ -41,9 +41,14 @@ pdf::DocumentMap::DocumentMap(const std: + std::unique_ptr doc(new pdf::Document(path)); + pdf::Catalog *catalog = doc->getCatalog(); + for (int i = 0; i < doc->getNumPages(); i++) { ++#if POPPLER_VERSION_INT >= 260700 ++ std::string str; ++ if (catalog->indexToLabel(i, &str)) { ++#else + pdf::String s; + if (catalog->indexToLabel(i, &s)) { + std::string str = pdf::string_as_utf8(&s); ++#endif + this->labels.push_back(str); + } + else diff --git a/srcpkgs/pdf2djvu/template b/srcpkgs/pdf2djvu/template index 1c318a486aabb5..8799b331c16eff 100644 --- a/srcpkgs/pdf2djvu/template +++ b/srcpkgs/pdf2djvu/template @@ -1,7 +1,7 @@ # Template file for 'pdf2djvu' pkgname=pdf2djvu version=0.9.19 -revision=13 +revision=14 build_style=gnu-configure hostmakedepends="pkg-config djvulibre gettext" makedepends="djvulibre-devel poppler-devel libgraphicsmagick-devel exiv2-devel From 82e1e07acc143dcb925d1a6375ae4c5747c78147 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= Date: Sun, 5 Jul 2026 11:53:39 +0700 Subject: [PATCH 08/13] scribus: rebuild for poppler-26.07.0 --- srcpkgs/scribus/patches/poppler-26.07.0.patch | 19 +++++++++++++++++++ srcpkgs/scribus/template | 2 +- 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 srcpkgs/scribus/patches/poppler-26.07.0.patch diff --git a/srcpkgs/scribus/patches/poppler-26.07.0.patch b/srcpkgs/scribus/patches/poppler-26.07.0.patch new file mode 100644 index 00000000000000..c6f9808e0d37d3 --- /dev/null +++ b/srcpkgs/scribus/patches/poppler-26.07.0.patch @@ -0,0 +1,19 @@ +--- a/scribus/plugins/import/pdf/slaoutput.cpp ++++ b/scribus/plugins/import/pdf/slaoutput.cpp +@@ -914,12 +914,13 @@ bool SlaOutputDev::handleWidgetAnnot(Ann + { + // Load children + QList radList; +- for (int i = 0; i < obj2.arrayGetLength(); i++) ++ const Array* array = obj2.getArray(); ++ for (int i = 0; i < array->getLength(); i++) + { +- const Object& childRef = obj2.arrayGetNF(i); ++ const Object& childRef = array->getNF(i); + if (!childRef.isRef()) + continue; +- Object childObj = obj2.arrayGet(i); ++ Object childObj = array->get(i); + if (!childObj.isDict()) + continue; + const Ref ref = childRef.getRef(); diff --git a/srcpkgs/scribus/template b/srcpkgs/scribus/template index 9c491c6598bdb8..e5b26ff5a30072 100644 --- a/srcpkgs/scribus/template +++ b/srcpkgs/scribus/template @@ -1,7 +1,7 @@ # Template file for 'scribus' pkgname=scribus version=1.6.6 -revision=2 +revision=3 build_style=cmake configure_args="-DWANT_DISTROBUILD=ON -DQT_PREFIX=${XBPS_CROSS_BASE}/usr -DWANT_GRAPHICSMAGICK=1 -DWANT_CPP20=ON" From 73029d8626fe9a33432db03981b790db174b076d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= Date: Sun, 5 Jul 2026 15:16:17 +0700 Subject: [PATCH 09/13] extra-cmake-modules: update to 6.27.0. --- .../extra-cmake-modules/patches/cross-shiboken.patch | 2 +- srcpkgs/extra-cmake-modules/patches/cross.patch | 10 +++++----- srcpkgs/extra-cmake-modules/patches/musl.patch | 2 +- srcpkgs/extra-cmake-modules/template | 6 +++--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/srcpkgs/extra-cmake-modules/patches/cross-shiboken.patch b/srcpkgs/extra-cmake-modules/patches/cross-shiboken.patch index 8db64b5661da26..0fa838e4ae3232 100644 --- a/srcpkgs/extra-cmake-modules/patches/cross-shiboken.patch +++ b/srcpkgs/extra-cmake-modules/patches/cross-shiboken.patch @@ -1,6 +1,6 @@ --- a/modules/ECMGeneratePythonBindings.cmake +++ b/modules/ECMGeneratePythonBindings.cmake -@@ -124,13 +124,30 @@ function(ecm_generate_python_bindings) +@@ -126,13 +126,30 @@ function(ecm_generate_python_bindings) endforeach() # Set up the options to pass to shiboken. diff --git a/srcpkgs/extra-cmake-modules/patches/cross.patch b/srcpkgs/extra-cmake-modules/patches/cross.patch index e497fa2bbc8cab..b93e668dbdada1 100644 --- a/srcpkgs/extra-cmake-modules/patches/cross.patch +++ b/srcpkgs/extra-cmake-modules/patches/cross.patch @@ -40,7 +40,7 @@ fallback will be used should `Qt6` is not available. Qt6ToolsTools --- a/modules/ECMAddQch.cmake +++ b/modules/ECMAddQch.cmake -@@ -458,6 +458,7 @@ function(ecm_add_qch target_name) +@@ -460,6 +460,7 @@ function(ecm_add_qch target_name) DESCRIPTION "Part of Qt5 tools" ) else() @@ -50,7 +50,7 @@ fallback will be used should `Qt6` is not available. TYPE REQUIRED --- a/modules/ECMFindQmlModule.cmake.in +++ b/modules/ECMFindQmlModule.cmake.in -@@ -52,6 +52,7 @@ endif() +@@ -54,6 +54,7 @@ endif() # If we haven't checked the version above, use qmlplugindump if (NOT CMAKE_CROSSCOMPILING AND NOT MODULE_NOTFOUND AND NOT @GENMODULE@_FOUND AND (NOT DEFINED QT6_IS_SHARED_LIBS_BUILD OR QT6_IS_SHARED_LIBS_BUILD)) if (QT_MAJOR_VERSION EQUAL "6") @@ -60,7 +60,7 @@ fallback will be used should `Qt6` is not available. else() --- a/modules/ECMGenerateQDoc.cmake +++ b/modules/ECMGenerateQDoc.cmake -@@ -55,7 +55,7 @@ add_custom_target(generate_qch) +@@ -57,7 +57,7 @@ add_custom_target(generate_qch) add_custom_target(install_qch_docs) function(ecm_generate_qdoc target qdocconf_file) @@ -71,7 +71,7 @@ fallback will be used should `Qt6` is not available. if (NOT Qt6Tools_FOUND OR NOT Qt6ToolsTools_FOUND) --- a/modules/ECMPoQmTools.cmake +++ b/modules/ECMPoQmTools.cmake -@@ -150,6 +150,7 @@ function(ecm_process_po_files_as_qm lang +@@ -152,6 +152,7 @@ function(ecm_process_po_files_as_qm lang if (QT_MAJOR_VERSION EQUAL "5") find_package(Qt5LinguistTools CONFIG REQUIRED) else() @@ -81,7 +81,7 @@ fallback will be used should `Qt6` is not available. --- a/modules/ECMQueryQt.cmake +++ b/modules/ECMQueryQt.cmake -@@ -56,6 +56,7 @@ if (QT_MAJOR_VERSION STREQUAL "5") +@@ -58,6 +58,7 @@ if (QT_MAJOR_VERSION STREQUAL "5") endif() elseif(QT_MAJOR_VERSION STREQUAL "6") # QUIET to accommodate the TRY option diff --git a/srcpkgs/extra-cmake-modules/patches/musl.patch b/srcpkgs/extra-cmake-modules/patches/musl.patch index 757a6570046bbd..5e7826da24667b 100644 --- a/srcpkgs/extra-cmake-modules/patches/musl.patch +++ b/srcpkgs/extra-cmake-modules/patches/musl.patch @@ -15,7 +15,7 @@ Signed-off-by: A. Wilcox --- a/kde-modules/KDECompilerSettings.cmake +++ b/kde-modules/KDECompilerSettings.cmake -@@ -322,6 +322,9 @@ if (UNIX) +@@ -331,6 +331,9 @@ if (UNIX) # implementation recognize it? _kde_add_platform_definitions(-D_LARGEFILE64_SOURCE) diff --git a/srcpkgs/extra-cmake-modules/template b/srcpkgs/extra-cmake-modules/template index 82b18dfb499f1f..bb7554c16b2057 100644 --- a/srcpkgs/extra-cmake-modules/template +++ b/srcpkgs/extra-cmake-modules/template @@ -1,7 +1,7 @@ # Template file for 'extra-cmake-modules' pkgname=extra-cmake-modules -version=6.25.0 -revision=2 +version=6.27.0 +revision=1 build_style=cmake configure_args="-DBUILD_HTML_DOCS=ON -DBUILD_TESTING=ON" hostmakedepends="python3-Sphinx qt6-tools qt6-base qt6-plugin-sqlite" @@ -12,7 +12,7 @@ maintainer="John " license="BSD-3-Clause" homepage="https://invent.kde.org/frameworks/extra-cmake-modules" distfiles="${KDE_SITE}/frameworks/${version%.*}/${pkgname}-${version}.tar.xz" -checksum=ffeb4951bf09b2b8ee17ef24a28b6de650c0db0f59ddffb9009b37cac63af348 +checksum=f3b5af578017a6a0f127fb1c31609db2e4f016e99b900d5a11f6ffb6c55006a3 python_version=3 do_check() { From 625e2fd0d38e2f853879ac2496445220b9fd9982 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= Date: Fri, 26 Jun 2026 12:54:37 +0700 Subject: [PATCH 10/13] zxing-cpp: update to 3.0.2. --- common/shlibs | 2 +- srcpkgs/zxing-cpp/template | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/common/shlibs b/common/shlibs index 269d0d8e3aa962..f834b4b742fd99 100644 --- a/common/shlibs +++ b/common/shlibs @@ -1525,7 +1525,7 @@ libdovecot-storage.so.0 dovecot-2.3.13_3 libdovecot-lda.so.0 dovecot-2.3.13_3 libdovecot-ldap.so.0 dovecot-plugin-ldap-2.4.1r4_1 libKF5Kirigami2.so.5 kirigami2-5.47.0_1 -libZXing.so.3 zxing-cpp-2.0.0_1 +libZXing.so.4 zxing-cpp-3.0.2_1 libfreerdp-client3.so.3 libfreerdp-3.22.0_1 libfreerdp-server-proxy3.so.3 libfreerdp-server-3.22.0_1 libfreerdp-server3.so.3 libfreerdp-server-3.22.0_1 diff --git a/srcpkgs/zxing-cpp/template b/srcpkgs/zxing-cpp/template index f772d0bb0cf69b..22ec5b24639667 100644 --- a/srcpkgs/zxing-cpp/template +++ b/srcpkgs/zxing-cpp/template @@ -1,9 +1,10 @@ # Template file for 'zxing-cpp' pkgname=zxing-cpp -version=2.3.0 -revision=2 +version=3.0.2 +revision=1 build_style=cmake -configure_args="-DZXING_BLACKBOX_TESTS=OFF -DZXING_DEPENDENCIES=LOCAL" +configure_args="-DZXING_BLACKBOX_TESTS=OFF -DZXING_DEPENDENCIES=LOCAL + -DZXING_WRITERS=BOTH" hostmakedepends="pkg-config" makedepends="stb" checkdepends="gtest-devel" @@ -13,7 +14,8 @@ license="Apache-2.0" homepage="https://github.com/zxing-cpp/zxing-cpp/" changelog="https://github.com/zxing-cpp/zxing-cpp/releases" distfiles="https://github.com/zxing-cpp/zxing-cpp/archive/refs/tags/v${version}.tar.gz" -checksum=64e4139103fdbc57752698ee15b5f0b0f7af9a0331ecbdc492047e0772c417ba +distfiles="https://github.com/zxing-cpp/zxing-cpp/releases/download/v${version}/zxing-cpp-${version}.tar.gz" +checksum=e957f13e2ad4e31badb3d9af3f6ba8999a3ca3c9cc4d6bafc98032f9cce1a090 if [ "$XBPS_CHECK_PKGS" ]; then configure_args+=" -DZXING_UNIT_TESTS=ON" From a25cbcd3413b6fa62e43ae91ab29e20a2795a477 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= Date: Fri, 26 Jun 2026 12:55:11 +0700 Subject: [PATCH 11/13] kf6-prison: rebuild for zxing-cpp-3.0.2 --- srcpkgs/kf6-prison/template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/srcpkgs/kf6-prison/template b/srcpkgs/kf6-prison/template index f0dd6e480e3ed9..8de9af9c718170 100644 --- a/srcpkgs/kf6-prison/template +++ b/srcpkgs/kf6-prison/template @@ -1,7 +1,7 @@ # Template file for 'kf6-prison' pkgname=kf6-prison version=6.25.0 -revision=1 +revision=2 build_style=cmake configure_args="-DKDE_INSTALL_QMLDIR=lib/qt6/qml" hostmakedepends="extra-cmake-modules qt6-tools qt6-base From 569829227fd666dbb743befbdb607558fea2a524 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= Date: Fri, 26 Jun 2026 12:55:11 +0700 Subject: [PATCH 12/13] mediastreamer: rebuild for zxing-cpp-3.0.2 --- srcpkgs/mediastreamer/patches/zxing-3.patch | 24 +++++++++++++++++++++ srcpkgs/mediastreamer/template | 2 +- 2 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 srcpkgs/mediastreamer/patches/zxing-3.patch diff --git a/srcpkgs/mediastreamer/patches/zxing-3.patch b/srcpkgs/mediastreamer/patches/zxing-3.patch new file mode 100644 index 00000000000000..8fc76ac44f1ce8 --- /dev/null +++ b/srcpkgs/mediastreamer/patches/zxing-3.patch @@ -0,0 +1,24 @@ +--- a/src/videofilters/zxing_qrcode.cpp ++++ b/src/videofilters/zxing_qrcode.cpp +@@ -44,8 +44,10 @@ + #define ZX_USE_UTF8 + #if ZXING_USE_BUILD_INTERFACE + #include ++#include + #else + #include ++#include + #endif + + #if defined(__clang__) || ((__GNUC__ == 4 && __GNUC_MINOR__ >= 6) || __GNUC__ > 4) +@@ -120,6 +122,10 @@ static int set_decoder_rect(MSFilter *f, + qrc->decoderRect = *rect; + return 0; + } ++#if ZXING_VERSION_MAJOR >= 3 ++typedef ZXing::ReaderOptions DecodeHints; ++typedef ZXing::Barcodes Results; ++#endif + + static void read_qrcode(MSFilter *f) { + QRCodeReaderStruct *qrc = (QRCodeReaderStruct *)f->data; diff --git a/srcpkgs/mediastreamer/template b/srcpkgs/mediastreamer/template index 6420c29b9ab720..132de499844ca4 100644 --- a/srcpkgs/mediastreamer/template +++ b/srcpkgs/mediastreamer/template @@ -1,7 +1,7 @@ # Template file for 'mediastreamer' pkgname=mediastreamer version=5.3.106 -revision=4 +revision=5 build_style=cmake configure_args="-DENABLE_STRICT=0 -DENABLE_UNIT_TESTS=0 -DBUILD_SHARED_LIBS=TRUE -DENABLE_QT_GL=TRUE -DENABLE_FFMPEG=0 -DENABLE_LIBYUV=1" From 6eb7c79a0c367fb8645d84f35d533919b2b1227e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= Date: Tue, 30 Jun 2026 14:09:56 +0700 Subject: [PATCH 13/13] libreoffice: update to 26.2.5 --- .../libreoffice/patches/006-cross-flag.patch | 4 +- .../patches/007-cross-python.patch | 2 +- srcpkgs/libreoffice/patches/008-zxing.patch | 8 +- srcpkgs/libreoffice/patches/010-gpgmepp.patch | 6 +- .../patches/099-poppler-26.06.patch | 167 ------------------ srcpkgs/libreoffice/template | 156 ++++++++-------- 6 files changed, 85 insertions(+), 258 deletions(-) delete mode 100644 srcpkgs/libreoffice/patches/099-poppler-26.06.patch diff --git a/srcpkgs/libreoffice/patches/006-cross-flag.patch b/srcpkgs/libreoffice/patches/006-cross-flag.patch index 8f1182ce99fe66..817f174328a349 100644 --- a/srcpkgs/libreoffice/patches/006-cross-flag.patch +++ b/srcpkgs/libreoffice/patches/006-cross-flag.patch @@ -5,7 +5,7 @@ Description: Perhaps cleanup a bit and submit to upstream environment during build. --- a/configure.ac +++ b/configure.ac -@@ -6120,11 +6120,13 @@ if test "$cross_compiling" = "yes"; then +@@ -6195,11 +6195,13 @@ if test "$cross_compiling" = "yes"; then cp configure CONF-FOR-BUILD test -d config_build && cp -p config_build/*.h CONF-FOR-BUILD/config_host 2>/dev/null ( @@ -20,7 +20,7 @@ Description: Perhaps cleanup a bit and submit to upstream unset PKG_CONFIG_LIBDIR PKG_CONFIG_PATH if test -n "$CC_FOR_BUILD"; then export CC="$CC_FOR_BUILD" -@@ -6134,6 +6136,12 @@ if test "$cross_compiling" = "yes"; then +@@ -6209,6 +6211,12 @@ if test "$cross_compiling" = "yes"; then export CXX="$CXX_FOR_BUILD" CXX_BASE=`first_arg_basename "$CXX"` fi diff --git a/srcpkgs/libreoffice/patches/007-cross-python.patch b/srcpkgs/libreoffice/patches/007-cross-python.patch index c4e05a9a8067c2..845012176ae59d 100644 --- a/srcpkgs/libreoffice/patches/007-cross-python.patch +++ b/srcpkgs/libreoffice/patches/007-cross-python.patch @@ -2,7 +2,7 @@ Upstream: no Description: In VoidLinux, we always have same version of python in build and host --- a/configure.ac +++ b/configure.ac -@@ -10355,8 +10355,6 @@ if test "$build_os" != "cygwin" -a "$ena +@@ -10510,8 +10510,6 @@ if test "$build_os" != "cygwin" -a "$ena # harfbuzz is built using meson, and current meson requires at least python 3.7 AM_PATH_PYTHON([3.7],, [:]) fi diff --git a/srcpkgs/libreoffice/patches/008-zxing.patch b/srcpkgs/libreoffice/patches/008-zxing.patch index 25590c44a1a67a..ec8932abc617b2 100644 --- a/srcpkgs/libreoffice/patches/008-zxing.patch +++ b/srcpkgs/libreoffice/patches/008-zxing.patch @@ -5,7 +5,7 @@ Description: we should always check for full path Perhap we should changes the file hierarchy of zxing-cpp project instead? --- a/configure.ac +++ b/configure.ac -@@ -11882,35 +11882,16 @@ else +@@ -12002,35 +12002,16 @@ else SYSTEM_ZXING=TRUE ZXING_CFLAGS= AC_LANG_PUSH([C++]) @@ -46,7 +46,7 @@ Description: we should always check for full path FilterLibs "${ZXING_LIBS}" ZXING_LIBS="${filteredlibs}" else -@@ -11927,8 +11908,8 @@ else +@@ -12047,8 +12028,8 @@ else save_CXXFLAGS=$CXXFLAGS CXXFLAGS="$CXXFLAGS $CXXFLAGS_CXX11 $ZXING_CFLAGS" AC_COMPILE_IFELSE([AC_LANG_SOURCE([ @@ -71,9 +71,9 @@ Description: we should always check for full path -#include +#include #endif - #include -@@ -31,20 +31,20 @@ + #ifdef __GNUC__ +@@ -30,20 +30,20 @@ #pragma GCC diagnostic ignored "-Wshadow" #endif diff --git a/srcpkgs/libreoffice/patches/010-gpgmepp.patch b/srcpkgs/libreoffice/patches/010-gpgmepp.patch index 7d095a595ac5c2..1ac050421357f1 100644 --- a/srcpkgs/libreoffice/patches/010-gpgmepp.patch +++ b/srcpkgs/libreoffice/patches/010-gpgmepp.patch @@ -5,7 +5,7 @@ Description: we should always use full path for vendored file. --- a/comphelper/source/misc/docpasswordhelper.cxx +++ b/comphelper/source/misc/docpasswordhelper.cxx -@@ -39,9 +39,9 @@ +@@ -42,9 +42,9 @@ #include #if HAVE_FEATURE_GPGME @@ -20,7 +20,7 @@ Description: we should always use full path using ::com::sun::star::uno::Sequence; --- a/comphelper/source/misc/storagehelper.cxx +++ b/comphelper/source/misc/storagehelper.cxx -@@ -60,10 +60,10 @@ +@@ -58,10 +58,10 @@ #include #if HAVE_FEATURE_GPGME @@ -37,7 +37,7 @@ Description: we should always use full path using namespace ::com::sun::star; --- a/configure.ac +++ b/configure.ac -@@ -13318,7 +13318,7 @@ elif test \( \( "$_os" = "Linux" -o "$_o +@@ -13469,7 +13469,7 @@ elif test \( \( "$_os" = "Linux" -o "$_o SYSTEM_GPGMEPP=TRUE # C++ library doesn't come with fancy gpgmepp-config, check for headers the old-fashioned way diff --git a/srcpkgs/libreoffice/patches/099-poppler-26.06.patch b/srcpkgs/libreoffice/patches/099-poppler-26.06.patch deleted file mode 100644 index 4515a110f2cf02..00000000000000 --- a/srcpkgs/libreoffice/patches/099-poppler-26.06.patch +++ /dev/null @@ -1,167 +0,0 @@ -From b08afae7e41fd5ca3a4101de07366783b17b3887 Mon Sep 17 00:00:00 2001 -From: Xisco Fauli -Date: Wed, 3 Jun 2026 17:37:11 +0200 -Subject: [PATCH] poppler: upgrade to 26.06 - -Downloaded from https://poppler.freedesktop.org/poppler-26.06.0.tar.xz - -Change-Id: Idbcf3baf344f7400dad28d06e4a2b18118e647f4 -Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205964 -Reviewed-by: Xisco Fauli -Tested-by: Jenkins ---- - download.lst | 4 ++-- - external/poppler/disable-freetype.patch.1 | 4 ++-- - external/poppler/poppler-config.patch.1 | 12 +++++------ - .../pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx | 20 +++++++++++++++++-- - 4 files changed, 28 insertions(+), 12 deletions(-) - -diff --git a/download.lst b/download.lst -index 754ea432b3706..133fff9f415b6 100644 ---- a/download.lst -+++ b/download.lst -@@ -599,8 +599,8 @@ LIBTIFF_TARBALL := tiff-4.7.1.tar.xz - # three static lines - # so that git cherry-pick - # will not run into conflicts --POPPLER_SHA256SUM := 6fef27ff04f37db43054c86bcdff6128c9fb1f6af4ef3c8b369a7e9abd68d0bb --POPPLER_TARBALL := poppler-26.05.0.tar.xz -+POPPLER_SHA256SUM := 4cb4e5a3dc8cb5eec751c8a23c8ba19f61f96dedc0cd07d2aee6b0c8e2cf6ba4 -+POPPLER_TARBALL := poppler-26.06.0.tar.xz - POPPLER_DATA_SHA256SUM := c835b640a40ce357e1b83666aabd95edffa24ddddd49b8daff63adb851cdab74 - POPPLER_DATA_TARBALL := poppler-data-0.4.12.tar.gz - # three static lines -diff --git a/external/poppler/disable-freetype.patch.1 b/external/poppler/disable-freetype.patch.1 -index ea0d37ea24de4..26c9ca84c355f 100644 ---- a/external/poppler/disable-freetype.patch.1 -+++ b/external/poppler/disable-freetype.patch.1 -@@ -23,14 +23,14 @@ disable freetype dependent code - #include - - // helper for using std::visit to get a dependent false for static_asserts --@@ -2723,6 +2723,8 @@ -+@@ -2738,6 +2738,8 @@ - - Form::AddFontResult Form::addFontToDefaultResources(const std::string &filepath, int faceIndex, const std::string &fontFamily, const std::string &fontStyle, bool fontSubstitutedIn, bool forceName) - { - + return {}; - +#if 0 - if (!filepath.ends_with(".ttf") && !filepath.ends_with(".ttc") && !filepath.ends_with(".otf")) { -- error(errIO, -1, "We only support embedding ttf/ttc/otf fonts for now. The font file for {0:s} {1:s} was {2:s}", fontFamily.c_str(), fontStyle.c_str(), filepath.c_str()); -+ error(errIO, -1, "We only support embedding ttf/ttc/otf fonts for now. The font file for {0:r} {1:r} was {2:r}", &fontFamily, &fontStyle, &filepath); - return {}; - @@ -2974,6 +2974,7 @@ - } -diff --git a/external/poppler/poppler-config.patch.1 b/external/poppler/poppler-config.patch.1 -index 3a1f2c1eb6ba8..b6ace1d64f081 100644 ---- a/external/poppler/poppler-config.patch.1 -+++ b/external/poppler/poppler-config.patch.1 -@@ -120,7 +120,7 @@ index 0fbd336a..451213f8 100644 - +#define PACKAGE_NAME "poppler" - + - +/* Define to the full name and version of this package. */ --+#define PACKAGE_STRING "poppler 26.04.0" -++#define PACKAGE_STRING "poppler 26.06.0" - + - +/* Define to the one symbol short name of this package. */ - +#define PACKAGE_TARNAME "poppler" -@@ -129,7 +129,7 @@ index 0fbd336a..451213f8 100644 - +#define PACKAGE_URL "" - + - +/* Define to the version of this package. */ --+#define PACKAGE_VERSION "26.04.0" -++#define PACKAGE_VERSION "26.06.0" - + - +/* Poppler data dir */ - +#define POPPLER_DATADIR "/usr/local/share/poppler" -@@ -144,7 +144,7 @@ index 0fbd336a..451213f8 100644 - +#define USE_FLOAT 0 - + - +/* Version number of package */ --+#define VERSION "26.04.0" -++#define VERSION "26.06.0" - + - +#if defined(__APPLE__) - +#elif defined (_WIN32) -@@ -222,7 +222,7 @@ index 0fbd336a..451213f8 100644 - +#define POPPLER_CONFIG_H - + - +/* Defines the poppler version. */ --+#define POPPLER_VERSION "26.04.0" -++#define POPPLER_VERSION "26.06.0" - + - +/* Use single precision arithmetic in the Splash backend */ - +#define USE_FLOAT 0 -@@ -310,9 +310,9 @@ index 0fbd336a..451213f8 100644 - + - +#include "poppler-global.h" - + --+#define POPPLER_VERSION "26.04.0" -++#define POPPLER_VERSION "26.06.0" - +#define POPPLER_VERSION_MAJOR 26 --+#define POPPLER_VERSION_MINOR 04 -++#define POPPLER_VERSION_MINOR 06 - +#define POPPLER_VERSION_MICRO 0 - + - +namespace poppler -diff --git a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx -index 18c855908f024..ed91b55533349 100644 ---- a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx -+++ b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx -@@ -60,6 +60,10 @@ - #include "UTF8.h" - #endif - -+#if POPPLER_CHECK_VERSION(26, 6, 0) -+#include -+#endif -+ - #ifdef _WIN32 - # define snprintf _snprintf - -@@ -1223,7 +1227,9 @@ void PDFOutDev::drawImage(GfxState*, Object*, Stream* str, - { - GfxRGB aMinRGB; - colorMap->getColorSpace()->getRGB( --#if POPPLER_CHECK_VERSION(0, 82, 0) -+#if POPPLER_CHECK_VERSION(26, 6, 0) -+ *reinterpret_cast(maskColors), -+#elif POPPLER_CHECK_VERSION(0, 82, 0) - reinterpret_cast(maskColors), - #else - reinterpret_cast(maskColors), -@@ -1232,7 +1238,9 @@ void PDFOutDev::drawImage(GfxState*, Object*, Stream* str, - - GfxRGB aMaxRGB; - colorMap->getColorSpace()->getRGB( --#if POPPLER_CHECK_VERSION(0, 82, 0) -+#if POPPLER_CHECK_VERSION(26, 6, 0) -+ *(reinterpret_cast(maskColors)+gfxColorMaxComps), -+#elif POPPLER_CHECK_VERSION(0, 82, 0) - reinterpret_cast(maskColors)+gfxColorMaxComps, - #else - reinterpret_cast(maskColors)+gfxColorMaxComps, -@@ -1365,7 +1373,11 @@ poppler_bool PDFOutDev::tilingPatternFill(GfxState *state, Gfx *, Catalog *, - aBox.y2 = pBbox[3]; - - const int nDPI = 72; // GfxState seems to have 72.0 as magic for some reason -+#if POPPLER_CHECK_VERSION(26, 6, 0) -+ auto pSplashGfxState = new GfxState(nDPI, nDPI, aBox, 0, false); -+#else - auto pSplashGfxState = new GfxState(nDPI, nDPI, &aBox, 0, false); -+#endif - #if POPPLER_CHECK_VERSION(26, 2, 0) - auto pSplashOut = new SplashOutputDev(splashModeRGB8, 1, nullptr); - #else -@@ -1375,7 +1387,11 @@ poppler_bool PDFOutDev::tilingPatternFill(GfxState *state, Gfx *, Catalog *, - pSplashOut->startDoc(m_pDoc); - pSplashOut->startPage(0 /* pageNum */, pSplashGfxState, nullptr /* xref */); - -+#if POPPLER_CHECK_VERSION(26, 6, 0) -+ auto pSplashGfx = new Gfx(m_pDoc, pSplashOut, pResDict, aBox, nullptr); -+#else - auto pSplashGfx = new Gfx(m_pDoc, pSplashOut, pResDict, &aBox, nullptr); -+#endif - pSplashGfx->display(aStr); - std::unique_ptr pSplashBitmap(pSplashOut->takeBitmap()); - // Poppler tells us to free the splash device immediately after taking the diff --git a/srcpkgs/libreoffice/template b/srcpkgs/libreoffice/template index aea8a365d8f316..f138a405964e7f 100644 --- a/srcpkgs/libreoffice/template +++ b/srcpkgs/libreoffice/template @@ -1,6 +1,6 @@ # Template file for 'libreoffice' pkgname=libreoffice -version=26.2.4.2 +version=26.2.5.1 revision=1 build_helper="gir" build_style=configure # hack, avoid sourcing common/.../gnu-configure-args.sh @@ -59,13 +59,15 @@ maintainer="Đoàn Trần Công Danh " license="GPL-3.0-or-later" homepage="https://www.libreoffice.org/" +_basever=${version%.beta*} +_basever=${_basever%.*} # Source, dictionary, help and translations -_baseurl="https://download.documentfoundation.org/libreoffice/src/${version%.*}" +_baseurl="https://download.documentfoundation.org/libreoffice/src/${_basever}" _baseurl="https://downloadarchive.documentfoundation.org/libreoffice/old/${version}/src/" # Please don't remove this mirror, it's faster for me -# _baseurl="https://download.nus.edu.sg/mirror/tdf/libreoffice/src/${version%.*}" -# _baseurl="https://mirrors.nju.edu.cn/tdf/libreoffice/src/${version%.*}" -# _baseurl="https://mirrors.tuna.tsinghua.edu.cn/libreoffice/src/${version%.*}" +# _baseurl="https://download.nus.edu.sg/mirror/tdf/libreoffice/src/${_basever}" +# _baseurl="https://mirrors.nju.edu.cn/tdf/libreoffice/src/${_basever}" +# _baseurl="https://mirrors.tuna.tsinghua.edu.cn/libreoffice/src/${_basever}" _addurl="https://dev-www.libreoffice.org/src" _exturl="https://dev-www.libreoffice.org/extern" @@ -74,84 +76,76 @@ _exturl="https://dev-www.libreoffice.org/extern" distfiles=" ${_baseurl}/${pkgname}-${version}.tar.xz ${_baseurl}/${pkgname}-help-${version}.tar.xz - ${_baseurl}/${pkgname}-translations-${version}.tar.xz - ${_addurl}/a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip - ${_addurl}/ace6ab49184e329db254e454a010f56d-libxml-1.1.7.zip - ${_addurl}/language-subtag-registry-2025-07-15.tar.bz2 - ${_addurl}/d8bd5eed178db6e2b18eeed243f85aa8-flute-1.1.6.zip - ${_addurl}/ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip - ${_addurl}/pdfium-7471.tar.bz2 - ${_exturl}/officeotron-0.8.5.jar - ${_addurl}/skia-m142-f4ed99d2443962782cf5f8b4dd27179f131e7cbe.tar.xz - ${_exturl}/odfvalidator-0.9.0-RC2-SNAPSHOT-jar-with-dependencies-2726ab578664434a545f8379a01a9faffac0ae73.jar - ${_addurl}/dtoa-20180411.tgz - ${_addurl}/eeb2c7ddf0d302fba4bfc6e97eac9624-libbase-1.1.6.zip - ${_addurl}/3bdf40c0d199af31923e900d082ca2dd-libfonts-1.1.6.zip - ${_addurl}/3404ab6b1792ae5f16bbd603bd1e1d03-libformula-1.1.7.zip - ${_addurl}/db60e4fde8dd6d6807523deb71ee34dc-liblayout-0.2.10.zip - ${_addurl}/97b2d4dba862397f446b217e2b623e71-libloader-1.1.6.zip - ${_addurl}/8ce2fcd72becf06c41f7201d15373ed9-librepository-1.1.6.zip - ${_addurl}/f94d9870737518e3b597f9265f4e9803-libserializer-1.1.6.zip - ${_addurl}/39bb3fcea1514f1369fcfc87542390fd-sacjava-1.3.zip - ${_addurl}/frozen-1.2.0.tar.gz - ${_addurl}/dragonbox-1.1.3.tar.gz - ${_addurl}/Java-WebSocket-1.6.0.tar.gz - ${_addurl}/fast_float-8.2.2.tar.gz - ${_addurl}/zxcvbn-c-2.5.tar.gz -" -checksum="b9f9655442432998af2cd1034aeee802641aba4d0be6b6ce4fc10bec78ce4b9b - 491dbc6333a24a1856fe1690e4db981f83d451c6c850d84f7d0f2475317825f5 - b9fd1c2f21333f5b444c91abfec201bc7cf23854acef345133df78ca6ce094e0 - 75823776fb51a9c526af904f1503a7afaaab900fba83eda64f8a41073724c870 - 7d2797fe9f79a77009721e3f14fa4a1dec17a6d706bdc93f85f1f01d124fab66 - 2689f0a9a1fc21442d8097951fbca6d7013f9f9847f0b5e87144bd8e1355e052 - 1b5b24f7bc543c0362b667692f78db8bab4ed6dafc6172f104d0bd3757d8a133 - 233f66e8d25c5dd971716d4200203a612a407649686ef3b52075d04b4c9df0dd - 7144b0fa78fd408997e7b84ffd3c257db602e392a1bb1584828d80e60b6b27c5 - 0c2a4227394ac78147387f1c1ff1063e87f2151ffc91f1eb97bb17c2650fa708 - 45ae58e84fa2d1e261bfc980e1c5b7bbfaf83887e3813795bd343d3786f4d0bc - d55495ab3a86544650587de2a72180ddf8bfc6376d14ddfa923992dbc86a06e0 - 0082d0684f7db6f62361b76c4b7faba19e0c7ce5cb8e36c4b65fea8281e711b4 - 75c80359c9ce343c20aab8a36a45cb3b9ee7c61cf92c13ae45399d854423a9ba - e0531091787c0f16c83965fdcbc49162c059d7f0c64669e7f119699321549743 - 5826d1551bf599b85742545f6e01a0079b93c1b2c8434bf409eddb3a29e4726b - e1fb87f3f7b980d33414473279615c4644027e013012d156efa538bc2b031772 - 3d853b19b1d94a6efa69e7af90f7f2b09ecf302913bee3da796c15ecfebcfac8 - abe2c57ac12ba45d83563b02e240fa95d973376de2f720aab8fe11f2e621c095 - 05640a1f6805b2b2d7e2cb9c50db9a5cb084e3c52ab1a71ce015239b4a1d4343 - 085f2112c51fa8c1783fac12fbd452650596415121348393bb51f0f7e85a9045 - ed8339c017d7c5fe019ac2c642477f435278f0dc643c1d69d3f3b1e95915e823 - 09d63b05e9c594ec423778ab59b7a5aa1d76fdd71d25c7048b0258c4ec9c3384 - f3ce29efde338707241d47ab4784b19a1e3658bfa0564b5bc5f80c27e5118728 - e64b5fff88e04959154adbd5fb83331d91f2e04ac06454671cdfcbdff172b158 - 77d6c6ecb35952a8d8ce7f736b7a2bf466275c48210e309b73782d6b7e84dffd" -skip_extraction=" - a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip - ace6ab49184e329db254e454a010f56d-libxml-1.1.7.zip - language-subtag-registry-2025-07-15.tar.bz2 - d8bd5eed178db6e2b18eeed243f85aa8-flute-1.1.6.zip - ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip - pdfium-7471.tar.bz2 - officeotron-0.8.5.jar - skia-m142-f4ed99d2443962782cf5f8b4dd27179f131e7cbe.tar.xz - odfvalidator-0.9.0-RC2-SNAPSHOT-jar-with-dependencies-2726ab578664434a545f8379a01a9faffac0ae73.jar - dtoa-20180411.tgz - eeb2c7ddf0d302fba4bfc6e97eac9624-libbase-1.1.6.zip - 3bdf40c0d199af31923e900d082ca2dd-libfonts-1.1.6.zip - 3404ab6b1792ae5f16bbd603bd1e1d03-libformula-1.1.7.zip - db60e4fde8dd6d6807523deb71ee34dc-liblayout-0.2.10.zip - 97b2d4dba862397f446b217e2b623e71-libloader-1.1.6.zip - 8ce2fcd72becf06c41f7201d15373ed9-librepository-1.1.6.zip - f94d9870737518e3b597f9265f4e9803-libserializer-1.1.6.zip - 39bb3fcea1514f1369fcfc87542390fd-sacjava-1.3.zip - frozen-1.2.0.tar.gz - dragonbox-1.1.3.tar.gz - Java-WebSocket-1.6.0.tar.gz - fast_float-8.2.2.tar.gz - zxcvbn-c-2.5.tar.gz -" + ${_baseurl}/${pkgname}-translations-${version}.tar.xz" +checksum="cb78e4f7d625c647d031b010a1a906ad5bbed5090923b2f104420855bc94e2cd + bdf920df041877e2ca3a361e4d5267d0988be4cb90f83ae67d9e5df47ad2b1b2 + 6faa1bbd9af97cb3ab28781082b8ed9afb770245a8c0dfa307ca9a44a25e4a1f" replaces="libreoffice-firebird<6.2.4.2_1" +_distfile_add() { + distfiles+=" ${1}/${2}" + checksum+=" ${3}" + skip_extraction+=" ${2}" +} +_distfile_add "${_addurl}" \ + "a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip" \ + 75823776fb51a9c526af904f1503a7afaaab900fba83eda64f8a41073724c870 +_distfile_add "${_addurl}" "language-subtag-registry-2026-06-14.tar.bz2" \ + e74af13fd11fbcb24a5910d0f50e45d8505d86267bde2bb2d1d45aed966bc3bb +_distfile_add "${_addurl}" "pdfium-7471.tar.bz2" \ + 7144b0fa78fd408997e7b84ffd3c257db602e392a1bb1584828d80e60b6b27c5 +_distfile_add "${_exturl}" officeotron-0.8.5.jar \ + 0c2a4227394ac78147387f1c1ff1063e87f2151ffc91f1eb97bb17c2650fa708 +_distfile_add "${_addurl}" \ + skia-m142-f4ed99d2443962782cf5f8b4dd27179f131e7cbe.tar.xz \ + 45ae58e84fa2d1e261bfc980e1c5b7bbfaf83887e3813795bd343d3786f4d0bc +_distfile_add "${_exturl}" \ + odfvalidator-0.9.0-RC2-SNAPSHOT-jar-with-dependencies-2726ab578664434a545f8379a01a9faffac0ae73.jar \ + d55495ab3a86544650587de2a72180ddf8bfc6376d14ddfa923992dbc86a06e0 +_distfile_add "${_addurl}" \ + ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip \ + 233f66e8d25c5dd971716d4200203a612a407649686ef3b52075d04b4c9df0dd +_distfile_add "${_addurl}" \ + d8bd5eed178db6e2b18eeed243f85aa8-flute-1.1.6.zip \ + 1b5b24f7bc543c0362b667692f78db8bab4ed6dafc6172f104d0bd3757d8a133 +_distfile_add "${_addurl}" \ + eeb2c7ddf0d302fba4bfc6e97eac9624-libbase-1.1.6.zip \ + 75c80359c9ce343c20aab8a36a45cb3b9ee7c61cf92c13ae45399d854423a9ba +_distfile_add "${_addurl}" \ + 3bdf40c0d199af31923e900d082ca2dd-libfonts-1.1.6.zip \ + e0531091787c0f16c83965fdcbc49162c059d7f0c64669e7f119699321549743 +_distfile_add "${_addurl}" \ + 3404ab6b1792ae5f16bbd603bd1e1d03-libformula-1.1.7.zip \ + 5826d1551bf599b85742545f6e01a0079b93c1b2c8434bf409eddb3a29e4726b +_distfile_add "${_addurl}" \ + db60e4fde8dd6d6807523deb71ee34dc-liblayout-0.2.10.zip \ + e1fb87f3f7b980d33414473279615c4644027e013012d156efa538bc2b031772 +_distfile_add "${_addurl}" \ + 97b2d4dba862397f446b217e2b623e71-libloader-1.1.6.zip \ + 3d853b19b1d94a6efa69e7af90f7f2b09ecf302913bee3da796c15ecfebcfac8 +_distfile_add "${_addurl}" \ + 8ce2fcd72becf06c41f7201d15373ed9-librepository-1.1.6.zip \ + abe2c57ac12ba45d83563b02e240fa95d973376de2f720aab8fe11f2e621c095 +_distfile_add "${_addurl}" \ + f94d9870737518e3b597f9265f4e9803-libserializer-1.1.6.zip \ + 05640a1f6805b2b2d7e2cb9c50db9a5cb084e3c52ab1a71ce015239b4a1d4343 +_distfile_add "${_addurl}" \ + ace6ab49184e329db254e454a010f56d-libxml-1.1.7.zip \ + 7d2797fe9f79a77009721e3f14fa4a1dec17a6d706bdc93f85f1f01d124fab66 +_distfile_add "${_addurl}" \ + 39bb3fcea1514f1369fcfc87542390fd-sacjava-1.3.zip \ + 085f2112c51fa8c1783fac12fbd452650596415121348393bb51f0f7e85a9045 +_distfile_add "${_addurl}" frozen-1.2.0.tar.gz \ + ed8339c017d7c5fe019ac2c642477f435278f0dc643c1d69d3f3b1e95915e823 +_distfile_add "${_addurl}" dragonbox-1.1.3.tar.gz \ + 09d63b05e9c594ec423778ab59b7a5aa1d76fdd71d25c7048b0258c4ec9c3384 +_distfile_add "${_addurl}" Java-WebSocket-1.6.0.tar.gz \ + f3ce29efde338707241d47ab4784b19a1e3658bfa0564b5bc5f80c27e5118728 +_distfile_add "${_addurl}" fast_float-8.2.2.tar.gz \ + e64b5fff88e04959154adbd5fb83331d91f2e04ac06454671cdfcbdff172b158 +_distfile_add "${_exturl}" verapdf-cli-1.29.0.jar \ + bdeef807f7e883fe3ff4e0a4712dc216064ca670d5c857fbc94408266719f0f4 + build_options="java firebird" desc_option_java="Enable Java support" desc_option_firebird="Enable Firebird SDBC support"