- Add 3f0f902d6e47adb45d280947f448bcca6c4e2556.patch: Fix build

with poppler 25.02.0.

OBS-URL: https://build.opensuse.org/package/show/KDE:Extra/scribus?expand=0&rev=99
This commit is contained in:
Christophe Marin 2025-02-19 15:33:09 +00:00 committed by Git OBS Bridge
commit 374a6b23d6
11 changed files with 1742 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -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

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

View File

@ -0,0 +1,105 @@
From 4e83dbc1fd484d93c8d1f737f7dd393bdefce443 Mon Sep 17 00:00:00 2001
From: jghali <jghali@11d20701-8431-0410-a711-e3c959e3b870>
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 <poppler/splash/SplashGlyphBitmap.h>
//------------------------------------------------------------------------
-// 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

View File

@ -0,0 +1,56 @@
From a07bf4a6a200df8d8fed4a643af7d43a21ac1da6 Mon Sep 17 00:00:00 2001
From: Christophe Giboudeaux <christophe@krop.fr>
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

View File

@ -0,0 +1,198 @@
From 3f0f902d6e47adb45d280947f448bcca6c4e2556 Mon Sep 17 00:00:00 2001
From: Jean Ghali <jghali@libertysurf.fr>
Date: Tue, 4 Feb 2025 21:41:03 +0000
Subject: [PATCH] #17405: Fix build error with poppler 25.02.0
git-svn-id: svn://scribus.net/branches/Version16x/Scribus@26668 11d20701-8431-0410-a711-e3c959e3b870
---
scribus/plugins/import/pdf/importpdf.cpp | 4 +-
scribus/plugins/import/pdf/importpdfconfig.h | 6 ++
scribus/plugins/import/pdf/slaoutput.cpp | 67 ++++++++++++++++++--
3 files changed, 68 insertions(+), 9 deletions(-)
diff --git a/scribus/plugins/import/pdf/importpdf.cpp b/scribus/plugins/import/pdf/importpdf.cpp
index c095320f48..a4ba4cfc28 100644
--- a/scribus/plugins/import/pdf/importpdf.cpp
+++ b/scribus/plugins/import/pdf/importpdf.cpp
@@ -462,11 +462,11 @@ bool PdfPlug::convert(const QString& fn)
if (dev->isOk())
{
- OCGs* ocg = pdfDoc->getOptContentConfig();
+ POPPLER_CONST_25_02 OCGs* ocg = pdfDoc->getOptContentConfig();
if (ocg && ocg->hasOCGs())
{
QStringList ocgNames;
- Array *order = ocg->getOrderArray();
+ POPPLER_CONST_25_02 Array *order = ocg->getOrderArray();
if (order)
{
for (int i = 0; i < order->getLength (); ++i)
diff --git a/scribus/plugins/import/pdf/importpdfconfig.h b/scribus/plugins/import/pdf/importpdfconfig.h
index b922816253..57e26c9795 100644
--- a/scribus/plugins/import/pdf/importpdfconfig.h
+++ b/scribus/plugins/import/pdf/importpdfconfig.h
@@ -27,4 +27,10 @@ for which a new license (GPL+exception) is in place.
#define POPPLER_CONST_083
#endif
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(25, 2, 0)
+#define POPPLER_CONST_25_02 const
+#else
+#define POPPLER_CONST_25_02
+#endif
+
#endif
diff --git a/scribus/plugins/import/pdf/slaoutput.cpp b/scribus/plugins/import/pdf/slaoutput.cpp
index 2bf4a566fb..a18d2f59e5 100644
--- a/scribus/plugins/import/pdf/slaoutput.cpp
+++ b/scribus/plugins/import/pdf/slaoutput.cpp
@@ -1685,7 +1685,7 @@ void SlaOutputDev::stroke(GfxState *state)
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
{
@@ -2393,8 +2393,9 @@ bool SlaOutputDev::tilingPatternFill(GfxState *state, Gfx * /*gfx*/, Catalog *ca
#endif
m_graphicStack.top().clipPath = savedClip;
m_inPattern--;
- gElements = m_groupStack.pop();
m_doc->m_Selection->clear();
+
+ gElements = m_groupStack.pop();
if (gElements.Items.count() > 0)
{
for (int dre = 0; dre < gElements.Items.count(); ++dre)
@@ -2932,7 +2933,7 @@ void SlaOutputDev::beginMarkedContent(const char *name, Object *dictRef)
{
if (dictRef->isNull())
return;
- OCGs *contentConfig = m_catalog->getOptContentConfig();
+ POPPLER_CONST_25_02 OCGs *contentConfig = m_catalog->getOptContentConfig();
OptionalContentGroup *oc;
if (dictRef->isRef())
{
@@ -3084,7 +3085,11 @@ void SlaOutputDev::updateFont(GfxState *state)
#if POPPLER_ENCODED_VERSION < POPPLER_VERSION_ENCODE(22, 4, 0)
int tmpBufLen = 0;
#endif
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(25, 2, 0)
+ std::vector<int> codeToGID;
+#else
int *codeToGID = nullptr;
+#endif
const double *textMat = nullptr;
double m11, m12, m21, m22, fontSize;
SplashCoord mat[4] = { 1.0, 0.0, 0.0, 1.0 };
@@ -3244,10 +3249,20 @@ void SlaOutputDev::updateFont(GfxState *state)
}
else
{
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(25, 2, 0)
+ codeToGID.clear();
+#else
codeToGID = nullptr;
+#endif
n = 0;
}
-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 11, 0)
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(25, 2, 0)
+ if (!(fontFile = m_fontEngine->loadTrueTypeFont(std::move(id), fontsrc, std::move(codeToGID), fontLoc->fontNum)))
+ {
+ error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->c_str() : "(unnamed)");
+ goto err2;
+ }
+#elif 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)");
@@ -3278,6 +3293,18 @@ void SlaOutputDev::updateFont(GfxState *state)
#endif
break;
case fontCIDType0COT:
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(25, 2, 0)
+ if (((GfxCIDFont*) gfxFont)->getCIDToGIDLen() > 0)
+ {
+ codeToGID = ((GfxCIDFont*) gfxFont)->getCIDToGID();
+ n = codeToGID.size();
+ }
+ else
+ {
+ codeToGID.clear();
+ n = 0;
+ }
+#else
if (((GfxCIDFont *) gfxFont)->getCIDToGID())
{
n = ((GfxCIDFont *) gfxFont)->getCIDToGIDLen();
@@ -3289,7 +3316,15 @@ void SlaOutputDev::updateFont(GfxState *state)
codeToGID = nullptr;
n = 0;
}
-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 11, 0)
+#endif
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(25, 2, 0)
+ if (!(fontFile = m_fontEngine->loadOpenTypeCFFFont(std::move(id), fontsrc, std::move(codeToGID), fontLoc->fontNum)))
+ {
+ error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'",
+ gfxFont->getName() ? gfxFont->getName()->c_str() : "(unnamed)");
+ goto err2;
+ }
+#elif 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}'",
@@ -3307,6 +3342,15 @@ void SlaOutputDev::updateFont(GfxState *state)
break;
case fontCIDType2:
case fontCIDType2OT:
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(25, 2, 0)
+ codeToGID.clear();
+ n = 0;
+ if (((GfxCIDFont*) gfxFont)->getCIDToGIDLen() > 0)
+ {
+ codeToGID = ((GfxCIDFont*) gfxFont)->getCIDToGID();
+ n = codeToGID.size();
+ }
+#else
codeToGID = nullptr;
n = 0;
if (((GfxCIDFont *) gfxFont)->getCIDToGID())
@@ -3318,6 +3362,7 @@ void SlaOutputDev::updateFont(GfxState *state)
memcpy(codeToGID, ((GfxCIDFont *)gfxFont)->getCIDToGID(), n * sizeof(*codeToGID));
}
}
+#endif
else
{
#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 11, 0)
@@ -3338,7 +3383,9 @@ void SlaOutputDev::updateFont(GfxState *state)
#endif
if (! ff)
goto err2;
-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0)
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(25, 2, 0)
+ codeToGID = ((GfxCIDFont*) gfxFont)->getCodeToGIDMap(ff.get());
+#elif POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0)
codeToGID = ((GfxCIDFont*) gfxFont)->getCodeToGIDMap(ff.get(), &n);
ff.reset();
#else
@@ -3346,7 +3393,13 @@ void SlaOutputDev::updateFont(GfxState *state)
delete ff;
#endif
}
-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 11, 0)
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(25, 2, 0)
+ if (!(fontFile = m_fontEngine->loadTrueTypeFont(std::move(id), fontsrc, std::move(codeToGID), fontLoc->fontNum)))
+ {
+ error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->c_str() : "(unnamed)");
+ goto err2;
+ }
+#elif 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)");

