- 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
This commit is contained in:
Christophe Marin 2025-01-09 11:27:33 +00:00 committed by Git OBS Bridge
commit a70158db01
12 changed files with 3435 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

7
_constraints Normal file
View File

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

File diff suppressed because it is too large Load Diff

View File

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

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

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

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

@ -0,0 +1,6 @@
-----BEGIN PGP SIGNATURE-----
iF0EABECAB0WIQRlWL6E0nJzpDihURmL6kgRiuvuZAUCZm2mxQAKCRCL6kgRiuvu
ZArHAJ0Ru6M6nyTplBSK4zzmPb2q7eqHrACfYR3rpqPw7A2/Acw3CDJ/NL8St5U=
=hugY
-----END PGP SIGNATURE-----

1144
scribus.changes Normal file

File diff suppressed because it is too large Load Diff

BIN
scribus.keyring Normal file

Binary file not shown.

181
scribus.spec Normal file
View File

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