Update to scribus 1.5.5, based on a diff from rsadowski@ reworked by Nam Nguyen, thanks !

Switches to Qt5, fix build with newer poppler via archlinux patches, fix
segfault at startup on ununsed ColorPixmapValue object.

tweaks from sthen@ & myself (mostly depends tidying), tested by rsadowski@
provide a debug package while here
This commit is contained in:
landry 2020-02-19 12:15:45 +00:00
parent fdd5ba1187
commit c879e067dc
15 changed files with 1931 additions and 1683 deletions

View File

@ -1,58 +1,55 @@
# $OpenBSD: Makefile,v 1.67 2019/07/12 20:48:57 sthen Exp $
# $OpenBSD: Makefile,v 1.68 2020/02/19 12:15:45 landry Exp $
COMMENT= desktop publishing program
DISTNAME= scribus-1.4.6
DISTNAME= scribus-1.5.5
CATEGORIES= print
REVISION= 3
HOMEPAGE= https://www.scribus.net/
# GPLv2+
PERMIT_PACKAGE= Yes
WANTLIB += ${COMPILER_LIBCXX} ${MODPY_WANTLIB}
WANTLIB += QtGui QtNetwork QtXml c cairo cups fontconfig freetype
WANTLIB += hyphen jpeg lcms2 m podofo tiff xml2 z
COMPILER = base-clang ports-gcc base-gcc
WANTLIB += ${COMPILER_LIBCXX} Qt5Core Qt5Gui Qt5Network Qt5OpenGL
WANTLIB += Qt5PrintSupport Qt5Widgets Qt5Xml c cairo cups execinfo
WANTLIB += fontconfig freetype harfbuzz harfbuzz-icu hunspell-1.6
WANTLIB += icudata icuuc jpeg lcms2 m podofo poppler ${MODPY_WANTLIB}
WANTLIB += tiff util xml2 z
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=scribus/}
EXTRACT_SUFX= .tar.xz
MODULES= x11/qt4 \
MODULES= x11/qt5 \
devel/cmake \
lang/python
MODPY_RUNDEP= No
BUILD_DEPENDS= devel/boost
RUN_DEPENDS= devel/desktop-file-utils \
graphics/py-Pillow \
print/ghostscript/gnu \
textproc/antiword \
misc/shared-mime-info \
x11/gtk+3,-guic \
${MODPY_TKINTER_DEPENDS}
LIB_DEPENDS= graphics/lcms2 \
graphics/tiff \
print/cups,-libs \
textproc/hyphen \
print/poppler \
devel/harfbuzz,-icu \
textproc/hunspell \
textproc/libxml \
textproc/podofo \
graphics/jpeg \
${MODPY_LIB_DEPENDS}
FLAVORS= debug
FLAVOR?=
CONFIGURE_ARGS+= -DCMAKE_INSTALL_MANDIR="${LOCALBASE}/man/"
#DEBUG_CONFIGURE_ARGS += -DWANT_DEBUG=1
CONFIGURE_ARGS += -DCMAKE_SKIP_RPATH:BOOL=1 \
-DCMAKE_CXX_FLAGS="${CXXFLAGS}" \
-DCMAKE_C_FLAGS="${CFLAGS}" \
-DMANDIR="${LOCALBASE}/man/"
.if ${FLAVOR:Mdebug}
CONFIGURE_ARGS+=-DWANT_DEBUG=1
.endif
# delete DOS line endings
post-extract:
@find ${WRKSRC} -type f -name "*.cpp" | xargs perl -i -pe 's/\r$$//'
@find ${WRKSRC} -type f -name "*.h" | xargs perl -i -pe 's/\r$$//'
post-install:
@${INSTALL_DATA_DIR} ${PREFIX}/share/applications

View File

