$ git diff --patch-with-stat --summary d7ab2bfeccb396761ca4f6c0614c2db14cb03708..13bdf73a130dc65774d65d0dbc8a4f0fc6d67023
scribus-1.5.5-poppler-86.patch | 299 +++++++++++++++++++++++++++++++++++++++
scribus-1.5.5-qpainterpath.patch | 10 ++
scribus.spec | 4 +-
3 files changed, 312 insertions(+), 1 deletion(-)
create mode 100644 scribus-1.5.5-poppler-86.patch
create mode 100644 scribus-1.5.5-qpainterpath.patch
diff --git a/scribus-1.5.5-poppler-86.patch b/scribus-1.5.5-poppler-86.patch
new file mode 100644
index 0000000..3b20305
--- /dev/null
+++ b/scribus-1.5.5-poppler-86.patch
@@ -0,0 +1,299 @@
+diff -up scribus-1.5.5/scribus/plugins/import/pdf/importpdf.cpp.omv~ scribus-1.5.5/scribus/plugins/import/pdf/importpdf.cpp
+--- scribus-1.5.5/scribus/plugins/import/pdf/importpdf.cpp.omv~ 2020-03-01 21:44:35.054347961 +0100
++++ scribus-1.5.5/scribus/plugins/import/pdf/importpdf.cpp 2020-03-01 22:16:40.497432864 +0100
+@@ -834,14 +834,14 @@ bool PdfPlug::convert(const QString& fn)
+ names = catDict.dictLookup("OpenAction");
+ if (names.isDict())
+ {
+- LinkAction *linkAction = nullptr;
+- linkAction = LinkAction::parseAction(&names, pdfDoc->getCatalog()->getBaseURI());
++ LinkAction *linkAction = LinkAction::parseAction(&names, pdfDoc->getCatalog()->getBaseURI()).get();
+ if (linkAction)
+ {
+ LinkJavaScript *jsa = (LinkJavaScript*)linkAction;
+ if (jsa->isOk())
+ {
+- QString script = UnicodeParsedString(jsa->getScript());
++ GooString gScript(jsa->getScript());
++ QString script = UnicodeParsedString(&gScript);
+ if (script.startsWith("this."))
+ {
+ script.remove(0, 5);
+diff -up scribus-1.5.5/scribus/plugins/import/pdf/slaoutput.cpp.omv~ scribus-1.5.5/scribus/plugins/import/pdf/slaoutput.cpp
+--- scribus-1.5.5/scribus/plugins/import/pdf/slaoutput.cpp.omv~ 2020-03-01 22:14:16.859426530 +0100
++++ scribus-1.5.5/scribus/plugins/import/pdf/slaoutput.cpp 2020-03-01 22:37:52.546488954 +0100
+@@ -308,9 +308,9 @@ LinkAction* SlaOutputDev::SC_getAction(A
+ }
+
+ /* Replacement for the crippled Poppler function LinkAction* AnnotWidget::getAdditionalAction(AdditionalActionsType type) */
+-LinkAction* SlaOutputDev::SC_getAdditionalAction(const char *key, AnnotWidget *ano)
++std::unique_ptr<LinkAction> SlaOutputDev::SC_getAdditionalAction(const char *key, AnnotWidget *ano)
+ {
+- LinkAction *linkAction = nullptr;
++ std::unique_ptr<LinkAction> linkAction = nullptr;
+ Object obj;
+ Ref refa = ano->getRef();
+
+@@ -455,7 +455,7 @@ bool SlaOutputDev::handleLinkAnnot(Annot
+ POPPLER_CONST GooString *ndst = gto->getNamedDest();
+ if (ndst)
+ {
+- LinkDest *dstn = pdfDoc->findDest(ndst);
++ LinkDest *dstn = pdfDoc->findDest(ndst).get();
+ if (dstn)
+ {
+ if (dstn->getKind() == destXYZ)
+@@ -499,7 +499,7 @@ bool SlaOutputDev::handleLinkAnnot(Annot
+ POPPLER_CONST GooString *ndst = gto->getNamedDest();
+ if (ndst)
+ {
+- LinkDest *dstn = pdfDoc->findDest(ndst);
++ LinkDest *dstn = pdfDoc->findDest(ndst).get();
+ if (dstn)
+ {
+ if (dstn->getKind() == destXYZ)
+@@ -517,7 +517,8 @@ bool SlaOutputDev::handleLinkAnnot(Annot
+ {
+ LinkURI *gto = (LinkURI*)act;
+ validLink = true;
+- fileName = UnicodeParsedString(gto->getURI());
++ GooString uri(gto->getURI());
++ fileName = UnicodeParsedString(&uri);
+ }
+ if (validLink)
+ {
+@@ -929,8 +930,9 @@ void SlaOutputDev::handleActions(PageIte
+ LinkJavaScript *jsa = (LinkJavaScript*)Lact;
+ if (jsa->isOk())
+ {
++ GooString script(jsa->getScript());
+ ite->annotation().setActionType(1);
+- ite->annotation().setAction(UnicodeParsedString(jsa->getScript()));
++ ite->annotation().setAction(UnicodeParsedString(&script));
+ }
+ }
+ else if (Lact->getKind() == actionGoTo)
+@@ -967,7 +969,7 @@ void SlaOutputDev::handleActions(PageIte
+ POPPLER_CONST GooString *ndst = gto->getNamedDest();
+ if (ndst)
+ {
+- LinkDest *dstn = pdfDoc->findDest(ndst);
++ LinkDest *dstn = pdfDoc->findDest(ndst).get();
+ if (dstn)
+ {
+ if (dstn->getKind() == destXYZ)
+@@ -1019,7 +1021,7 @@ void SlaOutputDev::handleActions(PageIte
+ POPPLER_CONST GooString *ndst = gto->getNamedDest();
+ if (ndst)
+ {
+- LinkDest *dstn = pdfDoc->findDest(ndst);
++ LinkDest *dstn = pdfDoc->findDest(ndst).get();
+ if (dstn)
+ {
+ if (dstn->getKind() == destXYZ)
+@@ -1039,7 +1041,8 @@ void SlaOutputDev::handleActions(PageIte
+ else if (Lact->getKind() == actionUnknown)
+ {
+ LinkUnknown *uno = (LinkUnknown*)Lact;
+- QString actString = UnicodeParsedString(uno->getAction());
++ GooString action(uno->getAction());
++ QString actString = UnicodeParsedString(&action);
+ if (actString == "ResetForm")
+ {
+ ite->annotation().setActionType(4);
+@@ -1082,13 +1085,14 @@ void SlaOutputDev::handleActions(PageIte
+ else if (Lact->getKind() == actionNamed)
+ {
+ LinkNamed *uno = (LinkNamed*)Lact;
++ GooString name(uno->getName());
+ ite->annotation().setActionType(10);
+- ite->annotation().setAction(UnicodeParsedString(uno->getName()));
++ ite->annotation().setAction(UnicodeParsedString(&name));
+ }
+ else
+ qDebug() << "Found unsupported Action of type" << Lact->getKind();
+ }
+- LinkAction *Aact = SC_getAdditionalAction("D", ano);
++ LinkAction *Aact = SC_getAdditionalAction("D", ano).get();
+ if (Aact)
+ {
+ if (Aact->getKind() == actionJavaScript)
+@@ -1096,13 +1100,14 @@ void SlaOutputDev::handleActions(PageIte
+ LinkJavaScript *jsa = (LinkJavaScript*)Aact;
+ if (jsa->isOk())
+ {
+- ite->annotation().setD_act(UnicodeParsedString(jsa->getScript()));
++ GooString script(jsa->getScript());
++ ite->annotation().setD_act(UnicodeParsedString(&script));
+ ite->annotation().setAAact(true);
+ }
+ }
+ Aact = nullptr;
+ }
+- Aact = SC_getAdditionalAction("E", ano);
++ Aact = SC_getAdditionalAction("E", ano).get();
+ if (Aact)
+ {
+ if (Aact->getKind() == actionJavaScript)
+@@ -1110,13 +1115,14 @@ void SlaOutputDev::handleActions(PageIte
+ LinkJavaScript *jsa = (LinkJavaScript*)Aact;
+ if (jsa->isOk())
+ {
+- ite->annotation().setE_act(UnicodeParsedString(jsa->getScript()));
++ GooString script(jsa->getScript());
++ ite->annotation().setE_act(UnicodeParsedString(&script));
+ ite->annotation().setAAact(true);
+ }
+ }
+ Aact = nullptr;
+ }
+- Aact = SC_getAdditionalAction("X", ano);
++ Aact = SC_getAdditionalAction("X", ano).get();
+ if (Aact)
+ {
+ if (Aact->getKind() == actionJavaScript)
+@@ -1124,13 +1130,14 @@ void SlaOutputDev::handleActions(PageIte
+ LinkJavaScript *jsa = (LinkJavaScript*)Aact;
+ if (jsa->isOk())
+ {
+- ite->annotation().setX_act(UnicodeParsedString(jsa->getScript()));
++ GooString script(jsa->getScript());
++ ite->annotation().setX_act(UnicodeParsedString(&script));
+ ite->annotation().setAAact(true);
+ }
+ }
+ Aact = nullptr;
+ }
+- Aact = SC_getAdditionalAction("Fo", ano);
++ Aact = SC_getAdditionalAction("Fo", ano).get();
+ if (Aact)
+ {
+ if (Aact->getKind() == actionJavaScript)
+@@ -1138,13 +1145,14 @@ void SlaOutputDev::handleActions(PageIte
+ LinkJavaScript *jsa = (LinkJavaScript*)Aact;
+ if (jsa->isOk())
+ {
+- ite->annotation().setFo_act(UnicodeParsedString(jsa->getScript()));
++ GooString script(jsa->getScript());
++ ite->annotation().setFo_act(UnicodeParsedString(&script));
+ ite->annotation().setAAact(true);
+ }
+ }
+ Aact = nullptr;
+ }
+- Aact = SC_getAdditionalAction("Bl", ano);
++ Aact = SC_getAdditionalAction("Bl", ano).get();
+ if (Aact)
+ {
+ if (Aact->getKind() == actionJavaScript)
+@@ -1152,13 +1160,14 @@ void SlaOutputDev::handleActions(PageIte
+ LinkJavaScript *jsa = (LinkJavaScript*)Aact;
+ if (jsa->isOk())
+ {
+- ite->annotation().setBl_act(UnicodeParsedString(jsa->getScript()));
++ GooString script(jsa->getScript());
++ ite->annotation().setBl_act(UnicodeParsedString(&script));
+ ite->annotation().setAAact(true);
+ }
+ }
+ Aact = nullptr;
+ }
+- Aact = SC_getAdditionalAction("C", ano);
++ Aact = SC_getAdditionalAction("C", ano).get();
+ if (Aact)
+ {
+ if (Aact->getKind() == actionJavaScript)
+@@ -1166,13 +1175,14 @@ void SlaOutputDev::handleActions(PageIte
+ LinkJavaScript *jsa = (LinkJavaScript*)Aact;
+ if (jsa->isOk())
+ {
+- ite->annotation().setC_act(UnicodeParsedString(jsa->getScript()));
++ GooString script(jsa->getScript());
++ ite->annotation().setC_act(UnicodeParsedString(&script));
+ ite->annotation().setAAact(true);
+ }
+ }
+ Aact = nullptr;
+ }
+- Aact = SC_getAdditionalAction("F", ano);
++ Aact = SC_getAdditionalAction("F", ano).get();
+ if (Aact)
+ {
+ if (Aact->getKind() == actionJavaScript)
+@@ -1180,14 +1190,15 @@ void SlaOutputDev::handleActions(PageIte
+ LinkJavaScript *jsa = (LinkJavaScript*)Aact;
+ if (jsa->isOk())
+ {
+- ite->annotation().setF_act(UnicodeParsedString(jsa->getScript()));
++ GooString script(jsa->getScript());
++ ite->annotation().setF_act(UnicodeParsedString(&script));
+ ite->annotation().setAAact(true);
+ ite->annotation().setFormat(5);
+ }
+ }
+ Aact = nullptr;
+ }
+- Aact = SC_getAdditionalAction("K", ano);
++ Aact = SC_getAdditionalAction("K", ano).get();
+ if (Aact)
+ {
+ if (Aact->getKind() == actionJavaScript)
+@@ -1195,14 +1206,15 @@ void SlaOutputDev::handleActions(PageIte
+ LinkJavaScript *jsa = (LinkJavaScript*)Aact;
+ if (jsa->isOk())
+ {
+- ite->annotation().setK_act(UnicodeParsedString(jsa->getScript()));
++ GooString script(jsa->getScript());
++ ite->annotation().setK_act(UnicodeParsedString(&script));
+ ite->annotation().setAAact(true);
+ ite->annotation().setFormat(5);
+ }
+ }
+ Aact = nullptr;
+ }
+- Aact = SC_getAdditionalAction("V", ano);
++ Aact = SC_getAdditionalAction("V", ano).get();
+ if (Aact)
+ {
+ if (Aact->getKind() == actionJavaScript)
+@@ -1210,7 +1222,8 @@ void SlaOutputDev::handleActions(PageIte
+ LinkJavaScript *jsa = (LinkJavaScript*)Aact;
+ if (jsa->isOk())
+ {
+- ite->annotation().setV_act(UnicodeParsedString(jsa->getScript()));
++ GooString script(jsa->getScript());
++ ite->annotation().setV_act(UnicodeParsedString(&script));
+ ite->annotation().setAAact(true);
+ }
+ }
+diff -up scribus-1.5.5/scribus/plugins/import/pdf/slaoutput.h.omv~ scribus-1.5.5/scribus/plugins/import/pdf/slaoutput.h
+--- scribus-1.5.5/scribus/plugins/import/pdf/slaoutput.h.omv~ 2020-03-01 22:15:11.562428942 +0100
++++ scribus-1.5.5/scribus/plugins/import/pdf/slaoutput.h 2020-03-01 22:15:21.497429380 +0100
+@@ -159,7 +159,7 @@ public:
+ virtual ~SlaOutputDev();
+
+ LinkAction* SC_getAction(AnnotWidget *ano);
+- LinkAction* SC_getAdditionalAction(const char *key, AnnotWidget *ano);
++ std::unique_ptr<LinkAction> SC_getAdditionalAction(const char *key, AnnotWidget *ano);
+ static GBool 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);
+diff -up scribus-1.5.5/scribus/third_party/lib2geom/path.h.omv~ scribus-1.5.5/scribus/third_party/lib2geom/path.h
+--- scribus-1.5.5/scribus/third_party/lib2geom/path.h.omv~ 2020-03-01 17:41:42.083705367 +0100
++++ scribus-1.5.5/scribus/third_party/lib2geom/path.h 2020-03-01 17:49:45.181726669 +0100
+@@ -252,13 +252,13 @@ public:
+ D2<SBasis> toSBasis() const {return inner.toSBasis(); }
+
+ protected:
+- BezierCurve(Point c[]) {
++ /* BezierCurve(Point c[]) {
+ Coord x[order+1], y[order+1];
+ for(unsigned i = 0; i <= order; i++) {
+ x[i] = c[i][X]; y[i] = c[i][Y];
+ }
+ inner = Bezier(x, y);
+- }
++ } */
+ };
+
+ // BezierCurve<0> is meaningless; specialize it out
diff --git a/scribus-1.5.5-qpainterpath.patch b/scribus-1.5.5-qpainterpath.patch
new file mode 100644
index 0000000..5e0ab99
--- /dev/null
+++ b/scribus-1.5.5-qpainterpath.patch
@@ -0,0 +1,10 @@
+--- scribus-1.5.5/scribus/ui/scresizecursor.cpp.orig 2020-05-02 08:33:39.772027403 +0100
++++ scribus-1.5.5/scribus/ui/scresizecursor.cpp 2020-05-02 08:33:48.822713923 +0100
+@@ -12,6 +12,7 @@
+
+ #include <QDebug>
+ #include <QPainter>
++#include <QPainterPath>
+ #include <QPixmap>
+ #include <QPen>
+ #include <QBrush>
diff --git a/scribus.spec b/scribus.spec
index e03bec3..321e389 100644
--- a/scribus.spec
+++ b/scribus.spec
@@ -3,7 +3,7 @@
Summary: Scribus - Open Source Page Layout
Name: scribus
Version: 1.5.5
-Release: 5
+Release: 10
License: GPLv2+
Group: Office
Url: http://www.scribus.net/
@@ -15,6 +15,8 @@ Patch0: scribus-1.5.5-c++17.patch
# https://bugs.scribus.net/file_download.php?file_id=10660&type=bug
Patch1: 15030_python3_jghali-2.patch
Patch2: scribus-1.5.5-poppler-84.patch
+Patch3: scribus-1.5.5-poppler-86.patch
+Patch4: scribus-1.5.5-qpainterpath.patch
BuildRequires: cmake
BuildRequires: ninja
BuildRequires: desktop-file-utils