+# TODO:
+# - OpenSceneGraph support (WANT_NOOSG to disable)
+# - system hyphen
+# - more system libs, see scribus/third_party (e.g. libwpg)
+# - qt6 bcond? (BR: Qt6{Core,Core5Compat,Gui,Widgets,Network} >= 6.2.0, cmake >= 3.16.0)
#
# Conditional build:
-%bcond_with cairo # build with cairo support
-%bcond_without cups # build without CUPS support
+%bcond_without cups # CUPS support
#
+%define qt_ver 5.14.0
Summary: Scribus - Open Source Desktop Publishing
Summary(pl.UTF-8): Scribus - DTP dla Wolnego Oprogramowania
Name: scribus
-Version: 1.3.8
-Release: 1
-License: GPL v2
+Version: 1.5.8
+Release: 6
+License: GPL v2+
Group: X11/Applications/Publishing
-Source0: http://dl.sourceforge.net/scribus/%{name}-%{version}.tar.bz2
-# Source0-md5: 660b946ea3ba19e894fb5701832a6b54
-Source1: %{name}.desktop
-Patch1: %{name}-standard-font-paths.patch
-Patch2: %{name}-docs.patch
-Patch3: %{name}-sparc.patch
-URL: http://www.scribus.net/
-%{?with_cairo:BuildRequires: cairo-devel >= 1.2.0}
-BuildRequires: cmake >= 2.4.5
+Source0: https://downloads.sourceforge.net/scribus/%{name}-%{version}.tar.xz
+# Source0-md5: ff9e966a2251a6c8800bb26fcb4b7c59
+Patch0: %{name}-docs.patch
+Patch1: %{name}-poppler.patch
+Patch2: %{name}-poppler-22.09.0.patch
+Patch3: podofo-0.10.patch
+URL: https://www.scribus.net/
+BuildRequires: GraphicsMagick-devel
+BuildRequires: Qt5Core-devel >= %{qt_ver}
+BuildRequires: Qt5Gui-devel >= %{qt_ver}
+BuildRequires: Qt5Network-devel >= %{qt_ver}
+BuildRequires: Qt5OpenGL-devel >= %{qt_ver}
+BuildRequires: Qt5PrintSupport-devel >= %{qt_ver}
+BuildRequires: Qt5Widgets-devel >= %{qt_ver}
+BuildRequires: Qt5Xml-devel >= %{qt_ver}
+BuildRequires: boost-devel
+BuildRequires: cairo-devel >= 1.2.0
+BuildRequires: cmake >= 3.14.0
%if %{with cups}
BuildRequires: cups-devel
%else
BuildConflicts: cups-devel
%endif
+BuildRequires: fontconfig-devel
BuildRequires: freetype-devel >= 2.1.0
-BuildRequires: lcms-devel >= 1.09
-%{!?with_cairo:BuildRequires: libart_lgpl-devel >= 2.3.14}
+BuildRequires: harfbuzz-devel >= 0.9.42
+BuildRequires: harfbuzz-icu-devel
+BuildRequires: harfbuzz-subset-devel >= 2.4.0
+BuildRequires: hunspell-devel
+# missing find_package(HYPHEN); bundled version is used
+#BuildRequires: hyphen-devel
+BuildRequires: lcms2-devel >= 2
+BuildRequires: libcdr-devel >= 0.1
+BuildRequires: libfreehand-devel >= 0.1
+BuildRequires: libicu-devel
BuildRequires: libjpeg-devel
-BuildRequires: libpng-devel
+BuildRequires: libmspub-devel >= 0.1
+BuildRequires: libpagemaker-devel
+BuildRequires: libpng-devel >= 2:1.6
+BuildRequires: libqxp-devel
+BuildRequires: librevenge-devel
+BuildRequires: libstdc++-devel >= 6:7
BuildRequires: libtiff-devel
-BuildRequires: libxml2-devel
+BuildRequires: libvisio-devel >= 0.1
+BuildRequires: libxml2-devel >= 2
+BuildRequires: libzmf-devel
BuildRequires: openssl-devel
-BuildRequires: perl-base
BuildRequires: pkgconfig
BuildRequires: podofo-devel
-BuildRequires: python-devel
-BuildRequires: python-modules
-BuildRequires: qt-devel >= 6:3.0.5
+BuildRequires: poppler-cpp-devel >= 0.86.0
+BuildRequires: poppler-devel >= 0.86.0
+BuildRequires: python3-devel >= 1:3.2
+BuildRequires: python3-modules >= 1:3.2
+BuildRequires: qt5-build >= %{qt_ver}
+BuildRequires: qt5-linguist >= %{qt_ver}
+BuildRequires: qt5-qmake >= %{qt_ver}
BuildRequires: rpm-pythonprov
-BuildRequires: rpmbuild(macros) >= 1.293
+BuildRequires: rpmbuild(macros) >= 2.005
BuildRequires: sed >= 4.0
+BuildRequires: tar >= 1:1.22
+BuildRequires: xz
BuildRequires: zlib-devel
-Requires: desktop-file-utils
-Requires: python-PIL
-Requires: python-tkinter
+Requires(post,postun): desktop-file-utils
+Requires(post,postun): gtk-update-icon-cache
+Requires: Qt5Core >= %{qt_ver}
+Requires: Qt5Gui >= %{qt_ver}
+Requires: Qt5Network >= %{qt_ver}
+Requires: Qt5OpenGL >= %{qt_ver}
+Requires: Qt5PrintSupport >= %{qt_ver}
+Requires: Qt5Widgets >= %{qt_ver}
+Requires: Qt5Xml >= %{qt_ver}
+Requires: harfbuzz >= 0.9.42
+Requires: harfbuzz-subset >= 2.4.0
+Requires: hicolor-icon-theme
+Requires: python3-pillow
+Requires: python3-tkinter
Requires: shared-mime-info
-Obsoletes: scribus-scripting
-Obsoletes: scribus-short-words
-Obsoletes: scribus-svg
+Obsoletes: scribus-devel < 1.3.3.6
+Obsoletes: scribus-scripting < 0.6
+Obsoletes: scribus-short-words < 1.3
+Obsoletes: scribus-svg < 0.4
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define specflags_ia32 -fomit-frame-pointer
+%define _debugsource_packages 0
+
%description
Scribus is an open source desktop page layout program with the aim of
producing commerical grade output in PDF and Postscript, primarily,
dokumenty PDF oraz Postscript nadające się do użytku komercyjnego,
przeznaczony głównie, lecz nie tylko, dla systemu Linux(R).
-%package devel
-Summary: Header files for Scribus plugins development
-Summary(pl.UTF-8): Pliki nagłówkowe do tworzenia wtyczek Scribusa
-Group: Development/Libraries
-# currently it doesn't require base
-Requires: qt-devel
-
-%description devel
-Header files for Scribus plugins development.
-
-%description devel -l pl.UTF-8
-Pliki nagłówkowe do tworzenia wtyczek Scribusa.
-
%package docs
Summary: Documentation for Scribus
Summary(pl.UTF-8): Dokumentacja dla Scribusa
-License: custom OPL (see License),FDL
+License: custom OPL (see License), FDL
Group: X11/Applications/Publishing
%description docs
%prep
%setup -q
+%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%build
-export QTDIR=%{_prefix}
-export KDEDIR=%{_prefix}
+%cmake -B build \
+ -DWANT_CPP17=ON \
+ -DWANT_GRAPHICSMAGICK:BOOL=ON
-%cmake . \
- -DCMAKE_INSTALL_PREFIX:PATH=%{_prefix} \
-%if "%{_lib}" == "lib64"
- -DLIB_SUFFIX=64 \
-%endif
-%if %{with cairo}
- -DWANT_CAIRO=1
-%else
- -DWANT_LIBART=1
-%endif
-
-%{__make} -j1
+%{__make} -C build
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{_desktopdir},%{_pixmapsdir}}
-%{__make} install \
+%{__make} -C build install \
DESTDIR=$RPM_BUILD_ROOT
-install %{SOURCE1} $RPM_BUILD_ROOT%{_desktopdir}
-install $RPM_BUILD_ROOT%{_datadir}/%{name}/icons/scribus.png $RPM_BUILD_ROOT%{_pixmapsdir}
-
-mv $RPM_BUILD_ROOT%{_datadir}/mimelnk/* $RPM_BUILD_ROOT%{_datadir}/mime/
-
-mv $RPM_BUILD_ROOT%{_datadir}/%{name}/translations/%{name}.lt_LT.qm $RPM_BUILD_ROOT%{_datadir}/%{name}/translations/%{name}.lt.qm
-
-rm -f $RPM_BUILD_ROOT%{_libdir}/scribus/*.no.qm
-
-rm -f $RPM_BUILD_ROOT%{_datadir}/%{name}/doc/{AUTHORS,BUILDING,COPYING,ChangeLog,ChangeLogCVS,ChangeLogSVN,INSTALL,NEWS,PACKAGING,README,README.MacOSX,README.OS2,TODO}
-
-# currently not used, -devel subpackage?
-rm -rf $RPM_BUILD_ROOT%{_includedir}/%{name}
+%{__mv} $RPM_BUILD_ROOT%{_datadir}/%{name}/translations/%{name}.{cs_CZ,cs}.qm
+%{__mv} $RPM_BUILD_ROOT%{_datadir}/%{name}/translations/%{name}.{da_DK,da}.qm
+%{__mv} $RPM_BUILD_ROOT%{_datadir}/%{name}/translations/%{name}.{es_ES,es}.qm
+%{__mv} $RPM_BUILD_ROOT%{_datadir}/%{name}/translations/%{name}.{fa_IR,fa}.qm
+%{__mv} $RPM_BUILD_ROOT%{_datadir}/%{name}/translations/%{name}.{he_IL,he}.qm
+%{__mv} $RPM_BUILD_ROOT%{_datadir}/%{name}/translations/%{name}.{hi_IN,hi}.qm
+%{__mv} $RPM_BUILD_ROOT%{_datadir}/%{name}/translations/%{name}.{hr_HR,hr}.qm
+%{__mv} $RPM_BUILD_ROOT%{_datadir}/%{name}/translations/%{name}.{kn_IN,kn}.qm
+%{__mv} $RPM_BUILD_ROOT%{_datadir}/%{name}/translations/%{name}.{lt_LT,lt}.qm
+%{__mv} $RPM_BUILD_ROOT%{_datadir}/%{name}/translations/%{name}.{mn_MN,mn}.qm
+%{__mv} $RPM_BUILD_ROOT%{_datadir}/%{name}/translations/%{name}.{ms_MY,ms}.qm
+%{__mv} $RPM_BUILD_ROOT%{_datadir}/%{name}/translations/%{name}.{nb_NO,nb}.qm
+%{__mv} $RPM_BUILD_ROOT%{_datadir}/%{name}/translations/%{name}.{pl_PL,pl}.qm
+%{__mv} $RPM_BUILD_ROOT%{_datadir}/%{name}/translations/%{name}.{pt_PT,pt}.qm
+%{__mv} $RPM_BUILD_ROOT%{_datadir}/%{name}/translations/%{name}.{sk_SK,sk}.qm
+%{__mv} $RPM_BUILD_ROOT%{_datadir}/%{name}/translations/%{name}.{th_TH,th}.qm
+
+echo '%%defattr(644,root,root,755)' >%{name}.lang
+for f in $RPM_BUILD_ROOT%{_datadir}/%{name}/translations/%{name}.*.qm ; do
+ bn="$(basename $f .qm)"
+ lang="${bn#%{name}.}"
+ echo "%%lang(${lang}) ${f#${RPM_BUILD_ROOT}}" >>%{name}.lang
+done
+
+%{__rm} $RPM_BUILD_ROOT%{_datadir}/%{name}/doc/{AUTHORS,COPYING,ChangeLog,README,LINKS,TRANSLATION}
%clean
rm -rf $RPM_BUILD_ROOT
%post
%update_desktop_database_post
%update_mime_database
+%update_icon_cache hicolor
%postun
%update_desktop_database_postun
%update_mime_database
+%update_icon_cache hicolor
-%files
+%files -f %{name}.lang
%defattr(644,root,root,755)
-%doc AUTHORS ChangeLog ChangeLogSVN NEWS README
+# COPYING contains many additional notes
+%doc AUTHORS COPYING ChangeLog NEWS README TODO
%attr(755,root,root) %{_bindir}/scribus
%dir %{_libdir}/%{name}
-%{_libdir}/%{name}/import.prolog
-%{_datadir}/%{name}/unicodenameslist.txt
-# don't mark dictionaries with lang() --misiek
-%{_datadir}/%{name}/dicts
-%{_datadir}/%{name}/editorconfig
-%{_datadir}/%{name}/keysets
+%{_libdir}/%{name}/scribus.css
%dir %{_libdir}/%{name}/plugins
%attr(755,root,root) %{_libdir}/%{name}/plugins/*.so*
%dir %{_libdir}/%{name}/plugins/gettext
%attr(755,root,root) %{_libdir}/%{name}/plugins/gettext/*.so*
-%dir %{_libdir}/scribus/profiles
-%dir %{_datadir}/%{name}/translations
-%lang(af) %{_datadir}/%{name}/translations/scribus.af.qm
-%lang(ar) %{_datadir}/%{name}/translations/scribus.ar.qm
-%lang(bg) %{_datadir}/%{name}/translations/scribus.bg.qm
-%lang(bn) %{_datadir}/%{name}/translations/scribus.bn.qm
-%lang(br) %{_datadir}/%{name}/translations/scribus.br.qm
-%lang(ca) %{_datadir}/%{name}/translations/scribus.ca.qm
-%lang(cs) %{_datadir}/%{name}/translations/scribus.cs.qm
-%lang(cy) %{_datadir}/%{name}/translations/scribus.cy.qm
-%lang(da) %{_datadir}/%{name}/translations/scribus.da.qm
-%lang(de) %{_datadir}/%{name}/translations/scribus.de.qm
-%lang(de_CH) %{_datadir}/%{name}/translations/scribus.de_CH.qm
-%lang(de) %{_datadir}/%{name}/translations/scribus.de_ol.qm
-%lang(dz) %{_datadir}/%{name}/translations/scribus.dz.qm
-%lang(el) %{_datadir}/%{name}/translations/scribus.el.qm
-%lang(en_AU) %{_datadir}/%{name}/translations/scribus.en_AU.qm
-%lang(en_GB) %{_datadir}/%{name}/translations/scribus.en_GB.qm
-%lang(en_US) %{_datadir}/%{name}/translations/scribus.en_US.qm
-%lang(eo) %{_datadir}/%{name}/translations/scribus.eo.qm
-%lang(es) %{_datadir}/%{name}/translations/scribus.es.qm
-%lang(es) %{_datadir}/%{name}/translations/scribus.es_LA.qm
-%lang(et) %{_datadir}/%{name}/translations/scribus.et.qm
-%lang(eu) %{_datadir}/%{name}/translations/scribus.eu.qm
-%lang(fi) %{_datadir}/%{name}/translations/scribus.fi.qm
-%lang(fr) %{_datadir}/%{name}/translations/scribus.fr.qm
-%lang(gl) %{_datadir}/%{name}/translations/scribus.gl.qm
-%lang(hu) %{_datadir}/%{name}/translations/scribus.hu.qm
-%lang(id) %{_datadir}/%{name}/translations/scribus.id.qm
-%lang(it) %{_datadir}/%{name}/translations/scribus.it.qm
-%lang(ja) %{_datadir}/%{name}/translations/scribus.ja.qm
-%lang(ko) %{_datadir}/%{name}/translations/scribus.ko.qm
-%lang(lt) %{_datadir}/%{name}/translations/scribus.lt.qm
-%lang(nl) %{_datadir}/%{name}/translations/scribus.nl.qm
-%lang(nb) %{_datadir}/%{name}/translations/scribus.nb.qm
-%lang(pl) %{_datadir}/%{name}/translations/scribus.pl.qm
-%lang(pt) %{_datadir}/%{name}/translations/scribus.pt.qm
-%lang(pt_BR) %{_datadir}/%{name}/translations/scribus.pt_BR.qm
-%lang(ru) %{_datadir}/%{name}/translations/scribus.ru.qm
-%lang(sa) %{_datadir}/%{name}/translations/scribus.sa.qm
-%lang(sk) %{_datadir}/%{name}/translations/scribus.sk.qm
-%lang(sl) %{_datadir}/%{name}/translations/scribus.sl.qm
-%lang(sq) %{_datadir}/%{name}/translations/scribus.sq.qm
-%lang(sr) %{_datadir}/%{name}/translations/scribus.sr.qm
-%lang(sv) %{_datadir}/%{name}/translations/scribus.sv.qm
-%lang(th) %{_datadir}/%{name}/translations/scribus.th_TH.qm
-%lang(tr) %{_datadir}/%{name}/translations/scribus.tr.qm
-%lang(uk) %{_datadir}/%{name}/translations/scribus.uk.qm
-%lang(zh_CN) %{_datadir}/%{name}/translations/scribus.zh.qm
-%lang(zh_TW) %{_datadir}/%{name}/translations/scribus.zh_TW.qm
-%dir %{_libdir}/%{name}/swatches
-%{_libdir}/%{name}/swatches/*
%dir %{_datadir}/%{name}
%{_datadir}/%{name}/dtd
+%{_datadir}/%{name}/dicts
+%{_datadir}/%{name}/editorconfig
%{_datadir}/%{name}/icons
+%{_datadir}/%{name}/keysets
%{_datadir}/%{name}/loremipsum
-%{_datadir}/mime/packages/scribus.xml
-%dir %{_datadir}/%{name}/plugins
-%{_datadir}/%{name}/plugins/*
+%{_datadir}/%{name}/plugins
+%dir %{_datadir}/%{name}/profiles
%dir %{_datadir}/%{name}/samples
%{_datadir}/%{name}/samples/*.py
-%dir %{_datadir}/%{name}/scripts
-%{_datadir}/%{name}/scripts/*.py
+%{_datadir}/%{name}/scripts
+%{_datadir}/%{name}/swatches
+%dir %{_datadir}/%{name}/translations
+%{_datadir}/%{name}/unicodenameslist.txt
%{_desktopdir}/%{name}.desktop
-%{_mandir}/man1/%{name}.1*
-%lang(pl) %{_mandir}/pl/man1/%{name}.1*
-%lang(de) %{_mandir}/de/man1/%{name}.1*
-%{_pixmapsdir}/%{name}.png
-%{_datadir}/mime/application/vnd.scribus.desktop
-
-#%files devel
-#%defattr(644,root,root,755)
-#%{_includedir}/scribus
+%{_iconsdir}/hicolor/*x*/apps/scribus.png
+%{_datadir}/mime/packages/scribus.xml
+%{_datadir}/metainfo/scribus.appdata.xml
+%{_mandir}/man1/scribus.1*
+%lang(de) %{_mandir}/de/man1/scribus.1*
+%lang(pl) %{_mandir}/pl/man1/scribus.1*
%files docs
%defattr(644,root,root,755)
%dir %{_datadir}/%{name}/doc
-%dir %{_datadir}/%{name}/doc/en
-%{_datadir}/%{name}/doc/en/*
-%lang(cs) %dir %{_datadir}/%{name}/doc/cs
-%lang(cs) %dir %{_datadir}/%{name}/doc/cs/tutorials
-%lang(cs) %dir %{_datadir}/%{name}/doc/cs/tutorials/scribus-short-words
-%lang(cs) %{_datadir}/%{name}/doc/cs/tutorials/scribus-short-words/*
-%lang(de) %dir %{_datadir}/%{name}/doc/de
-%lang(de) %{_datadir}/%{name}/doc/de/*
-%lang(fr) %dir %{_datadir}/%{name}/doc/fr
-%lang(fr) %{_datadir}/%{name}/doc/fr/*.*ml
-%lang(fr) %dir %{_datadir}/%{name}/doc/fr/tutorials
-%lang(fr) %dir %{_datadir}/%{name}/doc/fr/tutorials/scribus-short-words
-%lang(fr) %{_datadir}/%{name}/doc/fr/tutorials/scribus-short-words/*
-%lang(pl) %dir %{_datadir}/%{name}/doc/pl
-%lang(pl) %dir %{_datadir}/%{name}/doc/pl/tutorials
-%lang(pl) %dir %{_datadir}/%{name}/doc/pl/tutorials/scribus-short-words
-%lang(pl) %{_datadir}/%{name}/doc/pl/tutorials/scribus-short-words/*
-
+%{_datadir}/%{name}/doc/en
+%lang(de) %{_datadir}/%{name}/doc/de
+%lang(it) %{_datadir}/%{name}/doc/it
+%lang(ru) %{_datadir}/%{name}/doc/ru
%files icc
%defattr(644,root,root,755)
-%{_libdir}/scribus/profiles/*
+%{_datadir}/scribus/profiles/*
%files templates-base
%defattr(644,root,root,755)
-%dir %{_datadir}/%{name}/templates
-%{_datadir}/%{name}/templates/*.xml
-%dir %{_datadir}/%{name}/templates/br1
-%{_datadir}/%{name}/templates/br1/*
-%dir %{_datadir}/%{name}/templates/nl1
-%{_datadir}/%{name}/templates/nl1/*
-%dir %{_datadir}/%{name}/templates/sc_presentation
-%{_datadir}/%{name}/templates/sc_presentation/*
-%dir %{_datadir}/%{name}/templates/textbased
-%{_datadir}/%{name}/templates/textbased/*
-
-%if 0
- /usr/lib/scribus/import_la.prolog
- /usr/share/scribus/scripts/ChangeLog
- /usr/share/scribus/scripts/NEWS
- /usr/share/scribus/scripts/ReadMe
- /usr/share/scribus/scripts/TODO
- /usr/share/scribus/unicodenameslist.txt
-%endif
+%{_datadir}/%{name}/templates