@ -1,2 +1,2 @@
SHA256 (scribus-1.4.6.tar.xz) = IeM2UA2e3JyQzPcwh+XvPfWew+Sjy/7BU2e82NB4oZo=
SIZE (scribus-1.4.6.tar.xz) = 73601104
SHA256 (scribus-1.5.5.tar.xz) = eQiyGmzoQyafWM7fX495GJMlfmIBzOX73ccNrKL+P3E=
SIZE (scribus-1.5.5.tar.xz) = 73861836

View File

@ -1,24 +0,0 @@
$OpenBSD: patch-CMakeLists_txt,v 1.3 2018/04/13 20:51:12 sthen Exp $
Index: CMakeLists.txt
--- CMakeLists.txt.orig
+++ CMakeLists.txt
@@ -275,7 +275,9 @@ ENDIF (APPLEBUNDLE)
#Setp all the directories we will use
#MAN
CMAKE_POLICY(SET CMP0005 OLD)
-SET(MANDIR "${CMAKE_INSTALL_DATAROOTDIR}/man/")
+IF(!MANDIR)
+ SET(MANDIR "${CMAKE_INSTALL_DATAROOTDIR}/man/")
+ENDIF(MANDIR)
IF(WANT_VERSIONING)
SET(SHAREDIR "${CMAKE_INSTALL_DATAROOTDIR}/${MAIN_DIR_NAME}${TAG_VERSION}/")
ELSE(WANT_VERSIONING)
@@ -374,7 +376,7 @@ IF(WANT_LIB64)
ENDIF(NOT ARCH_X86_64)
SET(LIB_SUFFIX "64" CACHE TYPE STRING)
ENDIF(WANT_LIB64)
-SET(LIB_DIR_NAME "lib${LIB_SUFFIX}")
+SET(LIB_DIR_NAME "lib")
IF (APPLEBUNDLE)
SET(LIBDIR "lib/")
ELSE (APPLEBUNDLE)

View File

@ -0,0 +1,21 @@
$OpenBSD: patch-resources_manpages_CMakeLists_txt,v 1.1 2020/02/19 12:15:45 landry Exp $
Index: resources/manpages/CMakeLists.txt
--- resources/manpages/CMakeLists.txt.orig
+++ resources/manpages/CMakeLists.txt
@@ -7,15 +7,3 @@ scribus.1
DESTINATION ${CMAKE_INSTALL_MANDIR}/man1
RENAME scribus${TAG_VERSION}.1
)
-
-install(FILES
-scribus.1.de
- DESTINATION ${CMAKE_INSTALL_MANDIR}/de/man1
- RENAME scribus${TAG_VERSION}.1
-)
-
-install(FILES
-scribus.1.pl
- DESTINATION ${CMAKE_INSTALL_MANDIR}/pl/man1
- RENAME scribus${TAG_VERSION}.1
-)

View File

