+# TODO:
+# - OpenSceneGraph support (WANT_NOOSG to disable)
+# - system hyphen
+# - more system libs, see scribus/third_party (e.g. libwpg)
#
# Conditional build:
-%bcond_with cairo # build with cairo support
-%bcond_without cups # build without CUPS support
-#
-# TODO:
-# - get the docs right, I just don't know of any better way
+%bcond_without cups # CUPS support
#
-
+%define qt_ver 5.11.0
Summary: Scribus - Open Source Desktop Publishing
-Summary(pl): Scribus - DTP dla Wolnego Oprogramowania
+Summary(pl.UTF-8): Scribus - DTP dla Wolnego Oprogramowania
Name: scribus
-Version: 1.3.3.2
+Version: 1.5.6.1
Release: 1
-License: GPL v2
+License: GPL v2+
Group: X11/Applications/Publishing
-Source0: http://dl.sourceforge.net/scribus/%{name}-%{version}.tar.bz2
-# Source0-md5: fa5d0dbb675b41f3d56823943b06c84c
-Source1: %{name}.desktop
-Source2: %{name}icon.png
-Patch0: %{name}-python.patch
-Patch1: %{name}-standard-font-paths.patch
-Patch2: %{name}-module-fixes.patch
-Patch3: %{name}-nolibs.patch
-URL: http://www.scribus.net/
-BuildRequires: autoconf
-BuildRequires: automake
-%{?with_cairo:BuildRequires: cairo-devel}
+Source0: http://downloads.sourceforge.net/scribus/%{name}-%{version}.tar.xz
+# Source0-md5: 12700cd8c6f08ef02f50495d2ef2d3ce
+Patch0: %{name}-docs.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.12.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: 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 >= 1.6
+BuildRequires: libqxp-devel
+BuildRequires: librevenge-devel
+BuildRequires: libstdc++-devel >= 6:4.7
BuildRequires: libtiff-devel
-BuildRequires: libxml2-devel
+BuildRequires: libvisio-devel >= 0.1
+BuildRequires: libxml2-devel >= 2
+BuildRequires: libzmf-devel
BuildRequires: openssl-devel
-BuildRequires: python-devel
-BuildRequires: python-modules
+BuildRequires: pkgconfig
+BuildRequires: podofo-devel
+BuildRequires: poppler-cpp-devel >= 0.58.0
+BuildRequires: poppler-devel >= 0.58.0
+BuildRequires: python-devel >= 2
+BuildRequires: python-modules >= 2
+BuildRequires: qt5-build >= %{qt_ver}
+BuildRequires: qt5-linguist >= %{qt_ver}
+BuildRequires: qt5-qmake >= %{qt_ver}
BuildRequires: rpm-pythonprov
-#BuildRequires: qt-devel >= 3.0.5
-BuildRequires: QtCore-devel
+BuildRequires: rpmbuild(macros) >= 1.577
+BuildRequires: sed >= 4.0
BuildRequires: zlib-devel
-Requires: python-Imaging
+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: hicolor-icon-theme
+Requires: python-PIL
Requires: python-tkinter
-Obsoletes: scribus-svg
+Requires: shared-mime-info
Obsoletes: scribus-scripting
Obsoletes: scribus-short-words
+Obsoletes: scribus-svg
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define specflags_ia32 -fomit-frame-pointer
-%define _ulibdir %{_prefix}/lib
%description
Scribus is an open source desktop page layout program with the aim of
producing commerical grade output in PDF and Postscript, primarily,
though not exclusively for Linux(R).
-%description -l pl
-Scribus jest to program do tworzenia publikacji z za³o¿enia generuj±cy
-dokumenty PDF oraz Postscript nadaj±ce siê do u¿ytku komercyjnego,
-przeznaczony g³ównie, lecz nie tylko, dla systemu Linux(R).
+%description -l pl.UTF-8
+Scribus jest to program do tworzenia publikacji z założenia generujący
+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): Pliki nag³ówkowe do tworzenia wtyczek Scribusa
+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
-Pliki nag³ówkowe do tworzenia wtyczek Scribusa.
+%description devel -l pl.UTF-8
+Pliki nagłówkowe do tworzenia wtyczek Scribusa.
%package docs
Summary: Documentation for Scribus
-Summary(pl): Dokumentacja dla Scribusa
-License: custom OPL (see License),FDL
+Summary(pl.UTF-8): Dokumentacja dla Scribusa
+License: custom OPL (see License), FDL
Group: X11/Applications/Publishing
-Requires: scribus
%description docs
-On-line user documentation for Scribus.
+User documentation for Scribus.
-%description docs -l pl
-Dokumentacja u¿ytkownika dla Scribusa.
+%description docs -l pl.UTF-8
+Dokumentacja użytkownika dla Scribusa.
%package icc
Summary: ICC profiles for Scribus
-Summary(pl): Profile ICC dla Scribusa
+Summary(pl.UTF-8): Profile ICC dla Scribusa
License: freely distributable
Group: X11/Applications/Publishing
-Requires: scribus >= 1.2.3
+Requires: %{name} = %{version}-%{release}
%description icc
-Some standard ICM CMYK and RGB profiles for use with Scribus.
-You should take care to use custom ones!
+Some standard ICM CMYK and RGB profiles for use with Scribus. You
+should take care to use custom ones!
-%description icc -l pl
-Standardowe profile ICM w formacie CMYK i RGB do u¿ycia
-w Scribusie.
-Zalecane jest u¿ywanie w³asnych profili zamiast nich!
+%description icc -l pl.UTF-8
+Standardowe profile ICM w formacie CMYK i RGB do użycia w Scribusie.
+Zalecane jest używanie własnych profili zamiast nich!
%package templates-base
Summary: Default document templates
-Summary(pl): Domy¶lne szablony dokumentów
+Summary(pl.UTF-8): Domyślne szablony dokumentów
License: GPL v2
Group: X11/Applications/Publishing
-Requires: scribus
+Requires: %{name} = %{version}-%{release}
Obsoletes: scribus-templates < 1.2.1
%description templates-base
Default document templates shipped with Scribus.
-%description templates-base -l pl
-Domy¶lne szablony dokumentów dostarczane wraz ze Scribusem.
+%description templates-base -l pl.UTF-8
+Domyślne szablony dokumentów dostarczane wraz ze Scribusem.
%prep
%setup -q
%patch0 -p1
-%patch1 -p1
-%patch2 -p1
-%patch3 -p1
-
-%{__perl} -pi -e 's@(ac_python_dir/lib /usr/)lib@$1%{_lib}@' acinclude.m4
%build
-QTDIR=%{_prefix}
-KDEDIR=%{_prefix}
-export QTDIR KDEDIR
+mkdir -p build
+cd build
+
+%cmake .. \
+ -DWANT_GRAPHICSMAGICK:BOOL=ON
-%{__aclocal}
-%{__autoconf}
-%{__autoheader}
-%{__automake}
-%{__perl} admin/am_edit
-%configure \
- %{?with_cairo:--enable-cairo} \
- --with-qt-libraries=%{_libdir} \
- --libdir=%{_ulibdir}
%{__make}
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{_desktopdir},%{_pixmapsdir},%{_datadir}/mime/packages/}
-%{__make} install \
+%{__make} -C build install \
DESTDIR=$RPM_BUILD_ROOT
-#Install .desktop, .icon and .xml
-install %{SOURCE1} $RPM_BUILD_ROOT%{_desktopdir}
-install %{SOURCE2} $RPM_BUILD_ROOT%{_pixmapsdir}
-install scribus.xml $RPM_BUILD_ROOT%{_datadir}/mime/packages/scribus.xml
-
-rm -f $RPM_BUILD_ROOT%{_ulibdir}/scribus/*.no.qm
+%{__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
-umask 022
-[ ! -x /usr/bin/update-desktop-database ] || /usr/bin/update-desktop-database >/dev/null 2>&1 ||:
-[ ! -x /usr/bin/update-mime-database ] || /usr/bin/update-mime-database %{_datadir}/mime >/dev/null 2>&1 ||:
+%update_desktop_database_post
+%update_mime_database
+%update_icon_cache hicolor
%postun
-umask 022
-[ ! -x /usr/bin/update-desktop-database ] || /usr/bin/update-desktop-database >/dev/null 2>&1 ||:
-[ ! -x /usr/bin/update-mime-database ] || /usr/bin/update-mime-database %{_datadir}/mime >/dev/null 2>&1 ||:
+%update_desktop_database_postun
+%update_mime_database
+%update_icon_cache hicolor
-%files
+%files -f %{name}.lang
%defattr(644,root,root,755)
+# COPYING contains many additional notes
+%doc AUTHORS COPYING ChangeLog NEWS README TODO
%attr(755,root,root) %{_bindir}/scribus
-%dir %{_ulibdir}/%{name}
-%{_ulibdir}/%{name}/import.prolog
-# don't mark dictionaries with lang() --misiek
-%{_ulibdir}/%{name}/dicts
-%{_ulibdir}/%{name}/keysets
-%dir %{_ulibdir}/%{name}/plugins
-#%lang(da) %{_ulibdir}/%{name}/plugins/*.da.qm
-#%lang(nb) %{_ulibdir}/%{name}/plugins/*.no.qm
-#%lang(sk) %{_ulibdir}/%{name}/plugins/*.sk.qm
-%attr(755,root,root) %{_ulibdir}/%{name}/plugins/*.so*
-%{_ulibdir}/%{name}/plugins/*.la
-%dir %{_ulibdir}/%{name}/plugins/gettext
-%attr(755,root,root) %{_ulibdir}/%{name}/plugins/gettext/*.so*
-%{_ulibdir}/%{name}/plugins/gettext/*.la
-%dir %{_ulibdir}/scribus/profiles
-%lang(af) %{_ulibdir}/scribus/scribus.af.qm
-%lang(bg) %{_ulibdir}/scribus/scribus.bg.qm
-%lang(ca) %{_ulibdir}/scribus/scribus.ca.qm
-%lang(cs) %{_ulibdir}/scribus/scribus.cs.qm
-%lang(cy) %{_ulibdir}/scribus/scribus.cy.qm
-%lang(da) %{_ulibdir}/scribus/scribus.da.qm
-%lang(de) %{_ulibdir}/scribus/scribus.de.qm
-%lang(de_OL) %{_ulibdir}/scribus/scribus.de_ol.qm
-%lang(dz) %{_ulibdir}/scribus/scribus.dz.qm
-%lang(el) %{_ulibdir}/scribus/scribus.el.qm
-%lang(en_GB) %{_ulibdir}/scribus/scribus.en_GB.qm
-%lang(eo) %{_ulibdir}/scribus/scribus.eo.qm
-%lang(es) %{_ulibdir}/scribus/scribus.es.qm
-%lang(es_LA) %{_ulibdir}/scribus/scribus.es_LA.qm
-%lang(et) %{_ulibdir}/scribus/scribus.et.qm
-%lang(eu) %{_ulibdir}/scribus/scribus.eu.qm
-%lang(fi) %{_ulibdir}/scribus/scribus.fi.qm
-%lang(fr) %{_ulibdir}/scribus/scribus.fr.qm
-%lang(gl) %{_ulibdir}/scribus/scribus.gl.qm
-%lang(hu) %{_ulibdir}/scribus/scribus.hu.qm
-%lang(id) %{_ulibdir}/scribus/scribus.id.qm
-%lang(it) %{_ulibdir}/scribus/scribus.it.qm
-%lang(ja) %{_ulibdir}/scribus/scribus.ja.qm
-%lang(ko) %{_ulibdir}/scribus/scribus.ko.qm
-%lang(lt) %{_ulibdir}/scribus/scribus.lt.qm
-%lang(nl) %{_ulibdir}/scribus/scribus.nl.qm
-%lang(nb) %{_ulibdir}/scribus/scribus.nb.qm
-%lang(pl) %{_ulibdir}/scribus/scribus.pl.qm
-%lang(pt_BR) %{_ulibdir}/scribus/scribus.pt_BR.qm
-%lang(ru) %{_ulibdir}/scribus/scribus.ru.qm
-%lang(se) %{_ulibdir}/scribus/scribus.se.qm
-%lang(sk) %{_ulibdir}/scribus/scribus.sk.qm
-%lang(sl) %{_ulibdir}/scribus/scribus.sl.qm
-%lang(sq) %{_ulibdir}/scribus/scribus.sq.qm
-%lang(sr) %{_ulibdir}/scribus/scribus.sr.qm
-%lang(th) %{_ulibdir}/scribus/scribus.th_TH.qm
-%lang(tr) %{_ulibdir}/scribus/scribus.tr.qm
-%lang(uk) %{_ulibdir}/scribus/scribus.uk.qm
-%lang(zh_CN) %{_ulibdir}/scribus/scribus.zh.qm
-%dir %{_ulibdir}/%{name}/swatches
-%{_ulibdir}/%{name}/swatches/*
+%dir %{_libdir}/%{name}
+%{_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 %{_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/*
-%dir %{_datadir}/%{name}/scripts
-%{_datadir}/%{name}/scripts/*
+%{_datadir}/%{name}/samples/*.py
+%{_datadir}/%{name}/scripts
+%{_datadir}/%{name}/swatches
+%dir %{_datadir}/%{name}/translations
+%{_datadir}/%{name}/unicodenameslist.txt
%{_desktopdir}/%{name}.desktop
-%{_mandir}/man1/%{name}.*
-%lang(pl) %{_mandir}/pl/man1/%{name}.*
-%{_pixmapsdir}/%{name}icon.png
-
-%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 %{_docdir}/%{name}-%{version}
-%dir %{_docdir}/%{name}-%{version}/en
-%{_docdir}/%{name}-%{version}/en/*
-%lang(cs) %dir %{_docdir}/%{name}-%{version}/cs
-%lang(cs) %dir %{_docdir}/%{name}-%{version}/cs/tutorials
-%lang(cs) %dir %{_docdir}/%{name}-%{version}/cs/tutorials/scribus-short-words
-%lang(cs) %{_docdir}/%{name}-%{version}/cs/tutorials/scribus-short-words/*
-%lang(de) %dir %{_docdir}/%{name}-%{version}/de
-%{_docdir}/%{name}-%{version}/de/*
-%lang(fr) %dir %{_docdir}/%{name}-%{version}/fr
-%lang(fr) %dir %{_docdir}/%{name}-%{version}/fr/tutorials
-%lang(fr) %dir %{_docdir}/%{name}-%{version}/fr/tutorials/scribus-short-words
-%lang(fr) %{_docdir}/%{name}-%{version}/fr/tutorials/scribus-short-words/*
-%lang(pl) %dir %{_docdir}/%{name}-%{version}/pl
-%lang(pl) %dir %{_docdir}/%{name}-%{version}/pl/tutorials
-%lang(pl) %dir %{_docdir}/%{name}-%{version}/pl/tutorials/scribus-short-words
-%lang(pl) %{_docdir}/%{name}-%{version}/pl/tutorials/scribus-short-words/*
+%dir %{_datadir}/%{name}/doc
+%{_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)
-%{_ulibdir}/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/nl2
-%{_datadir}/%{name}/templates/nl2/*
-%dir %{_datadir}/%{name}/templates/sc_presentation
-%{_datadir}/%{name}/templates/sc_presentation/*
-%dir %{_datadir}/%{name}/templates/textbased
-%{_datadir}/%{name}/templates/textbased/*
+%{_datadir}/%{name}/templates