File calligra.spec of Package calligra

#
# spec file for package calligra
#
# Copyright (c) 2025 SUSE LLC
#
# 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/
#


%define kf6_version 6.8.0
%define qt6_version 6.7.0

# Internal QML imports
%global __requires_exclude qt6qmlimport\\(org\\.calligra.*

%bcond_without released
Name:           calligra
Version:        25.04.2
Release:        0
Summary:        Libraries and base files for the Calligra suite
License:        GFDL-1.2-only AND GPL-2.0-or-later AND LGPL-2.1-or-later
URL:            https://calligra.org/
Source0:        https://download.kde.org/stable/release-service/%{version}/src/%{name}-%{version}.tar.xz
%if %{with released}
Source1:        https://download.kde.org/stable/release-service/%{version}/src/%{name}-%{version}.tar.xz.sig
Source2:        applications.keyring
%endif
BuildRequires:  mozilla-nss
BuildRequires:  Vc-devel
BuildRequires:  fdupes
BuildRequires:  hicolor-icon-theme
BuildRequires:  kf6-extra-cmake-modules >= %{kf6_version}
BuildRequires:  libboost_system-devel
BuildRequires:  libetonyek-devel
BuildRequires:  libodfgen-devel
BuildRequires:  librevenge-devel
BuildRequires:  libvisio-devel
BuildRequires:  libwpd-devel
BuildRequires:  libwpg-devel
BuildRequires:  libwps-devel
BuildRequires:  perl
BuildRequires:  pkgconfig
BuildRequires:  shared-mime-info
BuildRequires:  cmake(KChart6)
BuildRequires:  cmake(KF6Archive) >= %{kf6_version}
BuildRequires:  cmake(KF6Completion) >= %{kf6_version}
BuildRequires:  cmake(KF6Config) >= %{kf6_version}
BuildRequires:  cmake(KF6ConfigWidgets) >= %{kf6_version}
BuildRequires:  cmake(KF6CoreAddons) >= %{kf6_version}
BuildRequires:  cmake(KF6Crash) >= %{kf6_version}
BuildRequires:  cmake(KF6DBusAddons) >= %{kf6_version}
BuildRequires:  cmake(KF6DocTools) >= %{kf6_version}
BuildRequires:  cmake(KF6GuiAddons) >= %{kf6_version}
BuildRequires:  cmake(KF6I18n) >= %{kf6_version}
BuildRequires:  cmake(KF6IconThemes) >= %{kf6_version}
BuildRequires:  cmake(KF6ItemViews) >= %{kf6_version}
BuildRequires:  cmake(KF6JobWidgets) >= %{kf6_version}
BuildRequires:  cmake(KF6KCMUtils) >= %{kf6_version}
BuildRequires:  cmake(KF6KIO) >= %{kf6_version}
BuildRequires:  cmake(KF6Notifications) >= %{kf6_version}
BuildRequires:  cmake(KF6NotifyConfig) >= %{kf6_version}
BuildRequires:  cmake(KF6Sonnet) >= %{kf6_version}
BuildRequires:  cmake(KF6TextWidgets) >= %{kf6_version}
BuildRequires:  cmake(KF6ThreadWeaver) >= %{kf6_version}
BuildRequires:  cmake(KF6WidgetsAddons) >= %{kf6_version}
BuildRequires:  cmake(KF6WindowSystem) >= %{kf6_version}
BuildRequires:  cmake(KF6XmlGui) >= %{kf6_version}
BuildRequires:  cmake(Okular6)
BuildRequires:  cmake(Phonon4Qt6)
BuildRequires:  cmake(Qca-qt6) >= 2.1.0
BuildRequires:  cmake(Qt6Core) >= %{qt6_version}
BuildRequires:  cmake(Qt6DBus) >= %{qt6_version}
BuildRequires:  cmake(Qt6Gui) >= %{qt6_version}
BuildRequires:  cmake(Qt6Keychain)
BuildRequires:  cmake(Qt6Network) >= %{qt6_version}
BuildRequires:  cmake(Qt6OpenGL) >= %{qt6_version}
BuildRequires:  cmake(Qt6PrintSupport) >= %{qt6_version}
BuildRequires:  cmake(Qt6Quick) >= %{qt6_version}
BuildRequires:  cmake(Qt6QuickControls2) >= %{qt6_version}
BuildRequires:  cmake(Qt6QuickWidgets) >= %{qt6_version}
BuildRequires:  cmake(Qt6Sql) >= %{qt6_version}
BuildRequires:  cmake(Qt6Svg) >= %{qt6_version}
BuildRequires:  cmake(Qt6Test) >= %{qt6_version}
BuildRequires:  cmake(Qt6Widgets) >= %{qt6_version}
BuildRequires:  cmake(Qt6Xml) >= %{qt6_version}
BuildRequires:  pkgconfig(Imath) >= 3.0
BuildRequires:  pkgconfig(eigen3)
BuildRequires:  pkgconfig(fontconfig)
BuildRequires:  pkgconfig(freetype2)
BuildRequires:  pkgconfig(gsl)
BuildRequires:  pkgconfig(lcms2) >= 2.4
BuildRequires:  pkgconfig(libgit2)
BuildRequires:  pkgconfig(openssl)
BuildRequires:  pkgconfig(poppler-qt6) >= 22.02.0
BuildRequires:  pkgconfig(zlib)
# For mimetype definitions
Requires:       kf6-kcoreaddons
# Required by the launcher
Requires:       kirigami-addons6
Recommends:     calligra-doc = %{version}
Recommends:     calligra-lang = %{version}
Obsoletes:      calligra-tools
Obsoletes:      calligra5-tools
# SECTION Disabled upstream
# BuildRequires:  cmake(KF6CalendarCore) >= %%{kf6_version}
# BuildRequires:  cmake(KF6Contacts) >= %%{kf6_version}
# BuildRequires:  cmake(KPim6Akonadi) >= %%{kf6_version}
# /SECTION

%description
Calligra Suite is an office and graphic art suite by KDE. It contains
applications for word processing, spreadsheets, presentation, vector graphics,
and editing databases.

This package contains the base files and libraries for the suite.

%package karbon
Summary:        Vector drawing application
Requires:       calligra = %{version}
Requires:       pstoedit
Obsoletes:      calligra5-karbon

%description karbon
Karbon is a vector drawing application for users starting to explore the world
of vector graphics as well as for artists wanting to create breathtaking vector
art.

%package sheets
Summary:        Spreadsheet application
Requires:       calligra = %{version}
Obsoletes:      calligra5-sheets

%description sheets
Calligra Sheets is a calculation and spreadsheet tool. Use it to quickly create
and calculate various business-related spreadsheets, such as income and
expenditure, employee working hours, etc.

%package stage
Summary:        Application for creating presentations
Requires:       calligra = %{version}
Obsoletes:      calligra5-stage

%description stage
Calligra Stage is a presentation application. You can create presentations
containing a rich variety of elements, from graphics to text, from charts to
images.

%package words
Summary:        Word processor
Requires:       calligra = %{version}
Obsoletes:      calligra-words-common < %{version}
Provides:       calligra-words-common = %{version}
Obsoletes:      calligra-author < %{version}

%description words
Words is the word processor application of the Calligra Suite.

%package extras-converter
Summary:        Commandline tool for conversion

%description extras-converter
Commandline tool for conversion between any file formats for which there is a
chain of Calligra import/export filters.

%package extras-okular
Summary:        Plugin for Okular
Requires:       calligra = %{version}
Requires:       okular
Supplements:    (calligra and okular)

%description extras-okular
Plugins for Okular supporting files in the formats ODP, ODT, MS DOC/DOCX,
MS PPT/PPTX, and WPD.

%package extras-dolphin
Summary:        Diverse plugins for Dolphin
Supplements:    (calligra and dolphin)

%description extras-dolphin
Plugin for the Dolphin file properties dialog, displaying the metadata of files
in the ODF formats and a plugin adding a "Print" action for several formats to
the filemanager context menu and calling the related Calligra programs.

%package extras-filemanagertemplates
Summary:        "Create New" templates for ODF files
Supplements:    (calligra and kf6-kio)
# the files were in extras-dolphin previously
Conflicts:      calligra-extras-dolphin < 3.2.0

%description extras-filemanagertemplates
Templates for ODF files that show up in the "Create New" context menu
of KIO-based filemanagers (dolphin, konqueror, krusader, Plasma's folderview)
and the KDE filedialog.

%package doc
Summary:        Documentation of the Calligra suite
Requires:       calligra = %{version}
Obsoletes:      calligra5-doc
BuildArch:      noarch

%description doc
Documentation of the Calligra suite applications.

%package lang
Summary:        Translations for the Calligra Suite Applications
Requires:       calligra = %{version}
Obsoletes:      calligra-l10n-bs < %{version}
Provides:       calligra-l10n-bs = %{version}
Obsoletes:      calligra-l10n-ca < %{version}
Provides:       calligra-l10n-ca = %{version}
Obsoletes:      calligra-l10n-caValencia < %{version}
Provides:       calligra-l10n-caValencia = %{version}
Obsoletes:      calligra-l10n-cs < %{version}
Provides:       calligra-l10n-cs = %{version}
Obsoletes:      calligra-l10n-da < %{version}
Provides:       calligra-l10n-da = %{version}
Obsoletes:      calligra-l10n-de < %{version}
Provides:       calligra-l10n-de = %{version}
Obsoletes:      calligra-l10n-el < %{version}
Provides:       calligra-l10n-el = %{version}
Obsoletes:      calligra-l10n-en_GB < %{version}
Provides:       calligra-l10n-en_GB = %{version}
Obsoletes:      calligra-l10n-es < %{version}
Provides:       calligra-l10n-es = %{version}
Obsoletes:      calligra-l10n-et < %{version}
Provides:       calligra-l10n-et = %{version}
Obsoletes:      calligra-l10n-fi < %{version}
Provides:       calligra-l10n-fi = %{version}
Obsoletes:      calligra-l10n-fr < %{version}
Provides:       calligra-l10n-fr = %{version}
Obsoletes:      calligra-l10n-gl < %{version}
Provides:       calligra-l10n-gl = %{version}
Obsoletes:      calligra-l10n-hu < %{version}
Provides:       calligra-l10n-hu = %{version}
Obsoletes:      calligra-l10n-it < %{version}
Provides:       calligra-l10n-it = %{version}
Obsoletes:      calligra-l10n-ja < %{version}
Provides:       calligra-l10n-ja = %{version}
Obsoletes:      calligra-l10n-kk < %{version}
Provides:       calligra-l10n-kk = %{version}
Obsoletes:      calligra-l10n-nb < %{version}
Provides:       calligra-l10n-nb = %{version}
Obsoletes:      calligra-l10n-nl < %{version}
Provides:       calligra-l10n-nl = %{version}
Obsoletes:      calligra-l10n-pl < %{version}
Provides:       calligra-l10n-pl = %{version}
Obsoletes:      calligra-l10n-pt < %{version}
Provides:       calligra-l10n-pt = %{version}
Obsoletes:      calligra-l10n-pt_BR < %{version}
Provides:       calligra-l10n-pt_BR = %{version}
Obsoletes:      calligra-l10n-ru < %{version}
Provides:       calligra-l10n-ru = %{version}
Obsoletes:      calligra-l10n-sk < %{version}
Provides:       calligra-l10n-sk = %{version}
Obsoletes:      calligra-l10n-sv < %{version}
Provides:       calligra-l10n-sv = %{version}
Obsoletes:      calligra-l10n-tr < %{version}
Provides:       calligra-l10n-tr = %{version}
Obsoletes:      calligra-l10n-uk < %{version}
Provides:       calligra-l10n-uk = %{version}
Obsoletes:      calligra-l10n-zh_CN < %{version}
Provides:       calligra-l10n-zh_CN = %{version}
Obsoletes:      calligra-l10n-zh_TW < %{version}
Provides:       calligra-l10n-zh_TW = %{version}

%description lang
This package contains application translations for the Calligra Suite

%prep
%autosetup -p1

%build
%cmake_kf6 \
  -DRELEASE_BUILD:BOOL=TRUE \
  -DPRODUCTSET:STRING=DESKTOP \
  -DIconv_IS_BUILT_IN:BOOL=TRUE

%kf6_build

%install
%kf6_install

rm %{buildroot}%{_kf6_libdir}/*.so

%find_lang %{name} --with-html --all-name

%ldconfig_scriptlets
%ldconfig_scriptlets karbon
%ldconfig_scriptlets sheets
%ldconfig_scriptlets stage
%ldconfig_scriptlets words
%ldconfig_scriptlets extras-okular

%files
%license LICENSES/*
%doc README.md
%{_kf6_applicationsdir}/calligra.desktop
%{_kf6_applicationsdir}/org.kde.calligra.desktop
%{_kf6_appstreamdir}/org.kde.calligra.metainfo.xml
%{_kf6_bindir}/calligralauncher
%{_kf6_iconsdir}/hicolor/*/*/*
%{_kf6_libdir}/libautocorrection.so.*
%{_kf6_libdir}/libbasicflakes.so.*
%{_kf6_libdir}/libflake.so.*
%{_kf6_libdir}/libkoformula.so.*
%{_kf6_libdir}/libkomain.so.*
%{_kf6_libdir}/libkomsooxml.so.*
%{_kf6_libdir}/libkoodf.so.*
%{_kf6_libdir}/libkoodf2.so.*
%{_kf6_libdir}/libkoodfreader.so.*
%{_kf6_libdir}/libkopageapp.so.*
%{_kf6_libdir}/libkoplugin.so.*
%{_kf6_libdir}/libkostore.so.*
%{_kf6_libdir}/libkotext.so.*
%{_kf6_libdir}/libkotextlayout.so.*
%{_kf6_libdir}/libkovectorimage.so.*
%{_kf6_libdir}/libkowidgets.so.*
%{_kf6_libdir}/libkowidgetutils.so.*
%{_kf6_libdir}/libkundo2.so.*
%{_kf6_libdir}/libpigmentcms.so.*
%dir %{_kf6_plugindir}/calligra
%{_kf6_plugindir}/calligra/dockers/
%dir %{_kf6_plugindir}/calligra/formatfilters
%{_kf6_plugindir}/calligra/formatfilters/calligra_filter_vsdx2odg.so
%{_kf6_plugindir}/calligra/formatfilters/calligra_filter_wpg2odg.so
%{_kf6_plugindir}/calligra/pageapptools
%{_kf6_plugindir}/calligra/shapefiltereffects/
%dir %{_kf6_plugindir}/calligra/shapes
%{_kf6_plugindir}/calligra/shapes/calligra_shape_*.so
%{_kf6_plugindir}/calligra/textediting/
%dir %{_kf6_plugindir}/calligra/textinlineobjects
%{_kf6_plugindir}/calligra/textinlineobjects/calligra_textinlineobject_variables.so
%dir %{_kf6_plugindir}/calligra/tools
%{_kf6_plugindir}/calligra/tools/calligra_tool_*.so
%{_kf6_plugindir}/calligra/tools/karbon_tools.so
%dir %{_kf6_plugindir}/kf6/thumbcreator
%{_kf6_plugindir}/kf6/thumbcreator/calligraimagethumbnail.so
%{_kf6_plugindir}/kf6/thumbcreator/calligrathumbnail.so
%{_kf6_sharedir}/calligra/
%{_kf6_sharedir}/mime/packages/calligra_svm.xml

%files karbon
%{_kf6_applicationsdir}/org.kde.calligra.karbon.desktop
%{_kf6_appstreamdir}/org.kde.calligra.karbon.metainfo.xml
%{_kf6_bindir}/karbon
%{_kf6_configdir}/karbonrc
%{_kf6_kxmlguidir}/karbon/
%{_kf6_libdir}/libkarbon*.so.*
%dir %{_kf6_plugindir}/calligra
%dir %{_kf6_plugindir}/calligra/formatfilters
%{_kf6_plugindir}/calligra/formatfilters/calligra_filter_{karbon2*,*2karbon,eps2svgai,pdf2*,*2svg,xfig2odg}.so
%dir %{_kf6_plugindir}/calligra/parts
%{_kf6_plugindir}/calligra/parts/karbonpart.so
%{_kf6_plugindir}/karbon/
%{_kf6_sharedir}/karbon/
%dir %{_kf6_sharedir}/kio
%dir %{_kf6_sharedir}/kio/servicemenus
%{_kf6_sharedir}/kio/servicemenus/karbon_print.desktop

%files sheets
%doc %{_kf6_htmldir}/en/calligrasheets/
%{_kf6_applicationsdir}/org.kde.calligra.sheets.desktop
%{_kf6_appstreamdir}/org.kde.calligra.sheets.metainfo.xml
%{_kf6_bindir}/calligrasheets
%{_kf6_configdir}/calligrasheetsrc
%{_kf6_configkcfgdir}/calligrasheets.kcfg
%{_kf6_libdir}/libcalligrasheetscore.so.*
%{_kf6_libdir}/libcalligrasheetsengine.so.*
%{_kf6_libdir}/libcalligrasheetspartlib.so.*
%{_kf6_libdir}/libcalligrasheetsui.so.*
%{_kf6_kxmlguidir}/calligrasheets/
%dir %{_kf6_plugindir}/calligra
%dir %{_kf6_plugindir}/calligra/formatfilters
%{_kf6_plugindir}/calligra/formatfilters/calligra_filter_{sheets2*,*2sheets,*2kspread,html2ods,kspread2tex,xls*2ods}.so
%dir %{_kf6_plugindir}/calligra/parts
%{_kf6_plugindir}/calligra/parts/calligrasheetspart.so
%{_kf6_plugindir}/calligrasheets/
%{_kf6_sharedir}/calligrasheets/
%dir %{_kf6_sharedir}/kio
%dir %{_kf6_sharedir}/kio/servicemenus
%{_kf6_sharedir}/kio/servicemenus/sheets_print.desktop

%files stage
%doc %{_kf6_htmldir}/en/calligrastage/
%{_kf6_applicationsdir}/org.kde.calligra.stage.desktop
%{_kf6_appstreamdir}/org.kde.calligra.stage.metainfo.xml
%{_kf6_bindir}/calligrastage
%{_kf6_configdir}/calligrastagerc
%{_kf6_kxmlguidir}/calligrastage/
%{_kf6_libdir}/libcalligrastage*.so.*
%dir %{_kf6_plugindir}/calligra
%dir %{_kf6_plugindir}/calligra/formatfilters
%{_kf6_plugindir}/calligra/formatfilters/calligra_filter_*2odp.so
%dir %{_kf6_plugindir}/calligra/parts
%{_kf6_plugindir}/calligra/parts/calligrastagepart.so
%{_kf6_plugindir}/calligra/presentationeventactions/
%dir %{_kf6_plugindir}/calligra/textinlineobjects
%{_kf6_plugindir}/calligra/textinlineobjects/kprvariables.so
%{_kf6_plugindir}/calligrastage/
%{_kf6_sharedir}/calligrastage/
%{_kf6_sharedir}/calligra_shape_music/
%dir %{_kf6_sharedir}/kio
%dir %{_kf6_sharedir}/kio/servicemenus
%{_kf6_sharedir}/kio/servicemenus/stage_print.desktop

%files words
%{_kf6_applicationsdir}/org.kde.calligra.words.desktop
%{_kf6_applicationsdir}/org.kde.calligrawords_ascii.desktop
%{_kf6_appstreamdir}/org.kde.calligra.words.metainfo.xml
%{_kf6_bindir}/calligrawords
%{_kf6_configdir}/calligrawordsrc
%{_kf6_libdir}/libkowv2.so.*
%{_kf6_libdir}/libRtfReader.so.*
%{_kf6_libdir}/libwordsprivate.so.*
%{_kf6_kxmlguidir}/calligrawords/
%dir %{_kf6_plugindir}/calligra
%dir %{_kf6_plugindir}/calligra/formatfilters
%{_kf6_plugindir}/calligra/formatfilters/calligra_filter_{odt2*,*2odt,ascii2words}.so
%dir %{_kf6_plugindir}/calligra/parts
%{_kf6_plugindir}/calligra/parts/calligrawordspart.so
%{_kf6_sharedir}/calligrawords/
%dir %{_kf6_sharedir}/kio
%dir %{_kf6_sharedir}/kio/servicemenus
%{_kf6_sharedir}/kio/servicemenus/words_print.desktop
%{_kf6_sharedir}/mime/packages/wiki-format.xml

%files extras-converter
%{_kf6_bindir}/calligraconverter

%files extras-dolphin
%{_kf6_plugindir}/kf6/propertiesdialog/

%files extras-filemanagertemplates
%{_kf6_sharedir}/templates/

%files extras-okular
%{_kf6_applicationsdir}/okular*.desktop
%{_kf6_libdir}/libkookular*.so.*
%dir %{_kf6_plugindir}/okular_generators
%{_kf6_plugindir}/okular_generators/*

%files doc
%doc %lang(en) %{_kf6_htmldir}/en/calligra/

%files lang -f calligra.lang
%exclude %{_kf6_htmldir}/en/

%changelog
openSUSE Build Service is sponsored by