7
_constraints Normal file
View File

@ -0,0 +1,7 @@
<constraints>
<hardware>
<disk>
<size unit="G">5</size>
</disk>
</hardware>
</constraints>

3
scribus-1.6.3.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0ae58ced410101e82655e3b4c20a070cf1767145ada233dcef7c20b8ba6bd487
size 74909384

6
scribus-1.6.3.tar.xz.asc Normal file
View File

@ -0,0 +1,6 @@
-----BEGIN PGP SIGNATURE-----
iF0EABECAB0WIQRlWL6E0nJzpDihURmL6kgRiuvuZAUCZ37jXwAKCRCL6kgRiuvu
ZNnVAKCrRLUuYGi15Hd/ZRjDdeJxrSHJWgCePzKCwgxgdY8khnmAVXSkZzjLZM8=
=T/s5
-----END PGP SIGNATURE-----

1152
scribus.changes Normal file

File diff suppressed because it is too large Load Diff

BIN
scribus.keyring Normal file

Binary file not shown.

191
scribus.spec Normal file
View File

@ -0,0 +1,191 @@
#
# 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
%{?sle15_python_module_pythons}
%if 0%{?suse_version} > 1500
%define pyver python3
%else
%define pyver python311
%endif
Name: scribus
Version: 1.6.3
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.3/
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
Patch1: https://github.com/scribusproject/scribus/commit/3f0f902d6e47adb45d280947f448bcca6c4e2556.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: %{pyver}-devel
BuildRequires: libqxp-devel
BuildRequires: librevenge-devel
BuildRequires: libtiff-devel
BuildRequires: libvisio-devel
BuildRequires: libwpd-devel
BuildRequires: libwpg-devel
BuildRequires: libzmf-devel
BuildRequires: pkgconfig
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: %{pyver}-Pillow
Recommends: %{pyver}-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
%if 0%{?suse_version} > 1500
find . \( -name "*.py" -o -name "*.html" \) -exec sed -i 's#/usr/bin/env python.*#/usr/bin/python3#' {} \;
%else
find . \( -name "*.py" -o -name "*.html" \) -exec sed -i 's#/usr/bin/env python.*#/usr/bin/python3.11#' {} \;
%endif
%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