commit a70158db017a8a8f2327a437b04291d94d30fd98f3e947801f44462821aa8c64 Author: Christophe Marin Date: Thu Jan 9 11:27:33 2025 +0000 - Add poppler 25.01 compatibility patch: * fix_build_with_poppler_25.01.0.patch OBS-URL: https://build.opensuse.org/package/show/KDE:Extra/scribus?expand=0&rev=93 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/0001-Fix-build-with-poppler-24.10.0.patch b/0001-Fix-build-with-poppler-24.10.0.patch new file mode 100644 index 0000000..e30abe6 --- /dev/null +++ b/0001-Fix-build-with-poppler-24.10.0.patch @@ -0,0 +1,105 @@ +From 4e83dbc1fd484d93c8d1f737f7dd393bdefce443 Mon Sep 17 00:00:00 2001 +From: jghali +Date: Tue, 15 Oct 2024 21:10:37 +0000 +Subject: [PATCH] Fix build with poppler 24.10.0 + +git-svn-id: svn://scribus.net/trunk/Scribus@26325 11d20701-8431-0410-a711-e3c959e3b870 +--- + scribus/plugins/import/pdf/slaoutput.cpp | 32 ++++++++++++++++++++++++ + scribus/plugins/import/pdf/slaoutput.h | 6 ++++- + 2 files changed, 37 insertions(+), 1 deletion(-) + +diff --git a/scribus/plugins/import/pdf/slaoutput.cpp b/scribus/plugins/import/pdf/slaoutput.cpp +index a0a2762..b96d097 100644 +--- a/scribus/plugins/import/pdf/slaoutput.cpp ++++ b/scribus/plugins/import/pdf/slaoutput.cpp +@@ -81,6 +81,8 @@ namespace + } + } + ++#if POPPLER_ENCODED_VERSION < POPPLER_VERSION_ENCODE(24, 10, 0) ++ + LinkSubmitForm::LinkSubmitForm(Object *actionObj) + { + if (!actionObj->isDict()) +@@ -111,6 +113,8 @@ LinkSubmitForm::~LinkSubmitForm() + delete fileName; + } + ++#endif ++ + LinkImportData::LinkImportData(Object *actionObj) + { + if (!actionObj->isDict()) +@@ -1078,6 +1082,30 @@ void SlaOutputDev::handleActions(PageItem* ite, AnnotWidget *ano) + } + } + } ++ else if (Lact->getKind() == actionResetForm) ++ { ++ ite->annotation().setActionType(4); ++ } ++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 10, 0) ++ else if (Lact->getKind() == actionSubmitForm) ++ { ++ const auto* impo = (LinkSubmitForm*) Lact; ++ if (impo->isOk()) ++ { ++ ite->annotation().setActionType(3); ++ ite->annotation().setAction(UnicodeParsedString(impo->getUrl())); ++ int fl = impo->getFlags(); ++ if (fl == 0) ++ ite->annotation().setHTML(0); ++ else if (fl == 4) ++ ite->annotation().setHTML(1); ++ else if (fl == 64) ++ ite->annotation().setHTML(2); ++ else if (fl == 512) ++ ite->annotation().setHTML(3); ++ } ++ } ++#endif + else if (Lact->getKind() == actionUnknown) + { + auto *uno = (LinkUnknown*) Lact; +@@ -1106,7 +1134,11 @@ void SlaOutputDev::handleActions(PageItem* ite, AnnotWidget *ano) + if (impo->isOk()) + { + ite->annotation().setActionType(3); ++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 10, 0) ++ ite->annotation().setAction(UnicodeParsedString(impo->getUrl())); ++#else + ite->annotation().setAction(UnicodeParsedString(impo->getFileName())); ++#endif + int fl = impo->getFlags(); + if (fl == 0) + ite->annotation().setHTML(0); +diff --git a/scribus/plugins/import/pdf/slaoutput.h b/scribus/plugins/import/pdf/slaoutput.h +index 5942120..ad6e628 100644 +--- a/scribus/plugins/import/pdf/slaoutput.h ++++ b/scribus/plugins/import/pdf/slaoutput.h +@@ -56,9 +56,11 @@ for which a new license (GPL+exception) is in place. + #include + + //------------------------------------------------------------------------ +-// LinkSubmitData ++// LinkSubmitForm + //------------------------------------------------------------------------ + ++#if POPPLER_ENCODED_VERSION < POPPLER_VERSION_ENCODE(24, 10, 0) ++ + class LinkSubmitForm: public LinkAction + { + public: +@@ -79,6 +81,8 @@ private: + int m_flags {0}; + }; + ++#endif ++ + //------------------------------------------------------------------------ + // LinkImportData + //------------------------------------------------------------------------ +-- +2.47.0 + diff --git a/0001-Make-sure-information-displayed-on-the-about-window-.patch b/0001-Make-sure-information-displayed-on-the-about-window-.patch new file mode 100644 index 0000000..6e42c85 --- /dev/null +++ b/0001-Make-sure-information-displayed-on-the-about-window-.patch @@ -0,0 +1,56 @@ +From a07bf4a6a200df8d8fed4a643af7d43a21ac1da6 Mon Sep 17 00:00:00 2001 +From: Christophe Giboudeaux +Date: Thu, 5 Sep 2019 12:16:58 +0200 +Subject: [PATCH] Make sure information displayed on the about window are + available + +The AUTHORS,COPYING,LINKS,TRANSLATION files are parsed to populate the +help/about window. + +We must ensure these files are always available (including on live CD). +--- + scribus/ui/about.cpp | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/scribus/ui/about.cpp b/scribus/ui/about.cpp +index 394f766..1c996ee 100644 +--- a/scribus/ui/about.cpp ++++ b/scribus/ui/about.cpp +@@ -146,7 +146,7 @@ About::About( QWidget* parent, AboutMode diaMode ) : QDialog( parent ) + tabLayout->setSpacing(6); + tabLayout->setContentsMargins(9, 9, 9, 9); + authorView = new QTextBrowser( tab_2 ); +- authorView->setHtml(About::parseAuthorFile(ScPaths::instance().docDir() + "AUTHORS")); ++ authorView->setHtml(About::parseAuthorFile(ScPaths::instance().shareDir() + "/aboutData/AUTHORS")); + tabLayout->addWidget( authorView ); + tabWidget2->addTab( tab_2, tr("A&uthors")); + +@@ -156,14 +156,14 @@ About::About( QWidget* parent, AboutMode diaMode ) : QDialog( parent ) + tabLayout_2->setSpacing(6); + tabLayout_2->setContentsMargins(9, 9, 9, 9); + transView = new QTextBrowser( tab_3); +- transView->setHtml(About::parseTranslationFile(ScPaths::instance().docDir() + "TRANSLATION")); ++ transView->setHtml(About::parseTranslationFile(ScPaths::instance().shareDir() + "/aboutData/TRANSLATION")); + tabLayout_2->addWidget( transView ); + tabWidget2->addTab( tab_3, tr("&Translations") ); + + /*! ONLINE tab (03/04/2004 petr vanek) */ + tab_4 = new QWidget( tabWidget2 ); + onlineView = new QTextBrowser( tab_4 ); +- onlineView->setHtml(About::parseLinksFile(ScPaths::instance().docDir() + "LINKS")); ++ onlineView->setHtml(About::parseLinksFile(ScPaths::instance().shareDir() + "/aboutData/LINKS")); + onlineView->setOpenExternalLinks(true); + tabLayout_4 = new QHBoxLayout( tab_4 ); + tabLayout_4->setSpacing(6); +@@ -192,7 +192,7 @@ About::About( QWidget* parent, AboutMode diaMode ) : QDialog( parent ) + textViewLicence = new QTextBrowser( tab_Licence); + licenceLayout->addWidget( textViewLicence ); + +- QFile licenceFile(ScPaths::instance().docDir() + "/COPYING"); ++ QFile licenceFile(ScPaths::instance().shareDir() + "/aboutData/COPYING"); + if (!licenceFile.open(QIODevice::ReadOnly | QIODevice::Text)) + textViewLicence->setPlainText(tr("Unable to open licence file. Please check your install directory or the Scribus website for licencing information.") ); + else +-- +2.44.0 + diff --git a/_constraints b/_constraints new file mode 100644 index 0000000..4496146 --- /dev/null +++ b/_constraints @@ -0,0 +1,7 @@ + + + + 5 + + + diff --git a/fix_build_with_poppler_24.12.0.patch b/fix_build_with_poppler_24.12.0.patch new file mode 100644 index 0000000..3c06736 --- /dev/null +++ b/fix_build_with_poppler_24.12.0.patch @@ -0,0 +1,1883 @@ +Subject: fix build with poppler 24.12.0 +## patch from arch linux +## https://gitlab.archlinux.org/archlinux/packaging/packages/scribus/-/blob/main/fix_build_with_poppler_24.12.0.patch?ref_type=heads + +Index: scribus-1.6.2/scribus/plugins/import/pdf/slaoutput.cpp +=================================================================== +--- scribus-1.6.2.orig/scribus/plugins/import/pdf/slaoutput.cpp ++++ scribus-1.6.2/scribus/plugins/import/pdf/slaoutput.cpp +@@ -8,9 +8,7 @@ for which a new license (GPL+exception) + #include "slaoutput.h" + + #include +-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0) + #include +-#endif + + #include + #include +@@ -81,6 +79,8 @@ namespace + } + } + ++#if POPPLER_ENCODED_VERSION < POPPLER_VERSION_ENCODE(24, 10, 0) ++ + LinkSubmitForm::LinkSubmitForm(Object *actionObj) + { + if (!actionObj->isDict()) +@@ -92,12 +92,12 @@ LinkSubmitForm::LinkSubmitForm(Object *a + Object obj3 = obj1.dictLookup("FS"); + if (!obj3.isNull() && obj3.isName()) + { +- POPPLER_CONST char *name = obj3.getName(); ++ const char *name = obj3.getName(); + if (!strcmp(name, "URL")) + { + Object obj2 = obj1.dictLookup("F"); + if (!obj2.isNull()) +- fileName = obj2.getString()->copy(); ++ m_url = obj2.getString()->copy(); + } + } + } +@@ -108,9 +108,11 @@ LinkSubmitForm::LinkSubmitForm(Object *a + + LinkSubmitForm::~LinkSubmitForm() + { +- delete fileName; ++ delete m_url; + } + ++#endif ++ + LinkImportData::LinkImportData(Object *actionObj) + { + if (!actionObj->isDict()) +@@ -162,7 +164,7 @@ void AnoOutputDev::stroke(GfxState *stat + currColorStroke = getColor(state->getStrokeColorSpace(), state->getStrokeColor(), &shade); + } + +-void AnoOutputDev::drawString(GfxState *state, POPPLER_CONST GooString *s) ++void AnoOutputDev::drawString(GfxState *state, const GooString *s) + { + int shade = 100; + currColorText = getColor(state->getFillColorSpace(), state->getFillColor(), &shade); +@@ -177,7 +179,7 @@ void AnoOutputDev::drawString(GfxState * + itemText = s->copy(); + } + +-QString AnoOutputDev::getColor(GfxColorSpace *color_space, POPPLER_CONST_070 GfxColor *color, int *shade) ++QString AnoOutputDev::getColor(GfxColorSpace *color_space, const GfxColor *color, int *shade) + { + QString fNam; + QString namPrefix = "FromPDF"; +@@ -218,7 +220,7 @@ QString AnoOutputDev::getColor(GfxColorS + { + auto* sepColorSpace = (GfxSeparationColorSpace*) color_space; + GfxColorSpace* altColorSpace = sepColorSpace->getAlt(); +- QString name(sepColorSpace->getName()->getCString()); ++ QString name(sepColorSpace->getName()->c_str()); + bool isRegistrationColor = (name == "All"); + if (isRegistrationColor) + { +@@ -308,8 +310,8 @@ LinkAction* SlaOutputDev::SC_getAction(A + obj = m_xref->fetch(refa.num, refa.gen); + if (obj.isDict()) + { +- Dict* adic = obj.getDict(); +- POPPLER_CONST_075 Object POPPLER_REF additionalActions = adic->lookupNF("A"); ++ const Dict* adic = obj.getDict(); ++ const Object & additionalActions = adic->lookupNF("A"); + Object additionalActionsObject = additionalActions.fetch(m_pdfDoc->getXRef()); + if (additionalActionsObject.isDict()) + { +@@ -328,23 +330,17 @@ LinkAction* SlaOutputDev::SC_getAction(A + } + + /* Replacement for the crippled Poppler function LinkAction* AnnotWidget::getAdditionalAction(AdditionalActionsType type) */ +-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0) + std::unique_ptr SlaOutputDev::SC_getAdditionalAction(const char *key, AnnotWidget *ano) + { + std::unique_ptr linkAction; +-#else +-LinkAction* SlaOutputDev::SC_getAdditionalAction(const char *key, AnnotWidget *ano) +-{ +- LinkAction *linkAction = nullptr; +-#endif + Object obj; + Ref refa = ano->getRef(); + + obj = m_xref->fetch(refa.num, refa.gen); + if (obj.isDict()) + { +- Dict* adic = obj.getDict(); +- POPPLER_CONST_075 Object POPPLER_REF additionalActions = adic->lookupNF("AA"); ++ const Dict* adic = obj.getDict(); ++ const Object & additionalActions = adic->lookupNF("AA"); + Object additionalActionsObject = additionalActions.fetch(m_pdfDoc->getXRef()); + if (additionalActionsObject.isDict()) + { +@@ -356,7 +352,7 @@ LinkAction* SlaOutputDev::SC_getAddition + return linkAction; + } + +-GBool SlaOutputDev::annotations_callback(Annot *annota, void *user_data) ++bool SlaOutputDev::annotations_callback(Annot *annota, void *user_data) + { + auto *dev = (SlaOutputDev*) user_data; + #if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0) +@@ -396,7 +392,7 @@ GBool SlaOutputDev::annotations_callback + + bool SlaOutputDev::handleTextAnnot(Annot* annota, double xCoor, double yCoor, double width, double height) + { +- auto *anl = (AnnotText*) annota; ++ const auto *anl = (AnnotText*) annota; + int z = m_doc->itemAdd(PageItem::TextFrame, PageItem::Rectangle, xCoor, yCoor, width, height, 0, CommonStrings::None, CommonStrings::None); + PageItem *ite = m_doc->Items->at(z); + int flg = annota->getFlags(); +@@ -448,7 +444,7 @@ bool SlaOutputDev::handleTextAnnot(Annot + + bool SlaOutputDev::handleLinkAnnot(Annot* annota, double xCoor, double yCoor, double width, double height) + { +- auto *anl = (AnnotLink*) annota; ++ const auto *anl = (AnnotLink*) annota; + LinkAction *act = anl->getAction(); + if (!act) + return false; +@@ -459,8 +455,8 @@ bool SlaOutputDev::handleLinkAnnot(Annot + QString fileName; + if (act->getKind() == actionGoTo) + { +- auto *gto = (LinkGoTo*) act; +- POPPLER_CONST LinkDest *dst = gto->getDest(); ++ const auto *gto = (LinkGoTo*) act; ++ const LinkDest *dst = gto->getDest(); + if (dst) + { + if (dst->getKind() == destXYZ) +@@ -468,11 +464,7 @@ bool SlaOutputDev::handleLinkAnnot(Annot + if (dst->isPageRef()) + { + Ref dstr = dst->getPageRef(); +-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 76, 0) + pagNum = m_pdfDoc->findPage(dstr); +-#else +- pagNum = m_pdfDoc->findPage(dstr.num, dstr.gen); +-#endif + } + else + pagNum = dst->getPageNum(); +@@ -483,24 +475,16 @@ bool SlaOutputDev::handleLinkAnnot(Annot + } + else + { +- POPPLER_CONST GooString *ndst = gto->getNamedDest(); ++ const GooString *ndst = gto->getNamedDest(); + if (ndst) + { +-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0) + std::unique_ptr dstn = m_pdfDoc->findDest(ndst); +-#else +- LinkDest *dstn = m_pdfDoc->findDest(ndst); +-#endif + if (dstn && (dstn->getKind() == destXYZ)) + { + if (dstn->isPageRef()) + { + Ref dstr = dstn->getPageRef(); +-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 76, 0) + pagNum = m_pdfDoc->findPage(dstr); +-#else +- pagNum = m_pdfDoc->findPage(dstr.num, dstr.gen); +-#endif + } + else + pagNum = dstn->getPageNum(); +@@ -513,9 +497,9 @@ bool SlaOutputDev::handleLinkAnnot(Annot + } + else if (act->getKind() == actionGoToR) + { +- auto *gto = (LinkGoToR*) act; ++ const auto *gto = (LinkGoToR*) act; + fileName = UnicodeParsedString(gto->getFileName()); +- POPPLER_CONST LinkDest *dst = gto->getDest(); ++ const LinkDest *dst = gto->getDest(); + if (dst) + { + if (dst->getKind() == destXYZ) +@@ -528,14 +512,10 @@ bool SlaOutputDev::handleLinkAnnot(Annot + } + else + { +- POPPLER_CONST GooString *ndst = gto->getNamedDest(); ++ const GooString *ndst = gto->getNamedDest(); + if (ndst) + { +-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0) + std::unique_ptr dstn = m_pdfDoc->findDest(ndst); +-#else +- LinkDest *dstn = m_pdfDoc->findDest(ndst); +-#endif + if (dstn && (dstn->getKind() == destXYZ)) + { + pagNum = dstn->getPageNum(); +@@ -548,7 +528,7 @@ bool SlaOutputDev::handleLinkAnnot(Annot + } + else if (act->getKind() == actionURI) + { +- auto *gto = (LinkURI*) act; ++ const auto *gto = (LinkURI*) act; + validLink = true; + fileName = UnicodeParsedString(gto->getURI()); + } +@@ -621,7 +601,7 @@ bool SlaOutputDev::handleWidgetAnnot(Ann + int wtyp = -1; + if (fm->getType() == formButton) + { +- auto *btn = (FormWidgetButton*) fm; ++ const auto *btn = (FormWidgetButton*) fm; + if (btn) + { + if (btn->getButtonType() == formButtonCheck) +@@ -648,7 +628,7 @@ bool SlaOutputDev::handleWidgetAnnot(Ann + } + else if (fm->getType() == formChoice) + { +- auto *btn = (FormWidgetChoice*) fm; ++ const auto *btn = (FormWidgetChoice*) fm; + if (btn) + { + if (btn->isCombo()) +@@ -670,7 +650,7 @@ bool SlaOutputDev::handleWidgetAnnot(Ann + bool bgFound = false; + if (achar) + { +- POPPLER_CONST AnnotColor *bgCol = achar->getBackColor(); ++ const AnnotColor *bgCol = achar->getBackColor(); + if (bgCol) + { + bgFound = true; +@@ -678,7 +658,7 @@ bool SlaOutputDev::handleWidgetAnnot(Ann + } + else + m_graphicStack.top().fillColor = CommonStrings::None; +- POPPLER_CONST AnnotColor *fgCol = achar->getBorderColor(); ++ const AnnotColor *fgCol = achar->getBorderColor(); + if (fgCol) + { + fgFound = true; +@@ -739,7 +719,7 @@ bool SlaOutputDev::handleWidgetAnnot(Ann + } + ite->setIsAnnotation(true); + ite->AutoName = false; +- AnnotBorder *brd = annota->getBorder(); ++ const AnnotBorder *brd = annota->getBorder(); + if (brd) + { + int bsty = brd->getStyle(); +@@ -761,7 +741,7 @@ bool SlaOutputDev::handleWidgetAnnot(Ann + ite->annotation().setBorderColor(CommonStrings::None); + ite->annotation().setBorderWidth(0); + } +- QString tmTxt = UnicodeParsedString(fm->getPartialName()); ++ QString tmTxt(UnicodeParsedString(fm->getPartialName())); + if (!tmTxt.isEmpty()) + ite->setItemName(tmTxt); + tmTxt.clear(); +@@ -794,7 +774,7 @@ bool SlaOutputDev::handleWidgetAnnot(Ann + ite->itemText.insertChars(itemText); + applyTextStyle(ite, fontName, currTextColor, fontSize); + ite->annotation().addToFlag(Annotation::Flag_PushButton); +- auto *btn = (FormWidgetButton*) fm; ++ const auto *btn = (FormWidgetButton*) fm; + if (!btn->isReadOnly()) + ite->annotation().addToFlag(Annotation::Flag_Edit); + handleActions(ite, ano); +@@ -829,7 +809,7 @@ bool SlaOutputDev::handleWidgetAnnot(Ann + } + else if (wtyp == Annotation::Checkbox) + { +- auto *btn = (FormWidgetButton*) fm; ++ const auto *btn = (FormWidgetButton*) fm; + if (btn) + { + ite->annotation().setIsChk(btn->getState()); +@@ -855,7 +835,7 @@ bool SlaOutputDev::handleWidgetAnnot(Ann + } + else if ((wtyp == Annotation::Combobox) || (wtyp == Annotation::Listbox)) + { +- auto *btn = (FormWidgetChoice*) fm; ++ const auto *btn = (FormWidgetChoice*) fm; + if (btn) + { + if (wtyp == 5) +@@ -878,7 +858,7 @@ bool SlaOutputDev::handleWidgetAnnot(Ann + } + else if (wtyp == Annotation::RadioButton) + { +- auto *btn = (FormWidgetButton*) fm; ++ const auto *btn = (FormWidgetButton*) fm; + if (btn) + { + ite->setItemName( CommonStrings::itemName_RadioButton + QString("%1").arg(m_doc->TotalItems)); +@@ -898,7 +878,7 @@ bool SlaOutputDev::handleWidgetAnnot(Ann + obj1 = m_xref->fetch(refa.num, refa.gen); + if (obj1.isDict()) + { +- Dict* dict = obj1.getDict(); ++ const Dict* dict = obj1.getDict(); + Object obj2 = dict->lookup("Kids"); + //childs + if (obj2.isArray()) +@@ -907,7 +887,7 @@ bool SlaOutputDev::handleWidgetAnnot(Ann + QList radList; + for (int i = 0; i < obj2.arrayGetLength(); i++) + { +- POPPLER_CONST_075 Object POPPLER_REF childRef = obj2.arrayGetNF(i); ++ const Object & childRef = obj2.arrayGetNF(i); + if (!childRef.isRef()) + continue; + Object childObj = obj2.arrayGet(i); +@@ -966,7 +946,7 @@ void SlaOutputDev::handleActions(PageIte + { + if (Lact->getKind() == actionJavaScript) + { +- auto *jsa = (LinkJavaScript*) Lact; ++ const auto *jsa = (LinkJavaScript*) Lact; + if (jsa->isOk()) + { + ite->annotation().setActionType(1); +@@ -978,8 +958,8 @@ void SlaOutputDev::handleActions(PageIte + int pagNum = 0; + int xco = 0; + int yco = 0; +- auto *gto = (LinkGoTo*) Lact; +- POPPLER_CONST LinkDest *dst = gto->getDest(); ++ const auto *gto = (LinkGoTo*) Lact; ++ const LinkDest *dst = gto->getDest(); + if (dst) + { + if (dst->getKind() == destXYZ) +@@ -987,11 +967,7 @@ void SlaOutputDev::handleActions(PageIte + if (dst->isPageRef()) + { + Ref dstr = dst->getPageRef(); +-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 76, 0) + pagNum = m_pdfDoc->findPage(dstr); +-#else +- pagNum = m_pdfDoc->findPage(dstr.num, dstr.gen); +-#endif + } + else + pagNum = dst->getPageNum(); +@@ -1004,24 +980,16 @@ void SlaOutputDev::handleActions(PageIte + } + else + { +- POPPLER_CONST GooString *ndst = gto->getNamedDest(); ++ const GooString *ndst = gto->getNamedDest(); + if (ndst) + { +-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0) + std::unique_ptr dstn = m_pdfDoc->findDest(ndst); +-#else +- LinkDest *dstn = m_pdfDoc->findDest(ndst); +-#endif + if (dstn && (dstn->getKind() == destXYZ)) + { + if (dstn->isPageRef()) + { + Ref dstr = dstn->getPageRef(); +-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 76, 0) + pagNum = m_pdfDoc->findPage(dstr); +-#else +- pagNum = m_pdfDoc->findPage(dstr.num, dstr.gen); +-#endif + } + else + pagNum = dstn->getPageNum(); +@@ -1039,9 +1007,9 @@ void SlaOutputDev::handleActions(PageIte + int pagNum = 0; + int xco = 0; + int yco = 0; +- auto *gto = (LinkGoToR*) Lact; ++ const auto *gto = (LinkGoToR*) Lact; + QString fileName = UnicodeParsedString(gto->getFileName()); +- POPPLER_CONST LinkDest *dst = gto->getDest(); ++ const LinkDest *dst = gto->getDest(); + if (dst) + { + if (dst->getKind() == destXYZ) +@@ -1057,14 +1025,10 @@ void SlaOutputDev::handleActions(PageIte + } + else + { +- POPPLER_CONST GooString *ndst = gto->getNamedDest(); ++ const GooString *ndst = gto->getNamedDest(); + if (ndst) + { +-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0) + std::unique_ptr dstn = m_pdfDoc->findDest(ndst); +-#else +- LinkDest *dstn = m_pdfDoc->findDest(ndst); +-#endif + if (dstn && (dstn->getKind() == destXYZ)) + { + pagNum = dstn->getPageNum(); +@@ -1078,9 +1042,33 @@ void SlaOutputDev::handleActions(PageIte + } + } + } ++ else if (Lact->getKind() == actionResetForm) ++ { ++ ite->annotation().setActionType(4); ++ } ++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 10, 0) ++ else if (Lact->getKind() == actionSubmitForm) ++ { ++ const auto* impo = (LinkSubmitForm*) Lact; ++ if (impo->isOk()) ++ { ++ ite->annotation().setActionType(3); ++ ite->annotation().setAction(UnicodeParsedString(impo->getUrl())); ++ int fl = impo->getFlags(); ++ if (fl == 0) ++ ite->annotation().setHTML(0); ++ else if (fl == 4) ++ ite->annotation().setHTML(1); ++ else if (fl == 64) ++ ite->annotation().setHTML(2); ++ else if (fl == 512) ++ ite->annotation().setHTML(3); ++ } ++ } ++#endif + else if (Lact->getKind() == actionUnknown) + { +- auto *uno = (LinkUnknown*) Lact; ++ const auto *uno = (LinkUnknown*) Lact; + QString actString = UnicodeParsedString(uno->getAction()); + if (actString == "ResetForm") + { +@@ -1106,7 +1094,7 @@ void SlaOutputDev::handleActions(PageIte + if (impo->isOk()) + { + ite->annotation().setActionType(3); +- ite->annotation().setAction(UnicodeParsedString(impo->getFileName())); ++ ite->annotation().setAction(UnicodeParsedString(impo->getUrl())); + int fl = impo->getFlags(); + if (fl == 0) + ite->annotation().setHTML(0); +@@ -1123,7 +1111,7 @@ void SlaOutputDev::handleActions(PageIte + } + else if (Lact->getKind() == actionNamed) + { +- auto *uno = (LinkNamed*) Lact; ++ const auto *uno = (LinkNamed*) Lact; + ite->annotation().setActionType(10); + ite->annotation().setAction(UnicodeParsedString(uno->getName())); + } +@@ -1135,143 +1123,91 @@ void SlaOutputDev::handleActions(PageIte + { + if (Aact->getKind() == actionJavaScript) + { +-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0) +- auto *jsa = (LinkJavaScript*) Aact.get(); +-#else +- auto *jsa = (LinkJavaScript*) Aact; +-#endif ++ const auto *jsa = (LinkJavaScript*) Aact.get(); + if (jsa->isOk()) + { + ite->annotation().setD_act(UnicodeParsedString(jsa->getScript())); + ite->annotation().setAAact(true); + } + } +-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0) + Aact.reset(); +-#else +- Aact = nullptr; +-#endif + } + Aact = SC_getAdditionalAction("E", ano); + if (Aact) + { + if (Aact->getKind() == actionJavaScript) + { +-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0) +- auto *jsa = (LinkJavaScript*) Aact.get(); +-#else +- auto *jsa = (LinkJavaScript*) Aact; +-#endif ++ const auto *jsa = (LinkJavaScript*) Aact.get(); + if (jsa->isOk()) + { + ite->annotation().setE_act(UnicodeParsedString(jsa->getScript())); + ite->annotation().setAAact(true); + } + } +-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0) + Aact.reset(); +-#else +- Aact = nullptr; +-#endif + } + Aact = SC_getAdditionalAction("X", ano); + if (Aact) + { + if (Aact->getKind() == actionJavaScript) + { +-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0) +- auto *jsa = (LinkJavaScript*) Aact.get(); +-#else +- auto *jsa = (LinkJavaScript*) Aact; +-#endif ++ const auto *jsa = (LinkJavaScript*) Aact.get(); + if (jsa->isOk()) + { + ite->annotation().setX_act(UnicodeParsedString(jsa->getScript())); + ite->annotation().setAAact(true); + } + } +-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0) + Aact.reset(); +-#else +- Aact = nullptr; +-#endif + } + Aact = SC_getAdditionalAction("Fo", ano); + if (Aact) + { + if (Aact->getKind() == actionJavaScript) + { +-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0) +- auto *jsa = (LinkJavaScript*) Aact.get(); +-#else +- auto *jsa = (LinkJavaScript*) Aact; +-#endif ++ const auto *jsa = (LinkJavaScript*) Aact.get(); + if (jsa->isOk()) + { + ite->annotation().setFo_act(UnicodeParsedString(jsa->getScript())); + ite->annotation().setAAact(true); + } + } +-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0) + Aact.reset(); +-#else +- Aact = nullptr; +-#endif + } + Aact = SC_getAdditionalAction("Bl", ano); + if (Aact) + { + if (Aact->getKind() == actionJavaScript) + { +-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0) +- auto *jsa = (LinkJavaScript*) Aact.get(); +-#else +- auto *jsa = (LinkJavaScript*) Aact; +-#endif ++ const auto *jsa = (LinkJavaScript*) Aact.get(); + if (jsa->isOk()) + { + ite->annotation().setBl_act(UnicodeParsedString(jsa->getScript())); + ite->annotation().setAAact(true); + } + } +-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0) + Aact.reset(); +-#else +- Aact = nullptr; +-#endif + } + Aact = SC_getAdditionalAction("C", ano); + if (Aact) + { + if (Aact->getKind() == actionJavaScript) + { +-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0) +- auto *jsa = (LinkJavaScript*) Aact.get(); +-#else +- auto *jsa = (LinkJavaScript*) Aact; +-#endif ++ const auto *jsa = (LinkJavaScript*) Aact.get(); + if (jsa->isOk()) + { + ite->annotation().setC_act(UnicodeParsedString(jsa->getScript())); + ite->annotation().setAAact(true); + } + } +-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0) + Aact.reset(); +-#else +- Aact = nullptr; +-#endif + } + Aact = SC_getAdditionalAction("F", ano); + if (Aact) + { + if (Aact->getKind() == actionJavaScript) + { +-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0) +- auto *jsa = (LinkJavaScript*) Aact.get(); +-#else +- autoz*jsa = (LinkJavaScript*) Aact; +-#endif ++ const auto *jsa = (LinkJavaScript*) Aact.get(); + if (jsa->isOk()) + { + ite->annotation().setF_act(UnicodeParsedString(jsa->getScript())); +@@ -1279,22 +1215,14 @@ void SlaOutputDev::handleActions(PageIte + ite->annotation().setFormat(5); + } + } +-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0) + Aact.reset(); +-#else +- Aact = nullptr; +-#endif + } + Aact = SC_getAdditionalAction("K", ano); + if (Aact) + { + if (Aact->getKind() == actionJavaScript) + { +-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0) +- auto *jsa = (LinkJavaScript*) Aact.get(); +-#else +- auto *jsa = (LinkJavaScript*) Aact; +-#endif ++ const auto *jsa = (LinkJavaScript*) Aact.get(); + if (jsa->isOk()) + { + ite->annotation().setK_act(UnicodeParsedString(jsa->getScript())); +@@ -1302,33 +1230,21 @@ void SlaOutputDev::handleActions(PageIte + ite->annotation().setFormat(5); + } + } +-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0) + Aact.reset(); +-#else +- Aact = nullptr; +-#endif + } + Aact = SC_getAdditionalAction("V", ano); + if (Aact) + { + if (Aact->getKind() == actionJavaScript) + { +-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0) +- auto *jsa = (LinkJavaScript*) Aact.get(); +-#else +- auto *jsa = (LinkJavaScript*) Aact; +-#endif ++ const auto *jsa = (LinkJavaScript*) Aact.get(); + if (jsa->isOk()) + { + ite->annotation().setV_act(UnicodeParsedString(jsa->getScript())); + ite->annotation().setAAact(true); + } + } +-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0) + Aact.reset(); +-#else +- Aact = nullptr; +-#endif + } + } + +@@ -1338,11 +1254,7 @@ void SlaOutputDev::startDoc(PDFDoc *doc, + m_catalog = catA; + m_pdfDoc = doc; + m_updateGUICounter = 0; +-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 84, 0) + m_fontEngine = new SplashFontEngine(true, false, false, true); +-#else +- m_fontEngine = new SplashFontEngine(globalParams->getEnableFreeType(), false, false, true); +-#endif + } + + void SlaOutputDev::startPage(int pageNum, GfxState *, XRef *) +@@ -1459,18 +1371,18 @@ void SlaOutputDev::restoreState(GfxState + } + } + } +- ++ + m_graphicStack.restore(); + } + +-void SlaOutputDev::beginTransparencyGroup(GfxState *state, POPPLER_CONST_070 double *bbox, GfxColorSpace * /*blendingColorSpace*/, GBool isolated, GBool knockout, GBool forSoftMask) ++void SlaOutputDev::beginTransparencyGroup(GfxState *state, const double *bbox, GfxColorSpace * /*blendingColorSpace*/, bool isolated, bool knockout, bool forSoftMask) + { + // qDebug() << "SlaOutputDev::beginTransparencyGroup isolated:" << isolated << "knockout:" << knockout << "forSoftMask:" << forSoftMask; + pushGroup("", forSoftMask); + m_groupStack.top().isolated = isolated; + } + +-void SlaOutputDev::paintTransparencyGroup(GfxState *state, POPPLER_CONST_070 double *bbox) ++void SlaOutputDev::paintTransparencyGroup(GfxState *state, const double *bbox) + { + // qDebug() << "SlaOutputDev::paintTransparencyGroup"; + if (m_groupStack.count() != 0) +@@ -1569,7 +1481,7 @@ void SlaOutputDev::endTransparencyGroup( + m_tmpSel->clear(); + } + +-void SlaOutputDev::setSoftMask(GfxState * /*state*/, POPPLER_CONST_070 double * bbox, GBool alpha, Function *transferFunc, GfxColor * /*backdropColor*/) ++void SlaOutputDev::setSoftMask(GfxState * /*state*/, const double * bbox, bool alpha, Function *transferFunc, GfxColor * /*backdropColor*/) + { + if (m_groupStack.count() <= 0) + return; +@@ -1657,7 +1569,7 @@ void SlaOutputDev::stroke(GfxState *stat + + auto& graphicState = m_graphicStack.top(); + graphicState.strokeColor = getColor(state->getStrokeColorSpace(), state->getStrokeColor(), &graphicState.strokeShade); +- ++ + QString output = convertPath(state->getPath()); + if ((m_Elements->count() != 0) && (output == m_coords)) // Path is the same as in last fill + { +@@ -1814,7 +1726,7 @@ void SlaOutputDev::createFillItem(GfxSta + } + } + +-GBool SlaOutputDev::axialShadedFill(GfxState *state, GfxAxialShading *shading, double tMin, double tMax) ++bool SlaOutputDev::axialShadedFill(GfxState *state, GfxAxialShading *shading, double tMin, double tMax) + { + // qDebug() << "SlaOutputDev::axialShadedFill"; + double GrStartX; +@@ -1822,7 +1734,7 @@ GBool SlaOutputDev::axialShadedFill(GfxS + double GrEndX; + double GrEndY; + int shade = 100; +- POPPLER_CONST_070 Function *func = shading->getFunc(0); ++ const Function *func = shading->getFunc(0); + VGradient fillGradient(VGradient::linear); + fillGradient.clearStops(); + GfxColorSpace *color_space = shading->getColorSpace(); +@@ -1832,7 +1744,7 @@ GBool SlaOutputDev::axialShadedFill(GfxS + if (func->getType() == 3) + #endif + { +- auto *stitchingFunc = (StitchingFunction*) func; ++ const auto *stitchingFunc = (const StitchingFunction*) func; + const double *bounds = stitchingFunc->getBounds(); + int num_funcs = stitchingFunc->getNumFuncs(); + double domain_min = stitchingFunc->getDomainMin(0); +@@ -1953,10 +1865,10 @@ GBool SlaOutputDev::axialShadedFill(GfxS + m_groupStack.top().Items.append(ite); + applyMask(ite); + } +- return gTrue; ++ return true; + } + +-GBool SlaOutputDev::radialShadedFill(GfxState *state, GfxRadialShading *shading, double sMin, double sMax) ++bool SlaOutputDev::radialShadedFill(GfxState *state, GfxRadialShading *shading, double sMin, double sMax) + { + // qDebug() << "SlaOutputDev::radialShadedFill"; + double GrStartX; +@@ -1964,7 +1876,7 @@ GBool SlaOutputDev::radialShadedFill(Gfx + double GrEndX; + double GrEndY; + int shade = 100; +- POPPLER_CONST_070 Function *func = shading->getFunc(0); ++ const Function *func = shading->getFunc(0); + VGradient fillGradient(VGradient::linear); + fillGradient.clearStops(); + GfxColorSpace *color_space = shading->getColorSpace(); +@@ -1974,7 +1886,7 @@ GBool SlaOutputDev::radialShadedFill(Gfx + if (func->getType() == 3) + #endif + { +- auto *stitchingFunc = (StitchingFunction*) func; ++ const auto *stitchingFunc = (const StitchingFunction*) func; + const double *bounds = stitchingFunc->getBounds(); + int num_funcs = stitchingFunc->getNumFuncs(); + double domain_min = stitchingFunc->getDomainMin(0); +@@ -2085,10 +1997,10 @@ GBool SlaOutputDev::radialShadedFill(Gfx + m_groupStack.top().Items.append(ite); + applyMask(ite); + } +- return gTrue; ++ return true; + } + +-GBool SlaOutputDev::gouraudTriangleShadedFill(GfxState *state, GfxGouraudTriangleShading *shading) ++bool SlaOutputDev::gouraudTriangleShadedFill(GfxState *state, GfxGouraudTriangleShading *shading) + { + // qDebug() << "SlaOutputDev::gouraudTriangleShadedFill"; + double xCoor = m_doc->currentPage()->xOffset(); +@@ -2166,10 +2078,10 @@ GBool SlaOutputDev::gouraudTriangleShade + ite->meshGradientPatches.append(patchM); + } + ite->GrType = 12; +- return gTrue; ++ return true; + } + +-GBool SlaOutputDev::patchMeshShadedFill(GfxState *state, GfxPatchMeshShading *shading) ++bool SlaOutputDev::patchMeshShadedFill(GfxState *state, GfxPatchMeshShading *shading) + { + // qDebug() << "SlaOutputDev::patchMeshShadedFill"; + double xCoor = m_doc->currentPage()->xOffset(); +@@ -2316,21 +2228,15 @@ GBool SlaOutputDev::patchMeshShadedFill( + ite->meshGradientPatches.append(patchM); + } + ite->GrType = 12; +- return gTrue; ++ return true; + } + +-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(21, 3, 0) + bool SlaOutputDev::tilingPatternFill(GfxState *state, Gfx * /*gfx*/, Catalog *cat, GfxTilingPattern *tPat, const double *mat, int x0, int y0, int x1, int y1, double xStep, double yStep) +-#else +-GBool SlaOutputDev::tilingPatternFill(GfxState *state, Gfx * /*gfx*/, Catalog *cat, Object *str, POPPLER_CONST_070 double *pmat, int /*paintType*/, int /*tilingType*/, Dict *resDict, POPPLER_CONST_070 double *mat, POPPLER_CONST_070 double *bbox, int x0, int y0, int x1, int y1, double xStep, double yStep) +-#endif + { + // qDebug() << "SlaOutputDev::tilingPatternFill"; +-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(21, 3, 0) + const double *bbox = tPat->getBBox(); + const double *pmat = tPat->getMatrix(); + Dict *resDict = tPat->getResDict(); +-#endif + + PDFRectangle box; + Gfx *gfx; +@@ -2342,7 +2248,7 @@ GBool SlaOutputDev::tilingPatternFill(Gf + width = bbox[2] - bbox[0]; + height = bbox[3] - bbox[1]; + if (xStep != width || yStep != height) +- return gFalse; ++ return false; + box.x1 = bbox[0]; + box.y1 = bbox[1]; + box.x2 = bbox[2]; +@@ -2358,17 +2264,12 @@ GBool SlaOutputDev::tilingPatternFill(Gf + // Unset the clip path as it is unrelated to the pattern's coordinate space. + QPainterPath savedClip = m_graphicStack.top().clipPath; + m_graphicStack.top().clipPath = QPainterPath(); +-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(21, 3, 0) + gfx->display(tPat->getContentStream()); +-#else +- gfx->display(str); +-#endif + m_graphicStack.top().clipPath = savedClip; + m_inPattern--; +- gElements = m_groupStack.pop(); + m_doc->m_Selection->clear(); +-// double pwidth = 0; +-// double pheight = 0; ++ ++ gElements = m_groupStack.pop(); + if (gElements.Items.count() > 0) + { + for (int dre = 0; dre < gElements.Items.count(); ++dre) +@@ -2393,8 +2294,6 @@ GBool SlaOutputDev::tilingPatternFill(Gf + m_doc->DoDrawing = false; + pat.width = ite->width(); + pat.height = ite->height(); +- // pwidth = ite->width(); +- // pheight = ite->height(); + ite->gXpos = 0; + ite->gYpos = 0; + ite->setXYPos(ite->gXpos, ite->gYpos, true); +@@ -2457,13 +2356,13 @@ GBool SlaOutputDev::tilingPatternFill(Gf + applyMask(ite); + } + delete gfx; +- return gTrue; ++ return true; + } + +-void SlaOutputDev::drawImageMask(GfxState *state, Object *ref, Stream *str, int width, int height, GBool invert, GBool interpolate, GBool inlineImg) ++void SlaOutputDev::drawImageMask(GfxState *state, Object *ref, Stream *str, int width, int height, bool invert, bool interpolate, bool inlineImg) + { + // qDebug() << "Draw Image Mask"; +- auto imgStr = std::make_shared(str, width, 1, 1); ++ auto imgStr = std::make_unique(str, width, 1, 1); + imgStr->reset(); + #ifdef WORDS_BIGENDIAN + QImage image(width, height, QImage::Format_Mono); +@@ -2476,9 +2375,9 @@ void SlaOutputDev::drawImageMask(GfxStat + int invertBit = invert ? 1 : 0; + unsigned char* buffer = image.bits(); + unsigned char* dest = nullptr; +- int rowStride = image.bytesPerLine(); ++ qsizetype rowStride = image.bytesPerLine(); + int i, bit; +- Guchar* pix; ++ unsigned char* pix; + + for (int y = 0; y < height; y++) + { +@@ -2533,18 +2432,18 @@ void SlaOutputDev::drawImageMask(GfxStat + imgStr->close(); + } + +-void SlaOutputDev::drawSoftMaskedImage(GfxState *state, Object *ref, Stream *str, int width, int height, GfxImageColorMap *colorMap, GBool interpolate, Stream *maskStr, int maskWidth, int maskHeight, +- GfxImageColorMap *maskColorMap, GBool maskInterpolate) ++void SlaOutputDev::drawSoftMaskedImage(GfxState *state, Object *ref, Stream *str, int width, int height, GfxImageColorMap *colorMap, bool interpolate, Stream *maskStr, int maskWidth, int maskHeight, ++ GfxImageColorMap *maskColorMap, bool maskInterpolate) + { + // qDebug() << "SlaOutputDev::drawSoftMaskedImage Masked Image Components" << colorMap->getNumPixelComps(); +- auto imgStr = std::make_shared(str, width, colorMap->getNumPixelComps(), colorMap->getBits()); ++ auto imgStr = std::make_unique(str, width, colorMap->getNumPixelComps(), colorMap->getBits()); + imgStr->reset(); + unsigned int *dest = nullptr; + unsigned char * buffer = new unsigned char[width * height * 4]; + for (int y = 0; y < height; y++) + { + dest = (unsigned int *)(buffer + y * 4 * width); +- Guchar * pix = imgStr->getLine(); ++ unsigned char * pix = imgStr->getLine(); + colorMap->getRGBLine(pix, dest, width); + } + +@@ -2555,15 +2454,15 @@ void SlaOutputDev::drawSoftMaskedImage(G + return; + } + +- auto mskStr = std::make_shared(maskStr, maskWidth, maskColorMap->getNumPixelComps(), maskColorMap->getBits()); ++ auto mskStr = std::make_unique(maskStr, maskWidth, maskColorMap->getNumPixelComps(), maskColorMap->getBits()); + mskStr->reset(); +- Guchar *mdest = nullptr; ++ unsigned char *mdest = nullptr; + unsigned char * mbuffer = new unsigned char[maskWidth * maskHeight]; + memset(mbuffer, 0, maskWidth * maskHeight); + for (int y = 0; y < maskHeight; y++) + { +- mdest = (Guchar *)(mbuffer + y * maskWidth); +- Guchar * pix = mskStr->getLine(); ++ mdest = mbuffer + y * maskWidth; ++ unsigned char * pix = mskStr->getLine(); + maskColorMap->getGrayLine(pix, mdest, maskWidth); + } + if ((maskWidth != width) || (maskHeight != height)) +@@ -2571,7 +2470,7 @@ void SlaOutputDev::drawSoftMaskedImage(G + QImage res = image.convertToFormat(QImage::Format_ARGB32); + + int matteRc, matteGc, matteBc; +- POPPLER_CONST_070 GfxColor *matteColor = maskColorMap->getMatteColor(); ++ const GfxColor *matteColor = maskColorMap->getMatteColor(); + if (matteColor != nullptr) + { + GfxRGB matteRgb; +@@ -2610,17 +2509,17 @@ void SlaOutputDev::drawSoftMaskedImage(G + delete[] mbuffer; + } + +-void SlaOutputDev::drawMaskedImage(GfxState *state, Object *ref, Stream *str, int width, int height, GfxImageColorMap *colorMap, GBool interpolate, Stream *maskStr, int maskWidth, int maskHeight, GBool maskInvert, GBool maskInterpolate) ++void SlaOutputDev::drawMaskedImage(GfxState *state, Object *ref, Stream *str, int width, int height, GfxImageColorMap *colorMap, bool interpolate, Stream *maskStr, int maskWidth, int maskHeight, bool maskInvert, bool maskInterpolate) + { + // qDebug() << "SlaOutputDev::drawMaskedImage"; +- auto imgStr = std::make_shared(str, width, colorMap->getNumPixelComps(), colorMap->getBits()); ++ auto imgStr = std::make_unique(str, width, colorMap->getNumPixelComps(), colorMap->getBits()); + imgStr->reset(); + unsigned int *dest = nullptr; + unsigned char * buffer = new unsigned char[width * height * 4]; + for (int y = 0; y < height; y++) + { + dest = (unsigned int *)(buffer + y * 4 * width); +- Guchar * pix = imgStr->getLine(); ++ unsigned char * pix = imgStr->getLine(); + colorMap->getRGBLine(pix, dest, width); + } + +@@ -2631,16 +2530,16 @@ void SlaOutputDev::drawMaskedImage(GfxSt + return; + } + +- auto mskStr = std::make_shared(maskStr, maskWidth, 1, 1); ++ auto mskStr = std::make_unique(maskStr, maskWidth, 1, 1); + mskStr->reset(); +- Guchar *mdest = nullptr; ++ unsigned char *mdest = nullptr; + int invert_bit = maskInvert ? 1 : 0; + unsigned char * mbuffer = new unsigned char[maskWidth * maskHeight]; + memset(mbuffer, 0, maskWidth * maskHeight); + for (int y = 0; y < maskHeight; y++) + { +- mdest = (Guchar *)(mbuffer + y * maskWidth); +- Guchar * pix = mskStr->getLine(); ++ mdest = mbuffer + y * maskWidth; ++ unsigned char * pix = mskStr->getLine(); + for (int x = 0; x < maskWidth; x++) + { + if (pix[x] ^ invert_bit) +@@ -2675,9 +2574,9 @@ void SlaOutputDev::drawMaskedImage(GfxSt + delete[] mbuffer; + } + +-void SlaOutputDev::drawImage(GfxState *state, Object *ref, Stream *str, int width, int height, GfxImageColorMap *colorMap, GBool interpolate, POPPLER_CONST_082 int* maskColors, GBool inlineImg) ++void SlaOutputDev::drawImage(GfxState *state, Object *ref, Stream *str, int width, int height, GfxImageColorMap *colorMap, bool interpolate, const int* maskColors, bool inlineImg) + { +- auto imgStr = std::make_shared(str, width, colorMap->getNumPixelComps(), colorMap->getBits()); ++ auto imgStr = std::make_unique(str, width, colorMap->getNumPixelComps(), colorMap->getBits()); + imgStr->reset(); + + QImage image(width, height, QImage::Format_ARGB32); +@@ -2689,7 +2588,7 @@ void SlaOutputDev::drawImage(GfxState *s + for (int y = 0; y < height; y++) + { + QRgb *s = (QRgb*)(image.scanLine(y)); +- Guchar *pix = imgStr->getLine(); ++ unsigned char *pix = imgStr->getLine(); + for (int x = 0; x < width; x++) + { + GfxRGB rgb; +@@ -2716,7 +2615,7 @@ void SlaOutputDev::drawImage(GfxState *s + for (int y = 0; y < height; y++) + { + QRgb *s = (QRgb*)(image.scanLine(y)); +- Guchar *pix = imgStr->getLine(); ++ unsigned char *pix = imgStr->getLine(); + for (int x = 0; x < width; x++) + { + if (colorMap->getNumPixelComps() == 4) +@@ -2899,7 +2798,7 @@ void SlaOutputDev::createImageFrame(QIma + } + } + +-void SlaOutputDev::beginMarkedContent(POPPLER_CONST char *name, Object *dictRef) ++void SlaOutputDev::beginMarkedContent(const char *name, Object *dictRef) + { + mContent mSte; + mSte.name = QString(name); +@@ -2925,14 +2824,14 @@ void SlaOutputDev::beginMarkedContent(PO + Object dictObj = dictRef->fetch(m_xref); + if (!dictObj.isDict()) + return; +- Dict* dict = dictObj.getDict(); ++ const Dict* dict = dictObj.getDict(); + Object dictType = dict->lookup("Type"); + if (dictType.isName("OCG")) + { + oc = contentConfig->findOcgByRef(dictRef->getRef()); + if (oc) + { +- // qDebug() << "Begin OCG Content with Name " << UnicodeParsedString(oc->getName()); ++// qDebug() << "Begin OCG Content with Name " << UnicodeParsedString(oc->getName()); + m_doc->setActiveLayer(UnicodeParsedString(oc->getName())); + mSte.ocgName = UnicodeParsedString(oc->getName()); + } +@@ -2942,7 +2841,7 @@ void SlaOutputDev::beginMarkedContent(PO + m_mcStack.push(mSte); + } + +-void SlaOutputDev::beginMarkedContent(POPPLER_CONST char *name, Dict *properties) ++void SlaOutputDev::beginMarkedContent(const char *name, Dict *properties) + { + // qDebug() << "Begin Marked Content with Name " << QString(name); + QString nam(name); +@@ -2959,7 +2858,7 @@ void SlaOutputDev::beginMarkedContent(PO + QString lName = QString("Layer_%1").arg(m_layerNum + 1); + Object obj = properties->lookup("Title"); + if (obj.isString()) +- lName = QString(obj.getString()->getCString()); ++ lName = QString(obj.getString()->c_str()); + for (const auto& layer : m_doc->Layers) + { + if (layer.Name == lName) +@@ -3019,12 +2918,12 @@ void SlaOutputDev::endMarkedContent(GfxS + } + } + +-void SlaOutputDev::markPoint(POPPLER_CONST char *name) ++void SlaOutputDev::markPoint(const char *name) + { + // qDebug() << "Begin Marked Point with Name " << QString(name); + } + +-void SlaOutputDev::markPoint(POPPLER_CONST char *name, Dict *properties) ++void SlaOutputDev::markPoint(const char *name, Dict *properties) + { + // qDebug() << "Begin Marked Point with Name " << QString(name) << "and Properties"; + beginMarkedContent(name, properties); +@@ -3037,19 +2936,18 @@ void SlaOutputDev::updateFont(GfxState * + std::string fileName; + std::unique_ptr ff; + std::optional> tmpBuf; +-#elif POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0) ++#else + std::optional fontLoc; + const GooString * fileName = nullptr; + std::unique_ptr ff; + char* tmpBuf = nullptr; +-#else +- GfxFontLoc * fontLoc = nullptr; +- GooString * fileName = nullptr; +- FoFiTrueType * ff = nullptr; +- char* tmpBuf = nullptr; + #endif + GfxFontType fontType; ++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 11, 0) ++ std::unique_ptr id; ++#else + SlaOutFontFileID *id; ++#endif + SplashFontFile *fontFile; + SplashFontSrc *fontsrc = nullptr; + Object refObj, strObj; +@@ -3079,15 +2977,21 @@ void SlaOutputDev::updateFont(GfxState * + goto err1; + + // check the font file cache ++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 11, 0) ++ id = std::make_unique(gfxFont->getID()); ++ if ((fontFile = m_fontEngine->getFontFile(*id))) ++ id.reset(); ++#else + id = new SlaOutFontFileID(gfxFont->getID()); + if ((fontFile = m_fontEngine->getFontFile(id))) + delete id; ++#endif + else + { + fontLoc = gfxFont->locateFont(m_xref ? m_xref : m_pdfDoc->getXRef(), nullptr); + if (!fontLoc) + { +- error(errSyntaxError, -1, "Couldn't find a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)"); ++ error(errSyntaxError, -1, "Couldn't find a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->c_str() : "(unnamed)"); + goto err2; + } + +@@ -3111,10 +3015,8 @@ void SlaOutputDev::updateFont(GfxState * + { // gfxFontLocExternal + #if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0) + fileName = fontLoc->path; +-#elif POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0) +- fileName = fontLoc->pathAsGooString(); + #else +- fileName = fontLoc->path; ++ fileName = fontLoc->pathAsGooString(); + #endif + fontType = fontLoc->fontType; + } +@@ -3127,56 +3029,80 @@ void SlaOutputDev::updateFont(GfxState * + fontsrc->setBuf(std::move(tmpBuf.value())); + #else + if (fileName) +- fontsrc->setFile(fileName, gFalse); ++ fontsrc->setFile(fileName, false); + else +- fontsrc->setBuf(tmpBuf, tmpBufLen, gTrue); ++ fontsrc->setBuf(tmpBuf, tmpBufLen, true); + #endif + + // load the font file + switch (fontType) { + case fontType1: ++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 11, 0) ++ if (!(fontFile = m_fontEngine->loadType1Font(std::move(id), fontsrc, (const char**) ((Gfx8BitFont*) gfxFont)->getEncoding(), fontLoc->fontNum))) ++ { ++ error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->c_str() : "(unnamed)"); ++ goto err2; ++ } ++#else + if (!(fontFile = m_fontEngine->loadType1Font(id, fontsrc, (const char **)((Gfx8BitFont *) gfxFont)->getEncoding()))) + { +- error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)"); ++ error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->c_str() : "(unnamed)"); + goto err2; + } ++#endif + break; + case fontType1C: ++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 11, 0) ++ if (!(fontFile = m_fontEngine->loadType1CFont(std::move(id), fontsrc, (const char**) ((Gfx8BitFont*) gfxFont)->getEncoding(), fontLoc->fontNum))) ++ { ++ error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->c_str() : "(unnamed)"); ++ goto err2; ++ } ++#else + if (!(fontFile = m_fontEngine->loadType1CFont(id, fontsrc, (const char **)((Gfx8BitFont *) gfxFont)->getEncoding()))) + { +- error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)"); ++ error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->c_str() : "(unnamed)"); + goto err2; + } ++#endif + break; + case fontType1COT: ++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 11, 0) ++ if (!(fontFile = m_fontEngine->loadOpenTypeT1CFont(std::move(id), fontsrc, (const char **)((Gfx8BitFont *) gfxFont)->getEncoding(), fontLoc->fontNum))) ++ { ++ error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->c_str() : "(unnamed)"); ++ goto err2; ++ } ++#else + if (!(fontFile = m_fontEngine->loadOpenTypeT1CFont(id, fontsrc, (const char **)((Gfx8BitFont *) gfxFont)->getEncoding()))) + { +- error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)"); ++ error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->c_str() : "(unnamed)"); + goto err2; + } ++#endif + break; + case fontTrueType: + case fontTrueTypeOT: +-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0) ++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 11, 0) ++ if (!fileName.empty()) ++ ff = FoFiTrueType::load(fileName.c_str(), fontLoc->fontNum); ++ else ++ ff = FoFiTrueType::make(fontsrc->buf.data(), fontsrc->buf.size(), fontLoc->fontNum); ++#elif POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0) + if (!fileName.empty()) + ff = FoFiTrueType::load(fileName.c_str()); + else + ff = FoFiTrueType::make(fontsrc->buf.data(), fontsrc->buf.size()); + #else + if (fileName) +- ff = FoFiTrueType::load(fileName->getCString()); ++ ff = FoFiTrueType::load(fileName->c_str()); + else + ff = FoFiTrueType::make(tmpBuf, tmpBufLen); + #endif + if (ff) + { +-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0) + codeToGID = ((Gfx8BitFont*) gfxFont)->getCodeToGIDMap(ff.get()); + ff.reset(); +-#else +- codeToGID = ((Gfx8BitFont *)gfxFont)->getCodeToGIDMap(ff); +- delete ff; +-#endif + n = 256; + } + else +@@ -3184,19 +3110,35 @@ void SlaOutputDev::updateFont(GfxState * + codeToGID = nullptr; + n = 0; + } ++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 11, 0) ++ if (!(fontFile = m_fontEngine->loadTrueTypeFont(std::move(id), fontsrc, codeToGID, n, fontLoc->fontNum))) ++ { ++ error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->c_str() : "(unnamed)"); ++ goto err2; ++ } ++#else + if (!(fontFile = m_fontEngine->loadTrueTypeFont(id, fontsrc, codeToGID, n))) + { +- error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)"); ++ error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->c_str() : "(unnamed)"); + goto err2; + } ++#endif + break; + case fontCIDType0: + case fontCIDType0C: ++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 11, 0) ++ if (!(fontFile = m_fontEngine->loadCIDFont(std::move(id), fontsrc, fontLoc->fontNum))) ++ { ++ error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->c_str() : "(unnamed)"); ++ goto err2; ++ } ++#else + if (!(fontFile = m_fontEngine->loadCIDFont(id, fontsrc))) + { +- error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)"); ++ error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->c_str() : "(unnamed)"); + goto err2; + } ++#endif + break; + case fontCIDType0COT: + if (((GfxCIDFont *) gfxFont)->getCIDToGID()) +@@ -3210,12 +3152,21 @@ void SlaOutputDev::updateFont(GfxState * + codeToGID = nullptr; + n = 0; + } ++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 11, 0) ++ if (!(fontFile = m_fontEngine->loadOpenTypeCFFFont(std::move(id), fontsrc, codeToGID, n, fontLoc->fontNum))) ++ { ++ error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", ++ gfxFont->getName() ? gfxFont->getName()->c_str() : "(unnamed)"); ++ goto err2; ++ } ++#else + if (!(fontFile = m_fontEngine->loadOpenTypeCFFFont(id, fontsrc, codeToGID, n))) + { + error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", +- gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)"); ++ gfxFont->getName() ? gfxFont->getName()->c_str() : "(unnamed)"); + goto err2; + } ++#endif + break; + case fontCIDType2: + case fontCIDType2OT: +@@ -3232,32 +3183,40 @@ void SlaOutputDev::updateFont(GfxState * + } + else + { +-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0) ++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 11, 0) ++ if (!fileName.empty()) ++ ff = FoFiTrueType::load(fileName.c_str(), fontLoc->fontNum); ++ else ++ ff = FoFiTrueType::make(fontsrc->buf.data(), fontsrc->buf.size(), fontLoc->fontNum); ++#elif POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0) + if (!fileName.empty()) + ff = FoFiTrueType::load(fileName.c_str()); + else + ff = FoFiTrueType::make(fontsrc->buf.data(), fontsrc->buf.size()); + #else + if (fileName) +- ff = FoFiTrueType::load(fileName->getCString()); ++ ff = FoFiTrueType::load(fileName->c_str()); + else + ff = FoFiTrueType::make(tmpBuf, tmpBufLen); + #endif + if (! ff) + goto err2; +-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0) + codeToGID = ((GfxCIDFont*) gfxFont)->getCodeToGIDMap(ff.get(), &n); + ff.reset(); +-#else +- codeToGID = ((GfxCIDFont *)gfxFont)->getCodeToGIDMap(ff, &n); +- delete ff; +-#endif + } ++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 11, 0) ++ if (!(fontFile = m_fontEngine->loadTrueTypeFont(std::move(id), fontsrc, codeToGID, n, fontLoc->fontNum))) ++ { ++ error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->c_str() : "(unnamed)"); ++ goto err2; ++ } ++#else + if (!(fontFile = m_fontEngine->loadTrueTypeFont(id, fontsrc, codeToGID, n, faceIndex))) + { +- error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)"); ++ error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->c_str() : "(unnamed)"); + goto err2; + } ++#endif + break; + default: + // this shouldn't happen +@@ -3284,17 +3243,15 @@ void SlaOutputDev::updateFont(GfxState * + mat[3] = -m22; + m_font = m_fontEngine->getFont(fontFile, mat, matrix); + +-#if POPPLER_ENCODED_VERSION < POPPLER_VERSION_ENCODE(22, 2, 0) +- delete fontLoc; +-#endif + if (fontsrc && !fontsrc->isFile) + fontsrc->unref(); + return; + + err2: ++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 11, 0) ++ id.reset(); ++#else + delete id; +-#if POPPLER_ENCODED_VERSION < POPPLER_VERSION_ENCODE(22, 2, 0) +- delete fontLoc; + #endif + + err1: +@@ -3302,7 +3259,7 @@ err1: + fontsrc->unref(); + } + +-void SlaOutputDev::drawChar(GfxState* state, double x, double y, double dx, double dy, double originX, double originY, CharCode code, int nBytes, POPPLER_CONST_082 Unicode* u, int uLen) ++void SlaOutputDev::drawChar(GfxState* state, double x, double y, double dx, double dy, double originX, double originY, CharCode code, int nBytes, const Unicode* u, int uLen) + { + // qDebug() << "SlaOutputDev::drawChar code:" << code << "bytes:" << nBytes << "Unicode:" << u << "ulen:" << uLen << "render:" << state->getRender(); + double x1, y1, x2, y2; +@@ -3334,7 +3291,7 @@ void SlaOutputDev::drawChar(GfxState* st + qPath.setFillRule(Qt::WindingFill); + for (int i = 0; i < fontPath->getLength(); ++i) + { +- Guchar f; ++ unsigned char f; + fontPath->getPoint(i, &x1, &y1, &f); + if (f & splashPathFirst) + qPath.moveTo(x1,y1); +@@ -3396,25 +3353,25 @@ void SlaOutputDev::drawChar(GfxState* st + } + + +-GBool SlaOutputDev::beginType3Char(GfxState *state, double x, double y, double dx, double dy, CharCode code, POPPLER_CONST_082 Unicode *u, int uLen) ++bool SlaOutputDev::beginType3Char(GfxState *state, double x, double y, double dx, double dy, CharCode code, const Unicode *u, int uLen) + { + // qDebug() << "beginType3Char"; + #if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0) + GfxFont *gfxFont; + if (!(gfxFont = state->getFont().get())) +- return gTrue; ++ return true; + #else + GfxFont* gfxFont; + if (!(gfxFont = state->getFont())) +- return gTrue; ++ return true; + #endif + if (gfxFont->getType() != fontType3) +- return gTrue; ++ return true; + F3Entry f3e; + f3e.colored = false; + m_F3Stack.push(f3e); + pushGroup(); +- return gFalse; ++ return false; + } + + void SlaOutputDev::endType3Char(GfxState *state) +@@ -3514,7 +3471,7 @@ void SlaOutputDev::endTextObject(GfxStat + } + } + +-QString SlaOutputDev::getColor(GfxColorSpace *color_space, POPPLER_CONST_070 GfxColor *color, int *shade) ++QString SlaOutputDev::getColor(GfxColorSpace *color_space, const GfxColor *color, int *shade) + { + QString fNam; + QString namPrefix = "FromPDF"; +@@ -3561,7 +3518,7 @@ QString SlaOutputDev::getColor(GfxColorS + { + auto* sepColorSpace = (GfxSeparationColorSpace*) color_space; + GfxColorSpace* altColorSpace = sepColorSpace->getAlt(); +- QString name(sepColorSpace->getName()->getCString()); ++ QString name(sepColorSpace->getName()->c_str()); + bool isRegistrationColor = (name == "All"); + if (isRegistrationColor) + { +@@ -3661,7 +3618,7 @@ QString SlaOutputDev::getAnnotationColor + return fNam; + } + +-QString SlaOutputDev::convertPath(POPPLER_CONST_083 GfxPath *path) ++QString SlaOutputDev::convertPath(const GfxPath *path) + { + // qDebug() << "SlaOutputDev::convertPath"; + if (! path) +@@ -3672,7 +3629,7 @@ QString SlaOutputDev::convertPath(POPPLE + + for (int i = 0; i < path->getNumSubpaths(); ++i) + { +- POPPLER_CONST_083 GfxSubpath * subpath = path->getSubpath(i); ++ const GfxSubpath * subpath = path->getSubpath(i); + if (subpath->getNumPoints() > 0) + { + output += QString("M %1 %2").arg(subpath->getX(0)).arg(subpath->getY(0)); +@@ -3736,7 +3693,7 @@ void SlaOutputDev::getPenState(GfxState + pattern[i] = dashPattern[i]; + m_dashValues = pattern; + #else +- double *dashPattern; ++ double* dashPattern; + int dashLength; + state->getLineDash(&dashPattern, &dashLength, &m_dashOffset); + QVector pattern(dashLength); +@@ -3842,7 +3799,7 @@ void SlaOutputDev::applyMask(PageItem *i + } + } + +-void SlaOutputDev::pushGroup(const QString& maskName, GBool forSoftMask, GBool alpha, bool inverted) ++void SlaOutputDev::pushGroup(const QString& maskName, bool forSoftMask, bool alpha, bool inverted) + { + groupEntry gElements; + gElements.forSoftMask = forSoftMask; +@@ -3852,23 +3809,23 @@ void SlaOutputDev::pushGroup(const QStri + m_groupStack.push(gElements); + } + +-QString SlaOutputDev::UnicodeParsedString(POPPLER_CONST GooString *s1) const ++QString SlaOutputDev::UnicodeParsedString(const GooString *s1) const + { + if ( !s1 || s1->getLength() == 0 ) + return QString(); +- GBool isUnicode; ++ bool isUnicode; + int i; + Unicode u; + QString result; + if ((s1->getChar(0) & 0xff) == 0xfe && (s1->getLength() > 1 && (s1->getChar(1) & 0xff) == 0xff)) + { +- isUnicode = gTrue; ++ isUnicode = true; + i = 2; + result.reserve((s1->getLength() - 2) / 2); + } + else + { +- isUnicode = gFalse; ++ isUnicode = false; + i = 0; + result.reserve(s1->getLength()); + } +@@ -3893,19 +3850,19 @@ QString SlaOutputDev::UnicodeParsedStrin + { + if (s1.length() == 0) + return QString(); +- GBool isUnicode; ++ bool isUnicode; + size_t i; + Unicode u; + QString result; + if ((s1.at(0) & 0xff) == 0xfe && (s1.length() > 1 && (s1.at(1) & 0xff) == 0xff)) + { +- isUnicode = gTrue; ++ isUnicode = true; + i = 2; + result.reserve((s1.length() - 2) / 2); + } + else + { +- isUnicode = gFalse; ++ isUnicode = false; + i = 0; + result.reserve(s1.length()); + } +Index: scribus-1.6.2/scribus/plugins/import/pdf/slaoutput.h +=================================================================== +--- scribus-1.6.2.orig/scribus/plugins/import/pdf/slaoutput.h ++++ scribus-1.6.2/scribus/plugins/import/pdf/slaoutput.h +@@ -30,9 +30,6 @@ for which a new license (GPL+exception) + #include "selection.h" + #include "vgradient.h" + +-#if POPPLER_ENCODED_VERSION < POPPLER_VERSION_ENCODE(0, 73, 0) +-#include +-#endif + #include + #include + #include +@@ -45,8 +42,6 @@ for which a new license (GPL+exception) + #include + #include + #include +-#include +-#include + #include + #include + #include +@@ -56,9 +51,11 @@ for which a new license (GPL+exception) + #include + + //------------------------------------------------------------------------ +-// LinkSubmitData ++// LinkSubmitForm + //------------------------------------------------------------------------ + ++#if POPPLER_ENCODED_VERSION < POPPLER_VERSION_ENCODE(24, 10, 0) ++ + class LinkSubmitForm: public LinkAction + { + public: +@@ -68,17 +65,19 @@ public: + virtual ~LinkSubmitForm(); + + // Was the LinkImportData created successfully? +- GBool isOk() POPPLER_CONST override { return fileName != nullptr; } ++ bool isOk() const override { return m_url != nullptr; } + // Accessors. +- LinkActionKind getKind() POPPLER_CONST override { return actionUnknown; } +- GooString *getFileName() { return fileName; } ++ LinkActionKind getKind() const override { return actionUnknown; } ++ GooString *getUrl() { return m_url; } + int getFlags() { return m_flags; } + + private: +- GooString *fileName {nullptr}; // file name ++ GooString *m_url {nullptr}; // URL + int m_flags {0}; + }; + ++#endif ++ + //------------------------------------------------------------------------ + // LinkImportData + //------------------------------------------------------------------------ +@@ -92,9 +91,9 @@ public: + virtual ~LinkImportData(); + + // Was the LinkImportData created successfully? +- GBool isOk() POPPLER_CONST override { return fileName != nullptr; } ++ bool isOk() const override { return fileName != nullptr; } + // Accessors. +- LinkActionKind getKind() POPPLER_CONST override { return actionUnknown; } ++ LinkActionKind getKind() const override { return actionUnknown; } + GooString *getFileName() { return fileName; } + + private: +@@ -111,10 +110,17 @@ public: + SlaOutFontFileID(const Ref *rA) { r = *rA; } + ~SlaOutFontFileID() {} + +- GBool matches(SplashFontFileID *id) override ++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 11, 0) ++ bool matches(const SplashFontFileID& id) const override ++ { ++ return ((const SlaOutFontFileID&) id).r.num == r.num && ((const SlaOutFontFileID&) id).r.gen == r.gen; ++ } ++#else ++ bool matches(SplashFontFileID *id) override + { + return ((SlaOutFontFileID*) id)->r.num == r.num && ((SlaOutFontFileID *) id)->r.gen == r.gen; + } ++#endif + + private: + Ref r; +@@ -127,19 +133,19 @@ public: + AnoOutputDev(ScribusDoc* doc, QStringList *importedColors); + virtual ~AnoOutputDev(); + +- GBool isOk() { return gTrue; } +- GBool upsideDown() override { return gTrue; } +- GBool useDrawChar() override { return gFalse; } +- GBool interpretType3Chars() override { return gFalse; } +- GBool useTilingPatternFill() override { return gFalse; } +- GBool useShadedFills(int type) override { return gFalse; } +- GBool useFillColorStop() override { return gFalse; } +- GBool useDrawForm() override { return gFalse; } ++ bool isOk() { return true; } ++ bool upsideDown() override { return true; } ++ bool useDrawChar() override { return false; } ++ bool interpretType3Chars() override { return false; } ++ bool useTilingPatternFill() override { return false; } ++ bool useShadedFills(int type) override { return false; } ++ bool useFillColorStop() override { return false; } ++ bool useDrawForm() override { return false; } + + void stroke(GfxState *state) override; + void eoFill(GfxState *state) override; + void fill(GfxState *state) override; +- void drawString(GfxState *state, POPPLER_CONST GooString *s) override; ++ void drawString(GfxState *state, const GooString *s) override; + + QString currColorText; + QString currColorFill; +@@ -149,7 +155,7 @@ public: + GooString *itemText {nullptr}; + + private: +- QString getColor(GfxColorSpace *color_space, POPPLER_CONST_070 GfxColor *color, int *shade); ++ QString getColor(GfxColorSpace *color_space, const GfxColor *color, int *shade); + ScribusDoc* m_doc; + QStringList *m_importedColors; + }; +@@ -163,12 +169,8 @@ public: + virtual ~SlaOutputDev(); + + LinkAction* SC_getAction(AnnotWidget *ano); +-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0) + std::unique_ptr SC_getAdditionalAction(const char *key, AnnotWidget *ano); +-#else +- LinkAction* SC_getAdditionalAction(const char *key, AnnotWidget *ano); +-#endif +- static GBool annotations_callback(Annot *annota, void *user_data); ++ static bool annotations_callback(Annot *annota, void *user_data); + bool handleTextAnnot(Annot* annota, double xCoor, double yCoor, double width, double height); + bool handleLinkAnnot(Annot* annota, double xCoor, double yCoor, double width, double height); + bool handleWidgetAnnot(Annot* annota, double xCoor, double yCoor, double width, double height); +@@ -176,16 +178,16 @@ public: + void handleActions(PageItem* ite, AnnotWidget *ano); + void startDoc(PDFDoc *doc, XRef *xrefA, Catalog *catA); + +- GBool isOk() { return gTrue; } +- GBool upsideDown() override { return gTrue; } +- GBool useDrawChar() override { return gTrue; } +- GBool interpretType3Chars() override { return gTrue; } +- GBool useTilingPatternFill() override { return gTrue; } +- GBool useShadedFills(int type) override { return type <= 7; } +- GBool useFillColorStop() override { return gTrue; } +- GBool useDrawForm() override { return gFalse; } ++ bool isOk() { return true; } ++ bool upsideDown() override { return true; } ++ bool useDrawChar() override { return true; } ++ bool interpretType3Chars() override { return true; } ++ bool useTilingPatternFill() override { return true; } ++ bool useShadedFills(int type) override { return type <= 7; } ++ bool useFillColorStop() override { return true; } ++ bool useDrawForm() override { return false; } + +-// virtual GBool needClipToCropBox() { return gTrue; } ++// virtual bool needClipToCropBox() { return true; } + void startPage(int pageNum, GfxState *, XRef *) override; + void endPage() override; + +@@ -197,35 +199,31 @@ public: + void stroke(GfxState *state) override; + void fill(GfxState *state) override; + void eoFill(GfxState *state) override; +-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(21, 3, 0) + bool tilingPatternFill(GfxState *state, Gfx *gfx, Catalog *cat, GfxTilingPattern *tPat, const double *mat, int x0, int y0, int x1, int y1, double xStep, double yStep) override; +-#else +- GBool tilingPatternFill(GfxState *state, Gfx *gfx, Catalog *cat, Object *str, POPPLER_CONST_070 double *pmat, int paintType, int tilingType, Dict *resDict, POPPLER_CONST_070 double *mat, POPPLER_CONST_070 double *bbox, int x0, int y0, int x1, int y1, double xStep, double yStep) override; +-#endif +- GBool functionShadedFill(GfxState * /*state*/, GfxFunctionShading * /*shading*/) override { qDebug() << "Function Shaded Fill"; return gFalse; } +- GBool axialShadedFill(GfxState *state, GfxAxialShading *shading, double tMin, double tMax) override; +- GBool axialShadedSupportExtend(GfxState *state, GfxAxialShading *shading) override { return (shading->getExtend0() == shading->getExtend1()); } +- GBool radialShadedFill(GfxState *state, GfxRadialShading *shading, double sMin, double sMax) override; +- GBool radialShadedSupportExtend(GfxState *state, GfxRadialShading *shading) override { return (shading->getExtend0() == shading->getExtend1()); } +- GBool gouraudTriangleShadedFill(GfxState *state, GfxGouraudTriangleShading *shading) override; +- GBool patchMeshShadedFill(GfxState *state, GfxPatchMeshShading *shading) override; ++ bool functionShadedFill(GfxState * /*state*/, GfxFunctionShading * /*shading*/) override { qDebug() << "Function Shaded Fill"; return false; } ++ bool axialShadedFill(GfxState *state, GfxAxialShading *shading, double tMin, double tMax) override; ++ bool axialShadedSupportExtend(GfxState *state, GfxAxialShading *shading) override { return (shading->getExtend0() == shading->getExtend1()); } ++ bool radialShadedFill(GfxState *state, GfxRadialShading *shading, double sMin, double sMax) override; ++ bool radialShadedSupportExtend(GfxState *state, GfxRadialShading *shading) override { return (shading->getExtend0() == shading->getExtend1()); } ++ bool gouraudTriangleShadedFill(GfxState *state, GfxGouraudTriangleShading *shading) override; ++ bool patchMeshShadedFill(GfxState *state, GfxPatchMeshShading *shading) override; + + //----- path clipping + void clip(GfxState *state) override; + void eoClip(GfxState *state) override; + void clipToStrokePath(GfxState * /*state*/) override { qDebug() << "Clip to StrokePath"; } +- virtual GBool deviceHasTextClip(GfxState *state) { return gFalse; } ++ virtual bool deviceHasTextClip(GfxState *state) { return false; } + + // If current colorspace is pattern, + // does this device support text in pattern colorspace? +- virtual GBool supportTextCSPattern(GfxState *state) ++ virtual bool supportTextCSPattern(GfxState *state) + { + return state->getFillColorSpace()->getMode() == csPattern; + } + + // If current colorspace is pattern, + // need this device special handling for masks in pattern colorspace? +- virtual GBool fillMaskCSPattern(GfxState * state) ++ virtual bool fillMaskCSPattern(GfxState * state) + { + return state->getFillColorSpace()->getMode() == csPattern; + } +@@ -233,37 +231,37 @@ public: + virtual void endMaskClip(GfxState *state) { qDebug() << "End Mask Clip"; } + + //----- grouping operators +- void beginMarkedContent(POPPLER_CONST char *name, Dict *properties) override; +- virtual void beginMarkedContent(POPPLER_CONST char *name, Object *dictRef); ++ void beginMarkedContent(const char *name, Dict *properties) override; ++ virtual void beginMarkedContent(const char *name, Object *dictRef); + void endMarkedContent(GfxState *state) override; +- void markPoint(POPPLER_CONST char *name) override; +- void markPoint(POPPLER_CONST char *name, Dict *properties) override; ++ void markPoint(const char *name) override; ++ void markPoint(const char *name, Dict *properties) override; + + //----- image drawing +- void drawImageMask(GfxState *state, Object *ref, Stream *str, int width, int height, GBool invert, GBool interpolate, GBool inlineImg) override; +- void drawImage(GfxState *state, Object *ref, Stream *str, int width, int height, GfxImageColorMap *colorMap, GBool interpolate, POPPLER_CONST_082 int *maskColors, GBool inlineImg) override; ++ void drawImageMask(GfxState *state, Object *ref, Stream *str, int width, int height, bool invert, bool interpolate, bool inlineImg) override; ++ void drawImage(GfxState *state, Object *ref, Stream *str, int width, int height, GfxImageColorMap *colorMap, bool interpolate, const int *maskColors, bool inlineImg) override; + void drawSoftMaskedImage(GfxState *state, Object *ref, Stream *str, + int width, int height, + GfxImageColorMap *colorMap, +- GBool interpolate, ++ bool interpolate, + Stream *maskStr, + int maskWidth, int maskHeight, + GfxImageColorMap *maskColorMap, +- GBool maskInterpolate) override; ++ bool maskInterpolate) override; + + void drawMaskedImage(GfxState *state, Object *ref, Stream *str, + int width, int height, + GfxImageColorMap *colorMap, +- GBool interpolate, ++ bool interpolate, + Stream *maskStr, + int maskWidth, int maskHeight, +- GBool maskInvert, GBool maskInterpolate) override; // { qDebug() << "Draw Masked Image"; } ++ bool maskInvert, bool maskInterpolate) override; // { qDebug() << "Draw Masked Image"; } + + //----- transparency groups and soft masks +- void beginTransparencyGroup(GfxState *state, POPPLER_CONST_070 double *bbox, GfxColorSpace * /*blendingColorSpace*/, GBool /*isolated*/, GBool /*knockout*/, GBool /*forSoftMask*/) override; +- void paintTransparencyGroup(GfxState *state, POPPLER_CONST_070 double *bbox) override; ++ void beginTransparencyGroup(GfxState *state, const double *bbox, GfxColorSpace * /*blendingColorSpace*/, bool /*isolated*/, bool /*knockout*/, bool /*forSoftMask*/) override; ++ void paintTransparencyGroup(GfxState *state, const double *bbox) override; + void endTransparencyGroup(GfxState *state) override; +- void setSoftMask(GfxState * /*state*/, POPPLER_CONST_070 double * /*bbox*/, GBool /*alpha*/, Function * /*transferFunc*/, GfxColor * /*backdropColor*/) override; ++ void setSoftMask(GfxState * /*state*/, const double * /*bbox*/, bool /*alpha*/, Function * /*transferFunc*/, GfxColor * /*backdropColor*/) override; + void clearSoftMask(GfxState * /*state*/) override; + + void updateFillColor(GfxState *state) override; +@@ -273,8 +271,8 @@ public: + //----- text drawing + void beginTextObject(GfxState *state) override; + void endTextObject(GfxState *state) override; +- void drawChar(GfxState *state, double /*x*/, double /*y*/, double /*dx*/, double /*dy*/, double /*originX*/, double /*originY*/, CharCode /*code*/, int /*nBytes*/, POPPLER_CONST_082 Unicode * /*u*/, int /*uLen*/) override; +- GBool beginType3Char(GfxState * /*state*/, double /*x*/, double /*y*/, double /*dx*/, double /*dy*/, CharCode /*code*/, POPPLER_CONST_082 Unicode * /*u*/, int /*uLen*/) override; ++ void drawChar(GfxState *state, double /*x*/, double /*y*/, double /*dx*/, double /*dy*/, double /*originX*/, double /*originY*/, CharCode /*code*/, int /*nBytes*/, const Unicode * /*u*/, int /*uLen*/) override; ++ bool beginType3Char(GfxState * /*state*/, double /*x*/, double /*y*/, double /*dx*/, double /*dy*/, CharCode /*code*/, const Unicode * /*u*/, int /*uLen*/) override; + void endType3Char(GfxState * /*state*/) override; + void type3D0(GfxState * /*state*/, double /*wx*/, double /*wy*/) override; + void type3D1(GfxState * /*state*/, double /*wx*/, double /*wy*/, double /*llx*/, double /*lly*/, double /*urx*/, double /*ury*/) override; +@@ -293,7 +291,7 @@ public: + protected: + void setItemFillAndStroke(GfxState* state, PageItem* textNode); + void applyMask(PageItem* ite); +- void pushGroup(const QString& maskName = "", GBool forSoftMask = gFalse, GBool alpha = gFalse, bool inverted = false); ++ void pushGroup(const QString& maskName = "", bool forSoftMask = false, bool alpha = false, bool inverted = false); + + ScribusDoc* m_doc; + Qt::PenCapStyle m_lineEnd { Qt::FlatCap }; +@@ -354,9 +352,9 @@ protected: + struct groupEntry + { + QList Items; +- GBool forSoftMask { gFalse }; +- GBool isolated { gFalse }; +- GBool alpha { gFalse }; ++ bool forSoftMask { false }; ++ bool isolated { false }; ++ bool alpha { false }; + QString maskName; + QPointF maskPos; + bool inverted { false }; +@@ -367,11 +365,11 @@ protected: + + private: + void getPenState(GfxState *state); +- QString getColor(GfxColorSpace *color_space, POPPLER_CONST_070 GfxColor *color, int *shade); ++ QString getColor(GfxColorSpace *color_space, const GfxColor *color, int *shade); + QString getAnnotationColor(const AnnotColor *color); +- QString convertPath(POPPLER_CONST_083 GfxPath *path); ++ QString convertPath(const GfxPath *path); + int getBlendMode(GfxState *state) const; +- QString UnicodeParsedString(POPPLER_CONST GooString *s1) const; ++ QString UnicodeParsedString(const GooString *s1) const; + QString UnicodeParsedString(const std::string& s1) const; + bool checkClip(); + +@@ -420,11 +418,7 @@ private: + Catalog *m_catalog {nullptr}; + SplashFontEngine *m_fontEngine {nullptr}; + SplashFont *m_font {nullptr}; +-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(21, 4, 0) + std::unique_ptr m_formWidgets; +-#else +- FormPageWidgets *m_formWidgets {nullptr}; +-#endif + QHash > m_radioMap; + QHash m_radioButtons; + int m_actPage { 1 }; +Index: scribus-1.6.2/scribus/plugins/import/pdf/pdftextrecognition.h +=================================================================== +--- scribus-1.6.2.orig/scribus/plugins/import/pdf/pdftextrecognition.h ++++ scribus-1.6.2/scribus/plugins/import/pdf/pdftextrecognition.h +@@ -16,7 +16,6 @@ for which a new license (GPL+exception) + #include "slaoutput.h" + + #include +-#include + + /* PDF TextBox Framework */ + /* +@@ -143,7 +142,7 @@ class PdfTextOutputDev : public SlaOutpu + { + public: + PdfTextOutputDev(ScribusDoc* doc, QList* Elements, QStringList* importedColors, int flags); +- virtual ~PdfTextOutputDev(); ++ ~PdfTextOutputDev() override; + + void updateFont(GfxState* state) override; + diff --git a/fix_build_with_poppler_25.01.0.patch b/fix_build_with_poppler_25.01.0.patch new file mode 100644 index 0000000..ffca0c0 --- /dev/null +++ b/fix_build_with_poppler_25.01.0.patch @@ -0,0 +1,26 @@ +Subject: fix build with poppler 25.01.0 +## patch from arch linux +## https://gitlab.archlinux.org/archlinux/packaging/packages/scribus/-/blob/main/fix_build_with_poppler_25.01.0.patch?ref_type=heads + +diff --unified --recursive --text --new-file scribus-1.6.2.orig/scribus/plugins/import/pdf/slaoutput.cpp scribus-1.6.2/scribus/plugins/import/pdf/slaoutput.cpp +--- scribus-1.6.2.orig/scribus/plugins/import/pdf/slaoutput.cpp 2025-01-05 14:55:32.980845515 +0100 ++++ scribus-1.6.2/scribus/plugins/import/pdf/slaoutput.cpp 2025-01-05 14:56:43.914591368 +0100 +@@ -123,7 +123,7 @@ + + Object obj3 = getFileSpecNameForPlatform(&obj1); + if (!obj3.isNull()) +- fileName = obj3.getString()->copy(); ++ fileName = obj3.getString()->copy().release(); + } + + LinkImportData::~LinkImportData() +@@ -176,7 +176,7 @@ + if (state->getFont()) + fontName = state->getFont()->getName()->copy(); + #endif +- itemText = s->copy(); ++ itemText = s->copy().release(); + } + + QString AnoOutputDev::getColor(GfxColorSpace *color_space, const GfxColor *color, int *shade) + diff --git a/scribus-1.6.2.tar.xz b/scribus-1.6.2.tar.xz new file mode 100644 index 0000000..4a8e9b6 --- /dev/null +++ b/scribus-1.6.2.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7eff9b1f47e372e56bb369f1dbe18fe49101789b5e6bcfdb7890e0346b641383 +size 73129400 diff --git a/scribus-1.6.2.tar.xz.asc b/scribus-1.6.2.tar.xz.asc new file mode 100644 index 0000000..5734112 --- /dev/null +++ b/scribus-1.6.2.tar.xz.asc @@ -0,0 +1,6 @@ +-----BEGIN PGP SIGNATURE----- + +iF0EABECAB0WIQRlWL6E0nJzpDihURmL6kgRiuvuZAUCZm2mxQAKCRCL6kgRiuvu +ZArHAJ0Ru6M6nyTplBSK4zzmPb2q7eqHrACfYR3rpqPw7A2/Acw3CDJ/NL8St5U= +=hugY +-----END PGP SIGNATURE----- diff --git a/scribus.changes b/scribus.changes new file mode 100644 index 0000000..c4b95b3 --- /dev/null +++ b/scribus.changes @@ -0,0 +1,1144 @@ +------------------------------------------------------------------- +Wed Jan 8 15:14:02 UTC 2025 - Bjørn Lie + +- Add poppler 25.01 compatibility patch: + * fix_build_with_poppler_25.01.0.patch + +------------------------------------------------------------------- +Fri Dec 20 17:14:05 UTC 2024 - Bjørn Lie + +- Add poppler 24.10 compatibility patch: + * Add fix_build_with_poppler_24.12.0.patch + * Drop 0001-Fix-build-with-poppler-24.10.0.patch + +------------------------------------------------------------------- +Fri Oct 25 14:39:51 UTC 2024 - Christophe Marin + +- Add poppler 24.10 compatibility patch: + * 0001-Fix-build-with-poppler-24.10.0.patch + +------------------------------------------------------------------- +Tue Jul 2 14:52:57 UTC 2024 - Christophe Marin + +- Update to 1.6.2 + * https://www.scribus.net/scribus-1-6-2-released/ +- Drop patch, merged upstream: + * 0001-Fix-build-failure-with-poppler-24.03.0.patch + * 0001-Fix-incorrect-value-used-in-initial-build-fix-agains.patch + +------------------------------------------------------------------- +Fri Mar 8 09:33:29 UTC 2024 - Christophe Marin + +- Add patches to fix build with poppler 24.03: + * 0001-Fix-build-failure-with-poppler-24.03.0.patch + * 0001-Fix-incorrect-value-used-in-initial-build-fix-agains.patch + +------------------------------------------------------------------- +Wed Feb 7 17:39:59 UTC 2024 - Christophe Marin + +- Update to 1.6.1: + * [Scripter] Scripter: add functions to get the items in a group + * [Scripter] Scripter: add the return values for getObjectType + * [Story Editor / Text Frames] Wrapped text appears outside text + frame + * [Typography] Hyphenated text is rendering incorrectly in text + boxes + * [Usability] DublinCore DocInfo ComboBoxes + * [Usability] PDF/X accurate versions + * [OS-Win32] Windows installer causes reboot on some systems + part way through installation + * [User Interface] new document icon in 22x22 is garbage... + * [Language Tools] Can´t paste Spanish content + * [Story Editor / Text Frames] center alignment unprecise in + circles + * [Internal] [patch] remove a specific disabled broken code + or document what it should do + * [Usability] Y coordinate not updated in popup window + * [Build System] [PATCH] clean up the cmake files + * [User Interface] Create a command launcher + * [Story Editor / Text Frames] inline items produce a box at + the start of the frame + * [Story Editor / Text Frames] Incorrect layout of inline + items if vertical scale is different of 100% + * [User Interface] Snapping doesn't work when scaling frames + * [Canvas] Page margin rect inherits drop shadow properties of + line item + * [User Interface] ICC profile comboboxes too short + * [Translation] Wrong polish translation of orphan in edit->styles + * [Graphics / Image Frames] Adding a specific .psd file makes + itself and the other frames invisible + * [Scripter] PATCH: scripter: create setRotation(), deprecate + rotateObjectAbs() and add a way to use a specific basepoint + * [User Interface] arrange pages still has 3 and 4 pages layouts + * [Canvas] Changing the line blend mode has no effect on the canvas + * [User Interface] Add context menu to the "Arrange + Pages > Document Pages" Panel + * [User Interface] Spiral Edit Dialog doesn't allow angle greater + than 360° + * [General] When saving the document, arrows attached to spiral + shapes are not saved + * [Scripter] scribus_version and scribus_version_info should be + uppercase + * [Build System] [Proposal] Display versions of all libs used by + Scribus + * [General] Tooltips show no text + * [User Interface] Drag/Drop of ODT to text frame should trigger + the OpenDocument Importer menu + * [Scrapbook] White objects are invisible in scrapbook + * [Printing] Page prints incorrectly on Windows when using layer + blend modes + * [Styles] Sort the styles list in style deletion dialog + * [Typography] Hyphenation exceptions delete themselves + * [General] crash when starting the "insert > glyph" dialog + * [General] for loop defect + * [Scripter] [PATCH] scripter: accessing page > guides > columns/rows + * [Story Editor / Text Frames] Incorrect rendering of rotated + inline items + * [Story Editor / Text Frames] Copying a frame does not activate + paste when editing inside of a frame + * [Language Tools] File for Dutch hyphenation patterns gives bad + results. + * [General] Crash on startup if file recovery fails + * [Scripter] [PATCH] add setNormalMode() (and setEditMode()) to + the scripter + * [Graphics / Image Frames] Export to PDF ignores coloring effect + on grayscale PNG + * [User Interface] About box: Some names formatted improperly + in Authors tab + * [Build System] Build error caused by removed + 'std::unary_function' template in C++17 mode + * [Build System] Build error caused by conversion between void + pointer and function pointer + * [User Interface] About box: table tags not closed + * [User Interface] About box: Some text issues in + Translations tab + * [General] Search & Replace 'Replace All' hangs Scribus when + searching for text color + * [Build System] Build failure on newer macOS versions than + were available when Scribus was released + * [Translation] Translation problems in story editor when + changing language from settings + * [General] Scribus slow and unusable on Wayland + * [User Interface] Document Items Attributes in Document + Setup/Preferences + * [Internal] Rename ui/cpalette.* to ui/colorpalette.* + * [Integration] CI fails because of podofo + * [Story Editor / Text Frames] Bad inline object vertical + alignement in PDF export + * [Build System] CI on Gitlab is failing on podofo + * [General] Scribus does not build with podofo-0.10.0 + * [Internal] Internal page links not updated on page copy + * [Usability] Default button for preferences should be "Ok" + * [PDF] Build break with poppler 22.2.0 + * [Story Editor / Text Frames] Hyphenation stop being applied + after conditional hyphen + * [Master Pages] Crash when clicking on specific text frame + in master page + * [User Interface] Keyboard shortcuts always load "iCalamusTM" + and modifications cannot be saved. + * [Translation] Norwegian nynorsk invalid file + * [Master Pages] Arrange Pages> Document Pages> mini-pages + are almost unreadable on hi-res display + * [Translation] Spelling error in French translation + * [PDF] Build break with poppler 22.03.0 + * [PDF] Dashed lines imported from PDF have incorrect + segment lengths + * [General] Fix various typos + * [Graphics / Image Frames] "Show readable text" Option for + QR Code on "Insert Barcode" Window should be grey out + * [Graphics / Image Frames] QR code generated by "Insert + Barcode" could not show CJK characters correctly + * [Documentation] Fix various typos + * [Graphics / Image Frames] Issue when opening TIFF file + with incorrect embedded ICC profile + * [Scripter] importPage() argument usage documentation + * [Scripter] linkTextFrames() documentation vs GUI + * [User Interface] Scrapbook dialog dropdown menu has + unintuitive icon + * [Scripter] Scripter crashes with getAllObjects() on a + master page + * [Typography] A white space width become too small when + two Latin words are surrounded by CJK characters in a + justified paragraph + * [Scripter] Documentation of selectObject() lacks precision + * [Build System] No Document Icon is installed on Linux + * [Import / Export] Cannot export - save as image when active + layer is locked. + * [General] Import of Adobe Color Book palettes doesn't work + * [Usability] Unremovable or invisible tabulators on the ruler + * [User Interface] Cyrillic in Render Frame Editor English GUI + * [Typography] OpenType c2sc not practically usable + * [General] Scrbus fails to build since code cleanup in r25414 + * [Printing] Transparent image sitting above blue frame causes + color change on frame where they overlap + * [User Interface] Folder icons are missing in file dialogues + * [General] barcode doesn't show readable text + * [Import / Export] Some issues with PDF import + * [Shape Drawing] Scribus crash if you delete a symbol during + in "symbol edit mode". + * [PDF] Drop shadow of very large shapes shows up wrong in + exported PDF + * [User Interface] F12 shortcut does not affect Align and + Distribute palette + * [Canvas] Some objects from left masterpage are not rendered + * [Build System] Typo in Findpoppler.cmake? + * [Documentation] Readme file has dead link to Ghostscript + * [Usability] Scribus silently upgrades your file to the new format + * [PDF] Open path with stroke gradient SVG results in closed + path in PDF + * [PDF] PDFs with layers do not allow layer exclusion when printing + on Mac and Windows using Adobe Reader or FoxIt PDF Reader + * [General] Moving cursor with down arrow jump to end of next frame + * [Usability] If a right to left paragraph follows a left to right + paragraph, one of the paragraphs will not work properly + * [Story Editor / Text Frames] "Permanently replace missing font" + isnt permanent + * [Import / Export] CVG-import faulty + * [Build System] NetBSD: link against libexecinfo for + backtrace_symbols + * [User Interface] File selection dialog box always reverts to + small size + * [User Interface] Pixelated display in Enhanced Character Palette + * [User Interface] Section Default Numbering + * [User Interface] Scribus first start with tiny window + * [Scripter] Pdf export by python scripter embeds fonts which + should be subsetted + * [Import / Export] Inline image disappears when two sla containing + ones are merged + * [User Interface] Colors and Fills dialog too narrow + * [User Interface] PageItem Attribute dialog too small by default + * [Scripter] Provide the information about the page number being "shown" +- Drop patches, merged upstream: + * 0001-16734-Build-break-with-poppler-22.2.0.patch + * 0001-Small-update-vs-latest-code-in-poppler.patch + * 0001-16764-Build-break-with-poppler-22.03.0.patch + * 0001-Enforce-poppler-version-0.86.0.patch + * 0001-16764-Better-patch-avoid-a-memory-leak.patch + * 0001-Fix-build-with-poppler-22.04.0.patch + * scribus-1.5.8-poppler-22.09.0.patch + +------------------------------------------------------------------- +Mon Aug 7 12:17:33 UTC 2023 - Christophe Marin + +- Disable AI PDF import support until scribus supports Podofo >= 0.10 + (cf. https://bugs.scribus.net/view.php?id=16948) + +------------------------------------------------------------------- +Tue Sep 20 10:46:04 UTC 2022 - Christophe Giboudeaux + +- Add poppler 22.09 compatibility patch: + * scribus-1.5.8-poppler-22.09.0.patch + +------------------------------------------------------------------- +Fri Apr 22 08:33:17 UTC 2022 - Christophe Giboudeaux + +- Add patch to fix build with poppler 22.04: + * 0001-Fix-build-with-poppler-22.04.0.patch + +------------------------------------------------------------------- +Fri Mar 4 08:40:27 UTC 2022 - Christophe Giboudeaux + +- Add upstream changes: + * 0001-16734-Build-break-with-poppler-22.2.0.patch + * 0001-Small-update-vs-latest-code-in-poppler.patch + * 0001-16764-Build-break-with-poppler-22.03.0.patch + * 0001-Enforce-poppler-version-0.86.0.patch + * 0001-16764-Better-patch-avoid-a-memory-leak.patch + +------------------------------------------------------------------- +Mon Jan 24 12:49:07 UTC 2022 - Paolo Stivanin + +- Update to 1.5.8: + * UI Improvements for dark mode and some icon updates + and window interactivity + * Improvements to file import (IDML, PDF, PNG, TIFF, SVG) + * Improvements to PDF export + * Improvements with respect to tables (undo/redo, styles) + * Improvements to the Story Editor +- Remove 0001-Use-new-hb-subset-api-with-harfbuzz-2.9.0-in-order-t.patch +- Remove 0001-16697-Avoid-modifying-container-while-iterating-it.patch +- Remove 0002-16635-Replace-hb_subset-removed-in-harfbuzz-3.0-by-h.patch + +------------------------------------------------------------------- +Thu Jan 13 10:47:59 UTC 2022 - Christophe Giboudeaux + +- Add upstream patch to fix potential crash on startup: + * 0001-16697-Avoid-modifying-container-while-iterating-it.patch + +------------------------------------------------------------------- +Thu Jan 13 09:27:00 UTC 2022 - Bjørn Lie + +- Pass WANT_CPP17=ON to cmake, fix build with poppler 22.01.0 and + newer. + +------------------------------------------------------------------- +Fri Sep 24 09:13:39 UTC 2021 - Fabian Vogt + +- Add patches to fix build with harfbuzz 3.0.0: + * 0001-Use-new-hb-subset-api-with-harfbuzz-2.9.0-in-order-t.patch + * 0002-16635-Replace-hb_subset-removed-in-harfbuzz-3.0-by-h.patch +- Run dos2unix after applying patches + +------------------------------------------------------------------- +Mon Apr 26 09:23:12 UTC 2021 - Wolfgang Bauer + +- Update to 1.5.7 + * General: + + Improvements for undo and redo of grouped items + + Support for later versions of dependencies such as poppler + and podofo + + Fixed: Issue with Qt menu heuristics causing translations not + to work + + As of version 1.5.7, the minimum Qt version to compile + Scribus is 5.14 + * PDF import: + + As of version 1.5.7, Scribus can import text as editable text + from PDF files. It should be noted that this new feature is + still experimental. + * PDF export: + + Improved font embedding for OpenType fonts in PDF/X-4 + * User interface: + + Unification and standardization of the user interface + regarding margins, button and widget sizing, thanks to the + tireless work of Gyuris Gellért + * Render frames: + + Render frames are now pre-configured for the use of XeLaTeX +- Drop patches merged upstream: + * 0001-fix-build-of-pdf-import-plugin-with-poppler-21.03.0.patch + * 0002-fix-build-of-pdf-import-plugin-with-poppler-21.03.0.patch + * 0003-Page-getFormWidgets-returns-unique_ptr-in-poppler-21.04.0.patch +- Rebase 0001-Make-sure-information-displayed-on-the-about-window-.patch + +------------------------------------------------------------------- +Fri Apr 16 16:21:16 UTC 2021 - Christophe Giboudeaux + +- Stop owning directories provided by the filesystem package (boo#1184786) + +------------------------------------------------------------------- +Wed Apr 7 06:57:25 UTC 2021 - Antonio Larrosa + +- Add patch from upstream to build with poppler 21.04.0: + * 0003-Page-getFormWidgets-returns-unique_ptr-in-poppler-21.04.0.patch + +------------------------------------------------------------------- +Fri Mar 19 15:59:13 UTC 2021 - Antonio Larrosa + +- Add patches from upstream to fix build with popper 21.03.0: + * 0001-fix-build-of-pdf-import-plugin-with-poppler-21.03.0.patch + * 0002-fix-build-of-pdf-import-plugin-with-poppler-21.03.0.patch + +------------------------------------------------------------------- +Sun Nov 15 15:36:44 UTC 2020 - Wolfgang Bauer + +- Update to 1.5.6.1 + * Fix a spell checker crash + +------------------------------------------------------------------- +Wed Nov 11 14:00:23 UTC 2020 - Wolfgang Bauer + +- Update to 1.5.6 + * User Interface: + + One of the most important changes compared to earlier + versions is the introduction of a context-sensitive Content + Palette. If set to visible, it will adjust to the kind of + item (text frame, image frame, table, group) you have + selected. + + Ctrl/Cmd+Click enables selecting items below guides. + + A new PDF-based output preview is now available. + + Support for dark UI themes has been improved. + + Icon set can now be changed without needing to restart + application + + It's now possible to "cycle" through the items in a group by + pressing Alt+Ctrl/Cmd+Click + * Import/Export: + + Support for PDF 1.6 export, including embedded OpenType + fonts. + + A Markdown import filter has been added. + + Improvements to the IDML, PDF, XTG, SVG and KRA importers. + * Text and Typography: + + Launching Scribus via the Command Line on any OS will now + reveal more font-related problems; based on fontconfig 3.14. + * Colors: + + Default black and white colors can now alternatively be + defined in RGB and LAB. + * Printing: + + With the exception of the Windows platform, Scribus can now + use a PDF-based and newly written printing engine. PostScript + is still available, but will be removed over time. + * Scripter: + + On platforms other than macOS, Scribus now uses Python 3 by + default. As a consequence, existing scripts will likely need + to be modified so that they run in Scribus 1.5.6. + + Many new commands have been added to the Scripter; others + have been renamed to be more intuitive. For more information, + please have a look at the Scripter documentation, which has + also been updated to reflect the changes. +- Drop patches merged upstream: + * port-scripter-to-Python-3.patch + * Work-around-poppler-0.82-signature-changes.patch + * Use-same-mechanism-as-with-previous-poppler-versions.patch + * Fix-failure-to-build-against-poppler-0.83.0.patch + * Fix-failure-to-build-with-poppler-0.84.0.patch + * Fails-to-build-with-python-3.8.patch + * 0001-PDF-import-plugin-support-poppler-0.86.x.patch + * 0001-Fix-build-with-Qt-5.15.patch +- Add _constraints with a minimum disk size of 5GB, to avoid build + failures due to insufficient disk space +- Remove -DWANT_RELEASEWITHDEBUG=1 cmake option again, it causes + loading the plugins to fail due to unresolved symbols, and + possibly a crash on start + +------------------------------------------------------------------- +Thu Sep 17 17:36:18 UTC 2020 - Stefan Brüns + +- Depend on hicolor-icon-theme for directory structure +- Enable proper debuginfo/debugsource creation +- Spec file cleanup + * Remove unused libetonyek and GraphicsMagick++ build dependencies + * Do not install breeze SVG icon into pixmap directory, drop + breeze-icons dependency + * Remove conditionals for obsolete distro versions + +------------------------------------------------------------------- +Sat May 9 17:36:50 UTC 2020 - Wolfgang Bauer + +- Add 0001-Fix-build-with-Qt-5.15.patch to fix build with the + upcoming Qt 5.15 + +------------------------------------------------------------------- +Wed Apr 8 10:51:25 UTC 2020 - Christophe Giboudeaux + +- Add upstream patch: + *0001-PDF-import-plugin-support-poppler-0.86.x.patch +- Update: + * Fix-failure-to-build-against-poppler-0.83.0.patch + * Fix-failure-to-build-with-poppler-0.84.0.patch + * Use-same-mechanism-as-with-previous-poppler-versions.patch + * Work-around-poppler-0.82-signature-changes.patch + * port-scripter-to-Python-3.patch + +------------------------------------------------------------------- +Thu Jan 16 11:28:56 UTC 2020 - Wolfgang Bauer + +- Add port-scripter-to-Python-3.patch and build with python3 +- Add patches to fix build with newer poppler versions: + * Work-around-poppler-0.82-signature-changes.patch + * Use-same-mechanism-as-with-previous-poppler-versions.patch + * Fix-failure-to-build-against-poppler-0.83.0.patch + * Fix-failure-to-build-with-poppler-0.84.0.patch +- Add Fails-to-build-with-python-3.8.patch to fix build with python + 3.8 + +------------------------------------------------------------------- +Mon Sep 9 17:42:07 UTC 2019 - Jan Engelhardt + +- Drop faulty requires from documentation subpackage. + +------------------------------------------------------------------- +Fri Aug 9 20:36:41 UTC 2019 - Christophe Giboudeaux + +- Update to 1.5.5: + * Development version using Qt5. + * Large code refactoring + * Many bugs fixed +- Check https://wiki.scribus.net/canvas/1.5.5_Release for more information +- Drop hunspell.patch +- Add 0001-Make-sure-information-displayed-on-the-about-window-.patch + +------------------------------------------------------------------- +Sat Nov 24 16:26:56 UTC 2018 - Fabian Vogt + +- Rewrite hunspell-1.6.patch into hunspell.patch to cover all hunspell + versions + +------------------------------------------------------------------- +Sat Nov 24 10:55:44 UTC 2018 - wbauer@tmo.at + +- Update hunspell-1.6.patch to also accept hunspell 1.7 that's in + Factory now + +------------------------------------------------------------------- +Wed May 30 08:03:23 UTC 2018 - jengelh@inai.de + +- Trim marketing filler wording from description. +- Replace duplicate -fno-strict-aliasing. +- Run fdupes over more files. (Do it with hardlinks; + symlinks upset the documentation system.) + +------------------------------------------------------------------- +Tue May 1 21:29:52 UTC 2018 - wbauer@tmo.at + +- Add back hunspell-1.6.patch, it's still needed as the current + version still only supports hunspell up to 1.4 but Tumbleweed and + Leap 15.0 have 1.6 + +------------------------------------------------------------------- +Sun Apr 29 03:29:26 UTC 2018 - plinnell@opensuse.org + +- drop hunspell-1.6.patch fixed uptream +- lots of spec file cleanups +------------------------------------------------------------------- +Sat Apr 28 00:50:34 UTC 2018 - plinnell@opensuse.org + +- Update to 1.4.7 - likely last release from 1.4.x stable branch +- Stability and bugfix release +- Updated UI translations +- See: https://bugs.scribus.net/changelog_page.php?version_id=96 + for complete list. + +------------------------------------------------------------------- +Tue Mar 27 14:53:05 UTC 2018 - wbauer@tmo.at + +- Add hunspell-1.6.patch to fix spellchecking support in Tumbleweed + and Leap 15.0 + +------------------------------------------------------------------- +Thu Jan 4 17:18:39 UTC 2018 - wbauer@tmo.at + +- remove libQtWebKit-devel build requirement, it seems not to be + used/needed at all + +------------------------------------------------------------------- +Fri Aug 11 08:34:10 UTC 2017 - pgajdos@suse.com + +- remove dependency on aspell, scribus seem to use hunspell + [bsc#1052965] + +------------------------------------------------------------------- +Thu Feb 2 12:29:29 UTC 2017 - adam.majer@suse.de + +- use individual libboost-*-devel packages instead of boost-devel + +------------------------------------------------------------------- +Tue Nov 15 15:06:30 UTC 2016 - wbauer@tmo.at + +- Use shared-mime-info macros (boo#979301) +- Remove version check for > 11.3, earlier versions are not + supported any more + +------------------------------------------------------------------- +Wed Aug 10 07:03:48 UTC 2016 - badshah400@gmail.com + +- Fixup scribus.appdata.xml file + + Shorten name to just "scribus". + + Use images from github repository as appstream fails to load + images from https://wki.scribus.net. + + Improve a caption. + + Fix height of screenshot 2. + +------------------------------------------------------------------- +Thu Jul 28 16:16:26 UTC 2016 - badshah400@gmail.com + +- Add scribus.appdata.xml file and install it to the appdata dir; + this makes scribus appear in appstores like GNOME Software and + KDE Discover. + +------------------------------------------------------------------- +Fri Mar 18 10:38:55 UTC 2016 - alarrosa@suse.com + +- Added an fdupes call to symlink duplicate files installed + under /usr/share/. This reduces the installed size in around 20 Mb. + +------------------------------------------------------------------- +Mon Jan 11 17:26:06 UTC 2016 - plinnell@opensuse.org + +- Update to 1.4.6 + + See http://bugs.scribus.net/changelog_page.php?version_id=92 + +------------------------------------------------------------------- +Thu May 29 04:23:31 UTC 2014 - plinnell@opensuse.org + +- Update to 1.4.4 +- Drop python-version.diff it is upstream. + + PDF/X-1a export. + ++ The Barcode plug-in has been updated to reflect + the latest changes in the underlying Barcode Writer + in Pure PostScript (BWIPP). + ++ The Autoquote script has been rewritten and enhanced. + It now provides more options and adds thin spaces to French texts + where appropriate. + ++ A script to align images in frames has been added. + ++ Full support of the OpenICC Directory Proposal + (http://www.oyranos.org/wiki/index.php?title=OpenIccDirectoryProposal). + ++ The handling of transparencies in Photoshop-generated TIFF files + has been improved. + ++ Page borders can now act as guides (and thus be used for + snapping of items). + ++ The CMYK color palette created by the Newspaper Association + of America (NAA) for newspaper advertisements has been + integrated into Scribus. + ++ A new color palette for professional geographers has been added. + ++ Export to various bitmap formats has been re-enabled on Mac OS X. + ++ Several issues related to the user interface and canvas display + have been resolved. + ++ Adjustments for Windows 8.x. + ++ An issue with the spellchecker, resulting in a crash, + has been resolved. + ++ Documentation and translation updates and improvements. + + +For a complete list of changes see: + http://bugs.scribus.net/view_all_bug_page.php?filter=99610 + and http://lists.scribus.net/pipermail/scribus-commit. + +------------------------------------------------------------------- +Thu Apr 17 19:17:27 UTC 2014 - hrvoje.senjan@gmail.com + +- Added python_version.diff: fixes build with cmake 3.0 + +------------------------------------------------------------------- +Thu Aug 22 03:30:39 UTC 2013 - mrdocs@opensuse.org + +- Update to version 1.4.2 + + The Barcode Writer has been updated and supports many more + barcodes, including QR. + + The Galaxy Gauge™ color matching system and color tools have + been included. + + New color palettes from government agencies (Canada, + Germany, The Netherlands, United Kingdom) have been included. + + More Open Source color palettes have been included. + + Improvements to the build system. + + Improvements to the Preflight Verifier. + + The A4 page size limit of TeX-rendered graphics in Render + Frames has been removed. + + The Short Words plug-in now supports Danish. + + Many updates to the Online Manual. + +- Most important bugfixes: +- Disabled hyphenation on some Linux distributions is working again. +- Some unit conversion issues have been fixed. +- Display issues related to Ubuntu's Unity interface have been fixed. +- Some fixes to wrong or irritating UI behavior. +- Memory management in connection with the new Hyphenator has + been optimized. +- Issues with the Clang compiler have been fixed. +- Scribus now supports Pillow as an alternative to the Python Imaging Library. +- Many translation updates. + +------------------------------------------------------------------- +Mon Jan 14 04:22:20 UTC 2013 - mrdocs@opensuse.org + +- Update to version 1.4.2: + - New feature - hunspell based spell checker + - UI and Document Updates and translation updates + - Scribus will look for existing dictionaries on the system + it is installed already installed by hunspell packages or + LibreOffice. New dictionaries are downloadable directly from + within Scribus Preferences via freedesktop.org. + The spellchecker now also works within the Story Editor. + - Stability and other minor fixes + - Complete versioned changelog: + http://bugs.scribus.net/changelog_page.php?version_id=84 + +------------------------------------------------------------------- +Fri Jul 6 15:16:37 UTC 2012 - dmueller@suse.com + +- fix build for older distros + +------------------------------------------------------------------- +Mon Jun 25 00:03:47 UTC 2012 - badshah400@gmail.com + +- Install hi-res icons in the hicolor icon directory for better + appearance on desktop menu, specifically on the gnome-shell; add + BuildRequires: hicolor-icon-theme for this purpose. + +------------------------------------------------------------------- +Wed May 23 08:42:03 UTC 2012 - badshah400@gmail.com + +- Delete non-free colour swatches (givelife and dtp-studio) from + the package (bnc#763586) + +------------------------------------------------------------------- +Wed May 23 01:57:45 UTC 2012 - mrdocs@opensuse.org + +- drop fdupes in %datashare it breaks the help browser +- shorten the -devel description + +------------------------------------------------------------------- +Mon May 21 19:42:32 UTC 2012 - badshah400@gmail.com + +- Add back aspell and liblcms2-devel BuildRequires: these got + removed during the previous change by mistake. + +------------------------------------------------------------------- +Sat May 5 22:36:28 UTC 2012 - badshah400@gmail.com + +- Update to version 1.4.1: + + Many bugs fixed since 1.4.0 (see ChangeLog file installed in + /usr/share/doc/scribus/) + + Addition of the GiveLife Color System(R) swatch palettes + (www.givelifecolorsystem.com), license in the swatches + directory. + + Updates to resolve small canvas interaction issues + + Corrections to both bitmap and SVG image import issues + + Addition of undo steps for path operations and page moving + + Corrections to some master page behaviour + + Fixes for text editing issues + + Enhancements to scripter + + Translation updates + + The Italian version of the help documents has been updated + significantly + + Relocation of profiles and swatches to the share directory of + Unix-like systems (linux, OS X, etc) to fit in with the file + system recommendations +- Added build requirement on fdupes to link duplicate files +- Install desktop menu for application +- Changes from version 1.4.0: + + Many bugs fixed since 1.4.0rc6 (see ChangeLog file installed + in /usr/share/doc/scribus/). + +------------------------------------------------------------------- +Fri Jan 20 14:27:08 UTC 2012 - toddrme2178@gmail.com + +- Fixed aspell detection +- Added lcms2 buildrequires + +------------------------------------------------------------------- +Mon Jan 2 19:33:19 UTC 2012 - adrian@suse.de + +- update to final 1.4.0 release +- use xz compressed tar ball + +------------------------------------------------------------------- +Tue Dec 6 21:18:23 UTC 2011 - coolo@suse.com + +- scribus is GPL-2.0+ + +------------------------------------------------------------------- +Wed Oct 26 08:11:42 UTC 2011 - coolo@suse.com + +- merged KDF again + +------------------------------------------------------------------- +Wed Oct 19 04:57:23 UTC 2011 - mrdocs@opensuse.org + +-updated to 1.4.0.rc6 +-last RC before 1.4.0 final + +documentation updates, bug fixes and translation updates + +http://scribus.net/svn/Scribus/branches/Version135/Scribus/ChangeLog + for versioned changelog + +------------------------------------------------------------------- +Mon Aug 15 13:49:58 UTC 2011 - idonmez@novell.com + +- Fix build and use %{_smp_mflags} + +------------------------------------------------------------------- +Wed Aug 10 09:33:53 UTC 2011 - toddrme2178@gmail.com + + - Fixed language file identification + - Removed redundant buildrequires + - Cleaned up spec file formatting + +------------------------------------------------------------------- +Sat Jun 18 19:13:42 UTC 2011 - mrdocs@opensuse.org + +-update to 1.4.0.rc5 + + more bug fixes and translation updates + see http://bugs.scribus.net/changelog_page.php?version_id=68 + for versioned changelog + + +------------------------------------------------------------------- +Sun Apr 10 16:16:16 UTC 2011 - mrdocs@opensuse.org + +-update to 1.4.0.rc3 + + more bug fixes and translation updates + see http://bugs.scribus.net/changelog_page.php?version_id=68 + for versioned changelog + +------------------------------------------------------------------- +Tue Mar 8 01:49:59 UTC 2011 - mrdocs@opensuse.org + +-update to 1.4.0.rc2 + + more bug fixes and translation updates + see http://bugs.scribus.net/changelog_page.php?version_id=68 + for versioned changelog + +------------------------------------------------------------------- +Fri Feb 18 15:16:13 UTC 2011 - mrdocs@opensuse.org + +-remove some old versioning cruft from spec file + +------------------------------------------------------------------- +Fri Feb 18 14:30:37 UTC 2011 - mrdocs@opensuse.org + +- update to 1.4.0.rc1 1.4.0 is new stable branch + +40+ bugs fixed see: + http://bugs.scribus.net/changelog_page.php?version_id=68 for + versioned change log details +- Add Obsoletes/Provides for scribus-templates for those upgrading + from 1.3.3.14, former stable. 1.4.0 has new + and many additional templates included by default + + +------------------------------------------------------------------- +Fri Jan 16 00:00:00 CET 2011 - mrdocs@opensuse.org + +- disable parallel build by removing %jobs macro, it caused OOMs + during build. + +------------------------------------------------------------------- +Mon Dec 27 17:20:00 CET 2010 - dmueller@suse.de + +- fix build + +------------------------------------------------------------------- +Tue Dec 14 10:08:30 UTC 2010 - mrdocs@opensuse.org + +- spec file clean-ups from darix and remove all non-Suse related bits + +------------------------------------------------------------------- +Thu Dec 9 20:22:40 UTC 2010 - mrdocs@opensuse.org +- 1.3.9 release + + 60+ bug fixes + + addtional templates + +------------------------------------------------------------------- +Thu Mar 25 23:12:01 UTC 2010 - mrdocs@opensuse.org + +- update to 1.3.3.14 +- drop the implicit patch as its now upstream + +------------------------------------------------------------------- +Fri Jul 31 10:25:33 CEST 2009 - coolo@novell.com + +- fix build + +------------------------------------------------------------------- +Tue Apr 28 16:18 CET 2009 - mrdocs@opensuse.org + +- drop fdupes it breaks the help browser +- update to 1.3.3.13 +- make %jobs can break builds just use make + +------------------------------------------------------------------- +Mon Dec 8 11:36:05 CET 2008 - dmueller@suse.de + +- update to 1.3.3.12 (released tarball): + * Several fixes and improvements to text frames and the Story Editor. + * Some additional scripts have been added to enhance functionality. + * More translation and documentation updates. + * Several fixes to protect against possible crashes. + * Improvements to the Scripter to enable more features. + +------------------------------------------------------------------- +Thu Oct 9 11:28:54 CEST 2008 - meissner@suse.de + +- added stdlib.h, string.h +- run %fdupes + +------------------------------------------------------------------- +Tue Jun 3 00:54:07 CEST 2008 - crrodriguez@suse.de + +- needs fno-strict-aliasing + +------------------------------------------------------------------- +Wed Apr 16 15:18:04 CEST 2008 - dmueller@suse.de + +- update to 1.3.3.12svn: + * http://bugs.scribus.net/changelog_page.php +- add help files back (bnc#379906) + +------------------------------------------------------------------- +Mon Apr 14 20:02:25 CEST 2008 - dmueller@suse.de + +- fix build against cmake 2.6 +- sync buildrequires with the community package + +------------------------------------------------------------------- +Sun Jan 13 22:34:08 CET 2008 - dmueller@suse.de + +- update to 1.3.3.11: + * Special characters in plain text files aren't imported + correctly + * Change text string in PDF export dialog + +------------------------------------------------------------------- +Tue Jan 8 21:15:04 CET 2008 - stbinner@suse.de + +- update to 1.3.3.10, many bugfixes - for details see ChangeLog + +------------------------------------------------------------------- +Wed Jun 27 19:25:56 CEST 2007 - dmueller@suse.de + +- build against cmake to fix various issues + +------------------------------------------------------------------- +Wed Jun 13 15:26:52 CEST 2007 - ltinkl@suse.cz + +- update to 1.3.3.9 bugfix release + - many bugfixes + - more translation updates + - improvements to the SVG importer + - improvements to PDF forms +- update to 1.3.3.8 + - many bugfixes + - more translation updates + - improvements to the SVG importer + - improvements to the Open Document Draw importer + - improvements to PDF forms + +------------------------------------------------------------------- +Mon Apr 23 10:37:37 CEST 2007 - pgajdos@suse.cz + +- fixed doc paths in spec file + +------------------------------------------------------------------- +Mon Mar 12 09:54:04 CET 2007 - pgajdos@suse.cz + +- fixed gcc warnings in beta version: + * program uses possibly exploitable format strings + (format-not-literal.patch) + * program compares a char* pointer with string literal + (string-literal-comparsion.patch) + * added CFLAG -fno-strict-aliasing inside scribus.spec + +------------------------------------------------------------------- +Thu Mar 8 15:02:42 CET 2007 - pgajdos@suse.cz + +- fixed 'warning: comparsion with string literal' (#233016, #228963) +- string-literal-comparsion.patch + +------------------------------------------------------------------- +Sun Jan 28 18:52:37 CET 2007 - stbinner@suse.de + +- Updated to bugfix release 1.3.3.7 + +------------------------------------------------------------------- +Thu Nov 9 13:27:38 CET 2006 - sbrabec@suse.cz + +- Fixed python detection (#213668). + +------------------------------------------------------------------- +Sat Nov 4 18:59:50 CET 2006 - stbinner@suse.de + +- fix build for < 10.1 + +------------------------------------------------------------------- +Wed Oct 18 19:00:16 CEST 2006 - sbrabec@suse.cz + +- Updated to version 1.3.3.4: + * Purely a bug fix release. + * Translations updated. + +------------------------------------------------------------------- +Tue Aug 8 09:53:49 CEST 2006 - stbinner@suse.de + +- update to version 1.3.3.3 "stable usable development version" + * Fix borked color names and wrong Bitstream Vera rendering + * Many crash und other minor bug fixes + * Several translation updates + +------------------------------------------------------------------- +Thu Jul 13 11:45:16 CEST 2006 - stbinner@suse.de + +- fix build for <10.1 + +------------------------------------------------------------------- +Wed May 31 09:16:15 CEST 2006 - adrian@suse.de + +- update to version 1.3.3.2 "stable usable development version" + * more than 200 bugs and feature requests got implemented + * fix for pdf export using Adobe Reader 7.x + * new language translations + +------------------------------------------------------------------- +Mon May 29 15:52:24 CEST 2006 - schwab@suse.de + +- Don't strip binaries. + +------------------------------------------------------------------- +Mon Feb 20 17:39:00 CET 2006 - sbrabec@suse.cz + +- Export dynamic symbols from scribus binary (#148279). + +------------------------------------------------------------------- +Wed Jan 25 21:33:37 CET 2006 - mls@suse.de + +- converted neededforbuild to BuildRequires + +------------------------------------------------------------------- +Fri Jan 20 23:09:38 CET 2006 - schwab@suse.de + +- Don't strip binaries. + +------------------------------------------------------------------- +Tue Jan 10 18:53:21 CET 2006 - sbrabec@suse.cz + +- Re-enabled desktop file translation. + +------------------------------------------------------------------- +Fri Jan 6 12:37:01 CET 2006 - sbrabec@suse.cz + +- Updated to version 1.2.4.1. + +------------------------------------------------------------------- +Thu Jan 5 17:05:48 CET 2006 - sbrabec@suse.cz + +- Updated to version 1.2.4. + +------------------------------------------------------------------- +Tue Jan 3 16:01:11 CET 2006 - sbrabec@suse.cz + +- Suggest AdobeICCProfiles. + +------------------------------------------------------------------- +Wed Dec 7 16:16:54 CET 2005 - sbrabec@suse.cz + +- Search for ICC profiles in subdirectories. + http://bugs.scribus.net/view.php?id=2882 + +------------------------------------------------------------------- +Fri Nov 25 11:44:02 CET 2005 - sbrabec@suse.cz + +- Fixed devel splitting (#117811). +- Resource /usr/local/share/color/icc. + http://bugs.scribus.net/view.php?id=2864 +- Enabled parallel build. + +------------------------------------------------------------------- +Tue Oct 25 17:17:22 CEST 2005 - sbrabec@suse.cz + +- Updated to version 1.2.3. +- Install MIME info files. + +------------------------------------------------------------------- +Wed Jul 27 15:39:06 CEST 2005 - sbrabec@suse.cz + +- Provide and obsolete scribus-short-words. + +------------------------------------------------------------------- +Wed Jul 13 17:45:47 CEST 2005 - sbrabec@suse.cz + +- Updated to version 1.2.2.1. +- Removed unneeded static modules and .la files for modules. + +------------------------------------------------------------------- +Wed Jan 26 15:38:22 CET 2005 - sbrabec@suse.cz + +- Obsoleted old documentation packages. + +------------------------------------------------------------------- +Tue Jan 11 16:25:48 CET 2005 - sbrabec@suse.cz + +- Updated to version 1.2.1. + +------------------------------------------------------------------- +Thu Dec 16 15:25:22 CET 2004 - coolo@suse.de + +- fix unsermake install + +------------------------------------------------------------------- +Wed Sep 15 14:04:39 CEST 2004 - sbrabec@suse.cz + +- Worked-around bi-arch bugs by forcing /usr/lib (#44961). + http://bugs.scribus.net/bug_view_advanced_page.php?bug_id=0001057 + +------------------------------------------------------------------- +Sun Sep 5 09:40:49 CEST 2004 - coolo@suse.de + +- fixing build requires + +------------------------------------------------------------------- +Tue Aug 31 10:41:38 CEST 2004 - sbrabec@suse.cz + +- Updated to version 1.2. + +------------------------------------------------------------------- +Fri Aug 27 16:35:51 CEST 2004 - sbrabec@suse.cz + +- Updated to version 1.2RC1. + +------------------------------------------------------------------- +Thu Apr 1 01:05:56 CEST 2004 - ro@suse.de + +- run update_admin to get current libtool macros +- some more configure hackery to adapt to updated kde-macros + to finally find python on lib64 platforms + +------------------------------------------------------------------- +Wed Mar 31 17:48:32 CEST 2004 - sf@suse.de + +- add scribus-1.1.5-c++.diff (#37208) + +------------------------------------------------------------------- +Tue Mar 30 15:04:24 CEST 2004 - sbrabec@suse.cz + +- Updated to version 1.1.6. + +------------------------------------------------------------------- +Thu Mar 04 11:48:45 CET 2004 - sbrabec@suse.cz + +- Updated to version 1.1.5. + +------------------------------------------------------------------- +Mon Feb 23 15:41:52 CET 2004 - sbrabec@suse.cz + +- Fixed and turned on CUPS support. + +------------------------------------------------------------------- +Sat Jan 10 14:05:41 CET 2004 - adrian@suse.de + +- build as user + +------------------------------------------------------------------- +Fri Aug 22 13:21:54 CEST 2003 - sbrabec@suse.cz + +- Updated to version 1.0.1. + +------------------------------------------------------------------- +Fri Aug 15 20:39:39 CEST 2003 - adrian@suse.de + +- install desktop file + +------------------------------------------------------------------- +Thu Aug 14 01:04:56 CEST 2003 - ro@suse.de + +- run update_admin (autoreconf in kde-style) +- change prefix/lib to libdir in all Makefile.am + +------------------------------------------------------------------- +Tue Aug 12 16:35:40 CEST 2003 - sbrabec@suse.cz + +- Updated to version 1.0. + +------------------------------------------------------------------- +Thu Jun 12 01:29:09 CEST 2003 - ro@suse.de + +- add doc-dir to filelist + +------------------------------------------------------------------- +Mon Mar 31 02:14:03 CEST 2003 - ro@suse.de + +- fix build on lib64 + +------------------------------------------------------------------- +Mon Feb 10 19:15:30 CET 2003 - sbrabec@suse.cz + +- Fix Qt path for biarch. + +------------------------------------------------------------------- +Mon Feb 10 13:02:43 CET 2003 - sbrabec@suse.cz + +- Updated to version 0.9.7. + +------------------------------------------------------------------- +Wed Nov 20 16:29:48 CET 2002 - sbrabec@suse.cz + +- Added new package. +- FHS fixes. +- Aufoconf fixes. +- KDE autoconf fixes. diff --git a/scribus.keyring b/scribus.keyring new file mode 100644 index 0000000..e640521 Binary files /dev/null and b/scribus.keyring differ diff --git a/scribus.spec b/scribus.spec new file mode 100644 index 0000000..86999a0 --- /dev/null +++ b/scribus.spec @@ -0,0 +1,181 @@ +# +# spec file for package scribus +# +# Copyright (c) 2025 SUSE LLC +# Copyright (c) Peter Linnell and 2010 SUSE LINUX Products GmbH, Nuernberg, Germany. +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%bcond_without podofo +%bcond_without released +Name: scribus +Version: 1.6.2 +Release: 0 +Summary: Page Layout and Desktop Publishing (DTP) +License: GPL-2.0-or-later +URL: https://www.scribus.net/ +# https://sourceforge.net/projects/scribus/files/scribus/1.6.2/ +Source0: %{name}-%{version}.tar.xz +%if %{with released} +Source1: %{name}-%{version}.tar.xz.asc +Source2: scribus.keyring +%endif +# PATCH-FIX-OPENSUSE +Patch0: 0001-Make-sure-information-displayed-on-the-about-window-.patch +# PATCH-FIX-UPSTREAM poppler... +Patch1: fix_build_with_poppler_24.12.0.patch +# PATCH-FIX-UPSTREAM poppler x2 +Patch2: fix_build_with_poppler_25.01.0.patch +BuildRequires: cmake >= 3.14.0 +BuildRequires: cups-devel +BuildRequires: dos2unix +BuildRequires: fdupes +BuildRequires: hicolor-icon-theme +BuildRequires: libboost_headers-devel +BuildRequires: libcdr-devel +BuildRequires: libfreehand-devel +BuildRequires: libmspub-devel +BuildRequires: libpagemaker-devel +%if %{with podofo} +BuildRequires: libpodofo-devel +%endif +BuildRequires: libqxp-devel +BuildRequires: librevenge-devel +BuildRequires: libtiff-devel +BuildRequires: libvisio-devel +BuildRequires: libwpd-devel +BuildRequires: libwpg-devel +BuildRequires: libzmf-devel +BuildRequires: pkgconfig +BuildRequires: python3-devel +BuildRequires: cmake(Qt5Core) >= 5.14.0 +BuildRequires: cmake(Qt5Gui) +BuildRequires: cmake(Qt5LinguistTools) +BuildRequires: cmake(Qt5Network) +BuildRequires: cmake(Qt5OpenGL) +BuildRequires: cmake(Qt5PrintSupport) +BuildRequires: cmake(Qt5Quick) +BuildRequires: cmake(Qt5Widgets) +BuildRequires: cmake(Qt5Xml) +BuildRequires: pkgconfig(GraphicsMagick) +BuildRequires: pkgconfig(cairo) +BuildRequires: pkgconfig(fontconfig) +BuildRequires: pkgconfig(freetype2) +BuildRequires: pkgconfig(harfbuzz) +BuildRequires: pkgconfig(hunspell) +BuildRequires: pkgconfig(icu-i18n) +BuildRequires: pkgconfig(icu-uc) +BuildRequires: pkgconfig(lcms2) +BuildRequires: pkgconfig(libjpeg) +BuildRequires: pkgconfig(libpng16) +BuildRequires: pkgconfig(libxml-2.0) +BuildRequires: pkgconfig(openssl) +BuildRequires: pkgconfig(poppler) > 21.03.0 +BuildRequires: pkgconfig(zlib) +Requires: hicolor-icon-theme +Recommends: python3-Pillow +Recommends: python3-tk +Recommends: scribus-doc +# Not packaged anymore +Provides: scribus-devel = %{version} +Obsoletes: scribus-devel < %{version} + +%description +Scribus is a page layout program which produces output in PDF and +Postscript. + +Scribus supports publishing features such as CMYK and spot colors, +PDF creation, Encapsulated Postscript import and export and creation +of color separations. + +%package doc +Summary: Documentation for Scribus + +%description doc +This package provides the documentation for Scribus. + +%prep +# Convert line endings before patching +%setup -q +# W: wrong-script-end-of-line-encoding +find . -type f \( -iname \*.py -o -iname \*.cpp -o -iname \*.h \) -exec dos2unix {} \; + +%autopatch -p1 + +# Unused test file still using QQC1 +rm scribus/ui/qml/qtq_test1.qml + +find . \( -name "*.py" -o -name "*.html" \) -exec sed -i 's#/usr/bin/env python.*#/usr/bin/python3#' {} \; + +%build +# Don't use the %%cmake macro, it causes crashes when starting scribus +mkdir build +pushd build +cmake .. \ + -DCMAKE_INSTALL_PREFIX=%{_prefix} \ + -DWANT_DISTROBUILD=TRUE \ + -DWANT_HUNSPELL=TRUE \ + -DWANT_GRAPHICSMAGICK=TRUE \ + -DWANT_CPP17=TRUE \ +%if "%{_lib}" == "lib64" + -DWANT_LIB64=TRUE \ +%endif +%if %{without podofo} + -DWITH_PODOFO=FALSE +%endif + +%cmake_build +popd + +%install +%cmake_install + +# These files are required at runtime to populate the help/about window +mkdir -p %{buildroot}%{_datadir}/scribus/aboutData +mv %{buildroot}%{_datadir}/doc/scribus/{AUTHORS,COPYING,LINKS,TRANSLATION} %{buildroot}%{_datadir}/scribus/aboutData/ + +# Already in %%doc +rm %{buildroot}%{_datadir}/doc/scribus/{ChangeLog,README} + +%fdupes %{buildroot}%{_datadir}/doc/scribus +%fdupes %{buildroot}%{_datadir}/scribus + +%files doc +%license COPYING +%doc ChangeLog README +%dir %{_datadir}/doc/scribus/ +%lang(de) %{_datadir}/doc/scribus/de/ +%lang(it) %{_datadir}/doc/scribus/it/ +%lang(ru) %{_datadir}/doc/scribus/ru/ +%{_datadir}/doc/scribus/en/ + +%files +%license COPYING +%doc ChangeLog README +%dir %{_datadir}/doc/scribus/ +%dir %{_datadir}/icons/hicolor/1024x1024 +%dir %{_datadir}/icons/hicolor/1024x1024/apps +%lang(de) %{_mandir}/de/man1/scribus.1%{?ext_man} +%lang(pl) %{_mandir}/pl/man1/scribus.1%{?ext_man} +%{_bindir}/scribus +%{_datadir}/applications/scribus.desktop +%{_datadir}/icons/hicolor/*/apps/scribus.png +%{_datadir}/icons/hicolor/*/mimetypes/application-vnd.scribus.png +%{_datadir}/metainfo/scribus.appdata.xml +%{_datadir}/mime/packages/scribus.xml +%{_datadir}/scribus/ +%{_libdir}/scribus/ +%{_mandir}/man1/scribus.1%{?ext_man} + +%changelog