@ -1,18 +0,0 @@
$OpenBSD: patch-scribus_CMakeLists_txt,v 1.1 2018/04/13 20:51:12 sthen Exp $
Index: scribus/CMakeLists.txt
--- scribus/CMakeLists.txt.orig
+++ scribus/CMakeLists.txt
@@ -791,10 +791,9 @@ IF(UNIX AND NOT CMAKE_SYSTEM_NAME STREQUAL "OpenBSD" A
TARGET_LINK_LIBRARIES(${EXE_NAME} dl)
ENDIF(UNIX AND NOT CMAKE_SYSTEM_NAME STREQUAL "OpenBSD" AND NOT CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" AND NOT HAIKU)
-# #9311 for the OpenBSD addition
-IF(CMAKE_SYSTEM_NAME STREQUAL "OpenBSD" OR CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
+IF(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
TARGET_LINK_LIBRARIES(${EXE_NAME} util execinfo)
-ENDIF(CMAKE_SYSTEM_NAME STREQUAL "OpenBSD" OR CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
+ENDIF(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
IF(WIN32)
TARGET_LINK_LIBRARIES(${EXE_NAME} ${QT_QTMAIN_LIBRARY})

View File

@ -1,14 +0,0 @@
$OpenBSD: patch-scribus_gtdialogs_cpp,v 1.1 2019/01/21 21:19:48 naddy Exp $
Index: scribus/gtdialogs.cpp
--- scribus/gtdialogs.cpp.orig
+++ scribus/gtdialogs.cpp
@@ -160,7 +160,7 @@ bool gtDialogs::runImporterDialog(const QStringList& i
if (imp != "false")
{
res = imp;
- if (importers.contains(res) > 0)
+ if (importers.contains(res))
ok = true;
}

View File

@ -0,0 +1,90 @@
$OpenBSD: patch-scribus_plugins_import_pdf_importpdf_cpp,v 1.1 2020/02/19 12:15:45 landry Exp $
Fix build with newer poppler, from archlinux
Index: scribus/plugins/import/pdf/importpdf.cpp
--- scribus/plugins/import/pdf/importpdf.cpp.orig
+++ scribus/plugins/import/pdf/importpdf.cpp
@@ -75,7 +75,11 @@ PdfPlug::PdfPlug(ScribusDoc* doc, int flags)
QImage PdfPlug::readThumbnail(const QString& fName)
{
QString pdfFile = QDir::toNativeSeparators(fName);
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 83, 0)
+ globalParams.reset(new GlobalParams());
+#else
globalParams = new GlobalParams();
+#endif
if (globalParams)
{
#if defined(Q_OS_WIN32) && POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 62, 0)
@@ -90,7 +94,9 @@ QImage PdfPlug::readThumbnail(const QString& fName)
if (pdfDoc->getErrorCode() == errEncrypted)
{
delete pdfDoc;
+#if POPPLER_ENCODED_VERSION < POPPLER_VERSION_ENCODE(0, 83, 0)
delete globalParams;
+#endif
return QImage();
}
if (pdfDoc->isOk())
@@ -134,11 +140,15 @@ QImage PdfPlug::readThumbnail(const QString& fName)
image.setText("YSize", QString("%1").arg(h));
delete dev;
delete pdfDoc;
+#if POPPLER_ENCODED_VERSION < POPPLER_VERSION_ENCODE(0, 83, 0)
delete globalParams;
+#endif
return image;
}
delete pdfDoc;
+#if POPPLER_ENCODED_VERSION < POPPLER_VERSION_ENCODE(0, 83, 0)
delete globalParams;
+#endif
}
}
return QImage();
@@ -387,7 +397,11 @@ bool PdfPlug::convert(const QString& fn)
qApp->processEvents();
}
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 83, 0)
+ globalParams.reset(new GlobalParams());
+#else
globalParams = new GlobalParams();
+#endif
GooString *userPW = nullptr;
if (globalParams)
{
@@ -429,7 +443,9 @@ bool PdfPlug::convert(const QString& fn)
if (progressDialog)
progressDialog->close();
delete pdfDoc;
+#if POPPLER_ENCODED_VERSION < POPPLER_VERSION_ENCODE(0, 83, 0)
delete globalParams;
+#endif
return false;
}
if (progressDialog)
@@ -474,7 +490,9 @@ bool PdfPlug::convert(const QString& fn)
progressDialog->close();
delete optImp;
delete pdfDoc;
+#if POPPLER_ENCODED_VERSION < POPPLER_VERSION_ENCODE(0, 83, 0)
delete globalParams;
+#endif
return false;
}
pageString = optImp->getPagesString();
@@ -908,8 +926,12 @@ bool PdfPlug::convert(const QString& fn)
}
delete pdfDoc;
}
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 83, 0)
+ globalParams.release();
+#else
delete globalParams;
globalParams = nullptr;
+#endif
// qDebug() << "converting finished";
// qDebug() << "Imported" << Elements.count() << "Elements";

View File

