diff options
Diffstat (limited to 'libreoffice.spec')
-rw-r--r-- | libreoffice.spec | 1303 |
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 |