summaryrefslogtreecommitdiff
path: root/libreoffice.spec
diff options
context:
space:
mode:
Diffstat (limited to 'libreoffice.spec')
-rw-r--r--libreoffice.spec1303
1 files changed, 1303 insertions, 0 deletions
diff --git a/libreoffice.spec b/libreoffice.spec
new file mode 100644
index 0000000..43717b2
--- /dev/null
+++ b/libreoffice.spec
@@ -0,0 +1,1303 @@
+# extensions
+%define numbertext_version 0.9.5
+# Urls
+%define external_url https://dev-www.libreoffice.org/src/
+%define tarball_url https://dev-builds.libreoffice.org/pre-releases/src/
+# LTO needs newer toolchain stack only
+%bcond_with lto
+%bcond_without system_gpgme
+%bcond_with firebird
+Name: libreoffice
+Version: 7.4.2.3
+Release: 3
+Summary: A Free Office Suite (Framework)
+License: LGPL-3.0-or-later AND MPL-2.0+
+Group: Productivity/Office/Suite
+URL: https://www.documentfoundation.org/
+Source0: %{tarball_url}/libreoffice-%{version}.tar.xz
+Source1: %{tarball_url}/libreoffice-%{version}.tar.xz.asc
+Source2: %{tarball_url}/libreoffice-help-%{version}.tar.xz
+Source3: %{tarball_url}/libreoffice-help-%{version}.tar.xz.asc
+Source4: %{tarball_url}/libreoffice-translations-%{version}.tar.xz
+Source5: %{tarball_url}/libreoffice-translations-%{version}.tar.xz.asc
+# prebuilt extensions
+Source402: %{external_url}/b7cae45ad2c23551fd6ccb8ae2c1f59e-numbertext_%{numbertext_version}.oxt
+# used extensions sources
+Source450: %{external_url}/1f467e5bb703f12cbbb09d5cf67ecf4a-converttexttonumber-1-5-0.oxt
+Source452: %{external_url}/90401bca927835b6fbae4a707ed187c8-nlpsolver-0.9.tar.bz2
+# GPGME bundle list
+Source1000: %{external_url}/gpgme-1.13.1.tar.bz2
+Source1001: %{external_url}/libgpg-error-1.37.tar.bz2
+Source1002: %{external_url}/libassuan-2.5.3.tar.bz2
+# Internal bundled stuff we can't remove
+# To build this we would pull cygwin; not worth it
+Source2001: https://dev-www.libreoffice.org/extern/185d60944ea767075d27247c3162b3bc-unowinreg.dll
+# hsqldb simply does not work with new system version, but luckily we migrate to firebird
+Source2002: %{external_url}/17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip
+# Heavily patched and not possible to use system one
+Source2003: %{external_url}/798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip
+Source2004: %{external_url}/35c94d2df8893241173de1d16b6034c0-swingExSrc.zip
+# Needed for wiki-published and always taken as bundled
+Source2005: %{external_url}/a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip
+# Needed for integration tests
+Source2006: https://dev-www.libreoffice.org/extern/8249374c274932a21846fa7629c2aa9b-officeotron-0.7.4-master.jar
+Source2007: https://dev-www.libreoffice.org/extern/odfvalidator-0.9.0-RC2-SNAPSHOT-jar-with-dependencies-2726ab578664434a545f8379a01a9faffac0ae73.jar
+# PDFium is bundled everywhere
+Source2008: %{external_url}/pdfium-5058.tar.bz2
+# Single C file with patches from LO
+Source2009: %{external_url}/dtoa-20180411.tgz
+# Skia is part of chromium and bundled everywhere as by google only way is monorepo way
+Source2010: %{external_url}/skia-m103-b301ff025004c9cd82816c86c547588e6c24b466.tar.xz
+Source2012: %{external_url}/libcmis-0.5.2.tar.xz
+Source2013: %{external_url}/dragonbox-1.1.0.tar.gz
+# do not use the broken help; unopkg complained about it when registering extensions
+# FIXME: the right fix is to compile the help and produce the .db_, .ht_, and other files
+Patch2: nlpsolver-no-broken-help.diff
+Patch3: mediawiki-no-broken-help.diff
+# Build with java 8
+Patch101: 0001-Revert-java-9-changes.patch
+Patch202: boost-1.81-locale.patch
+# try to save space by using hardlinks
+Patch990: install-with-hardlinks.diff
+# save time by relying on rpm check rather than doing stupid find+grep
+Patch991: libreoffice-no-destdircheck.patch
+Patch999: Add-riscv64-support.diff
+BuildRequires: %{name}-share-linker
+BuildRequires: ant
+BuildRequires: autoconf
+BuildRequires: gawk
+BuildRequires: bison
+BuildRequires: bsh
+BuildRequires: apache-commons-logging
+BuildRequires: cups-devel
+BuildRequires: curl-devel
+BuildRequires: dejavu-fonts
+BuildRequires: doxygen >= 1.8.4
+BuildRequires: flex >= 2.6.0
+BuildRequires: flute
+BuildRequires: fontforge
+BuildRequires: glm-devel
+BuildRequires: abseil-cpp-devel
+BuildRequires: google-crosextra-carlito-fonts
+BuildRequires: gperf >= 3.1
+BuildRequires: graphviz
+BuildRequires: hyphen-devel
+BuildRequires: junit
+BuildRequires: libbase
+BuildRequires: cppunit-devel >= 1.14.0
+BuildRequires: liberation-fonts
+BuildRequires: libexif
+BuildRequires: libfonts
+BuildRequires: libformula
+BuildRequires: libjpeg-devel
+BuildRequires: openjpeg2-devel
+BuildRequires: libwebp-devel
+BuildRequires: liblayout
+BuildRequires: libloader
+BuildRequires: librepository
+BuildRequires: libserializer
+BuildRequires: libtool-ltdl-devel
+BuildRequires: lpsolve-devel
+BuildRequires: make
+BuildRequires: openldap-devel
+BuildRequires: pentaho-libxml
+BuildRequires: pentaho-reporting-flow-engine
+BuildRequires: pkgconfig
+BuildRequires: python3-lxml
+BuildRequires: sac
+BuildRequires: ucpp
+BuildRequires: unixODBC-devel
+BuildRequires: unzip
+BuildRequires: xml-commons-apis
+BuildRequires: xz
+BuildRequires: zip
+BuildRequires: perl(Archive::Zip)
+BuildRequires: perl(Digest::MD5)
+BuildRequires: pkgconfig(apr-util-1)
+BuildRequires: pkgconfig(bluez)
+BuildRequires: pkgconfig(dbus-1) >= 0.60
+BuildRequires: pkgconfig(epoxy) >= 1.2
+BuildRequires: pkgconfig(expat)
+BuildRequires: pkgconfig(freetype2)
+BuildRequires: pkgconfig(gl)
+BuildRequires: pkgconfig(glib-2.0) >= 2.40
+BuildRequires: pkgconfig(glu)
+BuildRequires: pkgconfig(gobject-introspection-1.0)
+BuildRequires: pkgconfig(graphite2) >= 0.9.3
+BuildRequires: pkgconfig(gssrpc)
+BuildRequires: pkgconfig(gstreamer-plugins-base-1.0)
+BuildRequires: pkgconfig(gtk+-3.0) >= 3.20
+BuildRequires: pkgconfig(harfbuzz) >= 0.9.42
+BuildRequires: pkgconfig(harfbuzz-icu) >= 0.9.42
+BuildRequires: pkgconfig(hunspell)
+BuildRequires: pkgconfig(krb5)
+BuildRequires: pkgconfig(lcms2)
+BuildRequires: pkgconfig(libabw-0.1)
+BuildRequires: pkgconfig(libcdr-0.1) >= 0.1
+BuildRequires: pkgconfig(libclucene-core)
+BuildRequires: pkgconfig(libe-book-0.1) >= 0.1.2
+BuildRequires: pkgconfig(libeot) >= 0.01
+BuildRequires: pkgconfig(libepubgen-0.1)
+BuildRequires: pkgconfig(libetonyek-0.1) >= 0.1.10
+BuildRequires: pkgconfig(libexttextcat) >= 3.4.1
+BuildRequires: pkgconfig(libfreehand-0.1)
+BuildRequires: pkgconfig(liblangtag)
+BuildRequires: pkgconfig(libmspub-0.1) >= 0.1
+BuildRequires: pkgconfig(libmwaw-0.3) >= 0.3.21
+BuildRequires: pkgconfig(libnumbertext) >= 1.0.6
+BuildRequires: pkgconfig(libodfgen-0.1) >= 0.1.4
+BuildRequires: pkgconfig(liborcus-0.17)
+BuildRequires: pkgconfig(libpagemaker-0.0)
+BuildRequires: pkgconfig(libpng)
+BuildRequires: pkgconfig(libpq)
+BuildRequires: pkgconfig(libqxp-0.0)
+BuildRequires: pkgconfig(librevenge-0.0) >= 0.0.1
+BuildRequires: pkgconfig(librsvg-2.0)
+BuildRequires: pkgconfig(libstaroffice-0.0) >= 0.0.6
+BuildRequires: pkgconfig(libvisio-0.1) >= 0.1
+BuildRequires: pkgconfig(libwpd-0.10) >= 0.10
+BuildRequires: pkgconfig(libwpg-0.3)
+BuildRequires: pkgconfig(libwps-0.4) >= 0.4.11
+BuildRequires: pkgconfig(libxml-2.0)
+BuildRequires: pkgconfig(libxslt)
+BuildRequires: pkgconfig(libzmf-0.0)
+BuildRequires: pkgconfig(mdds-2.0) >= 2.0.0
+BuildRequires: pkgconfig(mythes)
+BuildRequires: pkgconfig(nspr) >= 4.8
+BuildRequires: pkgconfig(nss) >= 3.9.3
+BuildRequires: pkgconfig(python3)
+BuildRequires: pkgconfig(redland)
+BuildRequires: pkgconfig(sane-backends)
+BuildRequires: pkgconfig(serf-1) >= 1.3.9
+BuildRequires: pkgconfig(xmlsec1-nss) >= 1.2.28
+BuildRequires: pkgconfig(xrandr)
+BuildRequires: pkgconfig(xt)
+BuildRequires: pkgconfig(zxing)
+Requires: liberation-fonts
+Requires: libreoffice-branding >= 6.0
+Requires: libreoffice-icon-themes = %{version}
+# We need at least english to launch ourselves
+Requires: libreoffice-l10n-en = %{version}
+Requires: python3
+Recommends: dejavu-fonts
+Recommends: google-crosextra-carlito-fonts
+Provides: %{name}-draw-extensions = %{version}
+Obsoletes: %{name}-draw-extensions < %{version}
+Provides: %{name}-impress-extensions = %{version}
+Obsoletes: %{name}-impress-extensions < %{version}
+Provides: %{name}-base-extensions = %{version}
+Obsoletes: %{name}-base-extensions < %{version}
+Provides: %{name}-kde = %{version}
+Obsoletes: %{name}-kde < %{version}
+Provides: %{name}-l10n-prebuild = %{version}
+Obsoletes: %{name}-l10n-prebuild < %{version}
+Provides: %{name}-mono = %{version}
+Obsoletes: %{name}-mono < %{version}
+Provides: %{name}-ure = %{version}
+Obsoletes: %{name}-ure < %{version}
+Provides: %{name}-icon-theme-crystal = %{version}
+Obsoletes: %{name}-icon-theme-crystal < %{version}
+Provides: %{name}-icon-theme-oxygen = %{version}
+Obsoletes: %{name}-icon-theme-oxygen < %{version}
+ExclusiveArch: aarch64 %{ix86} x86_64 riscv64
+BuildRequires: boost-devel
+BuildRequires: pkgconfig(poppler) pkgconfig(poppler-cpp)
+BuildRequires: gcc >= 7
+BuildRequires: gcc-c++ >= 7
+# genbrk binary is required
+BuildRequires: icu
+BuildRequires: java-11-devel
+BuildRequires: Box2D-devel
+BuildRequires: mariadb-connector-c-devel
+BuildRequires: pkgconfig(icu-i18n)
+BuildConflicts: java < 9
+BuildConflicts: java-devel < 9
+BuildConflicts: java-headless < 9
+%if %{with system_gpgme}
+BuildRequires: gpgme-devel gpgme-pp
+%endif
+%if %{with firebird}
+BuildRequires: pkgconfig(fbclient)
+%endif
+Provides: %{name}-kde4 = %{version}
+Obsoletes: %{name}-kde4 < %{version}
+Provides: %{name}-qt5 = %{version}
+Obsoletes: %{name}-qt5 < %{version}
+
+%description
+LibreOffice is a comprehensive office package featuring a word
+processor, a spreadsheet, a presentation program, and much more. This
+package provides only the basic framework. You have to install the
+additional modules to get the required functionality, see packages:
+
+- libreoffice-base
+- libreoffice-calc
+- libreoffice-draw
+- libreoffice-impress
+- libreoffice-math
+- libreoffice-writer
+
+Some optional features are provided by extra packages, for example:
+
+- libreoffice-mailmerge
+- libreoffice-filters
+- libreoffice-qt5
+- libreoffice-gnome
+
+Non-English localizations are provided by extra packages as well, for
+example:
+
+- libreoffice-l10n-de
+- libreoffice-l10n-fr
+- libreoffice-l10n-it
+
+%package branding-upstream
+Summary: Original Branding for LibreOffice
+Group: Productivity/Office/Suite
+Supplements: libreoffice
+Conflicts: libreoffice-branding
+Provides: libreoffice-branding = %{version}
+BuildArch: noarch
+
+%description branding-upstream
+This package includes the original branding for the LibreOffice office suite.
+
+%package icon-themes
+Summary: LibreOffice Icon Themes
+Group: Productivity/Office/Suite
+Requires(post): %{name}-share-linker
+Requires(postun):%{name}-share-linker
+Supplements: libreoffice
+Provides: %{name}-icon-theme-breeze = %{version}
+Obsoletes: %{name}-icon-theme-breeze < %{version}
+Provides: %{name}-icon-theme-galaxy = %{version}
+Obsoletes: %{name}-icon-theme-galaxy < %{version}
+Provides: %{name}-icon-theme-hicontrast = %{version}
+Obsoletes: %{name}-icon-theme-hicontrast < %{version}
+Provides: %{name}-icon-theme-sifr = %{version}
+Obsoletes: %{name}-icon-theme-sifr < %{version}
+Provides: %{name}-icon-theme-tango = %{version}
+Obsoletes: %{name}-icon-theme-tango < %{version}
+BuildArch: noarch
+
+%description icon-themes
+This package provides all of the LibreOffice icon themes.
+
+%package glade
+Summary: Support for creating LibreOffice dialogs in glade
+Group: Productivity/Office/Suite
+Requires: %{name} = %{version}
+BuildArch: noarch
+
+%description glade
+%{name}-glade contains a catalog of LibreOffice-specific widgets for
+glade and ui-previewer tool to check the visual appearance of dialogs.
+
+%package gdb-pretty-printers
+Summary: Additional support for debugging with gdb
+Group: Productivity/Office/Suite
+Requires: gdb
+Requires: libreoffice = %{version}
+Requires: python3-six
+Supplements: libreoffice-debuginfo = %{version}
+BuildArch: noarch
+
+%description gdb-pretty-printers
+This package provides gdb pretty printers for package %{name}.
+
+%package base
+Summary: LibreOffice Base
+Group: Productivity/Office/Suite
+Requires: %{name} = %{version}
+Requires: pentaho-reporting-flow-engine
+Supplements: %{name}
+Obsoletes: %{name}-base-drivers-mysql
+# default database connector
+%if %{with firebird}
+Requires: %{name}-base-drivers-firebird
+%else
+Requires: jre >= 1.8
+%endif
+
+%description base
+This module allows you to manage databases, create queries and reports
+to track and manage your information by using LibreOffice office
+suite.
+
+%package calc
+Summary: LibreOffice Calc
+Group: Productivity/Office/Suite
+Requires: %{name} = %{version}
+Supplements: %{name}
+
+%description calc
+This module allows you to perform calculation, analyze information and
+manage lists in spreadsheets by using LibreOffice office suite.
+
+%package draw
+Summary: LibreOffice Draw
+Group: Productivity/Office/Suite
+Requires: %{name} = %{version}
+Supplements: %{name}
+
+%description draw
+This module allows you to create and edit drawings, flow charts, and
+logos by using LibreOffice office suite.
+
+%package math
+Summary: LibreOffice Math
+Group: Productivity/Office/Suite
+Requires: %{name} = %{version}
+Supplements: %{name}
+
+%description math
+This module allows you to create and edit scientific formulas and
+equations by using LibreOffice office suite.
+
+%package impress
+Summary: LibreOffice Impress
+Group: Productivity/Office/Suite
+Requires: %{name} = %{version}
+Supplements: %{name}
+
+%description impress
+This module allows you to create and edit presentations for slideshows,
+meeting and Web pages by using LibreOffice office suite.
+
+%package writer
+Summary: LibreOffice Writer and Web
+Group: Productivity/Office/Suite
+Requires: %{name} = %{version}
+Supplements: %{name}
+
+%description writer
+This module allows you to create and edit text and graphics in letters,
+reports, documents and Web pages by using LibreOffice office suite.
+
+%package base-drivers-postgresql
+Summary: PostgreSQL Database Driver for LibreOffice
+Group: Productivity/Office/Suite
+Requires: postgresql
+
+%description base-drivers-postgresql
+This package allows to access PostgreSQL databases from LibreOffice Base.
+
+%package base-drivers-firebird
+Summary: Firebird Database Driver for LibreOffice
+Group: Productivity/Office/Suite
+Requires: firebird
+
+%description base-drivers-firebird
+This package allows to access Firebird databeses from LibreOffice Base.
+
+%package filters-optional
+Summary: Additional Import and Export Filters for LibreOffice
+Group: Productivity/Office/Suite
+Requires: %{name}-calc = %{version}
+Requires: %{name}-draw = %{version}
+Requires: %{name}-impress = %{version}
+Requires: %{name}-math = %{version}
+Requires: %{name}-writer = %{version}
+Supplements: %{name}
+
+%description filters-optional
+This package includes some additional import and export filters for
+LibreOffice:
+- AportisDoc (Palm)
+- Pocket Excel
+- Pocket Word
+- DocBook
+- XHTML
+
+%package mailmerge
+Summary: Mail Merge Functionality for LibreOffice
+Group: Productivity/Office/Suite
+Requires: %{name}-pyuno = %{version}
+Supplements: %{name}
+
+%description mailmerge
+This module allows you to create form letters or send E-mail messages
+to many recipients using LibreOffice office suite.
+
+%package pyuno
+Summary: Python UNO Bridge for LibreOffice
+Group: Productivity/Office/Suite
+Requires: %{name} = %{version}
+Supplements: %{name}
+
+%description pyuno
+The Python-UNO bridge allows to use the standard LibreOffice API
+from the well known Python scripting language. It can be used to
+develop UNO components in python, thus python UNO components may be run
+within the LibreOffice process and can be called from Java, C++ or
+the built in StarBasic scripting language. You can create and invoke
+scripts with the office scripting framework (OOo 2.0 and later) with
+it. For example, it is used for the mail merge functionality.
+
+You can find the more information at
+http://udk.openoffice.org/python/python-bridge.html
+
+%package librelogo
+Summary: LibreLogo scripting language
+Group: Productivity/Office/Suite
+Requires: %{name}-pyuno = %{version}
+Requires: %{name}-writer = %{version}
+
+%description librelogo
+Enables LibreLogo scripting in Writer. LibreLogo is a Logo-like
+programming language with interactive vectorgraphics for education and
+DTP.
+
+%package gnome
+Summary: GNOME Extensions for LibreOffice
+Group: Productivity/Office/Suite
+Requires: %{name} = %{version}
+
+%description gnome
+This package contains some GNOME extensions and GTK2 interface for LibreOffice.
+
+%package gtk3
+Summary: Gtk3 interface for LibreOffice
+Group: Productivity/Office/Suite
+Requires: %{name}-gnome = %{version}
+Supplements: (libreoffice and gnome-session)
+Supplements: (libreoffice and mate-session-manager)
+Supplements: (libreoffice and xfce4-session)
+
+%description gtk3
+This package contains Gtk3 interface rendering option for LibreOffice.
+
+%package qt5
+Summary: Qt5/KDE Frameworks interface for LibreOffice
+Group: Productivity/Office/Suite
+Requires: %{name} = %{version}
+Supplements: packageand(libreoffice:plasma5-workspace)
+Provides: %{name}-kde4 = %{version}
+Obsoletes: %{name}-kde4 < %{version}
+
+%description qt5
+This package contains Qt5/KDE Frameworks interface rendering options for LibreOffice.
+
+%package sdk
+Summary: LibreOffice SDK
+Group: Documentation/HTML
+Requires: %{name} = %{version}
+Requires: gcc-c++
+Requires: make
+Requires: ucpp
+Requires: zip
+Recommends: java-devel >= 9.0
+Provides: libreoffice-ure-devel = %{version}
+Obsoletes: libreoffice-ure-devel < %{version}
+
+%description sdk
+This package contains the files needed to build plugins/add-ons for
+LibreOffice. It includes header files, IDL files, needed build
+tools, etc.
+
+The documentation is in the package libreoffice-sdk-doc
+
+%package sdk-doc
+Summary: LibreOffice SDK Documentation
+Group: Development/Libraries/Other
+Suggests: %{name}-sdk = %{version}
+Enhances: %{name}-sdk = %{version}
+Provides: libreoffice-ure-devel-doc = %{version}
+Obsoletes: libreoffice-ure-devel-doc < %{version}
+
+%description sdk-doc
+This package includes documentation and examples for the LibreOffice
+Software Development Kit (SDK).
+
+%package calc-extensions
+Summary: LibreOffice Calc Extensions
+Group: Productivity/Office/Suite
+Requires: libreoffice-calc = %{version}
+# pyuno is needed for the numbertext extension
+Requires: libreoffice-pyuno = %{version}
+Requires(pre): libreoffice = %{version}
+# the watchWindow extension is written in java
+Requires: jre >= 1.8
+
+%description calc-extensions
+This package provides extensions for LibreOffice Calc:
+
+- Convert Text to Number
+- New Functions NUMBERTEXT and MONEYTEXT
+- Solver for Nonlinear Programming
+
+%package writer-extensions
+Summary: LibreOffice Writer Extensions
+Group: Productivity/Office/Suite
+Requires: libreoffice-writer = %{version}
+Requires(pre): libreoffice = %{version}
+# the wiki extension is written in java
+Requires: jre >= 1.8
+
+%description writer-extensions
+This package provides extensions for LibreOffice Writer:
+
+- MediaWiki Publisher
+
+%package -n libreofficekit
+Summary: A library providing access to LibreOffice functionality
+Group: Productivity/Office/Suite
+Requires: %{name} = %{version}
+
+%description -n libreofficekit
+LibreOfficeKit can be used to access LibreOffice functionality
+through C/C++, without any need to use UNO.
+
+%package -n libreofficekit-devel
+Summary: Development files for libreofficekit
+Group: Productivity/Office/Suite
+Requires: libreofficekit = %{version}
+
+%description -n libreofficekit-devel
+The libreofficekit-devel package contains libraries and header files for
+developing applications that use libreofficekit.
+
+# Symlink autocorr files for various conversion items
+%define make_autocorr_aliases(l:) \
+%{?-l: \
+for lang in %{*}; do \
+ ln -sf acor_%{-l*}.dat %{buildroot}%{_libdir}/%{name}/share/autocorr/acor_$lang.dat \
+done \
+} \
+%{!?-l:%{error:-l must be present}}
+# Symlinking macro for /usr/lib64 and /usr/share packing
+# As argument takes name of the package
+%define _link_noarch_files() \
+%posttrans %{1} \
+rpm -ql %{name}-%{1} > %{_datadir}/libreoffice/%{1}_list.txt || true \
+if [ -f %{_datadir}/libreoffice/%{1}_list.txt ] ; then \
+ %{_bindir}/libreoffice-share-linker %{_datadir}/libreoffice/%{1}_list.txt || true \
+fi \
+\
+%postun %{1} \
+if [ "$1" = "0" -a -f %{_datadir}/libreoffice/%{1}_list.txt -a -x %{_bindir}/libreoffice-share-linker ]; then \
+ %{_bindir}/libreoffice-share-linker --unlink %{_datadir}/libreoffice/%{1}_list.txt || true \
+ rm -f %{_datadir}/libreoffice/%{1}_list.txt 2> /dev/null || true \
+fi \
+%{nil}
+# Crazy magic for the auto help/lang generating.
+%define _langpack_common(g:l:j:) \
+%if "%{-l*}" != "en-US" \
+%dir %{_datadir}/libreoffice/program/resource \
+%dir %{_datadir}/libreoffice/program/resource/%{-g:%{-g*}}%{!-g:%{-l*}} \
+%dir %{_datadir}/libreoffice/program/resource/%{-g:%{-g*}}%{!-g:%{-l*}}/LC_MESSAGES \
+%{_datadir}/%{name}/program/resource/%{-g:%{-g*}}%{!-g:%{-l*}}/LC_MESSAGES/*.mo \
+%endif \
+%dir %{_datadir}/%{name}/share/registry \
+%dir %{_datadir}/%{name}/share/registry/res \
+%{_datadir}/%{name}/share/registry/Langpack-%{-l*}.xcd \
+%if "%{-l*}" != "en-US" \
+%{_datadir}/%{name}/share/registry/res/registry_%{-l*}.xcd \
+%endif \
+%{_datadir}/%{name}/share/registry/res/fcfg_langpack_%{-l*}.xcd \
+%dir %{_datadir}/%{name}/share/wizards \
+%{_datadir}/%{name}/share/wizards/resources_%{-j:%{-j*}}%{!-j:%{-l*}}.properties \
+%{nil}
+# Defines a language pack subpackage.
+#
+# It's necessary to define language code (-l) and language name (-n).
+# Additionally, it's possible
+# * to require autocorr, hunspell, hyphen or mythes package or font for
+# given language,
+# * to obsolete openoffice.org-langpack package,
+# * to provide libreoffice-langpack-loc package, where loc is glibc
+# locale--this is necessary for yum to pick it automatically,
+# * to require other, unrelated, packages,
+# * to specify file serving as file list.
+# For these, lower case character argument takes an argument specifying
+# language, upper case character argument uses language from -l.
+#
+# All remaining arguments are considered to be files and added to the file
+# list.
+#
+# c: additional config file (just the name stem)
+# E the package does not contain any files (i.e., has empty filelist)
+# i: additional language added to this package
+# L: internal (LibreOffice) language code, used in file names
+# l: language code, e.g., cs
+# g: glibc/java locale
+# j: java locale
+# k: glibc locale for the additional language -i
+# o: java locale for the additional language -i
+# Mm: hunspell dependency
+# n: language name, e.g., Czech
+# p: Provides: of libreoffice-l10n
+# q: Provides: of libreoffice-l10n if one provide is not enough
+# r: comma-separated list of additional requires
+# S:s: script classification (cjk, ctl). -S is only a marker, as it does
+# not add any .xcd into the package (the file does not exist for at
+# least one CTL-using locale, si)
+# T has help files
+# Xx: has autotext definitions
+#
+# Example:
+# libreoffice-l10n-cs: langpack for Czech lang. Requiring myspell-cs_CZ:
+# %%langpack -l cs -n Czech -m cs_CZ
+%define langpack(c:Ei:g:j:k:L:l:Mm:n:o:p:q:r:S:s:TXx:) \
+%define project LibreOffice \
+%define lang %{-l:%{-l*}}%{!-l:%{error:Language code not defined}} \
+%define _langpack_lang %{-L:%{-L*}}%{!-L:%{lang}} \
+%define pkgname l10n-%{lang} \
+%define langname %{-n:%{-n*}}%{!-n:%{error:Language name not defined}} \
+\
+%package %{pkgname} \
+Summary: %{langname} localization files for %{project} \
+Group: Productivity/Office/Suite \
+Requires: %{name} = %{version} \
+Requires: %{name}-share-linker \
+Provides: locale(libreoffice:%{lang}) \
+BuildArch: noarch \
+%{-m:Requires: hunspell-%{-m*}}%{!-m:%{-M:Requires: hunspell-%{lang}}} \
+%{-r:Requires: %{-r*}} \
+%{-p: \
+Provides: %{name}-l10n-%{-p*} = %{version} \
+Obsoletes: %{name}-l10n-%{-p*} < %{version} \
+} \
+%{-q: \
+Provides: %{name}-l10n-%{-q*} = %{version} \
+Obsoletes: %{name}-l10n-%{-q*} < %{version} \
+} \
+Provides: %{name}-help-%{lang} = %{version} \
+Obsoletes: %{name}-help-%{lang} < %{version} \
+%{-L: \
+Provides: %{name}-help-%{-L*} = %{version} \
+Obsoletes: %{name}-help-%{-L*} < %{version} \
+} \
+%{-p: \
+Provides: %{name}-help-%{-p*} = %{version} \
+Obsoletes: %{name}-help-%{-p*} < %{version} \
+} \
+%{-q: \
+Provides: %{name}-help-%{-q*} = %{version} \
+Obsoletes: %{name}-help-%{-q*} < %{version} \
+} \
+\
+%description %{pkgname} \
+Provides %{langname} translations and additional resources (help files, etc.) for %{project}. \
+\
+%files %{pkgname} \
+%{-T: \
+%dir %{_datadir}/libreoffice/help/%{_langpack_lang} \
+%{_datadir}/libreoffice/help/%{_langpack_lang}/* \
+%if "%{-L*}" == "en-US" \
+%{_datadir}/libreoffice/help/*.js \
+%{_datadir}/libreoffice/help/*.css \
+%{_datadir}/libreoffice/help/*.html \
+%{_datadir}/libreoffice/help/media* \
+%endif \
+} \
+%{!-E: \
+%define autotextdir %{_datadir}/%{name}/share/autotext \
+%dir %{autotextdir} \
+%{expand:%%_langpack_common -l %{_langpack_lang} %{-g:-g %{-g*}} %{-j:-j %{-j*}}} \
+%{-x:%{autotextdir}/%{-x*}}%{!-x:%{-X:%{autotextdir}/%{_langpack_lang}}} \
+%{-c:%{_datadir}/%{name}/share/registry/%{-c*}.xcd} \
+%{-s:%{_datadir}/%{name}/share/registry/%{-s*}_%{_langpack_lang}.xcd} \
+%{-i:%{expand:%%_langpack_common -l %{-i*} %{-k:-g %{-k*}} %{-o:-j %{-o*}}}} \
+} \
+\
+%{expand:%%_link_noarch_files %{pkgname}} \
+%{nil}
+%langpack -l af -n Afrikaans -m af_ZA -X
+%langpack -l am -n Amharic -T -X
+%langpack -l ar -n Arabic -s ctl -m ar -T -X
+%langpack -l as -n Assamese -X
+%langpack -l ast -n Asturian -T -X
+%langpack -l be -n Belarusian -m be_BY -X
+%langpack -l bg -n Bulgarian -X -m bg_BG -T
+%langpack -l bn -n Bengali -m bn_BD -T -X
+%langpack -l bn_IN -n Bengali_India -T -p bn-IN -m bn_IN -L bn-IN -g bn_IN -j bn_IN -X
+%langpack -l bo -n Tibetian -T -s ctl -m bo -X
+%langpack -l br -n Breton -m br_FR -X
+%langpack -l brx -n Bodo -X
+%langpack -l bs -n Bosnian -T -X
+%langpack -l ca -n Catalan -M -X -T
+%langpack -l ca_valencia -n Valencian -m ca_ES_valencia -T -L ca-valencia -g ca@valencia -j ca_valencia -X
+%langpack -l ckb -n Central_Kurdish
+%langpack -l cs -n Czech -X -m cs_CZ -T
+%langpack -l cy -n Welsh -X
+%langpack -l da -n Danish -X -m da_DK -T
+%langpack -l de -n German -X -M -T
+%langpack -l dgo -n Dogri -X
+%langpack -l dsb -n Lower_Sorbian -X
+%langpack -l dz -n Dzongkha -s ctl -T -X
+%langpack -l el -n Greek -m el_GR -T -X
+%langpack -l en -n English -L en-US -X -M -g en_US -T -j en_US
+%langpack -l en_GB -n English_GB -M -T -X -L en-GB -g en_GB -j en_GB
+%langpack -l en_ZA -n English_ZA -M -T -X -L en-ZA -g en_ZA -j en_ZA
+%langpack -l eo -n Esperanto -T -X
+%langpack -l es -n Spanish -M -X -T
+%langpack -l et -n Estonian -m et_EE -T -X
+%langpack -l eu -n Basque -T -X
+%langpack -l fa -n Farsi -s ctl -X
+%langpack -l fi -n Finnish -r libreoffice-voikko -X -T
+%langpack -l fr -n French -X -m fr_FR -T
+%langpack -l fur -n Friulian
+%langpack -l fy -n Frisian -X
+%langpack -l ga -n Irish -X
+%langpack -l gd -n Gaelic -m gd_GB -X
+%langpack -l gl -n Galician -M -T -X
+%langpack -l gu -n Gujarati -s ctl -p gu-IN -m gu_IN -T -X
+%langpack -l gug -n Paraguayan_GuaranĂ­ -M -X
+%langpack -l he -n Hebrew -s ctl -m he_IL -T -X
+%langpack -l hi -n Hindi -s ctl -p hi-IN -m hi_IN -T -X
+%langpack -l hr -n Croatian -m hr_HR -X -T
+%langpack -l hsb -n Upper_Sorbian -X
+%langpack -l hu -n Hungarian -X -m hu_HU -T
+%langpack -l it -n Italian -X -m it_IT -T
+%langpack -l id -n Indonesian -T -M -X
+%langpack -l is -n Icelandic -T -X -M
+%langpack -l ja -n Japanese -s cjk -X -T
+%langpack -l ka -n Georgian -T -X
+%langpack -l kab -n Kabyle -X
+%langpack -l kk -n Kazakh -X
+%langpack -l kn -n Kannada -X
+%langpack -l km -n Khmer -T -X -s ctl -c ctlseqcheck_km
+%langpack -l kmr_Latn -n Kurdish -M -g kmr@latin -L kmr-Latn -j kmr_Latn -X
+%langpack -l ko -n Korean -s cjk -X -T
+%langpack -l kok -n Konkani -X
+%langpack -l ks -n Kashmiri -X
+%langpack -l lb -n Luxembourgish -X
+%langpack -l lo -n Lao -T -s ctl -m lo_LA -c ctlseqcheck_lo -X
+%langpack -l lt -n Lithuanian -m lt_LT -X -T
+%langpack -l lv -n Latvian -m lv_LV -T -X
+%langpack -l mai -n Maithili -X
+%langpack -l mk -n Macedonian -T -X
+%langpack -l ml -n Malayalam -X
+%langpack -l mn -n Monglolian -X
+%langpack -l mni -n Manipuri -X
+%langpack -l mr -n Marathi -X
+%langpack -l my -n Burnese -s ctl -X
+%langpack -l nb -n Bokmal -M -m no -T -X
+%langpack -l ne -n Nepali -T -s ctl -m ne_NP -X
+%langpack -l nl -n Dutch -X -m nl_NL -T
+%langpack -l nn -n Nynorsk -m nn_NO -T -X
+%langpack -l nr -n Southern_Ndebele -X
+%langpack -l nso -n Northern_Sotho -X
+%langpack -l oc -n Occitan -m oc_FR -X
+%langpack -l om -n Oromo -T -X
+%langpack -l or -n Odia -s ctl -X
+%langpack -l pa -n Punjabi -s ctl -L pa-IN -p pa-IN -g pa_IN -j pa_IN -x pa-IN
+%langpack -l pl -n Polish -X -m pl_PL -T
+%langpack -l pt_BR -n Brazilian_Portuguese -m pt_BR -L pt-BR -p pt-BR -X -g pt_BR -j pt_BR -T
+%langpack -l pt_PT -n Portuguese -m pt_PT -L pt -x pt -p pt -q pt-PT -T
+%langpack -l ro -n Romanian -M -X -T
+%langpack -l ru -n Russian -X -m ru_RU -T
+%langpack -l rw -n Kinyarwanda -X
+%langpack -l sa_IN -n Sanskrit -L sa-IN -g sa_IN -j sa_IN -x sa-IN
+%langpack -l sat -n Santali -X
+%langpack -l sd -n Sindhi -X
+%langpack -l si -n Sinhalese -S ctl -m si_LK -T -X
+%langpack -l sid -n Sidamo -T -X
+%langpack -l sk -n Slovak -X -m sk_SK -T
+%langpack -l sl -n Slovenian -X -m sl_SI -T
+%langpack -l sq -n Albanian -T -m sq_AL -X
+%langpack -l sr -n Serbian -i sr-Latn -M -j sr -g sr -k sr@latin -o sr_Latn -x sr-Latn
+%langpack -l ss -n Swati -X
+%langpack -l st -n Southern_Sotho -X
+%langpack -l sv -n Swedish -X -m sv_SE -T
+%langpack -l sw_TZ -n Swahili -M -L sw-TZ -g sw_TZ -j sw_TZ -x sw-TZ
+%langpack -l szl -n Silesian -X
+%langpack -l ta -n Tamil -s ctl -T -X
+%langpack -l te -n Telugu -m te_IN -X
+%langpack -l tg -n Tajik -T -X
+%langpack -l th -n Thai -s ctl -c ctlseqcheck_th -m th_TH -X
+%langpack -l tn -n Tswana -X
+%langpack -l tr -n Turkish -X -T -m tr_TR
+%langpack -l ts -n Tsonga -X
+%langpack -l tt -n Tatar -X
+%langpack -l ug -n Uyghur -T -X
+%langpack -l uk -n Ukrainian -m uk_UA -T -X
+%langpack -l uz -n Uzbek -X
+%langpack -l vi -n Vietnamese -T -X -M
+%langpack -l ve -n Venda -X
+%langpack -l vec -n Venetian -X
+%langpack -l xh -n Xhosa -X
+%langpack -l zh_CN -n Simplified_Chinese -p zh-CN -s cjk -L zh-CN -x zh-CN -q zh-Hans -g zh_CN -j zh_CN -T
+%langpack -l zh_TW -n Traditional_Chinese -p zh-TW -s cjk -L zh-TW -x zh-TW -q zh-Hant -g zh_TW -j zh_TW -T
+%langpack -l zu -n Zulu -m zu_ZA -X
+
+%prep
+%setup -q -b2 -b4
+%patch2
+%patch3
+%patch202 -p1
+%patch990 -p1
+%patch991 -p1
+%patch999 -p1
+
+# Disable some of the failing tests (some are random)
+# Following two tests are really flaky
+sed -i -e /CppunitTest_dbaccess_hsqldb_test/d dbaccess/Module_dbaccess.mk
+sed -i -e s/CppunitTest_dbaccess_RowSetClones// dbaccess/Module_dbaccess.mk
+# Fails due to diff caused by fonts
+sed -i -e /CppunitTest_sw_rtfimport/d sw/Module_sw.mk
+# only due to the above
+sed -i -e /CppunitTest_sw_uiwriter/d sw/Module_sw.mk
+# The gpg files are not loaded properly
+sed -i -e /CPPUNIT_TEST\(testODFEncryptedGPG\)/d xmlsecurity/qa/unit/signing/signing.cxx
+# breaks on LTO https://bugs.documentfoundation.org/show_bug.cgi?id=126442
+sed -i -e /CppunitTest_sw_apitests/d sw/Module_sw.mk
+
+# Do not generate doxygen timestamp
+echo "HTML_TIMESTAMP = NO" >> odk/docs/cpp/Doxyfile
+echo "HTML_TIMESTAMP = NO" >> odk/docs/idl/Doxyfile
+
+%build
+# Strip lto from %_lto_cflags as the project has --enable-lto option
+%define _lto_cflags %{nil}
+# do not eat all memory
+# make sure that JAVA_HOME is set correctly
+if [ -f %{_sysconfdir}/profile.d/alljava.sh ]; then
+ . %{_sysconfdir}/profile.d/alljava.sh
+elif [ -f %{_distconfdir}/profile.d/alljava.sh ]; then
+ . %{_distconfdir}/profile.d/alljava.sh
+else
+ export JAVA_HOME=/usr/lib/jvm/java-11
+fi
+# use RPM_OPT_FLAGS, ...
+# remove big debugsymbols as we simply consume too much space
+%if %{with lto}
+ARCH_FLAGS="`echo %{optflags} -flifetime-dse=1 | sed -e 's/^-g /-g1 /g' -e 's/ -g / -g1 /g' -e 's/ -g$/ -g1/g'`"
+%else
+ARCH_FLAGS="`echo %{optflags} | sed -e 's/^-g /-g1 /g' -e 's/ -g / -g1 /g' -e 's/ -g$/ -g1/g'`"
+%endif
+CFLAGS="$ARCH_FLAGS"
+CXXFLAGS="$ARCH_FLAGS"
+export ARCH_FLAGS CFLAGS CXXFLAGS
+
+# Fake the epoch stuff in generated zip files
+export SOURCE_DATE_EPOCH=$(date -d "$(head -n 2 %{_sourcedir}/%{name}.changes | tail -n 1 | cut -d- -f1 )" +%%s)
+
+# Colada does not have .pc file and configure creator was really lazy
+export OPENCOLLADA_CFLAGS='-I/usr/include/COLLADABaseUtils -I/usr/include/COLLADAFramework -I/usr/include/COLLADASaxFrameworkLoader -I/usr/include/GeneratedSaxParser'
+export OPENCOLLADA_LIBS='-lOpenCOLLADABaseUtils -lOpenCOLLADAFramework -lOpenCOLLADASaxFrameworkLoader -lGeneratedSaxParser'
+
+# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys
+# Note: For your own distribution, please get your own set of keys.
+google_api_key="AIzaSyD1hTe85_a14kr1Ks8T3Ce75rvbR1_Dx7Q"
+google_default_client_id="4139804441.apps.googleusercontent.com"
+google_default_client_secret="KDTRKEZk2jwT_7CDpcmMA--P"
+
+# do not run configure in autogen but use macro later
+export NOCONFIGURE=yes
+./autogen.sh
+%configure \
+ --with-parallelism=%{_smp_mflags} \
+ --enable-eot \
+%if %{with lto}
+ --enable-lto \
+%endif
+ --enable-mergelibs \
+ --docdir=%{_docdir}/%{name} \
+ --with-compat-oowrappers \
+ --with-system-headers \
+ --with-system-libs \
+ --with-system-jars \
+ --with-system-ucpp \
+ --with-system-dicts \
+ --with-system-libpng \
+ --without-system-libcmis \
+ --without-system-libfixmath \
+ --without-system-dragonbox \
+ --with-tls=nss \
+ --disable-openssl \
+ --with-lang=ALL \
+ --disable-fetch-external \
+ --with-external-tar="$RPM_SOURCE_DIR" \
+ --disable-epm \
+ --disable-online-update \
+ --enable-gstreamer-1-0 \
+ --enable-gtk3 \
+ --disable-kf5 \
+ --disable-qt5 \
+ --enable-introspection \
+ --with-doxygen \
+ --enable-release-build \
+ --enable-split-app-modules \
+ --enable-split-opt-features \
+ --enable-cairo-canvas \
+ --enable-largefile \
+ --enable-python=system \
+ --enable-randr \
+ --without-fonts \
+ --without-myspell-dicts \
+ --with-jdk-home=$JAVA_HOME \
+ --with-webdav=serf \
+ --with-beanshell-jar=%{_datadir}/java/bsh.jar \
+ --with-ant-home=%{_datadir}/ant \
+ --with-external-dict-dir=%{_datadir}/hunspell \
+ --with-external-hyph-dir=%{_datadir}/hyphen \
+ --with-external-thes-dir=%{_datadir}/mythes \
+ --with-help=html \
+ --without-export-validation \
+ --enable-odk \
+%if %{with system_gpgme}
+ --with-system-gpgmepp \
+%else
+ --without-system-gpgmepp \
+%endif
+%if %{with firebird}
+ --enable-firebird-sdbc \
+%else
+ --disable-firebird-sdbc \
+%endif
+ --enable-evolution2 \
+ --enable-dbus \
+ --enable-ext-ct2n \
+ --enable-ext-nlpsolver \
+ --enable-ext-numbertext \
+ --enable-ext-wiki-publisher \
+ --disable-scripting-beanshell \
+ --enable-scripting-javascript \
+ --enable-build-opensymbol \
+ --disable-ccache \
+ --disable-coinmp \
+ --enable-symbols \
+ --with-gdrive-client-secret="${google_default_client_secret}" \
+ --with-gdrive-client-id="${google_default_client_id}" \
+%ifarch riscv64
+ --disable-skia
+%endif
+# no coinormp packages for coinmp
+
+# just call make here as we added the jobs in configure
+make verbose=t build
+
+%check
+export LANG=C.UTF-8
+# Run tests only on x86_64 and aarch64 as they are resource hogs
+%ifarch x86_64 aarch64
+# safeguard jarfires that can get magically overriden by the make
+mkdir savejar
+cp %{buildroot}%{_libdir}/%{name}/program/classes/*.jar savejar/
+make
+cp savejar/*.jar %{buildroot}%{_libdir}/%{name}/program/classes/
+%endif
+
+%install
+make verbose=t DESTDIR=%{buildroot} distro-pack-install
+
+# Do not pollute build log
+set +x
+
+# Split out gtk3 interface to -gtk3 subpackage
+grep -v "%{_libdir}/libreoffice/program/libvclplug_gtk3lo.so" file-lists/gnome_list.txt > tmplist
+mv tmplist file-lists/gnome_list.txt
+
+# Remove firebird connector from main package filelist
+%if %{with firebird}
+grep -v "%{_libdir}/libreoffice/program/libfirebird_sdbclo.so" file-lists/common_list.txt > tmplist
+mv tmplist file-lists/common_list.txt
+%endif
+
+# Remove the libanimcore from impress and put it to base (needed by draw too)
+grep -v "%{_libdir}/libreoffice/program/libanimcorelo.so" file-lists/impress_list.txt > tmplist
+mv tmplist file-lists/impress_list.txt
+echo "%{_libdir}/libreoffice/program/libanimcorelo.so" >> file-lists/common_list.txt
+
+################
+# update desktop files
+builddir=`pwd`
+cd %{buildroot}%{_datadir}/applications
+for desktop in * ; do
+ # relative link is needed
+ relative_target=`readlink $desktop | sed "s|%{_libdir}|../../%{_lib}|"`
+ # create the link
+ ln -sf $relative_target $desktop
+done
+cd -
+################
+# compat stuff for noarch packages
+mkdir -p %{buildroot}/%{_datadir}/%{name}/program
+echo "%dir %{_libdir}/%{name}" >>file-lists/common_list.txt
+echo "%dir %{_datadir}/%{name}" >>file-lists/common_list.txt
+echo "%dir %{_datadir}/%{name}/program" >>file-lists/common_list.txt
+################
+# helper script for noarch packages
+# add missing directories to the file list
+for dir in `find %{buildroot}/%{_datadir}/icons/hicolor -type d` ; do
+ dir=`echo $dir | sed -e "s|%{buildroot}||"`
+ echo "%dir $dir" >>file-lists/common_list.txt
+done
+
+#################################
+# Move split noarch data to share
+#################################
+for i in %{buildroot}%{_libdir}/%{name}/program/resource/*/*/*.mo \
+ %{buildroot}%{_libdir}/%{name}/share/registry/res/fcfg_langpack_*.xcd \
+ %{buildroot}%{_libdir}/%{name}/share/registry/res/registry_*.xcd \
+ %{buildroot}%{_libdir}/%{name}/share/registry/Langpack-*.xcd \
+ %{buildroot}%{_libdir}/%{name}/share/config/images*.zip \
+ %{buildroot}%{_libdir}/%{name}/share/registry/{cjk,ctl}_*.xcd \
+ %{buildroot}%{_libdir}/%{name}/share/registry/ctlseqcheck_*.xcd \
+ %{buildroot}%{_libdir}/%{name}/share/wizards/*.properties \
+ ; do
+ trg="`dirname "$i" | sed 's|%{_libdir}|%{_datadir}|'`"
+ mkdir -p "$trg"
+ mv "$i" "$trg"
+ grep -v "`echo "$i"| sed 's|%{buildroot}||'`" file-lists/common_list.txt > tmplist
+ mv tmplist file-lists/common_list.txt
+done
+# help files are luckily in just one folder
+mkdir -p %{buildroot}/%{_datadir}/%{name}/help/
+grep -v '%{_libdir}/%{name}/help' file-lists/common_list.txt > tmplist
+mv tmplist file-lists/common_list.txt
+echo "%dir %{_datadir}/%{name}/help" >>file-lists/common_list.txt
+mv %{buildroot}/%{_libdir}/%{name}/help/ %{buildroot}/%{_datadir}/%{name}/
+mkdir -p %{buildroot}/%{_libdir}/%{name}/help/
+echo "%dir %{_libdir}/%{name}/help" >>file-lists/common_list.txt
+for file in idxcaption.xsl idxcontent.xsl main_transform.xsl ; do
+ mv "%{buildroot}/%{_datadir}/%{name}/help/$file" "%{buildroot}/%{_libdir}/%{name}/help/$file"
+ echo "%{_libdir}/%{name}/help/$file" >> file-lists/common_list.txt
+done
+# autotext is another self contained dir
+mkdir -p %{buildroot}/%{_datadir}/%{name}/share/autotext/
+grep -v '%{_libdir}/%{name}/share/autotext' file-lists/common_list.txt > tmplist
+mv tmplist file-lists/common_list.txt
+mv %{buildroot}/%{_libdir}/%{name}/share/autotext/ %{buildroot}/%{_datadir}/%{name}/share/
+# translations of java apps should be in lang pkgs too
+grep -v '%{_libdir}/%{name}/share/wizards' file-lists/common_list.txt > tmplist
+mv tmplist file-lists/common_list.txt
+# the sr is dupe of sr_Latn
+rm -rf %{buildroot}%{datadir}/%{name}/share/wizards/resources_sr.properties
+
+################
+# branding split
+################
+# create symlinks for all brandings to noarch pkg
+mkdir -p %{buildroot}/%{_datadir}/%{name}/program/shell
+echo "%{_datadir}/%{name}/program/shell" >> file-lists/branding_upstream.txt
+for file in sofficerc \
+ intro.png \
+ intro-highres.png \
+ shell/about.svg \
+ shell/logo.svg \
+ shell/logo_inverted.svg; do
+ mv "%{buildroot}%{_libdir}/%{name}/program/$file" "%{buildroot}%{_datadir}/%{name}/program/$file"
+ ln -sf "%{_datadir}/%{name}/program/$file" "%{buildroot}/%{_libdir}/%{name}/program/$file"
+ echo "%{_datadir}/%{name}/program/$file" >> file-lists/branding_upstream.txt
+done
+
+# Fix autocorr names for various language mutations
+%make_autocorr_aliases -l en-GB en-AG en-AU en-BS en-BW en-BZ en-CA en-DK en-GH en-HK en-IE en-IN en-JM en-NG en-NZ en-SG en-TT
+%make_autocorr_aliases -l en-US en-PH
+%make_autocorr_aliases -l en-ZA en-NA en-ZW
+%make_autocorr_aliases -l af-ZA af-NA
+%make_autocorr_aliases -l de de-DE de-AT de-BE de-CH de-LI de-LU
+%make_autocorr_aliases -l es es-ES es-AR es-BO es-CL es-CO es-CR es-CU es-DO es-EC es-GT es-HN es-MX es-NI es-PA es-PE es-PR es-PY es-SV es-US es-UY es-VE
+%make_autocorr_aliases -l fr fr-FR fr-BE fr-CA fr-CH fr-LU fr-MC
+%make_autocorr_aliases -l it it-IT it-CH fur_IT lld_IT sc_IT vec_IT
+%make_autocorr_aliases -l nl-NL nl-AW
+%make_autocorr_aliases -l sv-SE sv-FI
+pushd %{buildroot}%{_libdir}/%{name}/share/autocorr
+files=""
+for file in acor*.dat; do
+ files="$files $file"
+done
+popd
+for file in $files; do
+ echo "%{_libdir}/%{name}/share/autocorr/$file" >> file-lists/common_list.txt
+done
+
+# we don't bother with serbian non-latin autocorr (as the lang logic allows us to dynamically allocate
+# just one autotext filler and it does not make sense to have special case just for serbian
+rm -r %{buildroot}%{_datadir}/libreoffice/share/autotext/sr/
+
+# Install appdata files, so we're shown in gnome-software (and other, future app stores)
+install -m 0755 -d %{buildroot}%{_datadir}/metainfo
+for appdata in base calc draw impress writer; do
+ cp sysui/desktop/appstream-appdata/libreoffice-${appdata}.appdata.xml %{buildroot}%{_datadir}/metainfo/libreoffice-${appdata}.appdata.xml
+ echo "%{_datadir}/metainfo/libreoffice-${appdata}.appdata.xml" >>file-lists/${appdata}_list.txt
+done
+rm -f %{buildroot}%{_datadir}/metainfo/org.libreoffice.kde.metainfo.xml
+
+# Remove pointless readmes
+rm -rf %{buildroot}%{_libdir}/%{name}/readmes/
+
+# Prepare uno path detection, can't be patched in because it breaks tests
+echo "import sys, os" > uno.py
+echo "sys.path.append('%{_libdir}/%{name}/program')" >> uno.py
+echo "os.putenv('URE_BOOTSTRAP', 'vnd.sun.star.pathname:%{_libdir}/libreoffice/program/fundamentalrc')" >> uno.py
+cat %{buildroot}%{_libdir}/%{name}/program/uno.py >> uno.py
+cp uno.py %{buildroot}%{_libdir}/%{name}/program/uno.py
+
+# Generate python cache files
+%py_byte_compile %{__python3} %{buildroot}/%{_libdir}/libreoffice/program/
+%py_byte_compile %{__python3} %{buildroot}/%{_libdir}/libreoffice/share/extensions/
+%py_byte_compile %{__python3} %{buildroot}/%{_libdir}/libreoffice/share/Scripts/python/
+%py_byte_compile %{__python3} %{buildroot}/%{_libdir}/libreoffice/sdk/examples/python/
+# Move python cache to respective filelist
+for i in file-lists/*.txt; do
+ if [ `cat "${i}" | grep '\.py$' |wc -l` -gt 0 ]; then
+ cat "${i}" | grep '\.py$' > pyfiles.txt
+ for j in `cat pyfiles.txt`; do
+ # python3 has __pycache__ dir while py2 does not
+ pydir="${j%/*}"
+ pyname="${j##*/}"
+ if compgen -G "%{buildroot}${pydir}/__pycache__/${pyname%.*}*.pyc" > /dev/null; then
+ echo "%dir ${pydir}/__pycache__/" >> "${i}"
+ echo "${pydir}/__pycache__/${pyname%.*}*.pyc" >> "${i}"
+ fi
+ done
+ fi
+done
+rm pyfiles.txt
+
+# Symlink gtk3 libreofficekit to libdir
+ln -s %{_libdir}/%{name}/program/liblibreofficekitgtk.so %{buildroot}%{_libdir}/liblibreofficekitgtk.so
+
+# Libreofficekit headers
+mkdir -p %{buildroot}%{_includedir}/LibreOfficeKit/
+install -m 0644 include/LibreOfficeKit/* %{buildroot}%{_includedir}/LibreOfficeKit/
+
+# typelib data
+mkdir -p %{buildroot}%{_libdir}/girepository-1.0/
+install -m 0644 workdir/CustomTarget/sysui/share/libreoffice/LOKDocView-0.1.typelib %{buildroot}%{_libdir}/girepository-1.0/
+mkdir -p %{buildroot}%{_datadir}/gir-1.0/
+install -m 0644 workdir/CustomTarget/sysui/share/libreoffice/LOKDocView-0.1.gir %{buildroot}%{_datadir}/gir-1.0/
+
+# Symlink uno.py and unohelper.py so that python can find them
+# This is done after the cache files generating on purpose
+mkdir -p %{buildroot}%{python3_sitelib}
+ln -s %{_libdir}/libreoffice/program/uno.py %{buildroot}%{python3_sitelib}/uno.py
+ln -s %{_libdir}/libreoffice/program/unohelper.py %{buildroot}%{python3_sitelib}/unohelper.py
+ln -s %{_libdir}/libreoffice/program/officehelper.py %{buildroot}%{python3_sitelib}/officehelper.py
+echo "%{python3_sitelib}/uno.py" >> file-lists/pyuno_list.txt
+echo "%{python3_sitelib}/unohelper.py" >> file-lists/pyuno_list.txt
+echo "%{python3_sitelib}/officehelper.py" >> file-lists/pyuno_list.txt
+
+# move glade catalog to system glade dir
+install -m 0755 -d %{buildroot}%{_datadir}/glade/catalogs
+mv %{buildroot}%{_libdir}/%{name}/share/glade/libreoffice-catalog.xml %{buildroot}%{_datadir}/glade/catalogs
+install -m 0755 -d %{buildroot}%{_datadir}/glade3/catalogs
+ln -s %{_datadir}/glade/catalogs/libreoffice-catalog.xml %{buildroot}%{_datadir}/glade3/catalogs
+grep -v '%{_libdir}/%{name}/share/glade/libreoffice-catalog.xml' file-lists/common_list.txt > tmplist
+mv tmplist file-lists/common_list.txt
+
+# install gdb pretty printers
+export DESTDIR=%{buildroot}
+export SRCDIR="./"
+./solenv/bin/install-gdb-printers -a %{_datadir}/gdb/auto-load%{_libdir}/%{name} -c -i %{_libdir}/%{name} -p %{_datadir}/libreoffice/gdb
+
+# Why would the mysql lib which is only USED by base not be IN THE BASE PACKAGE?!?
+grep -v "%{_libdir}/libreoffice/program/libmysqlclo.so" file-lists/common_list.txt > tmplist
+mv tmplist file-lists/common_list.txt
+echo "%{_libdir}/libreoffice/program/libmysqlclo.so" >> file-lists/base_list.txt
+
+# Remove empty files
+rm %{buildroot}%{_libdir}/libreoffice/share/extensions/*/help/*.done
+rm %{buildroot}%{_libdir}/libreoffice/share/extensions/*/help/*/*.ht_
+rm %{buildroot}%{_libdir}/libreoffice/share/extensions/wiki-publisher/help/sa-IN/help.key_
+rm %{buildroot}%{_libdir}/libreoffice/share/extensions/nlpsolver/locale/NLPSolverCommon_en_US.default
+
+%post
+/sbin/ldconfig
+
+%preun
+uno_cache="%{_libdir}/%{name}/share/uno_packages/cache/uno_packages/"
+if [ "$1" = "0" ] ; then
+ test -d "$uno_cache" && rm -rf "$uno_cache"/*
+fi
+exit 0
+
+%postun
+/sbin/ldconfig
+
+%_link_noarch_files icon-themes
+
+%files -f file-lists/common_list.txt
+# ignore helper files for brp-symlink check
+%exclude %{_datadir}/%{name}/program/sofficerc
+%exclude %{_datadir}/%{name}/program/*.png
+%exclude %{_datadir}/%{name}/program/shell/*.svg
+
+%files -n libreofficekit
+%dir %{_libdir}/girepository-1.0
+%{_libdir}/girepository-1.0/LOKDocView-0.1.typelib
+%{_libdir}/liblibreofficekitgtk.so
+%dir %{_libdir}/libreoffice/share/libreofficekit
+%{_libdir}/libreoffice/share/libreofficekit/handle_image_end.png
+%{_libdir}/libreoffice/share/libreofficekit/handle_image_middle.png
+%{_libdir}/libreoffice/share/libreofficekit/handle_image_start.png
+
+%files -n libreofficekit-devel
+%dir %{_datadir}/gir-1.0
+%{_datadir}/gir-1.0/LOKDocView-0.1.gir
+%dir %{_includedir}/LibreOfficeKit
+%{_includedir}/LibreOfficeKit/*
+
+%files glade
+%dir %{_datadir}/glade
+%dir %{_datadir}/glade/catalogs
+%{_datadir}/glade/catalogs/libreoffice-catalog.xml
+%dir %{_datadir}/glade3
+%dir %{_datadir}/glade3/catalogs
+%{_datadir}/glade3/catalogs/libreoffice-catalog.xml
+
+%files gdb-pretty-printers
+%{_datadir}/gdb/auto-load/%{_libdir}/%{name}
+%{_datadir}/libreoffice/gdb
+
+%files -f file-lists/base_list.txt base
+
+%files -f file-lists/calc_list.txt calc
+
+%files -f file-lists/draw_list.txt draw
+
+%files -f file-lists/math_list.txt math
+
+%files -f file-lists/impress_list.txt impress
+
+%files -f file-lists/writer_list.txt writer
+
+%files -f file-lists/postgresql_list.txt base-drivers-postgresql
+
+%if %{with firebird}
+%files base-drivers-firebird
+%{_libdir}/libreoffice/program/libfirebird_sdbclo.so
+%endif
+
+%files -f file-lists/filters_list.txt filters-optional
+
+%files -f file-lists/mailmerge_list.txt mailmerge
+
+%files -f file-lists/pyuno_list.txt pyuno
+%exclude %{_libdir}/libreoffice/share/Scripts/python/LibreLogo
+%exclude %{_libdir}/libreoffice/share/registry/librelogo.xcd
+
+%files librelogo
+%{_libdir}/libreoffice/share/registry/librelogo.xcd
+%{_libdir}/libreoffice/share/Scripts/python/LibreLogo
+
+%files -f file-lists/gnome_list.txt gnome
+
+%files gtk3
+%{_libdir}/libreoffice/program/libvclplug_gtk3lo.so
+
+%files -f file-lists/sdk_list.txt sdk
+%dir %{_libdir}/libreoffice/sdk/lib
+
+%files -f file-lists/sdk_doc_list.txt sdk-doc
+
+%files calc-extensions
+%{_libdir}/%{name}/share/extensions/nlpsolver
+%{_libdir}/%{name}/share/extensions/numbertext
+
+%files writer-extensions
+%{_libdir}/%{name}/share/extensions/wiki-publisher
+
+%files icon-themes
+%dir %{_datadir}/%{name}
+%dir %{_datadir}/%{name}/share
+%dir %{_datadir}/%{name}/share/config
+%{_datadir}/%{name}/share/config/images_*.zip
+
+%files -f file-lists/branding_upstream.txt branding-upstream
+
+%changelog