@ -0,0 +1,18 @@
$OpenBSD: patch-scribus_plugins_import_pdf_importpdfconfig_h,v 1.1 2020/02/19 12:15:45 landry Exp $
Fix build with newer poppler, from archlinux
Index: scribus/plugins/import/pdf/importpdfconfig.h
--- scribus/plugins/import/pdf/importpdfconfig.h.orig
+++ scribus/plugins/import/pdf/importpdfconfig.h
@@ -52,4 +52,10 @@ for which a new license (GPL+exception) is in place.
#define POPPLER_REF
#endif
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 83, 0)
+#define POPPLER_CONST_083 const
+#else
+#define POPPLER_CONST_083
+#endif
+
#endif

View File

@ -0,0 +1,46 @@
$OpenBSD: patch-scribus_plugins_import_pdf_slaoutput_cpp,v 1.1 2020/02/19 12:15:45 landry Exp $
Fix build with newer poppler, from archlinux
Index: scribus/plugins/import/pdf/slaoutput.cpp
--- scribus/plugins/import/pdf/slaoutput.cpp.orig
+++ scribus/plugins/import/pdf/slaoutput.cpp
@@ -1224,6 +1224,11 @@ void SlaOutputDev::startDoc(PDFDoc *doc, XRef *xrefA,
catalog = catA;
pdfDoc = doc;
updateGUICounter = 0;
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 84, 0)
+ m_fontEngine = new SplashFontEngine(true, true, true, true);
+#elif POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 61, 0)
+ m_fontEngine = new SplashFontEngine(globalParams->getEnableFreeType(), true, true, true);
+#else
m_fontEngine = new SplashFontEngine(
#if HAVE_T1LIB_H
globalParams->getEnableT1lib(),
@@ -1234,6 +1239,7 @@ void SlaOutputDev::startDoc(PDFDoc *doc, XRef *xrefA,
true,
#endif
true);
+#endif
}
void SlaOutputDev::startPage(int pageNum, GfxState *, XRef *)
@@ -3705,7 +3711,7 @@ QString SlaOutputDev::getAnnotationColor(const AnnotCo
return fNam;
}
-QString SlaOutputDev::convertPath(GfxPath *path)
+QString SlaOutputDev::convertPath(const GfxPath *path)
{
if (! path)
return QString();
@@ -3715,7 +3721,7 @@ QString SlaOutputDev::convertPath(GfxPath *path)
for (int i = 0; i < path->getNumSubpaths(); ++i)
{
- 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));

View File

@ -0,0 +1,34 @@
$OpenBSD: patch-scribus_plugins_import_pdf_slaoutput_h,v 1.1 2020/02/19 12:15:45 landry Exp $
Index: scribus/plugins/import/pdf/slaoutput.h
--- scribus/plugins/import/pdf/slaoutput.h.orig
+++ scribus/plugins/import/pdf/slaoutput.h
@@ -229,7 +229,7 @@ class SlaOutputDev : public OutputDev (public)
//----- 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, int *maskColors, GBool inlineImg) override;
+ void drawImage(GfxState *state, Object *ref, Stream *str, int width, int height, GfxImageColorMap *colorMap, GBool interpolate, int *maskColors, GBool inlineImg);
void drawSoftMaskedImage(GfxState *state, Object *ref, Stream *str,
int width, int height,
GfxImageColorMap *colorMap,
@@ -261,8 +261,8 @@ class SlaOutputDev : public OutputDev (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*/, Unicode * /*u*/, int /*uLen*/) override;
- GBool beginType3Char(GfxState * /*state*/, double /*x*/, double /*y*/, double /*dx*/, double /*dy*/, CharCode /*code*/, 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*/, Unicode * /*u*/, int /*uLen*/);
+ GBool beginType3Char(GfxState * /*state*/, double /*x*/, double /*y*/, double /*dx*/, double /*dy*/, CharCode /*code*/, Unicode * /*u*/, int /*uLen*/);
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;
@@ -282,7 +282,7 @@ class SlaOutputDev : public OutputDev (public)
void getPenState(GfxState *state);
QString getColor(GfxColorSpace *color_space, POPPLER_CONST_070 GfxColor *color, int *shade);
QString getAnnotationColor(const AnnotColor *color);
- QString convertPath(GfxPath *path);
+ QString convertPath(const GfxPath *path);
int getBlendMode(GfxState *state);
void applyMask(PageItem *ite);
void pushGroup(const QString& maskName = "", GBool forSoftMask = gFalse, GBool alpha = gFalse, bool inverted = false);

View File

@ -0,0 +1,14 @@
$OpenBSD: patch-scribus_third_party_zip_zip_p_h,v 1.1 2020/02/19 12:15:45 landry Exp $
Index: scribus/third_party/zip/zip_p.h
--- scribus/third_party/zip/zip_p.h.orig
+++ scribus/third_party/zip/zip_p.h
@@ -62,7 +62,7 @@ class ZipPrivate : public QObject
Q_OBJECT
public:
- typedef z_crc_t crc_t;
+ typedef uLongf crc_t;
ZipPrivate();
virtual ~ZipPrivate();

View File

@ -0,0 +1,17 @@
$OpenBSD: patch-scribus_ui_colorlistmodel_cpp,v 1.1 2020/02/19 12:15:45 landry Exp $
avoid segfault caused by CommonStrings::None by removing m_NoneColor, which is
unused anyways
Index: scribus/ui/colorlistmodel.cpp
--- scribus/ui/colorlistmodel.cpp.orig
+++ scribus/ui/colorlistmodel.cpp
@@ -10,8 +10,6 @@ for which a new license (GPL+exception) is in place.
#include "colorlistbox.h"
#include "commonstrings.h"
-ColorPixmapValue ColorListModel::m_NoneColor(ScColor(), nullptr, CommonStrings::None);
-
ColorListModel::ColorListModel(QObject *parent)
: QAbstractItemModel(parent)
{

View File

@ -0,0 +1,18 @@
$OpenBSD: patch-scribus_ui_colorlistmodel_h,v 1.1 2020/02/19 12:15:45 landry Exp $
avoid segfault caused by CommonStrings::None by removing m_NoneColor, which is
unused anyways
Index: scribus/ui/colorlistmodel.h
--- scribus/ui/colorlistmodel.h.orig
+++ scribus/ui/colorlistmodel.h
@@ -103,9 +103,6 @@ class SCRIBUS_API ColorListModel : public QAbstractIte
// SortRule m_sortRule
SortRule m_sortRule;
- //! Dummy object used to represent None Color
- static ColorPixmapValue m_NoneColor;
-
static bool compareColorNames(const ColorPixmapValue& v1, const ColorPixmapValue& v2);
static bool compareColorValues(const ColorPixmapValue& v1, const ColorPixmapValue& v2);
static bool compareColorTypes(const ColorPixmapValue& v1, const ColorPixmapValue& v2);

View File

@ -1,12 +1,14 @@
$OpenBSD: patch-scribus_util_cpp,v 1.1 2018/04/13 20:51:12 sthen Exp $
$OpenBSD: patch-scribus_util_cpp,v 1.2 2020/02/19 12:15:45 landry Exp $
Index: scribus/util.cpp
--- scribus/util.cpp.orig
+++ scribus/util.cpp
@@ -38,7 +38,9 @@ for which a new license (GPL+exception) is in place.
#include <signal.h>
@@ -40,8 +40,10 @@ for which a new license (GPL+exception) is in place.
#if !defined(_WIN32) && !defined(Q_OS_MAC) && !defined(Q_OS_HAIKU)
#include <csignal>
-#if !defined(_WIN32) && !defined(Q_OS_MAC)
+#if !defined(_WIN32) && !defined(Q_OS_MAC)
+#ifndef __OpenBSD__
#include <execinfo.h>
+#endif

File diff suppressed because it is too large Load Diff